diff --git a/Configure b/Configure index 1404cfd4ad..5e4b2027fa 100755 --- a/Configure +++ b/Configure @@ -18,9 +18,9 @@ # you may fetch it yourself from your nearest archive site.) # -# $Id: Configure,v 1.72 2005/06/20 17:34:18 stesting Exp $ +# $Id: Configure,v 1.76 2005/12/13 10:02:37 stesting Exp $ # -# Generated on Mon Jun 20 19:30:06 CEST 2005 [metaconfig 3.0 PL70] +# Generated on Tue Dec 13 11:01:04 CET 2005 [metaconfig 3.0 PL70] cat >/tmp/c1$$ <tmax (fixes bug report). + o Fix angular distributions of secondaries and 4-momentum balance + in G4MuBremsstrahlungModel and G4MuPairProductionModel. + o Added protection in G4MuPairProductionModel needed for sampling + of pair energy in the case of low cuts. + + standard: + o In all energy loss models return protection against the case + tmin>tmax (fixes bug report). + o Fix for initialisation of G4eBremsstrahlungModel. + o Fix a bug in calculation of chemical correction in G4BraggIonModel + and fix in G4BraggModel for problem observed when increasing + precision using standard model and chemical effect. + + utils: + o G4VEnergyLossProcess: return number protections against numerical + imprecision, which were used in version 7.0 and removed in 7.1 + (fixes bug report) + o Set default lambdaFactor to 0.8 for integral mode (improvement in + CPU performance for low cuts). + o G4VEmProcess: use integral mode only for charged particles. + o G4EmModelManager: fix a cut calculation for the e+e- pair + production physics process. + o G4VMultipleScattering: fixed error in a protection in + GetContinuousStepLimit(). + + xrays: + o Changed variable name 'MeanNumPhotons' to 'MeanNumberOfPhotons' in + G4Scintillation and G4Cerenkov to conform with the documentation in + the Application Developers Guide. + o Added G4ProcessType identifier to all processes constructors. + + o Hadronic Processes: + ------------------ + + management: + o Correctly set the type of a hadronic process. + Fixes problem report #744. + + models/chiral_inv_phase_space/body: + o Memory leak fix for nuclear mass management in G4QPDGCode to use + G4 masses of nuclear fragments. + + models/low_energy: + o Fix in elastic scattering for the case of target hydrogen: use + relativistic kinematic for the generation of the final state. + Fix tested in HARP. + + stopping: + o Fixed bug in time of e- produced in bound decay of mu-. + + o Management of processes: + ----------------------- + + Added forward declaration of G4UImessenger in G4ProcessTable header. + Fixes problem report #768. + + o Optical Processes: + ----------------- + + Added G4ProcessType identifier to all processes constructors. + + o Run: + --- + + Removed unnecessary usage of G4Allocator for allocation of a run. + + o Tracking: + -------- + + Fix in G4SteppingManager::InvokeAlongStepDoItProcs() for problem + report #761. + + Fix in G4SteppingManager::DefinePhysicalStepLength() for the order + of execution of 'ExclusivelyForced' processes like Fast-Simulation. + Problem reported and fixed in CMS and ATLAS. + + o Physics lists: + ------------- + + hadronic: corrected text for the installation in README. + + o Examples: + -------- + + Updated reference outputs. + + extended/electromagnetic/TestEm9 + o Fixed problem for changing cuts between runs. + + extendedeventgenerator/exgps + o Fixed GNUMakefile for linking with AIDA on WIN32-VC. + Fixes problem report #767. + + extended/medical/GammaTherapy + o Added vis.mac and histogram type (aida, root, hbook). + o Use standard angular distribution for low-energy PhotoElectric. + + extended/persistency + o Added missing EXTRALIBS to link list for specialised setup. + + extended/radioactivedecay/exrdm + o Fixed GNUMakefile for linking with AIDA on WIN32-VC. + Fixes problem report #767. + + novice/N03 + o RunAction: compute and print statistic at the end of the run. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 7.1. + o Technical notes distributed for release 7.1 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 7.1 are available through +our "Source Code" Web page: http://cern.ch/geant4 + +Please refer to the Geant4 User Documentation: + http://cern.ch/geant4/G4UsersDocuments/Overview/html +for further information about using Geant4. diff --git a/ReleaseNotes/ReleaseNotes4.8.0.html b/ReleaseNotes/ReleaseNotes4.8.0.html new file mode 100644 index 0000000000..0e1c28edc9 --- /dev/null +++ b/ReleaseNotes/ReleaseNotes4.8.0.html @@ -0,0 +1,1159 @@ + + +Geant4 8.0 Release Notes + + + +

+
+

+ +

+ +Geant4 8.0 Release Notes + + + + +
+ +December 16th, 2005 + +
+ +

+


+

+The code and binary libraries for the supported systems are available +through our Source Code Web page. +

+

+Please refer to the +Geant4 +User Documentation for further information about using Geant4. +

+ +

Contents

+
    +
  1. Supported and Tested Platforms
  2. +
  3. AIDA and CLHEP
  4. +
  5. Known Run-Time Problems
  6. +
  7. Compilation Warnings
  8. +
  9. Known Run-Time Warnings
  10. +
  11. Items for migration of the user code
  12. +
  13. Detailed list of changes and fixes
  14. +
+ +

+ +
+ + + +

1. Supported and Tested Platforms

+ +Official platforms: + + +More verified configurations: + + +Platforms configured but not tested and not supported: + + +

+ +
+ + + +

2. AIDA and CLHEP

+ +Geant4 8.0 requires the installation of +CLHEP.
+Tests have been performed with CLHEP-1.9.2.2
+The software has been verified also with CLHEP-2.0.2.2.
+

+Geant4 8.0 examples with histogramming cowork with AIDA 3.2.1 +implementations. These include: + + +AIDA headers can be downloaded from: +http://aida.freehep.org + + +

+ +
+ + + +

3. Known Run-Time Problems and Limitations

+ +For a complete list of outstanding run-time problems and to submit any +problem you may find running this version of Geant4, please refer to the +Geant4 Problem Reporting +System. + + +

+ +
+ + + +

4. Compilation Warnings

+ +There may be compilation warnings on some platforms. We do not believe +that any will lead to incorrect run-time behaviour. + + +

+ +
+ + + +

5. Known Run-Time Warnings

+ +The following message can be written to error output while tracking. +We believe it does not give rise to incorrect behaviour. +
+    G4PropagateInField: Warning: Particle is looping 
+    -  tracking in field will be stopped. 
+       It has performed 1000 steps in Field while a maximum of 1000
+       are allowed. 
+
+ + +

+ +
+ + + +

6. Items for migration of the user code

+ +Some migrations may be necessary for advanced uses of features in Geant4 +in order to upgrade from release 7.1 to release 8.0. Note that a full reinstallation +of libraries (or a full recompilation) and a recompilation of user applications +is required. + +

+Creating and instantiating physics lists : impact of the revised, "non-static", particle +definitions +

+In this release, all particle-definition objects are instantiated dynamically +when the method ConstructParticle() of the user's G4VUserPhysicsList is + called. +This method is invoked when the user's physics list is assigned to the +G4RunManager (whereas previously it was called at the +time of +G4RunManager::Initialize()). The new scheme allows the +user to set a number physics quantities to alternative values (e.g. masses of +elementary particles) before particles are instantiated with the values provided by Geant4. +This new scheme creates some restrictions which can +affect on the existing users's codes, in particular when user-defined +physics lists are used: +
    +
  1. Physics processes and models must be instantiated in the + ConstructProcess() method of the user's physics list.
    + In particular physics processes or models must not be data members of a physics + list. The reason is that some existing physics processes and models require + that particles have been instantiated already. If a process is a data member + of the physics list, it is instantiated when the physics list's constructor + is called, and thus before the invocation of ConstructParticle().
    + The "educated-guess" physics lists distributed with previous Geant4 releases + are affected by this change. The revised physics lists, which are distributed + with this release, should be used in their place. + A user adopting his/her own physics list, will need to perform a similar + revision in case a G4Exception with the following message occurs + when the physics list is instantiated:
    + Error message: +
    +      Access to G4ParticleTable for finding a particle or equivalent operation 
    +      occurs before G4VUserPhysicsList is instantiated and assigned to 
    +      G4RunManager. Such access is prohibited by Geant4 version 8.0. 
    +      To fix this problem, please make sure that your main() instantiates 
    +      G4VUserPhysicsList and set it to G4RunManager before instantiating 
    +      other user classes such as G4VUserPrimaryParticleGeneratorAction.
    +    
    + Fix: + All physics processes and models defined as data members of the physics + list must be moved to the ConstructProcess() method, and must be + explicitly instantiated by new operator. The revised physics lists + provide a reference for this revision.
  2. +
  3. User action classes (derived from G4VUserPrimaryGeneratorAction, + G4UserRunAction, G4UserEventAction, G4UserStackingAction, + G4UserTrackingAction and G4UserSteppingAction) must be + instantiated after the physics list is instantiated and after it is set to + G4RunManager. Please note that the user's detector construction + class is a user initialization class and thus is not affected by this + restriction.
    + The user should revise the main() function if the following + G4Exception occurs:
    + Error message (for G4VUserPrimaryGeneratorAction): +
    +      You are instantiating G4VUserPrimaryGeneratorAction BEFORE your 
    +      G4VUserPhysicsList is instantiated and assigned to G4RunManager. 
    +      Such an instantiation is prohibited by Geant4 version 8.0. To fix this 
    +      problem, please make sure that your main() instantiates G4VUserPhysicsList 
    +      AND set it to G4RunManager before instantiating other user action classes 
    +      such as G4VUserPrimaryParticleGeneratorAction.
    +    
    + Fix: + Edit main() to make sure all user action classes are + instantiated after the physics list is set to G4RunManager.
  4. +
+ +

+G4VProcess base class +

+A signature change is implemented in the G4VProcess base class.
+The virtual method StartTracking() defined in G4VProcess +now takes const G4Track* as argument in its signature. Users +implementing their own physics process and making use of this virtual +method, will have to modify the signature accordingly. + +

+Multiple Scattering electromagnetic process +

+In the electromagnetic standard package major changes have been introduced +concerning the Multiple Scattering process. To improve the behaviour of low +energy particles (electrons in particular, but affecting also hadrons), +the Multiple Scattering now limits the step size for the particles. This +restriction is undertaken using several criteria, and is applied systematically, +in all volumes and materials. In addition a model of the correlation between +lateral displacement and final direction has been implemented (see the +Physics Reference Manual for further information).
+As a result, most physical observables become more stable when varying +production cuts (i.e. less "cut dependent"). There is a corresponding +cost, a CPU-time penalty, when utilising the same value of the production +thresholds. This penalty can be significant, depending on the user's setup and +the cut values. For many use cases the increased stability will allow the choice +of higher production thresholds, recovering computing performance while +maintaining physics performance.
+To enable the user to investigate its benefits, a mechanism is provided to +deactivate this step limitation. The new method MscStepLimitation(bool) +of G4MultipleScattering disables these new step limitations. +In addition, in order to help the transition, the old version is available for +this release 'frozen' in the class G4MultipleScattering71. +Several examples (in extended/electromagnetic) provide sample physics lists +which use this older version. + +

+Geometry modeler +

+For setups including parameterised geometries by material, an interface +extension is introduced in G4VPVParameterisation base class for the +ComputeMaterial() method. An optional argument has been added, that +provides a constant pointer to the touchable of the parent of the current +volume, enabling access to its copy number and other properties, and those of +all its ancestor volumes. +User code making use of this feature will have to be updated accordingly. +A compilation warning should flag to take into account this interface change. +

+Internal classes implementing the framework for twisted solids have been +renamed. User code depending on this framework will have to be modified +accordingly. + +

+Fast parameterisation +

+The concept of "envelope" and "ghost-volume" for fast-parameterisation has +been merged with the G4Region in this release. Therefore, a +logical-volume no longer acts directly as an "envelope", since this attribute +now assigned to G4Region. Please refer to the User Guide for +Application Developers for the detailed information. The relevant modules have +migrated accordingly. See exampleN05 which has been revised to +demonstrate this new mechanism. +

+A design iteration has taken place for the GFlash fast shower parameterisation +model and some classes were renamed to follow the new implementation and +design for envelopes. User code making use of the GFlash tool should migrate +accordingly. +

+TRD models for cluster parameterisation have been retired. The functionality +is now provided directly as physics processes and included in the +electromagnetic packages. + +

+Migration to <sstream> from deprecated + <strstream> +

+<strstream> types are no longer in use by the Geant4 kernel in +this release. Also any protection from compilation warnings by the compiler +for deprecation of such header are no longer implicitely included. User code +therefore will be exposed to implement such migration to +<sstream>, if not already done. + +

+System of Units and Physical Constants +

+Geant4 8.0 can be used either with version 1.9.2.2 of CLHEP or 2.0.2.2. +Explicit usage of the CLHEP and HepGeom namespaces is +made in the Geant4 code. However, for what concerns Units and Physical +Constants, these are still kept available in the global namespace for +convenience and backward-compatibility. + +

+New Installation flags +

+New installation flags have been introduced: + + +

+ +
+ + + +

7. Detailed list of changes and fixes

+ +These are the main new features/fixes included in this release since the +last patched public release (for the detailed list of fixes/additions, +please refer to the related History files provided in most packages): + +

+ + +

Configuration

+ + + +

Digitization & Hits

+ + + +

Electromagnetic Processes (Low-energy)

+ + + +

Electromagnetic Processes (Standard)

+ + + +

Event

+ + + +

General Processes: Management, Cuts, Parameterisation

+ + + +

Geometry

+ + + +

Global

+ + + +

Graphical Representations

+ + + +

Materials

+ + + +

Hadronic Processes

+ + + +

Parameterisation Models

+ + + +

Particles

+ + + +

Run, Intercoms and Interfaces

+ + + +

Track and Tracking

+ + + +

Visualization

+ + + +

Physics lists

+ + + +

G3toG4 Tool

+ + + +

Examples

+ + +
+ + + + diff --git a/config/G4VIS_BUILD.gmk b/config/G4VIS_BUILD.gmk index 1d93e6e9eb..a7fba4aede 100644 --- a/config/G4VIS_BUILD.gmk +++ b/config/G4VIS_BUILD.gmk @@ -1,4 +1,4 @@ -# $Id: G4VIS_BUILD.gmk,v 1.17 2005/05/10 08:46:32 allison Exp $ +# $Id: G4VIS_BUILD.gmk,v 1.19 2005/10/05 17:35:40 allison Exp $ # ------------------------------------------------------------- # Visualization-specific CPPFLAGS for BUILD phase. # John Allison, 24th January 1998. @@ -59,6 +59,11 @@ ifdef G4VIS_BUILD_OI_DRIVER CPPFLAGS += -DG4VIS_BUILD_OI_DRIVER endif +ifdef G4VIS_BUILD_RAYTRACERX_DRIVER + CPPFLAGS += -DG4VIS_BUILD_RAYTRACERX_DRIVER + INC_X11 = 1 +endif + ifdef G4VIS_BUILD_VRML_DRIVER CPPFLAGS += -DG4VIS_BUILD_VRML_DRIVER endif @@ -97,6 +102,10 @@ ifdef G4LIB_BUILD_SHARED G4VIS_USE_OI = 1 endif + ifdef G4VIS_BUILD_RAYTRACERX_DRIVER + G4VIS_USE_RAYTRACERX = 1 + endif + ifdef G4VIS_BUILD_VRML_DRIVER G4VIS_USE_VRML = 1 endif diff --git a/config/G4VIS_USE.gmk b/config/G4VIS_USE.gmk index 7871b9c23f..708b97bc94 100644 --- a/config/G4VIS_USE.gmk +++ b/config/G4VIS_USE.gmk @@ -1,4 +1,4 @@ -# $Id: G4VIS_USE.gmk,v 1.20 2003/11/13 09:54:41 gcosmo Exp $ +# $Id: G4VIS_USE.gmk,v 1.22 2005/10/05 17:35:40 allison Exp $ # ------------------------------------------------------------- # GNUmakefile for CPPFLAGS for visualization USE phase. # John Allison, 24th January 1998. @@ -90,6 +90,13 @@ ifdef G4VIS_USE_OI LOAD_IV = 1 endif +ifdef G4VIS_USE_RAYTRACERX + CPPFLAGS += -DG4VIS_USE_RAYTRACERX + # CPPFLAGS += -I... and VISLIBS += set above. + INC_X11 = 1 + LOAD_X11 = 1 +endif + ifdef G4VIS_USE_VRML CPPFLAGS += -DG4VIS_USE_VRML # CPPFLAGS += -I... and VISLIBS += set above. diff --git a/config/History b/config/History index 87c4e6ebb7..5a7b8d7fe4 100644 --- a/config/History +++ b/config/History @@ -1,4 +1,4 @@ -$Id: History,v 1.267 2005/06/17 06:59:37 gcosmo Exp $ +$Id: History,v 1.275 2005/12/12 09:15:17 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,35 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +12th December 2005 Gabriele Cosmo (config-V07-01-07) +- binmake.gmk: added workaround to allow for physics-lists to link + with DLLs on Windows. + +7th December 2005 Gabriele Cosmo (config-V07-01-06) +- Added G4LIB_NO_SHARED protection for cases where installation of + shared libs are not allowed. + +2nd December 2005 Gabriele Cosmo (config-V07-01-05) +- Replaced -GX with -EHsc compilation option in WIN32-VC setup for + porting on VC++8 compiler. + +29th November 2005 Gabriele Cosmo (config-V07-01-04) +- Added -D_CRT_SECURE_NO_DEPRECATE to WIN32-VC setup to allow for + porting on VC++8 compiler. + +21st November 2005 Makoto Asai (config-V07-01-03) +- binmake.gmk: added 'digits_hits/utils' module to INCFLAGS. + +5th October 2005 John Allison (config-V07-01-02) +- G4VIS*.gmk: added G4VIS_BUILD_RAYTRACERX_DRIVER and G4VIS_USE_RAYTRACERX. + +29th July 2005 Mark Donszelmann (config-V07-01-01) +- Synchronized CXXFLAGS warning options of WIN32-g++ with Linux-g++. + +18th July 2005 Gabriele Cosmo (config-V07-01-00) +- Excluded usage of unnecessary 'ranlib' at creation of the libraries for + WIN32-VC system. Fixes an observed problem of debug-symbols corruption. + 16th June 2005 Sergey Sadilov (config-V07-00-05) - Updated Configure script and support files: o Added new data sets for low-energy-EM and elastic data. diff --git a/config/architecture.gmk b/config/architecture.gmk index b99755a15b..9a325828e4 100644 --- a/config/architecture.gmk +++ b/config/architecture.gmk @@ -1,4 +1,4 @@ -# $Id: architecture.gmk,v 1.103 2005/05/17 08:08:13 gcosmo Exp $ +# $Id: architecture.gmk,v 1.104 2005/12/07 09:41:54 gcosmo Exp $ # ------------------------------------------------------------------------ # GEANT 4 - Architecture configuration script for GNU Make # @@ -72,7 +72,9 @@ G4DUMMY_VARIABLE:=$(shell [ ! -d $(G4INCLUDE) ] && mkdir -p $(G4INCLUDE) ) # Backwards compatibility # ifneq ($(G4MAKESHLIB),) - G4LIB_BUILD_SHARED = 1 + ifeq ($(G4LIB_NO_SHARED),) + G4LIB_BUILD_SHARED = 1 + endif endif # Defaults for library BUILD. No default for USE, ie. take what is found. diff --git a/config/binmake.gmk b/config/binmake.gmk index c5d5fadb9b..a1e6466def 100644 --- a/config/binmake.gmk +++ b/config/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.107 2005/06/15 13:59:59 gunter Exp $ +# $Id: binmake.gmk,v 1.109 2005/12/12 09:08:21 gcosmo Exp $ # ---------------------------------------------------------- # Script defining rules and paths for making binaries. # First implementation: Gabriele Cosmo, 25/06/1998. @@ -133,6 +133,7 @@ ifndef INCFLAGS -I$(G4BASE)/digits_hits/detector/include \ -I$(G4BASE)/digits_hits/hits/include \ -I$(G4BASE)/digits_hits/digits/include \ + -I$(G4BASE)/digits_hits/utils/include \ -I$(G4BASE)/persistency/include \ -I$(G4BASE)/readout/include \ -I$(G4BASE)/event/include \ @@ -258,18 +259,28 @@ LDLIBS4 += $(LOADLIBS) # ifdef USER_DEFINED_LDLIBS LDLIBS_PREFINAL := $(LDLIBS) + LDLIBS_KERNEL := $(LDLIBS) else # Again, do not use := or +=. See note on LDLIBS2 above. LDLIBS_PREFINAL = $(LDLIBS1) $(LDLIBS2) $(LDLIBS2EXTRA) $(LDLIBS3) +# Version leaving out EXTRALIBS + LDLIBS_KERNEL = $(LDLIBS2) $(LDLIBS2EXTRA) $(LDLIBS3) endif LDLIBS_PREFINAL += $(LDLIBS4) +LDLIBS_KERNEL += $(LDLIBS4) ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) WIN32TMP := $(patsubst -L%,$(LIB_PATH)%,$(LDFLAGS)) LDFLAGS = $(patsubst /,$(PATH_DEL),$(WIN32TMP)) WIN32TMP2 := $(patsubst -L%,$(LIB_PATH)%,$(LDLIBS_PREFINAL)) + WIN32TMP3 := $(patsubst -L%,$(LIB_PATH)%,$(LDLIBS1)) + WIN32TMP4 := $(patsubst -L%,$(LIB_PATH)%,$(LDLIBS_KERNEL)) ifdef SHAREDLIBS + ifdef G4LIB_USE_DLL + LDLIBS = $(TARGETLIB) $(patsubst -l%,lib%.a,$(WIN32TMP3)) $(patsubst -l%,lib%.lib,$(WIN32TMP4)) + else LDLIBS = $(TARGETLIB) $(patsubst -l%,lib%.lib,$(WIN32TMP2)) + endif else LDLIBS = $(TARGETLIB) $(patsubst -l%,lib%.a,$(WIN32TMP2)) endif diff --git a/config/common.gmk b/config/common.gmk index 0af3ba6408..d0d10a6f5b 100644 --- a/config/common.gmk +++ b/config/common.gmk @@ -1,4 +1,4 @@ -# $Id: common.gmk,v 1.39 2005/06/15 13:59:59 gunter Exp $ +# $Id: common.gmk,v 1.41 2005/12/07 09:41:54 gcosmo Exp $ # ---------------------------------------------------------------- # Common part of GNUmakefile for libraries. John Allison, 5/7/95. # ---------------------------------------------------------------- @@ -15,9 +15,11 @@ objects := $(patsubst src/%.cc,$(G4TMPDIR)/%.o,$(sources)) dependencies := $(patsubst src/%.cc,$(G4TMPDIR)/%.d,$(sources)) g4libraries_to_build := +ifeq ($(G4LIB_NO_SHARED),) ifneq ($(G4LIB_BUILD_SHARED),) g4libraries_to_build += $(G4LIBDIR)/lib$(name).$(SHEXT) endif +endif ifneq ($(G4LIB_BUILD_STATIC),) g4libraries_to_build += $(G4LIBDIR)/lib$(name).a endif @@ -33,6 +35,7 @@ GPPFLAGS := "-M" lib: $(g4libraries_to_build) +ifeq ($(G4LIB_NO_SHARED),) ifneq ($(G4LIB_BUILD_SHARED),) # Make shared library. $(G4LIBDIR)/lib$(name).$(SHEXT): $(G4TMPDIR)/obj.last @@ -42,6 +45,7 @@ $(G4LIBDIR)/lib$(name).$(SHEXT): $(G4TMPDIR)/obj.last # use architecture specific macro defined in sys/$(G4SYSTEM).gmk $(build-granular-shared-lib) endif +endif ifneq ($(G4LIB_BUILD_STATIC),) # Make static (archive) library. @@ -50,7 +54,9 @@ $(G4LIBDIR)/lib$(name).a: $(G4TMPDIR)/obj.last @echo Creating/replacing object files in $(G4LIBDIR)/lib$(name).a ... @rm -f $(G4LIBDIR)/lib$(name).a @$(AR) $(OUT_LIB)$(G4LIBDIR)/lib$(name).a $(G4TMPDIR)/*.o - @if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then ranlib $(G4LIBDIR)/lib$(name).a ;fi + @if [ X$(G4SYSTEM) != XWIN32-VC ] ; then \ + if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then \ + ranlib $(G4LIBDIR)/lib$(name).a ; fi ; fi endif ############################################################################### diff --git a/config/globlib.gmk b/config/globlib.gmk index d2beac1870..db45214f8e 100644 --- a/config/globlib.gmk +++ b/config/globlib.gmk @@ -1,4 +1,4 @@ -# $Id: globlib.gmk,v 1.26 2005/06/15 13:59:59 gunter Exp $ +# $Id: globlib.gmk,v 1.28 2005/12/07 09:53:46 gcosmo Exp $ # -------------------------------------------------------------- # Script for compound libraries. Gabriele Cosmo, 25/6/98. # -------------------------------------------------------------- @@ -20,12 +20,14 @@ makesub: g4libraries_to_build:= +ifeq ($(G4LIB_NO_SHARED),) ifneq ($(G4LIB_BUILD_SHARED),) SHARED_LIB=$(G4LIBDIR)/lib$(name).$(SHEXT) g4libraries_to_build += $(SHARED_LIB) else SHARED_LIB= endif +endif ifneq ($(G4LIB_BUILD_STATIC),) g4libraries_to_build += $(G4LIBDIR)/lib$(name).a @@ -68,14 +70,16 @@ $(G4LIBDIR)/lib$(name).a: \ # # # - @if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then \ - ranlib $(G4LIBDIR)/lib$(name).a ; fi + @if [ X$(G4SYSTEM) != XWIN32-VC ] ; then \ + if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then \ + ranlib $(G4LIBDIR)/lib$(name).a ; fi ; fi endif ## ## make shared libraries ## +ifeq ($(G4LIB_NO_SHARED),) ifneq ($(G4LIB_BUILD_SHARED),) $(SHARED_LIB): $(foreach dir,$(SUBLIBS),$(G4TMP)/$(G4SYSTEM)/$(dir)/obj.last) @if [ ! -d $(G4LIBDIR) ] ; then mkdir $(G4LIBDIR) ; fi @@ -84,6 +88,7 @@ $(SHARED_LIB): $(foreach dir,$(SUBLIBS),$(G4TMP)/$(G4SYSTEM)/$(dir)/obj.last) # use system specific commands to build the library $(build-global-shared-lib) endif +endif objs: @for dir in $(SUBDIRS); \ diff --git a/config/scripts/env.csh.SH b/config/scripts/env.csh.SH index 844588ce6b..652cc4e8ff 100755 --- a/config/scripts/env.csh.SH +++ b/config/scripts/env.csh.SH @@ -211,6 +211,12 @@ setenv G4VIS_BUILD_OIX_DRIVER 1 echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER" endif +#+ +if ( X$g4vis_build_raytracerx_driver == Xy ) then +setenv G4VIS_BUILD_RAYTRACERX_DRIVER 1 +echo "On this machine the G4VIS_BUILD_RAYTRACERX_DRIVER=\$G4VIS_BUILD_RAYTRACERX_DRIVER" +endif + #+ if ( X$g4vis_build_oiwin32_driver == Xy ) then setenv G4VIS_BUILD_OIWIN32_DRIVER 1 @@ -253,6 +259,12 @@ setenv G4VIS_USE_OIX 1 echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX" endif +#+ +if ( X$g4vis_use_raytracerx == Xy ) then +setenv G4VIS_USE_RAYTRACERX 1 +echo "On this machine the G4VIS_USE_RAYTRACERX=\$G4VIS_USE_RAYTRACERX" +endif + #+ if ( X$g4vis_use_oiwin32 == Xy ) then setenv G4VIS_USE_OIWIN32 1 diff --git a/config/scripts/env.sh.SH b/config/scripts/env.sh.SH index 570bf9158b..9fd4c429ec 100755 --- a/config/scripts/env.sh.SH +++ b/config/scripts/env.sh.SH @@ -291,6 +291,15 @@ echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER" fi fi +#+ +if [ X$g4vis_build_raytracerx_driver = Xy ] ; then +G4VIS_BUILD_RAYTRACERX_DRIVER=1 +export G4VIS_BUILD_RAYTRACERX_DRIVER +if [ X\$g4non_display = X ] ; then +echo "On this machine the G4VIS_BUILD_RAYTRACERX_DRIVER=\$G4VIS_BUILD_RAYTRACERX_DRIVER" +fi +fi + #+ if [ X$g4vis_build_oiwin32_driver = Xy ] ; then G4VIS_BUILD_OIWIN32_DRIVER=1 @@ -354,6 +363,15 @@ echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX" fi fi +#+ +if [ X$g4vis_use_raytracerx = Xy ] ; then +G4VIS_USE_RAYTRACERX=1 +export G4VIS_USE_RAYTRACERX +if [ X\$g4non_display = X ] ; then +echo "On this machine the G4VIS_USE_RAYTRACERX=\$G4VIS_USE_RAYTRACERX" +fi +fi + #+ if [ X$g4vis_use_oiwin32 = Xy ] ; then G4VIS_USE_OIWIN32=1 diff --git a/config/scripts/install.sh.SH b/config/scripts/install.sh.SH index de91881734..b10f243239 100755 --- a/config/scripts/install.sh.SH +++ b/config/scripts/install.sh.SH @@ -240,6 +240,13 @@ export G4VIS_BUILD_OIX_DRIVER echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER" fi +#+ +if [ X$g4vis_build_raytracerx_driver = Xy ] ; then +G4VIS_BUILD_RAYTRACERX_DRIVER=1 +export G4VIS_BUILD_RAYTRACERX_DRIVER +echo "On this machine the G4VIS_BUILD_RAYTRACERX_DRIVER=\$G4VIS_BUILD_RAYTRACERX_DRIVER" +fi + #+ if [ X$g4vis_build_oiwin32_driver = Xy ] ; then G4VIS_BUILD_OIWIN32_DRIVER=1 @@ -289,6 +296,13 @@ export G4VIS_USE_OIX echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX" fi +#+ +if [ X$g4vis_use_raytracerx = Xy ] ; then +G4VIS_USE_RAYTRACERX=1 +export G4VIS_USE_RAYTRACERX +echo "On this machine the G4VIS_USE_RAYTRACERX=\$G4VIS_USE_RAYTRACERX" +fi + #+ if [ X$g4vis_use_oiwin32 = Xy ] ; then G4VIS_USE_OIWIN32=1 diff --git a/config/sys/WIN32-VC.gmk b/config/sys/WIN32-VC.gmk index 9ddea8b44c..bc0802b33b 100644 --- a/config/sys/WIN32-VC.gmk +++ b/config/sys/WIN32-VC.gmk @@ -10,9 +10,9 @@ ifeq ($(G4SYSTEM),WIN32-VC) CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name) endif endif - CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 + CXXFLAGS += -MD -GR -EHsc -Zm200 -nologo CXXFLAGS += -D_CONSOLE -D_WIN32 -DOS - CPPFLAGS += -DWIN32 -DXPNET + CPPFLAGS += -DWIN32 -DXPNET -D_CRT_SECURE_NO_DEPRECATE LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll SHEXT := dll diff --git a/config/sys/WIN32-g++.gmk b/config/sys/WIN32-g++.gmk index 006e6a7ceb..d84b7e653a 100644 --- a/config/sys/WIN32-g++.gmk +++ b/config/sys/WIN32-g++.gmk @@ -7,7 +7,8 @@ # ifeq ($(G4SYSTEM),WIN32-g++) CXX := g++ - CXXFLAGS := -Wall -ansi -pedantic -pipe + CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long + CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -pipe ifdef G4OPTIMISE CXXFLAGS += -O FCFLAGS := -O diff --git a/environments/MOMO/MomoHome/include/MomoEventAction.hh b/environments/MOMO/MomoHome/include/MomoEventAction.hh index bf77c3b3b7..b33538ae63 100644 --- a/environments/MOMO/MomoHome/include/MomoEventAction.hh +++ b/environments/MOMO/MomoHome/include/MomoEventAction.hh @@ -22,7 +22,7 @@ // // Taken from // $Id: MomoEventAction.hh,v 1.1 2003/11/04 09:02:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef MomoEventAction_h diff --git a/environments/MOMO/MomoHome/include/MomoRunAction.hh b/environments/MOMO/MomoHome/include/MomoRunAction.hh index b173162a67..b079ed84ec 100644 --- a/environments/MOMO/MomoHome/include/MomoRunAction.hh +++ b/environments/MOMO/MomoHome/include/MomoRunAction.hh @@ -22,7 +22,7 @@ // // Taken after // $Id: MomoRunAction.hh,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef MomoRunAction_h diff --git a/environments/MOMO/MomoHome/src/MomoEventAction.cc b/environments/MOMO/MomoHome/src/MomoEventAction.cc index 2690a91ee1..0f9659cd7a 100644 --- a/environments/MOMO/MomoHome/src/MomoEventAction.cc +++ b/environments/MOMO/MomoHome/src/MomoEventAction.cc @@ -22,7 +22,7 @@ // // Taken from // $Id: MomoEventAction.cc,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/environments/MOMO/MomoHome/src/MomoRunAction.cc b/environments/MOMO/MomoHome/src/MomoRunAction.cc index b85f539fb3..9d511ddaed 100644 --- a/environments/MOMO/MomoHome/src/MomoRunAction.cc +++ b/environments/MOMO/MomoHome/src/MomoRunAction.cc @@ -22,7 +22,7 @@ // // Taken from // $Id: MomoRunAction.cc,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/History b/examples/History index 40c0075e0b..7262a5f24e 100644 --- a/examples/History +++ b/examples/History @@ -1,4 +1,4 @@ -$Id: History,v 1.99 2005/06/30 06:48:07 gcosmo Exp $ +$Id: History,v 1.105 2005/12/15 19:07:53 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,53 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +15th December 2005 Gabriele Cosmo (examples-V08-00-00) +- Updated reference outputs according to reference tag geant4-08-00-ref-00. +- Includes tags: air_shower-V07-01-02, brachy-V07-01-00, ccal-V07-01-01, + cosmicray_charging-V07-01-02, gammaraytel-V07-01-00, + hadrontherapy-V07-01-06, lAr_calorimeter-V07-01-00, + medical_linac-V07-01-05, purtag-V07-01-00, radmon-V07-01-14, + radioprotection-V07-01-04, Rich-V07-01-00, Tiara-V07-01-05, + DMX-V07-01-03, XrayFluo-V07-01-03, xraytel-V07-01-03, + AnaEx01-V07-01-01, exampleB01-V07-01-02, exampleB02-V07-01-03, + muonprocesses-V07-01-01, photonprocesses-V07-01-01, + testem1-V07-01-02, testem2-V07-01-01, testem3-V07-01-04, + testem4-V07-01-00, testem5-V07-01-03, testem6-V07-01-02, + testem7-V07-01-02, testem9-V07-01-05, testem10-V07-01-01, + testem11-V07-01-03, testem12-V07-01-04, exHepMC-V07-01-01, + DICOM-V07-01-00, ExDiane-V07-01-00, extended_exampleRE-V07-01-00, + exampleN03-V07-01-04, exampleN07-V07-01-00. + +18th November 2005 Gabriele Cosmo (examples-V07-01-05) +- Updated reference outputs according to reference tag geant4-07-01-ref-05. +- Includes tags: air_shower-V07-01-00, ccal-V07-01-00, Tiara-V07-01-00, + cosmicray_charging-V07-01-00, XrayFluo-V07-01-00, + DMX-V07-01-00, exbiasing-V07-01-00, testem1-V07-01-01, + testem3-V07-01-03, testem5-V07-01-01, testem9-V07-01-03, + testem11-V07-01-02, testem12-V07-01-03, exHepMC-V07-01-00, + olapex-V07-01-00, ParN02-V07-01-00, ParN04-V07-01-00, + exparam-V07-01-01, exrdm-V07-01-01, exampleN05-V07-01-01. + +31st October 2005 Gabriele Cosmo (examples-V07-01-04) +- Updated reference outputs according to reference tag geant4-07-01-ref-04. +- Includes tags: testem1-V07-01-00, testem2-V07-01-00, testem3-V07-01-01, + testem5-V07-01-00, testem7-V07-01-00, testem9-V07-01-01, + testem10-V07-01-00, testem11-V07-01-01, testem12-V07-01-02, + fieldex02-V07-01-00, fieldex03-V07-01-00, gtherapy-V07-01-01, + exam-ext-vix-V07-01-00, exampleN03-V07-01-01. + +30th September 2005 Gabriele Cosmo (examples-V07-01-03) +- Updated reference outputs according to reference tag geant4-07-01-ref-03. +- Includes tag testem9-V07-01-00. + +2nd September 2005 Gabriele Cosmo (examples-V07-01-02) +- Updated reference outputs according to reference tag geant4-07-01-ref-02. +- Includes tag gtherapy-V07-01-00. + +27th July 2005 Gabriele Cosmo (examples-V07-01-01) +- Includes tags: testem11-V07-01-00, testem12-V07-01-01, exgps-V07-01-00, + persistencyEx-V07-01-00, exrdm-V07-01-00, exampleN03-V07-01-00. + 30th June 2005 Gabriele Cosmo (examples-V07-01-00) - Updated reference outputs according to reference tag geant4-07-01-ref-00. - Includes tags: air_shower-V07-00-01, brachy-V07-00-01, gammaraytel-V07-00-01, diff --git a/examples/advanced/Rich/History b/examples/advanced/Rich/History index dc437fb7bc..b4ecf676ef 100644 --- a/examples/advanced/Rich/History +++ b/examples/advanced/Rich/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.8 2005/05/30 09:01:05 ribon Exp $ +$Id: History,v 1.9 2005/12/08 16:42:38 ribon Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,9 @@ $Id: History,v 1.8 2005/05/30 09:01:05 ribon Exp $ Category History file --------------------- +08.12.2005 - A.Ribon (Rich-V07-01-00) + Migration to CLHEP namespace. + 30.03.2005 - A.Ribon (Rich-V07-00-01) Replaced with and cout with G4cout . diff --git a/examples/advanced/Rich/RichTbSim.cc b/examples/advanced/Rich/RichTbSim.cc index 864c4cbf66..2da2257f47 100644 --- a/examples/advanced/Rich/RichTbSim.cc +++ b/examples/advanced/Rich/RichTbSim.cc @@ -59,7 +59,7 @@ int main(int argc,char** argv) { G4long myseed = 345354; - HepRandom::setTheSeed(myseed); + CLHEP::HepRandom::setTheSeed(myseed); // Run manager diff --git a/examples/advanced/Tiara/GNUmakefile b/examples/advanced/Tiara/GNUmakefile index 0cb833ef98..5e5257facb 100644 --- a/examples/advanced/Tiara/GNUmakefile +++ b/examples/advanced/Tiara/GNUmakefile @@ -1,6 +1,6 @@ # $Id: GNUmakefile,v 1.7 2004/12/08 15:37:13 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # -------------------------------------------------------------- diff --git a/examples/advanced/Tiara/History b/examples/advanced/Tiara/History index b79a648a3f..74c8389c49 100644 --- a/examples/advanced/Tiara/History +++ b/examples/advanced/Tiara/History @@ -1,6 +1,6 @@ -# $Id: History,v 1.27 2005/05/03 10:05:48 allison Exp $ +# $Id: History,v 1.29 2005/12/16 08:30:21 ahoward Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- ========================================================= @@ -19,14 +19,21 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +December 15th, 2005 A.Howard +- Migration to CLHEP namespace - requires cloning of class in python +- Migrated to non-static particles + +November 15th, 2005 G.Cosmo - Tiara-V07-01-00 +- Migration to from deprecated . + +May 3rd, 2005 J.Allison - Replaced vis manager with G4VisExecutive. March 17th, 2005 G.Daquino - Tiara-V07-00-00 -- migration of Tiara (working with PI) from rh73 to slc3 +- Migration of Tiara (working with PI) from rh73 to slc3 Dec 14th, 2004 G.Daquino - Tiara-V06-02-02 -- update of GNUmakefiles to the new phys_lists structure +- Update of GNUmakefiles to the new phys_lists structure Dec 13th, 2004 G.Cosmo - Tiara-V06-02-01 - Use new phys-lists structure. diff --git a/examples/advanced/Tiara/README b/examples/advanced/Tiara/README index 0930302737..c29f7f433c 100644 --- a/examples/advanced/Tiara/README +++ b/examples/advanced/Tiara/README @@ -1,6 +1,6 @@ # $Id: README,v 1.21 2005/03/17 19:48:27 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- Simulation of the TIARA experiment using importance sampling diff --git a/examples/advanced/Tiara/envCommon.csh b/examples/advanced/Tiara/envCommon.csh index 051ac6605d..06c6c31d34 100644 --- a/examples/advanced/Tiara/envCommon.csh +++ b/examples/advanced/Tiara/envCommon.csh @@ -1,6 +1,6 @@ # $Id: envCommon.csh,v 1.13 2005/03/17 19:48:27 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # Before sourcing this script make sure you have set the # environment variables according to the description in README. diff --git a/examples/advanced/Tiara/envCommon.sh b/examples/advanced/Tiara/envCommon.sh new file mode 100644 index 0000000000..97633ec8b0 --- /dev/null +++ b/examples/advanced/Tiara/envCommon.sh @@ -0,0 +1,49 @@ +#!/bin/bash +echo have to set PI_DIR and PYTHON_LIB_DIR and SWIG_BASE_DIR +if [ -n $SWIG_BASE_DIR ]; then + echo SWIG_BASE_DIR is $SWIG_BASE_DIR +else + echo SWIG_BASE_DIR default is /usr/local + export SWIG_BASE_DIR=/usr/local +fi +if [ -n $PYTHON_INCLUDE_DIR ]; then + echo PYTHON_INCLUDE_DIR is $PYTHON_INCLUDE_DIR +else + export PYTHON_INCLUDE_DIR=/usr/include/python2.3 + echo PYTHON_INCLUDE_DIR default is $PYTHON_INCLUDE_DIR +fi +if [ -n $PYTHON_LIB_DIR ]; then + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PYTHON_LIB_DIR} +else + echo Please set PYTHON_LIB_DIR +fi +export PYTHONVERSION=2.3 +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/TiaraWrapper:${G4WORKDIR}/tmp/${G4SYSTEM}/G4KernelWrapper:${G4WORKDIR}/tmp/${G4SYSTEM}/CLHEPWrapper +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/tiara +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM} +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PYTHON_LIB_DIR} +export TIARA_BASE=`pwd` +export TIARASCRIPTS=${TIARA_BASE}/source/py_modules +export PYTHONPATH=${PYTHONPATH}:${LD_LIBRARY_PATH} +export PYTHONPATH=${PYTHONPATH}:${TIARA_BASE}/run:${TIARASCRIPTS} +export PYTHONPATH=${PYTHONPATH}:${TIARA_BASE}/source/TiaraWrapper +export PYTHONPATH=${PYTHONPATH}:${TIARA_BASE}/source/G4KernelWrapper +export PYTHONPATH=${PYTHONPATH}:${TIARA_BASE}/source/CLHEPWrapper +if [ -n $SWIG_VERSION ]; then + echo SWIG_VERSION is $SWIG_VERSION +else + export SWIG_VERSION=1.3.15 + echo setting SWIG_VERSION to default $SWIG_VERSION +fi +export SWIG_INCDIRS="-I${SWIG_BASE_DIR}/lib/swig_lib -I${SWIG_BASE_DIR}/lib/swig_lib/python" +if [ -n $SWIG ]; then + echo SWIG executable is $SWIG +endif + export SWIG=${SWIG_BASE_DIR}/bin/swig + echo setting SWIG executable to $SWIG +fi +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/CLHEPWrapper +export PYTHONPATH=${PYTHONPATH}:${TIARA_BASE}/source/CLHEPWrapper +echo if python2.3 is not picked up then execute following command +echo "'cp $PI_DIR/libpython2.3.so $G4LIB/$G4SYSTEM/.'" +echo finished envCommon.sh diff --git a/examples/advanced/Tiara/run/runSim.py b/examples/advanced/Tiara/run/runSim.py index 0b6b8c41f7..916e342dbf 100755 --- a/examples/advanced/Tiara/run/runSim.py +++ b/examples/advanced/Tiara/run/runSim.py @@ -1,8 +1,8 @@ #!/usr/bin/env python # -# $Id: runSim.py,v 1.11 2005/03/17 19:48:27 daquinog Exp $ +# $Id: runSim.py,v 1.12 2005/12/15 16:23:11 ahoward Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # importing python libraries @@ -155,6 +155,9 @@ tApp.specifyPhysicsList(physList, particleCut) tApp.setScoreDetectorCreator(scoreDetectorCreator) tApp.buildGeometry() tiara_dir = os.environ["TIARA_BASE"] + +tApp.setPhysics() + primGenBuilder = tiaraGenerators.\ TiaraDPSEnergyGenerator(tiaraSpecs, tiara_dir + diff --git a/examples/advanced/Tiara/run/runSimNoAnalysis.py b/examples/advanced/Tiara/run/runSimNoAnalysis.py index bc35f01657..b4be3f184c 100755 --- a/examples/advanced/Tiara/run/runSimNoAnalysis.py +++ b/examples/advanced/Tiara/run/runSimNoAnalysis.py @@ -1,8 +1,8 @@ #!/usr/bin/env python # -# $Id: runSimNoAnalysis.py,v 1.6 2005/03/17 19:48:27 daquinog Exp $ +# $Id: runSimNoAnalysis.py,v 1.7 2005/12/15 16:23:06 ahoward Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- @@ -124,11 +124,14 @@ tApp.buildGeometry() tiara_dir = os.environ["TIARA_BASE"] +tApp.setPhysics() + #primGenBuilder = tiaraGenerators.\ # TiaraDPSEnergyGenerator(tiaraSpecs, # tiara_dir + # "/data/expDataConverted/dpsSource.xml") #primGenBuilder = tiaraGenerators.TiaraPrimaryGenerator(tiaraSpecs) + primGenBuilder = tiaraGenerators.FixedEnergyPrimaryGenerator(tiaraSpecs) tApp.setPrimaryGenerator(primGenBuilder.primGen) diff --git a/examples/advanced/Tiara/run/runVisMode.py b/examples/advanced/Tiara/run/runVisMode.py index 912545ca1f..50117354b9 100644 --- a/examples/advanced/Tiara/run/runVisMode.py +++ b/examples/advanced/Tiara/run/runVisMode.py @@ -2,7 +2,7 @@ # # $Id: runVisMode.py,v 1.5 2005/03/17 19:48:27 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/run/vis.mac b/examples/advanced/Tiara/run/vis.mac index af2605419e..a9581494be 100644 --- a/examples/advanced/Tiara/run/vis.mac +++ b/examples/advanced/Tiara/run/vis.mac @@ -1,6 +1,6 @@ # $Id: vis.mac,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i b/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i index 09456e507d..4804b2b870 100644 --- a/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i +++ b/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i @@ -1,6 +1,6 @@ -# $Id: CLHEP.i,v 1.4 2004/12/08 15:37:14 daquinog Exp $ +# $Id: CLHEP.i,v 1.5 2005/12/15 14:23:31 ahoward Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- @@ -12,6 +12,8 @@ %include CLHEP/Units/SystemOfUnits.h +namespace CLHEP { + class Hep3Vector { public: @@ -139,8 +141,8 @@ public: // Rotates around the axis specified by another Hep3Vector. // (Uses methods of HepRotation, forcing linking in of Rotation.cc.) - Hep3Vector & operator *= (const HepRotation &); - Hep3Vector & transform(const HepRotation &); + Hep3Vector & operator *= (const CLHEP::HepRotation &); + Hep3Vector & transform(const CLHEP::HepRotation &); // Transformation with a Rotation matrix. @@ -312,10 +314,10 @@ public: Hep3Vector & rotate (const Hep3Vector & axis, double delta); // Synonym for rotate (delta, axis) - Hep3Vector & rotate (const HepAxisAngle & ax); + Hep3Vector & rotate (const CLHEP::HepAxisAngle & ax); // HepAxisAngle is a struct holding an axis direction and an angle. - Hep3Vector & rotate (const HepEulerAngles & e); + Hep3Vector & rotate (const CLHEP::HepEulerAngles & e); Hep3Vector & rotate (double phi, double theta, double psi); @@ -323,7 +325,11 @@ public: // those of Goldstein Classical Mechanics page 107. }; + +} // namespace CLHEP + + %inline %{ - typedef Hep3Vector G4ThreeVector; + typedef CLHEP::Hep3Vector G4ThreeVector; %} diff --git a/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i b/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i index 52d25842cf..8b667bada9 100644 --- a/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i +++ b/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i @@ -1,6 +1,6 @@ # $Id: G4String.i,v 1.1 2003/06/17 15:25:01 mdressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- // coppied from std_string.i diff --git a/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i b/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i index a0343ed499..2792a47be5 100644 --- a/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i +++ b/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i @@ -1,6 +1,6 @@ -# $Id: G4Kernel.i,v 1.5 2003/06/20 12:41:06 dressel Exp $ +# $Id: G4Kernel.i,v 1.7 2005/12/15 14:24:56 ahoward Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- %module G4Kernel @@ -41,7 +41,7 @@ #include "G4VIStore.hh" #include "G4IStore.hh" #include "G4UserSteppingAction.hh" -#include +#include #include "G4VisManager.hh" #include "G4VUserDetectorConstruction.hh" %} @@ -89,7 +89,7 @@ %include G4ScoreTable.hh %extend G4ScoreTable { const char *Write(const G4MapGeometryCellCellScorer &cs){ - std::ostrstream tmpout; + std::ostringstream tmpout; self->Print(cs, &tmpout); std::string *value = new std::string(tmpout.str()); return value->c_str(); @@ -202,7 +202,7 @@ class G4PVPlacement : public G4VPhysicalVolume { public: G4PVPlacement(G4RotationMatrix *pRot, - const Hep3Vector &tlate, + const CLHEP::Hep3Vector &tlate, G4LogicalVolume *pCurrentLogical, const G4String &pName, G4LogicalVolume *pMotherLogical = 0, diff --git a/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i b/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i index 6a161dae26..ceccc77212 100644 --- a/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i +++ b/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i @@ -1,6 +1,6 @@ -# $Id: Tiara.i,v 1.8 2004/12/08 15:37:14 daquinog Exp $ +# $Id: Tiara.i,v 1.9 2005/12/14 13:18:40 ahoward Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- %module Tiara @@ -29,7 +29,6 @@ #include "TiaraVisEventAction.hh" #include "TiaraTimedEventAction.hh" #include "TiaraMeasure.hh" -#include "TiaraVisManager.hh" #include "TiaraTally.hh" #include "TiaraRandom.hh" %} @@ -83,8 +82,6 @@ %include TiaraTimedEventAction.hh -%include TiaraVisManager.hh - %include TiaraRandom.hh %include LHEP_BIC_HP.hh diff --git a/examples/advanced/Tiara/source/py_modules/dataAcess.py b/examples/advanced/Tiara/source/py_modules/dataAcess.py index b84fbb74da..72baac7418 100644 --- a/examples/advanced/Tiara/source/py_modules/dataAcess.py +++ b/examples/advanced/Tiara/source/py_modules/dataAcess.py @@ -1,6 +1,6 @@ # $Id: dataAcess.py,v 1.3 2003/06/26 11:54:13 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import os diff --git a/examples/advanced/Tiara/source/py_modules/detector.py b/examples/advanced/Tiara/source/py_modules/detector.py index 858fbe397d..3896e5a8bf 100644 --- a/examples/advanced/Tiara/source/py_modules/detector.py +++ b/examples/advanced/Tiara/source/py_modules/detector.py @@ -1,6 +1,6 @@ # $Id: detector.py,v 1.3 2003/06/26 11:54:13 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/dpsManip.py b/examples/advanced/Tiara/source/py_modules/dpsManip.py index fd48d71d66..d5f52722c6 100644 --- a/examples/advanced/Tiara/source/py_modules/dpsManip.py +++ b/examples/advanced/Tiara/source/py_modules/dpsManip.py @@ -1,6 +1,6 @@ # $Id: dpsManip.py,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import math diff --git a/examples/advanced/Tiara/source/py_modules/extractShelve.py b/examples/advanced/Tiara/source/py_modules/extractShelve.py index 95739cda2a..82f67ae89a 100644 --- a/examples/advanced/Tiara/source/py_modules/extractShelve.py +++ b/examples/advanced/Tiara/source/py_modules/extractShelve.py @@ -1,6 +1,6 @@ # $Id: extractShelve.py,v 1.3 2003/07/04 13:26:31 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import string diff --git a/examples/advanced/Tiara/source/py_modules/myPI.py b/examples/advanced/Tiara/source/py_modules/myPI.py index 83452f5363..c32cfab912 100644 --- a/examples/advanced/Tiara/source/py_modules/myPI.py +++ b/examples/advanced/Tiara/source/py_modules/myPI.py @@ -1,6 +1,6 @@ # $Id: myPI.py,v 1.1 2004/06/09 15:04:36 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import sys diff --git a/examples/advanced/Tiara/source/py_modules/myUtils.py b/examples/advanced/Tiara/source/py_modules/myUtils.py index 3303a01694..35aef0d57a 100644 --- a/examples/advanced/Tiara/source/py_modules/myUtils.py +++ b/examples/advanced/Tiara/source/py_modules/myUtils.py @@ -1,6 +1,6 @@ # $Id: myUtils.py,v 1.6 2004/12/08 15:37:14 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/parallelHall.py b/examples/advanced/Tiara/source/py_modules/parallelHall.py index c47d47657e..e572cc6eca 100644 --- a/examples/advanced/Tiara/source/py_modules/parallelHall.py +++ b/examples/advanced/Tiara/source/py_modules/parallelHall.py @@ -1,6 +1,6 @@ # $Id: parallelHall.py,v 1.4 2003/06/20 12:41:06 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import G4Kernel diff --git a/examples/advanced/Tiara/source/py_modules/posLog.py b/examples/advanced/Tiara/source/py_modules/posLog.py index 47963339a1..e3e6cb63b5 100644 --- a/examples/advanced/Tiara/source/py_modules/posLog.py +++ b/examples/advanced/Tiara/source/py_modules/posLog.py @@ -1,6 +1,6 @@ # $Id: posLog.py,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/runSequence.py b/examples/advanced/Tiara/source/py_modules/runSequence.py index 0a31552dc6..ec42b50412 100644 --- a/examples/advanced/Tiara/source/py_modules/runSequence.py +++ b/examples/advanced/Tiara/source/py_modules/runSequence.py @@ -1,6 +1,6 @@ # $Id: runSequence.py,v 1.4 2004/06/09 15:04:36 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import Tiara diff --git a/examples/advanced/Tiara/source/py_modules/slabGeometry.py b/examples/advanced/Tiara/source/py_modules/slabGeometry.py index 0ee60b19b4..1f7a94b8b8 100644 --- a/examples/advanced/Tiara/source/py_modules/slabGeometry.py +++ b/examples/advanced/Tiara/source/py_modules/slabGeometry.py @@ -1,6 +1,6 @@ # $Id: slabGeometry.py,v 1.3 2003/06/20 12:41:07 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import math diff --git a/examples/advanced/Tiara/source/py_modules/tallyData.py b/examples/advanced/Tiara/source/py_modules/tallyData.py index d462079d26..76c59fd710 100644 --- a/examples/advanced/Tiara/source/py_modules/tallyData.py +++ b/examples/advanced/Tiara/source/py_modules/tallyData.py @@ -1,6 +1,6 @@ # $Id: tallyData.py,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/tiaraApplication.py b/examples/advanced/Tiara/source/py_modules/tiaraApplication.py index c5d7fc0388..c72f9fe3dc 100644 --- a/examples/advanced/Tiara/source/py_modules/tiaraApplication.py +++ b/examples/advanced/Tiara/source/py_modules/tiaraApplication.py @@ -1,6 +1,6 @@ -# $Id: tiaraApplication.py,v 1.5 2004/12/08 15:37:14 daquinog Exp $ +# $Id: tiaraApplication.py,v 1.6 2005/12/15 16:23:56 ahoward Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import string @@ -205,6 +205,11 @@ class TiaraApplet(object): return + def setPhysics(self): + self.tiaraSim.SetPhysicsList(self.physicsList) + return + + def setPrimaryGenerator(self, primGen): self.primGen = primGen self.tiaraSim.SetPrimaryGenerator(self.primGen) @@ -222,7 +227,6 @@ class TiaraApplet(object): def config(self): - self.tiaraSim.SetPhysicsList(self.physicsList) self.buildDetectors() self.tiaraSim.initialize() diff --git a/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py b/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py index 111caaa4a4..d25d56e3ef 100644 --- a/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py +++ b/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py @@ -1,6 +1,6 @@ # $Id: tiaraDetectors.py,v 1.4 2004/06/09 15:04:36 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py b/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py index 35d8a666cf..9482e11c70 100644 --- a/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py +++ b/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py @@ -1,6 +1,6 @@ # $Id: tiaraGenerators.py,v 1.3 2004/06/09 15:04:36 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import string diff --git a/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py b/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py index 8a44b26602..089b7fe8df 100644 --- a/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py +++ b/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py @@ -1,6 +1,6 @@ # $Id: tiaraSpecifications.py,v 1.3 2003/06/20 12:41:07 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/variableGeometry.py b/examples/advanced/Tiara/source/py_modules/variableGeometry.py index b1a7d2df16..5469d82c33 100644 --- a/examples/advanced/Tiara/source/py_modules/variableGeometry.py +++ b/examples/advanced/Tiara/source/py_modules/variableGeometry.py @@ -1,6 +1,6 @@ # $Id: variableGeometry.py,v 1.2 2003/06/16 17:06:45 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # import G4Kernel diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh index 6f16a17ae3..f14cbcb457 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorer.hh,v 1.3 2003/06/18 16:40:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class TiaraCellScorer diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh index 87ffc79f99..26529ec834 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorerStore.hh,v 1.2 2003/06/18 16:40:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class TiaraCellScorerStore diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh index 39fe661b18..e0e55731e7 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraConcreteShieldA.hh,v 1.3 2003/06/25 09:12:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh index 7355879f90..fea004497c 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraConcreteShieldB.hh,v 1.3 2003/06/25 09:12:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh b/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh index 1422aa29ad..846e3cdf78 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraDPSSampledEnergy.hh,v 1.6 2004/06/09 15:04:37 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh b/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh index 286cf08d1d..50d119809c 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraDimensions.hh,v 1.3 2003/06/25 09:12:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh b/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh index fa12490642..53d5dbe7bb 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraEnergyCutProcess.hh,v 1.3 2003/06/25 09:12:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh b/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh index a21eba1c6e..1b7ea2589f 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraFileAcess.hh,v 1.3 2003/06/25 09:12:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh index efa512de88..763a121959 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraFixedEnergyGenerator.hh,v 1.3 2003/06/25 09:12:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh b/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh index 98cb340b3a..2c0d86a723 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraGeometry.hh,v 1.4 2003/06/25 09:12:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh index 80026bba97..59011f7a5d 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIronShieldA.hh,v 1.3 2003/06/25 09:12:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh index ebf15f6bc5..d766b5cbb8 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIronShieldB.hh,v 1.3 2003/06/25 09:12:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh index e906cb9ae1..5a84c27e03 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIsotropicDirections.hh,v 1.3 2003/06/25 09:12:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh b/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh index bd3c5aa838..e110be50f3 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraMaterials.hh,v 1.4 2003/06/25 09:12:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh b/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh index c0a3455acf..d02b0fd30f 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraMeasure.hh,v 1.3 2003/06/25 09:12:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh index 173a5e8df7..02755e1058 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraPart.hh,v 1.3 2003/06/25 09:12:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh index e8c585ac64..6596203801 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraPhysicsList.hh,v 1.1.1.1 2003/06/12 13:08:24 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class TiaraPhysicsList diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh index 890e0b63ac..af394c8ab8 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraPrimaryGeneratorAction.hh,v 1.1.1.1 2003/06/12 13:08:24 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef TiaraPrimaryGeneratorAction_hh diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh b/examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh index c7b81d93c0..7b606d21bf 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraRandom.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraRandom.hh,v 1.3 2003/06/25 09:12:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh b/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh index 2bf8414b04..059b558cbf 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraSampledEnergy.hh,v 1.4 2003/06/25 09:12:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh b/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh index 4eb64fc4ca..fd471c2ca4 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraSim.hh,v 1.4 2003/06/25 09:12:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh b/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh index 2e6d7142a9..f046269acd 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraTally.hh,v 1.4 2003/06/25 09:12:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh index c2451485f0..515d692ff5 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraTimedEventAction.hh,v 1.1.1.1 2003/06/12 13:08:24 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class TiaraTimedEventAction diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh index d3e27f8877..940d7ff9e4 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVComponent.hh,v 1.4 2003/06/25 09:12:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh index cfe3c7af69..e0ea5d445e 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVDirectionGenerator.hh,v 1.3 2003/06/25 09:12:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh index ff8bfe08e2..cb3d283e69 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVSourceEnergyGenerator.hh,v 1.3 2003/06/25 09:12:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh index 0eae7996a4..921957cf50 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraVisEventAction.hh,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class TiaraVisEventAction diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh index eb7572c30e..e44647a5cf 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraVisRunAction.hh,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class TiaraVisRunAction diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc index aaa1173f94..714faad543 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorer.cc,v 1.4 2004/06/09 15:04:37 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc index aefb362536..f702d233ec 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorerStore.cc,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc b/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc index 5c4e0f716d..be6c800ad0 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldA.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraConcreteShieldA.cc,v 1.3 2003/06/25 09:12:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraConcreteShieldA.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc b/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc index 780cebc2ac..8cde99d765 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraConcreteShieldB.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraConcreteShieldB.cc,v 1.3 2003/06/25 09:12:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraConcreteShieldB.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc b/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc index 437335ae3b..63b21d232c 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraDPSSampledEnergy.cc,v 1.8 2004/06/09 15:04:37 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraDPSSampledEnergy.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc b/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc index d5f2b22bfd..2caa3fba92 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraDimensions.cc,v 1.3 2003/06/25 09:12:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraDimensions.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc b/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc index 8cca7e2a6f..7c93fa3829 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraEnergyCutProcess.cc,v 1.5 2004/12/08 15:37:15 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraEnergyCutProcess.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc b/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc index f54f7315cb..b3f4f85d7c 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraFileAcess.cc,v 1.3 2003/06/25 09:13:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraFileAcess.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc b/examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc index 0bfc53f503..c2d9e4a350 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraFixedEnergyGenerator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraFixedEnergyGenerator.cc,v 1.3 2003/06/25 09:13:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraFixedEnergyGenerator.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc b/examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc index f79b635f39..9c38ab9a7d 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraGeometry.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraGeometry.cc,v 1.4 2004/12/08 17:25:34 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraGeometry.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc b/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc index 623329be27..49d44bf8ac 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldA.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIronShieldA.cc,v 1.3 2003/06/25 09:13:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraIronShieldA.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc b/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc index cd6e7aebda..817a3b8e2d 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraIronShieldB.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIronShieldB.cc,v 1.3 2003/06/25 09:13:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraIronShieldB.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc b/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc index b66de2caf3..f675b2d89e 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraIsotropicDirections.cc,v 1.4 2003/12/04 11:08:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraIsotropicDirections.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc b/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc index 97ff14dbdc..df34daf9e1 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraMaterials.cc,v 1.4 2003/06/25 09:13:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraMaterials.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc b/examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc index e12e2bfd3e..943af4993f 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraMeasure.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraMeasure.cc,v 1.3 2003/06/25 09:13:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraMeasure.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc b/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc index 83995bb4af..54f33af35e 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraPhysicsList.cc,v 1.5 2004/12/08 15:37:15 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc index 01eaed4cc4..106b52ef05 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TiaraPrimaryGeneratorAction.cc,v 1.3 2003/12/09 08:48:05 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TiaraPrimaryGeneratorAction.cc,v 1.4 2005/12/15 14:25:33 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" @@ -48,7 +48,6 @@ TiaraPrimaryGeneratorAction(const TiaraVSourceEnergyGenerator& eG, particleGun(new G4ParticleGun(1)), fTally(tally) { - particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); particleGun-> SetParticlePosition(G4ThreeVector(0.0, 0.0, tiaraDimensions.targetPosZ)); @@ -83,6 +82,7 @@ operator=(const TiaraPrimaryGeneratorAction &rhs) void TiaraPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { + particleGun->SetParticleDefinition(G4Neutron::NeutronDefinition()); particleGun->SetParticleMomentumDirection(fDirectionGenerator-> GetDirection()); diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc b/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc index 06e4a5a65a..3cf5081068 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TiaraRandom.cc,v 1.3 2003/06/25 09:13:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TiaraRandom.cc,v 1.4 2005/12/15 14:24:10 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraRandom.hh" @@ -29,15 +29,15 @@ #include "Randomize.hh" void setRandomSeed(long seed) { - HepRandom::setTheSeed(seed); + CLHEP::HepRandom::setTheSeed(seed); } void setRandomStatus(const char *filename){ - HepRandom::restoreEngineStatus(filename); + CLHEP::HepRandom::restoreEngineStatus(filename); } void saveRandomStatus(const char *filename){ - HepRandom::saveEngineStatus(filename); + CLHEP::HepRandom::saveEngineStatus(filename); } diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc b/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc index 890ebf9aa9..75fdb24926 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraSampledEnergy.cc,v 1.4 2003/06/25 09:13:11 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraSampledEnergy.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraSim.cc b/examples/advanced/Tiara/source/tiara/src/TiaraSim.cc index 37d27222c9..7b8b6793da 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraSim.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraSim.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TiaraSim.cc,v 1.7 2005/05/03 10:21:17 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TiaraSim.cc,v 1.8 2005/12/15 16:24:36 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraSim.hh" @@ -84,6 +84,7 @@ void TiaraSim::AddTiaraEventAction(G4UserEventAction *eventAction) { void TiaraSim:: SetPhysicsList(G4VUserPhysicsList *physicsList) { fPhysics = physicsList; + frunMgr->SetUserInitialization(fPhysics); } void TiaraSim:: @@ -124,13 +125,8 @@ void TiaraSim::initialize(){ G4cout << "TiaraSim::initialize: no primary generator set" << G4endl; ready = false; } - if (!fPhysics) { - G4cout << "TiaraSim::initialize: no physics list set" << G4endl; - ready = false; - } if (ready) { frunMgr->SetUserInitialization(fGeometry); - frunMgr->SetUserInitialization(fPhysics); frunMgr->SetUserAction(fPrimary); if (fUserEventAction) { frunMgr->SetUserAction(fUserEventAction); diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc index a7d34904fc..e09e79708d 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraStackingAction.cc,v 1.4 2003/06/25 09:13:13 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraStackingAction.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc b/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc index 0505fe2fe6..bd917e2a59 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraTally.cc,v 1.4 2003/11/07 12:39:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraTally.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc index dd3f089e0b..5dd57f7d40 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TiaraTimedEventAction.cc,v 1.2 2003/06/13 16:05:33 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TiaraTimedEventAction.cc,v 1.3 2005/12/15 14:24:33 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -93,7 +93,7 @@ void TiaraTimedEventAction::EndOfEventAction(const G4Event* ) fTimeFromPreviousRuns+=fCurrentRunTime; fCurrentRunTime = 0; if (fFilename!="none") { - HepRandom::saveEngineStatus(fFilename); + CLHEP::HepRandom::saveEngineStatus(fFilename); } } diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc index c26dbdf37c..ae26ccf443 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVComponent.cc,v 1.3 2003/06/25 09:13:15 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraVComponent.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc index 272a8a9fa7..df4f6cd582 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVDirectionGenerator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVDirectionGenerator.cc,v 1.3 2003/06/25 09:13:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraVDirectionGenerator.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc index 09b236d579..68590fd248 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVSourceEnergyGenerator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraVSourceEnergyGenerator.cc,v 1.3 2003/06/25 09:13:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "TiaraVSourceEnergyGenerator.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc index 544c67a7e8..cc70a432e0 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVisEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraVisEventAction.cc,v 1.3 2003/06/18 16:40:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc index 975ddbeb52..965cc2e120 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraVisRunAction.cc,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/air_shower/History b/examples/advanced/air_shower/History index 32da03186e..9041fb2fab 100644 --- a/examples/advanced/air_shower/History +++ b/examples/advanced/air_shower/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2005/06/06 14:51:04 tomezb Exp $ +$Id: History,v 1.10 2005/12/07 13:16:19 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -7,6 +7,14 @@ $Id: History,v 1.8 2005/06/06 14:51:04 tomezb Exp $ History file ------------ +7.12.2005 -- S. Guatelli - air_shower-V07-01-02 + -- Compile with CLHEP 2.0.2.2 + +6.12.2005 -- S. Guatelli - air_shower-V07-01-01 + -- Warning deleted + +15.11.2005 -- G.Cosmo - air_shower-V07-01-00 + -- Migration to from deprecated . 06.06.2005 -- B.Tome - air_shower-V07-00-01 -- README updated; analysis with AIDA 3.2.1 and PI 1.3.3. diff --git a/examples/advanced/air_shower/Ultra.cc b/examples/advanced/air_shower/Ultra.cc index 0e3410a2e7..db4e701d55 100644 --- a/examples/advanced/air_shower/Ultra.cc +++ b/examples/advanced/air_shower/Ultra.cc @@ -52,11 +52,14 @@ #include "UltraPrimaryGeneratorAction.hh" #include "UltraPhysicsList.hh" #include "UltraEventAction.hh" +//#include "CLHEP/Random/RanluxEngine.h" int main(int argc,char** argv) { -//choose the Random engine from CLHEP (lets use C++ implementation of Jame's RANLUX generator) - HepRandom::setTheEngine(new RanluxEngine); +//choose the Random engine from CLHEP +//(lets use C++ implementation of Jame's RANLUX generator) + + CLHEP::HepRandom::setTheEngine(new CLHEP::RanluxEngine); G4RunManager* runManager = new G4RunManager; // UserInitialization classes - mandatory diff --git a/examples/advanced/air_shower/Visualisation.mac b/examples/advanced/air_shower/Visualisation.mac index 37b1ac6ead..8d4a490cc6 100644 --- a/examples/advanced/air_shower/Visualisation.mac +++ b/examples/advanced/air_shower/Visualisation.mac @@ -4,14 +4,16 @@ # # create empty scene # -/vis/scene/create Space -/vis/scene/notifyHandlers Space flush +#/vis/scene/create Space +#/vis/scene/notifyHandlers Space flush +/vis/scene/create # # Create a scene handler for a specific graphics system # (Edit the next line(s) to choose another graphic system) # +/vis/open OGLIX #/vis/open RayTracer -/vis/open OGLSX +#/vis/open OGLSX #/vis/open DAWNFILE #/vis/open HepRepFile #/vis/open VRML2FILE diff --git a/examples/advanced/air_shower/src/UltraPhysicsList.cc b/examples/advanced/air_shower/src/UltraPhysicsList.cc index 8ddde879b8..c690531164 100644 --- a/examples/advanced/air_shower/src/UltraPhysicsList.cc +++ b/examples/advanced/air_shower/src/UltraPhysicsList.cc @@ -36,7 +36,7 @@ // the relevant particles. Optical processes are declared. // #include "G4ios.hh" -#include "iomanip.h" +//#include "iomanip.h" #include "globals.hh" #include "UltraPhysicsList.hh" diff --git a/examples/advanced/air_shower/src/UltraRunAction.cc b/examples/advanced/air_shower/src/UltraRunAction.cc index 1083a0857e..c138606f30 100644 --- a/examples/advanced/air_shower/src/UltraRunAction.cc +++ b/examples/advanced/air_shower/src/UltraRunAction.cc @@ -56,8 +56,8 @@ UltraRunAction::UltraRunAction() G4int seed = 1; // RANLUX seed G4int luxury = 3; // RANLUX luxury level (3 is default) - HepRandom::setTheSeed(seed,luxury); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::setTheSeed(seed,luxury); + CLHEP::HepRandom::showEngineStatus(); theRunActMessenger = new UltraRunActionMessenger(this); } @@ -83,8 +83,8 @@ void UltraRunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status if (saveRndm > 0) - { HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("beginOfRun.rndm"); + { CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); } G4UImanager* UI = G4UImanager::GetUIpointer(); @@ -103,8 +103,8 @@ void UltraRunAction::EndOfRunAction(const G4Run* aRun) // save Rndm status if (saveRndm == 1) - { HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("endOfRun.rndm"); + { CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); } // Write histograms to file diff --git a/examples/advanced/air_shower/src/UltraRunActionMessenger.cc b/examples/advanced/air_shower/src/UltraRunActionMessenger.cc index afba2b8097..ba93ae7905 100644 --- a/examples/advanced/air_shower/src/UltraRunActionMessenger.cc +++ b/examples/advanced/air_shower/src/UltraRunActionMessenger.cc @@ -42,7 +42,7 @@ #include "G4UIparameter.hh" #include "G4UImanager.hh" #include "G4ios.hh" -#include +#include UltraRunActionMessenger::UltraRunActionMessenger(UltraRunAction* aRunAction) :theRunAction(aRunAction) @@ -70,7 +70,7 @@ void UltraRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValu if( command==runIDCmd ) { G4int id; - std::istrstream is((char*)nv); + std::istringstream is(nv); is >> id; theRunAction->MySetRunID(id); diff --git a/examples/advanced/brachytherapy/Brachy.cc b/examples/advanced/brachytherapy/Brachy.cc index 6b51efcbf1..c6aadbbab6 100644 --- a/examples/advanced/brachytherapy/Brachy.cc +++ b/examples/advanced/brachytherapy/Brachy.cc @@ -22,7 +22,7 @@ // // // $Id: Brachy.cc -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -115,29 +115,30 @@ int main(int argc ,char ** argv) } BrachyEventAction *pEventAction = new BrachyEventAction(); - pRunManager->SetUserAction(pEventAction ); + pRunManager -> SetUserAction(pEventAction ); - BrachyRunAction *pRunAction = new BrachyRunAction(sensitiveDetectorName); - pRunManager->SetUserAction(pRunAction); + BrachyRunAction *pRunAction = new BrachyRunAction(); + pRunManager -> SetUserAction(pRunAction); //Initialize G4 kernel - pRunManager->Initialize(); + pRunManager -> Initialize(); // get the pointer to the User Interface manager G4UImanager* UI = G4UImanager::GetUIpointer(); if (session) // Define UI session for interactive mode. { - G4cout<<" UI session starts ..."<< G4endl; - UI->ApplyCommand("/control/execute VisualisationMacro.mac"); - session->SessionStart(); + G4cout << " UI session starts ..." << G4endl; + UI -> ApplyCommand("/control/execute VisualisationMacro.mac"); + session -> SessionStart(); delete session; } else // Batch mode { G4String command = "/control/execute "; G4String fileName = argv[1]; - UI->ApplyCommand(command+fileName); + UI -> ApplyCommand(command+fileName); } + #ifdef G4ANALYSIS_USE BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); analysis -> finish(); diff --git a/examples/advanced/brachytherapy/History b/examples/advanced/brachytherapy/History index bd5d95c539..e9e713e9bc 100644 --- a/examples/advanced/brachytherapy/History +++ b/examples/advanced/brachytherapy/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.14 2005/05/30 09:21:09 guatelli Exp $ +$Id: History,v 1.15 2005/11/22 12:47:35 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,10 @@ $Id: History,v 1.14 2005/05/30 09:21:09 guatelli Exp $ Category History file --------------------- +22th November 2005 Susanna Guatelli (brachy-V07-01-00) +- Deleted bug in the RunAction. The results of the simulation + (energy deposit, position) are stored in a hit collection. + 30th May 2005 Susanna Guatelli (brachy-V07-00-01) - README updated; analysis with AIDA 3.2.1 and PI 1.3.3. diff --git a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh index bfa5df21f3..9026201023 100644 --- a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh +++ b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh @@ -26,7 +26,7 @@ // // // $Id: BrachyAnalysisManager.hh,v 1.9 2004/03/11 15:38:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh index db9dadf7f7..97bee9bcb9 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstruction.hh,v 1.15 2003/05/22 17:20:40 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh index 467de74907..b2e144bc23 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionI.hh,v 1.3 2003/05/22 17:20:40 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh index bda02c1de7..de5a7ae98a 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionIr.hh,v 1.3 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh index 942db49ed5..d2f3f4affb 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionLeipzig.hh,v 1.3 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ************************************************ diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh index 561037baab..ce9c91c69a 100644 --- a/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh +++ b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh @@ -28,7 +28,7 @@ // ***************************************** // // $Id: BrachyDetectorMessenger.hh,v 1.5 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // #ifndef BrachyDetectorMessenger_h diff --git a/examples/advanced/brachytherapy/include/BrachyEventAction.hh b/examples/advanced/brachytherapy/include/BrachyEventAction.hh index 0622cfc086..22b7ba3a92 100644 --- a/examples/advanced/brachytherapy/include/BrachyEventAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyEventAction.hh,v 1.14 2004/03/11 16:05:02 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: // S.Guatelli diff --git a/examples/advanced/brachytherapy/include/BrachyFactory.hh b/examples/advanced/brachytherapy/include/BrachyFactory.hh index 5e21018eac..a3772d329f 100644 --- a/examples/advanced/brachytherapy/include/BrachyFactory.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactory.hh @@ -23,7 +23,7 @@ // Code developed by: Susanna Guatelli // // $Id: BrachyFactory.hh,v 1.4 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryI.hh b/examples/advanced/brachytherapy/include/BrachyFactoryI.hh index 95ba9f3d1b..f8c3746940 100644 --- a/examples/advanced/brachytherapy/include/BrachyFactoryI.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactoryI.hh @@ -32,7 +32,7 @@ // // // $Id: BrachyFactoryI.hh,v 1.5 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh b/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh index d5a815e75e..5421e583d4 100644 --- a/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyFactoryIr.hh,v 1.4 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh b/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh index a5c1e73915..7c3cec332d 100644 --- a/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh +++ b/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyFactoryLeipzig.hh,v 1.4 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyMaterial.hh b/examples/advanced/brachytherapy/include/BrachyMaterial.hh index 3dde53009e..b763fe1a7e 100644 --- a/examples/advanced/brachytherapy/include/BrachyMaterial.hh +++ b/examples/advanced/brachytherapy/include/BrachyMaterial.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyMaterial.hh,v 1.5 2003/05/27 08:37:54 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh index a966d087e6..a920e49c91 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: BrachyPhantomHit.hh,v 1.5 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: BrachyPhantomHit.hh,v 1.6 2005/11/22 12:47:35 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ******************************** @@ -43,14 +43,11 @@ #include "G4THitsCollection.hh" #include "G4Allocator.hh" #include "G4ThreeVector.hh" -#include "G4LogicalVolume.hh" -#include "G4Transform3D.hh" -#include "G4RotationMatrix.hh" class BrachyPhantomHit : public G4VHit { public: - BrachyPhantomHit(G4LogicalVolume* ,G4int ,G4int ,G4int ); + BrachyPhantomHit(); ~BrachyPhantomHit(); BrachyPhantomHit(const BrachyPhantomHit &right); const BrachyPhantomHit& operator = (const BrachyPhantomHit &right); @@ -63,54 +60,30 @@ public: void Print(); private: - const G4LogicalVolume* logicalVolume;// Logical volume where the hit happened - G4int xHitPosition; // Hit x coordinate - G4int zHitPosition; // Hit z coordinate - G4int yHitPosition; // Hit y coordinate - G4ThreeVector hitPosition; //position of the hit - G4RotationMatrix rotation; // rotation of the logical volume + G4double xHitPosition; // Hit x coordinate + G4double zHitPosition; // Hit z coordinate + G4double yHitPosition; // Hit y coordinate G4double energyDeposit; // energy deposit associated with the hit public: - //... - // Set Hit position - inline void SetCellID(G4int XID,G4int YID,G4int ZID) - {xHitPosition = XID; zHitPosition = ZID; yHitPosition = YID; } - - inline G4int GetXID() // Get hit x coordinate + inline G4double GetXID() // Get hit x coordinate {return xHitPosition;} - inline G4int GetZID() // Get hit z coordinate + inline G4double GetZID() // Get hit z coordinate {return zHitPosition;} - inline G4int GetYID() // Get hit y coordinate + inline G4double GetYID() // Get hit y coordinate {return yHitPosition;} inline void SetEdep(G4double edep) //Set hit energy deposit {energyDeposit = edep;} - inline void AddEdep(G4double edep) // Add energy deposit - {energyDeposit += edep;} - inline G4double GetEdep() // Get energy deposit {return energyDeposit;} - inline void SetPos(G4ThreeVector xyz) // Set hit position - {hitPosition = xyz;} - - inline G4ThreeVector GetPos() // Get hit position - {return hitPosition;} - - inline void SetRot(G4RotationMatrix rmat) //set rotation - {rotation = rmat;} - - inline G4RotationMatrix GetRot() //get rotation - {return rotation;} - - //... - // It returns the logical volume where the hit happened - inline const G4LogicalVolume * GetLogicalVolume() - {return logicalVolume;} + inline void SetPosition(G4double xx, G4double yy, G4double zz) + // Set hit position + { xHitPosition = xx; yHitPosition = yy; zHitPosition = zz;} }; typedef G4THitsCollection BrachyPhantomHitsCollection; diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh index 1c07cb2ec2..c1c4c8f637 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomROGeometry.hh,v 1.5 2003/05/27 08:37:54 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ************************************ // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh b/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh index e1524e3318..9a27eb5309 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: BrachyPhantomSD.hh,v 1.6 2004/03/11 16:05:02 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: BrachyPhantomSD.hh,v 1.7 2005/11/22 12:47:35 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ******************************** // * * @@ -52,6 +52,9 @@ public: void clear(); void DrawAll(); void PrintAll(); + +private: + BrachyPhantomHitsCollection* phantomCollection; }; #endif diff --git a/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh b/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh index 38321757ad..f734d825e8 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhysicsList.hh,v 1.6 2002/11/18 15:18:36 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh index 5b02b0886b..f4bf7b2f4b 100644 --- a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorAction.hh,v 1.10 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ******************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh index 9151ab5930..fcced5948a 100644 --- a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorActionI.hh,v 1.5 2003/06/16 16:45:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh index 4cc8f0b6c8..e46d863ac0 100644 --- a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh +++ b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorActionIr.hh,v 1.5 2003/06/16 16:45:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ************************************************* // * * diff --git a/examples/advanced/brachytherapy/include/BrachyRunAction.hh b/examples/advanced/brachytherapy/include/BrachyRunAction.hh index 4c3cc31a65..89ae243c39 100644 --- a/examples/advanced/brachytherapy/include/BrachyRunAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyRunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: BrachyRunAction.hh,v 1.7 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: BrachyRunAction.hh,v 1.9 2005/11/22 11:00:47 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // @@ -41,7 +41,6 @@ class G4Run; class BrachyAnalysisManager; -class BrachyDetectorConstruction; class BrachyRunMessenger; class BrachyFactory; class BrachyFactoryIr; @@ -50,7 +49,7 @@ class BrachyFactoryI; class BrachyRunAction : public G4UserRunAction { public: - BrachyRunAction(G4String& ); + BrachyRunAction(); ~BrachyRunAction(); public: @@ -59,9 +58,6 @@ public: void SelectEnergy(G4int); private: - - G4String sensitiveDetectorName; - BrachyDetectorConstruction* detector; BrachyRunMessenger* runMessenger; BrachyFactory *factory; G4int sourceChoice; //select primary particle diff --git a/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh b/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh index 7fc2a76c3f..7664ecb2ac 100644 --- a/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh +++ b/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyRunMessenger.hh,v 1.3 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc index d3113f4d85..aa5f72d7b6 100644 --- a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc +++ b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyAnalysisManager.cc,v 1.15 2004/11/24 09:53:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifdef G4ANALYSIS_USE #include diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc index aa90e516c7..bb5cf378a9 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc @@ -35,7 +35,7 @@ // **************************************** // // $Id: BrachyDetectorConstruction.cc,v 1.26 2004/11/24 09:53:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyPhantomSD.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc index 7100f80c2f..4557fff1da 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc @@ -34,7 +34,7 @@ // **************************************** // // $Id: BrachyDetectorConstructionI.cc,v 1.6 2003/12/09 15:29:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "BrachyDetectorConstructionI.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc index b33b644093..293c8a29a0 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc @@ -35,7 +35,7 @@ // **************************************** // // $Id: BrachyDetectorConstructionIr.cc,v 1.8 2004/03/11 15:38:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "BrachyDetectorConstructionIr.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc index ac5fde4447..a9223efb92 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc @@ -36,7 +36,7 @@ // // // $Id: BrachyDetectorConstructionLeipzig.cc,v 1.7 2003/12/09 15:29:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc b/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc index c071776e7a..d688d3de48 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc @@ -32,7 +32,7 @@ // // // $Id: BrachyDetectorMessenger.cc,v 1.9 2004/11/24 09:53:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/brachytherapy/src/BrachyEventAction.cc b/examples/advanced/brachytherapy/src/BrachyEventAction.cc index 29bb135e1b..bb0e401145 100644 --- a/examples/advanced/brachytherapy/src/BrachyEventAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyEventAction.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyEventAction.cc,v 1.19 2004/03/11 16:05:03 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyEventAction.hh" #include "BrachyPhantomHit.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactory.cc b/examples/advanced/brachytherapy/src/BrachyFactory.cc index 2cbc31f136..5cc5ba8b41 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactory.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactory.cc @@ -32,7 +32,7 @@ // ******************************* // // $Id: BrachyFactory.cc,v 1.5 2003/12/09 15:29:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include"BrachyFactory.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryI.cc b/examples/advanced/brachytherapy/src/BrachyFactoryI.cc index ecc86333f9..e802d015a5 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactoryI.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactoryI.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryI.cc,v 1.4 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyFactoryI.hh" #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc b/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc index 9cf0afbfc3..de8cf5424a 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryIr.cc,v 1.4 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "BrachyFactoryIr.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc b/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc index e243193be6..68e1e5e4c7 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryLeipzig.cc,v 1.4 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyMaterial.cc b/examples/advanced/brachytherapy/src/BrachyMaterial.cc index 0efdedda0f..7ac2b34f3b 100644 --- a/examples/advanced/brachytherapy/src/BrachyMaterial.cc +++ b/examples/advanced/brachytherapy/src/BrachyMaterial.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyMaterial.cc,v 1.5 2004/03/11 15:38:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4MaterialPropertiesTable.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc index b025f3b015..caafe0e65b 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc @@ -30,22 +30,16 @@ // * * // ******************************** // -// $Id: BrachyPhantomHit.cc,v 1.5 2003/05/27 08:37:55 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: BrachyPhantomHit.cc,v 1.6 2005/11/22 12:47:35 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhantomHit.hh" #include "G4ios.hh" -#include "G4VVisManager.hh" -#include "G4Colour.hh" -#include "G4VisAttributes.hh" -#include "G4LogicalVolume.hh" G4Allocator BrachyPhantomHitAllocator; -BrachyPhantomHit::BrachyPhantomHit(G4LogicalVolume* logVol,G4int XID,G4int YID,G4int ZID) - :logicalVolume(logVol),xHitPosition(XID),zHitPosition(ZID),yHitPosition(YID) +BrachyPhantomHit::BrachyPhantomHit() { - energyDeposit = 0; } BrachyPhantomHit::~BrachyPhantomHit() @@ -59,9 +53,6 @@ BrachyPhantomHit::BrachyPhantomHit(const BrachyPhantomHit &right) zHitPosition = right.zHitPosition; yHitPosition = right.yHitPosition; energyDeposit = right.energyDeposit; - hitPosition = right.hitPosition; - rotation = right.rotation; - logicalVolume = right.logicalVolume; } const BrachyPhantomHit& BrachyPhantomHit::operator=(const BrachyPhantomHit &right) @@ -70,9 +61,6 @@ const BrachyPhantomHit& BrachyPhantomHit::operator=(const BrachyPhantomHit &righ zHitPosition = right.zHitPosition; yHitPosition = right.yHitPosition; energyDeposit = right.energyDeposit; - hitPosition = right.hitPosition; - rotation = right.rotation; - logicalVolume = right.logicalVolume; return *this; } diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc index e8ea08da95..50014eb92f 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc @@ -31,7 +31,7 @@ // ************************************ // // $Id: BrachyPhantomROGeometry.cc,v 1.9 2004/05/13 14:47:46 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyDummySD.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc index 17748de703..76563e7a9a 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc @@ -30,8 +30,8 @@ // * * // ******************************** // -// $Id: BrachyPhantomSD.cc,v 1.8 2004/05/13 14:47:46 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: BrachyPhantomSD.cc,v 1.9 2005/11/22 12:47:35 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhantomSD.hh" #include "BrachyPhantomHit.hh" @@ -50,16 +50,26 @@ BrachyPhantomSD::BrachyPhantomSD(G4String name):G4VSensitiveDetector(name) { - + G4String HCname; + SensitiveDetectorName = name; + collectionName.insert(HCname="phantomCollection"); } BrachyPhantomSD::~BrachyPhantomSD() { + } -void BrachyPhantomSD::Initialize(G4HCofThisEvent*) +void BrachyPhantomSD::Initialize(G4HCofThisEvent* HCE) { - } + phantomCollection = new BrachyPhantomHitsCollection + (SensitiveDetectorName,collectionName[0]); + static G4int HCID = -1; + if(HCID<0) + { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } + HCE->AddHitsCollection( HCID, phantomCollection ); + +} G4bool BrachyPhantomSD::ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) { @@ -75,12 +85,11 @@ G4bool BrachyPhantomSD::ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) if(energyDeposit != 0) { - -#ifdef G4ANALYSIS_USE + // Read Voxel indexes: i is the x index, k is the z index - G4int k = ROhist->GetReplicaNumber(1); - G4int i = ROhist->GetReplicaNumber(2); - G4int j = ROhist->GetReplicaNumber(); + G4int k = ROhist -> GetReplicaNumber(1); + G4int i = ROhist -> GetReplicaNumber(2); + G4int j = ROhist -> GetReplicaNumber(); G4int numberOfVoxelZ = 300; G4double voxelWidthZ = 1. *mm; @@ -88,6 +97,7 @@ G4bool BrachyPhantomSD::ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) G4double y = (- numberOfVoxelZ+1+2*j)*voxelWidthZ/2; G4double z = (- numberOfVoxelZ+1+2*k)*voxelWidthZ/2; +#ifdef G4ANALYSIS_USE BrachyAnalysisManager* analysis = BrachyAnalysisManager::getInstance(); analysis -> FillNtupleWithEnergy(x,y,z,energyDeposit); @@ -99,6 +109,12 @@ G4bool BrachyPhantomSD::ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) analysis -> DoseDistribution(x,energyDeposit/MeV); } #endif + + // Store the energy deposit and position in a Hit collection + BrachyPhantomHit* newHit = new BrachyPhantomHit(); + newHit -> SetEdep(energyDeposit); + newHit -> SetPosition(x,y,z); + phantomCollection -> insert( newHit ); } return true; } diff --git a/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc b/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc index 6063f80fe1..d48c490a35 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc @@ -31,7 +31,7 @@ // ********************************** // // $Id: BrachyPhysicsList.cc,v 1.10 2004/01/08 17:25:13 silvarod Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhysicsList.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc index bbb48ddb3e..efaeb7aa02 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc @@ -35,7 +35,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorAction.cc,v 1.16 2003/12/09 15:30:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "BrachyPrimaryGeneratorAction.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc index ef1fa87e9b..8aa6af91ad 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc @@ -35,7 +35,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorActionI.cc,v 1.8 2005/06/27 15:27:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc index 61f0e68d5b..0af4062c4a 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc @@ -35,7 +35,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorActionIr.cc,v 1.9 2005/06/27 15:27:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPrimaryGeneratorActionIr.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyRunAction.cc b/examples/advanced/brachytherapy/src/BrachyRunAction.cc index c4e4debb66..48540a2a87 100644 --- a/examples/advanced/brachytherapy/src/BrachyRunAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyRunAction.cc @@ -35,8 +35,8 @@ // * * // ******************************* // -// $Id: BrachyRunAction.cc,v 1.14 2004/11/24 09:53:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: BrachyRunAction.cc,v 1.16 2005/11/22 11:00:47 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyRunAction.hh" @@ -50,7 +50,6 @@ #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4ios.hh" -#include "BrachyDetectorConstruction.hh" #include "BrachyRunMessenger.hh" #include "G4SDManager.hh" #include "G4Timer.hh" @@ -58,17 +57,16 @@ #include "BrachyFactoryI.hh" #include "BrachyFactory.hh" #include "BrachyRunAction.hh" -BrachyRunAction::BrachyRunAction(G4String &SDNAME) + +BrachyRunAction::BrachyRunAction() + { - sensitiveDetectorName = SDNAME; - detector = new BrachyDetectorConstruction(sensitiveDetectorName); runMessenger = new BrachyRunMessenger(this); } BrachyRunAction::~BrachyRunAction() { delete runMessenger; - delete detector; } void BrachyRunAction::BeginOfRunAction(const G4Run* aRun) { @@ -84,6 +82,7 @@ void BrachyRunAction::BeginOfRunAction(const G4Run* aRun) else { G4cout << "The results of Run:"<< runNb << " are summed to the" << " results of the previous Run in brachytherapy.hbk" << G4endl;} #endif + G4RunManager* runManager = G4RunManager::GetRunManager(); if(runManager) diff --git a/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc b/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc index f6d34e7fe6..1d51557656 100644 --- a/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc +++ b/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc @@ -24,7 +24,7 @@ // S.Guatelli // // $Id: BrachyRunMessenger.cc,v 1.4 2003/05/22 17:20:44 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/examples/advanced/composite_calorimeter/History b/examples/advanced/composite_calorimeter/History index 4b06cbc3f1..94b55ecd8c 100644 --- a/examples/advanced/composite_calorimeter/History +++ b/examples/advanced/composite_calorimeter/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.27 2005/05/03 10:05:48 allison Exp $ +$Id: History,v 1.29 2005/12/08 16:07:43 ribon Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,7 +9,14 @@ $Id: History,v 1.27 2005/05/03 10:05:48 allison Exp $ Example History file --------------------- -3rd May 2005 John Allison (examples-V07-00-03) +08.12.2005 - A.Ribon (ccal-V07-01-01) +- Migration to CLHEP namespace. + +13.12.04 - G.Cosmo (ccal-V07-01-00) +- Migration to from deprecated . +- Updated hadronic physics list (commented QGSP_Model by A.Ribon). + +03.05.2005 - J.Allison - Replaced vis manager with G4VisExecutive. 13.12.04 - G.Cosmo (ccal-V06-02-02) diff --git a/examples/advanced/composite_calorimeter/hadronic_lists.gmk b/examples/advanced/composite_calorimeter/hadronic_lists.gmk index c764933b93..5a8f48003a 100644 --- a/examples/advanced/composite_calorimeter/hadronic_lists.gmk +++ b/examples/advanced/composite_calorimeter/hadronic_lists.gmk @@ -1,4 +1,4 @@ -# $Id: hadronic_lists.gmk,v 1.5 2004/12/13 15:47:52 gcosmo Exp $ +# $Id: hadronic_lists.gmk,v 1.6 2005/10/13 09:38:07 ribon Exp $ # -------------------------------------------------------------- # hadronic physics-lists setup # -------------------------------------------------------------- @@ -21,7 +21,6 @@ EXTRALIBS += -lLHEP # EXTRALIBS += -lLHEP_BIC_HP # EXTRALIBS += -lLHEP_LEAD_HP # EXTRALIBS += -lLHEP_PRECO -# EXTRALIBS += -lQGSP_Model # EXTRALIBS += -lQGSP_BERT # EXTRALIBS += -lLHEP_PRECO_HP EXTRALIBS += -lQGSC diff --git a/examples/advanced/composite_calorimeter/include/CCalHit.hh b/examples/advanced/composite_calorimeter/include/CCalHit.hh index f62e45a170..77584bc4cb 100644 --- a/examples/advanced/composite_calorimeter/include/CCalHit.hh +++ b/examples/advanced/composite_calorimeter/include/CCalHit.hh @@ -62,8 +62,8 @@ public: public: - Hep3Vector getEntry() const; - void setEntry(Hep3Vector xyz); + CLHEP::Hep3Vector getEntry() const; + void setEntry(CLHEP::Hep3Vector xyz); double getIncidentEnergy() const; void setIncidentEnergy (double e); @@ -85,7 +85,7 @@ public: private: - Hep3Vector entry; // Entry point + CLHEP::Hep3Vector entry; // Entry point double theIncidentEnergy; // Energy of the primary particle int theTrackID; // Identification number of the primary particle unsigned int theUnitID; // Calorimeter Unit Number diff --git a/examples/advanced/composite_calorimeter/include/CCalMagneticField.hh b/examples/advanced/composite_calorimeter/include/CCalMagneticField.hh index c21744dee4..f605711682 100644 --- a/examples/advanced/composite_calorimeter/include/CCalMagneticField.hh +++ b/examples/advanced/composite_calorimeter/include/CCalMagneticField.hh @@ -39,7 +39,7 @@ public: // Access functions void MagneticField(const double Point[3], double Bfield[3]) const; - Hep3Vector MagneticField(const Hep3Vector Point) const; + CLHEP::Hep3Vector MagneticField(const CLHEP::Hep3Vector Point) const; virtual void GetFieldValue(const double Point[3], double* Bfield) const; G4double GetConstantFieldvalue() const {return fval;} diff --git a/examples/advanced/composite_calorimeter/src/CCalHit.cc b/examples/advanced/composite_calorimeter/src/CCalHit.cc index 5ed69e85c7..1d611d11d8 100644 --- a/examples/advanced/composite_calorimeter/src/CCalHit.cc +++ b/examples/advanced/composite_calorimeter/src/CCalHit.cc @@ -59,8 +59,8 @@ const CCalHit& CCalHit::operator=(const CCalHit &right) { } -Hep3Vector CCalHit::getEntry() const {return entry;} -void CCalHit::setEntry(Hep3Vector xyz) { entry = xyz; } +CLHEP::Hep3Vector CCalHit::getEntry() const {return entry;} +void CCalHit::setEntry(CLHEP::Hep3Vector xyz) { entry = xyz; } double CCalHit::getIncidentEnergy() const {return theIncidentEnergy; } void CCalHit::setIncidentEnergy (double e){theIncidentEnergy = e; } diff --git a/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc b/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc index fe1f1f3129..9a1900c33f 100644 --- a/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc +++ b/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc @@ -116,10 +116,11 @@ void CCalMagneticField::MagneticField(const double x[3], double B[3]) const { } -Hep3Vector CCalMagneticField::MagneticField(const Hep3Vector point) const { +CLHEP::Hep3Vector CCalMagneticField:: +MagneticField(const CLHEP::Hep3Vector point) const { G4double x[3],B[3]; - Hep3Vector v; + CLHEP::Hep3Vector v; x[0] = point.x(); x[1] = point.y(); diff --git a/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc b/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc index fdb2579d66..72a4d3f203 100644 --- a/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalPrimaryGeneratorAction.cc @@ -84,11 +84,11 @@ void CCalPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { if (isInitialized == 0) initialize(); if (generatorInput == singleRandom) { - particleEnergy = RandFlat::shoot(energyMin,energyMax); + particleEnergy = CLHEP::RandFlat::shoot(energyMin,energyMax); particleGun->SetParticleEnergy(particleEnergy); - G4double eta = RandFlat::shoot(etaMin,etaMax); - G4double phi = RandFlat::shoot(phiMin,phiMax); + G4double eta = CLHEP::RandFlat::shoot(etaMin,etaMax); + G4double phi = CLHEP::RandFlat::shoot(phiMin,phiMax); G4double theta = std::atan(std::exp(-eta))*2.; G4double randomX = std::sin(theta)*std::cos(phi); G4double randomY = std::sin(theta)*std::sin(phi); diff --git a/examples/advanced/composite_calorimeter/src/CCalRotationMatrixFactory.cc b/examples/advanced/composite_calorimeter/src/CCalRotationMatrixFactory.cc index 8f1ea55079..83e85321cd 100644 --- a/examples/advanced/composite_calorimeter/src/CCalRotationMatrixFactory.cc +++ b/examples/advanced/composite_calorimeter/src/CCalRotationMatrixFactory.cc @@ -182,11 +182,11 @@ G4RotationMatrix* CCalRotationMatrixFactory::AddMatrix(const G4String& name, } //xprime axis coordinates - Hep3Vector xprime(sinth1*cosph1,sinth1*sinph1,costh1); + CLHEP::Hep3Vector xprime(sinth1*cosph1,sinth1*sinph1,costh1); //yprime axis coordinates - Hep3Vector yprime(sinth2*cosph2,sinth2*sinph2,costh2); + CLHEP::Hep3Vector yprime(sinth2*cosph2,sinth2*sinph2,costh2); //zprime axis coordinates - Hep3Vector zprime(sinth3*cosph3,sinth3*sinph3,costh3); + CLHEP::Hep3Vector zprime(sinth3*cosph3,sinth3*sinph3,costh3); #ifdef ddebug G4cout << xprime << '\t'; G4cout << yprime << '\t'; G4cout << zprime << G4endl; diff --git a/examples/advanced/composite_calorimeter/src/CCalutils.cc b/examples/advanced/composite_calorimeter/src/CCalutils.cc index 808dbf5008..9317a55122 100644 --- a/examples/advanced/composite_calorimeter/src/CCalutils.cc +++ b/examples/advanced/composite_calorimeter/src/CCalutils.cc @@ -27,29 +27,22 @@ #include "CCalutils.hh" #include "G4ios.hh" #include "G4UnitsTable.hh" -#include + +#include G4String operator+(const G4String& str, const int i) { - int l = str.length() + 15; //How long can an integer be? - char *cname = new char[l]; - cname[0]='\0'; - std::ostrstream os(cname, l); + std::ostringstream os; os << str << i <<'\0'; - G4String back(cname); - delete[] cname; + G4String back = os.str(); return back; } G4String operator+(const G4String& str, const double i) { - int l = str.length() + 15; //How long can an double be? - char *cname = new char[l]; - cname[0]='\0'; - std::ostrstream os(cname, l); + std::ostringstream os; os << str << i <<'\0'; - G4String back(cname); - delete[] cname; + G4String back = os.str(); return back; } diff --git a/examples/advanced/cosmicray_charging/CRCharging.cc b/examples/advanced/cosmicray_charging/CRCharging.cc index d36e7e1b91..afd22c54b4 100644 --- a/examples/advanced/cosmicray_charging/CRCharging.cc +++ b/examples/advanced/cosmicray_charging/CRCharging.cc @@ -66,9 +66,8 @@ int main(int argc,char** argv) { // choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); - // Construct the default run manager G4RunManager* runManager = new G4RunManager; diff --git a/examples/advanced/cosmicray_charging/History b/examples/advanced/cosmicray_charging/History index 4dbebb7e8d..69708c9b52 100644 --- a/examples/advanced/cosmicray_charging/History +++ b/examples/advanced/cosmicray_charging/History @@ -16,6 +16,16 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +08.12.2005 - Henrique Araujo, tag cosmicray_charging-V07-01-02 + Removed all compilation warnings + +07.12.2005 - S. Guatelli tag cosmicray_charging-V07-01-01 + G4Exception fixed (hadronic physics updated) + The example compiles withn CLHEP 2.0.2.2 + +15.11.2005 - Gabriele Cosmo, tag cosmicray_charging-V07-01-00 + Migration to from deprecated . + 06.06.2005 - Gabriele Cosmo, tag cosmicray_charging-V07-00-00 Fixed trivial compilation error on gcc-3.4.X (double semicolon). diff --git a/examples/advanced/cosmicray_charging/include/LISAEventAction.hh b/examples/advanced/cosmicray_charging/include/LISAEventAction.hh index 92b9b7f005..15095e337e 100644 --- a/examples/advanced/cosmicray_charging/include/LISAEventAction.hh +++ b/examples/advanced/cosmicray_charging/include/LISAEventAction.hh @@ -36,7 +36,6 @@ #include "G4UserEventAction.hh" #include "globals.hh" #include "G4ios.hh" -#include class LISAPrimaryGeneratorAction; class LISASteppingAction; diff --git a/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh b/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh index 6279834439..962523b0c1 100644 --- a/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh +++ b/examples/advanced/cosmicray_charging/include/LISAPhysicsList.hh @@ -215,7 +215,7 @@ class LISAPhysicsList: public G4VUserPhysicsList { G4GammaNuclearReaction* theGammaReaction; G4TheoFSGenerator* theHEModel_PN; G4StringChipsParticleLevelInterface* theCascade_PN; - G4QGSModel theStringModel_PN; + G4QGSModel* theStringModel_PN; G4QGSMFragmentation theFragmentation_PN; G4ExcitedStringDecay* theStringDecay_PN; // ElectronNuclear diff --git a/examples/advanced/cosmicray_charging/include/LISARunActionMessenger.hh b/examples/advanced/cosmicray_charging/include/LISARunActionMessenger.hh index afbdff2692..2589566659 100644 --- a/examples/advanced/cosmicray_charging/include/LISARunActionMessenger.hh +++ b/examples/advanced/cosmicray_charging/include/LISARunActionMessenger.hh @@ -36,7 +36,6 @@ #include "G4UImessenger.hh" #include "G4UIcommand.hh" #include "G4UIcmdWithABool.hh" -#include #include "globals.hh" class LISARunAction; diff --git a/examples/advanced/cosmicray_charging/src/LISAAnalysisManager.cc b/examples/advanced/cosmicray_charging/src/LISAAnalysisManager.cc index 21049e9883..6b5d7f0b20 100644 --- a/examples/advanced/cosmicray_charging/src/LISAAnalysisManager.cc +++ b/examples/advanced/cosmicray_charging/src/LISAAnalysisManager.cc @@ -41,7 +41,6 @@ #ifdef G4ANALYSIS_USE #include "LISAAnalysisManager.hh" -#include #include "globals.hh" LISAAnalysisManager* LISAAnalysisManager::instance = 0; diff --git a/examples/advanced/cosmicray_charging/src/LISAColours.icc b/examples/advanced/cosmicray_charging/src/LISAColours.icc index 7db58004cd..661ba36f44 100644 --- a/examples/advanced/cosmicray_charging/src/LISAColours.icc +++ b/examples/advanced/cosmicray_charging/src/LISAColours.icc @@ -34,6 +34,7 @@ // // HISTORY // 22/02/2004: migrated from LISA-V04 +// 08/12/2005: removed compilation warnings // // ******************************************************************** @@ -44,19 +45,32 @@ // edge colour attributes - G4VisAttributes* white_vat = new G4VisAttributes(G4Colour(1.0, 1.0, 1.0)); - G4VisAttributes* grey_vat = new G4VisAttributes(G4Colour(0.5, 0.5, 0.5)); - G4VisAttributes* black_vat = new G4VisAttributes(G4Colour(0.0, 0.0, 0.0)); - G4VisAttributes* red_vat = new G4VisAttributes(G4Colour(1.0, 0.0, 0.0)); - G4VisAttributes* orange_vat = new G4VisAttributes(G4Colour(1.0, 0.5, 0.0)); - G4VisAttributes* yellow_vat = new G4VisAttributes(G4Colour(1.0, 1.0, 0.0)); - G4VisAttributes* gold_vat = new G4VisAttributes(G4Colour(.75, .75, 0.0)); - G4VisAttributes* green_vat = new G4VisAttributes(G4Colour(0.0, 1.0, 0.0)); - G4VisAttributes* lgreen_vat = new G4VisAttributes(G4Colour(0.0, .75, 0.0)); - G4VisAttributes* cyan_vat = new G4VisAttributes(G4Colour(0.0, 1.0, 1.0)); - G4VisAttributes* lblue_vat = new G4VisAttributes(G4Colour(0.0, 0.0, .75)); - G4VisAttributes* blue_vat = new G4VisAttributes(G4Colour(0.0, 0.0, 1.0)); - G4VisAttributes* magenta_vat = new G4VisAttributes(G4Colour(1.0, 0.0, 1.0)); + G4VisAttributes* white_vat; + white_vat = new G4VisAttributes( G4Colour(1.0, 1.0, 1.0)); + G4VisAttributes* grey_vat; + grey_vat = new G4VisAttributes( G4Colour(0.5, 0.5, 0.5)); + G4VisAttributes* black_vat; + black_vat = new G4VisAttributes( G4Colour(0.0, 0.0, 0.0)); + G4VisAttributes* red_vat; + red_vat = new G4VisAttributes( G4Colour(1.0, 0.0, 0.0)); + G4VisAttributes* orange_vat; + orange_vat = new G4VisAttributes( G4Colour(1.0, 0.5, 0.0)); + G4VisAttributes* yellow_vat; + yellow_vat = new G4VisAttributes( G4Colour(1.0, 1.0, 0.0)); + G4VisAttributes* gold_vat; + gold_vat = new G4VisAttributes( G4Colour(.75, .75, 0.0)); + G4VisAttributes* green_vat; + green_vat = new G4VisAttributes( G4Colour(0.0, 1.0, 0.0)); + G4VisAttributes* lgreen_vat; + lgreen_vat = new G4VisAttributes( G4Colour(0.0, .75, 0.0)); + G4VisAttributes* cyan_vat; + cyan_vat = new G4VisAttributes( G4Colour(0.0, 1.0, 1.0)); + G4VisAttributes* lblue_vat; + lblue_vat = new G4VisAttributes( G4Colour(0.0, 0.0, .75)); + G4VisAttributes* blue_vat; + blue_vat = new G4VisAttributes( G4Colour(0.0, 0.0, 1.0)); + G4VisAttributes* magenta_vat; + magenta_vat = new G4VisAttributes(G4Colour(1.0, 0.0, 1.0)); // solid colour attributes G4VisAttributes* sol_white_vat = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); diff --git a/examples/advanced/cosmicray_charging/src/LISAElectronicsBoxes.icc b/examples/advanced/cosmicray_charging/src/LISAElectronicsBoxes.icc index 030e92fece..e51cd861aa 100644 --- a/examples/advanced/cosmicray_charging/src/LISAElectronicsBoxes.icc +++ b/examples/advanced/cosmicray_charging/src/LISAElectronicsBoxes.icc @@ -36,6 +36,7 @@ // 22/02/2004: migrated from LISA-V04 // 24/11/2004: migrated to cmath // 24/11/2004: inner boxes made invisible +// 08/12/2005: removed compilation warnings // // ******************************************************************** @@ -99,340 +100,430 @@ // Lower Deck electronics - - G4Box* EPC_box_o = new G4Box("EPC_box_o", + G4Box* EPC_box_o; + EPC_box_o = new G4Box("EPC_box_o", 0.5*227.*mm, 0.5*63.*mm, 0.5*110.*mm); - G4LogicalVolume* EPC_log_o = new G4LogicalVolume - (EPC_box_o, Al6061, "EPC_log_o"); + G4LogicalVolume* EPC_log_o; + EPC_log_o = new G4LogicalVolume(EPC_box_o, Al6061, "EPC_log_o"); G4VPhysicalVolume* EPC_phys_o; EPC_phys_o = new G4PVPlacement(0, spacecraft_pos + EPC1_pos, - "EPC_phys_o", EPC_log_o, wld_phys, false, 0); + "EPC_phys_o", EPC_log_o, wld_phys, false, 0); EPC_phys_o = new G4PVPlacement(0, spacecraft_pos + EPC2_pos, - "EPC_phys_o", EPC_log_o, wld_phys, false, 1); + "EPC_phys_o", EPC_log_o, wld_phys, false, 1); f = std::pow(1.-1.4/(2.70*227*63*110)*1E6, 1./3.); // G4cout << "f: " << f << G4endl; - G4Box* EPC_box_i = new G4Box("EPC_box_i", - f*0.5*227.*mm, f*0.5*63.*mm, f*0.5*110.*mm); - G4LogicalVolume* EPC_log_i = new G4LogicalVolume - (EPC_box_i, vacuum, "EPC_log_i"); - G4VPhysicalVolume* EPC_phys_i = new G4PVPlacement - (0, 0, "EPC_phys_i", EPC_log_i, EPC_phys_o, false, 0); + G4Box* EPC_box_i; + EPC_box_i = new G4Box("EPC_box_i", + f*0.5*227.*mm, f*0.5*63.*mm, f*0.5*110.*mm); + G4LogicalVolume* EPC_log_i; + EPC_log_i = new G4LogicalVolume(EPC_box_i, vacuum, "EPC_log_i"); + G4VPhysicalVolume* EPC_phys_i; + EPC_phys_i = new G4PVPlacement + (0, 0, "EPC_phys_i", EPC_log_i, EPC_phys_o, false, 0); // // - G4Tubs* GyroPack_tub_o = new G4Tubs("GyroPack_tub_o", - 0., 0.5*89.*mm, 0.5*85.*mm, 0., 360.*deg); - G4LogicalVolume* GyroPack_log_o = new G4LogicalVolume - (GyroPack_tub_o, Al6061, "GyroPack_log_o"); - G4VPhysicalVolume* GyroPack_phys_o = new G4PVPlacement(0, spacecraft_pos - + GyroPack_pos, "GyroPack_phys_o", GyroPack_log_o, wld_phys, false, 0); + G4Tubs* GyroPack_tub_o; + GyroPack_tub_o = new G4Tubs("GyroPack_tub_o", + 0., 0.5*89.*mm, 0.5*85.*mm, 0., 360.*deg); + G4LogicalVolume* GyroPack_log_o; + GyroPack_log_o = new G4LogicalVolume + (GyroPack_tub_o, Al6061, "GyroPack_log_o"); + G4VPhysicalVolume* GyroPack_phys_o; + GyroPack_phys_o = new G4PVPlacement(0, spacecraft_pos + + GyroPack_pos, "GyroPack_phys_o", GyroPack_log_o, wld_phys, false, 0); f = std::pow(1.-1.00/(2.70*pi*(0.5*89.)*(0.5*89.)*85.)*1E6, 1./3.); // G4cout << "f: " << f << G4endl; - G4Tubs* GyroPack_tub_i = new G4Tubs("GyroPack_tub_i", - 0., f*0.5*89.*mm, f*0.5*85.*mm, 0., 360.*deg); - G4LogicalVolume* GyroPack_log_i = new G4LogicalVolume - (GyroPack_tub_i, vacuum, "GyroPack_log_i"); - G4VPhysicalVolume* GyroPack_phys_i = new G4PVPlacement(0, 0, - "GyroPack_phys_i", GyroPack_log_i, GyroPack_phys_o, false, 0); + G4Tubs* GyroPack_tub_i; + GyroPack_tub_i = new G4Tubs("GyroPack_tub_i", + 0., f*0.5*89.*mm, f*0.5*85.*mm, 0., 360.*deg); + G4LogicalVolume* GyroPack_log_i; + GyroPack_log_i = new G4LogicalVolume + (GyroPack_tub_i, vacuum, "GyroPack_log_i"); + G4VPhysicalVolume* GyroPack_phys_i; + GyroPack_phys_i = new G4PVPlacement(0, 0, + "GyroPack_phys_i", GyroPack_log_i, GyroPack_phys_o, false, 0); // // - G4Box* InstConE_box_o = new G4Box("InstConE_box_o", - 0.5*250.*mm, 0.5*180.*mm, 0.5*180.*mm); - G4LogicalVolume* InstConE_log_o = new G4LogicalVolume - (InstConE_box_o, Al6061, "InstConE_log_o"); + G4Box* InstConE_box_o; + InstConE_box_o = new G4Box("InstConE_box_o", + 0.5*250.*mm, 0.5*180.*mm, 0.5*180.*mm); + G4LogicalVolume* InstConE_log_o; + InstConE_log_o = new G4LogicalVolume + (InstConE_box_o, Al6061, "InstConE_log_o"); G4VPhysicalVolume* InstConE_phys_o; InstConE_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot1, spacecraft_pos + InstConE1_pos), - "InstConE_phys_o", InstConE_log_o, wld_phys, false, 0); + (EB_rot1, spacecraft_pos + InstConE1_pos), + "InstConE_phys_o", InstConE_log_o, wld_phys, false, 0); InstConE_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot2, spacecraft_pos + InstConE2_pos), - "InstConE_phys_o", InstConE_log_o, wld_phys, false, 1); + (EB_rot2, spacecraft_pos + InstConE2_pos), + "InstConE_phys_o", InstConE_log_o, wld_phys, false, 1); f = std::pow(1.-4.5/(2.70*250*180*180)*1E6, 1./3.); - G4Box* InstConE_box_i = new G4Box("InstConE_box_i", - f*0.5*250.*mm, f*0.5*180.*mm, f*0.5*180.*mm); - G4LogicalVolume* InstConE_log_i = new G4LogicalVolume - (InstConE_box_i, vacuum, "InstConE_log_i"); - G4VPhysicalVolume* InstConE_phys_i = new G4PVPlacement - (0, 0, "InstConE_phys_i", InstConE_log_i, InstConE_phys_o, false, 0); + G4Box* InstConE_box_i; + InstConE_box_i = new G4Box("InstConE_box_i", + f*0.5*250.*mm, f*0.5*180.*mm, f*0.5*180.*mm); + G4LogicalVolume* InstConE_log_i; + InstConE_log_i = new G4LogicalVolume + (InstConE_box_i, vacuum, "InstConE_log_i"); + G4VPhysicalVolume* InstConE_phys_i; + InstConE_phys_i = new G4PVPlacement + (0, 0, "InstConE_phys_i", InstConE_log_i, InstConE_phys_o, false, 0); // // - G4Box* RFDU_box_o = new G4Box("RFDU_box_o", - 0.5*160.*mm, 0.5*60.*mm, 0.5*80.*mm); - G4LogicalVolume* RFDU_log_o = new G4LogicalVolume - (RFDU_box_o, Al6061, "RFDU_log_o"); - G4VPhysicalVolume* RFDU_phys_o = new G4PVPlacement(0, spacecraft_pos - + RFDU_pos, "RFDU_phys_o", RFDU_log_o, wld_phys, false, 0); + G4Box* RFDU_box_o; + RFDU_box_o = new G4Box("RFDU_box_o", + 0.5*160.*mm, 0.5*60.*mm, 0.5*80.*mm); + G4LogicalVolume* RFDU_log_o; + RFDU_log_o = new G4LogicalVolume + (RFDU_box_o, Al6061, "RFDU_log_o"); + G4VPhysicalVolume* RFDU_phys_o; + RFDU_phys_o = new G4PVPlacement(0, spacecraft_pos + + RFDU_pos, "RFDU_phys_o", RFDU_log_o, wld_phys, false, 0); f = std::pow(1.-1.0/(2.70*160*60*80)*1E6, 1./3.); - G4Box* RFDU_box_i = new G4Box("RFDU_box_i", - f*0.5*160.*mm, f*0.5*60.*mm, f*0.5*80.*mm); - G4LogicalVolume* RFDU_log_i = new G4LogicalVolume - (RFDU_box_i, vacuum, "RFDU_log_i"); - G4VPhysicalVolume* RFDU_phys_i = new G4PVPlacement - (0, 0, "RFDU_phys_i", RFDU_log_i, RFDU_phys_o, false, 0); + G4Box* RFDU_box_i; + RFDU_box_i = new G4Box("RFDU_box_i", + f*0.5*160.*mm, f*0.5*60.*mm, f*0.5*80.*mm); + G4LogicalVolume* RFDU_log_i; + RFDU_log_i = new G4LogicalVolume(RFDU_box_i, vacuum, "RFDU_log_i"); + G4VPhysicalVolume* RFDU_phys_i; + RFDU_phys_i = new G4PVPlacement + (0, 0, "RFDU_phys_i", RFDU_log_i, RFDU_phys_o, false, 0); // // - G4Box* StarTrack_L_box_o = new G4Box("StarStrack_box_o", - 0.5*50.*mm, 0.5*50.*mm, 0.5*54.*mm); - G4LogicalVolume* StarTrack_L_log_o = new G4LogicalVolume - (StarTrack_L_box_o, Al6061, "StarTrack_log_o"); + G4Box* StarTrack_L_box_o; + StarTrack_L_box_o = new G4Box("StarStrack_box_o", + 0.5*50.*mm, 0.5*50.*mm, 0.5*54.*mm); + G4LogicalVolume* StarTrack_L_log_o; + StarTrack_L_log_o = new G4LogicalVolume + (StarTrack_L_box_o, Al6061, "StarTrack_log_o"); G4VPhysicalVolume* StarTrack_L_phys_o; StarTrack_L_phys_o = new G4PVPlacement(0, spacecraft_pos + StarTrack3_pos, - "STarTrack3_phys_o", StarTrack_L_log_o, wld_phys, false, 0); + "STarTrack3_phys_o", StarTrack_L_log_o, wld_phys, false, 0); StarTrack_L_phys_o = new G4PVPlacement(0, spacecraft_pos + StarTrack4_pos, - "STarTrack4_phys_o", StarTrack_L_log_o, wld_phys, false, 1); + "STarTrack4_phys_o", StarTrack_L_log_o, wld_phys, false, 1); f = std::pow(1.-0.30/(2.70*50*50*54)*1E6, 1./3.); - G4Box* StarTrack_L_box_i = new G4Box("StarTrack_L_box_i", - f*0.5*50.*mm, f*0.5*50.*mm, f*0.5*54.*mm); - G4LogicalVolume* StarTrack_L_log_i = new G4LogicalVolume - (StarTrack_L_box_i, vacuum, "StarTrack_L_log_i"); - G4VPhysicalVolume* StarTrack_L_phys_i = new G4PVPlacement - (0,0,"StarTrack_L_phys_i",StarTrack_L_log_i,StarTrack_L_phys_o,false,0); + G4Box* StarTrack_L_box_i; + StarTrack_L_box_i = new G4Box("StarTrack_L_box_i", + f*0.5*50.*mm, f*0.5*50.*mm, f*0.5*54.*mm); + G4LogicalVolume* StarTrack_L_log_i; + StarTrack_L_log_i = new G4LogicalVolume + (StarTrack_L_box_i, vacuum, "StarTrack_L_log_i"); + G4VPhysicalVolume* StarTrack_L_phys_i; + StarTrack_L_phys_i = new G4PVPlacement + (0,0,"StarTrack_L_phys_i",StarTrack_L_log_i,StarTrack_L_phys_o,false,0); // // - G4Box* STElec_box_o = new G4Box("STElec_box_o", - 0.5*100.*mm, 0.5*100.*mm, 0.5*100.*mm); - G4LogicalVolume* STElec_log_o = new G4LogicalVolume - (STElec_box_o, Al6061, "STElec_log_o"); + G4Box* STElec_box_o; + STElec_box_o = new G4Box("STElec_box_o", + 0.5*100.*mm, 0.5*100.*mm, 0.5*100.*mm); + G4LogicalVolume* STElec_log_o; + STElec_log_o = new G4LogicalVolume + (STElec_box_o, Al6061, "STElec_log_o"); G4VPhysicalVolume* STElec_phys_o; STElec_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot1, spacecraft_pos + STElec1_pos), - "STElec_phys_o", STElec_log_o, wld_phys, false, 0); + (EB_rot1, spacecraft_pos + STElec1_pos), + "STElec_phys_o", STElec_log_o, wld_phys, false, 0); STElec_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot1, spacecraft_pos + STElec2_pos), - "STElec_phys_o", STElec_log_o, wld_phys, false, 1); + (EB_rot1, spacecraft_pos + STElec2_pos), + "STElec_phys_o", STElec_log_o, wld_phys, false, 1); STElec_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot2, spacecraft_pos + STElec3_pos), - "STElec_phys_o", STElec_log_o, wld_phys, false, 2); + (EB_rot2, spacecraft_pos + STElec3_pos), + "STElec_phys_o", STElec_log_o, wld_phys, false, 2); STElec_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot2, spacecraft_pos + STElec4_pos), - "STElec_phys_o", STElec_log_o, wld_phys, false, 3); + (EB_rot2, spacecraft_pos + STElec4_pos), + "STElec_phys_o", STElec_log_o, wld_phys, false, 3); f = std::pow(1.-2.0/(2.70*100*100*100)*1E6, 1./3.); - G4Box* STElec_box_i = new G4Box("STElec_box_i", - f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*100.*mm); - G4LogicalVolume* STElec_log_i = new G4LogicalVolume - (STElec_box_i, vacuum, "STElec_log_i"); - G4VPhysicalVolume* STElec_phys_i = new G4PVPlacement - (0, 0, "STElec_phys_i", STElec_log_i, STElec_phys_o, false, 0); + G4Box* STElec_box_i; + STElec_box_i = new G4Box("STElec_box_i", + f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*100.*mm); + G4LogicalVolume* STElec_log_i; + STElec_log_i = new G4LogicalVolume(STElec_box_i, vacuum, "STElec_log_i"); + G4VPhysicalVolume* STElec_phys_i; + STElec_phys_i = new G4PVPlacement + (0, 0, "STElec_phys_i", STElec_log_i, STElec_phys_o, false, 0); // // - G4Box* TWT_box_o = new G4Box("TWT_box_o", - 0.5*321.*mm, 0.5*58.*mm, 0.5*36.*mm); - G4LogicalVolume* TWT_log_o = new G4LogicalVolume - (TWT_box_o, Al6061, "TWT_log_o"); + G4Box* TWT_box_o; + TWT_box_o = new G4Box("TWT_box_o", + 0.5*321.*mm, 0.5*58.*mm, 0.5*36.*mm); + G4LogicalVolume* TWT_log_o; + TWT_log_o = new G4LogicalVolume + (TWT_box_o, Al6061, "TWT_log_o"); G4VPhysicalVolume* TWT_phys_o; TWT_phys_o = new G4PVPlacement(0, spacecraft_pos + TWT1_pos, - "TWT_phys_o", TWT_log_o, wld_phys, false, 0); + "TWT_phys_o", TWT_log_o, wld_phys, false, 0); TWT_phys_o = new G4PVPlacement(0, spacecraft_pos + TWT2_pos, - "TWT_phys_o", TWT_log_o, wld_phys, false, 1); + "TWT_phys_o", TWT_log_o, wld_phys, false, 1); f = std::pow(1.-0.75/(2.70*321*58*36)*1E6, 1./3.); G4Box* TWT_box_i = new G4Box("TWT_box_i", - f*0.5*321.*mm, f*0.5*58.*mm, f*0.5*36.*mm); - G4LogicalVolume* TWT_log_i = new G4LogicalVolume - (TWT_box_i, vacuum, "TWT_log_i"); - G4VPhysicalVolume* TWT_phys_i = new G4PVPlacement - (0, 0, "TWT_phys_i", TWT_log_i, TWT_phys_o, false, 0); + f*0.5*321.*mm, f*0.5*58.*mm, f*0.5*36.*mm); + G4LogicalVolume* TWT_log_i; + TWT_log_i = new G4LogicalVolume + (TWT_box_i, vacuum, "TWT_log_i"); + G4VPhysicalVolume* TWT_phys_i; + TWT_phys_i = new G4PVPlacement + (0, 0, "TWT_phys_i", TWT_log_i, TWT_phys_o, false, 0); // // - G4Box* UVBox_box_o = new G4Box("UVBox_box_o", - 0.5*150.*mm, 0.5*100.*mm, 0.5*70.*mm); - G4LogicalVolume* UVBox_log_o = new G4LogicalVolume - (UVBox_box_o, Al6061, "UVBox_log_o"); + G4Box* UVBox_box_o; + UVBox_box_o = new G4Box("UVBox_box_o", + 0.5*150.*mm, 0.5*100.*mm, 0.5*70.*mm); + G4LogicalVolume* UVBox_log_o; + UVBox_log_o = new G4LogicalVolume + (UVBox_box_o, Al6061, "UVBox_log_o"); G4VPhysicalVolume* UVBox_phys_o; UVBox_phys_o = new G4PVPlacement(0, spacecraft_pos + UVBox1_pos, - "UVBox_phys_o", UVBox_log_o, wld_phys, false, 0); + "UVBox_phys_o", UVBox_log_o, wld_phys, false, 0); UVBox_phys_o = new G4PVPlacement(0, spacecraft_pos + UVBox2_pos, - "UVBox_phys_o", UVBox_log_o, wld_phys, false, 1); + "UVBox_phys_o", UVBox_log_o, wld_phys, false, 1); f = std::pow(1.-0.50/(2.70*150*100*70)*1E6, 1./3.); - G4Box* UVBox_box_i = new G4Box("UVBox_box_i", - f*0.5*150.*mm, f*0.5*100.*mm, f*0.5*70.*mm); - G4LogicalVolume* UVBox_log_i = new G4LogicalVolume - (UVBox_box_i, vacuum, "UVBox_log_i"); - G4VPhysicalVolume* UVBox_phys_i = new G4PVPlacement - (0, 0, "UVBox_phys_i", UVBox_log_i, UVBox_phys_o, false, 0); + G4Box* UVBox_box_i; + UVBox_box_i = new G4Box("UVBox_box_i", + f*0.5*150.*mm, f*0.5*100.*mm, f*0.5*70.*mm); + G4LogicalVolume* UVBox_log_i; + UVBox_log_i = new G4LogicalVolume + (UVBox_box_i, vacuum, "UVBox_log_i"); + G4VPhysicalVolume* UVBox_phys_i; + UVBox_phys_i = new G4PVPlacement + (0, 0, "UVBox_phys_i", UVBox_log_i, UVBox_phys_o, false, 0); // Upper Deck electronics - G4Box* PCDU_box_o = new G4Box("PCDU_box_o", - 0.5*200.*mm, 0.5*350.*mm, 0.5*300.*mm); - G4LogicalVolume* PCDU_log_o = new G4LogicalVolume - (PCDU_box_o, Al6061, "PCDU_log_o"); - G4VPhysicalVolume* PCDU_phys_o = new G4PVPlacement(0, spacecraft_pos - + PCDU_pos, "PCDU_phys_o", PCDU_log_o, wld_phys, false, 0); + G4Box* PCDU_box_o; + PCDU_box_o = new G4Box("PCDU_box_o", + 0.5*200.*mm, 0.5*350.*mm, 0.5*300.*mm); + G4LogicalVolume* PCDU_log_o; + PCDU_log_o = new G4LogicalVolume + (PCDU_box_o, Al6061, "PCDU_log_o"); + G4VPhysicalVolume* PCDU_phys_o; + PCDU_phys_o = new G4PVPlacement(0, spacecraft_pos + + PCDU_pos, "PCDU_phys_o", PCDU_log_o, wld_phys, false, 0); f = std::pow(1.-15.90/(2.70*200*350*300)*1E6, 1./3.); - G4Box* PCDU_box_i = new G4Box("PCDU_box_i", - f*0.5*200.*mm, f*0.5*350.*mm, f*0.5*300.*mm); - G4LogicalVolume* PCDU_log_i = new G4LogicalVolume - (PCDU_box_i, vacuum, "PCDU_log_i"); - G4VPhysicalVolume* PCDU_phys_i = new G4PVPlacement - (0, 0, "PCDU_phys_i", PCDU_log_i, PCDU_phys_o, false, 0); + G4Box* PCDU_box_i; + PCDU_box_i = new G4Box("PCDU_box_i", + f*0.5*200.*mm, f*0.5*350.*mm, f*0.5*300.*mm); + G4LogicalVolume* PCDU_log_i; + PCDU_log_i = new G4LogicalVolume + (PCDU_box_i, vacuum, "PCDU_log_i"); + G4VPhysicalVolume* PCDU_phys_i; + PCDU_phys_i = new G4PVPlacement + (0, 0, "PCDU_phys_i", PCDU_log_i, PCDU_phys_o, false, 0); // // - G4Box* CentELCPS_box_o = new G4Box("CentELCPS_box_o", - 0.5*240.*mm, 0.5*356.*mm, 0.5*140.*mm); - G4LogicalVolume* CentELCPS_log_o = new G4LogicalVolume + G4Box* CentELCPS_box_o; + CentELCPS_box_o = new G4Box("CentELCPS_box_o", + 0.5*240.*mm, 0.5*356.*mm, 0.5*140.*mm); + G4LogicalVolume* CentELCPS_log_o; + CentELCPS_log_o = new G4LogicalVolume (CentELCPS_box_o, Al6061, "CentELCPS_log_o"); - G4VPhysicalVolume* CentELCPS_phys_o = new G4PVPlacement(0, spacecraft_pos - + CentELCPS_pos, "CentELCPS_phys_o", CentELCPS_log_o, wld_phys, false, 0); + G4VPhysicalVolume* CentELCPS_phys_o; + CentELCPS_phys_o = new G4PVPlacement(0, spacecraft_pos + + CentELCPS_pos, "CentELCPS_phys_o", CentELCPS_log_o, wld_phys, false, 0); f = std::pow(1.-15.90/(2.70*240*356*140)*1E6, 1./3.); - G4Box* CentELCPS_box_i = new G4Box("CentELCPS_box_i", - f*0.5*240.*mm, f*0.5*356.*mm, f*0.5*140.*mm); - G4LogicalVolume* CentELCPS_log_i = new G4LogicalVolume - (CentELCPS_box_i, vacuum, "CentELCPS_log_i"); - G4VPhysicalVolume* CentELCPS_phys_i = new G4PVPlacement - (0, 0, "CentELCPS_phys_i", CentELCPS_log_i, CentELCPS_phys_o, false, 0); + G4Box* CentELCPS_box_i; + CentELCPS_box_i = new G4Box("CentELCPS_box_i", + f*0.5*240.*mm, f*0.5*356.*mm, f*0.5*140.*mm); + G4LogicalVolume* CentELCPS_log_i; + CentELCPS_log_i = new G4LogicalVolume + (CentELCPS_box_i, vacuum, "CentELCPS_log_i"); + G4VPhysicalVolume* CentELCPS_phys_i; + CentELCPS_phys_i = new G4PVPlacement + (0, 0, "CentELCPS_phys_i", CentELCPS_log_i, CentELCPS_phys_o, false, 0); // // - G4Box* CentEL2_box_o = new G4Box("CentEL2_box_o", - 0.5*220.*mm, 0.5*184.*mm, 0.5*284.*mm); - G4LogicalVolume* CentEL2_log_o = new G4LogicalVolume - (CentEL2_box_o, Al6061, "CentEL2_log_o"); - G4VPhysicalVolume* CentEL2_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot3, spacecraft_pos + CentEL2_pos), - "CentEL2_phys_o", CentEL2_log_o, wld_phys, false, 0); + G4Box* CentEL2_box_o; + CentEL2_box_o = new G4Box("CentEL2_box_o", + 0.5*220.*mm, 0.5*184.*mm, 0.5*284.*mm); + G4LogicalVolume* CentEL2_log_o; + CentEL2_log_o = new G4LogicalVolume + (CentEL2_box_o, Al6061, "CentEL2_log_o"); + G4VPhysicalVolume* CentEL2_phys_o; + CentEL2_phys_o = new G4PVPlacement(G4Transform3D + (EB_rot3, spacecraft_pos + CentEL2_pos), + "CentEL2_phys_o", CentEL2_log_o, wld_phys, false, 0); f = std::pow(1.-15.90/(2.70*220*184*284)*1E6, 1./3.); - G4Box* CentEL2_box_i = new G4Box("CentEL2_box_i", - f*0.5*220.*mm, f*0.5*184.*mm, f*0.5*284.*mm); - G4LogicalVolume* CentEL2_log_i = new G4LogicalVolume - (CentEL2_box_i, vacuum, "CentEL2_log_i"); - G4VPhysicalVolume* CentEL2_phys_i = new G4PVPlacement - (0, 0, "CentEL2_phys_i", CentEL2_log_i, CentEL2_phys_o, false, 0); + G4Box* CentEL2_box_i; + CentEL2_box_i = new G4Box("CentEL2_box_i", + f*0.5*220.*mm, f*0.5*184.*mm, f*0.5*284.*mm); + G4LogicalVolume* CentEL2_log_i; + CentEL2_log_i = new G4LogicalVolume + (CentEL2_box_i, vacuum, "CentEL2_log_i"); + G4VPhysicalVolume* CentEL2_phys_i; + CentEL2_phys_i = new G4PVPlacement + (0, 0, "CentEL2_phys_i", CentEL2_log_i, CentEL2_phys_o, false, 0); // // - G4Box* FEEPEL_box_o = new G4Box("FEEPEL_box_o", - 0.5*260.*mm, 0.5*170.*mm, 0.5*200.*mm); - G4LogicalVolume* FEEPEL_log_o = new G4LogicalVolume - (FEEPEL_box_o, Al6061, "FEEPEL_log_o"); + G4Box* FEEPEL_box_o; + FEEPEL_box_o = new G4Box("FEEPEL_box_o", + 0.5*260.*mm, 0.5*170.*mm, 0.5*200.*mm); + G4LogicalVolume* FEEPEL_log_o; + FEEPEL_log_o = new G4LogicalVolume + (FEEPEL_box_o, Al6061, "FEEPEL_log_o"); G4VPhysicalVolume* FEEPEL_phys_o; FEEPEL_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot4, spacecraft_pos + FEEPEL1_pos), - "FEEPEL_phys_o", FEEPEL_log_o, wld_phys, false, 0); + (EB_rot4, spacecraft_pos + FEEPEL1_pos), + "FEEPEL_phys_o", FEEPEL_log_o, wld_phys, false, 0); FEEPEL_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot1, spacecraft_pos + FEEPEL2_pos), - "FEEPEL_phys_o", FEEPEL_log_o, wld_phys, false, 1); + (EB_rot1, spacecraft_pos + FEEPEL2_pos), + "FEEPEL_phys_o", FEEPEL_log_o, wld_phys, false, 1); f = std::pow(1.-6.50/(2.70*260*170*200)*1E6, 1./3.); - G4Box* FEEPEL_box_i = new G4Box("FEEPEL_box_i", - f*0.5*260.*mm, f*0.5*170.*mm, f*0.5*200.*mm); - G4LogicalVolume* FEEPEL_log_i = new G4LogicalVolume - (FEEPEL_box_i, vacuum, "FEEPEL_log_i"); - G4VPhysicalVolume* FEEPEL_phys_i = new G4PVPlacement - (0, 0, "FEEPEL_phys_i", FEEPEL_log_i, FEEPEL_phys_o, false, 0); + G4Box* FEEPEL_box_i; + FEEPEL_box_i = new G4Box("FEEPEL_box_i", + f*0.5*260.*mm, f*0.5*170.*mm, f*0.5*200.*mm); + G4LogicalVolume* FEEPEL_log_i; + FEEPEL_log_i = new G4LogicalVolume + (FEEPEL_box_i, vacuum, "FEEPEL_log_i"); + G4VPhysicalVolume* FEEPEL_phys_i; + FEEPEL_phys_i = new G4PVPlacement + (0, 0, "FEEPEL_phys_i", FEEPEL_log_i, FEEPEL_phys_o, false, 0); // // - G4Box* HGADrive_box_o = new G4Box("HGADrive_box_o", - 0.5*100.*mm, 0.5*100.*mm, 0.5*100.*mm); - G4LogicalVolume* HGADrive_log_o = new G4LogicalVolume - (HGADrive_box_o, Al6061, "HGADrive_log_o"); + G4Box* HGADrive_box_o; + HGADrive_box_o = new G4Box("HGADrive_box_o", + 0.5*100.*mm, 0.5*100.*mm, 0.5*100.*mm); + G4LogicalVolume* HGADrive_log_o; + HGADrive_log_o = new G4LogicalVolume + (HGADrive_box_o, Al6061, "HGADrive_log_o"); G4VPhysicalVolume* HGADrive_phys_o; HGADrive_phys_o = new G4PVPlacement(0, spacecraft_pos + HGADrive1_pos, - "HGADrive_phys_o", HGADrive_log_o, wld_phys, false, 0); + "HGADrive_phys_o", HGADrive_log_o, wld_phys, false, 0); HGADrive_phys_o = new G4PVPlacement(0, spacecraft_pos + HGADrive2_pos, - "HGADrive_phys_o", HGADrive_log_o, wld_phys, false, 1); + "HGADrive_phys_o", HGADrive_log_o, wld_phys, false, 1); f = std::pow(1.-1.00/(2.70*100*100*100)*1E6, 1./3.); - G4Box* HGADrive_box_i = new G4Box("HGADrive_box_i", - f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*100.*mm); - G4LogicalVolume* HGADrive_log_i = new G4LogicalVolume - (HGADrive_box_i, vacuum, "HGADrive_log_i"); - G4VPhysicalVolume* HGADrive_phys_i = new G4PVPlacement - (0, 0, "HGADrive_phys_i", HGADrive_log_i, HGADrive_phys_o, false, 0); + G4Box* HGADrive_box_i; + HGADrive_box_i = new G4Box("HGADrive_box_i", + f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*100.*mm); + G4LogicalVolume* HGADrive_log_i; + HGADrive_log_i = new G4LogicalVolume + (HGADrive_box_i, vacuum, "HGADrive_log_i"); + G4VPhysicalVolume* HGADrive_phys_i; + HGADrive_phys_i = new G4PVPlacement + (0, 0, "HGADrive_phys_i", HGADrive_log_i, HGADrive_phys_o, false, 0); // // - G4Box* InterfelEL_box_o = new G4Box("InterfelEL_box_o", - 0.5*200.*mm, 0.5*200.*mm, 0.5*150.*mm); - G4LogicalVolume* InterfelEL_log_o = new G4LogicalVolume - (InterfelEL_box_o, Al6061, "InterfelEL_log_o"); + G4Box* InterfelEL_box_o; + InterfelEL_box_o = new G4Box("InterfelEL_box_o", + 0.5*200.*mm, 0.5*200.*mm, 0.5*150.*mm); + G4LogicalVolume* InterfelEL_log_o; + InterfelEL_log_o = new G4LogicalVolume + (InterfelEL_box_o, Al6061, "InterfelEL_log_o"); G4VPhysicalVolume* InterfelEL_phys_o; InterfelEL_phys_o = new G4PVPlacement(0, spacecraft_pos + InterfelEL1_pos, - "InterfelEL_phys_o", InterfelEL_log_o, wld_phys, false, 0); + "InterfelEL_phys_o", InterfelEL_log_o, wld_phys, false, 0); InterfelEL_phys_o = new G4PVPlacement(0, spacecraft_pos + InterfelEL2_pos, - "InterfelEL_phys_o", InterfelEL_log_o, wld_phys, false, 1); + "InterfelEL_phys_o", InterfelEL_log_o, wld_phys, false, 1); f = std::pow(1.-3.50/(2.70*200*200*150)*1E6, 1./3.); - G4Box* InterfelEL_box_i = new G4Box("InterfelEL_box_i", - f*0.5*200.*mm, f*0.5*200.*mm, f*0.5*150.*mm); - G4LogicalVolume* InterfelEL_log_i = new G4LogicalVolume - (InterfelEL_box_i, vacuum, "InterfelEL_log_i"); - G4VPhysicalVolume* InterfelEL_phys_i = new G4PVPlacement(0, 0, - "InterfelEL_phys_i", InterfelEL_log_i, InterfelEL_phys_o, false, 0); + G4Box* InterfelEL_box_i; + InterfelEL_box_i = new G4Box("InterfelEL_box_i", + f*0.5*200.*mm, f*0.5*200.*mm, f*0.5*150.*mm); + G4LogicalVolume* InterfelEL_log_i; + InterfelEL_log_i = new G4LogicalVolume + (InterfelEL_box_i, vacuum, "InterfelEL_log_i"); + G4VPhysicalVolume* InterfelEL_phys_i; + InterfelEL_phys_i = new G4PVPlacement(0, 0, + "InterfelEL_phys_i", InterfelEL_log_i, InterfelEL_phys_o, false, 0); // // - G4Box* LaserEL_box_o = new G4Box("LaserEL_box_o", - 0.5*200.*mm, 0.5*200.*mm, 0.5*100.*mm); - G4LogicalVolume* LaserEL_log_o = new G4LogicalVolume - (LaserEL_box_o, Al6061, "LaserEL_log_o"); + G4Box* LaserEL_box_o; + LaserEL_box_o = new G4Box("LaserEL_box_o", + 0.5*200.*mm, 0.5*200.*mm, 0.5*100.*mm); + G4LogicalVolume* LaserEL_log_o; + LaserEL_log_o = new G4LogicalVolume + (LaserEL_box_o, Al6061, "LaserEL_log_o"); G4VPhysicalVolume* LaserEL_phys_o; LaserEL_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot1, spacecraft_pos + LaserEL1_pos), - "LaserEL_phys_o", LaserEL_log_o, wld_phys, false, 0); + (EB_rot1, spacecraft_pos + LaserEL1_pos), + "LaserEL_phys_o", LaserEL_log_o, wld_phys, false, 0); LaserEL_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot2, spacecraft_pos + LaserEL2_pos), - "LaserEL_phys_o", LaserEL_log_o, wld_phys, false, 1); + (EB_rot2, spacecraft_pos + LaserEL2_pos), + "LaserEL_phys_o", LaserEL_log_o, wld_phys, false, 1); f = std::pow(1.-3.00/(2.70*200*200*100)*1E6, 1./3.); - G4Box* LaserEL_box_i = new G4Box("LaserEL_box_i", - f*0.5*200.*mm, f*0.5*200.*mm, f*0.5*100.*mm); - G4LogicalVolume* LaserEL_log_i = new G4LogicalVolume - (LaserEL_box_i, vacuum, "LaserEL_log_i"); - G4VPhysicalVolume* LaserEL_phys_i = new G4PVPlacement - (0, 0, "LaserEL_phys_i", LaserEL_log_i, LaserEL_phys_o, false, 0); + G4Box* LaserEL_box_i; + LaserEL_box_i = new G4Box("LaserEL_box_i", + f*0.5*200.*mm, f*0.5*200.*mm, f*0.5*100.*mm); + G4LogicalVolume* LaserEL_log_i; + LaserEL_log_i = new G4LogicalVolume + (LaserEL_box_i, vacuum, "LaserEL_log_i"); + G4VPhysicalVolume* LaserEL_phys_i; + LaserEL_phys_i = new G4PVPlacement + (0, 0, "LaserEL_phys_i", LaserEL_log_i, LaserEL_phys_o, false, 0); // // - G4Box* LaserHead_box_o = new G4Box("LaserHead_box_o", - 0.5*100.*mm, 0.5*100.*mm, 0.5*50.*mm); - G4LogicalVolume* LaserHead_log_o = new G4LogicalVolume - (LaserHead_box_o, Al6061, "LaserHead_log_o"); + G4Box* LaserHead_box_o; + LaserHead_box_o = new G4Box("LaserHead_box_o", + 0.5*100.*mm, 0.5*100.*mm, 0.5*50.*mm); + G4LogicalVolume* LaserHead_log_o; + LaserHead_log_o = new G4LogicalVolume + (LaserHead_box_o, Al6061, "LaserHead_log_o"); G4VPhysicalVolume* LaserHead_phys_o; LaserHead_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot3, spacecraft_pos + LaserHead1_pos), - "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 0); + (EB_rot3, spacecraft_pos + LaserHead1_pos), + "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 0); LaserHead_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot3, spacecraft_pos + LaserHead2_pos), - "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 1); + (EB_rot3, spacecraft_pos + LaserHead2_pos), + "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 1); LaserHead_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot4, spacecraft_pos + LaserHead3_pos), - "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 2); + (EB_rot4, spacecraft_pos + LaserHead3_pos), + "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 2); LaserHead_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot4, spacecraft_pos + LaserHead4_pos), - "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 3); + (EB_rot4, spacecraft_pos + LaserHead4_pos), + "LaserHead_phys_o", LaserHead_log_o, wld_phys, false, 3); f = std::pow(1.-0.70/(2.70*100*100*50)*1E6, 1./3.); - G4Box* LaserHead_box_i = new G4Box("LaserHead_box_i", - f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*50.*mm); - G4LogicalVolume* LaserHead_log_i = new G4LogicalVolume - (LaserHead_box_i, vacuum, "LaserHead_log_i"); - G4VPhysicalVolume* LaserHead_phys_i = new G4PVPlacement - (0, 0, "LaserHead_phys_i", LaserHead_log_i, LaserHead_phys_o, false, 0); + G4Box* LaserHead_box_i; + LaserHead_box_i = new G4Box("LaserHead_box_i", + f*0.5*100.*mm, f*0.5*100.*mm, f*0.5*50.*mm); + G4LogicalVolume* LaserHead_log_i; + LaserHead_log_i = new G4LogicalVolume + (LaserHead_box_i, vacuum, "LaserHead_log_i"); + G4VPhysicalVolume* LaserHead_phys_i; + LaserHead_phys_i = new G4PVPlacement + (0, 0, "LaserHead_phys_i", LaserHead_log_i, LaserHead_phys_o, false, 0); // // - G4Box* StarTrack_U_box_o = new G4Box("StarStrack_box_o", - 0.5*50.*mm, 0.5*50.*mm, 0.5*54.*mm); - G4LogicalVolume* StarTrack_U_log_o = new G4LogicalVolume - (StarTrack_U_box_o, Al6061, "StarTrack_log_o"); + G4Box* StarTrack_U_box_o; + StarTrack_U_box_o = new G4Box("StarStrack_box_o", + 0.5*50.*mm, 0.5*50.*mm, 0.5*54.*mm); + G4LogicalVolume* StarTrack_U_log_o; + StarTrack_U_log_o = new G4LogicalVolume + (StarTrack_U_box_o, Al6061, "StarTrack_log_o"); G4VPhysicalVolume* StarTrack_U_phys_o; StarTrack_U_phys_o = new G4PVPlacement(0, spacecraft_pos + StarTrack1_pos, - "STarTrack_phys_o", StarTrack_U_log_o, wld_phys, false, 0); + "STarTrack_phys_o", StarTrack_U_log_o, wld_phys, false, 0); StarTrack_U_phys_o = new G4PVPlacement(0, spacecraft_pos + StarTrack2_pos, - "STarTrack_phys_o", StarTrack_U_log_o, wld_phys, false, 1); + "STarTrack_phys_o", StarTrack_U_log_o, wld_phys, false, 1); f = std::pow(1.-0.30/(2.70*50*50*54)*1E6, 1./3.); - G4Box* StarTrack_U_box_i = new G4Box("StarTrack_U_box_i", - f*0.5*50.*mm, f*0.5*50.*mm, f*0.5*54.*mm); - G4LogicalVolume* StarTrack_U_log_i = new G4LogicalVolume - (StarTrack_U_box_i, vacuum, "StarTrack_U_log_i"); - G4VPhysicalVolume* StarTrack_U_phys_i = new G4PVPlacement(0, 0, + G4Box* StarTrack_U_box_i; + StarTrack_U_box_i = new G4Box("StarTrack_U_box_i", + f*0.5*50.*mm, f*0.5*50.*mm, f*0.5*54.*mm); + G4LogicalVolume* StarTrack_U_log_i; + StarTrack_U_log_i = new G4LogicalVolume + (StarTrack_U_box_i, vacuum, "StarTrack_U_log_i"); + G4VPhysicalVolume* StarTrack_U_phys_i; + StarTrack_U_phys_i = new G4PVPlacement(0, 0, "StarTrack_U_phys_i", StarTrack_U_log_i, StarTrack_U_phys_o, false, 0); // // - G4Box* Transpond2_box_o = new G4Box("Transpond2_box_o", - 0.5*220.*mm, 0.5*184.*mm, 0.5*178.*mm); - G4LogicalVolume* Transpond2_log_o = new G4LogicalVolume - (Transpond2_box_o, Al6061, "Transpond2_log_o"); - G4VPhysicalVolume* Transpond2_phys_o = new G4PVPlacement(G4Transform3D - (EB_rot2, spacecraft_pos + Transpond2_pos), - "Transpond2_phys_o", Transpond2_log_o, wld_phys, false, 0); + G4Box* Transpond2_box_o; + Transpond2_box_o = new G4Box("Transpond2_box_o", + 0.5*220.*mm, 0.5*184.*mm, 0.5*178.*mm); + G4LogicalVolume* Transpond2_log_o; + Transpond2_log_o = new G4LogicalVolume + (Transpond2_box_o, Al6061, "Transpond2_log_o"); + G4VPhysicalVolume* Transpond2_phys_o; + Transpond2_phys_o = new G4PVPlacement(G4Transform3D + (EB_rot2, spacecraft_pos + Transpond2_pos), + "Transpond2_phys_o", Transpond2_log_o, wld_phys, false, 0); f = std::pow(1.-3.50/(2.70*220*184*178)*1E6, 1./3.); - G4Box* Transpond2_box_i = new G4Box("Transpond2_box_i", - f*0.5*220.*mm, f*0.5*184.*mm, f*0.5*178.*mm); - G4LogicalVolume* Transpond2_log_i = new G4LogicalVolume - (Transpond2_box_i, vacuum, "Transpond2_log_i"); - G4VPhysicalVolume* Transpond2_phys_i = new G4PVPlacement(0, 0, - "Transpond2_phys_i", Transpond2_log_i, Transpond2_phys_o, false, 0); + G4Box* Transpond2_box_i; + Transpond2_box_i = new G4Box("Transpond2_box_i", + f*0.5*220.*mm, f*0.5*184.*mm, f*0.5*178.*mm); + G4LogicalVolume* Transpond2_log_i; + Transpond2_log_i = new G4LogicalVolume + (Transpond2_box_i, vacuum, "Transpond2_log_i"); + G4VPhysicalVolume* Transpond2_phys_i; + Transpond2_phys_i = new G4PVPlacement(0, 0, + "Transpond2_phys_i", Transpond2_log_i, Transpond2_phys_o, false, 0); // vis Attributes diff --git a/examples/advanced/cosmicray_charging/src/LISAInertialSensor.icc b/examples/advanced/cosmicray_charging/src/LISAInertialSensor.icc index 83a7e8041c..02b8b7a0b4 100644 --- a/examples/advanced/cosmicray_charging/src/LISAInertialSensor.icc +++ b/examples/advanced/cosmicray_charging/src/LISAInertialSensor.icc @@ -34,6 +34,7 @@ // // HISTORY // 22/02/2004: migrated from LISA-V04 +// 08/12/2005: removed compilation warnings // // ******************************************************************** @@ -97,17 +98,19 @@ G4Box* cage_o_sol = new G4Box("cage_o_sol", .5*cage_o, .5*cage_o, .5*cage_o); G4LogicalVolume* cage_o_log = new G4LogicalVolume(cage_o_sol, molybdenum, "cage_o_log"); - G4VPhysicalVolume* cage_o_phys = new G4PVPlacement(0, G4ThreeVector(), + G4VPhysicalVolume* cage_o_phys; + cage_o_phys = new G4PVPlacement(0, G4ThreeVector(), "cage_o_phys", cage_o_log, SensorHousing_i_phys, false, 0); cage_o_log->SetVisAttributes(lgreen_vat); -// cage_o_log->SetVisAttributes(G4VisAttributes::Invisible); + // cage_o_log->SetVisAttributes(G4VisAttributes::Invisible); // 0.3 um gold plating G4Box* goldplating_sol = new G4Box("goldplating_sol", 0.5*cage_i_x+elec_thi, 0.5*cage_i_y+elec_thi, 0.5*cage_i_z+elec_thi); G4LogicalVolume* goldplating_log = new G4LogicalVolume(goldplating_sol, gold, "goldplating_log"); - G4VPhysicalVolume* goldplating_phys = new G4PVPlacement(0, G4ThreeVector(), + G4VPhysicalVolume* goldplating_phys; + goldplating_phys = new G4PVPlacement(0, G4ThreeVector(), "goldplating_phys", goldplating_log, cage_o_phys, false, 0); goldplating_log->SetVisAttributes(yellow_vat); @@ -116,7 +119,8 @@ new G4Box("cage_i_sol", .5*cage_i_x, .5*cage_i_y, .5*cage_i_z); G4LogicalVolume* cage_i_log = new G4LogicalVolume(cage_i_sol, vacuum, "cage_i_log"); - G4VPhysicalVolume* cage_i_phys = new G4PVPlacement(0, G4ThreeVector(), + G4VPhysicalVolume* cage_i_phys; + cage_i_phys = new G4PVPlacement(0, G4ThreeVector(), "cage_i_phys", cage_i_log, goldplating_phys, false, 0); cage_i_log->SetVisAttributes(white_vat); @@ -238,7 +242,8 @@ new G4Box("tmass_sol", 0.5*tmass_len, 0.5*tmass_len, 0.5*tmass_len); G4LogicalVolume* tmass_log = new G4LogicalVolume(tmass_sol, AuPt, "tmass_log"); - G4VPhysicalVolume* tmass_phys = new G4PVPlacement + G4VPhysicalVolume* tmass_phys; + tmass_phys = new G4PVPlacement (0, G4ThreeVector(), "tmass_phys", tmass_log, cage_i_phys, false, 0); tmass_log->SetVisAttributes(sol_gold_vat); diff --git a/examples/advanced/cosmicray_charging/src/LISAInterferometerAssembly.icc b/examples/advanced/cosmicray_charging/src/LISAInterferometerAssembly.icc index adf3d9ea1a..d7d84969de 100644 --- a/examples/advanced/cosmicray_charging/src/LISAInterferometerAssembly.icc +++ b/examples/advanced/cosmicray_charging/src/LISAInterferometerAssembly.icc @@ -38,6 +38,7 @@ // 24/11/2004: inner elec boxes made invisible // 24/11/2004: tweaked TelPriMir_phys (17 to 18mm) to avoid solid problem // 24/11/2004: G4Torus in SupportRing_sol still problematic! +// 08/12/2005: removed compilation warnings // // ******************************************************************** @@ -87,7 +88,8 @@ new G4LogicalVolume(uni2_o_sol, CFRP, "arms_o_log"); G4RotationMatrix ytube_rot3; ytube_rot3.rotateX(90.*deg); ytube_rot3.rotateZ(90.*deg); - G4VPhysicalVolume* arms_o_phys = new G4PVPlacement + G4VPhysicalVolume* arms_o_phys; + arms_o_phys = new G4PVPlacement (G4Transform3D(ytube_rot3, spacecraft_pos + G4ThreeVector(YTube_xoff,0,0)), "arms_o_phys", arms_o_log, wld_phys, false, 0); arms_o_log->SetVisAttributes(yellow_vat); @@ -104,7 +106,8 @@ arm3_i_sol, G4Transform3D(ytube_rot2, G4ThreeVector(-tune_y,0,tune_x))); G4LogicalVolume* arms_i_log = new G4LogicalVolume(uni2_i_sol, vacuum, "arms_i_log"); - G4VPhysicalVolume* arms_i_phys = new G4PVPlacement(0, G4ThreeVector(0,0,0), + G4VPhysicalVolume* arms_i_phys; + arms_i_phys = new G4PVPlacement(0, G4ThreeVector(0,0,0), "arms_i_phys", arms_i_log, arms_o_phys, false, 0); arms_i_log->SetVisAttributes(yellow_vat); @@ -246,7 +249,8 @@ G4Transform3D(cutout_rot, G4ThreeVector())); G4LogicalVolume* OpticalBench_log = new G4LogicalVolume(OpticalBench_sol, ULEglass, "OpticalBench_log"); - G4VPhysicalVolume* OpticalBench_phys= + G4VPhysicalVolume* OpticalBench_phys; + OpticalBench_phys= new G4PVPlacement(0, G4ThreeVector(0,0, OpticalBench_off), "OpticalBench_phys", OpticalBench_log, TelBox_phys, false, 0); OpticalBench_log->SetVisAttributes(sol_white_vat); @@ -271,7 +275,8 @@ 0.5*(SupportRing_od-SupportRing_dia_o), 0.,360.*deg); G4LogicalVolume* SupportRing_log = new G4LogicalVolume(SupportRing_sol, ULEglass, "SupportRing_log"); - G4VPhysicalVolume* SupportRing_phys= + G4VPhysicalVolume* SupportRing_phys; + SupportRing_phys= new G4PVPlacement(0, G4ThreeVector(0.,0.,OpticalBench_off), "SupportRing_phys", SupportRing_log, TelBox_phys, false, 0); SupportRing_log->SetVisAttributes(sol_red_vat); @@ -347,7 +352,8 @@ 0.5*ShieldTube_len, 0., 360.*deg); G4LogicalVolume* ShieldTube_log = new G4LogicalVolume(ShieldTube_sol, CFRP, "ShieldTube_log"); - G4VPhysicalVolume* ShieldTube_phys = new G4PVPlacement(0, + G4VPhysicalVolume* ShieldTube_phys; + ShieldTube_phys = new G4PVPlacement(0, G4ThreeVector(0,0,OpticalBench_off-ShieldTube_off), "ShieldTube_phys", ShieldTube_log, TelBox_phys, false, 0); ShieldTube_log->SetVisAttributes(G4VisAttributes::Invisible); @@ -389,7 +395,8 @@ 0., 0.5*ShieldPlate_dia, 0.5*ShieldPlate_thi, 0., 360.*deg); G4LogicalVolume* ShieldPlate_log = new G4LogicalVolume(ShieldPlate_sol, CFRP, "ShieldPlate_log"); - G4VPhysicalVolume* ShieldPlate_phys = new G4PVPlacement(0, + G4VPhysicalVolume* ShieldPlate_phys; + ShieldPlate_phys = new G4PVPlacement(0, G4ThreeVector(0,0,OpticalBench_off + ShieldPlate_off), "ShieldPlate_phys", ShieldPlate_log, TelBox_phys, false, 0); ShieldPlate_log->SetVisAttributes(sol_white_vat); @@ -427,7 +434,8 @@ s*0.5*TelElecBox_hei, s*0.5*TelElecBox_len); G4LogicalVolume* TelElecBoxIn_log = new G4LogicalVolume(TelElecBoxIn_sol, vacuum, "TelElecBoxIn_log"); - G4VPhysicalVolume* TelElecBoxIn_phys = new G4PVPlacement + G4VPhysicalVolume* TelElecBoxIn_phys; + TelElecBoxIn_phys = new G4PVPlacement (0, 0, "TelElecBoxIn_i", TelElecBoxIn_log, TelElecBox_phys, false, 0); TelElecBoxIn_log->SetVisAttributes(G4VisAttributes::Invisible); @@ -454,7 +462,8 @@ G4LogicalVolume* FrontThermalShield_log = new G4LogicalVolume(FrontThermalShield_sol, CFRP, "FrontThermalShield_log"); - G4VPhysicalVolume* FrontThermalShield_phys = new G4PVPlacement + G4VPhysicalVolume* FrontThermalShield_phys; + FrontThermalShield_phys = new G4PVPlacement (0, G4ThreeVector(0, 0, OpticalBench_off-FrontThermalShield_off), "FrontThermalShield_phys", FrontThermalShield_log, TelBox_phys, false, 0); FrontThermalShield_log->SetVisAttributes(sol_white_vat); @@ -504,7 +513,8 @@ G4ThreeVector(0., -TelPriMirMountCutout2_yoff, 0.))); G4LogicalVolume* TelPriMirMount_log = new G4LogicalVolume(TelPriMirMount_sol2, Al6061, "TelPriMirMount_log"); - G4VPhysicalVolume* TelPriMirMount_phys = new G4PVPlacement(0, + G4VPhysicalVolume* TelPriMirMount_phys; + TelPriMirMount_phys = new G4PVPlacement(0, G4ThreeVector(0.,TelPriMirMount_yoff, OpticalBench_off-TelPriMirMount_off), "TelPriMirMount_phys", TelPriMirMount_log, TelBox_phys, false, 0); TelPriMirMount_log->SetVisAttributes(sol_blue_vat); @@ -526,7 +536,8 @@ 0.5*TelPriMirHol_len, 0., 360.*deg); G4LogicalVolume* TelPriMirCyl_log = new G4LogicalVolume(TelPriMirCyl_sol, SiC, "TelPriMirCyl_log"); - G4VPhysicalVolume* TelPriMirCyl_phys= new G4PVPlacement(0, G4ThreeVector + G4VPhysicalVolume* TelPriMirCyl_phys; + TelPriMirCyl_phys= new G4PVPlacement(0, G4ThreeVector (0,TelPriMir_yoff,OpticalBench_off-TelPriMir_off+0.5*TelPriMirMount_thi), "TelPriMirCyl_phys", TelPriMirCyl_log, TelBox_phys, false, 0); TelPriMirCyl_log->SetVisAttributes(sol_green_vat); @@ -539,7 +550,8 @@ std::atan(0.5*TelPriMirHol_dia/TelPriMir_rad)); G4LogicalVolume* TelPriMir_log = new G4LogicalVolume(TelPriMir_sol, SiC, "TelPriMir_log"); - G4VPhysicalVolume* TelPriMir_phys= new G4PVPlacement(0, G4ThreeVector + G4VPhysicalVolume* TelPriMir_phys; + TelPriMir_phys= new G4PVPlacement(0, G4ThreeVector (0,TelPriMir_yoff, OpticalBench_off-TelPriMir_off-TelPriMir_rad-18.*mm), "TelPriMir_phys", TelPriMir_log, TelBox_phys, false, 0); TelPriMir_log->SetVisAttributes(sol_green_vat); @@ -562,7 +574,8 @@ 0.5*TelMast_len, 0., 360.*deg); G4LogicalVolume* TelMast_log = new G4LogicalVolume(TelMast_sol, SiC, "TelMast_log"); - G4VPhysicalVolume* TelMast_phys= new G4PVPlacement(0, offset+G4ThreeVector + G4VPhysicalVolume* TelMast_phys; + TelMast_phys= new G4PVPlacement(0, offset+G4ThreeVector (0,-0.5*TelPriMir_dia - 0.5*TelMast_dia + TelPriMir_yoff, -TelMast_off), "TelMastTel_phys", TelMast_log, TelShield_phys, false, 0); TelMast_log->SetVisAttributes(sol_grey_vat); @@ -579,7 +592,8 @@ 0.5*TelSecMir_len, 0., 360.*deg); G4LogicalVolume* TelSecMir_log = new G4LogicalVolume(TelSecMir_sol, SiC, "TelSecMir_log"); - G4VPhysicalVolume* TelSecMir_phys= new G4PVPlacement + G4VPhysicalVolume* TelSecMir_phys; + TelSecMir_phys= new G4PVPlacement (0, offset+G4ThreeVector(0,TelPriMir_yoff, -TelSecMir_off), "TelSecMir_phys", TelSecMir_log, TelShield_phys, false, 0); TelSecMir_log->SetVisAttributes(sol_green_vat); @@ -604,7 +618,8 @@ tel_rot11.rotateY(-90.*deg); tel_rot11.rotateX(-90.*deg); G4LogicalVolume* TelSecHol_log = new G4LogicalVolume(TelSecHol_sol, SiC, "TelSecHol_log"); - G4VPhysicalVolume* TelSecHol_phys= new G4PVPlacement(G4Transform3D + G4VPhysicalVolume* TelSecHol_phys; + TelSecHol_phys= new G4PVPlacement(G4Transform3D (tel_rot11, offset + G4ThreeVector(0, TelPriMir_yoff-0.5*TelSecHol_len-0.5*TelSecMir_dia-TelSecHolCap2_thi, -TelMast_off-0.5*TelMast_len+TelSecHol_top)), @@ -616,7 +631,8 @@ 0.5*TelMast_dia+TelSecHolCap1_thi, 0.5*TelSecHolCap1_len, 0., 360.*deg); G4LogicalVolume* TelSecHolCap1_log = new G4LogicalVolume(TelSecHolCap1_sol, SiC, "TelSecHolCap1_log"); - G4VPhysicalVolume* TelSecHolCap1_phys= new G4PVPlacement(0, + G4VPhysicalVolume* TelSecHolCap1_phys; + TelSecHolCap1_phys= new G4PVPlacement(0, offset + G4ThreeVector(0,-0.5*TelPriMir_dia-0.5*TelMast_dia+TelPriMir_yoff, -TelMast_off-0.5*TelMast_len+0.5*TelSecHol_bot), "TelSecHolCap1_phys", TelSecHolCap1_log, TelShield_phys, false, 0); @@ -627,7 +643,8 @@ 0.5*TelSecMir_dia+TelSecHolCap2_thi, 0.5*TelSecHolCap2_len, 0., 360.*deg); G4LogicalVolume* TelSecHolCap2_log = new G4LogicalVolume(TelSecHolCap2_sol, SiC, "TelSecHolCap2_log"); - G4VPhysicalVolume* TelSecHolCap2_phys= new G4PVPlacement(0, + G4VPhysicalVolume* TelSecHolCap2_phys; + TelSecHolCap2_phys= new G4PVPlacement(0, offset + G4ThreeVector(0,TelPriMir_yoff, -TelMast_off-0.5*TelMast_len+0.5*TelSecHol_top), "TelSecHolCap2_phys", TelSecHolCap2_log, TelShield_phys, false, 0); diff --git a/examples/advanced/cosmicray_charging/src/LISAPhysicsList.cc b/examples/advanced/cosmicray_charging/src/LISAPhysicsList.cc index 56df365ec8..ebb6421f41 100644 --- a/examples/advanced/cosmicray_charging/src/LISAPhysicsList.cc +++ b/examples/advanced/cosmicray_charging/src/LISAPhysicsList.cc @@ -36,6 +36,7 @@ // 22/02/2004: migrated from LISA-V04 // 09/08/2004: Removed call by pointer of hadronics classes // 09/08/2004: Added MuNuclear interaction +// 08/12/2005: changed particle construction // // ******************************************************************** @@ -92,21 +93,25 @@ LISAPhysicsList::~LISAPhysicsList() #include "G4IonConstructor.hh" void LISAPhysicsList::ConstructParticle() { + + G4LeptonConstructor lepton; + lepton.ConstructParticle(); - G4LeptonConstructor aC1; - G4BaryonConstructor aC2; - G4MesonConstructor aC3; - G4BosonConstructor aC4; - G4IonConstructor aC5; - G4ShortLivedConstructor aC6; + G4BosonConstructor boson; + boson.ConstructParticle(); - aC1.ConstructParticle(); - aC2.ConstructParticle(); - aC3.ConstructParticle(); - aC4.ConstructParticle(); - aC5.ConstructParticle(); - aC6.ConstructParticle(); + G4MesonConstructor meson; + meson.ConstructParticle(); + G4BaryonConstructor baryon; + baryon.ConstructParticle(); + + G4ShortLivedConstructor shortLived; + shortLived.ConstructParticle(); + + G4IonConstructor ion; + ion.ConstructParticle(); + } ///////////////////////////////////////////////////////////////////////////// @@ -264,9 +269,11 @@ void LISAPhysicsList::ElectroNuclearPhysics() { theHEModel_PN = new G4TheoFSGenerator; theCascade_PN = new G4StringChipsParticleLevelInterface; theHEModel_PN->SetTransport(theCascade_PN); - theHEModel_PN->SetHighEnergyGenerator(&theStringModel_PN); + theHEModel_PN->SetHighEnergyGenerator(theStringModel_PN); theStringDecay_PN = new G4ExcitedStringDecay(&theFragmentation_PN); - theStringModel_PN.SetFragmentationModel(theStringDecay_PN); + + theStringModel_PN = new G4QGSModel; + theStringModel_PN -> SetFragmentationModel(theStringDecay_PN); theHEModel_PN->SetMinEnergy(3.*GeV); theHEModel_PN->SetMaxEnergy(100*TeV); thePhotoNuclearProcess.RegisterMe(theHEModel_PN); @@ -326,12 +333,15 @@ void LISAPhysicsList::HadronicPhysics() { theHandler->SetMultiFragmentation(theMF); theHandler->SetMaxAandZForFermiBreakUp(12, 6); theHandler->SetMinEForMultiFrag(3.*MeV); + // pre-equilibrium stage thePreEquilib = new G4PreCompoundModel(theHandler); thePreEquilib->SetMaxEnergy(70*MeV); + // a no-cascade generator-precompound interaface theCascade = new G4GeneratorPrecompoundInterface; theCascade->SetDeExcitation(thePreEquilib); + // QGSP model theStringModel = new G4QGSModel; theHEModel->SetTransport(theCascade); diff --git a/examples/advanced/cosmicray_charging/src/LISAPrimaryGeneratorAction.cc b/examples/advanced/cosmicray_charging/src/LISAPrimaryGeneratorAction.cc index 9721390ad1..47ca4977b3 100644 --- a/examples/advanced/cosmicray_charging/src/LISAPrimaryGeneratorAction.cc +++ b/examples/advanced/cosmicray_charging/src/LISAPrimaryGeneratorAction.cc @@ -67,8 +67,8 @@ void LISAPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { energy_pri = 0.; // seeds - seeds[0] = *HepRandom::getTheSeeds(); - seeds[1] = *(HepRandom::getTheSeeds()+1); + seeds[0] = *CLHEP::HepRandom::getTheSeeds(); + seeds[1] = *(CLHEP::HepRandom::getTheSeeds()+1); // G4cout << " 1st seed: " << *seeds << G4endl;; // G4cout << " 2nd seed: " << *(seeds+1) << G4endl; // HepRandom::showEngineStatus(); diff --git a/examples/advanced/cosmicray_charging/src/LISARunAction.cc b/examples/advanced/cosmicray_charging/src/LISARunAction.cc index 46ff59a962..ec1bd3d30c 100644 --- a/examples/advanced/cosmicray_charging/src/LISARunAction.cc +++ b/examples/advanced/cosmicray_charging/src/LISARunAction.cc @@ -53,7 +53,7 @@ #include "G4VVisManager.hh" #include "G4ios.hh" #include "globals.hh" -#include +#include #include "Randomize.hh" #include @@ -101,8 +101,7 @@ void LISARunAction::BeginOfRunAction(const G4Run* aRun) { G4cout << "### Run " << run_id << " start." << G4endl; - char filename[100]; - std::ostrstream os(filename,100); + std::ostringstream os; if(autoSeed) { // automatic (time-based) random seeds and filenames for each run @@ -114,8 +113,8 @@ void LISARunAction::BeginOfRunAction(const G4Run* aRun) { seeds[0] = (long) systime; seeds[1] = (long) (systime*G4UniformRand()); // G4cout << "seed1: " << seeds[0] << "; seed2: " << seeds[1] << G4endl; - HepRandom::setTheSeeds(seeds); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::setTheSeeds(seeds); + CLHEP::HepRandom::showEngineStatus(); // form filename (eg run00_7324329387_3284798343.out) os << "run" << std::setw(2) << std::setfill('0') << run_id @@ -125,19 +124,19 @@ void LISARunAction::BeginOfRunAction(const G4Run* aRun) { // default filename, seeds set by /random/reset os << "charge" << std::ends; } - // G4cout << "Filename: " << G4String(filename) << G4endl; + // G4cout << "Filename: " << G4String(os.str()) << G4endl; // send filename to eventAction LISAEventAction* eventAction = (LISAEventAction*) G4RunManager::GetRunManager()->GetUserEventAction(); - eventAction->SetFilename( G4String(filename)+G4String(".out") ); + eventAction->SetFilename( G4String(os.str())+G4String(".out") ); #ifdef G4ANALYSIS_USE // Book histograms and ntuples LISAAnalysisManager* analysis = LISAAnalysisManager::getInstance(); - analysis->bookRun( G4String(filename)+G4String(".hbook") ); + analysis->bookRun( G4String(os.str())+G4String(".hbook") ); #endif diff --git a/examples/advanced/cosmicray_charging/src/LISARunActionMessenger.cc b/examples/advanced/cosmicray_charging/src/LISARunActionMessenger.cc index b8cbba7554..74e255336a 100644 --- a/examples/advanced/cosmicray_charging/src/LISARunActionMessenger.cc +++ b/examples/advanced/cosmicray_charging/src/LISARunActionMessenger.cc @@ -40,6 +40,8 @@ #include "LISARunActionMessenger.hh" +#include + #include "LISARunAction.hh" @@ -69,7 +71,7 @@ void LISARunActionMessenger::SetNewValue if(command == SetAutoSeedCmd) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; runAction->SetAutoSeed(vl!=0); } diff --git a/examples/advanced/cosmicray_charging/src/LISAScienceModuleStructures.icc b/examples/advanced/cosmicray_charging/src/LISAScienceModuleStructures.icc index 1873e27317..789eddf1a5 100644 --- a/examples/advanced/cosmicray_charging/src/LISAScienceModuleStructures.icc +++ b/examples/advanced/cosmicray_charging/src/LISAScienceModuleStructures.icc @@ -35,6 +35,7 @@ // HISTORY // 22/02/2004: migrated from LISA-V04 // 24/11/2004: migrated to cmath +// 08/12/2005: removed compilation warnings // // ******************************************************************** @@ -111,7 +112,7 @@ G4double RadPanel_bot = LowerDeck_dia+12.*mm; G4double RadPanel_len = 510.*mm; G4double RadPanel_thi = 1.25*mm; - G4double RadPanel_zoff = 20*mm; + // G4double RadPanel_zoff = 20*mm; G4double RadPanelCutout_roff = 0.5*(RadPanel_top+RadPanel_bot)/2.; G4double RadPanelCutout1_dia = 466.*mm; G4double RadPanelCutout1_len = 200.*mm; @@ -291,7 +292,8 @@ RadialPanelSkin_top, RadialPanelSkin_bot); G4LogicalVolume* RadialPanelCore_log = new G4LogicalVolume (RadialPanelCore_sol, AlHoneycomb, "RadialPanelCore_log"); - G4VPhysicalVolume* RadialPanelCore_phys = new G4PVPlacement + G4VPhysicalVolume* RadialPanelCore_phys; + RadialPanelCore_phys = new G4PVPlacement (0, G4ThreeVector(0,0,0), "RadialPanelCore_phys", RadialPanelCore_log, RadialPanelSkin_phys, false, 0); RadialPanelCore_log->SetVisAttributes(sol_white_vat); @@ -307,7 +309,8 @@ 0.5*UpperDeckCore_thi + UpperDeckSkin_thi, 0., 360.*deg); G4LogicalVolume* UpperDeckSkin_log = new G4LogicalVolume (UpperDeckSkin_sol, CFRP, "UpperDeckSkin_log"); - G4VPhysicalVolume* UpperDeckSkin_phys = new G4PVPlacement + G4VPhysicalVolume* UpperDeckSkin_phys; + UpperDeckSkin_phys = new G4PVPlacement (0, spacecraft_pos + G4ThreeVector(0,0,+0.5*StructTube_hei +0.5*UpperDeckCore_thi+UpperDeckSkin_thi+UpperDeck_zoff), "UpperDeckSkin_phys", UpperDeckSkin_log, wld_phys, false, 0); @@ -318,7 +321,8 @@ ("UpperDeckCore_sol",0.,.5*UpperDeck_dia,.5*UpperDeckCore_thi,0.,360.*deg); G4LogicalVolume* UpperDeckCore_log = new G4LogicalVolume (UpperDeckCore_sol, AlHoneycomb, "UpperDeckCore_log"); - G4VPhysicalVolume* UpperDeckCore_phys = new G4PVPlacement(0,G4ThreeVector(), + G4VPhysicalVolume* UpperDeckCore_phys; + UpperDeckCore_phys = new G4PVPlacement(0,G4ThreeVector(), "UpperDeckCore_phys", UpperDeckCore_log, UpperDeckSkin_phys, false, 0); UpperDeckCore_log->SetVisAttributes(white_vat); @@ -328,7 +332,8 @@ 0.5*LowerDeckCore_thi + LowerDeckSkin_thi, 0., 360.*deg); G4LogicalVolume* LowerDeckSkin_log = new G4LogicalVolume (LowerDeckSkin_sol, CFRP, "LowerDeckSkin_log"); - G4VPhysicalVolume* LowerDeckSkin_phys = new G4PVPlacement + G4VPhysicalVolume* LowerDeckSkin_phys; + LowerDeckSkin_phys = new G4PVPlacement (0, spacecraft_pos + G4ThreeVector(0,0,-0.5*StructTube_hei -0.5*LowerDeckCore_thi-LowerDeckSkin_thi-LowerDeck_zoff), "LowerDeckSkin_phys", LowerDeckSkin_log, wld_phys, false, 0); @@ -339,7 +344,8 @@ ("LowerDeckCore_sol",0.,.5*LowerDeck_dia,.5*LowerDeckCore_thi,0.,360.*deg); G4LogicalVolume* LowerDeckCore_log = new G4LogicalVolume (LowerDeckCore_sol, AlHoneycomb, "LowerDeckCore_log"); - G4VPhysicalVolume* LowerDeckCore_phys = new G4PVPlacement(0,G4ThreeVector(), + G4VPhysicalVolume* LowerDeckCore_phys; + LowerDeckCore_phys = new G4PVPlacement(0,G4ThreeVector(), "LowerDeckCore_phys", LowerDeckCore_log, LowerDeckSkin_phys, false, 0); LowerDeckCore_log->SetVisAttributes(sol_dgrey_vat); @@ -348,7 +354,8 @@ 0., 0.5*MLIBlanket_dia, 0.5*MLIBlanket_thi, 0., 360.*deg); G4LogicalVolume* MLIBlanket_log = new G4LogicalVolume (MLIBlanket_sol, MLImat, "MLIBlanket_log"); - G4VPhysicalVolume* MLIBlanket_phys = new G4PVPlacement + G4VPhysicalVolume* MLIBlanket_phys; + MLIBlanket_phys = new G4PVPlacement (0, spacecraft_pos + G4ThreeVector(0,0,-0.5*StructTube_hei -LowerDeckCore_thi-2*LowerDeckSkin_thi-LowerDeck_zoff-.5*MLIBlanket_thi), "MLIBlanket_phys", MLIBlanket_log, wld_phys, false, 0); @@ -363,7 +370,8 @@ 0., 0.5*UpperDeck_dia, 0.5*ThermalShield_thi, 0., 360.*deg); G4LogicalVolume* ThermalShieldFacesheet_log = new G4LogicalVolume (ThermalShieldFacesheet_sol, CFRP, "ThermalShieldFacesheet_log"); - G4VPhysicalVolume* ThermalShieldFacesheet_phys = new G4PVPlacement(0, + G4VPhysicalVolume* ThermalShieldFacesheet_phys; + ThermalShieldFacesheet_phys = new G4PVPlacement(0, spacecraft_pos + G4ThreeVector (0,0,+.5*StructTube_hei+UpperDeckCore_thi+2*UpperDeckSkin_thi+ UpperDeck_zoff+0.5*ThermalShield_thi+ThermalShield_zoff), @@ -375,21 +383,23 @@ 0., 0.5*UpperDeck_dia, 0.5*ThermalShieldCore_thi, 0., 360.*deg); G4LogicalVolume* ThermalShieldCore_log = new G4LogicalVolume (ThermalShieldCore_sol, AlHoneycomb, "ThermalShieldCore_log"); - G4VPhysicalVolume* ThermalShieldCore_phys = new G4PVPlacement(0, + G4VPhysicalVolume* ThermalShieldCore_phys; + ThermalShieldCore_phys = new G4PVPlacement(0, G4ThreeVector(0,0,.5*ThermalShieldFacesheet_thi+.5*ThermalShieldCore_thi), "ThermalShieldCore_phys", ThermalShieldCore_log, ThermalShieldFacesheet_phys, false, 0); ThermalShieldCore_log->SetVisAttributes(red_vat); -// Thermal Shield: foam + // Thermal Shield: foam G4Tubs* ThermalShieldFoam_sol = new G4Tubs("ThermalShieldFoam_sol", 0., 0.5*UpperDeck_dia, 0.5*ThermalShieldFoam_thi, 0., 360.*deg); G4LogicalVolume* ThermalShieldFoam_log = new G4LogicalVolume (ThermalShieldFoam_sol, foam, "ThermalShieldFoam_log"); - G4VPhysicalVolume* ThermalShieldFoam_phys = new G4PVPlacement(0, + G4VPhysicalVolume* ThermalShieldFoam_phys; + ThermalShieldFoam_phys = new G4PVPlacement(0, G4ThreeVector(0,0,-.5*ThermalShieldFacesheet_thi-.5*ThermalShieldFoam_thi), "ThermalShieldFoam_phys", ThermalShieldFoam_log, ThermalShieldFacesheet_phys, false, 0); - ThermalShieldFoam_log->SetVisAttributes(red_vat); + ThermalShieldFoam_log->SetVisAttributes(red_vat); @@ -401,7 +411,8 @@ SolarArray_i, SolarArray_o, 0.5*SolarArray_thi, 0., 360.*deg); G4LogicalVolume* SolarArray_log = new G4LogicalVolume (SolarArray_sol, Scell, "SolarArray_log"); - G4VPhysicalVolume* SolarArray_phys = new G4PVPlacement(0, spacecraft_pos + + G4VPhysicalVolume* SolarArray_phys; + SolarArray_phys = new G4PVPlacement(0, spacecraft_pos + G4ThreeVector(0,0,+.5*StructTube_hei+UpperDeckCore_thi+2*UpperDeckSkin_thi+ UpperDeck_zoff+ThermalShield_thi+ThermalShield_zoff+0.5*SolarArray_thi), "SolarArray_phys",SolarArray_log, wld_phys, false, 0); @@ -411,7 +422,8 @@ 0., OSRAssy_o, 0.5*OSRAssy_thi, 0., 360.*deg); G4LogicalVolume* OSRAssy_log = new G4LogicalVolume (OSRAssy_sol, vacuum, "OSRAssy_log"); - G4VPhysicalVolume* OSRAssy_phys = new G4PVPlacement(0, spacecraft_pos + + G4VPhysicalVolume* OSRAssy_phys; + OSRAssy_phys = new G4PVPlacement(0, spacecraft_pos + G4ThreeVector(0,0,+.5*StructTube_hei+UpperDeckCore_thi+2*UpperDeckSkin_thi+ UpperDeck_zoff+ThermalShield_thi+ThermalShield_zoff+0.5*OSRAssy_thi), "OSRAssy_phys",OSRAssy_log, wld_phys, false, 0); @@ -468,7 +480,8 @@ RadPanelCutout_roff*std::sin(-120.*deg), RadPanelCutout2_zoff))); G4LogicalVolume* RadPanel_log = new G4LogicalVolume(RadPanel6_sol, Al6061, "RadPanel_log"); - G4VPhysicalVolume* RadPanel_phys = + G4VPhysicalVolume* RadPanel_phys; + RadPanel_phys = new G4PVPlacement(0, spacecraft_pos + G4ThreeVector(0,0,0), "RadPanel_phys", RadPanel_log, wld_phys, false, 0); RadPanel_log->SetVisAttributes(sol_white_vat); diff --git a/examples/advanced/cosmicray_charging/src/LISASensorHousing.icc b/examples/advanced/cosmicray_charging/src/LISASensorHousing.icc index eb57ad366e..be490636e2 100644 --- a/examples/advanced/cosmicray_charging/src/LISASensorHousing.icc +++ b/examples/advanced/cosmicray_charging/src/LISASensorHousing.icc @@ -34,6 +34,7 @@ // // HISTORY // 22/02/2004: migrated from LISA-V04 +// 08/12/2005: removed compilation warnings // // ******************************************************************** @@ -83,7 +84,8 @@ 0., 0.5*SensorHousing_dia, 0.5*SensorHousing_hei, 0., 360.*deg); G4LogicalVolume* SensorHousing_o_log = new G4LogicalVolume(SensorHousing_o_sol, TiAlloy, "SensorHousing_o_log"); - G4VPhysicalVolume* SensorHousing_o_phys = new G4PVPlacement(G4Transform3D + G4VPhysicalVolume* SensorHousing_o_phys; + SensorHousing_o_phys = new G4PVPlacement(G4Transform3D (IS_rot, G4ThreeVector(0,SensorHousing_yoff,OpticalBench_off)), "SensorHousing_o_phys", SensorHousing_o_log, TelBox_phys, false, 0); G4Tubs* SensorHousing_i_sol = new G4Tubs("SensorHousing_i_sol", @@ -91,7 +93,8 @@ - SensorHousing_thi, 0., 360.*deg); G4LogicalVolume* SensorHousing_i_log = new G4LogicalVolume(SensorHousing_i_sol, vacuum, "SensorHousing_i_log"); - G4VPhysicalVolume* SensorHousing_i_phys = new G4PVPlacement + G4VPhysicalVolume* SensorHousing_i_phys; + SensorHousing_i_phys = new G4PVPlacement (0, G4ThreeVector(0,0,0), "SensorHousing_i_phys", SensorHousing_i_log, SensorHousing_o_phys, false, 0); SensorHousing_o_log->SetVisAttributes(blue_vat); diff --git a/examples/advanced/cosmicray_charging/src/LISAStackingActionMessenger.cc b/examples/advanced/cosmicray_charging/src/LISAStackingActionMessenger.cc index e667a39d5e..484f30546f 100644 --- a/examples/advanced/cosmicray_charging/src/LISAStackingActionMessenger.cc +++ b/examples/advanced/cosmicray_charging/src/LISAStackingActionMessenger.cc @@ -40,6 +40,8 @@ #include "LISAStackingActionMessenger.hh" +#include + #include "LISAStackingAction.hh" @@ -88,7 +90,7 @@ void LISAStackingActionMessenger::SetNewValue if(command == SetPriSurvey) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; stackingAction->SetPrimarySurvey(vl!=0); } @@ -96,7 +98,7 @@ void LISAStackingActionMessenger::SetNewValue else if(command == SetPartSurvey) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; stackingAction->SetParticleSurvey(vl!=0); } diff --git a/examples/advanced/cosmicray_charging/src/LISASteppingActionMessenger.cc b/examples/advanced/cosmicray_charging/src/LISASteppingActionMessenger.cc index dbc92da0e6..c752815509 100644 --- a/examples/advanced/cosmicray_charging/src/LISASteppingActionMessenger.cc +++ b/examples/advanced/cosmicray_charging/src/LISASteppingActionMessenger.cc @@ -39,6 +39,8 @@ #include "LISASteppingActionMessenger.hh" +#include + #include "LISASteppingAction.hh" @@ -78,7 +80,7 @@ void LISASteppingActionMessenger::SetNewValue if(command == SetFlagSpectrum) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; steppingAction->SetFlagSpectrum(vl!=0); } diff --git a/examples/advanced/gammaray_telescope/GammaRayTel.cc b/examples/advanced/gammaray_telescope/GammaRayTel.cc index fb6369ebba..14cd0ec16f 100644 --- a/examples/advanced/gammaray_telescope/GammaRayTel.cc +++ b/examples/advanced/gammaray_telescope/GammaRayTel.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTel.cc,v 1.13 2005/06/03 13:26:15 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/History b/examples/advanced/gammaray_telescope/History index eadfae113e..7d06be8277 100644 --- a/examples/advanced/gammaray_telescope/History +++ b/examples/advanced/gammaray_telescope/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.3 2005/05/03 10:05:48 allison Exp $ +$Id: History,v 1.4 2005/12/07 10:50:31 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,6 +8,9 @@ $Id: History,v 1.3 2005/05/03 10:05:48 allison Exp $ History file ------------ +07-12-2005 - Susanna Guatelli (gammaraytel-V07-01-00) +- GammaRayParticles introduced +- G4Exception deriving from Hadronic Physics List deleted 3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. diff --git a/examples/advanced/gammaray_telescope/gammaraytel.out b/examples/advanced/gammaray_telescope/gammaraytel.out index 3b0264435c..56e26f27d6 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.out +++ b/examples/advanced/gammaray_telescope/gammaraytel.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/advanced/gammaray_telescope/gammaraytel.stt_out b/examples/advanced/gammaray_telescope/gammaraytel.stt_out index 312e3b8901..51b9e64dd9 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.stt_out +++ b/examples/advanced/gammaray_telescope/gammaraytel.stt_out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (19-May-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh index 8cb7f921fb..a888a51559 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysis.hh @@ -23,7 +23,7 @@ #ifdef G4ANALYSIS_USE // // $Id: GammaRayTelAnalysis.hh,v 1.17 2004/06/01 06:59:38 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh index 7dbedf1217..26efa9ace9 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnalysisMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnalysisMessenger.hh,v 1.3 2001/11/23 17:44:54 santin Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh index 3eb8bc8c15..434e6125eb 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceHit.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnticoincidenceHit.hh,v 1.2 2001/07/11 09:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh index ce059f0fdf..952834263f 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelAnticoincidenceSD.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnticoincidenceSD.hh,v 1.4 2003/05/30 15:08:47 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh index 9e0c77af13..22fe522e0d 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterHit.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelCalorimeterHit.hh,v 1.2 2001/07/11 09:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh index 3d73d337d5..735997c97f 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelCalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelCalorimeterSD.hh,v 1.4 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh index 0cf4c37899..39caedf253 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorConstruction.hh,v 1.7 2004/06/02 15:21:29 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh index 21a2efb8ca..a32a7be272 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorMessenger.hh,v 1.3 2001/07/11 09:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh index 859ab07d05..7bbe425c04 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigi.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigi.hh,v 1.1 2001/10/24 13:11:54 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh index 33c0d50ab5..6597b82311 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizer.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizer.hh,v 1.2 2001/11/29 09:34:17 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh index 82192b363e..a2ea231983 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDigitizerMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizerMessenger.hh,v 1.1 2001/11/29 09:34:17 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh index fbc9a3a1c9..279667ead1 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh @@ -23,7 +23,7 @@ // // $Id: GammaRayTelDummySD.hh,v 1.5 2003/05/30 15:08:47 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh index b4b910fd4b..90470f0884 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelEMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelEMPhysics.hh,v 1.1 2003/05/28 13:54:14 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh index e578297d88..d77764271d 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelEventAction.hh,v 1.9 2001/12/04 11:40:28 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh index 7206dcfd34..97bc9deee8 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelGeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelGeneralPhysics.hh,v 1.1 2003/05/28 13:54:14 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh index 2180dd1946..a5b87fb011 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: GammaRayTelHadronPhysics.hh,v 1.2 2003/06/16 16:46:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: GammaRayTelHadronPhysics.hh,v 1.3 2005/12/07 10:50:31 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file @@ -152,6 +152,7 @@ #include "G4QGSMFragmentation.hh" #include "G4ExcitedStringDecay.hh" + class GammaRayTelHadronPhysics : public G4VPhysicsConstructor { public: @@ -161,17 +162,17 @@ class GammaRayTelHadronPhysics : public G4VPhysicsConstructor public: // This method will be invoked in the Construct() method. // each particle type will be instantiated - virtual void ConstructParticle(); + void ConstructParticle(){}; // This method will be invoked in the Construct() method. // each physics process will be instantiated and // registered to the process manager of each particle type - virtual void ConstructProcess(); + void ConstructProcess(); protected: // Elastic Process - G4HadronElasticProcess theElasticProcess; - G4LElastic* theElasticModel; + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; // Pi + G4PionPlusInelasticProcess thePionPlusInelastic; @@ -192,11 +193,11 @@ class GammaRayTelHadronPhysics : public G4VPhysicsConstructor // pi+ and pi- - G4TheoFSGenerator theTheoModel; + G4TheoFSGenerator* theModel; G4ExcitationHandler theHandler; G4PreCompoundModel * thePreEquilib; - G4GeneratorPrecompoundInterface theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; + G4GeneratorPrecompoundInterface* theCascade; + G4QGSModel* theStringModel; G4QGSMFragmentation theFragmentation; G4ExcitedStringDecay * theStringDecay; @@ -334,9 +335,7 @@ class GammaRayTelHadronPhysics : public G4VPhysicsConstructor G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel; G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel; G4MultipleScattering theAntiOmegaMinusMult; - G4hIonisation theAntiOmegaMinusIonisation; - - + G4hIonisation theAntiOmegaMinusIonisation; }; diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh index 5f7df56451..682e131106 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelIonPhysics.hh,v 1.1 2003/05/28 13:54:14 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh index ac0a75b0af..1caa9888c3 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelMuonPhysics.hh,v 1.1 2003/05/28 13:54:14 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/src/G4VLepton.cc b/examples/advanced/gammaray_telescope/include/GammaRayTelParticles.hh similarity index 70% rename from source/particles/leptons/src/G4VLepton.cc rename to examples/advanced/gammaray_telescope/include/GammaRayTelParticles.hh index df10dbafeb..767aa4f857 100644 --- a/source/particles/leptons/src/G4VLepton.cc +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelParticles.hh @@ -19,33 +19,40 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// $Id: RemsimParticles.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Remsim example +// ---------------------------------------------------------------------------- +// Code developed by: // -// -// $Id: G4VLepton.cc,v 1.3 2001/07/11 10:01:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// +// S. Guatelli(b) // -// -------------------------------------------------------------- -// GEANT 4 class implementation file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// -------------------------------------------------------------- +// ---------------------------------------------------------------------------- + +#ifndef GAMMARAYTELPARTICLES_HH +#define GAMMARAYTELPARTICLES_HH 1 + +#include "globals.hh" +#include "G4VPhysicsConstructor.hh" + +class GammaRayTelParticles : public G4VPhysicsConstructor { +public: + + GammaRayTelParticles(const G4String& name = "particles"); + + virtual ~GammaRayTelParticles(); + + virtual void ConstructParticle(); + + // This method is dummy + virtual void ConstructProcess() {}; +}; +#endif + + + + -#include "G4VLepton.hh" -const G4VLepton & G4VLepton::operator=(const G4VLepton &right) -{ - if (this != &right) { - } return right; -} -G4int G4VLepton::operator==(const G4VLepton &right) const -{ - return (this->GetParticleName() == right.GetParticleName()); -} -G4int G4VLepton::operator!=(const G4VLepton &right) const -{ - return (this->GetParticleName() != right.GetParticleName()); -} diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh index 2139fd8ee4..334fc44e29 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorAction.hh,v 1.6 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh index aa4a3e7a5f..4e8de0db1e 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorMessenger.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh index bee03bb187..4e453c5e21 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelRunAction.hh,v 1.5 2001/11/23 17:44:54 santin Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh index 6ab933cc58..d4473279e2 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerHit.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerHit.hh,v 1.2 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh index 7651a2e780..159db8b662 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerROGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerROGeometry.hh,v 1.3 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh index ef55820c71..fcc4661fc6 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelTrackerSD.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerSD.hh,v 1.4 2001/11/29 11:19:17 griccard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc index 6bfe3079b9..0ca68df29a 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysis.cc @@ -23,7 +23,7 @@ #ifdef G4ANALYSIS_USE // // $Id: GammaRayTelAnalysis.cc,v 1.20 2004/06/01 06:59:39 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc index 3d727e2680..3b08a3b25a 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnalysisMessenger.cc,v 1.8 2002/12/11 17:13:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc index b996840614..5e34aa3692 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceHit.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnticoincidenceHit.cc,v 1.3 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc index a053e03f72..35bc608a08 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelAnticoincidenceSD.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelAnticoincidenceSD.cc,v 1.5 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc index d56f6f3bbe..4503a4de77 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterHit.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelCalorimeterHit.cc,v 1.3 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc index 17fb43de69..0871cb57a0 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelCalorimeterSD.cc,v 1.6 2003/11/14 14:59:48 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc index 281cd15add..39162dc0c7 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorConstruction.cc,v 1.12 2005/06/03 13:27:55 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc index bb853eabe4..c47ffe787f 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDetectorMessenger.cc,v 1.7 2002/12/11 17:13:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc index 6781eafc87..933e024999 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigi.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigi.cc,v 1.3 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc index 1148e74f5f..bb06afbe76 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizer.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizer.cc,v 1.4 2003/06/16 16:46:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc index 583e8e9aab..bfd082bcf7 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelDigitizerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelDigitizerMessenger.cc,v 1.4 2002/12/11 17:13:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc index b08cf3bda1..d2838961a9 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelEMPhysics.cc,v 1.2 2003/06/16 16:46:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: GammaRayTelEMPhysics.cc,v 1.3 2005/12/07 10:50:31 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -42,27 +42,8 @@ GammaRayTelEMPhysics::~GammaRayTelEMPhysics() { } -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" - -#include "G4Gamma.hh" - -#include "G4Electron.hh" -#include "G4Positron.hh" - -#include "G4NeutrinoE.hh" -#include "G4AntiNeutrinoE.hh" - void GammaRayTelEMPhysics::ConstructParticle() { - // gamma - G4Gamma::GammaDefinition(); - - // electron - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); } diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc index 510a990433..5aabd9c9f1 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelEventAction.cc,v 1.17 2003/06/16 16:46:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelGeneralPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelGeneralPhysics.cc index 4c651d1783..3c3c85b924 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelGeneralPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelGeneralPhysics.cc @@ -38,17 +38,11 @@ GammaRayTelGeneralPhysics::~GammaRayTelGeneralPhysics() { } -#include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" -// Bosons -#include "G4ChargedGeantino.hh" -#include "G4Geantino.hh" void GammaRayTelGeneralPhysics::ConstructParticle() { - // pseudo-particles - G4Geantino::GeantinoDefinition(); - G4ChargedGeantino::ChargedGeantinoDefinition(); + } void GammaRayTelGeneralPhysics::ConstructProcess() @@ -58,7 +52,7 @@ void GammaRayTelGeneralPhysics::ConstructProcess() while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); - if (fDecayProcess.IsApplicable(*particle)) { + if (fDecayProcess.IsApplicable(*particle) && !particle->IsShortLived()) { pmanager ->AddProcess(&fDecayProcess); // set ordering for PostStepDoIt and AtRestDoIt pmanager ->SetProcessOrdering(&fDecayProcess, idxPostStep); diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc index 783c9b4bb7..7198882d32 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: GammaRayTelHadronPhysics.cc,v 1.2 2003/06/16 16:46:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: GammaRayTelHadronPhysics.cc,v 1.3 2005/12/07 10:50:31 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "GammaRayTelHadronPhysics.hh" - +#include "G4ShortLivedConstructor.hh" #include "globals.hh" #include "G4ios.hh" #include @@ -35,35 +35,13 @@ GammaRayTelHadronPhysics::GammaRayTelHadronPhysics(const G4String& name) : G4VPhysicsConstructor(name) { + + } GammaRayTelHadronPhysics::~GammaRayTelHadronPhysics() { -delete theStringDecay; -} - -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" - -// Nuclei -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4ShortLivedConstructor.hh" - -void GammaRayTelHadronPhysics::ConstructParticle() -{ - // Construct all mesons - G4MesonConstructor pMesonConstructor; - pMesonConstructor.ConstructParticle(); - - // Construct all barions - G4BaryonConstructor pBaryonConstructor; - pBaryonConstructor.ConstructParticle(); - - // Construct resonaces and quarks - G4ShortLivedConstructor pShortLivedConstructor; - pShortLivedConstructor.ConstructParticle(); - + delete theStringDecay; } @@ -72,38 +50,46 @@ void GammaRayTelHadronPhysics::ConstructParticle() void GammaRayTelHadronPhysics::ConstructProcess() { - G4ProcessManager * pManager = 0; - /* G4cout << "" << G4endl; + G4ProcessManager * pManager = 0; + /* + G4cout << "" << G4endl; G4cout << "You are using the GammaRayTelHadronPhysics" << G4endl; G4cout << " - Note that this hadronic physics list is not optimized for any particular usage" << G4endl; G4cout << " - If you wish to have a starting point tailored for a particular area of work," << G4endl; G4cout << " please use one of the available physics lists by use-case." << G4endl; G4cout << "" << G4endl; */ + // Elastic Process theElasticModel = new G4LElastic(); theElasticProcess.RegisterMe(theElasticModel); - // pi+ and pi- + // pi+ and pi- + theCascade = new G4GeneratorPrecompoundInterface(); thePreEquilib = new G4PreCompoundModel(&theHandler); - theCascade.SetDeExcitation(thePreEquilib); - theTheoModel.SetTransport(&theCascade); - theTheoModel.SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); - theTheoModel.SetMinEnergy(15*GeV); - theTheoModel.SetMaxEnergy(100*TeV); + theCascade -> SetDeExcitation(thePreEquilib); + + theStringModel = new G4QGSModel< G4QGSParticipants >; + theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation); + theStringModel -> SetFragmentationModel(theStringDecay); + + theModel = new G4TheoFSGenerator(); + theModel -> SetTransport(theCascade); + theModel -> SetHighEnergyGenerator(theStringModel); + theModel -> SetMinEnergy(15*GeV); + theModel -> SetMaxEnergy(100*TeV); // PionPlus - pManager = G4PionPlus::PionPlus()->GetProcessManager(); + G4ParticleDefinition* pion = G4PionPlus::PionPlusDefinition(); + pManager = pion ->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); theLEPionPlusModel = new G4LEPionPlusInelastic(); thePionPlusInelastic.RegisterMe(theLEPionPlusModel); - thePionPlusInelastic.RegisterMe(&theTheoModel); + thePionPlusInelastic.RegisterMe(theModel); pManager->AddDiscreteProcess(&thePionPlusInelastic); pManager->AddProcess(&thePionPlusIonisation, ordInActive,2, 2); @@ -113,13 +99,14 @@ void GammaRayTelHadronPhysics::ConstructProcess() pManager->SetProcessOrdering(&thePionPlusMult, idxPostStep, 1); // PionMinus - pManager = G4PionMinus::PionMinus()->GetProcessManager(); + G4ParticleDefinition* pionMinus = G4PionMinus::PionMinusDefinition(); + pManager = pionMinus -> GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); theLEPionMinusModel = new G4LEPionMinusInelastic(); thePionMinusInelastic.RegisterMe(theLEPionMinusModel); - thePionMinusInelastic.RegisterMe(&theTheoModel); + thePionMinusInelastic.RegisterMe(theModel); pManager->AddDiscreteProcess(&thePionMinusInelastic); pManager->AddProcess(&thePionMinusIonisation, ordInActive,2, 2); @@ -131,14 +118,15 @@ void GammaRayTelHadronPhysics::ConstructProcess() pManager->AddRestProcess(&thePionMinusAbsorption, ordDefault); // KaonPlus - pManager = G4KaonPlus::KaonPlus()->GetProcessManager(); + G4ParticleDefinition* kaonPlus = G4KaonPlus::KaonPlusDefinition(); + pManager = kaonPlus->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); theLEKaonPlusModel = new G4LEKaonPlusInelastic(); theHEKaonPlusModel = new G4HEKaonPlusInelastic(); theKaonPlusInelastic.RegisterMe(theLEKaonPlusModel); - theKaonPlusInelastic.RegisterMe(&theTheoModel); + theKaonPlusInelastic.RegisterMe(theModel); pManager->AddDiscreteProcess(&theKaonPlusInelastic); pManager->AddProcess(&theKaonPlusIonisation, ordInActive,2, 2); @@ -148,7 +136,8 @@ void GammaRayTelHadronPhysics::ConstructProcess() pManager->SetProcessOrdering(&theKaonPlusMult, idxPostStep, 1); // KaonMinus - pManager = G4KaonMinus::KaonMinus()->GetProcessManager(); + G4ParticleDefinition* kaonMinus = G4KaonMinus::KaonMinusDefinition(); + pManager = kaonMinus->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); @@ -196,7 +185,7 @@ void GammaRayTelHadronPhysics::ConstructProcess() theLEProtonModel = new G4LEProtonInelastic(); theHEProtonModel = new G4HEProtonInelastic(); theProtonInelastic.RegisterMe(theLEProtonModel); - theProtonInelastic.RegisterMe(&theTheoModel); + theProtonInelastic.RegisterMe(theModel); pManager->AddDiscreteProcess(&theProtonInelastic); pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2); @@ -232,7 +221,7 @@ void GammaRayTelHadronPhysics::ConstructProcess() theLENeutronModel = new G4LENeutronInelastic(); theHENeutronModel = new G4HENeutronInelastic(); theNeutronInelastic.RegisterMe(theLENeutronModel); - theNeutronInelastic.RegisterMe(&theTheoModel); + theNeutronInelastic.RegisterMe(theModel); pManager->AddDiscreteProcess(&theNeutronInelastic); theNeutronFissionModel = new G4LFission(); diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc index a894d63627..da10a0401e 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelIonPhysics.cc,v 1.2 2003/06/16 16:46:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: GammaRayTelIonPhysics.cc,v 1.3 2005/12/07 10:50:31 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -42,17 +42,9 @@ GammaRayTelIonPhysics::~GammaRayTelIonPhysics() { } -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" - -// Nuclei -#include "G4IonConstructor.hh" - void GammaRayTelIonPhysics::ConstructParticle() { - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); + } diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc index 7955a7c8e8..ad77534b69 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelMuonPhysics.cc,v 1.2 2003/06/16 16:46:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: GammaRayTelMuonPhysics.cc,v 1.3 2005/12/07 10:50:31 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -42,31 +42,8 @@ GammaRayTelMuonPhysics::~GammaRayTelMuonPhysics() { } -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" - -#include "G4MuonPlus.hh" -#include "G4MuonMinus.hh" -#include "G4TauMinus.hh" -#include "G4TauPlus.hh" -#include "G4NeutrinoTau.hh" -#include "G4AntiNeutrinoTau.hh" -#include "G4NeutrinoMu.hh" -#include "G4AntiNeutrinoMu.hh" - void GammaRayTelMuonPhysics::ConstructParticle() { - // Mu - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); - - // Tau - G4TauMinus::TauMinusDefinition(); - G4TauPlus::TauPlusDefinition(); - G4NeutrinoTau::NeutrinoTauDefinition(); - G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); } diff --git a/physics_lists/hadronic/LHEP_HP/src/HadronPhysicsLHEP_HP.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelParticles.cc similarity index 55% rename from physics_lists/hadronic/LHEP_HP/src/HadronPhysicsLHEP_HP.cc rename to examples/advanced/gammaray_telescope/src/GammaRayTelParticles.cc index 7f4e29cfdc..c94d0c5aee 100644 --- a/physics_lists/hadronic/LHEP_HP/src/HadronPhysicsLHEP_HP.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelParticles.cc @@ -19,53 +19,56 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// $Id: HadrontherapyParticles.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: // -#include "HadronPhysicsLHEP_HP.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include +// S. Guatelli +// +// National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// ---------------------------------------------------------------------------- +#include "GammaRayTelParticles.hh" #include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" #include "G4ParticleTable.hh" +#include "G4LeptonConstructor.hh" +#include "G4BosonConstructor.hh" #include "G4MesonConstructor.hh" #include "G4BaryonConstructor.hh" #include "G4ShortLivedConstructor.hh" -#include "G4ProcessManager.hh" -HadronPhysicsLHEP_HP -::HadronPhysicsLHEP_HP(const G4String& name) : G4VPhysicsConstructor(name) +GammaRayTelParticles::GammaRayTelParticles(const G4String& name) + : G4VPhysicsConstructor(name) +{ } + +GammaRayTelParticles::~GammaRayTelParticles() +{} + +void GammaRayTelParticles::ConstructParticle() { - theLHEPNeutron.SetMinEnergy(19.9*MeV); - theNeutrons.RegisterMe(&theLHEPNeutron); - theNeutrons.RegisterMe(&theHPNeutron); - thePiK.RegisterMe(&theLHEPPiK); - theProton.RegisterMe(&theLHEPProton); + G4LeptonConstructor lepton; + lepton.ConstructParticle(); + + G4BosonConstructor boson; + boson.ConstructParticle(); + + G4MesonConstructor meson; + meson.ConstructParticle(); + + G4BaryonConstructor baryon; + baryon.ConstructParticle(); + + G4ShortLivedConstructor shortLived; + shortLived.ConstructParticle(); + // ******// + // ions // + // ******// + G4Deuteron::DeuteronDefinition(); + G4Triton::TritonDefinition(); + G4He3::He3Definition(); + G4Alpha::AlphaDefinition(); + G4GenericIon::GenericIonDefinition(); } - -HadronPhysicsLHEP_HP:: -~HadronPhysicsLHEP_HP() {} - -void HadronPhysicsLHEP_HP:: -ConstructParticle() -{ - G4MesonConstructor pMesonConstructor; - pMesonConstructor.ConstructParticle(); - - G4BaryonConstructor pBaryonConstructor; - pBaryonConstructor.ConstructParticle(); - - G4ShortLivedConstructor pShortLivedConstructor; - pShortLivedConstructor.ConstructParticle(); -} - -void HadronPhysicsLHEP_HP:: -ConstructProcess() -{ - theNeutrons.Build(); - theProton.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); -} -// 2002 by J.P. Wellisch diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc index ed8f93ccb2..0fcc041ce3 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelPhysicsList.cc,v 1.5 2003/06/16 16:46:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: GammaRayTelPhysicsList.cc,v 1.6 2005/12/07 10:50:31 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -40,7 +40,7 @@ #include "G4MaterialTable.hh" #include "G4ios.hh" #include - +#include "GammaRayTelParticles.hh" #include "GammaRayTelGeneralPhysics.hh" #include "GammaRayTelEMPhysics.hh" #include "GammaRayTelMuonPhysics.hh" @@ -53,6 +53,8 @@ GammaRayTelPhysicsList::GammaRayTelPhysicsList(): G4VModularPhysicsList() defaultCutValue = 1.0*mm; SetVerboseLevel(1); + RegisterPhysics( new GammaRayTelParticles("particles") ); + // General Physics RegisterPhysics( new GammaRayTelGeneralPhysics("general") ); diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc index 0ab53c142a..12c4e332fe 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorAction.cc,v 1.8 2005/06/27 15:27:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc index c43be21811..05b2b94cac 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPrimaryGeneratorMessenger.cc,v 1.6 2002/12/11 17:13:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc index f7844178a0..ca8a60939b 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelRunAction.cc,v 1.10 2003/06/16 16:46:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc index 5d87f19e13..a313786c73 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerHit.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerHit.cc,v 1.3 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc index cc9a8697af..49ffd27fb6 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerROGeometry.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerROGeometry.cc,v 1.5 2001/11/29 11:19:18 griccard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc index fd3607cf00..ad13badc16 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelTrackerSD.cc,v 1.8 2003/11/14 15:00:00 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/hadrontherapy/Hadrontherapy.cc b/examples/advanced/hadrontherapy/Hadrontherapy.cc index 843f97dd98..0159a225e6 100644 --- a/examples/advanced/hadrontherapy/Hadrontherapy.cc +++ b/examples/advanced/hadrontherapy/Hadrontherapy.cc @@ -78,12 +78,14 @@ int main(int argc ,char ** argv) matrix -> Initialize(); // Optional UserActions: run, event, stepping - runManager -> SetUserAction(new HadrontherapyRunAction()); + HadrontherapyRunAction* pRunAction = new HadrontherapyRunAction(); + runManager -> SetUserAction(pRunAction); + HadrontherapyEventAction* pEventAction = new HadrontherapyEventAction(matrix); runManager -> SetUserAction(pEventAction); - HadrontherapySteppingAction* steppingAction = new HadrontherapySteppingAction(); + HadrontherapySteppingAction* steppingAction = new HadrontherapySteppingAction(pRunAction); runManager -> SetUserAction(steppingAction); diff --git a/examples/advanced/hadrontherapy/History b/examples/advanced/hadrontherapy/History index e19400ab83..74cc9525c0 100644 --- a/examples/advanced/hadrontherapy/History +++ b/examples/advanced/hadrontherapy/History @@ -8,7 +8,20 @@ $Id: History, v 1.6 2004/02/27 G.A.P. Cirrone Category History file --------------------- +06.12.2005 S. Guatelli (hadrontherapy-V07-01-05) + - Particles updated + - Updated macros + +23.11.2005 S. Guatelli (hadrontherapy-V07-01-04) + - File ASCII as output file deleted +02.09.2005 S. Guatelli (hadrontherapy-V07-01-03) + - Added Hadronic physics models + +08.07.2005 S. Guatelli (hadrontherapy-V07-01-02) + - Added alternative stopping power parameterisations for protons: + ICRU49, Ziegler 1977, Ziegler 1985, Ziegler (SRIM) 2000 + 30.05.2005 G.A.P. Cirrone and S.Guatelli (hadrontherapy-V07-00-06) - Removed warnings; - Analisys with AIDA 3.2.1 and PI 1.3.3; diff --git a/examples/advanced/hadrontherapy/README b/examples/advanced/hadrontherapy/README index 1013525e65..aa7e2d4725 100644 --- a/examples/advanced/hadrontherapy/README +++ b/examples/advanced/hadrontherapy/README @@ -171,8 +171,13 @@ to visualise the experimental set-up with OpenGL Both electromagnetic and hadronic physic processes are activated for the particles of the experimental set-up. -Different physics models can be choosen. Examples of activation are provided in the macro files. +Different physics models can b activated by the user. +Examples of activation are provided in the macro files. +- protonEMLowEnergy.mac: example to activate e.m. low energy physics with different +stopping power models for protons +- protonEMStandard.mac: example to activate the e.m. standard physics. + ---->6. SIMULATION OUTPUT The output is an .hbk file (hadrontherapy.hbk) produced diff --git a/examples/advanced/hadrontherapy/binaryDefault.mac b/examples/advanced/hadrontherapy/binaryDefault.mac new file mode 100644 index 0000000000..f681e7390a --- /dev/null +++ b/examples/advanced/hadrontherapy/binaryDefault.mac @@ -0,0 +1,44 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - LOW ENERGY ELECTROMAGNETIC PHYSICS +# - ELASTIC SCATTERING FOR ALL THE HADRONS AND IONS +# - INELASTIC SCATTERING ---> +# +# * BINARY CASCADE MODEL WITH THE DEFAULT PRECOMPOUND +# +# * LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +# FOR DEUTERON, TRITON, HE3, ALPHA +# +# * FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +# +# +#------------------------------------------------------------------------------- + + +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics ion-LowE +/physics/addPhysics proton-precompound-binary +/physics/addPhysics muon-standard +/physics/addPhysics decay +/run/initialize + +# IF YOU WANT A RANGE SHIFTER PLEASE CHANGE +# THE FOLLOWIG PARAMETERS +# SETTING FOR THE RANGE SHIFTER + +#/beamLine/RangeShifter/thickness 0 cm +#/beamLine/RangeShifter/RSMat Water +#/tracking/verbose 1 +/beam/energy/meanEnergy 25 MeV +/run/beamOn 1 + + + diff --git a/examples/advanced/hadrontherapy/currentEvent.rndm b/examples/advanced/hadrontherapy/currentEvent.rndm index 2b85ccafca..fbf8563b41 100644 --- a/examples/advanced/hadrontherapy/currentEvent.rndm +++ b/examples/advanced/hadrontherapy/currentEvent.rndm @@ -1,4 +1,203 @@ -9876 -0.022197961807250977 0.016610622406005859 0.63905793428421021 0.38329732418060303 0.69831031560897827 0.22324162721633911 0.49120819568634033 0.60197216272354126 0.81416624784469604 0.32677179574966431 0.098583340644836426 0.027431786060333252 0.78864419460296631 0.81896883249282837 0.63959956169128418 0.74596965312957764 0.72737228870391846 0.69191849231719971 0.71355444192886353 0.011820733547210693 0.48150527477264404 0.86828917264938354 0.13170522451400757 0.45347738265991211 0.10865515470504761 0.10651481151580811 0.45717793703079224 0.63406658172607422 0.64252442121505737 0.42432534694671631 0.33520448207855225 0.59798842668533325 0.13778442144393921 0.38899260759353638 0.046378612518310547 0.60150426626205444 0.12657880783081055 0.97955703735351562 0.86861729621887207 0.29879438877105713 0.801707923412323 0.21883964538574219 0.93461489677429199 0.38524562120437622 0.91090399026870728 0.023142635822296143 0.85154539346694946 0.797477126121521 0.62973660230636597 0.90060049295425415 0.34966093301773071 0.54539859294891357 0.35251176357269287 0.50419789552688599 0.52757632732391357 0.66159796714782715 0.07945704460144043 0.45850509405136108 0.97826814651489258 0.38729369640350342 0.854575514793396 0.33248835802078247 0.36078131198883057 0.34407216310501099 0.72383487224578857 0.066727101802825928 0.34445035457611084 0.14453405141830444 0.80607026815414429 0.12019360065460205 0.19166386127471924 0.47038376331329346 0.94368588924407959 0.4264257550239563 0.83205050230026245 0.4965476393699646 0.93099534511566162 0.60683536529541016 0.07124173641204834 0.9093090295791626 0.84654337167739868 0.037280023097991943 0.301094651222229 0.64763987064361572 0.37247037887573242 0.44355738162994385 0.78914976119995117 0.56561046838760376 0.13274383544921875 0.88719719648361206 0.9813460111618042 0.662750244140625 0.64443302154541016 0.43179923295974731 0.055142760276794434 0.57620424032211304 0.33779478073120117 -0.057104766368865967 0.45623308420181274 0.99999982118606567 -8 +Uvec +2226355706 +1072115569 +3758096384 +1071765497 +3758096384 +1071561920 +0 +1071378494 +0 +1072531342 +536870912 +1069160740 +0 +1071271479 +2147483648 +1071355253 +3221225472 +1072349654 +1073741824 +1072509208 +1610612736 +1070424910 +0 +1072408973 +2147483648 +1072182556 +0 +1071671839 +2147483648 +1072331504 +3758096384 +1071247558 +2147483648 +1072557952 +2684354560 +1072152882 +2684354560 +1069314698 +0 +1072195263 +2684354560 +1070792009 +0 +1072415623 +0 +1072152149 +1610612736 +1072263925 +3758096384 +1070316254 +0 +1071934152 +3221225472 +1070002327 +2147483648 +1072038979 +1073741824 +1070605033 +2147483648 +1072478668 +3221225472 +1071750709 +1610612736 +1072541747 +536870912 +1070750442 +0 +1072487562 +2684354560 +1070868811 +2147483648 +1072231321 +0 +1071073941 +3221225472 +1070955127 +3221225472 +1070949241 +0 +1072367088 +2147483648 +1071486718 +2147483648 +1071991670 +0 +1071661683 +1610612736 +1071842161 +1073741824 +1072112487 +3758096384 +1072554974 +2684354560 +1070943608 +3221225472 +1071520302 +3221225472 +1071795870 +3758096384 +1070904906 +0 +1071781467 +536870912 +1072012481 +1073741824 +1068696599 +0 +1072119373 +1073741824 +1071420027 +3221225472 +1071958369 +2147483648 +1071759517 +3758096384 +1067126688 +0 +1071114732 +1073741824 +1071451638 +1073741824 +1070991805 +0 +1072558275 +3758096384 +1072243203 +3221225472 +1070954700 +2147483648 +1069865957 +0 +1069702884 +2147483648 +1072685743 +3758096384 +1070778925 +3221225472 +1067896494 +0 +1071845102 +2684354560 +1071802098 +536870912 +1072608899 +2684354560 +1071134426 +0 +1071749911 +1073741824 +1069631981 +0 +1068826326 +0 +1069387543 +0 +1071293962 +2147483648 +1072047251 +3221225472 +1071382659 +0 +1070457283 +2147483648 +1072123405 +2147483648 +1071573692 +1073741824 +1068061764 +0 +1070987987 +2147483648 +1069694025 +2147483648 +1071866860 +536870912 +1070762377 +1073741824 +1070686380 +3221225472 +1072094560 +1610612736 +1071702537 +3758096384 +1069149654 +0 +1069577464 +0 +1069991493 +0 +1068153634 +0 +1072511907 +1610612736 +1071928197 +3221225472 +1072414646 +536870912 +1071461100 +1073741824 +1072693247 +2684354560 +33 diff --git a/examples/advanced/hadrontherapy/currentRun.rndm b/examples/advanced/hadrontherapy/currentRun.rndm index 7389aad1d6..70cfecfc86 100644 --- a/examples/advanced/hadrontherapy/currentRun.rndm +++ b/examples/advanced/hadrontherapy/currentRun.rndm @@ -1,4 +1,203 @@ -9876 -0.17468523979187012 0.88367420434951782 0.95851153135299683 0.69001305103302002 0.025053739547729492 0.14229369163513184 0.78364866971969604 0.35608100891113281 0.21477425098419189 0.69286954402923584 0.7003016471862793 0.46510893106460571 0.22214984893798828 0.76875209808349609 0.46108907461166382 0.3976019024848938 0.52221494913101196 0.12154585123062134 0.96022659540176392 0.51089173555374146 0.011656761169433594 0.028644740581512451 0.2387765645980835 0.58521908521652222 0.78061223030090332 0.70918172597885132 0.08210599422454834 0.82860100269317627 0.61446040868759155 0.079820930957794189 0.68800175189971924 0.0097852945327758789 0.37083089351654053 0.37643462419509888 0.71018439531326294 0.86401665210723877 0.16733801364898682 0.2111402153968811 0.34923505783081055 0.52247923612594604 0.94371330738067627 0.070270776748657227 0.77874177694320679 0.63945811986923218 0.50655472278594971 0.15175133943557739 0.99012273550033569 0.56468778848648071 0.43049722909927368 0.93571525812149048 0.83971720933914185 0.52695095539093018 0.43880587816238403 0.45784467458724976 0.37172782421112061 0.54798120260238647 0.9042285680770874 0.85384637117385864 0.8782920241355896 0.28166240453720093 0.87537771463394165 0.076646625995635986 0.64350682497024536 0.80434280633926392 0.020689785480499268 0.15435659885406494 0.33504408597946167 0.54748374223709106 0.77217626571655273 0.016081452369689941 0.24611234664916992 0.24613380432128906 0.40188264846801758 0.30276846885681152 0.034525096416473389 0.47831588983535767 0.90785670280456543 0.50831210613250732 0.84525531530380249 0.57573461532592773 0.66171067953109741 0.4259905219078064 0.95411700010299683 0.15568071603775024 0.19841688871383667 0.2717059850692749 0.59724390506744385 0.68230563402175903 0.46793639659881592 0.82415002584457397 0.093294143676757812 0.47092801332473755 0.92384713888168335 0.47565126419067383 0.59589225053787231 0.47546869516372681 0.85144168138504028 -0.12241089344024658 0.45623308420181274 0.99999982118606567 -81 +Uvec +2226355706 +1069964310 +0 +1072449295 +536870912 +1072606240 +1610612736 +1072043158 +1073741824 +1067034544 +0 +1069692590 +0 +1072239526 +1610612736 +1071041032 +0 +1070300601 +0 +1072049148 +3221225472 +1072064735 +0 +1071498328 +1073741824 +1070362472 +0 +1072208286 +0 +1071481467 +3221225472 +1071215183 +1073741824 +1071691260 +536870912 +1069489569 +0 +1072609837 +536870912 +1071667513 +2684354560 +1065869184 +0 +1067275532 +0 +1070501947 +0 +1071823389 +1610612736 +1072233158 +2147483648 +1072338598 +0 +1072274747 +3758096384 +1072595150 +536870912 +1071723973 +1073741824 +1071377554 +0 +1072449263 +536870912 +1072670379 +2684354560 +1070314862 +0 +1067790628 +0 +1069863776 +0 +1068991194 +0 +1069767776 +0 +1072619906 +536870912 +1069180120 +0 +1069473643 +0 +1071940254 +3221225472 +1067601218 +0 +1070807597 +2147483648 +1072130375 +1610612736 +1072689562 +2147483648 +1070833057 +2147483648 +1071285589 +3221225472 +1072489776 +1073741824 +1064465824 +0 +1072558433 +536870912 +1072357110 +2684354560 +1071701192 +1073741824 +1071388005 +1073741824 +1071467859 +3221225472 +1071106659 +2147483648 +1071745295 +3758096384 +1072492400 +3221225472 +1072386741 +2684354560 +1072438007 +3758096384 +1070728897 +3221225472 +1072431896 +536870912 +1068736285 +0 +1071945627 +2684354560 +1072282925 +536870912 +1066741684 +0 +1069793781 +0 +1070952796 +3221225472 +1071744252 +2684354560 +1072215467 +0 +1066432424 +0 +1070563484 +0 +1070563664 +0 +1071233138 +0 +1070817423 +0 +1067560262 +0 +1071553722 +1073741824 +1072500009 +2147483648 +1071662103 +3221225472 +1072368724 +3758096384 +1071803499 +0 +1071983803 +3758096384 +1071334253 +3221225472 +1072597024 +1610612736 +1069804888 +2147483648 +1070163385 +2147483648 +1070687137 +2147483648 +1071848607 +1073741824 +1072026994 +2684354560 +1071510187 +2147483648 +1072324463 +3758096384 +1069015584 +0 +1071522735 +1073741824 +1072533543 +3758096384 +1071542546 +0 +1071845772 +2684354560 +1071541780 +1073741824 +1072381698 +2684354560 +1069948620 +2147483648 +1071461100 +1073741824 +1072693247 +2684354560 +57 diff --git a/examples/advanced/hadrontherapy/defaultMacro.mac b/examples/advanced/hadrontherapy/defaultMacro.mac index 5cd62a514d..c329c0d618 100644 --- a/examples/advanced/hadrontherapy/defaultMacro.mac +++ b/examples/advanced/hadrontherapy/defaultMacro.mac @@ -35,8 +35,8 @@ /physics/addPhysics ion-LowE /physics/addPhysics muon-standard /physics/addPhysics decay -/physics/addPhysics proton-precompound - +#/physics/addPhysics proton-precompound +/physics/addPhysics proton-precompoundGEM /run/initialize # IF YOU WANT A RANGE SHIFTER PLEASE CHANGE @@ -44,7 +44,18 @@ # SETTING FOR THE RANGE SHIFTER #/beamLine/RangeShifter/thickness 4 cm #/beamLine/RangeShifter/RSMat Water -#/vis/viewer/flush -/beam/energy/meanEnergy 63.5 -/run/beamOn 300 + + +# SET OF THE VISUALISATION CHARACTERISTICS +/vis/scene/create +/vis/open OGLIX +/vis/viewer/flush + +/vis/viewer/flush +/beam/energy/meanEnergy 63.5 MeV +#/run/beamOn 2000 + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh b/examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh index a95ddf559b..508f268018 100644 --- a/examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyAnalysisManager.hh @@ -67,7 +67,48 @@ public: void BraggPeak(G4int, G4double); // Fill 1D histogram with the Bragg peak in the phantom - + + void SecondaryProtonEnergyDeposit(G4int slice, G4double energy); + // Fill 1D histogram with the energy deposit of secondary protons + + void SecondaryNeutronEnergyDeposit(G4int slice, G4double energy); + // Fill 1D histogram with the energy deposit of secondary neutrons + + void SecondaryAlphaEnergyDeposit(G4int slice, G4double energy); + // Fill 1D histogram with the energy deposit of secondary alpha particles + + void SecondaryGammaEnergyDeposit(G4int slice, G4double energy); + // Fill 1D histogram with the energy deposit of secondary gamma + + void SecondaryElectronEnergyDeposit(G4int slice, G4double energy); + // Fill 1D histogram with the energy deposit of secondary electrons + + void SecondaryTritonEnergyDeposit(G4int slice, G4double energy); + // Fill 1D histogram with the energy deposit of secondary tritons + + void SecondaryDeuteronEnergyDeposit(G4int slice, G4double energy); + // Fill 1D histogram with the energy deposit of secondary deuterons + + void SecondaryPionEnergyDeposit(G4int slice, G4double energy); + // Fill 1D histogram with the energy deposit of secondary pions + + void electronEnergyDistribution(G4double secondaryParticleKineticEnergy); + // Energy distribution of secondary electrons originated in the phantom + + void gammaEnergyDistribution(G4double secondaryParticleKineticEnergy); + // Energy distribution of secondary gamma originated in the phantom + + void deuteronEnergyDistribution(G4double secondaryParticleKineticEnergy); + // Energy distribution of secondary deuterons originated in the phantom + + void tritonEnergyDistribution(G4double secondaryParticleKineticEnergy); + // Energy distribution of secondary tritons originated in the phantom + + void alphaEnergyDistribution(G4double secondaryParticleKineticEnergy); + // Energy distribution of secondary alpha originated in the phantom + + void genericIonInformation(G4int, G4double, G4int, G4double); + void finish(); // Close the .hbk file with the histograms and the ntuples @@ -78,7 +119,21 @@ private: AIDA::IHistogramFactory *histFact; AIDA::ITupleFactory *tupFact; AIDA::IHistogram1D *h1; + AIDA::IHistogram1D *h2; + AIDA::IHistogram1D *h3; + AIDA::IHistogram1D *h4; + AIDA::IHistogram1D *h5; + AIDA::IHistogram1D *h6; + AIDA::IHistogram1D *h7; + AIDA::IHistogram1D *h8; + AIDA::IHistogram1D *h9; + AIDA::IHistogram1D *h10; + AIDA::IHistogram1D *h11; + AIDA::IHistogram1D *h12; + AIDA::IHistogram1D *h13; + AIDA::IHistogram1D *h14; AIDA::ITuple *ntuple; + AIDA::ITuple *ionTuple; }; #endif #endif diff --git a/source/particles/hadrons/ions/src/G4VIon.cc b/examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler1977.hh similarity index 61% rename from source/particles/hadrons/ions/src/G4VIon.cc rename to examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler1977.hh index 0463d93fac..83a8ccb12a 100644 --- a/source/particles/hadrons/ions/src/G4VIon.cc +++ b/examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler1977.hh @@ -19,23 +19,38 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// $Id: HadrontherapyIonLowEZiegler1985.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: // -// -// $Id: G4VIon.cc,v 1.3 2001/07/11 10:01:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) // -// -------------------------------------------------------------- -// GEANT 4 class implementation file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it // -------------------------------------------------------------- -#include "G4VIon.hh" +#ifndef HADRONTHERAPYIONLOWEZIEGLER1977_HH +#define HADRONTHERAPYIONLOWEZIEGLER1977_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyIonLowEZiegler1977: public G4VPhysicsConstructor { + +public: + + HadrontherapyIonLowEZiegler1977(const G4String& name = "ion-LowE-ziegler1977"); + + virtual ~HadrontherapyIonLowEZiegler1977(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + virtual void ConstructProcess(); +}; +#endif -const G4VIon & G4VIon::operator=(const G4VIon &right) -{ - if (this != &right) { - } return right; -} diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler1985.hh b/examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler1985.hh new file mode 100644 index 0000000000..561bfd1279 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler1985.hh @@ -0,0 +1,56 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyIonLowEZiegler1985.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#ifndef HADRONTHERAPYIONLOWEZIEGLER1985_HH +#define HADRONTHERAPYIONLOWEZIEGLER1985_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyIonLowEZiegler1985: public G4VPhysicsConstructor { + +public: + + HadrontherapyIonLowEZiegler1985(const G4String& name = "ion-LowE-ziegler1985"); + + virtual ~HadrontherapyIonLowEZiegler1985(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + virtual void ConstructProcess(); +}; +#endif + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler2000.hh b/examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler2000.hh new file mode 100644 index 0000000000..f48d8bcef2 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyIonLowEZiegler2000.hh @@ -0,0 +1,56 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyIonLowEZiegler1985.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#ifndef HADRONTHERAPYIONLOWEZIEGLER2000_HH +#define HADRONTHERAPYIONLOWEZIEGLER2000_HH 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +class HadrontherapyIonLowEZiegler2000: public G4VPhysicsConstructor { + +public: + + HadrontherapyIonLowEZiegler2000(const G4String& name = "ion-LowE-ziegler2000"); + + virtual ~HadrontherapyIonLowEZiegler2000(); + + // This method is dummy for physics + virtual void ConstructParticle() {}; + virtual void ConstructProcess(); +}; +#endif + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh index e8819d2c35..3df43b0791 100644 --- a/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPhysicsList.hh @@ -55,7 +55,7 @@ private: G4bool positronIsRegistered; G4bool photonIsRegistered; G4bool ionIsRegistered; - G4bool protonPrecompoundIsRegistered; + G4bool protonHadronicIsRegistered; G4bool chargedParticleIsRegistered; G4bool muonIsRegistered; G4bool decayIsRegistered; diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh b/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh index 4248ecce80..680830b843 100644 --- a/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyPrimaryGeneratorAction.hh @@ -1,4 +1,3 @@ - // // ******************************************************************** // * DISCLAIMER * diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyProtonBinary.hh b/examples/advanced/hadrontherapy/include/HadrontherapyProtonBinary.hh new file mode 100644 index 0000000000..7c99ba3690 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyProtonBinary.hh @@ -0,0 +1,128 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonBinary.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#ifndef HadrontherapyProtonBinary_h +#define HadrontherapyProtonBinary_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4ProtonInelasticProcess.hh" + +#include "G4ProcessManager.hh" + +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" + +#include "G4ProtonInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4ExcitedStringDecay.hh" +// For neutron +#include "G4HENeutronInelastic.hh" +#include "G4LENeutronInelastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4NeutronInelasticCrossSection.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPElasticData.hh" +#include "G4NeutronHPInelastic.hh" +#include "G4NeutronHPInelasticData.hh" +// For ions +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4BinaryCascade.hh" +#include "G4IonInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +class HadrontherapyProtonBinary: public G4VPhysicsConstructor +{ + public: + HadrontherapyProtonBinary(const G4String& name = "proton-precompound-binary"); + virtual ~HadrontherapyProtonBinary(); + + protected: + // Construct particle and physics + void ConstructParticle(){}; + void ConstructProcess(); + + private: + + G4double binaryLightIonLowLimit; + G4double binaryLightIonHighLimit; + G4double LEPHighLimit; + G4double precompoundLowLimit; + G4double precompoundHighLimit; + G4double binaryLowLimit; + G4double binaryHighLimit; + G4double neutronLowLimit; + G4double neutronHighLimit; + + G4ProtonInelasticCrossSection theXSec; + G4ExcitationHandler theHandler; + G4DeuteronInelasticProcess theIPdeuteron; + G4TritonInelasticProcess theIPtriton; + G4AlphaInelasticProcess theIPalpha; + G4HadronInelasticProcess* theIPHe3; + G4HadronInelasticProcess* theIPIonC12; + G4HadronInelasticProcess* theIPGenericIon; + G4ProtonInelasticCrossSection thePXSec; + G4ProtonInelasticProcess theIPProton; + G4NeutronInelasticProcess theIPNeutron; + G4NeutronInelasticCrossSection theNXSec; +}; +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompound.hh b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompound.hh index 478e7d997d..b473f7264b 100644 --- a/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompound.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompound.hh @@ -38,9 +38,7 @@ #define HadrontherapyProtonPrecompound_h 1 #include "G4VPhysicsConstructor.hh" -#include "globals.hh" #include "G4ExcitationHandler.hh" - #include "G4VPhysicsConstructor.hh" #include "globals.hh" @@ -48,12 +46,8 @@ #include "G4HadronFissionProcess.hh" #include "G4HadronCaptureProcess.hh" #include "G4ProtonInelasticProcess.hh" - #include "G4ProcessManager.hh" - -#include "G4ExcitationHandler.hh" #include "G4PreCompoundModel.hh" - #include "G4ProtonInelasticCrossSection.hh" #include "G4TheoFSGenerator.hh" #include "G4ExcitationHandler.hh" @@ -86,7 +80,6 @@ #include "G4LETritonInelastic.hh" #include "G4AlphaInelasticProcess.hh" #include "G4LEAlphaInelastic.hh" - #include "G4PionPlusInelasticProcess.hh" #include "G4PionMinusInelasticProcess.hh" #include "G4PiNuclearCrossSection.hh" @@ -106,53 +99,39 @@ protected: private: - // Proton inelastic proces - G4ProtonInelasticProcess protonInelasticScattering; - - // Cross Section for proton inelastic process - G4ProtonInelasticCrossSection protonInelasticCrossSection; - - // Neutron inelastic process - G4NeutronInelasticProcess neutronInelasticScattering; - - // Cross Section for neutron inelastic process - G4NeutronInelasticCrossSection neutronInelasticCrossSection; - - // Pion plus inelastic process - G4PionPlusInelasticProcess pionPlusInelasticScattering; - - // Cross sections for Pion plus inelastic process - G4PiNuclearCrossSection pionPlusInelasticCrossSection; - - // Pion minus inelastic process - G4PionMinusInelasticProcess pionMinusInelasticScattering; - - // Cross section for Pion minus inelastic process - G4PiNuclearCrossSection pionMinusInelasticCrossSection; - - // Deuteron inelastic process - G4DeuteronInelasticProcess deuteronInelasticScattering; - - // Tritium inelastic process - G4TritonInelasticProcess tritonInelasticScattering; - - // Alpha inelastic process - G4AlphaInelasticProcess alphaInelasticScattering; - - // He3 inelastic process - G4HadronInelasticProcess* He3InelasticProcess; - G4TripathiCrossSection* TripathiCrossSection; - G4IonsShenCrossSection* ShenCrossSection; - G4double binaryLightIonLowLimit; G4double binaryLightIonHighLimit; G4double LEPHighLimit; G4double precompoundLowLimit; G4double precompoundHighLimit; G4double neutronLowLimit; - G4double neutronHighLimit; + G4double neutronHighLimit; + - G4ExcitationHandler theHandler; + G4ExcitationHandler theHandler; + + + // Proton inelastic proces + G4ProtonInelasticProcess theIPProton; + // Cross Section for proton inelastic process + G4ProtonInelasticCrossSection thePXSec; + + // Neutron inelastic process + G4NeutronInelasticProcess theIPNeutron; + // Cross Section for neutron inelastic process + G4NeutronInelasticCrossSection theNXSec; + + // Deuteron inelastic process + G4DeuteronInelasticProcess theIPdeuteron; + + // Tritium inelastic process + G4TritonInelasticProcess theIPtriton; + + // Alpha inelastic process + G4AlphaInelasticProcess theIPalpha; + + // He3 inelastic process + G4HadronInelasticProcess* theIPHe3; }; #endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundFermi.hh b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundFermi.hh new file mode 100644 index 0000000000..cae0fb3dd6 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundFermi.hh @@ -0,0 +1,142 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonPrecompoundFermi.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#ifndef HadrontherapyProtonPrecompoundFermi_h +#define HadrontherapyProtonPrecompoundFermi_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4ProtonInelasticProcess.hh" + +#include "G4ProcessManager.hh" + +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" + +#include "G4ProtonInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4ExcitedStringDecay.hh" +// For neutron +#include "G4HENeutronInelastic.hh" +#include "G4LENeutronInelastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4NeutronInelasticCrossSection.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPElasticData.hh" +#include "G4NeutronHPInelastic.hh" +#include "G4NeutronHPInelasticData.hh" +// For ions +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4BinaryCascade.hh" +#include "G4IonInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" +#include "G4PiNuclearCrossSection.hh" +class HadrontherapyProtonPrecompoundFermi: public G4VPhysicsConstructor +{ + public: + HadrontherapyProtonPrecompoundFermi(const G4String& name = "proton-precompoundFermi"); + virtual ~HadrontherapyProtonPrecompoundFermi(); + + protected: + // Construct particle and physics + void ConstructParticle(){}; + void ConstructProcess(); + + private: + + G4double binaryLightIonLowLimit; + G4double binaryLightIonHighLimit; + G4double LEPHighLimit; + G4double precompoundLowLimit; + G4double precompoundHighLimit; + G4double neutronLowLimit; + G4double neutronHighLimit; + G4int targetA; + G4int targetZ; + + G4ExcitationHandler theHandler; + + + // Proton inelastic proces + G4ProtonInelasticProcess theIPProton; + // Cross Section for proton inelastic process + G4ProtonInelasticCrossSection thePXSec; + + // Neutron inelastic process + G4NeutronInelasticProcess theIPNeutron; + // Cross Section for neutron inelastic process + G4NeutronInelasticCrossSection theNXSec; + + // Deuteron inelastic process + G4DeuteronInelasticProcess theIPdeuteron; + + // Tritium inelastic process + G4TritonInelasticProcess theIPtriton; + + // Alpha inelastic process + G4AlphaInelasticProcess theIPalpha; + + // He3 inelastic process + G4HadronInelasticProcess* theIPHe3; + +}; +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundGEM.hh b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundGEM.hh new file mode 100644 index 0000000000..d208a2658e --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundGEM.hh @@ -0,0 +1,139 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonPrecompoundGEM.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#ifndef HadrontherapyProtonPrecompoundGEM_h +#define HadrontherapyProtonPrecompoundGEM_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4ProtonInelasticProcess.hh" + +#include "G4ProcessManager.hh" + +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" + +#include "G4ProtonInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4ExcitedStringDecay.hh" +// For neutron +#include "G4HENeutronInelastic.hh" +#include "G4LENeutronInelastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4NeutronInelasticCrossSection.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPElasticData.hh" +#include "G4NeutronHPInelastic.hh" +#include "G4NeutronHPInelasticData.hh" +// For ions +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4BinaryCascade.hh" +#include "G4IonInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +class HadrontherapyProtonPrecompoundGEM: public G4VPhysicsConstructor +{ + public: + HadrontherapyProtonPrecompoundGEM(const G4String& name = "proton-precompoundGEM"); + virtual ~HadrontherapyProtonPrecompoundGEM(); + + protected: + // Construct particle and physics + void ConstructParticle(){}; + void ConstructProcess(); + + private: + + G4double binaryLightIonLowLimit; + G4double binaryLightIonHighLimit; + G4double LEPHighLimit; + G4double precompoundLowLimit; + G4double precompoundHighLimit; + G4double neutronLowLimit; + G4double neutronHighLimit; + + G4ExcitationHandler theHandler; + + + // Proton inelastic proces + G4ProtonInelasticProcess theIPProton; + // Cross Section for proton inelastic process + G4ProtonInelasticCrossSection thePXSec; + + // Neutron inelastic process + G4NeutronInelasticProcess theIPNeutron; + // Cross Section for neutron inelastic process + G4NeutronInelasticCrossSection theNXSec; + + // Deuteron inelastic process + G4DeuteronInelasticProcess theIPdeuteron; + + // Tritium inelastic process + G4TritonInelasticProcess theIPtriton; + + // Alpha inelastic process + G4AlphaInelasticProcess theIPalpha; + + // He3 inelastic process + G4HadronInelasticProcess* theIPHe3; +}; +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundGEMFermi.hh b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundGEMFermi.hh new file mode 100644 index 0000000000..0ab7d7c587 --- /dev/null +++ b/examples/advanced/hadrontherapy/include/HadrontherapyProtonPrecompoundGEMFermi.hh @@ -0,0 +1,141 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonPrecompoundGEMFermi.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- +#ifndef HadrontherapyProtonPrecompoundGEMFermi_h +#define HadrontherapyProtonPrecompoundGEMFermi_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4ProtonInelasticProcess.hh" + +#include "G4ProcessManager.hh" + +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" + +#include "G4ProtonInelasticCrossSection.hh" +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4ExcitedStringDecay.hh" +// For neutron +#include "G4HENeutronInelastic.hh" +#include "G4LENeutronInelastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4NeutronInelasticCrossSection.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPElasticData.hh" +#include "G4NeutronHPInelastic.hh" +#include "G4NeutronHPInelasticData.hh" +// For ions +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4BinaryCascade.hh" +#include "G4IonInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +class HadrontherapyProtonPrecompoundGEMFermi: public G4VPhysicsConstructor +{ + public: + HadrontherapyProtonPrecompoundGEMFermi(const G4String& name = "proton-precompoundGEMFermi"); + virtual ~HadrontherapyProtonPrecompoundGEMFermi(); + + protected: + // Construct particle and physics + void ConstructParticle(){}; + void ConstructProcess(); + + private: + + G4double binaryLightIonLowLimit; + G4double binaryLightIonHighLimit; + G4double LEPHighLimit; + G4double precompoundLowLimit; + G4double precompoundHighLimit; + G4double neutronLowLimit; + G4double neutronHighLimit; + G4int targetZ; + G4int targetA; + + G4ExcitationHandler theHandler; + + + // Proton inelastic proces + G4ProtonInelasticProcess theIPProton; + // Cross Section for proton inelastic process + G4ProtonInelasticCrossSection thePXSec; + + // Neutron inelastic process + G4NeutronInelasticProcess theIPNeutron; + // Cross Section for neutron inelastic process + G4NeutronInelasticCrossSection theNXSec; + + // Deuteron inelastic process + G4DeuteronInelasticProcess theIPdeuteron; + + // Tritium inelastic process + G4TritonInelasticProcess theIPtriton; + + // Alpha inelastic process + G4AlphaInelasticProcess theIPalpha; + + // He3 inelastic process + G4HadronInelasticProcess* theIPHe3; +}; +#endif + + + + + + + + diff --git a/examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh b/examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh index 8829cff915..d508046863 100644 --- a/examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapyRunAction.hh @@ -62,19 +62,17 @@ public: void EndOfRunAction(const G4Run* ); void SelectEnergy(G4int); -private: - - G4String sensitiveDetectorName; - HadrontherapyDetectorConstruction* detector; - HadrontherapyRunMessenger* runMessenger; - HadrontherapyFactory *factory; - G4int sourceChoice; //select primary particle + void AddEMProcess(); + // Counts the number of electromagnetic processes + // of primary particles in the phantom - - G4double matrix[80][80][80]; - G4int indexI; - G4int indexJ; - G4int indexK; + void AddHadronicProcess(); + // Counts the number of hadronic processes + // of primary particles in the phantom + +private: + G4int electromagnetic; + G4int hadronic; }; #endif diff --git a/examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh b/examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh index 5b2d31d330..5a8b023f7d 100644 --- a/examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh +++ b/examples/advanced/hadrontherapy/include/HadrontherapySteppingAction.hh @@ -42,11 +42,8 @@ #include "G4EventManager.hh" #include "G4ios.hh" #include "globals.hh" -#include -class HadrontherapyDetectorConstruction; class HadrontherapyRunAction; -class HadrontherapyEventAction; class HadrontherapySteppingMessenger; @@ -58,9 +55,12 @@ class HadrontherapySteppingMessenger; class HadrontherapySteppingAction : public G4UserSteppingAction { public: - HadrontherapySteppingAction( ); + HadrontherapySteppingAction(HadrontherapyRunAction*); ~HadrontherapySteppingAction(); void UserSteppingAction(const G4Step*); + +private: + HadrontherapyRunAction* runAction; }; #endif diff --git a/examples/advanced/hadrontherapy/modulatorMacro.mac b/examples/advanced/hadrontherapy/modulatorMacro.mac index 2e94daea2e..c39a23473a 100644 --- a/examples/advanced/hadrontherapy/modulatorMacro.mac +++ b/examples/advanced/hadrontherapy/modulatorMacro.mac @@ -60,1148 +60,14 @@ # IT CONSISTS IN A COMPLETE ROTATION # OF THE WHHEEL (360 DEG) -/run/beamOn 1000 +/run/beamOn 10 /vis/viewer/flush /modulator/angle 1 deg -/run/beamOn 1000 +/run/beamOn 10 /vis/viewer/flush /modulator/angle 1 deg -/run/beamOn 1000 +/run/beamOn 10 /vis/viewer/flush -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 -/vis/viewer/flush - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 10 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - -/modulator/angle 1 deg -/run/beamOn 1000 - - diff --git a/examples/advanced/hadrontherapy/precompoundDefaultEvaporation.mac b/examples/advanced/hadrontherapy/precompoundDefaultEvaporation.mac new file mode 100644 index 0000000000..47336a50b4 --- /dev/null +++ b/examples/advanced/hadrontherapy/precompoundDefaultEvaporation.mac @@ -0,0 +1,48 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - LOW ENERGY ELECTROMAGNETIC PHYSICS +# - ELASTIC SCATTERING FOR ALL THE HADRONS AND IONS +# - INELASTIC SCATTERING ---> +# PRECOMPOUND PHYSICS LIST with THE DEFAULT EVAPORATION MODEL AND WITHOUT THE FERMI BREAK-UP +# +# * PRECOMPOUND + EVAPORATION (DEFAULT MODEL) NO FERMI BREAK-UP FOR PROTONS, +# NEUTRONS AND PIONS +# +# * LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +# FOR DEUTERON, TRITON, HE3, ALPHA +# +# * FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +# +# +#------------------------------------------------------------------------------- + + +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics ion-LowE +/physics/addPhysics muon-standard +/physics/addPhysics decay + +# SETTING FOR THE PARTICULAR HADRONIC MODEL +#/physics/addPhysics proton-precompound + +/run/initialize + +# IF YOU WANT A RANGE SHIFTER PLEASE CHANGE +# THE FOLLOWIG PARAMETERS +# SETTING FOR THE RANGE SHIFTER +#/beamLine/RangeShifter/thickness 4 cm +#/beamLine/RangeShifter/RSMat Water + +/run/beamOn 10 + + + diff --git a/examples/advanced/hadrontherapy/precompoundDefaultEvaporationFermi.mac b/examples/advanced/hadrontherapy/precompoundDefaultEvaporationFermi.mac new file mode 100644 index 0000000000..39594cece9 --- /dev/null +++ b/examples/advanced/hadrontherapy/precompoundDefaultEvaporationFermi.mac @@ -0,0 +1,48 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - LOW ENERGY ELECTROMAGNETIC PHYSICS +# - ELASTIC SCATTERING FOR ALL THE HADRONS AND IONS +# - INELASTIC SCATTERING ---> +# PRECOMPOUND PHYSICS LIST with DEFAULT EVAPORATION MODEL + FERMI +# BREAK-UP +# +# * PRECOMPOUND + DEFAULT EVAPORATION + FERMI BREAK-UP FOR PROTONS, +# NEUTRONS AND PIONS +# +# * LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +# FOR DEUTERON, TRITON, HE3, ALPHA +# +# * FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +# +# +#------------------------------------------------------------------------------- + + +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics ion-LowE +/physics/addPhysics muon-standard +/physics/addPhysics decay + +# SETTING FOR THE PARTICULAR HADRONIC MODEL +/physics/addPhysics proton-precompoundFermi + +/run/initialize + +# IF YOU WANT A RANGE SHIFTER PLEASE CHANGE +# THE FOLLOWIG PARAMETERS +# SETTING FOR THE RANGE SHIFTER +#/beamLine/RangeShifter/thickness 4 cm +#/beamLine/RangeShifter/RSMat Water + +/run/beamOn 10 + + diff --git a/examples/advanced/hadrontherapy/precompoundGEMEvaporation.mac b/examples/advanced/hadrontherapy/precompoundGEMEvaporation.mac new file mode 100644 index 0000000000..fa838a4712 --- /dev/null +++ b/examples/advanced/hadrontherapy/precompoundGEMEvaporation.mac @@ -0,0 +1,48 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - LOW ENERGY ELECTROMAGNETIC PHYSICS +# - ELASTIC SCATTERING FOR ALL THE HADRONS AND IONS +# - INELASTIC SCATTERING ---> +# * PRECOMPOUND PHYSICS LIST with GEM EVAPORATION MODEL +# +# * PRECOMPOUND + EVAPORATION (GEM MODEL) NO FERMI BREAK-UP FOR PROTONS, +# NEUTRONS AND PIONS +# +# * LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +# FOR DEUTERON, TRITON, HE3, ALPHA +# +# * FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +# +# +#------------------------------------------------------------------------------- + + +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics ion-LowE +/physics/addPhysics muon-standard +/physics/addPhysics decay + +# SETTING FOR THE HADRONIC PHYSICS MODELS +/physics/addPhysics proton-precompoundGEM + +/run/initialize + +# IF YOU WANT A RANGE SHIFTER PLEASE CHANGE +# THE FOLLOWIG PARAMETERS +# SETTING FOR THE RANGE SHIFTER + +#/beamLine/RangeShifter/thickness 4 cm +#/beamLine/RangeShifter/RSMat Water + +/run/beamOn 10 + + diff --git a/examples/advanced/hadrontherapy/precompoundGEMFermi.mac b/examples/advanced/hadrontherapy/precompoundGEMFermi.mac new file mode 100644 index 0000000000..56cc9b739a --- /dev/null +++ b/examples/advanced/hadrontherapy/precompoundGEMFermi.mac @@ -0,0 +1,47 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - LOW ENERGY ELECTROMAGNETIC PHYSICS +# - ELASTIC SCATTERING FOR ALL THE HADRONS AND IONS +# - INELASTIC SCATTERING ---> +# PRECOMPOUND PHYSICS LIST with GEM EVAPORATION MODEL and FERMI BREAK-UP MODEL +# +# * PRECOMPOUND + EVAPORATION(GEM MODEL) + FERMI BREAK-UP FOR PROTONS, +# NEUTRONS AND PIONS +# +# * LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +# FOR DEUTERON, TRITON, HE3, ALPHA +# +# * FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +# +# +#------------------------------------------------------------------------------- + + +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard +/physics/addPhysics ion-LowE +/physics/addPhysics muon-standard +/physics/addPhysics decay + +# SETTING FOR THE PARTICULAR HADRONIC MODEL +/physics/addPhysics proton-precompoundGEMFermi + +/run/initialize + +# IF YOU WANT A RANGE SHIFTER PLEASE CHANGE +# THE FOLLOWIG PARAMETERS +# SETTING FOR THE RANGE SHIFTER +#/beamLine/RangeShifter/thickness 4 cm +#/beamLine/RangeShifter/RSMat Water + +/run/beamOn 10 + + diff --git a/examples/advanced/hadrontherapy/protonEMLowEnergy.mac b/examples/advanced/hadrontherapy/protonEMLowEnergy.mac new file mode 100644 index 0000000000..ce6e6d3282 --- /dev/null +++ b/examples/advanced/hadrontherapy/protonEMLowEnergy.mac @@ -0,0 +1,39 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - ELECTROMAGNETIC PHYSICS FOR PROTONS, ELECTRONS, POSITRONS, PHOTONS AND IONS +# +# +#------------------------------------------------------------------------------- +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard + +################################################### +#### Alternative Low Energy models for protons +#### Same Low Energy model for ions +################################################## +### ICRU49 parameterisation +/physics/addPhysics ion-LowE +# +### ZIEGLER 1977 parameterisation +#/physics/addPhysics ion-LowE-ziegler1977 +# +### ZIEGLER 1985 parameterisation +#/physics/addPhysics ion-LowE-ziegler1985 +# +### ZIEGLER 2000 parameterisation +#/physics/addPhysics ion-LowE-ziegler2000 +# +/run/initialize +/run/beamOn 100 + + + + diff --git a/examples/advanced/hadrontherapy/protonEMLowEnergyICRU49.mac b/examples/advanced/hadrontherapy/protonEMLowEnergyICRU49.mac new file mode 100644 index 0000000000..9c75dac4f2 --- /dev/null +++ b/examples/advanced/hadrontherapy/protonEMLowEnergyICRU49.mac @@ -0,0 +1,40 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - ELECTROMAGNETIC PHYSICS FOR PROTONS, ELECTRONS, POSITRONS, PHOTONS AND IONS +# +# +#------------------------------------------------------------------------------- +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard + +################################################### +#### Alternative Low Energy models for protons +#### Same Low Energy model for ions +################################################## + +### ICRU49 parameterisation +/physics/addPhysics ion-LowE + +### ZIEGLER 1977 parameterisation +#/physics/addPhysics ion-LowE-ziegler1977 + +### ZIEGLER 1985 parameterisation +#/physics/addPhysics ion-LowE-ziegler1985 + +### ZIEGLER 2000 parameterisation +#/physics/addPhysics ion-LowE-ziegler2000 + +/run/initialize +/run/beamOn 100 + + + + diff --git a/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler1977.mac b/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler1977.mac new file mode 100644 index 0000000000..85c34b6a2f --- /dev/null +++ b/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler1977.mac @@ -0,0 +1,40 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - ELECTROMAGNETIC PHYSICS FOR PROTONS, ELECTRONS, POSITRONS, PHOTONS AND IONS +# +# +#------------------------------------------------------------------------------- +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard + +################################################### +#### Alternative Low Energy models for protons +#### Same Low Energy model for ions +################################################## + +### ICRU49 parameterisation +#/physics/addPhysics ion-LowE + +### ZIEGLER 1977 parameterisation +/physics/addPhysics ion-LowE-ziegler1977 + +### ZIEGLER 1985 parameterisation +#/physics/addPhysics ion-LowE-ziegler1985 + +### ZIEGLER 2000 parameterisation +#/physics/addPhysics ion-LowE-ziegler2000 + +/run/initialize +/run/beamOn 100 + + + + diff --git a/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler1985.mac b/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler1985.mac new file mode 100644 index 0000000000..1b7398bb72 --- /dev/null +++ b/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler1985.mac @@ -0,0 +1,40 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - ELECTROMAGNETIC PHYSICS FOR PROTONS, ELECTRONS, POSITRONS, PHOTONS AND IONS +# +# +#------------------------------------------------------------------------------- +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard + +################################################### +#### Alternative Low Energy models for protons +#### Same Low Energy model for ions +################################################## + +### ICRU49 parameterisation +#/physics/addPhysics ion-LowE + +### ZIEGLER 1977 parameterisation +#/physics/addPhysics ion-LowE-ziegler1977 + +### ZIEGLER 1985 parameterisation +/physics/addPhysics ion-LowE-ziegler1985 + +### ZIEGLER 2000 parameterisation +#/physics/addPhysics ion-LowE-ziegler2000 + +/run/initialize +/run/beamOn 100 + + + + diff --git a/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler2000.mac b/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler2000.mac new file mode 100644 index 0000000000..9a191df1d9 --- /dev/null +++ b/examples/advanced/hadrontherapy/protonEMLowEnergyZiegler2000.mac @@ -0,0 +1,39 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - ELECTROMAGNETIC PHYSICS FOR PROTONS, ELECTRONS, POSITRONS, PHOTONS AND IONS +# +# +#------------------------------------------------------------------------------- +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-epdl +/physics/addPhysics electron-eedl +/physics/addPhysics positron-standard + +################################################### +#### Alternative Low Energy models for protons +#### Same Low Energy model for ions +################################################## + +### ICRU49 parameterisation +#/physics/addPhysics ion-LowE + +### ZIEGLER 1977 parameterisation +#/physics/addPhysics ion-LowE-ziegler1977 + +### ZIEGLER 1985 parameterisation +#/physics/addPhysics ion-LowE-ziegler1985 + +### ZIEGLER 2000 parameterisation +/physics/addPhysics ion-LowE-ziegler2000 +/run/initialize +/run/beamOn 100 + + + + diff --git a/examples/advanced/hadrontherapy/protonEMPenelope.mac b/examples/advanced/hadrontherapy/protonEMPenelope.mac new file mode 100644 index 0000000000..4eb105074c --- /dev/null +++ b/examples/advanced/hadrontherapy/protonEMPenelope.mac @@ -0,0 +1,38 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - ELECTROMAGNETIC PHYSICS FOR PROTONS, ELECTRONS, POSITRONS, PHOTONS AND IONS +# +# +#------------------------------------------------------------------------------- +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS + +/physics/addPhysics photon-penelope +/physics/addPhysics electron-penelope +/physics/addPhysics positron-penelope + +################################################### +#### Alternative Low Energy models for protons +#### Same Low Energy model for ions +################################################## + +### ICRU49 parameterisation +/physics/addPhysics ion-LowE + +### ZIEGLER 1977 parameterisation +#/physics/addPhysics ion-LowE-ziegler1977 + +### ZIEGLER 1985 parameterisation +#/physics/addPhysics ion-LowE-ziegler1985 + +### ZIEGLER 2000 parameterisation +#/physics/addPhysics ion-LowE-ziegler2000 + +/run/initialize +/run/beamOn 100 + diff --git a/examples/advanced/hadrontherapy/protonEMStandard.mac b/examples/advanced/hadrontherapy/protonEMStandard.mac new file mode 100644 index 0000000000..1062d14331 --- /dev/null +++ b/examples/advanced/hadrontherapy/protonEMStandard.mac @@ -0,0 +1,26 @@ +#---------------------------------------------------------------------------- +# PHYSICS LIST: +# +# - ELECTROMAGNETIC PHYSICS FOR PROTONS, ELECTRONS, POSITRONS, PHOTONS AND IONS +# +# +#------------------------------------------------------------------------------- +/control/verbose 1 +/tracking/verbose 0 +/run/verbose 0 +/event/verbose 0 + +# SETTING FOR THE PHYSICS MODELS +/physics/addPhysics photon-standard +/physics/addPhysics electron-standard +/physics/addPhysics positron-standard +/physics/addPhysics ion-standard + +####### +/run/initialize +/run/beamOn 100 + + + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc b/examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc index f6ed2f88ca..f386ada705 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyAnalysisManager.cc @@ -40,15 +40,59 @@ HadrontherapyAnalysisManager* HadrontherapyAnalysisManager::instance = 0; HadrontherapyAnalysisManager::HadrontherapyAnalysisManager() : - aFact(0), theTree(0), histFact(0), tupFact(0), h1(0), ntuple(0) + aFact(0), theTree(0), histFact(0), tupFact(0), h1(0), h2(0), h3(0), + h4(0), h5(0), h6(0), h7(0), h8(0), h9(0), h10(0), h11(0), h12(0), h13(0), h14(0), ntuple(0), + ionTuple(0) { } HadrontherapyAnalysisManager::~HadrontherapyAnalysisManager() { + delete ionTuple; + ionTuple = 0; + delete ntuple; ntuple = 0; + delete h14; + h14 = 0; + + delete h13; + h13 = 0; + + delete h12; + h12 = 0; + + delete h11; + h11 = 0; + + delete h10; + h10 = 0; + + delete h9; + h9 = 0; + + delete h8; + h8 = 0; + + delete h7; + h7 = 0; + + delete h6; + h6 = 0; + + delete h5; + h5 = 0; + + delete h4; + h4 = 0; + + delete h3; + h3 = 0; + + delete h2; + h2 = 0; + delete h1; h1 = 0; @@ -86,13 +130,44 @@ void HadrontherapyAnalysisManager::book() histFact = aFact -> createHistogramFactory(*theTree); tupFact = aFact -> createTupleFactory(*theTree); - // Create the histogram + // Create the histograms with the enrgy deposit along the X axis h1 = histFact -> createHistogram1D("10","slice, energy", 80, 0., 80. ); + h2 = histFact -> createHistogram1D("20","Secondary protons - slice, energy", 80, 0., 80. ); + + h3 = histFact -> createHistogram1D("30","Secondary neutrons - slice, energy", 80, 0., 80. ); + + h4 = histFact -> createHistogram1D("40","Secondary alpha - slice, energy", 80, 0., 80. ); + + h5 = histFact -> createHistogram1D("50","Secondary gamma - slice, energy", 80, 0., 80. ); + + h6 = histFact -> createHistogram1D("60","Secondary electron - slice, energy", 80, 0., 80. ); + + h7 = histFact -> createHistogram1D("70","Secondary triton - slice, energy", 80, 0., 80. ); + + h8 = histFact -> createHistogram1D("80","Secondary deuteron - slice, energy", 80, 0., 80. ); + + h9 = histFact -> createHistogram1D("90","Secondary pion - slice, energy", 80, 0., 80. ); + + h10 = histFact -> createHistogram1D("100","Energy distribution of secondary electrons", 70, 0., 70. ); + + h11 = histFact -> createHistogram1D("110","Energy distribution of secondary photons", 70, 0., 70. ); + + h12 = histFact -> createHistogram1D("120","Energy distribution of secondary deuterons", 70, 0., 70. ); + + h13 = histFact -> createHistogram1D("130","Energy distribution of secondary tritons", 70, 0., 70. ); + + h14 = histFact -> createHistogram1D("140","Energy distribution of secondary alpha particles", 70, 0., 70. ); + // Create the ntuple G4String columnNames = "int i; int j; int k; double energy;"; G4String options = ""; - if (tupFact) ntuple = tupFact->create("1","1",columnNames, options); + if (tupFact) ntuple = tupFact -> create("1","1",columnNames, options); + + // Create the ntuple + G4String columnNames2 = "int a; double z; int occupancy; double energy;"; + G4String options2 = ""; + if (tupFact) ionTuple = tupFact -> create("2","2", columnNames2, options2); } void HadrontherapyAnalysisManager::FillEnergyDeposit(G4int i, @@ -121,13 +196,98 @@ void HadrontherapyAnalysisManager::BraggPeak(G4int slice, G4double energy) h1 -> fill(slice,energy); } +void HadrontherapyAnalysisManager::SecondaryProtonEnergyDeposit(G4int slice, G4double energy) +{ + h2 -> fill(slice,energy); +} + +void HadrontherapyAnalysisManager::SecondaryNeutronEnergyDeposit(G4int slice, G4double energy) +{ + h3 -> fill(slice,energy); +} + +void HadrontherapyAnalysisManager::SecondaryAlphaEnergyDeposit(G4int slice, G4double energy) +{ + h4 -> fill(slice,energy); +} + +void HadrontherapyAnalysisManager::SecondaryGammaEnergyDeposit(G4int slice, G4double energy) +{ + h5 -> fill(slice,energy); +} + +void HadrontherapyAnalysisManager::SecondaryElectronEnergyDeposit(G4int slice, G4double energy) +{ + h6 -> fill(slice,energy); +} + +void HadrontherapyAnalysisManager::SecondaryTritonEnergyDeposit(G4int slice, G4double energy) +{ + h7 -> fill(slice,energy); +} + +void HadrontherapyAnalysisManager::SecondaryDeuteronEnergyDeposit(G4int slice, G4double energy) +{ + h8 -> fill(slice,energy); +} + +void HadrontherapyAnalysisManager::SecondaryPionEnergyDeposit(G4int slice, G4double energy) +{ + h9 -> fill(slice,energy); +} + +void HadrontherapyAnalysisManager::electronEnergyDistribution(G4double energy) +{ + h10 -> fill(energy); +} + +void HadrontherapyAnalysisManager::gammaEnergyDistribution(G4double energy) +{ + h11 -> fill(energy); +} + +void HadrontherapyAnalysisManager::deuteronEnergyDistribution(G4double energy) +{ + h12 -> fill(energy); +} + +void HadrontherapyAnalysisManager::tritonEnergyDistribution(G4double energy) +{ + h13 -> fill(energy); +} + +void HadrontherapyAnalysisManager::alphaEnergyDistribution(G4double energy) +{ + h14 -> fill(energy); +} + +void HadrontherapyAnalysisManager::genericIonInformation(G4int a, + G4double z, + G4int electronOccupancy, + G4double energy) +{ + if (ionTuple) + { + G4int aIndex = ionTuple -> findColumn("a"); + G4int zIndex = ionTuple -> findColumn("z"); + G4int electronIndex = ionTuple -> findColumn("occupancy"); + G4int energyIndex = ionTuple -> findColumn("energy"); + + ionTuple -> fill(aIndex,a); + ionTuple -> fill(zIndex,z); + ionTuple -> fill(electronIndex, electronOccupancy); + ionTuple -> fill(energyIndex, energy); + } + ionTuple -> addRow(); +} + void HadrontherapyAnalysisManager::finish() { - // Write all histograms to file - theTree -> commit(); + // Write all histograms to file + theTree -> commit(); - // Close (will again commit) - theTree ->close(); + // Close (will again commit) + theTree ->close(); } #endif diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyDecay.cc b/examples/advanced/hadrontherapy/src/HadrontherapyDecay.cc index 2148b19029..5dca0b255d 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyDecay.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyDecay.cc @@ -55,13 +55,14 @@ void HadrontherapyDecay::ConstructProcess() { G4ParticleDefinition* particle = theParticleIterator -> value(); G4ProcessManager* pmanager = particle -> GetProcessManager(); - - if (theDecayProcess -> IsApplicable(*particle)) + if (theDecayProcess -> IsApplicable(*particle) && !particle->IsShortLived()) { + G4String name = particle -> GetParticleName(); pmanager -> AddProcess(theDecayProcess); // set ordering for PostStepDoIt and AtRestDoIt pmanager -> SetProcessOrdering(theDecayProcess, idxPostStep); pmanager -> SetProcessOrdering(theDecayProcess, idxAtRest); } + } } diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc b/examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc index ca4c9459f8..4f3393583a 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyDetectorConstruction.cc @@ -72,9 +72,9 @@ HadrontherapyDetectorConstruction::HadrontherapyDetectorConstruction() phantomSizeZ = 20.*mm; // Number of the phantom voxels - numberOfVoxelsAlongX = 80; - numberOfVoxelsAlongY = 80; - numberOfVoxelsAlongZ = 80; + numberOfVoxelsAlongX = 200; + numberOfVoxelsAlongY = 200; + numberOfVoxelsAlongZ = 200; } HadrontherapyDetectorConstruction::~HadrontherapyDetectorConstruction() diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc b/examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc index 53af15a30c..439faee02f 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyEventAction.cc @@ -91,7 +91,7 @@ void HadrontherapyEventAction::EndOfEventAction(const G4Event* evt) G4int j = ((*CHC)[h]) -> GetYID(); G4int k = ((*CHC)[h]) -> GetZID(); G4double energyDeposit = ((*CHC)[h]) -> GetEdep(); - matrix -> Fill(i, j, k, energyDeposit); + matrix -> Fill(i, j, k, energyDeposit/MeV); } } } diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyIonLowE.cc b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowE.cc index ef4a7726c1..0040983bd1 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyIonLowE.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowE.cc @@ -59,22 +59,17 @@ void HadrontherapyIonLowE::ConstructProcess() G4ProcessManager* manager = particle -> GetProcessManager(); G4String particleName = particle -> GetParticleName(); G4double charge = particle -> GetPDGCharge(); - - // protons, ions, alpha, pions, kaons, generic ion..... - if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && + + if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && particleName != "e-" && particleName != "mu-") { if((!particle -> IsShortLived()) && (particle -> GetParticleName() != "chargedgeantino")) { - G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); - - ionisation -> SetNuclearStoppingPowerModel("ICRU_R49") ; // ICRU49 models for nuclear SP + // ICRU49 parameterisation is the default one + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); ionisation -> SetNuclearStoppingOn() ; - - // Switch off the Barkas and Bloch corrections - ionisation -> SetBarkasOn(); - + G4VProcess* multipleScattering = new G4MultipleScattering(); manager -> AddProcess(multipleScattering, -1,1,1); manager -> AddProcess(ionisation, -1,2,2); diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler1977.cc b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler1977.cc new file mode 100644 index 0000000000..0e13274f8f --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler1977.cc @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyIonLowE.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#include "HadrontherapyIonLowEZiegler1977.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4hLowEnergyIonisation.hh" +#include "G4hIonisation.hh" +#include "G4hLowEnergyLoss.hh" +#include "G4StepLimiter.hh" +#include "G4hZiegler1977p.hh" + +HadrontherapyIonLowEZiegler1977::HadrontherapyIonLowEZiegler1977(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyIonLowEZiegler1977::~HadrontherapyIonLowEZiegler1977() +{ } + +void HadrontherapyIonLowEZiegler1977::ConstructProcess() +{ + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + G4double charge = particle -> GetPDGCharge(); + + // protons + if (particleName == "proton") + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + // Electronic Stopping Power: Ziegler 1977 parameterisation + // Nuclear stopping power: Ziegler 1977 + ionisation -> SetElectronicStoppingPowerModel(particle, "Ziegler1977p"); + ionisation -> SetNuclearStoppingPowerModel("Ziegler1977"); + ionisation -> SetNuclearStoppingOn(); + + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + + // ions, alpha, pions, kaons, generic ion..... + if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && + particleName != "e-" && particleName != "mu-" && particleName != "proton") + { + if((!particle -> IsShortLived()) && + (particle -> GetParticleName() != "chargedgeantino")) + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + ionisation -> SetNuclearStoppingOn() ; + + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + } + } +} + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler1985.cc b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler1985.cc new file mode 100644 index 0000000000..9a79e6a4f1 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler1985.cc @@ -0,0 +1,100 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyIonLowEZiegler1985.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#include "HadrontherapyIonLowEZiegler1985.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4hLowEnergyIonisation.hh" +#include "G4hIonisation.hh" +#include "G4hLowEnergyLoss.hh" +#include "G4StepLimiter.hh" +#include "G4hZiegler1985p.hh" + +HadrontherapyIonLowEZiegler1985::HadrontherapyIonLowEZiegler1985(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyIonLowEZiegler1985::~HadrontherapyIonLowEZiegler1985() +{ } + +void HadrontherapyIonLowEZiegler1985::ConstructProcess() +{ + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + G4double charge = particle -> GetPDGCharge(); + + // protons + if (particleName == "proton") + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + // Electronic Stopping Power: Ziegler 1985 parameterisation + // Nuclear stopping power: Ziegler 1985 parameterisation + ionisation -> SetElectronicStoppingPowerModel(particle, "Ziegler1985p"); + ionisation -> SetNuclearStoppingPowerModel("Ziegler1985"); + ionisation -> SetNuclearStoppingOn() ; + + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + + // ions, alpha, pions, kaons, generic ions..... + if (( charge != 0. ) && (particleName != "e+") && (particleName != "mu+") && + (particleName != "e-") && (particleName != "mu-") && (particleName != "proton")) + { + if((!particle -> IsShortLived()) && + (particle -> GetParticleName() != "chargedgeantino")) + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + + ionisation -> SetNuclearStoppingOn() ; + + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + } + } +} + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler2000.cc b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler2000.cc new file mode 100644 index 0000000000..5b530c3347 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyIonLowEZiegler2000.cc @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyIonLowE.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, G. Candiano, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// -------------------------------------------------------------- + +#include "HadrontherapyIonLowEZiegler2000.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleDefinition.hh" +#include "G4MultipleScattering.hh" +#include "G4hLowEnergyIonisation.hh" +#include "G4hIonisation.hh" +#include "G4hLowEnergyLoss.hh" +#include "G4StepLimiter.hh" +#include "G4hSRIM2000p.hh" + +HadrontherapyIonLowEZiegler2000::HadrontherapyIonLowEZiegler2000(const G4String& name): G4VPhysicsConstructor(name) +{ } + +HadrontherapyIonLowEZiegler2000::~HadrontherapyIonLowEZiegler2000() +{ } + +void HadrontherapyIonLowEZiegler2000::ConstructProcess() +{ + theParticleIterator -> reset(); + + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator -> value(); + G4ProcessManager* manager = particle -> GetProcessManager(); + G4String particleName = particle -> GetParticleName(); + G4double charge = particle -> GetPDGCharge(); + + // protons + if (particleName == "proton") + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + // Electronic Stopping Power: SRIM 2000 parameterisation + // Nuclear stopping power: ICRU 49 + ionisation -> SetElectronicStoppingPowerModel(particle, "SRIM2000p"); + ionisation -> SetNuclearStoppingOn() ; + + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + // ions, alpha, pions, kaons, generic ion..... + if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && + particleName != "e-" && particleName != "mu-" && particleName != "proton") + { + if((!particle -> IsShortLived()) && + (particle -> GetParticleName() != "chargedgeantino")) + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + ionisation -> SetNuclearStoppingOn() ; + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); + } + } + } +} + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyIonStandard.cc b/examples/advanced/hadrontherapy/src/HadrontherapyIonStandard.cc index d6fd677089..23b6049e68 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyIonStandard.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyIonStandard.cc @@ -39,6 +39,7 @@ #include "G4ParticleDefinition.hh" #include "G4MultipleScattering.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" #include "G4MultipleScattering.hh" #include "G4StepLimiter.hh" @@ -58,10 +59,19 @@ void HadrontherapyIonStandard::ConstructProcess() G4ProcessManager* manager = particle -> GetProcessManager(); G4String particleName = particle -> GetParticleName(); G4double charge = particle -> GetPDGCharge(); + + if (particleName == "GenericIon") + { + G4ionIonisation* ionisation = new G4ionIonisation(); + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1, 3); - // protons, ions, pions, kaons, etc. + } + //protons and generic hadrons if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && - particleName != "e-" && particleName != "mu-") + particleName != "e-" && particleName != "mu-" && particleName !="GenericIon") { if((!particle -> IsShortLived()) && (particle -> GetParticleName() != "chargedgeantino")) diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyMatrix.cc b/examples/advanced/hadrontherapy/src/HadrontherapyMatrix.cc index a626f51a75..0ce0df1d9c 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyMatrix.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyMatrix.cc @@ -37,13 +37,14 @@ #include "HadrontherapyMatrix.hh" #include "HadrontherapyAnalysisManager.hh" #include "globals.hh" +#include HadrontherapyMatrix::HadrontherapyMatrix() { // Number of the voxels of the phantom - numberVoxelX = 80; - numberVoxelY = 80; - numberVoxelZ = 80; + numberVoxelX = 200; + numberVoxelY = 200; + numberVoxelZ = 200; // Create the matrix matrix = new G4double[numberVoxelX*numberVoxelY*numberVoxelZ]; @@ -86,33 +87,32 @@ void HadrontherapyMatrix::TotalEnergyDeposit() G4int k; G4int j; G4int i; - + if (matrix) { - for(G4int l = 0; l < numberVoxelZ; l++) - { - k = l; - - for(G4int m = 0; m < numberVoxelY; m++) - { - j = m * numberVoxelZ + k; - - for(G4int n = 0; n < numberVoxelX; n++) - { - i = n* numberVoxelZ * numberVoxelY + j; - if(matrix[i] != 0) - { -#ifdef G4ANALYSIS_USE - HadrontherapyAnalysisManager* analysis = - HadrontherapyAnalysisManager::getInstance(); - analysis -> FillEnergyDeposit(n, m, k, matrix[i]); - analysis -> BraggPeak(n, matrix[i]); -#endif - } - } + for(G4int l = 0; l < numberVoxelZ; l++) + { + k = l; - } - - } + for(G4int m = 0; m < numberVoxelY; m++) + { + j = m * numberVoxelZ + k; + + for(G4int n = 0; n < numberVoxelX; n++) + { + i = n* numberVoxelZ * numberVoxelY + j; + if(matrix[i] != 0) + { + +#ifdef G4ANALYSIS_USE + HadrontherapyAnalysisManager* analysis = + HadrontherapyAnalysisManager::getInstance(); + analysis -> FillEnergyDeposit(n, m, k, matrix[i]); + analysis -> BraggPeak(n, matrix[i]); +#endif + } + } + } + } } } diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc b/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc index 5412fb04ad..ee114a7dfe 100755 --- a/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyModulator.cc @@ -1,4 +1,3 @@ - // // ******************************************************************** // * DISCLAIMER * @@ -53,7 +52,6 @@ #include "G4Transform3D.hh" #include "G4ios.hh" #include -#include #include "G4RunManager.hh" HadrontherapyModulator::HadrontherapyModulator():physiMotherMod(0), diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyMuonStandard.cc b/examples/advanced/hadrontherapy/src/HadrontherapyMuonStandard.cc index 6bb9017621..4d982fba54 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyMuonStandard.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyMuonStandard.cc @@ -65,7 +65,8 @@ void HadrontherapyMuonStandard::ConstructProcess() G4String particleName = particle -> GetParticleName(); if(( particleName == "mu+")|| (particleName == "mu-" )) - {//muon + { + //muon G4VProcess* aMultipleScattering = new G4MultipleScattering(); G4VProcess* aBremsstrahlung = new G4MuBremsstrahlung(); G4VProcess* aPairProduction = new G4MuPairProduction(); @@ -94,4 +95,5 @@ void HadrontherapyMuonStandard::ConstructProcess() pmanager -> AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1); } } + G4cout << "muon processed loaded"< GetReplicaNumber(0); G4int i = ROhist -> GetReplicaNumber(2); G4int j = ROhist -> GetReplicaNumber(1); + + G4String particleName = aStep -> GetTrack() -> GetDynamicParticle() -> + GetDefinition() -> GetParticleName(); if(energyDeposit != 0) { @@ -86,7 +90,45 @@ G4bool HadrontherapyPhantomSD::ProcessHits(G4Step* aStep, G4TouchableHistory* RO phantomHit -> SetEdepAndPosition(i, j, k, energyDeposit); HitsCollection -> insert(phantomHit); } - + + // Energy deposit of secondary particles along X (integrated on Y and Z) +#ifdef G4ANALYSIS_USE + + HadrontherapyAnalysisManager* analysis = + HadrontherapyAnalysisManager::getInstance(); + + if(energyDeposit != 0) + { + + if(aStep -> GetTrack() -> GetTrackID()!= 1) + { + if (particleName == "proton") + analysis -> SecondaryProtonEnergyDeposit(i, energyDeposit/MeV); + + if (particleName == "neutron") + analysis -> SecondaryNeutronEnergyDeposit(i, energyDeposit/MeV); + + if (particleName == "alpha") + analysis -> SecondaryAlphaEnergyDeposit(i, energyDeposit/MeV); + + if (particleName == "gamma") + analysis -> SecondaryGammaEnergyDeposit(i, energyDeposit/MeV); + + if (particleName == "e-") + analysis -> SecondaryElectronEnergyDeposit(i, energyDeposit/MeV); + + if (particleName == "triton") + analysis -> SecondaryTritonEnergyDeposit(i, energyDeposit/MeV); + + if (particleName == "deuteron") + analysis -> SecondaryDeuteronEnergyDeposit(i, energyDeposit/MeV); + + if (particleName == "pi+" || particleName == "pi-" || particleName == "pi0") + analysis -> SecondaryPionEnergyDeposit(i, energyDeposit/MeV); + } + } +#endif + return true; } diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc b/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc index 7a86757592..96d5675a54 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyPhysicsList.cc @@ -50,17 +50,27 @@ #include "HadrontherapyPositronStandard.hh" #include "HadrontherapyPositronPenelope.hh" #include "HadrontherapyIonLowE.hh" +#include "HadrontherapyIonLowEZiegler1977.hh" +#include "HadrontherapyIonLowEZiegler1985.hh" +#include "HadrontherapyIonLowEZiegler2000.hh" #include "HadrontherapyIonStandard.hh" #include "HadrontherapyProtonPrecompound.hh" +#include "HadrontherapyProtonPrecompoundFermi.hh" +#include "HadrontherapyProtonPrecompoundGEM.hh" +#include "HadrontherapyProtonPrecompoundGEMFermi.hh" +#include "HadrontherapyProtonBinary.hh" #include "HadrontherapyMuonStandard.hh" #include "HadrontherapyDecay.hh" - +#include "HadrontherapyParticles.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" HadrontherapyPhysicsList::HadrontherapyPhysicsList(): G4VModularPhysicsList(), electronIsRegistered(false), positronIsRegistered(false), photonIsRegistered(false), ionIsRegistered(false), - protonPrecompoundIsRegistered(false), + protonHadronicIsRegistered(false), muonIsRegistered(false), decayIsRegistered(false) { @@ -69,6 +79,8 @@ HadrontherapyPhysicsList::HadrontherapyPhysicsList(): G4VModularPhysicsList(), defaultCutValue = 10. * mm; messenger = new HadrontherapyPhysicsListMessenger(this); SetVerboseLevel(1); + RegisterPhysics( new HadrontherapyParticles("particles") ); + } HadrontherapyPhysicsList::~HadrontherapyPhysicsList() @@ -218,7 +230,7 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name) if (positronIsRegistered) { G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name - << " cannot be registered ---- positron List already existing" << G4endl; + << " cannot be registered ---- positron List already existing" << G4endl; } else { @@ -228,9 +240,10 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name) positronIsRegistered = true; } } - - // Register Low Energy ICRU processes for protons and ions - + + // Register Low Energy processes for protons and ions + // Stopping power parameterisation: ICRU49 (default model) + if (name == "ion-LowE") { if (ionIsRegistered) @@ -248,6 +261,65 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name) } } +// Register Low Energy processes for protons and ions +// Stopping power parameterisation: Ziegler 1977 + if (name == "ion-LowE-ziegler1977") + { + if (ionIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- proton List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyIonLowEZiegler1977(name) ); + ionIsRegistered = true; + } + } + + +// Register Low Energy processes for protons and ions +// Stopping power parameterisation: Ziegler 1985 + if (name == "ion-LowE-ziegler1985") + { + if (ionIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- proton List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyIonLowEZiegler1985(name) ); + ionIsRegistered = true; + } + } + + +// Register Low Energy processes for protons and ions +// Stopping power parameterisation: SRIM2000 + if (name == "ion-LowE-ziegler2000") + { + if (ionIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- proton List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyIonLowEZiegler2000(name) ); + ionIsRegistered = true; + } + } + // Register Standard processes for protons and ions if (name == "ion-standard") @@ -302,14 +374,20 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name) decayIsRegistered = true; } } - // - // - // Register the hadronic physics for protons, neutrons, ions - // - // + + +//-------------------------------------------------------------------------------------------- +//Begin Hadronic Precompound models +//-------------------------------------------------------------------------------------------- +// +// Register the hadronic physics for protons, neutrons, ions +// + +//Precompound Default Evaporation + if (name == "proton-precompound") { - if (protonPrecompoundIsRegistered) + if (protonHadronicIsRegistered) { G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name << " cannot be registered ---- decay List already existing" @@ -320,10 +398,103 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name) G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name << " is registered" << G4endl; RegisterPhysics( new HadrontherapyProtonPrecompound(name) ); - protonPrecompoundIsRegistered = true; + protonHadronicIsRegistered = true; + } + } + + +//Precompond Default Evaporation + Fermi Breck-up Model + + if (name == "proton-precompoundFermi") + { + if (protonHadronicIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- decay List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyProtonPrecompoundFermi(name) ); + protonHadronicIsRegistered = true; } } +//Precompound GEM Evaporation + + if (name == "proton-precompoundGEM") + { + if (protonHadronicIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- decay List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyProtonPrecompoundGEM(name) ); + protonHadronicIsRegistered = true; + } + + } + +//Precompound GEM Evaporation + Fermi Breck-up Model + + if (name == "proton-precompoundGEMFermi") + { + if (protonHadronicIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- decay List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyProtonPrecompoundGEMFermi(name) ); + protonHadronicIsRegistered = true; + } + + } + +//------------------------------------------------------------------------------------------------- +// End Hadronic Precompound models +//------------------------------------------------------------------------------------------------- + +//-------------------------------------------------------------------------------------------- +//Begin Hadronic Binary models +//-------------------------------------------------------------------------------------------- + +// Binary cascade model with the default precompound + + +if (name == "proton-precompound-binary") + { + if (protonHadronicIsRegistered) + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " cannot be registered ---- decay List already existing" + << G4endl; + } + else + { + G4cout << "HadrontherapyPhysicsList::AddPhysicsList: " << name + << " is registered" << G4endl; + RegisterPhysics( new HadrontherapyProtonBinary(name) ); + protonHadronicIsRegistered = true; + } + + } + +//-------------------------------------------------------------------------------------------- +// End Hadronic Binary models +//-------------------------------------------------------------------------------------------- + if (electronIsRegistered && positronIsRegistered && photonIsRegistered && ionIsRegistered) { @@ -331,10 +502,11 @@ void HadrontherapyPhysicsList::AddPhysicsList(const G4String& name) "Electromagnetic physics is registered for electron, positron, photons, protons" << G4endl; } - if (protonPrecompoundIsRegistered && muonIsRegistered && decayIsRegistered) - { - G4cout << " Hadronic physics is registered" << G4endl; - } + + if (protonHadronicIsRegistered && muonIsRegistered && decayIsRegistered) + { + G4cout << " Hadronic physics is registered" << G4endl; + } } void HadrontherapyPhysicsList::SetCuts() @@ -353,6 +525,8 @@ void HadrontherapyPhysicsList::SetCuts() cuts -> SetProductionCut(regionCut,G4ProductionCuts::GetIndex("gamma")); cuts -> SetProductionCut(regionCut,G4ProductionCuts::GetIndex("e-")); cuts -> SetProductionCut(regionCut,G4ProductionCuts::GetIndex("e+")); + cuts -> SetProductionCut(regionCut,G4ProductionCuts::GetIndex("proton")); + cuts -> SetProductionCut(regionCut,G4ProductionCuts::GetIndex("genericIons")); region -> SetProductionCuts(cuts); if (verboseLevel>0) DumpCutValuesTable(); diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyProtonBinary.cc b/examples/advanced/hadrontherapy/src/HadrontherapyProtonBinary.cc new file mode 100644 index 0000000000..c18bf7534a --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyProtonBinary.cc @@ -0,0 +1,268 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonBinary.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyProtonBinary.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4Material.hh" +#include "G4LElastic.hh" +#include "G4BinaryCascade.hh" +#include "G4CascadeInterface.hh" +#include "G4PionPlusInelasticProcess.hh" +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4HEPionPlusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4PionPlusInelasticProcess.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4PiMinusAbsorptionAtRest.hh" +#include "G4AntiProtonInelasticProcess.hh" +#include "G4LEAntiProtonInelastic.hh" +#include "G4HEAntiProtonInelastic.hh" +#include "G4AntiProtonAnnihilationAtRest.hh" + +// BINARY + PRECOMPOUND PHYSICS LIST +// +// BINARY + PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION) NO FERMI BREAK-UP FOR PROTONS, NEUTRONS AND PIONS +// +// LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +// FOR DEUTERON, TRITON, HE3, ALPHA +// +//FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +// +HadrontherapyProtonBinary::HadrontherapyProtonBinary(const G4String& name): + G4VPhysicsConstructor(name) +{ + // Energy limits of the model for ions + binaryLightIonLowLimit = 80.*MeV; + binaryLightIonHighLimit = 40.*GeV; + LEPHighLimit = 100.*MeV; + + // Energy limits for protons, neutrons and pions + precompoundLowLimit = 100.*MeV; + precompoundHighLimit = 300.*MeV; + neutronLowLimit = 0.*TeV; + neutronHighLimit = 100.*TeV; + + binaryLowLimit = 0.*MeV; + binaryHighLimit = 300.*MeV; +} + +HadrontherapyProtonBinary::~HadrontherapyProtonBinary() +{} + +void HadrontherapyProtonBinary::ConstructProcess() +{ + + // ELASTIC SCATTERING FOR PROTON, NEUTRON, IONS + G4LElastic* elastic_Model = new G4LElastic(); + G4HadronElasticProcess* elastic = new G4HadronElasticProcess(); + elastic -> RegisterMe(elastic_Model); + + // PRECOMPOUND MODEL + G4PreCompoundModel* thePreEquilib = new G4PreCompoundModel(&theHandler); + thePreEquilib -> SetMinEnergy(precompoundLowLimit); + thePreEquilib -> SetMaxEnergy(precompoundHighLimit); + + ///////////////////////////////////////////////////////////////////////////// + // HADRONIC PHYSICS FOR PROTONS + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; + particle = G4Proton::Proton(); + pmanager = particle -> GetProcessManager(); + + // INELASTIC SCATTERING: + //BINARY - PRECOMPOUND + DEFAULT EVAPORATION NO FERMI BREAK-UP + G4BinaryCascade* thePBC = new G4BinaryCascade(); + thePBC -> SetMinEnergy(binaryLowLimit); + thePBC -> SetMaxEnergy(binaryHighLimit); + theIPProton.RegisterMe(thePBC); + theIPProton.RegisterMe(thePreEquilib); + theIPProton.AddDataSet(&thePXSec); + pmanager -> AddDiscreteProcess(&theIPProton); + + // ELASTIC SCATTERING + pmanager -> AddDiscreteProcess(elastic); //ELASIC SCATTERING + + ///////////////////////////////////////////////////////////////////////////// + ////////// VERIFICARE LA POSSIBILITA' DEL BINARY PER PIONI + ///////////////////////////////////////////////////////////////////////////// + // HADRONIC PHYSICS FOR PION PLUS + particle = G4PionPlus::PionPlus(); + + // ELASTIC SCATTERING + pmanager -> AddDiscreteProcess(elastic); + + // INELASTIC SCATTERING: BINARY - PRECOMPOUND + DEFAULT EVAPORATION NO FERMI BREAK-UP + pmanager -> AddDiscreteProcess(elastic); + G4PionPlusInelasticProcess* thePionPlusInelasticProcess = new G4PionPlusInelasticProcess("inelastic"); + + G4PreCompoundModel* theLEPionPlusInelasticModel = new G4PreCompoundModel(&theHandler); + + thePionPlusInelasticProcess -> RegisterMe(theLEPionPlusInelasticModel); + + pmanager -> AddDiscreteProcess(thePionPlusInelasticProcess); + + + ///////////////////////////////////////////////////////////////////////////// + //HADRONIC PHYSICS FOR PION MINUS + particle = G4PionMinus::PionMinus(); + + // ELASTIC SCATTERING + pmanager -> AddDiscreteProcess(elastic); + + // INELASTIC SCATTERING: BINARY - PRECOMPOUND + DEFAULT EVAPORATION NO FERMI BREAK-UP + G4PionMinusInelasticProcess* thePionMinusInelasticProcess = new G4PionMinusInelasticProcess("inelastic"); + + G4PreCompoundModel* theLEPionMinusInelasticModel = new G4PreCompoundModel(&theHandler); + + thePionMinusInelasticProcess -> RegisterMe(theLEPionMinusInelasticModel); + + pmanager -> AddDiscreteProcess(thePionMinusInelasticProcess); + +///////////////////////////////////////////////////////////////////////////// + // Neutron + particle = G4Neutron::Neutron(); + pmanager = particle->GetProcessManager(); + thePreEquilib -> SetMinEnergy(precompoundLowLimit); + thePreEquilib -> SetMaxEnergy(precompoundHighLimit); + G4BinaryCascade* theNBC = new G4BinaryCascade(); + theNBC->SetMinEnergy(binaryLowLimit); + theNBC->SetMaxEnergy(binaryHighLimit); + theIPNeutron.RegisterMe(theNBC); + theIPNeutron.RegisterMe(thePreEquilib); + theIPNeutron.AddDataSet(&theNXSec); + pmanager -> AddDiscreteProcess(&theIPNeutron); + pmanager -> AddDiscreteProcess(elastic); // ELASTIC SCATTERING + + //Hadron Capture + G4HadronCaptureProcess* neutronCapture = new G4HadronCaptureProcess(); + G4LCapture* capture_model = new G4LCapture(); + capture_model -> SetMinEnergy(neutronLowLimit); + capture_model -> SetMaxEnergy(neutronHighLimit); + neutronCapture -> RegisterMe(capture_model); + pmanager -> AddDiscreteProcess(neutronCapture); + + //Fission + G4HadronFissionProcess* fission = new G4HadronFissionProcess(); + G4LFission* fission_model = new G4LFission(); + fission_model -> SetMinEnergy(neutronLowLimit); + fission_model -> SetMaxEnergy(neutronHighLimit); + fission -> RegisterMe(fission_model); + pmanager -> AddDiscreteProcess(fission); + + ///////////////////////////////////////////////////////////////////////////// + // ION HADRONIC PHYSICS LIST + G4TripathiCrossSection * TripathiCrossSection= new G4TripathiCrossSection; + G4IonsShenCrossSection * aShen = new G4IonsShenCrossSection; + + // INELASTIC SCATTERING FOR IONS + G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction(); + theBC -> SetMinEnergy(binaryLightIonLowLimit); + theBC -> SetMaxEnergy(binaryLightIonHighLimit); + + ///////////////////////////////////////////////////////////////////////////// + // deuteron + particle = G4Deuteron::Deuteron(); + pmanager = particle -> GetProcessManager(); + + // INELASTIC SCATTERING + G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic; + theDIModel -> SetMaxEnergy(LEPHighLimit); + theIPdeuteron.AddDataSet(TripathiCrossSection); + theIPdeuteron.AddDataSet(aShen); + theIPdeuteron.RegisterMe(theDIModel); + theIPdeuteron.RegisterMe(theBC); + pmanager -> AddDiscreteProcess(&theIPdeuteron); + + //ELASTIC SCATTERING + pmanager -> AddDiscreteProcess(elastic); + + ///////////////////////////////////////////////////////////////////////////// + // triton + particle = G4Triton::Triton(); + pmanager = particle->GetProcessManager(); + // INELASTIC SCATTERING + G4LETritonInelastic* theTIModel = new G4LETritonInelastic; + theTIModel -> SetMaxEnergy(LEPHighLimit); + theIPtriton.AddDataSet(TripathiCrossSection); + theIPtriton.AddDataSet(aShen); + theIPtriton.RegisterMe(theTIModel); + theIPtriton.RegisterMe(theBC); + pmanager -> AddDiscreteProcess(&theIPtriton); + + //ELASTIC SCATTERING + pmanager -> AddDiscreteProcess(elastic); //ELASTIC SCATTERING + + ///////////////////////////////////////////////////////////////////////////// + // alpha + particle = G4Alpha::Alpha(); + pmanager = particle->GetProcessManager(); + + // INELASTIC SCATTERING + G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic; + theAIModel -> SetMaxEnergy(LEPHighLimit); + theIPalpha.AddDataSet(TripathiCrossSection); + theIPalpha.AddDataSet(aShen); + theIPalpha.RegisterMe(theAIModel); + theIPalpha.RegisterMe(theBC); + pmanager -> AddDiscreteProcess(&theIPalpha); + //ELASTIC SCATTERING + pmanager -> AddDiscreteProcess(elastic); //ELASTIC SCATTERING + + ///////////////////////////////////////////////////////////////////////////// + // He3 + particle = G4He3::He3(); + pmanager = particle->GetProcessManager(); + G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction; + G4HadronInelasticProcess* theIPHe3 = + new G4HadronInelasticProcess("He3Inelastic",particle); + theIPHe3 -> AddDataSet(TripathiCrossSection); + theIPHe3 -> AddDataSet(aShen); + theIPHe3 -> RegisterMe(theGenIonBC); + pmanager -> AddDiscreteProcess(theIPHe3); + pmanager -> AddDiscreteProcess(elastic); //ELASTIC SCATTERING + + +} + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompound.cc b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompound.cc index 50ce8bec33..dfda19b819 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompound.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompound.cc @@ -100,249 +100,186 @@ HadrontherapyProtonPrecompound::~HadrontherapyProtonPrecompound() void HadrontherapyProtonPrecompound::ConstructProcess() { + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; - G4ParticleDefinition* particle = 0; - G4ProcessManager* pmanager = 0; - - // Elastic scattering - // for protons, neutrons, pions, ions + // LOW ENERGY ELASTIC SCATTERING + // FOR PROTON, NEUTRON, IONS G4LElastic* elastic_Model = new G4LElastic(); G4HadronElasticProcess* elastic = new G4HadronElasticProcess(); elastic -> RegisterMe(elastic_Model); - // Activation of Precompound model + evaporation (default evaporation) - // The Fermi break-up is not active (default condition) - // for protons, pions and neutrons - - G4PreCompoundModel* preEquilibrium = new G4PreCompoundModel(&theHandler); - preEquilibrium -> SetMinEnergy(precompoundLowLimit); - preEquilibrium -> SetMaxEnergy(precompoundHighLimit); + // INELASTIC SCATTERING + // Binary Cascade + G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction(); + // Set the min and max energy for the Binary Cascade + theBC -> SetMinEnergy(binaryLightIonLowLimit); + theBC -> SetMaxEnergy(binaryLightIonHighLimit); + + // TRIPATHI CROSS SECTION + // Implementation of formulas in analogy to NASA technical paper 3621 by + // Tripathi, et al. Cross-sections for ion ion scattering + G4TripathiCrossSection* TripathiCrossSection = new G4TripathiCrossSection; + + // IONS SHEN CROSS SECTION + // Implementation of formulas + // Shen et al. Nuc. Phys. A 491 130 (1989) + // Total Reaction Cross Section for Heavy-Ion Collisions + G4IonsShenCrossSection* aShen = new G4IonsShenCrossSection; - //----------// - // Protons // - //----------// +//-------------------------------------------------------------------------------------- - // Inelastic process for protons + // Proton PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION)+ FERMI BREAK-UP particle = G4Proton::Proton(); - pmanager = particle -> GetProcessManager(); + pmanager = particle->GetProcessManager(); - // Activation of the Precompound model for the proton - // inelastic process - //G4ProtonInelasticProcess protonInelasticScattering; - protonInelasticScattering.RegisterMe(preEquilibrium); - - // Set the cross section for the proton inelastic process - //G4ProtonInelasticCrossSection protonInelasticCrossSection; - protonInelasticScattering.AddDataSet(&protonInelasticCrossSection); + G4PreCompoundModel* thePreEquilib = new G4PreCompoundModel(&theHandler); + // Set the range of minimum and maximum energy value + thePreEquilib -> SetMinEnergy(precompoundLowLimit); + thePreEquilib -> SetMaxEnergy(precompoundHighLimit); + // Model Registration + theIPProton.RegisterMe(thePreEquilib); + // Active the Cross-sections for proton nuclear scattering up to 20 GeV + theIPProton.AddDataSet(&thePXSec); + // Active the proton inelastic scattering using the precompound model + pmanager -> AddDiscreteProcess(&theIPProton); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); - // Set the proton hadronic processes: inelastic and elastic scattering - pmanager -> AddDiscreteProcess(&protonInelasticScattering); - pmanager -> AddDiscreteProcess(elastic); - - - //----------// - // Neutrons // - //----------// - - // Inelastic process for neutrons - particle = G4Neutron::Neutron(); - pmanager = particle -> GetProcessManager(); - - // Activation of the Precompound model for the neutrons - // inelastic process - - neutronInelasticScattering.RegisterMe(preEquilibrium); - - // Set the cross section for the neutron inelastic process - - neutronInelasticScattering.AddDataSet(&neutronInelasticCrossSection); - - // Set the neutron hadronic processes: inelastic and elastic scattering - pmanager -> AddDiscreteProcess(&neutronInelasticScattering); - pmanager -> AddDiscreteProcess(elastic); - - //----------// - // Pions // - //----------// - - // Inelastic process for pions - - // Pions plus - particle = G4PionPlus::PionPlus(); - pmanager = particle -> GetProcessManager(); - - // Activation of the Precompound model for the pion plus - // inelastic process - - pionPlusInelasticScattering.RegisterMe(preEquilibrium); - - // Set the cross section for the pion inelastic process - - pionPlusInelasticScattering.AddDataSet(&pionPlusInelasticCrossSection); - - // Set the pion plus hadronic processes: inelastic and elastic scattering - pmanager -> AddDiscreteProcess(&pionPlusInelasticScattering); - pmanager -> AddDiscreteProcess(elastic); - - // Pions minus - particle = G4PionMinus::PionMinus(); - pmanager = particle -> GetProcessManager(); - - // Activation of the Precompound model for the pion minus - // inelastic process - - pionMinusInelasticScattering.RegisterMe(preEquilibrium); - - // Set the cross section for the pion minus inelastic process - - pionMinusInelasticScattering.AddDataSet(&pionMinusInelasticCrossSection); - - // Set the pion minus hadronic processes: inelastic and elastic scattering - pmanager -> AddDiscreteProcess(&pionMinusInelasticScattering); - pmanager -> AddDiscreteProcess(elastic); - pmanager -> AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); - - //------------------// - //d, t, 3He, alpha // - //------------------// - - //Inelastic scattering for d, t, 3He, alpha - - //Activation of the Low Energy Parameterised (LEP) model and binary ion model - // for the inelastic scattering - - G4BinaryLightIonReaction* binaryIonCascade = new G4BinaryLightIonReaction(); - binaryIonCascade -> SetMinEnergy(binaryLightIonLowLimit); - binaryIonCascade -> SetMaxEnergy(binaryLightIonHighLimit); - - // Set the cross section for the inelastic scattering - TripathiCrossSection = new G4TripathiCrossSection; - ShenCrossSection = new G4IonsShenCrossSection; - - // Deuteron + // deuteron particle = G4Deuteron::Deuteron(); pmanager = particle -> GetProcessManager(); - // Activate the LEP model for the d inelastic scattering - G4LEDeuteronInelastic* deuteronLEPModel = new G4LEDeuteronInelastic; - deuteronLEPModel -> SetMaxEnergy(LEPHighLimit); + // Final state production model for Deuteron inelastic scattering below 100 MeV + G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic; + // Set the maximum energy for LEP model + theDIModel -> SetMaxEnergy(LEPHighLimit); + // Active the Tripathi and aShen Cross Section + theIPdeuteron.AddDataSet(TripathiCrossSection); + theIPdeuteron.AddDataSet(aShen); + // Register the Deuteron Inelastic and Binary Cascade Model + theIPdeuteron.RegisterMe(theDIModel); + theIPdeuteron.RegisterMe(theBC); + // Active the deuteron inelastic scattering using the deuteron inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPdeuteron); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); - // Activate the binary ion model model for the d inelastic scattering - - deuteronInelasticScattering.RegisterMe(deuteronLEPModel); - deuteronInelasticScattering.RegisterMe(binaryIonCascade); - - // Definition of the the deuteron inelastic scattering cross section - deuteronInelasticScattering.AddDataSet(TripathiCrossSection); - deuteronInelasticScattering.AddDataSet(ShenCrossSection); - - // Set the deuteron hadronic processes: inelastic and elastic scattering - pmanager -> AddDiscreteProcess(&deuteronInelasticScattering); - pmanager -> AddDiscreteProcess(elastic); - - // Triton + // triton particle = G4Triton::Triton(); - pmanager = particle -> GetProcessManager(); - - // Activate the LEP model for the t inelastic scattering - G4LETritonInelastic* tritonLEPModel = new G4LETritonInelastic; - tritonLEPModel -> SetMaxEnergy(LEPHighLimit); - - // Activate the binary ion model model for the t inelastic scattering - - tritonInelasticScattering.RegisterMe(tritonLEPModel); - tritonInelasticScattering.RegisterMe(binaryIonCascade); - - // Definition of the the triton inelastic scattering cross section - tritonInelasticScattering.AddDataSet(TripathiCrossSection); - tritonInelasticScattering.AddDataSet(ShenCrossSection); - - // Set the triton hadronic processes: inelastic and elastic scattering - pmanager -> AddDiscreteProcess(&tritonInelasticScattering); - pmanager -> AddDiscreteProcess(elastic); + pmanager = particle->GetProcessManager(); + + // Final state production model for Triton inelastic scattering below 100 MeV + G4LETritonInelastic* theTIModel = new G4LETritonInelastic; + // Set the maximum energy for LEP model + theTIModel -> SetMaxEnergy(LEPHighLimit); + // Active the Tripathi and aShen Cross Section + theIPtriton.AddDataSet(TripathiCrossSection); + theIPtriton.AddDataSet(aShen); + // Register the Triton Inelastic and Binary Cascade Model + theIPtriton.RegisterMe(theTIModel); + theIPtriton.RegisterMe(theBC); + // Active the triton inelastic scattering using the triton inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPtriton); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); // alpha particle = G4Alpha::Alpha(); + pmanager = particle->GetProcessManager(); + // Final state production model for Alpha inelastic scattering below 20 GeV + G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic; + // Set the maximum energy for LEP model + theAIModel -> SetMaxEnergy(LEPHighLimit); + // Register the Triton Inelastic and Binary Cascade Model + theIPalpha.AddDataSet(TripathiCrossSection); + theIPalpha.AddDataSet(aShen); + // Register the Alpha Inelastic and Binary Cascade Model + theIPalpha.RegisterMe(theAIModel); + theIPalpha.RegisterMe(theBC); + // Active the alpha inelastic scattering using the alpha inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPalpha); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // He3 + particle = G4He3::He3(); + pmanager = particle->GetProcessManager(); + // Binary Cascade inelastic scattering for ions + G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction; + // Inelastic Scattering for ions + G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle); + // Active the Tripathi and aShen Cross Section + theIPHe3 -> AddDataSet(TripathiCrossSection); + theIPHe3 -> AddDataSet(aShen); + // Register the Alpha Binary Cascade Model + theIPHe3 -> RegisterMe(theGenIonBC); + // Active the Inelastic Process for He3 + pmanager -> AddDiscreteProcess(theIPHe3); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // Neutron + particle = G4Neutron::Neutron(); + pmanager = particle->GetProcessManager(); + // Register the Precompound model + theIPNeutron.RegisterMe(thePreEquilib); + // Active the Cross-sections for neutron nuclear scattering from 14 MeV up to 20 GeV + theIPNeutron.AddDataSet(&theNXSec); + // Active the neutron inelastic process + pmanager -> AddDiscreteProcess(&theIPNeutron); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // Pions plus + particle = G4PionPlus::PionPlus(); pmanager = particle -> GetProcessManager(); + // Define the inelastic process for pions plus + G4PionPlusInelasticProcess* thePionPlusInelasticProcess = new G4PionPlusInelasticProcess("inelastic"); + // Register the Low Energy Inelastic Model for pions plus + thePionPlusInelasticProcess -> RegisterMe(thePreEquilib); + // Active the inelastic process for pions plus + pmanager->AddDiscreteProcess(thePionPlusInelasticProcess); + pmanager -> AddDiscreteProcess(elastic); - // Activate the LEP model for the alpha inelastic scattering - G4LEAlphaInelastic* alphaLEPModel = new G4LEAlphaInelastic; - alphaLEPModel -> SetMaxEnergy(LEPHighLimit); - - // Activate the binary ion model model for the alpha inelastic scattering - alphaInelasticScattering.RegisterMe(alphaLEPModel); - alphaInelasticScattering.RegisterMe(binaryIonCascade); - - // Definition of the alpha inelastic scattering cross section - alphaInelasticScattering.AddDataSet(TripathiCrossSection); - alphaInelasticScattering.AddDataSet(ShenCrossSection); - - // Set the alpha hadronic processes: inelastic and elastic scattering - pmanager -> AddDiscreteProcess(&alphaInelasticScattering); - pmanager -> AddDiscreteProcess(elastic); - - - -///////////////////////////////////////////////////////////////////////////// -// NEW HE3 -///////////////////////////////////////////////////////////////////////////// - - //TripathiCrossSection = new G4TripathiCrossSection; - //ShenCrossSection = new G4IonsShenCrossSection; - - pmanager->AddDiscreteProcess(elastic); - He3InelasticProcess = new G4HadronInelasticProcess - ("He3Inelastic", G4He3::He3()); - - He3InelasticProcess->AddDataSet(TripathiCrossSection); - He3InelasticProcess->AddDataSet(ShenCrossSection); - He3InelasticProcess->RegisterMe(binaryIonCascade); - pmanager->AddDiscreteProcess(He3InelasticProcess); - - - // // He3 -// particle = G4He3::He3(); -// pmanager = particle -> GetProcessManager(); - -// // Only Binary Ion model activated -// // LEP model is not availaboe for 3He - -// G4HadronInelasticProcess* He3InelasticScattering = -// new G4HadronInelasticProcess("Inelastic scattering", particle); - -// // Change the binary ion model limits because the LEP is not available -// // -// binaryIonCascade -> SetMinEnergy(0.*MeV); -// binaryIonCascade -> SetMaxEnergy(binaryLightIonHighLimit); - -// // Definition of the 3He inelastic scattering cross section -// He3InelasticScattering -> AddDataSet(TripathiCrossSection); -// He3InelasticScattering -> AddDataSet(aShen); - -// He3InelasticScattering -> RegisterMe(binaryIonCascade); - -// // Set the He3 hadronic processes: inelastic and elastic scattering -// pmanager -> AddDiscreteProcess(He3InelasticScattering); -// pmanager -> AddDiscreteProcess(elastic); - - // Other neutron processes - - //Hadron Capture + // Pion Minus + particle = G4PionMinus::PionMinus(); + pmanager = particle -> GetProcessManager(); + // Define the inelastic process for pions minus + G4PionMinusInelasticProcess* thePionMinusInelasticProcess = new G4PionMinusInelasticProcess("inelastic"); + // Register the inelastic model for pion minus + thePionMinusInelasticProcess -> RegisterMe(thePreEquilib); + // Active the inelastic process for pion minus + pmanager -> AddDiscreteProcess(thePionMinusInelasticProcess); + // Active Absorption process for pion minus + pmanager -> AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); + pmanager -> AddDiscreteProcess(elastic); + + //HADRON CAPTURE + // Process for capture of neutral hadrons G4HadronCaptureProcess* neutronCapture = new G4HadronCaptureProcess(); + // Final state production model for capture of neutral hadrons in nuclei G4LCapture* capture_model = new G4LCapture(); + // Set the energy range for the capture model capture_model -> SetMinEnergy(neutronLowLimit); capture_model -> SetMaxEnergy(neutronHighLimit); + // Register the capture model neutronCapture -> RegisterMe(capture_model); + // Active the neutron capture process pmanager -> AddDiscreteProcess(neutronCapture); - //Fission + //FISSION + // Process for induced fission G4HadronFissionProcess* fission = new G4HadronFissionProcess(); + //Final state production model for induced fission G4LFission* fission_model = new G4LFission(); + // Set the energy range for the fission model fission_model -> SetMinEnergy(neutronLowLimit); fission_model -> SetMaxEnergy(neutronHighLimit); + // Register the fission model fission -> RegisterMe(fission_model); - pmanager -> AddDiscreteProcess(fission); - + // Active the fission process + pmanager -> AddDiscreteProcess(fission); } diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundFermi.cc b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundFermi.cc new file mode 100644 index 0000000000..828bc644d0 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundFermi.cc @@ -0,0 +1,298 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonPrecompoundFermi.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyProtonPrecompoundFermi.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4Material.hh" +#include "G4LElastic.hh" +#include "G4BinaryCascade.hh" +#include "G4CascadeInterface.hh" +#include "G4PionPlusInelasticProcess.hh" +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4HEPionPlusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4PiMinusAbsorptionAtRest.hh" +#include "G4AntiProtonInelasticProcess.hh" +#include "G4LEAntiProtonInelastic.hh" +#include "G4HEAntiProtonInelastic.hh" +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4FermiBreakUp.hh" +#include "G4PiNuclearCrossSection.hh" +// +// +// PRECOMPOUND + FERMI BREAKUP PHYSICS LIST +// +// ELASTIC SCATTERING FOR ALL THE HADRONS AND IONS +// INELASTIC SCATTERING: +// * PRECOMPOUND PHYSICS LIST with DEFAULT EVAPORATION MODEL + FERMI BREAK-UP +// * PRECOMPOUND + EVAPORATION + FERMI BREAK-UP FOR PROTONS, NEUTRONS AND PIONS +// * LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +// FOR DEUTERON, TRITON, HE3, ALPHA +// * FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +// +// +HadrontherapyProtonPrecompoundFermi::HadrontherapyProtonPrecompoundFermi(const G4String& name): + G4VPhysicsConstructor(name) +{ + // Inelastic process, energy limits + + // Protons, neutrons and pions + // Energy limit of the precompound model + precompoundLowLimit = 0.*MeV; + precompoundHighLimit = 300.*MeV; + + // Energy limit of the neutron fission and capture + neutronLowLimit = 0.*TeV; + neutronHighLimit = 100.*TeV; + + // Ions + // Energy limit of the binary ion model + binaryLightIonLowLimit = 80.*MeV; + binaryLightIonHighLimit = 40.*GeV; + + // Energy limit of the LEP model for ions + LEPHighLimit = 100.*MeV; + + //targetZ should vary between 1 and 8 + targetZ = 1; + targetA = 2 * targetZ; + +} + +HadrontherapyProtonPrecompoundFermi::~HadrontherapyProtonPrecompoundFermi() +{} + +void HadrontherapyProtonPrecompoundFermi::ConstructProcess() +{ + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; + + // LOW ENERGY ELASTIC SCATTERING + // FOR PROTON, NEUTRON, IONS + G4LElastic* elastic_Model = new G4LElastic(); + G4HadronElasticProcess* elastic = new G4HadronElasticProcess(); + elastic -> RegisterMe(elastic_Model); + + // FERMI BREAK-UP MODEL + G4FermiBreakUp* breakup = new G4FermiBreakUp(); + // Set the Fermi break up model + theHandler.SetFermiModel(breakup); + // fix the target A and Z; + theHandler.SetMaxAandZForFermiBreakUp(targetA,targetZ); + + // INELASTIC SCATTERING + // Binary Cascade + G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction(); + // Set the min and max energy for the Binary Cascade + theBC -> SetMinEnergy(binaryLightIonLowLimit); + theBC -> SetMaxEnergy(binaryLightIonHighLimit); + + // TRIPATHI CROSS SECTION + // Implementation of formulas in analogy to NASA technical paper 3621 by + // Tripathi, et al. Cross-sections for ion ion scattering + G4TripathiCrossSection* TripathiCrossSection = new G4TripathiCrossSection; + + // IONS SHEN CROSS SECTION + // Implementation of formulas + // Shen et al. Nuc. Phys. A 491 130 (1989) + // Total Reaction Cross Section for Heavy-Ion Collisions + G4IonsShenCrossSection* aShen = new G4IonsShenCrossSection; + +//-------------------------------------------------------------------------------------- + + // Proton PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION)+ FERMI BREAK-UP + particle = G4Proton::Proton(); + pmanager = particle->GetProcessManager(); + + G4PreCompoundModel* thePreEquilib = new G4PreCompoundModel(&theHandler); + // Set the range of minimum and maximum energy value + thePreEquilib -> SetMinEnergy(precompoundLowLimit); + thePreEquilib -> SetMaxEnergy(precompoundHighLimit); + // Model Registration + theIPProton.RegisterMe(thePreEquilib); + // Active the Cross-sections for proton nuclear scattering up to 20 GeV + theIPProton.AddDataSet(&thePXSec); + // Active the proton inelastic scattering using the precompound model + pmanager -> AddDiscreteProcess(&theIPProton); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // deuteron + particle = G4Deuteron::Deuteron(); + pmanager = particle -> GetProcessManager(); + + // Final state production model for Deuteron inelastic scattering below 100 MeV + G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic; + // Set the maximum energy for LEP model + theDIModel -> SetMaxEnergy(LEPHighLimit); + // Active the Tripathi and aShen Cross Section + theIPdeuteron.AddDataSet(TripathiCrossSection); + theIPdeuteron.AddDataSet(aShen); + // Register the Deuteron Inelastic and Binary Cascade Model + theIPdeuteron.RegisterMe(theDIModel); + theIPdeuteron.RegisterMe(theBC); + // Active the deuteron inelastic scattering using the deuteron inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPdeuteron); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // triton + particle = G4Triton::Triton(); + pmanager = particle->GetProcessManager(); + + // Final state production model for Triton inelastic scattering below 100 MeV + G4LETritonInelastic* theTIModel = new G4LETritonInelastic; + // Set the maximum energy for LEP model + theTIModel -> SetMaxEnergy(LEPHighLimit); + // Active the Tripathi and aShen Cross Section + theIPtriton.AddDataSet(TripathiCrossSection); + theIPtriton.AddDataSet(aShen); + // Register the Triton Inelastic and Binary Cascade Model + theIPtriton.RegisterMe(theTIModel); + theIPtriton.RegisterMe(theBC); + // Active the triton inelastic scattering using the triton inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPtriton); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // alpha + particle = G4Alpha::Alpha(); + pmanager = particle->GetProcessManager(); + // Final state production model for Alpha inelastic scattering below 20 GeV + G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic; + // Set the maximum energy for LEP model + theAIModel -> SetMaxEnergy(LEPHighLimit); + // Register the Triton Inelastic and Binary Cascade Model + theIPalpha.AddDataSet(TripathiCrossSection); + theIPalpha.AddDataSet(aShen); + // Register the Alpha Inelastic and Binary Cascade Model + theIPalpha.RegisterMe(theAIModel); + theIPalpha.RegisterMe(theBC); + // Active the alpha inelastic scattering using the alpha inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPalpha); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // He3 + particle = G4He3::He3(); + pmanager = particle->GetProcessManager(); + // Binary Cascade inelastic scattering for ions + G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction; + // Inelastic Scattering for ions + G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle); + // Active the Tripathi and aShen Cross Section + theIPHe3 -> AddDataSet(TripathiCrossSection); + theIPHe3 -> AddDataSet(aShen); + // Register the Alpha Binary Cascade Model + theIPHe3 -> RegisterMe(theGenIonBC); + // Active the Inelastic Process for He3 + pmanager -> AddDiscreteProcess(theIPHe3); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // Neutron + particle = G4Neutron::Neutron(); + pmanager = particle->GetProcessManager(); + // Register the Precompound model + theIPNeutron.RegisterMe(thePreEquilib); + // Active the Cross-sections for neutron nuclear scattering from 14 MeV up to 20 GeV + theIPNeutron.AddDataSet(&theNXSec); + // Active the neutron inelastic process + pmanager -> AddDiscreteProcess(&theIPNeutron); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // Pions plus + particle = G4PionPlus::PionPlus(); + pmanager = particle -> GetProcessManager(); + // Define the inelastic process for pions plus + G4PionPlusInelasticProcess* thePionPlusInelasticProcess = new G4PionPlusInelasticProcess("inelastic"); + // Register the Low Energy Inelastic Model for pions plus + thePionPlusInelasticProcess -> RegisterMe(thePreEquilib); + // Active the inelastic process for pions plus + pmanager->AddDiscreteProcess(thePionPlusInelasticProcess); + pmanager -> AddDiscreteProcess(elastic); + + // Pion Minus + particle = G4PionMinus::PionMinus(); + pmanager = particle -> GetProcessManager(); + // Define the inelastic process for pions minus + G4PionMinusInelasticProcess* thePionMinusInelasticProcess = new G4PionMinusInelasticProcess("inelastic"); + // Register the inelastic model for pion minus + thePionMinusInelasticProcess -> RegisterMe(thePreEquilib); + // Active the inelastic process for pion minus + pmanager -> AddDiscreteProcess(thePionMinusInelasticProcess); + // Active Absorption process for pion minus + pmanager -> AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); + pmanager -> AddDiscreteProcess(elastic); + + //HADRON CAPTURE + // Process for capture of neutral hadrons + G4HadronCaptureProcess* neutronCapture = new G4HadronCaptureProcess(); + // Final state production model for capture of neutral hadrons in nuclei + G4LCapture* capture_model = new G4LCapture(); + // Set the energy range for the capture model + capture_model -> SetMinEnergy(neutronLowLimit); + capture_model -> SetMaxEnergy(neutronHighLimit); + // Register the capture model + neutronCapture -> RegisterMe(capture_model); + // Active the neutron capture process + pmanager -> AddDiscreteProcess(neutronCapture); + + //FISSION + // Process for induced fission + G4HadronFissionProcess* fission = new G4HadronFissionProcess(); + //Final state production model for induced fission + G4LFission* fission_model = new G4LFission(); + // Set the energy range for the fission model + fission_model -> SetMinEnergy(neutronLowLimit); + fission_model -> SetMaxEnergy(neutronHighLimit); + // Register the fission model + fission -> RegisterMe(fission_model); + // Active the fission process + pmanager -> AddDiscreteProcess(fission); +} + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundGEM.cc b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundGEM.cc new file mode 100644 index 0000000000..d46401fd71 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundGEM.cc @@ -0,0 +1,291 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonPrecompoundGEM.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyProtonPrecompoundGEM.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4Material.hh" +#include "G4LElastic.hh" +#include "G4BinaryCascade.hh" +#include "G4CascadeInterface.hh" +#include "G4PionPlusInelasticProcess.hh" +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4HEPionPlusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4PiMinusAbsorptionAtRest.hh" +#include "G4AntiProtonInelasticProcess.hh" +#include "G4LEAntiProtonInelastic.hh" +#include "G4HEAntiProtonInelastic.hh" +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4Evaporation.hh" +#include "G4ExcitationHandler.hh" +// +// +// HADRONIC PHYSICS LIST +// +// - ELASTIC SCATTERING FOR ALL THE HADRONS AND IONS +// - INELASTIC SCATTERING: +// * PRECOMPOUND PHYSICS LIST with GEM EVAPORATION MODEL +// * PRECOMPOUND + EVAPORATION(GEM MODEL) NO FERMI BREAK-UP FOR PROTONS, NEUTRONS AND PIONS +// * LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +// FOR DEUTERON, TRITON, HE3, ALPHA +// * FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +// +// +HadrontherapyProtonPrecompoundGEM::HadrontherapyProtonPrecompoundGEM(const G4String& name): + G4VPhysicsConstructor(name) +{ + // Inelastic process, energy limits + + // Protons, neutrons and pions + // Energy limit of the precompound model + precompoundLowLimit = 0.*MeV; + precompoundHighLimit = 300.*MeV; + + // Energy limit of the neutron fission and capture + neutronLowLimit = 0.*TeV; + neutronHighLimit = 100.*TeV; + + // Ions + // Energy limit of the binary ion model + binaryLightIonLowLimit = 80.*MeV; + binaryLightIonHighLimit = 40.*GeV; + + // Energy limit of the LEP model for ions + LEPHighLimit = 100.*MeV; +} + +HadrontherapyProtonPrecompoundGEM::~HadrontherapyProtonPrecompoundGEM() +{} + +void HadrontherapyProtonPrecompoundGEM::ConstructProcess() +{ + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; + + // LOW ENERGY ELASTIC SCATTERING + // FOR PROTON, NEUTRON, IONS + G4LElastic* elastic_Model = new G4LElastic(); + G4HadronElasticProcess* elastic = new G4HadronElasticProcess(); + elastic -> RegisterMe(elastic_Model); + + // GEM EVAPORATION MODEL + G4Evaporation* evaporation = new G4Evaporation(); + evaporation -> SetGEMChannel(); + theHandler.SetEvaporation(evaporation); + + // INELASTIC SCATTERING + // Binary Cascade + G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction(); + // Set the min and max energy for the Binary Cascade + theBC -> SetMinEnergy(binaryLightIonLowLimit); + theBC -> SetMaxEnergy(binaryLightIonHighLimit); + + // TRIPATHI CROSS SECTION + // Implementation of formulas in analogy to NASA technical paper 3621 by + // Tripathi, et al. Cross-sections for ion ion scattering + G4TripathiCrossSection* TripathiCrossSection = new G4TripathiCrossSection; + + // IONS SHEN CROSS SECTION + // Implementation of formulas + // Shen et al. Nuc. Phys. A 491 130 (1989) + // Total Reaction Cross Section for Heavy-Ion Collisions + G4IonsShenCrossSection* aShen = new G4IonsShenCrossSection; + +//-------------------------------------------------------------------------------------- + + // Proton PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION)+ FERMI BREAK-UP + particle = G4Proton::Proton(); + pmanager = particle->GetProcessManager(); + + G4PreCompoundModel* thePreEquilib = new G4PreCompoundModel(&theHandler); + // Set the range of minimum and maximum energy value + thePreEquilib -> SetMinEnergy(precompoundLowLimit); + thePreEquilib -> SetMaxEnergy(precompoundHighLimit); + // Model Registration + theIPProton.RegisterMe(thePreEquilib); + // Active the Cross-sections for proton nuclear scattering up to 20 GeV + theIPProton.AddDataSet(&thePXSec); + // Active the proton inelastic scattering using the precompound model + pmanager -> AddDiscreteProcess(&theIPProton); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // deuteron + particle = G4Deuteron::Deuteron(); + pmanager = particle -> GetProcessManager(); + + // Final state production model for Deuteron inelastic scattering below 100 MeV + G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic; + // Set the maximum energy for LEP model + theDIModel -> SetMaxEnergy(LEPHighLimit); + // Active the Tripathi and aShen Cross Section + theIPdeuteron.AddDataSet(TripathiCrossSection); + theIPdeuteron.AddDataSet(aShen); + // Register the Deuteron Inelastic and Binary Cascade Model + theIPdeuteron.RegisterMe(theDIModel); + theIPdeuteron.RegisterMe(theBC); + // Active the deuteron inelastic scattering using the deuteron inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPdeuteron); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // triton + particle = G4Triton::Triton(); + pmanager = particle->GetProcessManager(); + + // Final state production model for Triton inelastic scattering below 100 MeV + G4LETritonInelastic* theTIModel = new G4LETritonInelastic; + // Set the maximum energy for LEP model + theTIModel -> SetMaxEnergy(LEPHighLimit); + // Active the Tripathi and aShen Cross Section + theIPtriton.AddDataSet(TripathiCrossSection); + theIPtriton.AddDataSet(aShen); + // Register the Triton Inelastic and Binary Cascade Model + theIPtriton.RegisterMe(theTIModel); + theIPtriton.RegisterMe(theBC); + // Active the triton inelastic scattering using the triton inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPtriton); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // alpha + particle = G4Alpha::Alpha(); + pmanager = particle->GetProcessManager(); + // Final state production model for Alpha inelastic scattering below 20 GeV + G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic; + // Set the maximum energy for LEP model + theAIModel -> SetMaxEnergy(LEPHighLimit); + // Register the Triton Inelastic and Binary Cascade Model + theIPalpha.AddDataSet(TripathiCrossSection); + theIPalpha.AddDataSet(aShen); + // Register the Alpha Inelastic and Binary Cascade Model + theIPalpha.RegisterMe(theAIModel); + theIPalpha.RegisterMe(theBC); + // Active the alpha inelastic scattering using the alpha inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPalpha); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // He3 + particle = G4He3::He3(); + pmanager = particle->GetProcessManager(); + // Binary Cascade inelastic scattering for ions + G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction; + // Inelastic Scattering for ions + G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle); + // Active the Tripathi and aShen Cross Section + theIPHe3 -> AddDataSet(TripathiCrossSection); + theIPHe3 -> AddDataSet(aShen); + // Register the Alpha Binary Cascade Model + theIPHe3 -> RegisterMe(theGenIonBC); + // Active the Inelastic Process for He3 + pmanager -> AddDiscreteProcess(theIPHe3); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // Neutron + particle = G4Neutron::Neutron(); + pmanager = particle->GetProcessManager(); + // Register the Precompound model + theIPNeutron.RegisterMe(thePreEquilib); + // Active the Cross-sections for neutron nuclear scattering from 14 MeV up to 20 GeV + theIPNeutron.AddDataSet(&theNXSec); + // Active the neutron inelastic process + pmanager -> AddDiscreteProcess(&theIPNeutron); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // Pions plus + particle = G4PionPlus::PionPlus(); + pmanager = particle -> GetProcessManager(); + // Define the inelastic process for pions plus + G4PionPlusInelasticProcess* thePionPlusInelasticProcess = new G4PionPlusInelasticProcess("inelastic"); + // Register the Low Energy Inelastic Model for pions plus + thePionPlusInelasticProcess -> RegisterMe(thePreEquilib); + // Active the inelastic process for pions plus + pmanager->AddDiscreteProcess(thePionPlusInelasticProcess); + pmanager -> AddDiscreteProcess(elastic); + + // Pion Minus + particle = G4PionMinus::PionMinus(); + pmanager = particle -> GetProcessManager(); + // Define the inelastic process for pions minus + G4PionMinusInelasticProcess* thePionMinusInelasticProcess = new G4PionMinusInelasticProcess("inelastic"); + // Register the inelastic model for pion minus + thePionMinusInelasticProcess -> RegisterMe(thePreEquilib); + // Active the inelastic process for pion minus + pmanager -> AddDiscreteProcess(thePionMinusInelasticProcess); + // Active Absorption process for pion minus + pmanager -> AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); + pmanager -> AddDiscreteProcess(elastic); + + //HADRON CAPTURE + // Process for capture of neutral hadrons + G4HadronCaptureProcess* neutronCapture = new G4HadronCaptureProcess(); + // Final state production model for capture of neutral hadrons in nuclei + G4LCapture* capture_model = new G4LCapture(); + // Set the energy range for the capture model + capture_model -> SetMinEnergy(neutronLowLimit); + capture_model -> SetMaxEnergy(neutronHighLimit); + // Register the capture model + neutronCapture -> RegisterMe(capture_model); + // Active the neutron capture process + pmanager -> AddDiscreteProcess(neutronCapture); + + //FISSION + // Process for induced fission + G4HadronFissionProcess* fission = new G4HadronFissionProcess(); + //Final state production model for induced fission + G4LFission* fission_model = new G4LFission(); + // Set the energy range for the fission model + fission_model -> SetMinEnergy(neutronLowLimit); + fission_model -> SetMaxEnergy(neutronHighLimit); + // Register the fission model + fission -> RegisterMe(fission_model); + // Active the fission process + pmanager -> AddDiscreteProcess(fission); +} + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundGEMFermi.cc b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundGEMFermi.cc new file mode 100644 index 0000000000..1f75fe3ba4 --- /dev/null +++ b/examples/advanced/hadrontherapy/src/HadrontherapyProtonPrecompoundGEMFermi.cc @@ -0,0 +1,304 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// $Id: HadrontherapyProtonPrecompoundGEMFermi.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: +// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- + +#include "HadrontherapyProtonPrecompoundGEMFermi.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4Material.hh" +#include "G4LElastic.hh" +#include "G4BinaryCascade.hh" +#include "G4CascadeInterface.hh" +#include "G4PionPlusInelasticProcess.hh" +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4HEPionPlusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4PiMinusAbsorptionAtRest.hh" +#include "G4AntiProtonInelasticProcess.hh" +#include "G4LEAntiProtonInelastic.hh" +#include "G4HEAntiProtonInelastic.hh" +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4Evaporation.hh" +#include "G4ExcitationHandler.hh" +#include "G4FermiBreakUp.hh" + +// +// +// HADRONIC PHYSICS LIST +// +// - ELASTIC SCATTERING FOR ALL THE HADRONS AND IONS +// - INELASTIC SCATTERING: +// * PRECOMPOUND PHYSICS LIST with GEM EVAPORATION MODEL + FERMI BREAKUP +// * PRECOMPOUND + GEM EVAPORATION MODEL + FERMI BREAK-UP FOR PROTONS, NEUTRONS AND PIONS +// * LEP MODEL UP TO 100 MEV AND BINARY ION MODEL BETWEEN 80 MEV AND 40. GEV +// FOR DEUTERON, TRITON, HE3, ALPHA +// * FISSION AND HADRON CAPTURE FOR NEUTRONS BETWEEN 0. MEV AND 100. TEV +// +// +HadrontherapyProtonPrecompoundGEMFermi::HadrontherapyProtonPrecompoundGEMFermi(const G4String& name): + G4VPhysicsConstructor(name) +{ + // Inelastic process, energy limits + + // Protons, neutrons and pions + // Energy limit of the precompound model + precompoundLowLimit = 0.*MeV; + precompoundHighLimit = 300.*MeV; + + // Energy limit of the neutron fission and capture + neutronLowLimit = 0.*TeV; + neutronHighLimit = 100.*TeV; + + // Ions + // Energy limit of the binary ion model + binaryLightIonLowLimit = 80.*MeV; + binaryLightIonHighLimit = 40.*GeV; + + // Energy limit of the LEP model for ions + LEPHighLimit = 100.*MeV; + + //targetZ should vary between 1 and 8 + targetZ = 1; + targetA = 2 * targetZ; +} + +HadrontherapyProtonPrecompoundGEMFermi::~HadrontherapyProtonPrecompoundGEMFermi() +{} + +void HadrontherapyProtonPrecompoundGEMFermi::ConstructProcess() +{ + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; + + // LOW ENERGY ELASTIC SCATTERING + // FOR PROTON, NEUTRON, IONS + G4LElastic* elastic_Model = new G4LElastic(); + G4HadronElasticProcess* elastic = new G4HadronElasticProcess(); + elastic -> RegisterMe(elastic_Model); + + // GEM EVAPORATION MODEL + G4Evaporation* evaporation = new G4Evaporation(); + evaporation -> SetGEMChannel(); + theHandler.SetEvaporation(evaporation); + + // FERMI BREAK-UP MODEL + G4FermiBreakUp* breakup = new G4FermiBreakUp(); + // Set the Fermi break up model + theHandler.SetFermiModel(breakup); + // fix the target A and Z; + theHandler.SetMaxAandZForFermiBreakUp(targetA,targetZ); + + // INELASTIC SCATTERING + // Binary Cascade + G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction(); + // Set the min and max energy for the Binary Cascade + theBC -> SetMinEnergy(binaryLightIonLowLimit); + theBC -> SetMaxEnergy(binaryLightIonHighLimit); + + // TRIPATHI CROSS SECTION + // Implementation of formulas in analogy to NASA technical paper 3621 by + // Tripathi, et al. Cross-sections for ion ion scattering + G4TripathiCrossSection* TripathiCrossSection = new G4TripathiCrossSection; + + // IONS SHEN CROSS SECTION + // Implementation of formulas + // Shen et al. Nuc. Phys. A 491 130 (1989) + // Total Reaction Cross Section for Heavy-Ion Collisions + G4IonsShenCrossSection* aShen = new G4IonsShenCrossSection; + +//-------------------------------------------------------------------------------------- + + // Proton PRECOMPOUND + EVAPORATION(DEFAULT EVAPORATION)+ FERMI BREAK-UP + particle = G4Proton::Proton(); + pmanager = particle->GetProcessManager(); + + G4PreCompoundModel* thePreEquilib = new G4PreCompoundModel(&theHandler); + // Set the range of minimum and maximum energy value + thePreEquilib -> SetMinEnergy(precompoundLowLimit); + thePreEquilib -> SetMaxEnergy(precompoundHighLimit); + // Model Registration + theIPProton.RegisterMe(thePreEquilib); + // Active the Cross-sections for proton nuclear scattering up to 20 GeV + theIPProton.AddDataSet(&thePXSec); + // Active the proton inelastic scattering using the precompound model + pmanager -> AddDiscreteProcess(&theIPProton); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // deuteron + particle = G4Deuteron::Deuteron(); + pmanager = particle -> GetProcessManager(); + + // Final state production model for Deuteron inelastic scattering below 100 MeV + G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic; + // Set the maximum energy for LEP model + theDIModel -> SetMaxEnergy(LEPHighLimit); + // Active the Tripathi and aShen Cross Section + theIPdeuteron.AddDataSet(TripathiCrossSection); + theIPdeuteron.AddDataSet(aShen); + // Register the Deuteron Inelastic and Binary Cascade Model + theIPdeuteron.RegisterMe(theDIModel); + theIPdeuteron.RegisterMe(theBC); + // Active the deuteron inelastic scattering using the deuteron inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPdeuteron); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // triton + particle = G4Triton::Triton(); + pmanager = particle->GetProcessManager(); + + // Final state production model for Triton inelastic scattering below 100 MeV + G4LETritonInelastic* theTIModel = new G4LETritonInelastic; + // Set the maximum energy for LEP model + theTIModel -> SetMaxEnergy(LEPHighLimit); + // Active the Tripathi and aShen Cross Section + theIPtriton.AddDataSet(TripathiCrossSection); + theIPtriton.AddDataSet(aShen); + // Register the Triton Inelastic and Binary Cascade Model + theIPtriton.RegisterMe(theTIModel); + theIPtriton.RegisterMe(theBC); + // Active the triton inelastic scattering using the triton inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPtriton); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // alpha + particle = G4Alpha::Alpha(); + pmanager = particle->GetProcessManager(); + // Final state production model for Alpha inelastic scattering below 20 GeV + G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic; + // Set the maximum energy for LEP model + theAIModel -> SetMaxEnergy(LEPHighLimit); + // Register the Triton Inelastic and Binary Cascade Model + theIPalpha.AddDataSet(TripathiCrossSection); + theIPalpha.AddDataSet(aShen); + // Register the Alpha Inelastic and Binary Cascade Model + theIPalpha.RegisterMe(theAIModel); + theIPalpha.RegisterMe(theBC); + // Active the alpha inelastic scattering using the alpha inelastic and binary cascade model + pmanager -> AddDiscreteProcess(&theIPalpha); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // He3 + particle = G4He3::He3(); + pmanager = particle->GetProcessManager(); + // Binary Cascade inelastic scattering for ions + G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction; + // Inelastic Scattering for ions + G4HadronInelasticProcess* theIPHe3 = new G4HadronInelasticProcess("He3Inelastic",particle); + // Active the Tripathi and aShen Cross Section + theIPHe3 -> AddDataSet(TripathiCrossSection); + theIPHe3 -> AddDataSet(aShen); + // Register the Alpha Binary Cascade Model + theIPHe3 -> RegisterMe(theGenIonBC); + // Active the Inelastic Process for He3 + pmanager -> AddDiscreteProcess(theIPHe3); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // Neutron + particle = G4Neutron::Neutron(); + pmanager = particle->GetProcessManager(); + // Register the Precompound model + theIPNeutron.RegisterMe(thePreEquilib); + // Active the Cross-sections for neutron nuclear scattering from 14 MeV up to 20 GeV + theIPNeutron.AddDataSet(&theNXSec); + // Active the neutron inelastic process + pmanager -> AddDiscreteProcess(&theIPNeutron); + // Active the Hadron Elastic Process + pmanager -> AddDiscreteProcess(elastic); + + // Pions plus + particle = G4PionPlus::PionPlus(); + pmanager = particle -> GetProcessManager(); + // Define the inelastic process for pions plus + G4PionPlusInelasticProcess* thePionPlusInelasticProcess = new G4PionPlusInelasticProcess("inelastic"); + // Register the Low Energy Inelastic Model for pions plus + thePionPlusInelasticProcess -> RegisterMe(thePreEquilib); + // Active the inelastic process for pions plus + pmanager->AddDiscreteProcess(thePionPlusInelasticProcess); + pmanager -> AddDiscreteProcess(elastic); + + // Pion Minus + particle = G4PionMinus::PionMinus(); + pmanager = particle -> GetProcessManager(); + // Define the inelastic process for pions minus + G4PionMinusInelasticProcess* thePionMinusInelasticProcess = new G4PionMinusInelasticProcess("inelastic"); + // Register the inelastic model for pion minus + thePionMinusInelasticProcess -> RegisterMe(thePreEquilib); + // Active the inelastic process for pion minus + pmanager -> AddDiscreteProcess(thePionMinusInelasticProcess); + // Active Absorption process for pion minus + pmanager -> AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); + pmanager -> AddDiscreteProcess(elastic); + + //HADRON CAPTURE + // Process for capture of neutral hadrons + G4HadronCaptureProcess* neutronCapture = new G4HadronCaptureProcess(); + // Final state production model for capture of neutral hadrons in nuclei + G4LCapture* capture_model = new G4LCapture(); + // Set the energy range for the capture model + capture_model -> SetMinEnergy(neutronLowLimit); + capture_model -> SetMaxEnergy(neutronHighLimit); + // Register the capture model + neutronCapture -> RegisterMe(capture_model); + // Active the neutron capture process + pmanager -> AddDiscreteProcess(neutronCapture); + + //FISSION + // Process for induced fission + G4HadronFissionProcess* fission = new G4HadronFissionProcess(); + //Final state production model for induced fission + G4LFission* fission_model = new G4LFission(); + // Set the energy range for the fission model + fission_model -> SetMinEnergy(neutronLowLimit); + fission_model -> SetMaxEnergy(neutronHighLimit); + // Register the fission model + fission -> RegisterMe(fission_model); + // Active the fission process + pmanager -> AddDiscreteProcess(fission); +} + + + diff --git a/examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc b/examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc index 83eb1137b6..a8b21f8d28 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapyRunAction.cc @@ -53,13 +53,30 @@ HadrontherapyRunAction::~HadrontherapyRunAction() { } -void HadrontherapyRunAction::BeginOfRunAction(const G4Run*) +void HadrontherapyRunAction::BeginOfRunAction(const G4Run* aRun) { G4RunManager::GetRunManager()->SetRandomNumberStore(true); + G4cout << "Run " << aRun -> GetRunID() << " starts ..." << G4endl; + + electromagnetic = 0; + hadronic = 0; } -void HadrontherapyRunAction::EndOfRunAction(const G4Run*) +void HadrontherapyRunAction::EndOfRunAction(const G4Run* aRun) { + G4cout << " Summary of Run " << aRun -> GetRunID() <<" :"<< G4endl; + G4cout << "Number of electromagnetic processes of primary particles in the phantom:" + << electromagnetic << G4endl; + G4cout << "Number of hadronic processes of primary particles in the phantom:" + << hadronic << G4endl; +} +void HadrontherapyRunAction::AddEMProcess() +{ + electromagnetic += 1; +} +void HadrontherapyRunAction::AddHadronicProcess() +{ + hadronic += 1; } diff --git a/examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc b/examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc index fd2b5d1639..e02e0250b5 100644 --- a/examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc +++ b/examples/advanced/hadrontherapy/src/HadrontherapySteppingAction.cc @@ -34,30 +34,111 @@ // * cirrone@lns.infn.it // ---------------------------------------------------------------------------- -#include "HadrontherapyDetectorConstruction.hh" -#include "G4EnergyLossTables.hh" #include "G4SteppingManager.hh" #include "G4TrackVector.hh" #include "HadrontherapySteppingAction.hh" -#include "HadrontherapyPrimaryGeneratorAction.hh" -#include "HadrontherapyEventAction.hh" -#include "HadrontherapyRunAction.hh" -#include "G4Event.hh" -#include "G4EventManager.hh" #include "G4ios.hh" -#include -#include "G4UImanager.hh" +#include "G4SteppingManager.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" +#include "G4TrackStatus.hh" +#include "G4TrackVector.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" -HadrontherapySteppingAction::HadrontherapySteppingAction() +#ifdef G4ANALYSIS_USE +#include "HadrontherapyAnalysisManager.hh" +#endif + +#include "HadrontherapyRunAction.hh" + +HadrontherapySteppingAction::HadrontherapySteppingAction( HadrontherapyRunAction* run) { + runAction = run; } HadrontherapySteppingAction::~HadrontherapySteppingAction() { } -void HadrontherapySteppingAction::UserSteppingAction(const G4Step*) +void HadrontherapySteppingAction::UserSteppingAction(const G4Step* aStep) { + // Electromagnetic and hadronic processes of primary particles in the phantom + + if ((aStep -> GetTrack() -> GetTrackID() == 1) && + (aStep -> GetTrack() -> GetVolume() -> GetName() == "PhantomPhys") && + (aStep -> GetPostStepPoint() -> GetProcessDefinedStep() != NULL)) + { + G4String process = aStep -> GetPostStepPoint() -> + GetProcessDefinedStep() -> GetProcessName(); + + if ((process == "Transportation") || (process == "StepLimiter")) {;} + else { + if ((process == "msc") || (process == "hLowEIoni") || (process == "hIoni")) + { + runAction -> AddEMProcess(); + } + else + { + runAction -> AddHadronicProcess(); + + if ( (process != "LElastic") && (process != "ProtonInelastic")) + G4cout << "Warning! Unknown proton process: "<< process << G4endl; + } + } + } + + // Retrieve information about the secondaries originated in the phantom + +#ifdef G4ANALYSIS_USE + G4SteppingManager* steppingManager = fpSteppingManager; + G4Track* theTrack = aStep -> GetTrack(); + + // check if it is alive + if(theTrack-> GetTrackStatus() == fAlive) { return; } + + // Retrieve the secondary particles + G4TrackVector* fSecondary = steppingManager -> GetfSecondary(); + + for(size_t lp1=0;lp1<(*fSecondary).size(); lp1++) + { + G4String volumeName = (*fSecondary)[lp1] -> GetVolume() -> GetName(); + + if (volumeName == "PhantomPhys") + { + G4String secondaryParticleName = (*fSecondary)[lp1]->GetDefinition() -> GetParticleName(); + G4double secondaryParticleKineticEnergy = (*fSecondary)[lp1] -> GetKineticEnergy(); + + HadrontherapyAnalysisManager* analysis = HadrontherapyAnalysisManager::getInstance(); + + if (secondaryParticleName == "e-") + analysis -> electronEnergyDistribution(secondaryParticleKineticEnergy/MeV); + + if (secondaryParticleName == "gamma") + analysis -> gammaEnergyDistribution(secondaryParticleKineticEnergy/MeV); + + if (secondaryParticleName == "deuteron") + analysis -> deuteronEnergyDistribution(secondaryParticleKineticEnergy/MeV); + + if (secondaryParticleName == "triton") + analysis -> tritonEnergyDistribution(secondaryParticleKineticEnergy/MeV); + + if (secondaryParticleName == "alpha") + analysis -> alphaEnergyDistribution(secondaryParticleKineticEnergy/MeV); + + G4double z = (*fSecondary)[lp1]-> GetDynamicParticle() -> GetDefinition() -> GetPDGCharge(); + if (z > 0.) + { + G4int a = (*fSecondary)[lp1]-> GetDynamicParticle() -> GetDefinition() -> GetBaryonNumber(); + G4int electronOccupancy = (*fSecondary)[lp1] -> GetDynamicParticle() -> GetTotalOccupancy(); + // If a generic ion is originated in the phantom, its baryonic number, PDG charge, + // total number of electrons in the orbitals are stored in a ntuple + analysis -> genericIonInformation(a, z, electronOccupancy, secondaryParticleKineticEnergy/MeV); + } + } + } +#endif } diff --git a/examples/advanced/hadrontherapy/visualisationMacro.mac b/examples/advanced/hadrontherapy/visualisationMacro.mac index 1dc2f19159..69ff661744 100644 --- a/examples/advanced/hadrontherapy/visualisationMacro.mac +++ b/examples/advanced/hadrontherapy/visualisationMacro.mac @@ -45,20 +45,18 @@ /vis/scene/create /vis/open OGLIX /vis/viewer/flush + /vis/viewer/set/viewpointThetaPhi 30 130 deg -/vis/viewer/zoom 3 -/vis/viewer/pan -10 80 cm +/vis/viewer/zoom 1 +/vis/viewer/pan -10 40 cm /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate /vis/viewer/update # SETTING FOR THE RANGE SHIFTER -/beamLine/RangeShifter/thickness 4 cm -/beamLine/RangeShifter/RSMat Water - +/beamLine/RangeShifter/thickness 0.001 mm +/beamLine/RangeShifter/RSMat Air #/tracking/verbose 1 /vis/viewer/flush -#/run/beamOn 1 - -#/run/beamOn 5000 +/run/beamOn 10 diff --git a/examples/advanced/lAr_calorimeter/History b/examples/advanced/lAr_calorimeter/History index 6a354f7a63..f4993a8180 100644 --- a/examples/advanced/lAr_calorimeter/History +++ b/examples/advanced/lAr_calorimeter/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.12 2005/05/03 10:05:48 allison Exp $ +$Id: History,v 1.13 2005/12/08 16:39:16 ribon Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,10 @@ $Id: History,v 1.12 2005/05/03 10:05:48 allison Exp $ Category History file --------------------- +08.12.2005 - A.Ribon (lAr_calorimeter-V07-01-00) + Migration to CLHEP namespace. + Removed also old header files. + 3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. diff --git a/examples/advanced/lAr_calorimeter/hadronic_lists.gmk b/examples/advanced/lAr_calorimeter/hadronic_lists.gmk index 648223e331..5707022457 100644 --- a/examples/advanced/lAr_calorimeter/hadronic_lists.gmk +++ b/examples/advanced/lAr_calorimeter/hadronic_lists.gmk @@ -1,4 +1,4 @@ -# $Id: hadronic_lists.gmk,v 1.3 2004/12/13 15:57:28 gcosmo Exp $ +# $Id: hadronic_lists.gmk,v 1.4 2005/10/13 09:38:33 ribon Exp $ # -------------------------------------------------------------- # hadronic physics-lists setup # -------------------------------------------------------------- @@ -21,7 +21,6 @@ EXTRALIBS += -lLHEP # EXTRALIBS += -lLHEP_BIC_HP # EXTRALIBS += -lLHEP_LEAD_HP # EXTRALIBS += -lLHEP_PRECO -# EXTRALIBS += -lQGSP_Model # EXTRALIBS += -lQGSP_BERT # EXTRALIBS += -lLHEP_PRECO_HP EXTRALIBS += -lQGSC diff --git a/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh b/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh index d128ea498f..a0331c9db2 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALCalorHit.hh,v 1.5 2004/11/29 18:03:04 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh b/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh index 139ab870f5..7ad573c1e0 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALEMModuleSD.hh,v 1.7 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh b/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh index f93526f75d..ad78de2e81 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALHadModuleSD.hh,v 1.7 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh b/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh index 81b126366d..15578d4cb8 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALPrimaryGeneratorAction.hh,v 1.5 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh b/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh index 9256d89635..521b4683c4 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALRunAction.hh,v 1.9 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh b/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh index 9c91cecfbb..383d247708 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALSteppingAction.hh,v 1.6 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh b/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh index 422672ba60..5f2d948c7a 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALSteppingVerbose.hh,v 1.5 2004/11/29 18:03:05 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh b/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh index 241d47994c..91824951f7 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALTBEventAction.hh,v 1.10 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh index ad819b3fd5..c5769aa630 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALTestbeamSetupSD.hh,v 1.6 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/lArCal.cc b/examples/advanced/lAr_calorimeter/lArCal.cc index 0dd6fff441..34de9bfb1b 100644 --- a/examples/advanced/lAr_calorimeter/lArCal.cc +++ b/examples/advanced/lAr_calorimeter/lArCal.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: lArCal.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: lArCal.cc,v 1.10 2005/12/08 16:39:16 ribon Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -69,7 +69,7 @@ int main(int argc,char** argv) { // choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new FCALSteppingVerbose); diff --git a/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc b/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc index 5654fcc7ea..ef8949e239 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALCalorHit.cc,v 1.5 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc b/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc index 3feeac71a6..0caa107c9b 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc @@ -50,8 +50,8 @@ #include "G4VisAttributes.hh" #include "G4Colour.hh" -#include "fstream.h" -#include "stdlib.h" +#include +#include FCALEMModule::FCALEMModule() { F1LArGapID = new G4int[2400]; @@ -75,7 +75,7 @@ FCALEMModule::~FCALEMModule(){ void FCALEMModule::InitializeGeometry() { #include "FCALEMModuleParameters.input" - ifstream File + std::ifstream File ("geom_data/FCal1Electrodes.dat"); if(!File) G4cerr << "Failed to open file FCal1Electrodes data file " << G4endl; diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc b/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc index c024c6d0ab..812fd0af01 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: FCALEMModuleSD.cc,v 1.9 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: FCALEMModuleSD.cc,v 1.10 2005/12/08 16:39:16 ribon Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -44,8 +44,8 @@ #include "G4SDManager.hh" #include "G4ios.hh" -#include "iostream.h" -#include "fstream.h" +#include +#include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc b/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc index bfe8bd376f..cd9a6af3e6 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc @@ -50,7 +50,7 @@ #include "G4VisAttributes.hh" #include "G4Colour.hh" -#include "fstream.h" +#include #include "G4ios.hh" @@ -78,7 +78,7 @@ void FCALHadModule::InitializeGeometry() { #include "FCALHadModuleParameters.input" - ifstream File + std::ifstream File ("geom_data/FCal2Electrodes.dat"); if(!File) G4cerr << "Failed to open file FCal2Electrode data file" << G4endl; diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc b/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc index f45fdd2414..529bd197c9 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: FCALHadModuleSD.cc,v 1.7 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: FCALHadModuleSD.cc,v 1.8 2005/12/08 16:39:16 ribon Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -43,8 +43,8 @@ #include "G4SDManager.hh" #include "G4ios.hh" -#include "iostream.h" -#include "fstream.h" +#include +#include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... FCALHadModuleSD::FCALHadModuleSD(G4String name) : G4VSensitiveDetector(name) @@ -108,7 +108,7 @@ void FCALHadModuleSD::EndOfEvent(G4HCofThisEvent*) EvisTileP[NF2Tile] = EvisF2Tile[i]; };}; - G4cout << "Number of F2 tiles with Positive energy : " << NF2Tile << endl; + G4cout << "Number of F2 tiles with Positive energy : " << NF2Tile << G4endl; // Write data in File //------------------- @@ -121,7 +121,7 @@ void FCALHadModuleSD::EndOfEvent(G4HCofThisEvent*) iostemp = std::ios::out|std::ios::app; // std::ios::app; }; - ofstream HadDatafile(FileName, iostemp); + std::ofstream HadDatafile(FileName, iostemp); // EmDatafile.precision(5); HadDatafile << NF2Tile << std::endl; diff --git a/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc b/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc index e55f738e30..de2d29537c 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: FCALPrimaryGeneratorAction.cc,v 1.6 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: FCALPrimaryGeneratorAction.cc,v 1.7 2005/12/08 16:39:16 ribon Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -37,8 +37,8 @@ #include "G4ParticleDefinition.hh" #include "Randomize.hh" -#include "fstream.h" -#include "stdlib.h" +#include +#include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... FCALPrimaryGeneratorAction::FCALPrimaryGeneratorAction() @@ -67,7 +67,7 @@ FCALPrimaryGeneratorAction::FCALPrimaryGeneratorAction() // Read Kinematics from file G4int InEvent = 0; G4String file_name = "data-tracks/tracks-80GeV.dat"; - ifstream Traks_file(file_name); + std::ifstream Traks_file(file_name); if(!Traks_file) G4cerr << "WARNING: Failed to open file " << file_name << G4endl; Traks_file.seekg(0); diff --git a/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc b/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc index 4f4ea94ebe..f2a776e7f9 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALRunAction.cc,v 1.6 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc b/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc index 10a1c117fb..8a5afd7e1b 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: FCALSteppingAction.cc,v 1.5 2004/11/29 18:03:06 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: FCALSteppingAction.cc,v 1.6 2005/12/08 16:39:16 ribon Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -45,7 +45,7 @@ #include "G4ThreeVector.hh" #include "G4ios.hh" -#include "iostream.h" +#include #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -237,7 +237,8 @@ G4double FCALSteppingAction::GetEdepFCAL(G4String FCAL) { } else { if(strcmp(FCAL,"FCALHad") == 0) { return EdepFCALHad;} - }; + } + return 0.0; } diff --git a/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc b/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc index f6594ad4cf..62ae8d0a75 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: FCALSteppingVerbose.cc,v 1.6 2004/11/29 18:03:07 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc b/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc index 1a9de00dea..80f3498f24 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: FCALTBEventAction.cc,v 1.11 2004/11/29 18:03:07 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: FCALTBEventAction.cc,v 1.12 2005/12/08 16:39:16 ribon Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -55,8 +55,8 @@ #include "FCALAnalysisManager.hh" #include "G4ios.hh" -#include "iostream.h" -#include "fstream.h" +#include +#include #ifdef G4ANALYSIS_USE #include @@ -120,7 +120,7 @@ void FCALTBEventAction::EndOfEventAction(const G4Event*) } else { iostemp1 = std::ios::out|std::ios::app; // std::ios::app; }; - ofstream OutTracks(FileName1, iostemp1); + std::ofstream OutTracks(FileName1, iostemp1); OutTracks << NTracksOutOfWorld << G4endl; @@ -154,7 +154,7 @@ void FCALTBEventAction::EndOfEventAction(const G4Event*) iostemp2 = std::ios::out|std::ios::app; // std::ios::app; }; - ofstream SecndTracks(FileName2, iostemp2); + std::ofstream SecndTracks(FileName2, iostemp2); SecndTracks << NSecondaries << std::endl; @@ -183,7 +183,7 @@ void FCALTBEventAction::EndOfEventAction(const G4Event*) iostemp3 = std::ios::out|std::ios::app; // std::ios::app; }; - ofstream EdepFCAL(FileName3, iostemp3); + std::ofstream EdepFCAL(FileName3, iostemp3); G4double EmEdep = StepAction->GetEdepFCAL("FCALEm"); G4double HadEdep = StepAction->GetEdepFCAL("FCALHad"); diff --git a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc index 35a27a67d2..f9731e4e20 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: FCALTestbeamSetupSD.cc,v 1.9 2004/11/29 18:03:07 ribon Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: FCALTestbeamSetupSD.cc,v 1.10 2005/12/08 16:39:16 ribon Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -42,8 +42,8 @@ #include "G4SDManager.hh" #include "G4ios.hh" -#include "iostream.h" -#include "fstream.h" +#include +#include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -152,7 +152,7 @@ void FCALTestbeamSetupSD::EndOfEvent(G4HCofThisEvent*) iostemp = std::ios::out|std::ios::app; }; - ofstream BeamDatafile(FileName, iostemp); + std::ofstream BeamDatafile(FileName, iostemp); // BeamDatafile.precision(5); BeamDatafile << EBeamS1/MeV << " " << EBeamS2/MeV << " " << EBeamS3/MeV << std::endl; diff --git a/examples/advanced/medical_linac/G4History.macro b/examples/advanced/medical_linac/G4History.macro index 59a3452328..873322d32d 100644 --- a/examples/advanced/medical_linac/G4History.macro +++ b/examples/advanced/medical_linac/G4History.macro @@ -1,6 +1,27 @@ /run/verbose 2 /run/initialize +/vis/scene/create +/vis/open OGLIX +/vis/sceneHandler/create OGLIX +/vis/sceneHandler/attach +/vis/viewer/create ! ! 600 +/vis/viewer/refresh +/vis/viewer/update +/vis/viewer/set/viewpointThetaPhi 70 20 deg +/vis/viewer/refresh +/vis/viewer/zoom 1 +/vis/viewer/refresh +/vis/viewer/flush +/vis/viewer/refresh viewer-0 +/vis/viewer/update viewer-0 +/run/initialize /tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate +/Phantom/dimension 15. cm +/Phantom/Nvoxels 150 +/Phantom/maxStep 0.2 mm +/PhantomSD/dimension 15. cm +/PhantomSD/Nvoxels 150 /MLC/leaf_selection a1 /MLC/position 0. cm /MLC/leaf_selection a2 @@ -164,8 +185,10 @@ /Jaws/X1/DistanceFromAxis -4.2 cm /Jaws/X2/DistanceFromAxis 5.2 cm /Jaws/Y1/DistanceFromAxis -6.6 cm -/Jaws/Y2/DistanceFromAxis 6.8. cm +/Jaws/Y2/DistanceFromAxis 6.8 cm /Jaws/update +/vis/scene/notifyHandlers scene-0 /energy 6.0 MeV /sourceType 0.127 MeV +/vis/viewer/update /run/beamOn 1000 diff --git a/examples/advanced/medical_linac/GNUmakefile b/examples/advanced/medical_linac/GNUmakefile index 27ab60b70d..6c05ea4eb5 100644 --- a/examples/advanced/medical_linac/GNUmakefile +++ b/examples/advanced/medical_linac/GNUmakefile @@ -1,5 +1,5 @@ # -------------------------------------------------------------- -# $Id: GNUmakefile,v 1.1 2004/03/18 14:08:38 mpiergen Exp $ +# $Id: GNUmakefile,v 1.2 2005/07/03 23:27:36 mpiergen Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -15,7 +15,6 @@ endif .PHONY: all all: lib bin -include $(G4INSTALL)/config/architecture.gmk include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/advanced/medical_linac/History b/examples/advanced/medical_linac/History index b918f65a89..4354a86752 100644 --- a/examples/advanced/medical_linac/History +++ b/examples/advanced/medical_linac/History @@ -1,4 +1,4 @@ -$Id: History,v 1.10 2005/06/02 13:57:07 mpiergen Exp $ +$Id: History,v 1.17 2005/12/08 13:34:51 mpiergen Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,34 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +08.12.2005 Michela Piergentili , tag medical_linac-V07-01-05 + updated macro for visualization + +07.12.2005 Susanna Guatelli, tag medical_linac-V07-01-04 + The example compiles with CLHEP 2.0.2.2 + +25.11.2005 Michela Piergentili , tag medical_linac-V07-01-03 + update README file, added new methods to messengers + for the selection of the detector features + +25.11.2005 Michela Piergentili , tag medical_linac-V07-01-02 + code maitenance + +24.11.2005 Michela Piergentili , tag medical_linac-V07-01-01 + code maitenance + +24.11.2005 Michela Piergentili , tag medical_linac-V07-01-00 + code maitenance + +13.07.2005 Michela Piergentili, tag medical_linac-V07-00-06 + macro added + +04.07.2005 Michela Piergentili, tag medical_linac-V07-00-05 + code with DIANE, added histograms + +04.07.2005 Michela Piergentili, tag medical_linac-V07-00-04 + code with DIANE + 02.06.2005 Michela Piergentili, tag medical_linac-V07-00-03 code maintenance diff --git a/examples/advanced/medical_linac/MedLinac.cc b/examples/advanced/medical_linac/MedLinac.cc index ee8a309846..48481df8f0 100644 --- a/examples/advanced/medical_linac/MedLinac.cc +++ b/examples/advanced/medical_linac/MedLinac.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinac.cc,v 1.5 2005/05/03 10:21:16 allison Exp $ +// $Id: MedLinac.cc,v 1.9 2005/12/07 14:27:39 guatelli Exp $ // // -------------------------------------------------------------- // GEANT 4 - medical_linac @@ -61,14 +61,15 @@ int main(int argc ,char ** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); G4int seed = time(0); - HepRandom :: setTheSeed(seed); + CLHEP::HepRandom :: setTheSeed(seed); // Construct the default run manager G4RunManager* runManager = new G4RunManager; G4String sensitiveDetectorName = "Phantom"; - MedLinacDetectorConstruction* pDetectorConstruction = MedLinacDetectorConstruction::GetInstance(sensitiveDetectorName); + MedLinacDetectorConstruction* pDetectorConstruction = +MedLinacDetectorConstruction::GetInstance(sensitiveDetectorName); // set mandatory initialization classes @@ -107,25 +108,25 @@ int main(int argc ,char ** argv) // set mandatory user action class runManager->SetUserAction(new MedLinacPrimaryGeneratorAction); - //MedLinacEventAction *pMedLinacEventAction = new MedLinacEventAction(sensitiveDetectorName); MedLinacEventAction *pMedLinacEventAction = new MedLinacEventAction(); runManager->SetUserAction(pMedLinacEventAction); - MedLinacRunAction *pRunAction = new MedLinacRunAction(sensitiveDetectorName); + MedLinacRunAction *pRunAction = new MedLinacRunAction(); runManager->SetUserAction(pRunAction); runManager->SetUserAction(new MedLinacTrackingAction); // Initialize G4 kernel - runManager->Initialize(); + //runManager->Initialize(); // get the pointer to the UI manager G4UImanager* UI = G4UImanager::GetUIpointer(); if (session) // Define UI session for interactive mode. { - G4cout<<" UI session starts ..."<< G4endl; + G4cout<<" UI session starts ..."<< G4endl; + UI -> ApplyCommand("/control/execute vis.mac"); session->SessionStart(); delete session; } @@ -136,9 +137,6 @@ int main(int argc ,char ** argv) G4String fileName = argv[1]; UI->ApplyCommand(command+fileName); } - - - //job termination @@ -153,3 +151,4 @@ int main(int argc ,char ** argv) } + diff --git a/examples/advanced/medical_linac/README b/examples/advanced/medical_linac/README index 3bba912ca6..6f5f673e9f 100644 --- a/examples/advanced/medical_linac/README +++ b/examples/advanced/medical_linac/README @@ -1,4 +1,4 @@ -$Id: README,v 1.5 2005/06/02 12:22:11 mpiergen Exp $ +$Id: README,v 1.6 2005/11/27 13:13:59 mpiergen Exp $ ------------------------------------------------------------------- @@ -104,7 +104,23 @@ or without visualization: 3) $G4WORDIR/bin/Linux-g++/MedLinac -->possible different configurations for interactive mode: + +The user can select the cut of the physics processes: +/PhysicsList/cut 0.2 mm + +The user can select the dimension of the water phantom and the dimension of the phantom's voxels in the detector +construction: +/Phantom/dimension 15. cm +/Phantom/Nvoxels 150/Phantom/maxStep 0.2 mm + +and in the definition of the sensitive detector: +/PhantomSD/dimension 15. cm +/PhantomSD/Nvoxels 150 +The user can select the max step defined in the detector construction: +/Phantom/maxStep 0.2 mm + + The user can select the position of the secondary collimators (the jaws) to obtain the desired field at isocenter: idle>/Jaws/X1/DistanceFromAxis -20. cm @@ -192,6 +208,6 @@ The default cut in range value is 0.1 mm, a bigger cut is associated to the firs for comments, advices, doubts and questions: Michela.Piergentili@ge.infn.it -last modified: Michela Piergentili 24/11/2004 +last modified: Michela Piergentili 24/11/2005 diff --git a/examples/advanced/medical_linac/dawnvis.mac b/examples/advanced/medical_linac/dawnvis.mac index c010023f18..8949e54829 100644 --- a/examples/advanced/medical_linac/dawnvis.mac +++ b/examples/advanced/medical_linac/dawnvis.mac @@ -1,32 +1,29 @@ - -/control/verbose 2 +/PhysicsList/cut 0.2 mm +/control/verbose 1 /control/saveHistory /run/verbose 2 - - /vis/scene/create -#/vis/open OGLIX -/vis/open DAWNFILE -#/vis/open VRML2FILE -/vis/drawVolume -/vis/viewer/update -/vis/viewer/set/viewpointThetaPhi 90 0 deg -/vis/viewer/zoom 1 - +/vis/open DAWNFILE /vis/viewer/flush -# -# draw scene/ -# -# -# for drawing the tracks -/run/initialize +/vis/viewer/set/viewpointThetaPhi 90 180 deg +/vis/viewer/zoom 1.4 /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate +/vis/viewer/update +/run/initialize +/tracking/storeTrajectory 1 +/Phantom/dimension 15. cm +/Phantom/Nvoxels 150 +/Phantom/maxStep 0.2 mm + +/PhantomSD/dimension 15. cm +/PhantomSD/Nvoxels 150 # Multi Leaf + /MLC/leaf_selection a1 /MLC/position 0. cm /MLC/leaf_selection a2 @@ -190,6 +187,8 @@ /MLC/leaf_selection b40 /MLC/position 0. cm + + /Jaws/X1/DistanceFromAxis -4.2 cm /Jaws/X2/DistanceFromAxis 5.2 cm /Jaws/Y1/DistanceFromAxis -6.6 cm @@ -198,6 +197,4 @@ /energy 6.0 MeV /sourceType 0.127 MeV -/vis/viewer/update /run/beamOn 1000 - diff --git a/examples/advanced/medical_linac/include/IG4Simulation.h b/examples/advanced/medical_linac/include/IG4Simulation.h new file mode 100644 index 0000000000..ebb8a6e020 --- /dev/null +++ b/examples/advanced/medical_linac/include/IG4Simulation.h @@ -0,0 +1,57 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +#ifndef IG4SIMULATION_H +#define IG4SIMULATION_H + +/* ========================================== + DIANE - Distributed Analysis Environment + Copyright (C) Jakub T. Moscicki, 2000-2003 + ------------------------------------------ + See $DIANE_TOP/LICENSE for details. + ========================================== +*/ + +# include + +namespace DIANE +{ + +class IG4Simulation +{ + +public: + + virtual void setSeed(int seed) = 0; + virtual bool initialize(int argc, char** argv) = 0; + virtual void executeMacro(std::string macroFileName) = 0; + virtual std::string getOutputFilename() = 0; + + virtual ~IG4Simulation() {} +}; +} + +extern "C" +DIANE::IG4Simulation* createG4Simulation(int); + +#endif + diff --git a/examples/advanced/medical_linac/include/MedLinacAnalysisManager.hh b/examples/advanced/medical_linac/include/MedLinacAnalysisManager.hh index 4a3c9d7838..a967b20048 100644 --- a/examples/advanced/medical_linac/include/MedLinacAnalysisManager.hh +++ b/examples/advanced/medical_linac/include/MedLinacAnalysisManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacAnalysisManager.hh,v 1.3 2004/05/14 18:25:39 mpiergen Exp $ +// $Id: MedLinacAnalysisManager.hh,v 1.5 2005/07/04 11:56:33 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -56,14 +56,21 @@ public: ~MedLinacAnalysisManager(); static MedLinacAnalysisManager* getInstance(); void book(); - void FillHistogram1WithEnergy(G4double,G4double,G4float); - void FillHistogram3WithEnergy(G4double,G4double,G4float); + void FillHistogram1WithEnergy(G4double,G4float); + void FillHistogram2WithEnergy(G4double,G4float); + void FillHistogram3WithEnergy(G4double,G4float); void FillHistogram4WithEnergy(G4double,G4float); void FillHistogram5WithEnergy(G4double,G4float); void FillHistogram6WithEnergy(G4double,G4float); void FillHistogram7WithEnergy(G4double,G4float); void FillHistogram8WithEnergy(G4double,G4float); - void PrimaryParticleEnergySpectrum(G4double); + void FillHistogram9WithEnergy(G4double,G4float); + void FillHistogram10WithEnergy(G4double,G4float); + void FillHistogram11WithEnergy(G4double,G4float); + void FillHistogram12WithEnergy(G4double,G4float); + void FillHistogram13WithEnergy(G4double,G4float); + void FillHistogram14WithEnergy(G4double,G4float); + void FillHistogram15WithEnergy(G4double,G4float); void finish(); private: @@ -79,14 +86,21 @@ private: AIDA::ITree* theTree; AIDA::IHistogramFactory *histFact; AIDA::ITreeFactory *treeFact; - AIDA::IHistogram2D *h1; + AIDA::IHistogram1D *h1; AIDA::IHistogram1D *h2; - AIDA::IHistogram2D *h3; + AIDA::IHistogram1D *h3; AIDA::IHistogram1D *h4; AIDA::IHistogram1D *h5; AIDA::IHistogram1D *h6; AIDA::IHistogram1D *h7; AIDA::IHistogram1D *h8; + AIDA::IHistogram1D *h9; + AIDA::IHistogram1D *h10; + AIDA::IHistogram1D *h11; + AIDA::IHistogram1D *h12; + AIDA::IHistogram1D *h13; + AIDA::IHistogram1D *h14; + AIDA::IHistogram1D *h15; }; #endif diff --git a/examples/advanced/medical_linac/include/MedLinacDecorator.hh b/examples/advanced/medical_linac/include/MedLinacDecorator.hh index 2fe0f47660..6e53626d7a 100644 --- a/examples/advanced/medical_linac/include/MedLinacDecorator.hh +++ b/examples/advanced/medical_linac/include/MedLinacDecorator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacDecorator.hh,v 1.1 2004/05/14 18:25:39 mpiergen Exp $ +// $Id: MedLinacDecorator.hh,v 1.2 2005/07/03 23:27:36 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -38,10 +38,10 @@ class MedLinacDecorator: public MedLinacVGeometryComponent { public: MedLinacDecorator(MedLinacVGeometryComponent*); - virtual ~MedLinacDecorator(); + ~MedLinacDecorator(); - virtual void ConstructComponent(G4VPhysicalVolume*, G4VPhysicalVolume*)=0; - virtual void DestroyComponent()=0; + virtual void ConstructComponent(G4VPhysicalVolume*, G4VPhysicalVolume*); + virtual void DestroyComponent(); private: MedLinacVGeometryComponent* component; diff --git a/examples/advanced/medical_linac/include/MedLinacDetectorConstruction.hh b/examples/advanced/medical_linac/include/MedLinacDetectorConstruction.hh index 82201a2d22..c5048f3fd7 100644 --- a/examples/advanced/medical_linac/include/MedLinacDetectorConstruction.hh +++ b/examples/advanced/medical_linac/include/MedLinacDetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacDetectorConstruction.hh,v 1.4 2004/11/24 16:53:29 mpiergen Exp $ +// $Id: MedLinacDetectorConstruction.hh,v 1.6 2005/11/25 22:02:04 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -59,6 +59,9 @@ public: void SetJawX2Pos_x (G4double); void SetJawY1Pos_y (G4double); void SetJawY2Pos_y (G4double); + void SetPhantomDim (G4double); + void SetNumberOfVoxels (G4int); + void SetMaxStep (G4double); G4VPhysicalVolume* Construct(); @@ -70,9 +73,6 @@ public: const G4int GetNumVoxelX() {return numberOfVoxelsAlongX;} const G4int GetNumVoxelY() {return numberOfVoxelsAlongY;} const G4int GetNumVoxelZ() {return numberOfVoxelsAlongZ;} - //const G4double GetDimX() {return PhantomDimensionX;} - //const G4double GetDimy() {return PhantomDimensionY;} - //const G4double GetBoxDim_Z() {return PhantomDimensionZ;} const G4double VoxelWidth_X(){return phantomDim_x/numberOfVoxelsAlongX;} const G4double VoxelWidth_Y(){return phantomDim_y/numberOfVoxelsAlongY;} const G4double VoxelWidth_Z(){return phantomDim_z/numberOfVoxelsAlongZ;} @@ -89,6 +89,9 @@ public: G4double GetJawX2Pos_x() {return fieldX2;}; G4double GetJawY1Pos_y() {return fieldY1;}; G4double GetJawY2Pos_y() {return fieldY2;}; + G4double GetPhantomDim() {return phantomDim;}; + G4int GetNumberOfVoxels() {return numberOfVoxels;}; + G4double GetMaxStep() {return maxStep;}; private: @@ -96,8 +99,12 @@ public: G4double fieldX2; G4double fieldY1; G4double fieldY2; + G4double phantomDim; + G4int numberOfVoxels; + G4double maxStep; G4VPhysicalVolume* ConstructGeom(); + MedLinacVGeometryComponent* pHead; MedLinacDetectorMessenger* detectorMessenger; MedLinacDecorator* decorator; @@ -109,7 +116,7 @@ public: MedLinacPhantomSD* phantomSD;//pointer to sensitive detector MedLinacPhantomROGeometry* phantomROGeometry;//pointer to ROGeometry - G4double phantomDim_x; //Phantom XDimension + G4double phantomDim_x; //Phantom XDimension G4double phantomDim_y; //Phantom YDimension G4double phantomDim_z; //Phantom ZDimension @@ -141,7 +148,8 @@ public: //Vis // G4VisAttributes* simpleH2OVisAtt; - G4VisAttributes* simpleLeadSVisAtt; + G4VisAttributes* simpleTungstenWVisAtt; + G4VisAttributes* simpleTungstenSVisAtt; G4VisAttributes* simpleWorldVisAtt; }; diff --git a/examples/advanced/medical_linac/include/MedLinacDetectorMessenger.hh b/examples/advanced/medical_linac/include/MedLinacDetectorMessenger.hh index 46da86206d..e7f41b4518 100644 --- a/examples/advanced/medical_linac/include/MedLinacDetectorMessenger.hh +++ b/examples/advanced/medical_linac/include/MedLinacDetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacDetectorMessenger.hh,v 1.2 2004/04/02 17:48:41 mpiergen Exp $ +// $Id: MedLinacDetectorMessenger.hh,v 1.3 2005/07/03 23:27:36 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -44,14 +44,14 @@ class G4UIcmdWithoutParameter; class MedLinacDetectorMessenger: public G4UImessenger { public: - MedLinacDetectorMessenger(MedLinacDetectorConstruction* ); + MedLinacDetectorMessenger(MedLinacDetectorConstruction*); ~MedLinacDetectorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: MedLinacDetectorConstruction* MedLinacDetector; - + G4UIdirectory* MedLinacDir; G4UIdirectory* X1Dir; G4UIdirectory* X2Dir; @@ -61,6 +61,11 @@ class MedLinacDetectorMessenger: public G4UImessenger G4UIcmdWithADoubleAndUnit* JawX2PosCmd; G4UIcmdWithADoubleAndUnit* JawY1PosCmd; G4UIcmdWithADoubleAndUnit* JawY2PosCmd; + + G4UIcmdWithADoubleAndUnit* PhantomDimCmd; + G4UIcmdWithAnInteger* NVoxelsCmd; + G4UIcmdWithADoubleAndUnit* MaxStepCmd; + G4UIcmdWithoutParameter* UpdateCmd; }; diff --git a/examples/advanced/medical_linac/include/MedLinacDummySD.hh b/examples/advanced/medical_linac/include/MedLinacDummySD.hh index f9b3ed3f4e..30345f3734 100644 --- a/examples/advanced/medical_linac/include/MedLinacDummySD.hh +++ b/examples/advanced/medical_linac/include/MedLinacDummySD.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// + // Dummy sensitive used only to flag sensitivity in cells of RO geometry. diff --git a/examples/advanced/medical_linac/include/MedLinacEventAction.hh b/examples/advanced/medical_linac/include/MedLinacEventAction.hh index 04d7acd09f..1a49939858 100644 --- a/examples/advanced/medical_linac/include/MedLinacEventAction.hh +++ b/examples/advanced/medical_linac/include/MedLinacEventAction.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacEventAction.hh,v 1.3 2004/05/14 18:25:39 mpiergen Exp $ +// $Id: MedLinacEventAction.hh,v 1.4 2005/07/03 23:27:36 mpiergen Exp $ // // // Code developed by: M. Piergentili diff --git a/examples/advanced/medical_linac/include/MedLinacHead.hh b/examples/advanced/medical_linac/include/MedLinacHead.hh index b72630d9cb..24c175aab9 100644 --- a/examples/advanced/medical_linac/include/MedLinacHead.hh +++ b/examples/advanced/medical_linac/include/MedLinacHead.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacHead.hh,v 1.1 2004/05/14 18:25:39 mpiergen Exp $ +// $Id: MedLinacHead.hh,v 1.2 2005/07/03 23:27:37 mpiergen Exp $ // // Code developed by: M. Piergentili // @@ -73,9 +73,8 @@ public: G4Region* aUpperCollRegion; - G4VisAttributes* simpleLeadWVisAtt; - G4VisAttributes* simpleLeadSVisAtt; - G4VisAttributes* simpleAlVisAtt; + G4VisAttributes* simpleTungstenWVisAtt; + G4VisAttributes* simpleTungstenSVisAtt; G4VisAttributes* simpleCopperSVisAtt; G4VisAttributes* simpleMylarVisAtt; G4VisAttributes* simpleKaptonVisAtt; diff --git a/examples/advanced/medical_linac/include/MedLinacPhantomMessenger.hh b/examples/advanced/medical_linac/include/MedLinacPhantomMessenger.hh new file mode 100644 index 0000000000..d5ac6c798c --- /dev/null +++ b/examples/advanced/medical_linac/include/MedLinacPhantomMessenger.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: MedLinacPhantomMessenger.hh,v 1.1 2005/07/03 23:27:37 mpiergen Exp $ +// +// +// Code developed by: M. Piergentili + +#ifndef MedLinacDetectorMessenger_h +#define MedLinacDetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class MedLinacPhantomSD; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; + +//**************************************************************************** + +class MedLinacPhantomMessenger: public G4UImessenger +{ + public: + MedLinacPhantomMessenger(MedLinacPhantomSD*); + ~MedLinacPhantomMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + MedLinacPhantomSD* MedLinacP; + + G4UIdirectory* MedLinacDir; + + G4UIcmdWithADoubleAndUnit* PhantomDimCmd; + G4UIcmdWithAnInteger* NVoxelsCmd; +}; + +//**************************************************************************** +#endif + diff --git a/examples/advanced/medical_linac/include/MedLinacPhantomSD.hh b/examples/advanced/medical_linac/include/MedLinacPhantomSD.hh index 5e31cad5d6..97c73288f1 100644 --- a/examples/advanced/medical_linac/include/MedLinacPhantomSD.hh +++ b/examples/advanced/medical_linac/include/MedLinacPhantomSD.hh @@ -20,9 +20,10 @@ // * statement, and all its terms. * // ******************************************************************** // -//// $Id: MedLinacPhantomSD.hh,v 1.4 2004/06/18 09:17:38 gunter Exp $ +//// $Id: MedLinacPhantomSD.hh,v 1.6 2005/12/13 08:42:38 gunter Exp $ // // + // Code developed by: M. Piergentili // #ifndef MedLinacPhantomSD_h @@ -30,6 +31,7 @@ #include "G4VSensitiveDetector.hh" #include "MedLinacPhantomHit.hh" +class MedLinacPhantomMessenger; class G4Step; class G4HCofThisEvent; @@ -41,6 +43,10 @@ public: MedLinacPhantomSD(G4String name); ~MedLinacPhantomSD(); + + void SetPhantomDimension (G4double); + void SetNumberOfPhantomVoxels (G4int); + void Initialize(G4HCofThisEvent*); G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); void EndOfEvent(G4HCofThisEvent*HCE); @@ -48,6 +54,14 @@ public: void DrawAll(); void PrintAll(); +public: + G4double GetPhantomDimension() {return phantomDimension;}; + G4int GetNumberOfPhantomVoxels() {return numberOfPhantomVoxels;}; + + private: + G4double phantomDimension; + G4int numberOfPhantomVoxels; + MedLinacPhantomMessenger* phantomMessenger; }; #endif diff --git a/examples/advanced/medical_linac/include/MedLinacPhysicsList.hh b/examples/advanced/medical_linac/include/MedLinacPhysicsList.hh index 9d13c7f824..c070549b2a 100644 --- a/examples/advanced/medical_linac/include/MedLinacPhysicsList.hh +++ b/examples/advanced/medical_linac/include/MedLinacPhysicsList.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -//// $Id: MedLinacPhysicsList.hh,v 1.4 2004/06/18 09:17:39 gunter Exp $ +//// $Id: MedLinacPhysicsList.hh,v 1.6 2005/12/13 08:42:40 gunter Exp $ // // // Code developed by: M. Piergentili @@ -29,6 +29,7 @@ #ifndef MedLinacPhysicsList_h #define MedLinacPhysicsList_h 1 +#include "MedLinacPhysicsListMessenger.hh" #include "G4VUserPhysicsList.hh" #include "globals.hh" @@ -50,8 +51,14 @@ class MedLinacPhysicsList: public G4VUserPhysicsList void ConstructProcess(); void SetCuts(); - //private: - +public: + void SetCut (G4double); + G4double GetCut() {return defaultCut;}; + +private: + G4double defaultCut; + MedLinacPhysicsListMessenger* physicsListMessenger; + //G4double cutForGamma; //G4double cutForElectron; //G4double cutForPositron; diff --git a/examples/advanced/radioprotection/include/RemSimBasicGenerator.hh b/examples/advanced/medical_linac/include/MedLinacPhysicsListMessenger.hh similarity index 62% rename from examples/advanced/radioprotection/include/RemSimBasicGenerator.hh rename to examples/advanced/medical_linac/include/MedLinacPhysicsListMessenger.hh index b170133eba..dd6bf0bf47 100644 --- a/examples/advanced/radioprotection/include/RemSimBasicGenerator.hh +++ b/examples/advanced/medical_linac/include/MedLinacPhysicsListMessenger.hh @@ -21,46 +21,43 @@ // ******************************************************************** // // -// ********************************** -// * * -// * RemSimBasicGenerator.hh * -// * * -// ********************************** +// $Id: MedLinacPhysicsListMessenger.hh,v 1.1 2005/07/03 23:27:37 mpiergen Exp $ // -// $Id: RemSimBasicGenerator.hh,v 1.9 2005/05/19 13:30:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ // -// Author:Susanna Guatelli, guatelli@ge.infn.it +// Code developed by: M. Piergentili -#ifndef RemSimBasicGenerator_h -#define RemSimBasicGenerator_h 1 +#ifndef MedLinacPhysicsListMessenger_h +#define MedLinacPhysicsListMessenger_h 1 -#include "RemSimVPrimaryGeneratorFactory.hh" #include "globals.hh" -#include "G4DataVector.hh" -class G4ParticleGun; -class G4Event; -class RemSimRunAction; +#include "G4UImessenger.hh" -class RemSimBasicGenerator : public RemSimVPrimaryGeneratorFactory +class MedLinacPhysicsList; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; + +//**************************************************************************** + +class MedLinacPhysicsListMessenger: public G4UImessenger { -public: - RemSimBasicGenerator(); - ~RemSimBasicGenerator(); + public: + MedLinacPhysicsListMessenger(MedLinacPhysicsList* ); + ~MedLinacPhysicsListMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + MedLinacPhysicsList* pMedLinacPhysicsList; -public: - void GeneratePrimaries(G4Event* anEvent); - G4double GetInitialEnergy(); - void SetMoon(G4bool){;}; - void Read(G4String); - -private: - G4ParticleGun* particleGun; - G4String randomDirection; - G4String spectrum; - G4double energy; - // RemSimRunAction* run; + G4UIdirectory* PhysicsDir; + G4UIcmdWithADoubleAndUnit* CutCmd; + + //G4UIcmdWithoutParameter* UpdateCmd; }; + +//**************************************************************************** #endif - diff --git a/examples/advanced/medical_linac/include/MedLinacPrimaryGeneratorMessenger.hh b/examples/advanced/medical_linac/include/MedLinacPrimaryGeneratorMessenger.hh index 305ca14e71..228dc5478e 100644 --- a/examples/advanced/medical_linac/include/MedLinacPrimaryGeneratorMessenger.hh +++ b/examples/advanced/medical_linac/include/MedLinacPrimaryGeneratorMessenger.hh @@ -19,8 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: MedLinacPrimaryGeneratorMessenger.hh,v 1.3 2004/06/18 09:17:40 gunter Exp $ +// $Id: MedLinacPrimaryGeneratorMessenger.hh,v 1.4 2005/07/03 23:27:37 mpiergen Exp $ // // // Code developed by: M. Piergentili diff --git a/examples/advanced/medical_linac/include/MedLinacRunAction.hh b/examples/advanced/medical_linac/include/MedLinacRunAction.hh index 9260ad01b0..b8d4059689 100644 --- a/examples/advanced/medical_linac/include/MedLinacRunAction.hh +++ b/examples/advanced/medical_linac/include/MedLinacRunAction.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacRunAction.hh,v 1.2 2004/04/02 17:48:41 mpiergen Exp $ +// $Id: MedLinacRunAction.hh,v 1.3 2005/11/25 22:02:04 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -41,16 +41,12 @@ class MedLinacDetectorConstruction; class MedLinacRunAction : public G4UserRunAction { public: - MedLinacRunAction(G4String); + MedLinacRunAction(); ~MedLinacRunAction(); public: void BeginOfRunAction(const G4Run* aRun); void EndOfRunAction(const G4Run* aRun); -private: - - G4String sensitiveDetectorName; - MedLinacDetectorConstruction* detector; }; diff --git a/examples/advanced/medical_linac/include/MedLinacTargetAndFilterDecorator.hh b/examples/advanced/medical_linac/include/MedLinacTargetAndFilterDecorator.hh index 3b5b25a0ae..04274ef4f3 100644 --- a/examples/advanced/medical_linac/include/MedLinacTargetAndFilterDecorator.hh +++ b/examples/advanced/medical_linac/include/MedLinacTargetAndFilterDecorator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacTargetAndFilterDecorator.hh,v 1.1 2004/05/14 18:25:39 mpiergen Exp $ +// $Id: MedLinacTargetAndFilterDecorator.hh,v 1.2 2005/07/03 23:27:37 mpiergen Exp $ // // Code developed by: M. Piergentili // @@ -102,8 +102,8 @@ private: G4VPhysicalVolume* layer21_phys; - G4VisAttributes* simpleLeadSVisAtt; - G4VisAttributes* simpleAlSVisAtt; + G4VisAttributes* simpleTungstenSVisAtt; + G4VisAttributes* simpleCopperSVisAtt; G4VisAttributes* simpleWorldVisAtt; //MedLinacVGeometryComponent* component; }; diff --git a/examples/advanced/medical_linac/include/MedLinacVGeometryComponent.hh b/examples/advanced/medical_linac/include/MedLinacVGeometryComponent.hh index 954d1d77e4..74c8e14aab 100644 --- a/examples/advanced/medical_linac/include/MedLinacVGeometryComponent.hh +++ b/examples/advanced/medical_linac/include/MedLinacVGeometryComponent.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacVGeometryComponent.hh,v 1.1 2004/05/14 18:25:39 mpiergen Exp $ +// $Id: MedLinacVGeometryComponent.hh,v 1.2 2005/07/03 23:27:37 mpiergen Exp $ // // Code developed by: M. Piergentili // diff --git a/examples/advanced/medical_linac/macro.mac b/examples/advanced/medical_linac/macro.mac index 3a3568bc71..ab0b4484e3 100644 --- a/examples/advanced/medical_linac/macro.mac +++ b/examples/advanced/medical_linac/macro.mac @@ -1,11 +1,19 @@ - -/control/verbose 2 +/PhysicsList/cut 0.2 mm +/control/verbose 1 /control/saveHistory /run/verbose 2 + /run/initialize /tracking/storeTrajectory 1 +/Phantom/dimension 15. cm +/Phantom/Nvoxels 150 +/Phantom/maxStep 0.2 mm + +/PhantomSD/dimension 15. cm +/PhantomSD/Nvoxels 150 + # Multi Leaf @@ -177,7 +185,7 @@ /Jaws/X1/DistanceFromAxis -4.2 cm /Jaws/X2/DistanceFromAxis 5.2 cm /Jaws/Y1/DistanceFromAxis -6.6 cm -/Jaws/Y2/DistanceFromAxis 6.8. cm +/Jaws/Y2/DistanceFromAxis 6.8 cm /Jaws/update /energy 6.0 MeV diff --git a/examples/advanced/medical_linac/src/MedLinacAnalysisManager.cc b/examples/advanced/medical_linac/src/MedLinacAnalysisManager.cc index fc6dcd5bee..5116a9b93f 100644 --- a/examples/advanced/medical_linac/src/MedLinacAnalysisManager.cc +++ b/examples/advanced/medical_linac/src/MedLinacAnalysisManager.cc @@ -19,8 +19,8 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// -// $Id: MedLinacAnalysisManager.cc,v 1.6 2005/06/02 13:57:07 mpiergen Exp $ +// ******************************************************************** +// $Id: MedLinacAnalysisManager.cc,v 1.8 2005/07/04 11:56:33 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -42,11 +42,14 @@ #include "AIDA/ITupleFactory.h" #include "AIDA/ITreeFactory.h" #include "AIDA/ITree.h" +#include "AIDA/ITuple.h" MedLinacAnalysisManager* MedLinacAnalysisManager::instance = 0; MedLinacAnalysisManager::MedLinacAnalysisManager(): - aFact(0), theTree(0), histFact(0),h1(0),h2(0),h3(0),h4(0),h5(0),h6(0),h7(0),h8(0) + aFact(0), theTree(0), histFact(0),h1(0),h2(0),h3(0), + h4(0),h5(0),h6(0),h7(0),h8(0),h9(0),h10(0), + h11(0),h12(0),h13(0),h14(0),h15(0) { //build up the factories @@ -56,8 +59,8 @@ MedLinacAnalysisManager::MedLinacAnalysisManager(): //parameters for the TreeFactory - std::string fileName = "MedLinac.xml"; - theTree = treeFact->create(fileName,"XML",false, true, "uncompress"); + std::string fileName = "MedLinacDiane.xml"; + theTree = treeFact->create(fileName,"xml",false, true,"uncompress"); delete treeFact; @@ -84,107 +87,180 @@ MedLinacAnalysisManager* MedLinacAnalysisManager::getInstance() void MedLinacAnalysisManager::book() { - //creating a 2D histogram ... - h1 = histFact->createHistogram2D("10","Energy, pos x z", //histoID,histo name - 300 ,-150.,150., //bins'number,xmin,xmax - 300,-150.,150. );//bins'number,zmin,zmax - - - - //creating a 1D histogram ... - h2 = histFact->createHistogram1D("20","Initial Energy", //histoID,histo name - 500,3.0,9.0); //bins' number, xmin, xmax - - - - - //creating an other 2D histogram ... - h3 = histFact->createHistogram2D("30","Energy, pos x y", //histoID,histo name - 300 ,-150.,150., //bins'number,xmin,xmax - 300,-150.,150. );//bins'number,ymin,ymax - - //creating an other 1D histogram ... - h4 = histFact->createHistogram1D("40","PDD", //histoID,histo name - 300,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h1 = histFact->createHistogram1D("14010","PDD5", //histoID,histo name + 60,-150.0,150.0); //bins' number, zmin, zmax //creating an other 1D histogram ... - h5 = histFact->createHistogram1D("50","Flatness at build-up depth", //histoID,histo name - 300,-150.0,150.0); //bins' number, zmin, zmax + h2 = histFact->createHistogram1D("14020","Flatness build-up5", //histoID,histo name + 60,-150.0,150.0); //bins' number, zmin, zmax + + //creating an other 1D histogram ... + h3 = histFact->createHistogram1D("14030","Flatness 50mm 5", //histoID,histo name + 60,-150.0,150.0); //bins' number, zmin, zmax //creating an other 1D histogram ... - h6 = histFact->createHistogram1D("60","Flatness 50mm depth", //histoID,histo name - 300,-150.0,150.0); //bins' number, zmin, zmax + h4 = histFact->createHistogram1D("14040","Flatness 100mm 5", //histoID,histo name + 60,-150.0,150.0); //bins' number, zmin, zmax //creating an other 1D histogram ... - h7 = histFact->createHistogram1D("70","Flatness 100mm depth", //histoID,histo name - 300,-150.0,150.0); //bins' number, zmin, zmax + h5 = histFact->createHistogram1D("14050","Flatness 200mm 5", //histoID,histo name + 60,-150.0,150.0); //bins' number, zmin, zmax + + //creating an other 1D histogram ... + h6 = histFact->createHistogram1D("14060","PDD 2", //histoID,histo name + 150,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h7 = histFact->createHistogram1D("14070","Flatness build-up 2",//histoID,histo name + 150,-150.0,150.0); //bins' number, zmin, zmax //creating an other 1D histogram ... - h8 = histFact->createHistogram1D("80","Flatness 200mm depth", //histoID,histo name - 300,-150.0,150.0); //bins' number, zmin, zmax - + h8 = histFact->createHistogram1D("14080","Flatness 50mm 2", //histoID,histo name + 150,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h9 = histFact->createHistogram1D("14090","Flatness 100mm 2", //histoID,histo name + 150,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h10 = histFact->createHistogram1D("14100","Flatness 200mm 2", //histoID,histo name + 150,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h11 = histFact->createHistogram1D("14101","PDD 1", //histoID,histo name + 300,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h12 = histFact->createHistogram1D("14102","Flatness build-up 1",//histoID,histo name + 300,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h13 = histFact->createHistogram1D("14103","Flatness 50mm 1", //histoID,histo name + 300,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h14 = histFact->createHistogram1D("14104","Flatness 100mm 1", //histoID,histo name + 300,-150.0,150.0); //bins' number, zmin, zmax + //creating an other 1D histogram ... + h15 = histFact->createHistogram1D("14105","Flatness 200mm 1", //histoID,histo name + 300,-150.0,150.0); //bins' number, zmin, zmax } - -void MedLinacAnalysisManager::FillHistogram1WithEnergy(G4double x, - G4double z, - G4float energyDeposit) -{ - //2DHistrogram: energy deposit in a voxel which center is fixed in position (x,z) - h1->fill(x,z,energyDeposit); -} - -//Units: the energy deposit is in MeV; x, y, z in mm for histograms -void MedLinacAnalysisManager::PrimaryParticleEnergySpectrum(G4double pEnergy) -{ - //1DHistogram: energy spectrum of primary particles - h2->fill(pEnergy/MeV); -} -void MedLinacAnalysisManager::FillHistogram3WithEnergy(G4double x, - G4double y, +void MedLinacAnalysisManager::FillHistogram1WithEnergy(G4double z, G4float energyDeposit) { - //2DHistrogram: energy deposit in a voxel which center is fixed in position (x,y) - h3->fill(x,y,energyDeposit); + //G4cout << " fill HISTO1-------------"<fill(z,energyDeposit); } - -void MedLinacAnalysisManager::FillHistogram4WithEnergy(G4double z, +void MedLinacAnalysisManager::FillHistogram2WithEnergy(G4double x, G4float energyDeposit) { - //1DHistrogram: energy deposit in a voxel which center is fixed in position (0,0,z) - h4->fill(z,energyDeposit); + //G4cout << " fill HISTO2-------------"<fill(x,energyDeposit); +} +void MedLinacAnalysisManager::FillHistogram3WithEnergy(G4double x, + G4float energyDeposit) +{ + //G4cout << " fill HISTO3-------------"<fill(x,energyDeposit); +} + +void MedLinacAnalysisManager::FillHistogram4WithEnergy(G4double x, + G4float energyDeposit) +{ + //G4cout << " fill HISTO4-------------"<fill(x,energyDeposit); } - -void MedLinacAnalysisManager::FillHistogram5WithEnergy(G4double x, + +void MedLinacAnalysisManager::FillHistogram5WithEnergy(G4double x, G4float energyDeposit) { - //1DHistrogram: energy deposit in a voxel which center is fixed in position (x,0,135mm) + //G4cout << " fill HISTO5-------------"<fill(x,energyDeposit); } -void MedLinacAnalysisManager::FillHistogram6WithEnergy(G4double x, + +void MedLinacAnalysisManager::FillHistogram6WithEnergy(G4double z, G4float energyDeposit) { - //1DHistrogram: energy deposit in a voxel which center is fixed in position (x,0,100mm) - h6->fill(x,energyDeposit); + //G4cout << " fill HISTO6-------------"<fill(z,energyDeposit); } void MedLinacAnalysisManager::FillHistogram7WithEnergy(G4double x, G4float energyDeposit) { - //1DHistrogram: energy deposit in a voxel which center is fixed in position (x,0,50mm) + //G4cout << " fill HISTO7-------------"<fill(x,energyDeposit); } void MedLinacAnalysisManager::FillHistogram8WithEnergy(G4double x, G4float energyDeposit) { - //1DHistrogram: energy deposit in a voxel which center is fixed in position (x,0,-50mm) + //G4cout << " fill HISTO8-------------"<fill(x,energyDeposit); } +void MedLinacAnalysisManager::FillHistogram9WithEnergy(G4double x, + G4float energyDeposit) +{ + //G4cout << " fill HISTO9-------------"<fill(x,energyDeposit); +} + +void MedLinacAnalysisManager::FillHistogram10WithEnergy(G4double x, + G4float energyDeposit) +{ + //G4cout << " fill HISTO10-------------"<fill(x,energyDeposit); +} + + +void MedLinacAnalysisManager::FillHistogram11WithEnergy(G4double z, + G4float energyDeposit) +{ + //G4cout << " fill HISTO11-------------"<fill(z,energyDeposit); +} + +void MedLinacAnalysisManager::FillHistogram12WithEnergy(G4double x, + G4float energyDeposit) +{ + //G4cout << " fill HISTO12-------------"<fill(x,energyDeposit); +} + +void MedLinacAnalysisManager::FillHistogram13WithEnergy(G4double x, + G4float energyDeposit) +{ + //G4cout << " fill HISTO13-------------"<fill(x,energyDeposit); +} + +void MedLinacAnalysisManager::FillHistogram14WithEnergy(G4double x, + G4float energyDeposit) +{ + //G4cout << " fill HISTO14-------------"<fill(x,energyDeposit); +} + +void MedLinacAnalysisManager::FillHistogram15WithEnergy(G4double x, + G4float energyDeposit) +{ + //G4cout << " fill HISTO15-------------"<fill(x,energyDeposit); +} void MedLinacAnalysisManager::finish() { diff --git a/examples/advanced/medical_linac/src/MedLinacDecorator.cc b/examples/advanced/medical_linac/src/MedLinacDecorator.cc index d63d53d27c..f620f8151d 100644 --- a/examples/advanced/medical_linac/src/MedLinacDecorator.cc +++ b/examples/advanced/medical_linac/src/MedLinacDecorator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacDecorator.cc,v 1.1 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacDecorator.cc,v 1.2 2005/07/03 23:27:37 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -38,8 +38,12 @@ MedLinacDecorator::~MedLinacDecorator() {;} void MedLinacDecorator::ConstructComponent(G4VPhysicalVolume*,G4VPhysicalVolume*) -{;} +{ + // component -> ConstructComponent(motherVolume) ; + } void MedLinacDecorator::DestroyComponent() -{;} +{ + //component -> DestroyComponent(); +} diff --git a/examples/advanced/medical_linac/src/MedLinacDetectorConstruction.cc b/examples/advanced/medical_linac/src/MedLinacDetectorConstruction.cc index ac2ab14dc7..fdafe2c82c 100644 --- a/examples/advanced/medical_linac/src/MedLinacDetectorConstruction.cc +++ b/examples/advanced/medical_linac/src/MedLinacDetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacDetectorConstruction.cc,v 1.7 2005/06/02 13:57:07 mpiergen Exp $ +// $Id: MedLinacDetectorConstruction.cc,v 1.9 2005/11/25 22:02:04 mpiergen Exp $ // // Code developed by: M. Piergentili // @@ -64,9 +64,6 @@ #include "G4SubtractionSolid.hh" #include "G4VSolid.hh" #include "G4Region.hh" -#include "G4UserLimits.hh" - - #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" @@ -89,27 +86,41 @@ MedLinacDetectorConstruction::MedLinacDetectorConstruction(G4String SDName) JawX1_phys(0), JawX2_phys(0), Phantom_phys(0) { - numberOfVoxelsAlongX=300; - numberOfVoxelsAlongY=300; - numberOfVoxelsAlongZ=300; + //G4double phantomDim_x = 15.*cm; + //G4double phantomDim_y = 15.*cm; + //G4double phantomDim_z = 15.*cm; - ComputeDimVoxel(); + //PhantomDimensionX = PhantomDim_x; + //PhantomDimensionY = PhantomDim_y; + //PhantomDimensionZ = PhantomDim_z; + + //numberOfVoxelsAlongX=150; + //numberOfVoxelsAlongY=150; + //numberOfVoxelsAlongZ=150; + + numberOfVoxelsAlongX=0; + numberOfVoxelsAlongY=0; + numberOfVoxelsAlongZ=0; + maxStep = 0; sensitiveDetectorName = SDName; // default parameter values - fieldX1 = -10.*cm; - fieldX2 = 10.*cm; - fieldY1 = -10.*cm; - fieldY2 = 10.*cm; + fieldX1 = -2.5*cm; + fieldX2 = 2.5*cm; + fieldY1 = -2.5*cm; + fieldY2 = 2.5*cm; detectorMessenger = new MedLinacDetectorMessenger(this); pHead = new MedLinacHead(); decorator = new MedLinacTargetAndFilterDecorator(pHead); decorator1 = new MedLinacMLCDecorator(pHead); -} + ComputeDimVoxel(); + + + } MedLinacDetectorConstruction* MedLinacDetectorConstruction::instance = 0; @@ -125,11 +136,11 @@ MedLinacDetectorConstruction* MedLinacDetectorConstruction::GetInstance(G4String MedLinacDetectorConstruction::~MedLinacDetectorConstruction() { - delete detectorMessenger; + delete detectorMessenger; delete pHead; delete decorator; delete decorator1; -} + } G4VPhysicalVolume* MedLinacDetectorConstruction::Construct() { @@ -178,10 +189,12 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () G4Material* H2O = new G4Material(name="Water",density, ncomponents=2); H2O->AddElement(elH, natoms=2); H2O->AddElement(elO, natoms=1); + H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Lead", z=82., a, density); + //density = 19.3*g/cm3; + density = 18.*g/cm3; + a = 183.85*g/mole; + G4Material* W = new G4Material(name="Tungsten" , z=74., a, density); massOfMole = 1.008*g/mole; density = 1.e-25*g/cm3; @@ -196,21 +209,21 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () //----1Y------------------------ - G4double thetaY1 = std::atan(-fieldY1/(100.*cm));// in rad - G4double JawY1Pos_y = -((3.9*cm+28.*cm)*std::sin(thetaY1)+5.*cm*std::cos(thetaY1)); - G4double JawY1Pos_z =115.*cm-((3.9*cm+28.*cm)*std::cos(thetaY1))+5.*cm*std::sin(thetaY1); + G4double thetaY1 = atan(-fieldY1/(100.*cm));// in rad + G4double JawY1Pos_y = -((3.9*cm+28.*cm)*sin(thetaY1)+5.*cm*cos(thetaY1)); + G4double JawY1Pos_z =115.*cm-((3.9*cm+28.*cm)*cos(thetaY1))+5.*cm*sin(thetaY1); //----2Y------------------------- - G4double thetaY2 = std::atan(fieldY2/(100.*cm)); // in rad - G4double JawY2Pos_y = (3.9*cm+28.*cm)*std::sin(thetaY2)+5.*cm*std::cos(thetaY2); - G4double JawY2Pos_z = 115.*cm-(3.9*cm+28.*cm)*std::cos(thetaY2)+5.*cm*std::sin(thetaY2); + G4double thetaY2 = atan(fieldY2/(100.*cm)); // in rad + G4double JawY2Pos_y = (3.9*cm+28.*cm)*sin(thetaY2)+5.*cm*cos(thetaY2); + G4double JawY2Pos_z = 115.*cm-(3.9*cm+28.*cm)*cos(thetaY2)+5.*cm*sin(thetaY2); //----1X------------------------- - G4double thetaX1 = std::atan(-fieldX1/(100.*cm)); - G4double JawX1Pos_x = -((36.7*cm+3.9*cm)*std::sin(thetaX1)+5.*cm*std::cos(thetaX1)); - G4double JawX1Pos_z =115.*cm-(36.7*cm+3.9*cm)*std::cos(thetaX1)+5.*cm*std::sin(thetaX1); + G4double thetaX1 = atan(-fieldX1/(100.*cm)); + G4double JawX1Pos_x = -((36.7*cm+3.9*cm)*sin(thetaX1)+5.*cm*cos(thetaX1)); + G4double JawX1Pos_z =115.*cm-(36.7*cm+3.9*cm)*cos(thetaX1)+5.*cm*sin(thetaX1); //----2X------------------------- - G4double thetaX2 = std::atan(fieldX2/(100.*cm)); - G4double JawX2Pos_x = (36.7*cm+3.9*cm)*std::sin(thetaX2)+5.*cm*std::cos(thetaX2); - G4double JawX2Pos_z = 115.*cm-(36.7*cm+3.9*cm)*std::cos(thetaX2)+5.*cm*std::sin(thetaX2); + G4double thetaX2 = atan(fieldX2/(100.*cm)); + G4double JawX2Pos_x = (36.7*cm+3.9*cm)*sin(thetaX2)+5.*cm*cos(thetaX2); + G4double JawX2Pos_z = 115.*cm-(36.7*cm+3.9*cm)*cos(thetaX2)+5.*cm*sin(thetaX2); //---------rotation jaw1Y-------- G4RotationMatrix* rotatejaw1Y=new G4RotationMatrix(); @@ -233,15 +246,16 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () //---------------colors---------- - G4Colour white (1.0, 1.0, 1.0); + G4Colour white (1.0, 1.0, 1.0); G4Colour magenta (1.0, 0.0, 1.0); G4Colour lblue (0.20, .50, .85); //------------------------------------------------------ volumes + //------------------------------ experimental hall (world volume) //------------------------------ beam line along z axis-------SSD=100cm-------------- - //------------------------------ experimental hall (world volume) +//------------------------------ experimental hall (world volume) G4double expHall_x = 3.0*m; G4double expHall_y = 3.0*m; G4double expHall_z = 3.0*m; @@ -275,15 +289,17 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () G4double JawY1Dim_x = 10.0*cm; G4double JawY1Dim_y = 5.0*cm; - G4double JawY1Dim_z = 2.5*cm; + G4double JawY1Dim_z = 3.9*cm; G4Box* JawY1 = new G4Box("JawY1",JawY1Dim_x, JawY1Dim_y,JawY1Dim_z); JawY1_log = new G4LogicalVolume(JawY1, - Pb,"JawY1_log",0,0,0); + W,"JawY1_log",0,0,0); G4double JawY1Pos_x = 0.0*cm; + //G4double JawY1Pos_y = fieldY1; + //G4double JawY1Pos_z = 68.1*cm; JawY1_phys = new G4PVPlacement(rotatejaw1Y, G4ThreeVector(JawY1Pos_x,JawY1Pos_y,JawY1Pos_z), "JawY1",JawY1_log,experimentalHall_phys,false,0); @@ -292,12 +308,14 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () G4double JawY2Dim_x = 10.0*cm; G4double JawY2Dim_y = 5.0*cm; - G4double JawY2Dim_z = 2.5*cm; + G4double JawY2Dim_z = 3.9*cm; G4Box* JawY2 = new G4Box("JawY2",JawY2Dim_x, JawY2Dim_y,JawY2Dim_z); JawY2_log = new G4LogicalVolume(JawY2, - Pb,"JawY1_log",0,0,0); + W,"JawY1_log",0,0,0); G4double JawY2Pos_x = 0.0*cm; + //G4double JawY2Pos_y = fieldY2; + //G4double JawY2Pos_z = 68.1*cm; JawY2_phys = new G4PVPlacement(rotatejaw2Y, G4ThreeVector(JawY2Pos_x,JawY2Pos_y,JawY2Pos_z), "JawY2",JawY2_log,experimentalHall_phys,false,0); @@ -307,14 +325,17 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () G4double JawX1Dim_x = 5.0*cm; G4double JawX1Dim_y = 10.0*cm; - G4double JawX1Dim_z = 2.5*cm; + G4double JawX1Dim_z = 3.9*cm; G4Box* JawX1 = new G4Box("JawX1",JawX1Dim_x, JawX1Dim_y,JawX1Dim_z); JawX1_log = new G4LogicalVolume(JawX1, - Pb,"JawX1_log",0,0,0); - - G4double JawX1Pos_y = 0.0*cm; - JawX1_phys = new G4PVPlacement(rotatejaw1X, + W,"JawX1_log",0,0,0); + //G4cout <<"_________________DetectorConstruction fieldX1 "<< fieldX1/cm << G4endl; + + //G4double JawX1Pos_x = fieldX1; + G4double JawX1Pos_y = 0.0*cm; + //G4double JawX1Pos_z = 54.2*cm; + JawX1_phys = new G4PVPlacement(rotatejaw1X, G4ThreeVector(JawX1Pos_x,JawX1Pos_y,JawX1Pos_z), "JawX1",JawX1_log,experimentalHall_phys,false,0); @@ -322,20 +343,26 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () G4double JawX2Dim_x = 5.0*cm; G4double JawX2Dim_y = 10.0*cm; - G4double JawX2Dim_z = 2.5*cm; + G4double JawX2Dim_z = 3.9*cm; G4Box* JawX2 = new G4Box("JawX2",JawX2Dim_x, JawX2Dim_y,JawX2Dim_z); JawX2_log = new G4LogicalVolume(JawX2, - Pb,"JawX1_log",0,0,0); + W,"JawX1_log",0,0,0); + //G4double JawX2Pos_x = fieldX2; G4double JawX2Pos_y = 0.0*cm; + //G4double JawX2Pos_z = 54.2*cm; JawX2_phys = new G4PVPlacement(rotatejaw2X, G4ThreeVector(JawX2Pos_x,JawX2Pos_y,JawX2Pos_z), "JawX2",JawX2_log,experimentalHall_phys,false,0); //----------------Phantom--------- - phantomDim_x = 15.*cm; - phantomDim_y = 15.*cm; - phantomDim_z = 15.*cm; + //phantomDim_x = 15.*cm; + //phantomDim_y = 15.*cm; + //phantomDim_z = 15.*cm; + phantomDim_x = phantomDim; + phantomDim_y = phantomDim; + phantomDim_z = phantomDim; + G4Box* Phantom = new G4Box("Phantom",phantomDim_x, phantomDim_y,phantomDim_z); Phantom_log = new G4LogicalVolume(Phantom, @@ -347,15 +374,19 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () G4ThreeVector(PhantomPos_x,PhantomPos_y,PhantomPos_z), "Phantom_phys",Phantom_log,experimentalHall_phys,false,0); + numberOfVoxelsAlongX=numberOfVoxels; + numberOfVoxelsAlongY=numberOfVoxels; + numberOfVoxelsAlongZ=numberOfVoxels; + PrintParameters(); //--------- Visualization attributes ------------------------------- - G4VisAttributes* simpleH2OVisAtt= new G4VisAttributes(lblue); - simpleH2OVisAtt->SetVisibility(true); - simpleH2OVisAtt->SetForceSolid(true); + G4VisAttributes* simpleH2OVisAtt= new G4VisAttributes(lblue); + simpleH2OVisAtt->SetVisibility(true); + simpleH2OVisAtt->SetForceSolid(true); Phantom_log->SetVisAttributes(simpleH2OVisAtt); G4VisAttributes* simpleVacuumWVisAtt= new G4VisAttributes(white); @@ -363,13 +394,13 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () simpleVacuumWVisAtt->SetForceWireframe(true); vacuumBlock_log->SetVisAttributes(simpleVacuumWVisAtt); - G4VisAttributes* simpleLeadSVisAtt= new G4VisAttributes(magenta); - simpleLeadSVisAtt->SetVisibility(true); - simpleLeadSVisAtt->SetForceSolid(true); - JawY1_log->SetVisAttributes(simpleLeadSVisAtt); - JawY2_log->SetVisAttributes(simpleLeadSVisAtt); - JawX1_log->SetVisAttributes(simpleLeadSVisAtt); - JawX2_log->SetVisAttributes(simpleLeadSVisAtt); + G4VisAttributes* simpleTungstenSVisAtt= new G4VisAttributes(magenta); + simpleTungstenSVisAtt->SetVisibility(true); + simpleTungstenSVisAtt->SetForceSolid(true); + JawY1_log->SetVisAttributes(simpleTungstenSVisAtt); + JawY2_log->SetVisAttributes(simpleTungstenSVisAtt); + JawX1_log->SetVisAttributes(simpleTungstenSVisAtt); + JawX2_log->SetVisAttributes(simpleTungstenSVisAtt); G4VisAttributes* simpleWorldVisAtt= new G4VisAttributes(white); @@ -383,28 +414,41 @@ G4VPhysicalVolume* MedLinacDetectorConstruction::ConstructGeom () //JawY2_log->SetVisAttributes(simpleWorldVisAtt); //JawX1_log->SetVisAttributes(simpleWorldVisAtt); //JawX2_log->SetVisAttributes(simpleWorldVisAtt); - vacuumBlock_log->SetVisAttributes(simpleWorldVisAtt); + //vacuumBlock_log->SetVisAttributes(simpleWorldVisAtt); // Sets a max Step length in the detector - - G4UserLimits *l = new G4UserLimits(); - G4double maxStep= 0.1*mm; - l->SetMaxAllowedStep(maxStep); - Phantom_log->SetUserLimits(l); + //G4double maxStep = 0.2*mm; + Phantom_log->SetUserLimits(new G4UserLimits(maxStep)); ConstructVolume(); ConstructSensitiveDetector(); + + //G4cout <<"????????????????????numberOfVoxels "<< numberOfVoxels <DefineWorldVolume(ConstructGeom()); } + + void MedLinacDetectorConstruction::ConstructVolume() { pHead ->ConstructComponent(experimentalHall_phys,vacuumBlock_phys); decorator ->ConstructComponent( experimentalHall_phys,vacuumBlock_phys); decorator1 ->ConstructComponent( experimentalHall_phys,vacuumBlock_phys); -} + + } void MedLinacDetectorConstruction::ConstructSensitiveDetector() // Sensitive Detector and ReadOut geometry definition { + G4SDManager* pSDManager = G4SDManager::GetSDMpointer(); if(!phantomSD) diff --git a/examples/advanced/medical_linac/src/MedLinacDetectorMessenger.cc b/examples/advanced/medical_linac/src/MedLinacDetectorMessenger.cc index c3a69111d0..b6f18f9d74 100644 --- a/examples/advanced/medical_linac/src/MedLinacDetectorMessenger.cc +++ b/examples/advanced/medical_linac/src/MedLinacDetectorMessenger.cc @@ -21,12 +21,11 @@ // ******************************************************************** // // -// $Id: MedLinacDetectorMessenger.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacDetectorMessenger.cc,v 1.4 2005/07/03 23:27:37 mpiergen Exp $ // // Code developed by: M. Piergentili #include "MedLinacDetectorMessenger.hh" - #include "MedLinacDetectorConstruction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" @@ -38,12 +37,17 @@ MedLinacDetectorMessenger::MedLinacDetectorMessenger( MedLinacDetectorConstruction* MedLinacDet) -:MedLinacDetector(MedLinacDet) + :MedLinacDetector(MedLinacDet) { + G4cout <<"==================DetectorMessenger "<SetGuidance("jaws position"); + MedLinacDir = new G4UIdirectory("/Phantom/"); + MedLinacDir->SetGuidance("phantom parameters"); + + X1Dir = new G4UIdirectory("/Jaws/X1/"); X2Dir = new G4UIdirectory("/Jaws/X2/"); Y1Dir = new G4UIdirectory("/Jaws/Y1/"); @@ -82,6 +86,24 @@ MedLinacDetectorMessenger::MedLinacDetectorMessenger( JawY2PosCmd->SetUnitCategory("Length"); JawY2PosCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + PhantomDimCmd = new G4UIcmdWithADoubleAndUnit("/Phantom/dimension",this); + PhantomDimCmd->SetGuidance("Set phantom dimension (cm)"); + PhantomDimCmd->SetParameterName("phantomDim",false); + PhantomDimCmd->SetDefaultUnit( "cm" ); + PhantomDimCmd->SetUnitCategory("Length"); + PhantomDimCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + NVoxelsCmd = new G4UIcmdWithAnInteger("/Phantom/Nvoxels",this); + NVoxelsCmd->SetGuidance("Set number of voxels along one axis"); + NVoxelsCmd->SetParameterName("numberOfVoxels",false); + NVoxelsCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + MaxStepCmd = new G4UIcmdWithADoubleAndUnit("/Phantom/maxStep",this); + MaxStepCmd->SetGuidance("Set max step in the phantom (mm)"); + MaxStepCmd->SetParameterName("maxStep",false); + MaxStepCmd->SetDefaultUnit( "mm" ); + MaxStepCmd->SetUnitCategory("Length"); + MaxStepCmd->AvailableForStates(G4State_PreInit,G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/Jaws/update",this); UpdateCmd->SetGuidance("Update geometry."); @@ -90,7 +112,6 @@ MedLinacDetectorMessenger::MedLinacDetectorMessenger( UpdateCmd->AvailableForStates(G4State_Idle); - } //**************************************************************************** @@ -100,12 +121,15 @@ MedLinacDetectorMessenger::~MedLinacDetectorMessenger() delete JawX2PosCmd; delete JawY1PosCmd; delete JawY2PosCmd; + delete PhantomDimCmd; + delete NVoxelsCmd; + delete MaxStepCmd; delete UpdateCmd; delete MedLinacDir; delete X1Dir; - delete X2Dir ; + delete X2Dir; delete Y1Dir; delete Y2Dir; } @@ -126,11 +150,17 @@ void MedLinacDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newVal if( command == JawY2PosCmd ) { MedLinacDetector->SetJawY2Pos_y(JawY2PosCmd->GetNewDoubleValue(newValue));} + if( command == PhantomDimCmd ) + { MedLinacDetector->SetPhantomDim(PhantomDimCmd->GetNewDoubleValue(newValue));} + + if( command == NVoxelsCmd ) + { MedLinacDetector->SetNumberOfVoxels(NVoxelsCmd->GetNewIntValue(newValue)); } + + if( command == MaxStepCmd ) + { MedLinacDetector->SetMaxStep(MaxStepCmd->GetNewDoubleValue(newValue));} if( command == UpdateCmd ) { MedLinacDetector->UpdateGeometry(); } - } - //**************************************************************************** diff --git a/examples/advanced/medical_linac/src/MedLinacEventAction.cc b/examples/advanced/medical_linac/src/MedLinacEventAction.cc index 4f0c7e8efe..ea78018450 100644 --- a/examples/advanced/medical_linac/src/MedLinacEventAction.cc +++ b/examples/advanced/medical_linac/src/MedLinacEventAction.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacEventAction.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacEventAction.cc,v 1.4 2005/07/03 23:27:37 mpiergen Exp $ // // // Code developed by: M. Piergentili diff --git a/examples/advanced/medical_linac/src/MedLinacHead.cc b/examples/advanced/medical_linac/src/MedLinacHead.cc index 93857083d2..9f174fa3dd 100644 --- a/examples/advanced/medical_linac/src/MedLinacHead.cc +++ b/examples/advanced/medical_linac/src/MedLinacHead.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacHead.cc,v 1.1 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacHead.cc,v 1.2 2005/07/03 23:27:37 mpiergen Exp $ // // Code developed by: M. Piergentili // @@ -99,12 +99,21 @@ MedLinacHead::~MedLinacHead() void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume* vacuumBlock) { + + //G4GeometryManager::GetInstance()->OpenGeometry(); + //G4PhysicalVolumeStore::GetInstance()->Clean(); + //G4LogicalVolumeStore::GetInstance()->Clean(); + //G4SolidStore::GetInstance()->Clean(); + //G4RegionStore::GetInstance()->Clean(); // -> Segmentation fault (core dumped) + + // materials G4double a; // atomic mass G4double z; // atomic number G4double density; G4int ncomponents; + //G4int natoms; G4String name; G4String symbol; G4double fractionmass; @@ -112,6 +121,11 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume G4double temperature; G4double pressure; + + //a = 207.19*g/mole; + //density = 11.35*g/cm3; + //G4Material* Pb = new G4Material(name="Lead", z=82., a, density); + a = 14.00674*g/mole; G4Element* elN = new G4Element(name="Nitrogen" ,symbol="N", z=7., a); @@ -124,18 +138,27 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume a = 12.011*g/mole; G4Element* elC = new G4Element(name="Carbon",symbol="C", z=6. , a ); - a = 49.29*g/mole; - density = 2.6989*g/cm3; - G4Material* Al = new G4Material(name="Aluminium", z=13., a, density); - density = 1.290*mg/cm3; G4Material* Air = new G4Material(name="Air",density, ncomponents=2); Air->AddElement(elN, fractionmass=70*perCent); Air->AddElement(elO, fractionmass=30*perCent); - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Lead", z=82., a, density); + //density = 2.702*g/cm3; + //a = 26.981539*g/mole; + //G4Material* Al = new G4Material(name="Aluminium", z=13., a, density); + + //density = 8.960*g/cm3; + //a = 63.55*g/mole; + //G4Material* Cu = new G4Material(name="Copper" , z=29., a, density); + + //a = 47.88*g/mole; + //density = 4.50*g/cm3; + //Titanium = new G4Material("titanium" ,z = 22.,a,density); + + //density = 19.3*g/cm3; + density = 18.*g/cm3; + a = 183.85*g/mole; + G4Material* W = new G4Material(name="Tungsten" , z=74., a, density); density = 1.848*g/cm3; a = 9.012182*g/mole; @@ -167,7 +190,7 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume //------------------------------ beam line along z axis-------SSD=100cm----------- - //---------rotation matrix first collimator-------- + //---------rotation matrix first collimator and filter-------- G4RotationMatrix* rotateMatrix=new G4RotationMatrix(); rotateMatrix->rotateX(180.0*deg); @@ -179,7 +202,7 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume //---------------colors---------- - G4Colour white (1.0, 1.0, 1.0); + //G4Colour white (1.0, 1.0, 1.0); G4Colour grey (0.5, 0.5, 0.5); //G4Colour lgrey (.75, .75, .75); G4Colour red (1.0, 0.0, 0.0); @@ -210,20 +233,20 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume //-------------------- the first collimator upper---------------- - + G4double innerRadiusOfTheTubeEx = 1.0*cm; G4double outerRadiusOfTheTubeEx = 8.*cm; - G4double hightOfTheTubeEx = 3.0*cm; + G4double hightOfTheTubeEx = 4.0*cm; G4double startAngleOfTheTubeEx = 0.*deg; G4double spanningAngleOfTheTubeEx = 360.*deg; G4Tubs* UpperCollimator = new G4Tubs("UpperCollimator",innerRadiusOfTheTubeEx, outerRadiusOfTheTubeEx,hightOfTheTubeEx, startAngleOfTheTubeEx,spanningAngleOfTheTubeEx); - UpperCollimator_log = new G4LogicalVolume(UpperCollimator,Pb,"UpperCollimator_log",0,0,0); + UpperCollimator_log = new G4LogicalVolume(UpperCollimator,W,"UpperCollimator_log",0,0,0); G4double UpperCollimatorPosX = 0.*cm; G4double UpperCollimatorPosY = 0.*cm; - G4double UpperCollimatorPosZ = 2.6*cm; + G4double UpperCollimatorPosZ = 2.645*cm; UpperCollimator_phys = new G4PVPlacement(0, G4ThreeVector(UpperCollimatorPosX,UpperCollimatorPosY, @@ -232,10 +255,11 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume //-------------------- the first collimator lower---------------- G4double pRmin1 = 0.*cm; - G4double pRmax1 = 0.6*cm; + //G4double pRmax1 = 0.3352897*cm; + G4double pRmax1 = 0.5*cm; G4double pRmin2 = 0.*cm; - G4double pRmax2 = 3.0*cm; - G4double hightOfTheCone =2.9*cm; + G4double pRmax2 = 1.7658592*cm; + G4double hightOfTheCone =3.2*cm; G4double startAngleOfTheCone = 0.*deg; G4double spanningAngleOfTheCone = 360.*deg; @@ -247,31 +271,34 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume G4double innerRadiusOfTheTube = 0.*cm; G4double outerRadiusOfTheTube = 8.*cm; - G4double hightOfTheTube = 2.8*cm; + G4double hightOfTheTube = 3.1*cm; G4double startAngleOfTheTube = 0.*deg; G4double spanningAngleOfTheTube = 360.*deg; G4Tubs* tracker_tube = new G4Tubs("tracker_tube",innerRadiusOfTheTube, outerRadiusOfTheTube,hightOfTheTube, startAngleOfTheTube,spanningAngleOfTheTube); - tracker_log = new G4LogicalVolume(tracker_tube,Pb,"tracker_log",0,0,0); + tracker_log = new G4LogicalVolume(tracker_tube,W,"tracker_log",0,0,0); G4SubtractionSolid* CylMinusCone = new G4SubtractionSolid("Cyl-Cone", tracker_tube,collim_cone); - CylMinusCone_log = new G4LogicalVolume(CylMinusCone,Pb,"CylminusCone_log",0,0,0); + CylMinusCone_log = new G4LogicalVolume(CylMinusCone,W,"CylminusCone_log",0,0,0); G4double CminusCPos_x = 0.*cm; G4double CminusCPos_y = 0.*cm; - G4double CminusCPos_z = -3.5*cm; + G4double CminusCPos_z = -4.455*cm; CylMinusCone_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(CminusCPos_x,CminusCPos_y,CminusCPos_z), "CylMinusCone",CylMinusCone_log,vacuumBlock,false,0); - //------------------window lower------------------- + + //delete collim_log; + //delete tracker_log; + //------------------window lower------------------- G4double windowLowDim_x = 4.*cm; G4double windowLowDim_y = 4.*cm; - G4double windowLowDim_z = 0.01*cm; + G4double windowLowDim_z = 0.0127*cm; G4Box* windowLow_box = new G4Box("windowLow_box",windowLowDim_x,windowLowDim_y,windowLowDim_z); windowLow_log = new G4LogicalVolume(windowLow_box,Be,"windowLow_log",0,0,0); @@ -288,9 +315,9 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume //---------------Ion chamber------------------------ G4double innerRadiusOfTheIonChamber = 0.*cm; - G4double outerRadiusOfTheIonChamber = 7.0*cm; - G4double hightOfTheWindows = 0.0125*cm; - G4double hightOfTheSignalPlates = 0.002*cm; + G4double outerRadiusOfTheIonChamber = 4.7625*cm; + G4double hightOfTheWindows = 0.0127*cm; + G4double hightOfTheSignalPlates = 0.00254*cm; G4double startAngleOfTheIonChamber = 0.*deg; G4double spanningAngleOfTheIonChamber = 360.*deg; G4double IonChamberPos_x = 0.0*cm; @@ -364,17 +391,17 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume G4double innerRadiusOfTheMirror = 0.*cm; G4double outerRadiusOfTheMirror = 6.*cm; - G4double hightOfTheMirror = 0.003*cm; + G4double hightOfTheMirror = 0.00254*cm; G4double startAngleOfTheMirror = 0.*deg; G4double spanningAngleOfTheMirror = 360.*deg; G4Tubs* Mirror = new G4Tubs("Mirror",innerRadiusOfTheMirror, outerRadiusOfTheMirror,hightOfTheMirror, startAngleOfTheMirror,spanningAngleOfTheMirror); - Mirror_log = new G4LogicalVolume(Mirror,Al,"Mirror_log",0,0,0); + Mirror_log = new G4LogicalVolume(Mirror,Mylar,"Mirror_log",0,0,0); G4double MirrorPos_x = 0.0*cm; G4double MirrorPos_y = 0.0*cm; - G4double MirrorPos_z = 95.0*cm; + G4double MirrorPos_z = 93.0*cm; Mirror_phys = new G4PVPlacement(rotateMirror, G4ThreeVector(MirrorPos_x,MirrorPos_y,MirrorPos_z), "Mirror",Mirror_log,world,false,0); @@ -383,7 +410,7 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume G4double reticleDim_x = 15.0*cm; G4double reticleDim_y = 15.0*cm; - G4double reticleDim_z = 0.002*cm; + G4double reticleDim_z = 0.00508*cm; G4Box* reticle = new G4Box("reticle",reticleDim_x, reticleDim_y,reticleDim_z); reticle_log = new G4LogicalVolume(reticle, @@ -397,20 +424,34 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume "reticle",reticle_log,world,false,0); // Cuts by Regions + + + //G4String regName[] = {"PrimaryCollimatorUp","PrimaryCollimatorLow"}; + //G4Region* aUpperCollRegion = new G4Region(regName[0]); + //G4Region* aLowerCollRegion = new G4Region(regName[1]); + //UpperCollimator_log->SetRegion(aUpperCollRegion); + //CylMinusCone_log->SetRegion(aLowerCollRegion); + //aUpperCollRegion->AddRootLogicalVolume(UpperCollimator_log); + //aLowerCollRegion->AddRootLogicalVolume(CylMinusCone_log); + + //G4String regName = "PrimaryCollimatorLow"; + //G4Region* aLowerCollRegion = new G4Region(regName); CylMinusCone_log->SetRegion(aLowerCollRegion); aLowerCollRegion->AddRootLogicalVolume(CylMinusCone_log); - + + //G4String regName1 = "PrimaryCollimatorUp"; + //G4Region* aUpperCollRegion = new G4Region(regName1); UpperCollimator_log->SetRegion(aUpperCollRegion); aUpperCollRegion->AddRootLogicalVolume(UpperCollimator_log); //--------- Visualization attributes ------------------------------- - G4VisAttributes* simpleLeadWVisAtt= new G4VisAttributes(magenta); - simpleLeadWVisAtt->SetVisibility(true); - simpleLeadWVisAtt->SetForceWireframe(true); - collim_log->SetVisAttributes(simpleLeadWVisAtt); - CylMinusCone_log->SetVisAttributes(simpleLeadWVisAtt); - UpperCollimator_log->SetVisAttributes(simpleLeadWVisAtt); + G4VisAttributes* simpleTungstenWVisAtt= new G4VisAttributes(magenta); + simpleTungstenWVisAtt->SetVisibility(true); + simpleTungstenWVisAtt->SetForceWireframe(true); + collim_log->SetVisAttributes(simpleTungstenWVisAtt); + CylMinusCone_log->SetVisAttributes(simpleTungstenWVisAtt); + UpperCollimator_log->SetVisAttributes(simpleTungstenWVisAtt); G4VisAttributes* simpleCopperSVisAtt= new G4VisAttributes(cyan); simpleCopperSVisAtt->SetVisibility(true); @@ -425,12 +466,9 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume G4VisAttributes* simpleMylarVisAtt= new G4VisAttributes(grey); simpleMylarVisAtt->SetVisibility(true); simpleMylarVisAtt->SetForceSolid(true); + Mirror_log->SetVisAttributes(simpleBerylliumSVisAtt); reticle_log->SetVisAttributes(simpleMylarVisAtt); - G4VisAttributes* simpleAlVisAtt= new G4VisAttributes(white); - simpleAlVisAtt->SetVisibility(true); - simpleAlVisAtt->SetForceSolid(true); - Mirror_log->SetVisAttributes(simpleAlVisAtt); G4VisAttributes* simpleKaptonVisAtt= new G4VisAttributes(yellow); simpleKaptonVisAtt->SetVisibility(true); @@ -451,7 +489,28 @@ void MedLinacHead::ConstructComponent(G4VPhysicalVolume* world,G4VPhysicalVolume //SignalPlate_log->SetVisAttributes(simpleWorldVisAtt); //reticle_log->SetVisAttributes(simpleWorldVisAtt); - } + //layer1_log->SetVisAttributes(simpleWorldVisAtt); + //layer2_log->SetVisAttributes(simpleWorldVisAtt); + //layer3_log->SetVisAttributes(simpleWorldVisAtt); + //layer4_log->SetVisAttributes(simpleWorldVisAtt); + //layer5_log->SetVisAttributes(simpleWorldVisAtt); + //layer6_log->SetVisAttributes(simpleWorldVisAtt); + //layer7_log->SetVisAttributes(simpleWorldVisAtt); + //layer8_log->SetVisAttributes(simpleWorldVisAtt); + //layer9_log->SetVisAttributes(simpleWorldVisAtt); + //layer10_log->SetVisAttributes(simpleWorldVisAtt); + //layer11_log->SetVisAttributes(simpleWorldVisAtt); + //layer12_log->SetVisAttributes(simpleWorldVisAtt); + //layer13_log->SetVisAttributes(simpleWorldVisAtt); + //layer14_log->SetVisAttributes(simpleWorldVisAtt); + //layer15_log->SetVisAttributes(simpleWorldVisAtt); + //layer16_log->SetVisAttributes(simpleWorldVisAtt); + //layer17_log->SetVisAttributes(simpleWorldVisAtt); + //layer18_log->SetVisAttributes(simpleWorldVisAtt); + //layer19_log->SetVisAttributes(simpleWorldVisAtt); + //layer21_log->SetVisAttributes(simpleWorldVisAtt); + +} void MedLinacHead::DestroyComponent() {;} diff --git a/examples/advanced/medical_linac/src/MedLinacPhantomHit.cc b/examples/advanced/medical_linac/src/MedLinacPhantomHit.cc index 90bb03b677..45cd4db96e 100644 --- a/examples/advanced/medical_linac/src/MedLinacPhantomHit.cc +++ b/examples/advanced/medical_linac/src/MedLinacPhantomHit.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacPhantomHit.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacPhantomHit.cc,v 1.4 2005/07/03 23:27:37 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -40,7 +40,9 @@ MedLinacPhantomHit::MedLinacPhantomHit(G4LogicalVolume* logVol,G4int XID,G4int Y { energyDeposit = 0; - } + //G4cout << "Hit generated1" << G4endl; + +} MedLinacPhantomHit::~MedLinacPhantomHit() { @@ -53,11 +55,14 @@ MedLinacPhantomHit::MedLinacPhantomHit(const MedLinacPhantomHit &right) zHitPosition = right.zHitPosition; yHitPosition = right.yHitPosition; energyDeposit = right.energyDeposit; + //G4cout << "=====energyDeposit in ImrtPhantomHit1 e'" << energyDeposit << G4endl; hitPosition = right.hitPosition; rotation = right.rotation; logicalVolume = right.logicalVolume; - } + //G4cout << "Hit generated2" << G4endl; + +} const MedLinacPhantomHit& MedLinacPhantomHit::operator=(const MedLinacPhantomHit &right) { @@ -68,7 +73,8 @@ const MedLinacPhantomHit& MedLinacPhantomHit::operator=(const MedLinacPhantomHit hitPosition = right.hitPosition; rotation = right.rotation; logicalVolume = right.logicalVolume; - return *this; + //G4cout << " EnergyDep in PhantomHit2 e' "<<" " << energyDeposit <SetGuidance("phantom parameters in sensitive detector"); + + PhantomDimCmd = new G4UIcmdWithADoubleAndUnit("/PhantomSD/dimension",this); + PhantomDimCmd->SetGuidance("Set phantom dimension (cm)"); + PhantomDimCmd->SetParameterName("phantomDim",false); + PhantomDimCmd->SetDefaultUnit( "cm" ); + PhantomDimCmd->SetUnitCategory("Length"); + PhantomDimCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + NVoxelsCmd = new G4UIcmdWithAnInteger("/PhantomSD/Nvoxels",this); + NVoxelsCmd->SetGuidance("Set number of voxels along one axis"); + NVoxelsCmd->SetParameterName("numberOfVoxels",false); + NVoxelsCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + +} + +//**************************************************************************** +MedLinacPhantomMessenger::~MedLinacPhantomMessenger() +{ + delete PhantomDimCmd; + delete NVoxelsCmd; + + delete MedLinacDir; + +} + +//**************************************************************************** + +void MedLinacPhantomMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + + if( command == PhantomDimCmd ) + { MedLinacP->SetPhantomDimension(PhantomDimCmd->GetNewDoubleValue(newValue));} + + if( command == NVoxelsCmd ) + { MedLinacP->SetNumberOfPhantomVoxels(NVoxelsCmd->GetNewIntValue(newValue)); } + +} +//**************************************************************************** diff --git a/examples/advanced/medical_linac/src/MedLinacPhantomSD.cc b/examples/advanced/medical_linac/src/MedLinacPhantomSD.cc index 1ae1adbaeb..a614c13477 100644 --- a/examples/advanced/medical_linac/src/MedLinacPhantomSD.cc +++ b/examples/advanced/medical_linac/src/MedLinacPhantomSD.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -//// $Id: MedLinacPhantomSD.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ +//// $Id: MedLinacPhantomSD.cc,v 1.6 2005/12/13 08:42:42 gunter Exp $ // // // Code developed by: M. Piergentili @@ -28,8 +28,10 @@ // // #include "MedLinacPhantomSD.hh" +#include "MedLinacPhantomMessenger.hh" #include "MedLinacPhantomHit.hh" #include "MedLinacAnalysisManager.hh" +#include "MedLinacPhantomMessenger.hh" #include "MedLinacDetectorConstruction.hh" #include "G4Track.hh" #include "G4LogicalVolume.hh" @@ -44,16 +46,30 @@ MedLinacPhantomSD::MedLinacPhantomSD(G4String name):G4VSensitiveDetector(name) { + phantomMessenger = new MedLinacPhantomMessenger(this); } MedLinacPhantomSD::~MedLinacPhantomSD() { + delete phantomMessenger; } void MedLinacPhantomSD::Initialize(G4HCofThisEvent*) { } +void MedLinacPhantomSD::SetPhantomDimension (G4double val) +{ + phantomDimension = val; + //G4cout <<"2==============================phantomDim "<< phantomDimension/mm<<"mm"<GetReplicaNumber(2); G4int j = ROhist->GetReplicaNumber(); + //G4int numberOfVoxelZ = 150; + //G4double voxelWidthZ = 2. *mm; + G4int numberOfVoxelZ = numberOfPhantomVoxels; + G4double voxelWidthZ = phantomDimension/numberOfVoxelZ; + //G4cout <<"########## phantomDimension "<< phantomDimension/mm<<"mm"< 130.*mm) - {analysis->FillHistogram3WithEnergy(x,y,energyDep/MeV);} - } - } - if(energyDep != 0) - { - analysis->FillHistogram1WithEnergy(x,z,energyDep/MeV); - } -//**** PDD in isocenter (Y and X Thickness = 5. mm) ********************** + MedLinacAnalysisManager::getInstance(); +//**** PDD in isocenter (Y and X Thickness = 5. mm) *********** if(energyDep != 0) { - if (y<2.5*mm){if (y> -2.5*mm) + if (y<=2.5*mm){if (y>= -2.5*mm) { - if(x<2.5*mm){if (x> -2.5*mm) - {analysis->FillHistogram4WithEnergy(z,energyDep/MeV);} - }}}} -//***** flatness along x ***** Depth=build-up for 6MV photon beam (15 mm)* + if(x<=2.5*mm){if (x>= -2.5*mm) + {analysis->FillHistogram1WithEnergy(z,energyDep/MeV);} + } + } + } + } +//***** flatness along x ***** Depth=build-up (15 mm)************************* if(energyDep != 0) { - if (z<137.5*mm){if (z> 132.5*mm) - { if (y<2.5*mm){if (y> -2.5*mm) - {analysis->FillHistogram5WithEnergy(x,energyDep/MeV);} - } + if (z<=137.5*mm){if (z>= 132.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram2WithEnergy(x,energyDep/MeV);} } - } + } + } } + +//***** flatness along x ***** Depth=50mm 5********************************* + if(energyDep != 0) + { + if (z<=102.5*mm){if (z>= 97.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram3WithEnergy(x,energyDep/MeV);} + }}}} + +//***** flatness along x ***** Depth=100 mm******************************** + if(energyDep != 0) + { + if (z<=52.5*mm){if (z>= 47.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram4WithEnergy(x,energyDep/MeV);} + }}}} +//***** flatness along x ***** Depth=200 mm******************************** + if(energyDep != 0) + { + if (z<=-47.5*mm){if (z>= -52.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram5WithEnergy(x,energyDep/MeV);} + }}}} +//**** PDD in isocenter (Y and X Thickness = 5. mm) *********** + if(energyDep != 0) + { + if (y<=2.5*mm){if (y>= -2.5*mm) + { + if(x<=2.5*mm){if (x>= -2.5*mm) + {analysis->FillHistogram6WithEnergy(z,energyDep/MeV);} + }}}} + +//***** flatness along x ***** Depth=build-up (15 mm)************************* + if(energyDep != 0) + { + if (z<=137.5*mm){if (z>= 132.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram7WithEnergy(x,energyDep/MeV);} + }}}} //***** flatness along x ***** Depth=50mm********************************* if(energyDep != 0) { - if (z<102.5*mm){if (z> 97.5*mm) - { if (y<2.5*mm){if (y> -2.5*mm) - {analysis->FillHistogram6WithEnergy(x,energyDep/MeV);} - } - } - } - } + if (z<=102.5*mm){if (z>= 97.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram8WithEnergy(x,energyDep/MeV);} + }}}} //***** flatness along x ***** Depth=100 mm******************************** if(energyDep != 0) { - if (z<52.5*mm){if (z> 47.5*mm) - { if (y<2.5*mm){if (y> -2.5*mm) - {analysis->FillHistogram7WithEnergy(x,energyDep/MeV);} - } - } - } - } + if (z<=52.5*mm){if (z>= 47.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram9WithEnergy(x,energyDep/MeV);} + }}}} //***** flatness along x ***** Depth=200 mm******************************** if(energyDep != 0) { - if (z<-47.5*mm){if (z> -52.5*mm) - { if (y<2.5*mm){if (y> -2.5*mm) - {analysis->FillHistogram8WithEnergy(x,energyDep/MeV);} + if (z<=-47.5*mm){if (z>= -52.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram10WithEnergy(x,energyDep/MeV);} } } } } -//************************************************************************** + +//**** PDD in isocenter (Y and X Thickness = 5. mm) *********** + if(energyDep != 0) + { + if (y<=2.5*mm){if (y>= -2.5*mm) + { + if(x<=2.5*mm){if (x>= -2.5*mm) + {analysis->FillHistogram11WithEnergy(z,energyDep/MeV);} + } + } + } + } +//***** flatness along x ***** Depth=build-up (15 mm)************************* + if(energyDep != 0) + { + if (z<=137.5*mm){if (z>= 132.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram12WithEnergy(x,energyDep/MeV);} + } + } + } + } +//***** flatness along x ***** Depth=50mm 5********************************* + if(energyDep != 0) + { + if (z<=102.5*mm){if (z>= 97.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram13WithEnergy(x,energyDep/MeV);} + }}}} +//***** flatness along x ***** Depth=100 mm******************************** + if(energyDep != 0) + { + if (z<=52.5*mm){if (z>= 47.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram14WithEnergy(x,energyDep/MeV);} + }}}} +//***** flatness along x ***** Depth=200 mm******************************** + if(energyDep != 0) + { + if (z<=-47.5*mm){if (z>= -52.5*mm) + { if (y<=2.5*mm){if (y>= -2.5*mm) + {analysis->FillHistogram15WithEnergy(x,energyDep/MeV);} + }}}} + #endif - - } - return true; + } +return true; } void MedLinacPhantomSD::EndOfEvent(G4HCofThisEvent*) @@ -170,5 +253,3 @@ void MedLinacPhantomSD::PrintAll() { } - - diff --git a/examples/advanced/medical_linac/src/MedLinacPhysicsList.cc b/examples/advanced/medical_linac/src/MedLinacPhysicsList.cc index f7b83851f1..a76a2bb1a8 100644 --- a/examples/advanced/medical_linac/src/MedLinacPhysicsList.cc +++ b/examples/advanced/medical_linac/src/MedLinacPhysicsList.cc @@ -20,13 +20,14 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacPhysicsList.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacPhysicsList.cc,v 1.4 2005/07/03 23:27:37 mpiergen Exp $ // // // Code developed by: M. Piergentili // #include "globals.hh" #include "MedLinacPhysicsList.hh" +#include "MedLinacPhysicsListMessenger.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" @@ -42,14 +43,15 @@ #include "G4RegionStore.hh" #include "G4ProductionCuts.hh" #include "G4ProductionCutsTable.hh" - +#include "G4StepLimiter.hh" MedLinacPhysicsList::MedLinacPhysicsList(): G4VUserPhysicsList() -{ - defaultCutValue = 0.1*mm; +{ + physicsListMessenger = new MedLinacPhysicsListMessenger(this); + //defaultCutValue = defaultCut; //cutForGamma = defaultCutValue; //cutForElectron = defaultCutValue; //cutForPositron = defaultCutValue; - SetVerboseLevel(1); + SetVerboseLevel(6); } MedLinacPhysicsList::~MedLinacPhysicsList() @@ -85,10 +87,9 @@ void MedLinacPhysicsList::ConstructProcess() AddTransportation(); ConstructEM(); - //ConstructGeneral(); } -//**************************************************************** +//--------------------------------------------------------------------- //#include "G4ComptonScattering.hh" //#include "G4GammaConversion.hh" @@ -99,16 +100,25 @@ void MedLinacPhysicsList::ConstructProcess() #include "G4LowEnergyGammaConversion.hh" #include "G4LowEnergyRayleigh.hh" -#include "G4MultipleScattering.hh" +//#include "G4PenelopePhotoElectric.hh" +//#include "G4PenelopeCompton.hh" +//#include "G4PenelopeGammaConversion.hh" +//#include "G4PenelopeRayleigh.hh" + +#include "G4MultipleScattering52.hh" #include "G4LowEnergyIonisation.hh" #include "G4LowEnergyBremsstrahlung.hh" + +//#include "G4PenelopeIonisation.hh" +//#include "G4PenelopeBremsstrahlung.hh" + #include "G4eIonisation.hh" #include "G4eBremsstrahlung.hh" #include "G4eplusAnnihilation.hh" -//******************************************************************** +//--------------------------------------------------------------------- void MedLinacPhysicsList::ConstructEM() { @@ -126,9 +136,17 @@ void MedLinacPhysicsList::ConstructEM() pmanager->AddDiscreteProcess(lowePhot); pmanager->AddDiscreteProcess(new G4LowEnergyCompton); pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion); + pmanager -> AddProcess(new G4StepLimiter(), -1, -1, 3); + //pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); //pmanager->AddDiscreteProcess(new G4ComptonScattering); //pmanager->AddDiscreteProcess(new G4GammaConversion); + + //pmanager->AddDiscreteProcess(new G4PenelopePhotoElectric); + //pmanager->AddDiscreteProcess(new G4PenelopeCompton); + //pmanager->AddDiscreteProcess(new G4PenelopeGammaConversion); + //pmanager->AddDiscreteProcess(new G4PenelopeRayleigh); + } else if (particleName == "e-") { //electron @@ -136,36 +154,41 @@ void MedLinacPhysicsList::ConstructEM() loweIon = new G4LowEnergyIonisation("LowEnergyIoni"); loweBrem = new G4LowEnergyBremsstrahlung("LowEnBrem"); - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(loweIon, -1, 2,2); pmanager->AddProcess(loweBrem, -1,-1,3); - - + pmanager -> AddProcess(new G4StepLimiter(), -1, -1, 3); + + //pmanager->AddProcess(new G4PenelopeIonisation, -1, 2,2); + //pmanager->AddProcess(new G4PenelopeBremsstrahlung, -1,-1,3); + //pmanager->AddProcess(new G4eIonisation, -1, 2,2); //pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); } else if (particleName == "e+") { //positron - pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4MultipleScattering52,-1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + pmanager -> AddProcess(new G4StepLimiter(), -1, -1, 3); } } } -//****************************************************************** +//--------------------------------------------------------------------- void MedLinacPhysicsList::SetCuts() { // uppress error messages even in case e/gamma/proton do not exist G4int temp = GetVerboseLevel(); - SetVerboseLevel(1); + SetVerboseLevel(6); // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types - + defaultCutValue = defaultCut; + //G4cout <<"--------------------default cut "<< defaultCutValue/mm << " mm " <GetRegion(regName[i]); + //G4ProductionCuts* cuts = new G4ProductionCuts; + //cuts->SetProductionCut(cutValue[i]); + //reg->SetProductionCuts(cuts); + //} + + G4String regName = "PrimaryCollimatorLow"; G4double cutValue = 8.*cm; G4Region* reg = G4RegionStore::GetInstance()->GetRegion(regName); @@ -197,6 +231,13 @@ void MedLinacPhysicsList::SetCuts() G4cout << "MedLinac::SetCuts: default cut length : " << G4BestUnit(defaultCutValue,"Length") << G4endl; } + } + + +void MedLinacPhysicsList::SetCut (G4double val) +{ + defaultCut = val; +} diff --git a/examples/advanced/medical_linac/src/MedLinacPhysicsListMessenger.cc b/examples/advanced/medical_linac/src/MedLinacPhysicsListMessenger.cc new file mode 100644 index 0000000000..b883e9f326 --- /dev/null +++ b/examples/advanced/medical_linac/src/MedLinacPhysicsListMessenger.cc @@ -0,0 +1,86 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: MedLinacPhysicsListMessenger.cc,v 1.1 2005/07/03 23:27:37 mpiergen Exp $ +// +// Code developed by: M. Piergentili + +#include "MedLinacPhysicsListMessenger.hh" + +#include "MedLinacPhysicsList.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + +//********************************************************************* + +MedLinacPhysicsListMessenger::MedLinacPhysicsListMessenger( + MedLinacPhysicsList* MedLinacCut) +:pMedLinacPhysicsList(MedLinacCut) +{ + + G4cout <<"==================PhysicsListMessenger "<SetGuidance("physics parameters"); + + CutCmd = new G4UIcmdWithADoubleAndUnit("/PhysicsList/cut",this); + CutCmd->SetGuidance("Set cut length (mm)"); + CutCmd->SetParameterName("defaultCut",false); + CutCmd->SetDefaultUnit( "mm" ); + CutCmd->SetUnitCategory("Length"); + CutCmd->AvailableForStates(G4State_PreInit); + + //UpdateCmd = new G4UIcmdWithoutParameter("/Jaws/update",this); + //UpdateCmd->SetGuidance("Update geometry."); + //UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); + //UpdateCmd->SetGuidance("if you changed geometrical value(s)."); + //UpdateCmd->AvailableForStates(G4State_Idle); + + +} + +//**************************************************************************** +MedLinacPhysicsListMessenger::~MedLinacPhysicsListMessenger() +{ + + delete CutCmd; + //delete UpdateCmd; + + delete PhysicsDir; +} + +//**************************************************************************** + +void MedLinacPhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == CutCmd ) + { pMedLinacPhysicsList->SetCut(CutCmd->GetNewDoubleValue(newValue));} + + //if( command == UpdateCmd ) + // { MedLinacDetector->UpdateGeometry(); } + +} + +//**************************************************************************** diff --git a/examples/advanced/medical_linac/src/MedLinacPrimaryGeneratorAction.cc b/examples/advanced/medical_linac/src/MedLinacPrimaryGeneratorAction.cc index 414413e01c..db5bf45f31 100644 --- a/examples/advanced/medical_linac/src/MedLinacPrimaryGeneratorAction.cc +++ b/examples/advanced/medical_linac/src/MedLinacPrimaryGeneratorAction.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacPrimaryGeneratorAction.cc,v 1.4 2004/11/24 13:49:42 mpiergen Exp $ +// $Id: MedLinacPrimaryGeneratorAction.cc,v 1.6 2005/12/07 14:18:41 guatelli Exp $ // // // Code developed by: M. Piergentili @@ -47,7 +47,8 @@ MedLinacPrimaryGeneratorAction::MedLinacPrimaryGeneratorAction() { G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); - //create a messenger for this class + +//create a messenger for this class gunMessenger = new MedLinacPrimaryGeneratorMessenger(this); // default particle kinematic @@ -57,8 +58,14 @@ MedLinacPrimaryGeneratorAction::MedLinacPrimaryGeneratorAction() particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="e-")); particleGun->SetParticleEnergy(pEnergy); + + //********************************************************************** + //********************************************************************** particleGun->SetParticlePosition(G4ThreeVector(0.0*cm, 0.0*cm, 123.0*cm)); - + //particleGun->SetParticlePosition(G4ThreeVector(0.0*cm, 0.0*cm, 160.09855*cm)); + //********************************************************************** + //********************************************************************** + } MedLinacPrimaryGeneratorAction::~MedLinacPrimaryGeneratorAction() @@ -71,29 +78,36 @@ void MedLinacPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { G4double energy; -#ifdef G4ANALYSIS_USE - MedLinacAnalysisManager* analysis = MedLinacAnalysisManager::getInstance(); -#endif + //#ifdef G4ANALYSIS_USE + //MedLinacAnalysisManager* analysis = MedLinacAnalysisManager::getInstance(); + //#endif - G4double cosTheta = RandGauss::shoot(-1.,0.00003); - G4double phi = twopi * G4UniformRand(); + //BeamLine + //G4ThreeVector v(0.0,0.0,-1.0); + //particleGun->SetParticleMomentumDirection(v); - G4double sinTheta = std::sqrt(1. - cosTheta*cosTheta); - G4double ux = sinTheta*std::cos(phi); - G4double uy = sinTheta*std::sin(phi); - G4double uz = cosTheta; + + //uniform distribution in solid angle (-1SetParticleMomentumDirection(G4ThreeVector(ux,uy,uz)); energy=pEnergy; - energy = RandGauss::shoot(pEnergy,sigma); + energy = CLHEP::RandGauss::shoot(pEnergy,sigma); particleGun->SetParticleEnergy(energy); + //G4cout <<"the energy of the primaries is " << energy <<" "<<"MeV"<< G4endl; + //G4cout <<"the sigma of the energy is " << sigma <<" "<<"MeV"<< G4endl; - //1D Histogram of primary particle energy ... -#ifdef G4ANALYSIS_USE - analysis->PrimaryParticleEnergySpectrum(energy); -#endif particleGun->GeneratePrimaryVertex(anEvent); } diff --git a/examples/advanced/medical_linac/src/MedLinacPrimaryGeneratorMessenger.cc b/examples/advanced/medical_linac/src/MedLinacPrimaryGeneratorMessenger.cc index 7685433e57..2a16345e1a 100644 --- a/examples/advanced/medical_linac/src/MedLinacPrimaryGeneratorMessenger.cc +++ b/examples/advanced/medical_linac/src/MedLinacPrimaryGeneratorMessenger.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacPrimaryGeneratorMessenger.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacPrimaryGeneratorMessenger.cc,v 1.4 2005/07/03 23:27:37 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -66,7 +66,7 @@ void MedLinacPrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, G4Stri G4double newSourceType = SourceTypeCmd->GetNewDoubleValue(newValue); MedLinacAction->SetSourceType(newSourceType); - G4cout << " standard deviation"<< newSourceType << G4endl; + G4cout << "dev stand "<< newSourceType << G4endl; } } diff --git a/examples/advanced/medical_linac/src/MedLinacRunAction.cc b/examples/advanced/medical_linac/src/MedLinacRunAction.cc index b80c4eae15..8b7c07e8e6 100644 --- a/examples/advanced/medical_linac/src/MedLinacRunAction.cc +++ b/examples/advanced/medical_linac/src/MedLinacRunAction.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: MedLinacRunAction.cc,v 1.3 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacRunAction.cc,v 1.5 2005/11/25 22:02:04 mpiergen Exp $ // // // Code developed by: M. Piergentili @@ -42,17 +42,13 @@ #endif -MedLinacRunAction::MedLinacRunAction(G4String SDName) +MedLinacRunAction::MedLinacRunAction() { - - sensitiveDetectorName = SDName; - detector = MedLinacDetectorConstruction::GetInstance(sensitiveDetectorName); } MedLinacRunAction::~MedLinacRunAction() { - delete detector; } void MedLinacRunAction::BeginOfRunAction(const G4Run* aRun) @@ -63,7 +59,7 @@ void MedLinacRunAction::BeginOfRunAction(const G4Run* aRun) #endif - G4cout << "Run " << aRun->GetRunID() << " start." << G4endl; + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; } diff --git a/examples/advanced/medical_linac/src/MedLinacTargetAndFilterDecorator.cc b/examples/advanced/medical_linac/src/MedLinacTargetAndFilterDecorator.cc index 792c10fe28..d13274d7c8 100644 --- a/examples/advanced/medical_linac/src/MedLinacTargetAndFilterDecorator.cc +++ b/examples/advanced/medical_linac/src/MedLinacTargetAndFilterDecorator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacTargetAndFilterDecorator.cc,v 1.1 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacTargetAndFilterDecorator.cc,v 1.2 2005/07/03 23:27:37 mpiergen Exp $ // // Code developed by: M. Piergentili // @@ -85,6 +85,7 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum G4double a; // atomic mass G4double z; // atomic number G4double density; + //G4int natoms; G4String symbol; G4String name; G4double fractionmass; @@ -95,14 +96,15 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum a = 16.00*g/mole; G4Element* elO = new G4Element(name="Oxygen",symbol="O", z=8., a); - - a = 49.29*g/mole; - density = 2.6989*g/cm3; - G4Material* Al = new G4Material(name="Aluminium", z=13., a, density); - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Lead", z=82., a, density); + + density = 8.960*g/cm3; + a = 63.55*g/mole; + G4Material* Cu = new G4Material(name="Copper" , z=29., a, density); + + density = 18.*g/cm3; + a = 183.85*g/mole; + G4Material* W = new G4Material(name="Tungsten" , z=74., a, density) ; density = 1.290*mg/cm3; G4Material* Air = new G4Material(name="Air",density, ncomponents=2); @@ -110,10 +112,11 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum Air->AddElement(elO, fractionmass=30*perCent); // colors - G4Colour cyan (0.0, 1.0, 1.0); + + G4Colour cyan (0.0, 1.0, 1.0); G4Colour magenta (1.0, 0.0, 1.0); - //---------rotation matrix filter-------- + //---------rotation matrix first collimator and filter-------- G4RotationMatrix* rotateMatrix=new G4RotationMatrix(); rotateMatrix->rotateX(180.0*deg); @@ -122,12 +125,13 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum // volumes // beam line along z axis //------------------------target 6MV------------------------ - + //G4double targetADim_x = 0.3576*cm; + //G4double targetADim_y = 0.3576*cm; G4double targetADim_x = 0.6*cm; G4double targetADim_y = 0.6*cm; G4double targetADim_z = 0.04445*cm; G4Box* targetA_box = new G4Box("targetA_box",targetADim_x,targetADim_y,targetADim_z); - targetA_log = new G4LogicalVolume(targetA_box,Pb,"targetA_log",0,0,0); + targetA_log = new G4LogicalVolume(targetA_box,W,"targetA_log",0,0,0); G4double targetAPos_x = 0.0*m; G4double targetAPos_y = 0.0*m; G4double targetAPos_z = 0.20055*cm; @@ -135,14 +139,16 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum G4ThreeVector(targetAPos_x,targetAPos_y,targetAPos_z), "targetA",targetA_log,vacuumBlock,false,0); - G4double targetBDim_x = 0.6*cm; + //G4double targetBDim_x = 0.3576*cm; + //G4double targetBDim_y = 0.3576*cm; + G4double targetBDim_x = 0.6*cm; G4double targetBDim_y = 0.6*cm; - G4double targetBDim_z = 0.0787*cm; + G4double targetBDim_z = 0.07874*cm; G4Box* targetB_box = new G4Box("targetB_box",targetBDim_x,targetBDim_y,targetBDim_z); - targetB_log = new G4LogicalVolume(targetB_box,Al,"targetB_log",0,0,0); + targetB_log = new G4LogicalVolume(targetB_box,Cu,"targetB_log",0,0,0); G4double targetBPos_x = 0.0*m; G4double targetBPos_y = 0.0*m; - G4double targetBPos_z = 0.0773*cm; + G4double targetBPos_z = 0.07736*cm; targetB_phys = new G4PVPlacement(0, G4ThreeVector(targetBPos_x,targetBPos_y,targetBPos_z), "targetB",targetB_log,vacuumBlock,false,0); @@ -163,276 +169,276 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum layer1Rmax2,layer1HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer1_log = new G4LogicalVolume(layer1,Al,"layer1_log",0,0,0); + layer1_log = new G4LogicalVolume(layer1,Cu,"layer1_log",0,0,0); - G4double layer1Pos_z = 103.404*cm; + G4double layer1Pos_z = 103.301*cm; layer1_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer1Pos_z), "layer1",layer1_log,world,false,0); //-----------layer2----------------------------- G4double layer2Rmax1 = 0.025*cm; - G4double layer2Rmax2 = 0.051*cm; + G4double layer2Rmax2 = 0.050*cm; G4double layer2HightOfTheCone = 0.0065*cm; G4Cons* layer2 = new G4Cons("layer2",layerRmin1,layer2Rmax1,layerRmin2, layer2Rmax2,layer2HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer2_log = new G4LogicalVolume(layer2,Al,"layer2_log",0,0,0); + layer2_log = new G4LogicalVolume(layer2,Cu,"layer2_log",0,0,0); - G4double layer2Pos_z = 103.3888*cm; + G4double layer2Pos_z = 103.2885*cm; layer2_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer2Pos_z), "layer2",layer2_log,world,false,0); //-----------layer3----------------------------- - G4double layer3Rmax1 = 0.051*cm; - G4double layer3Rmax2 = 0.077*cm; + G4double layer3Rmax1 = 0.050*cm; + G4double layer3Rmax2 = 0.075*cm; G4double layer3HightOfTheCone = 0.0075*cm; G4Cons* layer3 = new G4Cons("layer3",layerRmin1,layer3Rmax1,layerRmin2, layer3Rmax2,layer3HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer3_log = new G4LogicalVolume(layer3,Al,"layer3_log",0,0,0); + layer3_log = new G4LogicalVolume(layer3,Cu,"layer3_log",0,0,0); - G4double layer3Pos_z = 103.3748*cm; + G4double layer3Pos_z = 103.2745*cm; layer3_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer3Pos_z), "layer3",layer3_log,world,false,0); //-----------layer4----------------------------- - G4double layer4Rmax1 = 0.077*cm; - G4double layer4Rmax2 = 0.103*cm; + G4double layer4Rmax1 = 0.075*cm; + G4double layer4Rmax2 = 0.100*cm; G4double layer4HightOfTheCone = 0.009*cm; G4Cons* layer4 = new G4Cons("layer4",layerRmin1,layer4Rmax1,layerRmin2, layer4Rmax2,layer4HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer4_log = new G4LogicalVolume(layer4,Al,"layer4_log",0,0,0); + layer4_log = new G4LogicalVolume(layer4,Cu,"layer4_log",0,0,0); - G4double layer4Pos_z = 103.3583*cm; + G4double layer4Pos_z = 103.258*cm; layer4_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer4Pos_z), "layer4",layer4_log,world,false,0); //-----------layer5----------------------------- - G4double layer5Rmax1 = 0.103*cm; - G4double layer5Rmax2 = 0.154*cm; + G4double layer5Rmax1 = 0.100*cm; + G4double layer5Rmax2 = 0.150*cm; G4double layer5HightOfTheCone = 0.022*cm; G4Cons* layer5 = new G4Cons("layer5",layerRmin1,layer5Rmax1,layerRmin2, layer5Rmax2,layer5HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer5_log = new G4LogicalVolume(layer5,Al,"layer5_log",0,0,0); + layer5_log = new G4LogicalVolume(layer5,Cu,"layer5_log",0,0,0); - G4double layer5Pos_z = 103.3273*cm; + G4double layer5Pos_z = 103.227*cm; layer5_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer5Pos_z), "layer5",layer5_log,world,false,0); //-----------layer6----------------------------- - G4double layer6Rmax1 = 0.154*cm; - G4double layer6Rmax2 = 0.205*cm; + G4double layer6Rmax1 = 0.150*cm; + G4double layer6Rmax2 = 0.200*cm; G4double layer6HightOfTheCone = 0.024*cm; G4Cons* layer6 = new G4Cons("layer6",layerRmin1,layer6Rmax1,layerRmin2, layer6Rmax2,layer6HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer6_log = new G4LogicalVolume(layer6,Al,"layer6_log",0,0,0); + layer6_log = new G4LogicalVolume(layer6,Cu,"layer6_log",0,0,0); - G4double layer6Pos_z = 103.2813*cm; + G4double layer6Pos_z = 103.181*cm; layer6_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer6Pos_z), "layer6",layer6_log,world,false,0); //-----------layer7----------------------------- - G4double layer7Rmax1 = 0.205*cm; - G4double layer7Rmax2 = 0.256*cm; + G4double layer7Rmax1 = 0.200*cm; + G4double layer7Rmax2 = 0.250*cm; G4double layer7HightOfTheCone = 0.023*cm; G4Cons* layer7 = new G4Cons("layer7",layerRmin1,layer7Rmax1,layerRmin2, layer7Rmax2,layer7HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer7_log = new G4LogicalVolume(layer7,Al,"layer7_log",0,0,0); + layer7_log = new G4LogicalVolume(layer7,Cu,"layer7_log",0,0,0); - G4double layer7Pos_z = 103.2343*cm; + G4double layer7Pos_z = 103.134*cm; layer7_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer7Pos_z), "layer7",layer7_log,world,false,0); //-----------layer8----------------------------- - G4double layer8Rmax1 = 0.256*cm; - G4double layer8Rmax2 = 0.307*cm; + G4double layer8Rmax1 = 0.250*cm; + G4double layer8Rmax2 = 0.300*cm; G4double layer8HightOfTheCone = 0.023*cm; G4Cons* layer8 = new G4Cons("layer8",layerRmin1,layer8Rmax1,layerRmin2, layer8Rmax2,layer8HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer8_log = new G4LogicalVolume(layer8,Al,"layer8_log",0,0,0); + layer8_log = new G4LogicalVolume(layer8,Cu,"layer8_log",0,0,0); - G4double layer8Pos_z = 103.1883*cm; + G4double layer8Pos_z = 103.088*cm; layer8_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer8Pos_z), "layer8",layer8_log,world,false,0); //-----------layer9----------------------------- - G4double layer9Rmax1 = 0.307*cm; - G4double layer9Rmax2 = 0.358*cm; + G4double layer9Rmax1 = 0.300*cm; + G4double layer9Rmax2 = 0.350*cm; G4double layer9HightOfTheCone = 0.0225*cm; G4Cons* layer9 = new G4Cons("layer9",layerRmin1,layer9Rmax1,layerRmin2, layer9Rmax2,layer9HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer9_log = new G4LogicalVolume(layer9,Al,"layer9_log",0,0,0); + layer9_log = new G4LogicalVolume(layer9,Cu,"layer9_log",0,0,0); - G4double layer9Pos_z = 103.1428*cm; + G4double layer9Pos_z = 103.0425*cm; layer9_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer9Pos_z), "layer9",layer9_log,world,false,0); //-----------layer10----------------------------- - G4double layer10Rmax1 = 0.358*cm; - G4double layer10Rmax2 = 0.409*cm; + G4double layer10Rmax1 = 0.350*cm; + G4double layer10Rmax2 = 0.400*cm; G4double layer10HightOfTheCone = 0.022*cm; G4Cons* layer10 = new G4Cons("layer10",layerRmin1,layer10Rmax1,layerRmin2, layer10Rmax2,layer10HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer10_log = new G4LogicalVolume(layer10,Al,"layer10_log",0,0,0); + layer10_log = new G4LogicalVolume(layer10,Cu,"layer10_log",0,0,0); - G4double layer10Pos_z = 103.0983*cm; + G4double layer10Pos_z = 102.998*cm; layer10_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer10Pos_z), "layer10",layer10_log,world,false,0); //-----------layer11----------------------------- - G4double layer11Rmax1 = 0.409*cm; - G4double layer11Rmax2 = 0.510*cm; + G4double layer11Rmax1 = 0.400*cm; + G4double layer11Rmax2 = 0.500*cm; G4double layer11HightOfTheCone = 0.0425*cm; G4Cons* layer11 = new G4Cons("layer11",layerRmin1,layer11Rmax1,layerRmin2, layer11Rmax2,layer11HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer11_log = new G4LogicalVolume(layer11,Al,"layer11_log",0,0,0); + layer11_log = new G4LogicalVolume(layer11,Cu,"layer11_log",0,0,0); - G4double layer11Pos_z = 103.0338*cm; + G4double layer11Pos_z = 102.9335*cm; layer11_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer11Pos_z), "layer11",layer11_log,world,false,0); //-----------layer12----------------------------- - G4double layer12Rmax1 = 0.510*cm; - G4double layer12Rmax2 = 0.620*cm; + G4double layer12Rmax1 = 0.500*cm; + G4double layer12Rmax2 = 0.600*cm; G4double layer12HightOfTheCone = 0.0395*cm; G4Cons* layer12 = new G4Cons("layer12",layerRmin1,layer12Rmax1,layerRmin2, layer12Rmax2,layer12HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer12_log = new G4LogicalVolume(layer12,Al,"layer12_log",0,0,0); + layer12_log = new G4LogicalVolume(layer12,Cu,"layer12_log",0,0,0); - G4double layer12Pos_z = 102.9518*cm; + G4double layer12Pos_z = 102.8515*cm; layer12_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer12Pos_z), "layer12",layer12_log,world,false,0); //-----------layer13----------------------------- - G4double layer13Rmax1 = 0.620*cm; - G4double layer13Rmax2 = 0.730*cm; + G4double layer13Rmax1 = 0.600*cm; + G4double layer13Rmax2 = 0.700*cm; G4double layer13HightOfTheCone = 0.038*cm; G4Cons* layer13 = new G4Cons("layer13",layerRmin1,layer13Rmax1,layerRmin2, layer13Rmax2,layer13HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer13_log = new G4LogicalVolume(layer13,Al,"layer13_log",0,0,0); + layer13_log = new G4LogicalVolume(layer13,Cu,"layer13_log",0,0,0); - G4double layer13Pos_z = 102.8743*cm; + G4double layer13Pos_z = 102.774*cm; layer13_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer13Pos_z), "layer13",layer13_log,world,false,0); //-----------layer14----------------------------- - G4double layer14Rmax1 = 0.730*cm; - G4double layer14Rmax2 = 0.840*cm; + G4double layer14Rmax1 = 0.700*cm; + G4double layer14Rmax2 = 0.800*cm; G4double layer14HightOfTheCone = 0.0335*cm; G4Cons* layer14 = new G4Cons("layer14",layerRmin1,layer14Rmax1,layerRmin2, layer14Rmax2,layer14HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer14_log = new G4LogicalVolume(layer14,Al,"layer14_log",0,0,0); + layer14_log = new G4LogicalVolume(layer14,Cu,"layer14_log",0,0,0); - G4double layer14Pos_z = 102.8028*cm; + G4double layer14Pos_z = 102.7025*cm; layer14_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer14Pos_z), "layer14",layer14_log,world,false,0); //-----------layer15----------------------------- - G4double layer15Rmax1 = 0.840*cm; - G4double layer15Rmax2 = 0.950*cm; + G4double layer15Rmax1 = 0.800*cm; + G4double layer15Rmax2 = 0.900*cm; G4double layer15HightOfTheCone = 0.0325*cm; G4Cons* layer15 = new G4Cons("layer15",layerRmin1,layer15Rmax1,layerRmin2, layer15Rmax2,layer15HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer15_log = new G4LogicalVolume(layer15,Al,"layer15_log",0,0,0); + layer15_log = new G4LogicalVolume(layer15,Cu,"layer15_log",0,0,0); - G4double layer15Pos_z = 102.7368*cm; + G4double layer15Pos_z = 102.6365*cm; layer15_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer15Pos_z), "layer15",layer15_log,world,false,0); //-----------layer16----------------------------- - G4double layer16Rmax1 = 0.950*cm; - G4double layer16Rmax2 = 1.050*cm; + G4double layer16Rmax1 = 0.900*cm; + G4double layer16Rmax2 = 1.000*cm; G4double layer16HightOfTheCone = 0.028*cm; G4Cons* layer16 = new G4Cons("layer16",layerRmin1,layer16Rmax1,layerRmin2, layer16Rmax2,layer16HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer16_log = new G4LogicalVolume(layer16,Al,"layer16_log",0,0,0); + layer16_log = new G4LogicalVolume(layer16,Cu,"layer16_log",0,0,0); - G4double layer16Pos_z = 102.6763*cm; + G4double layer16Pos_z = 102.576*cm; layer16_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer16Pos_z), "layer16",layer16_log,world,false,0); //-----------layer17----------------------------- - G4double layer17Rmax1 = 1.050*cm; - G4double layer17Rmax2 = 1.150*cm; + G4double layer17Rmax1 = 1.000*cm; + G4double layer17Rmax2 = 1.100*cm; G4double layer17HightOfTheCone = 0.0275*cm; G4Cons* layer17 = new G4Cons("layer17",layerRmin1,layer17Rmax1,layerRmin2, layer17Rmax2,layer17HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer17_log = new G4LogicalVolume(layer17,Al,"layer17_log",0,0,0); + layer17_log = new G4LogicalVolume(layer17,Cu,"layer17_log",0,0,0); - G4double layer17Pos_z = 102.56208*cm; + G4double layer17Pos_z = 102.5205*cm; layer17_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer17Pos_z), "layer17",layer17_log,world,false,0); //-----------layer18----------------------------- - G4double layer18Rmax1 = 1.150*cm; - G4double layer18Rmax2 = 1.215*cm; + G4double layer18Rmax1 = 1.100*cm; + G4double layer18Rmax2 = 1.205*cm; G4double layer18HightOfTheCone = 0.019*cm; G4Cons* layer18 = new G4Cons("layer18",layerRmin1,layer18Rmax1,layerRmin2, layer18Rmax2,layer18HightOfTheCone,startAngleOfTheCone, spanningAngleOfTheCone); - layer18_log = new G4LogicalVolume(layer18,Al,"layer18_log",0,0,0); + layer18_log = new G4LogicalVolume(layer18,Cu,"layer18_log",0,0,0); - G4double layer18Pos_z = 102.4743*cm; + G4double layer18Pos_z = 102.474*cm; layer18_phys = new G4PVPlacement(rotateMatrix, G4ThreeVector(layerPos_x,layerPos_y,layer18Pos_z), "layer18",layer18_log,world,false,0); //-----------layer19----------------------------- G4double innerRadiusOfTheLayer19 = 0.0*cm; - G4double outerRadiusOfTheLayer19 = 1.335*cm; + G4double outerRadiusOfTheLayer19 = 1.325*cm; G4double hightOfTheLayer19 = 0.040*cm; G4double startAngleOfTheLayer19 = 0.*deg; G4double spanningAngleOfTheLayer19 = 360.*deg; G4Tubs* layer19 = new G4Tubs("layer19",innerRadiusOfTheLayer19, outerRadiusOfTheLayer19,hightOfTheLayer19, startAngleOfTheLayer19,spanningAngleOfTheLayer19); - layer19_log = new G4LogicalVolume(layer19,Al,"layer19_log",0,0,0); + layer19_log = new G4LogicalVolume(layer19,Cu,"layer19_log",0,0,0); G4double layer19PosX = 0.*cm; G4double layer19PosY = 0.*cm; - G4double layer19PosZ = 102.4153*cm; + G4double layer19PosZ = 102.415*cm; layer19_phys = new G4PVPlacement(0, G4ThreeVector(layer19PosX,layer19PosY, @@ -440,17 +446,19 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum layer19_log,world,false,0); //-----------layer20----------------------------- G4double innerRadiusOfTheLayer20A = 1.300*cm; - G4double outerRadiusOfTheLayer20A = 1.335*cm; + G4double outerRadiusOfTheLayer20A = 1.325*cm; G4double hightOfTheLayer20A = 0.0225*cm; G4double startAngleOfTheLayer20A = 0.*deg; G4double spanningAngleOfTheLayer20A = 360.*deg; G4Tubs* layer20A = new G4Tubs("layer20A",innerRadiusOfTheLayer20A, outerRadiusOfTheLayer20A,hightOfTheLayer20A, startAngleOfTheLayer20A,spanningAngleOfTheLayer20A); - layer20A_log = new G4LogicalVolume(layer20A,Al,"layer20A_log",0,0,0); + layer20A_log = new G4LogicalVolume(layer20A,Cu,"layer20A_log",0,0,0); +//ho dovuto aumentare di 0.001 cm le dim cone20Rmax2 cone20Rmax1 per far funzionare il G4SubtractionSolid + G4double cone20Rmin1 = 0.*cm; - G4double cone20Rmax1 = 1.335*cm; + G4double cone20Rmax1 = 1.326*cm; G4double cone20Rmin2 = 0.*cm; G4double cone20Rmax2 = 1.301*cm; G4double hightOfThecone20 =0.0225*cm; @@ -463,30 +471,30 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum cone20_log = new G4LogicalVolume(cone20,Air,"cone20_log",0,0,0); G4SubtractionSolid* layer20 = new G4SubtractionSolid("layer20",layer20A,cone20); - layer20_log = new G4LogicalVolume(layer20,Al,"layer20_log",0,0,0); + layer20_log = new G4LogicalVolume(layer20,Cu,"layer20_log",0,0,0); G4double layer20PosX = 0.*cm; G4double layer20PosY = 0.*cm; - G4double layer20PosZ = 102.4778*cm; + G4double layer20PosZ = 102.4775*cm; layer20_phys = new G4PVPlacement(0, G4ThreeVector(layer20PosX,layer20PosY, layer20PosZ),"layer20", layer20_log,world,false,0); //-----------layer21----------------------------- - G4double innerRadiusOfTheLayer21 = 1.335*cm; - G4double outerRadiusOfTheLayer21 = 1.600*cm; + G4double innerRadiusOfTheLayer21 = 1.325*cm; + G4double outerRadiusOfTheLayer21 = 1.500*cm; G4double hightOfTheLayer21 = 0.0625*cm; G4double startAngleOfTheLayer21 = 0.*deg; G4double spanningAngleOfTheLayer21 = 360.*deg; G4Tubs* layer21 = new G4Tubs("layer21",innerRadiusOfTheLayer21, outerRadiusOfTheLayer21,hightOfTheLayer21, startAngleOfTheLayer21,spanningAngleOfTheLayer21); - layer21_log = new G4LogicalVolume(layer21,Al,"layer21_log",0,0,0); + layer21_log = new G4LogicalVolume(layer21,Cu,"layer21_log",0,0,0); G4double layer21PosX = 0.*cm; G4double layer21PosY = 0.*cm; - G4double layer21PosZ = 102.4378*cm; + G4double layer21PosZ = 102.4375*cm; layer21_phys = new G4PVPlacement(0, G4ThreeVector(layer21PosX,layer21PosY, @@ -495,41 +503,13 @@ void MedLinacTargetAndFilterDecorator::ConstructTargetAndFilter(G4VPhysicalVolum // Visualization attributes - G4VisAttributes* simpleAlSVisAtt= new G4VisAttributes(cyan); - simpleAlSVisAtt->SetVisibility(true); - simpleAlSVisAtt->SetForceSolid(true); - targetB_log->SetVisAttributes(simpleAlSVisAtt); - layer1_log->SetVisAttributes(simpleAlSVisAtt); - layer2_log->SetVisAttributes(simpleAlSVisAtt); - layer3_log->SetVisAttributes(simpleAlSVisAtt); - layer4_log->SetVisAttributes(simpleAlSVisAtt); - layer5_log->SetVisAttributes(simpleAlSVisAtt); - layer6_log->SetVisAttributes(simpleAlSVisAtt); - layer7_log->SetVisAttributes(simpleAlSVisAtt); - layer8_log->SetVisAttributes(simpleAlSVisAtt); - layer9_log->SetVisAttributes(simpleAlSVisAtt); - layer10_log->SetVisAttributes(simpleAlSVisAtt); - layer11_log->SetVisAttributes(simpleAlSVisAtt); - layer12_log->SetVisAttributes(simpleAlSVisAtt); - layer13_log->SetVisAttributes(simpleAlSVisAtt); - layer14_log->SetVisAttributes(simpleAlSVisAtt); - layer15_log->SetVisAttributes(simpleAlSVisAtt); - layer16_log->SetVisAttributes(simpleAlSVisAtt); - layer17_log->SetVisAttributes(simpleAlSVisAtt); - layer18_log->SetVisAttributes(simpleAlSVisAtt); - layer19_log->SetVisAttributes(simpleAlSVisAtt); - layer20_log->SetVisAttributes(simpleAlSVisAtt); - layer21_log->SetVisAttributes(simpleAlSVisAtt); - - G4VisAttributes* simpleLeadSVisAtt= new G4VisAttributes(magenta); - simpleLeadSVisAtt->SetVisibility(true); - simpleLeadSVisAtt->SetForceSolid(true); - targetA_log->SetVisAttributes(simpleLeadSVisAtt); - - - - - - + G4VisAttributes* simpleCopperSVisAtt= new G4VisAttributes(cyan); + simpleCopperSVisAtt->SetVisibility(true); + simpleCopperSVisAtt->SetForceSolid(true); + targetB_log->SetVisAttributes(simpleCopperSVisAtt); + G4VisAttributes* simpleTungstenSVisAtt= new G4VisAttributes(magenta); + simpleTungstenSVisAtt->SetVisibility(true); + simpleTungstenSVisAtt->SetForceSolid(true); + targetA_log->SetVisAttributes(simpleTungstenSVisAtt); } diff --git a/examples/advanced/medical_linac/src/MedLinacTrackingAction.cc b/examples/advanced/medical_linac/src/MedLinacTrackingAction.cc index 28033241c8..9fc514a35e 100644 --- a/examples/advanced/medical_linac/src/MedLinacTrackingAction.cc +++ b/examples/advanced/medical_linac/src/MedLinacTrackingAction.cc @@ -47,8 +47,6 @@ void MedLinacTrackingAction::PreUserTrackingAction(const G4Track* aTrack) // Create trajectory only for primaries // check if particle is gamma - - G4ParticleDefinition* particleType = aTrack->GetDefinition(); G4ThreeVector direction = aTrack->GetMomentumDirection(); G4double theta = std::acos(std::abs(direction.z())); @@ -57,8 +55,8 @@ void MedLinacTrackingAction::PreUserTrackingAction(const G4Track* aTrack) //fpTrackingManager->SetStoreTrajectory(true); if(particleType==G4Gamma::GammaDefinition()) { - if(theta>=25.*deg){ - // check if particle is in the target + if(theta>=20.*deg){ + // check if particle is in target G4ThreeVector pos = aTrack->GetPosition(); G4ThreeVector *ptr = NULL; G4VPhysicalVolume *theVolume; diff --git a/examples/advanced/medical_linac/src/MedLinacVGeometryComponent.cc b/examples/advanced/medical_linac/src/MedLinacVGeometryComponent.cc index 3537c137fe..0e2b743988 100644 --- a/examples/advanced/medical_linac/src/MedLinacVGeometryComponent.cc +++ b/examples/advanced/medical_linac/src/MedLinacVGeometryComponent.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: MedLinacVGeometryComponent.cc,v 1.1 2004/05/14 18:25:40 mpiergen Exp $ +// $Id: MedLinacVGeometryComponent.cc,v 1.2 2005/07/03 23:27:37 mpiergen Exp $ // // Code developed by: M. Piergentili // diff --git a/examples/advanced/medical_linac/vis.mac b/examples/advanced/medical_linac/vis.mac index 38e6071562..8265e95238 100644 --- a/examples/advanced/medical_linac/vis.mac +++ b/examples/advanced/medical_linac/vis.mac @@ -1,12 +1,12 @@ - +/PhysicsList/cut 0.2 mm /control/verbose 2 /control/saveHistory /run/verbose 2 - +/run/initialize /vis/scene/create /vis/open OGLIX -/vis/drawVolume +#/vis/drawVolume /vis/viewer/update /vis/viewer/set/viewpointThetaPhi 70 20 deg /vis/viewer/zoom 1 @@ -17,10 +17,19 @@ # # # for drawing the tracks + /run/initialize + /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate +/Phantom/dimension 15. cm +/Phantom/Nvoxels 150 +/Phantom/maxStep 0.2 mm + +/PhantomSD/dimension 15. cm +/PhantomSD/Nvoxels 150 + # Multi Leaf /MLC/leaf_selection a1 diff --git a/examples/advanced/medical_linac/vrmlvis.mac b/examples/advanced/medical_linac/vrmlvis.mac index 5651a9b0ce..ea29ead536 100644 --- a/examples/advanced/medical_linac/vrmlvis.mac +++ b/examples/advanced/medical_linac/vrmlvis.mac @@ -1,28 +1,29 @@ - -/control/verbose 2 +/PhysicsList/cut 0.2 mm +/control/verbose 1 /control/saveHistory /run/verbose 2 - - /vis/scene/create /vis/open VRML2FILE -/vis/drawVolume -/vis/viewer/update -/vis/viewer/set/viewpointThetaPhi 60 30 deg -/vis/viewer/zoom 1 - /vis/viewer/flush -# -# draw scene/ -# -# -# for drawing the tracks -/run/initialize +/vis/viewer/set/viewpointThetaPhi 90 180 deg +/vis/viewer/zoom 1.4 /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate +/vis/viewer/update +/run/initialize +/tracking/storeTrajectory 1 + +/Phantom/dimension 15. cm +/Phantom/Nvoxels 150 +/Phantom/maxStep 0.2 mm + +/PhantomSD/dimension 15. cm +/PhantomSD/Nvoxels 150 # Multi Leaf + + /MLC/leaf_selection a1 /MLC/position 0. cm /MLC/leaf_selection a2 @@ -186,14 +187,14 @@ /MLC/leaf_selection b40 /MLC/position 0. cm + + /Jaws/X1/DistanceFromAxis -4.2 cm /Jaws/X2/DistanceFromAxis 5.2 cm /Jaws/Y1/DistanceFromAxis -6.6 cm /Jaws/Y2/DistanceFromAxis 6.8 cm - /Jaws/update /energy 6.0 MeV /sourceType 0.127 MeV -/vis/viewer/update /run/beamOn 1000 diff --git a/examples/advanced/purging_magnet/History b/examples/advanced/purging_magnet/History index e891d6f3fd..2f89e74c2b 100644 --- a/examples/advanced/purging_magnet/History +++ b/examples/advanced/purging_magnet/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.7 2005/05/03 10:05:48 allison Exp $ +$Id: History,v 1.8 2005/12/07 14:35:12 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,6 +8,9 @@ $Id: History,v 1.7 2005/05/03 10:05:48 allison Exp $ Category History file --------------------- +07.12.2005 Susanna Guatelli (purtag-V07-01-00) +- The example compiles with CLHEP 2.0.2.2 +- The method SetCutForOthers() is deleted because obsolete 3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. diff --git a/examples/advanced/purging_magnet/PurgMag.cc b/examples/advanced/purging_magnet/PurgMag.cc index 85b0f167d6..f5639f22ec 100644 --- a/examples/advanced/purging_magnet/PurgMag.cc +++ b/examples/advanced/purging_magnet/PurgMag.cc @@ -29,8 +29,8 @@ // * * // ********************* // -// $Id: PurgMag.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PurgMag.cc,v 1.4 2005/12/07 14:35:12 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Comments: Main program for the Purgin Magnet example. // @@ -56,7 +56,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //PurgMag Verbose output class G4VSteppingVerbose::SetInstance(new PurgMagSteppingVerbose); diff --git a/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh b/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh index 80fae64ba2..8b346b7776 100644 --- a/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh +++ b/examples/advanced/purging_magnet/include/PurgMagAnalysisManager.hh @@ -30,7 +30,7 @@ // ************************************ // // $Id: PurgMagAnalysisManager.hh,v 1.2 2004/06/18 09:17:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifdef G4ANALYSIS_USE diff --git a/examples/advanced/purging_magnet/include/PurgMagDetectorConstruction.hh b/examples/advanced/purging_magnet/include/PurgMagDetectorConstruction.hh index 194c0d6a8c..8dea32c57f 100644 --- a/examples/advanced/purging_magnet/include/PurgMagDetectorConstruction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagDetectorConstruction.hh @@ -30,7 +30,7 @@ // ***************************************** // // $Id: PurgMagDetectorConstruction.hh,v 1.2 2004/06/18 09:17:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagEventAction.hh b/examples/advanced/purging_magnet/include/PurgMagEventAction.hh index 4d6f3c7bc8..fa30503d77 100644 --- a/examples/advanced/purging_magnet/include/PurgMagEventAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagEventAction.hh @@ -30,7 +30,7 @@ // ******************************** // // $Id: PurgMagEventAction.hh,v 1.2 2004/06/18 09:17:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagPhysicsList.hh b/examples/advanced/purging_magnet/include/PurgMagPhysicsList.hh index b56ff4da32..1395f9c706 100644 --- a/examples/advanced/purging_magnet/include/PurgMagPhysicsList.hh +++ b/examples/advanced/purging_magnet/include/PurgMagPhysicsList.hh @@ -20,87 +20,87 @@ // * statement, and all its terms. * // ******************************************************************** // -// Code developed by: -// S.Larsson -// -// ******************************** -// * * -// * PurgMagPhysicsList.hh * -// * * -// ******************************** -// -// -// $Id: PurgMagPhysicsList.hh,v 1.2 2004/06/18 09:17:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef PurgMagPhysicsList_h -#define PurgMagPhysicsList_h 1 - -#include "G4VUserPhysicsList.hh" -#include "globals.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class G4GammaConversion; -class G4ComptonScattering; -class G4PhotoElectricEffect; - -class G4eIonisation; -class G4eBremsstrahlung; - - -class PurgMagPhysicsList: public G4VUserPhysicsList -{ -public: - PurgMagPhysicsList(); - ~PurgMagPhysicsList(); - -protected: - // Construct particle and physics - void ConstructParticle(); - void ConstructProcess(); - - void SetCuts(); - -public: - // Set Cuts - void SetGammaCut(G4double); - void SetElectronCut(G4double); - void SetPositronCut(G4double); - void SetProtonCut(G4double); - - void SetGammaLowLimit(G4double); - void SetElectronLowLimit(G4double); - void SetPositronLowLimit(G4double); - void SetProtonLowLimit(G4double); - void SetGEPLowLimit(G4double); - - void SetGELowLimit(G4double); - -private: - - G4double cutForGamma; - G4double cutForElectron; - G4double cutForPositron; - G4double cutForProton; - -protected: - // these methods Construct particles - void ConstructBosons(); - void ConstructLeptons(); - void ConstructBarions(); - -protected: - // these methods Construct physics processes and register them - void ConstructGeneral(); - void ConstructEM(); - -private: - -}; -#endif - - - +// Code developed by: +// S.Larsson +// +// ******************************** +// * * +// * PurgMagPhysicsList.hh * +// * * +// ******************************** +// +// +// $Id: PurgMagPhysicsList.hh,v 1.3 2005/12/14 16:06:49 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef PurgMagPhysicsList_h +#define PurgMagPhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4GammaConversion; +class G4ComptonScattering; +class G4PhotoElectricEffect; + +class G4eIonisation; +class G4eBremsstrahlung; + + +class PurgMagPhysicsList: public G4VUserPhysicsList +{ +public: + PurgMagPhysicsList(); + ~PurgMagPhysicsList(); + +protected: + // Construct particle and physics + void ConstructParticle(); + void ConstructProcess(); + + void SetCuts(); + +public: + // Set Cuts + void SetGammaCut(G4double); + void SetElectronCut(G4double); + void SetPositronCut(G4double); + void SetProtonCut(G4double); + + void SetGammaLowLimit(G4double); + void SetElectronLowLimit(G4double); + void SetPositronLowLimit(G4double); + void SetProtonLowLimit(G4double); + void SetGEPLowLimit(G4double); + + void SetGELowLimit(G4double); + +private: + + G4double cutForGamma; + G4double cutForElectron; + G4double cutForPositron; + G4double cutForProton; + +protected: + // these methods Construct particles + void ConstructBosons(); + void ConstructLeptons(); + void ConstructBarions(); + +protected: + // these methods Construct physics processes and register them + void ConstructGeneral(); + void ConstructEM(); + +private: + +}; +#endif + + + diff --git a/examples/advanced/purging_magnet/include/PurgMagPrimaryGeneratorAction.hh b/examples/advanced/purging_magnet/include/PurgMagPrimaryGeneratorAction.hh index 14ab58b817..933d6a7abd 100644 --- a/examples/advanced/purging_magnet/include/PurgMagPrimaryGeneratorAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagPrimaryGeneratorAction.hh @@ -31,7 +31,7 @@ // ******************************************** // // $Id: PurgMagPrimaryGeneratorAction.hh,v 1.2 2004/06/18 09:17:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagRunAction.hh b/examples/advanced/purging_magnet/include/PurgMagRunAction.hh index cdb9ef4a99..4a66380196 100644 --- a/examples/advanced/purging_magnet/include/PurgMagRunAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagRunAction.hh @@ -30,7 +30,7 @@ // ****************************** // // $Id: PurgMagRunAction.hh,v 1.2 2004/06/18 09:17:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef PurgMagRunAction_h diff --git a/examples/advanced/purging_magnet/include/PurgMagSteppingAction.hh b/examples/advanced/purging_magnet/include/PurgMagSteppingAction.hh index d593851924..67771b7e90 100644 --- a/examples/advanced/purging_magnet/include/PurgMagSteppingAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagSteppingAction.hh @@ -30,7 +30,7 @@ // *********************************** // // $Id: PurgMagSteppingAction.hh,v 1.2 2004/06/18 09:17:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/include/PurgMagSteppingVerbose.hh b/examples/advanced/purging_magnet/include/PurgMagSteppingVerbose.hh index f6a0418082..ece4ebbdc2 100644 --- a/examples/advanced/purging_magnet/include/PurgMagSteppingVerbose.hh +++ b/examples/advanced/purging_magnet/include/PurgMagSteppingVerbose.hh @@ -31,7 +31,7 @@ // ************************************ // // $Id: PurgMagSteppingVerbose.hh,v 1.2 2004/06/18 09:17:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // class PurgMagSteppingVerbose; diff --git a/examples/advanced/purging_magnet/include/PurgMagTabulatedField3D.hh b/examples/advanced/purging_magnet/include/PurgMagTabulatedField3D.hh index f86eadb75a..d77b9aa736 100644 --- a/examples/advanced/purging_magnet/include/PurgMagTabulatedField3D.hh +++ b/examples/advanced/purging_magnet/include/PurgMagTabulatedField3D.hh @@ -30,7 +30,7 @@ // ************************************* // // $Id: PurgMagTabulatedField3D.hh,v 1.2 2004/06/18 09:17:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/advanced/purging_magnet/include/PurgMagTrackingAction.hh b/examples/advanced/purging_magnet/include/PurgMagTrackingAction.hh index d9eb3c21aa..4827cfd87e 100644 --- a/examples/advanced/purging_magnet/include/PurgMagTrackingAction.hh +++ b/examples/advanced/purging_magnet/include/PurgMagTrackingAction.hh @@ -30,7 +30,7 @@ // ********************************** // // $Id: PurgMagTrackingAction.hh,v 1.2 2004/06/18 09:17:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef PurgMagTrackingAction_h diff --git a/examples/advanced/purging_magnet/src/PurgMagAnalysisManager.cc b/examples/advanced/purging_magnet/src/PurgMagAnalysisManager.cc index d7272bbec5..a6e19c3c8e 100644 --- a/examples/advanced/purging_magnet/src/PurgMagAnalysisManager.cc +++ b/examples/advanced/purging_magnet/src/PurgMagAnalysisManager.cc @@ -30,7 +30,7 @@ // ************************************ // // $Id: PurgMagAnalysisManager.cc,v 1.2 2004/06/18 09:17:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifdef G4ANALYSIS_USE #include diff --git a/examples/advanced/purging_magnet/src/PurgMagDetectorConstruction.cc b/examples/advanced/purging_magnet/src/PurgMagDetectorConstruction.cc index 4b6a5b7550..d0c8bcecf2 100644 --- a/examples/advanced/purging_magnet/src/PurgMagDetectorConstruction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagDetectorConstruction.cc @@ -20,421 +20,421 @@ // * statement, and all its terms. * // ******************************************************************** // -// Code developed by: -// S.Larsson -// -// ***************************************** -// * * -// * PurgMagDetectorConstruction.cc * -// * * -// ***************************************** -// -// $Id: PurgMagDetectorConstruction.cc,v 1.2 2004/06/18 09:17:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -#include "PurgMagDetectorConstruction.hh" -#include "PurgMagTabulatedField3D.hh" -#include "G4ThreeVector.hh" -#include "globals.hh" -#include "G4Material.hh" -#include "G4Box.hh" -#include "G4Trd.hh" -#include "G4Tubs.hh" -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4PVReplica.hh" -#include "G4PVParameterised.hh" -#include "G4Mag_UsualEqRhs.hh" -#include "G4FieldManager.hh" -#include "G4TransportationManager.hh" -#include "G4EqMagElectricField.hh" - -#include "G4ChordFinder.hh" -#include "G4UniformMagField.hh" -#include "G4ExplicitEuler.hh" -#include "G4ImplicitEuler.hh" -#include "G4SimpleRunge.hh" -#include "G4SimpleHeum.hh" -#include "G4ClassicalRK4.hh" -#include "G4HelixExplicitEuler.hh" -#include "G4HelixImplicitEuler.hh" -#include "G4HelixSimpleRunge.hh" -#include "G4CashKarpRKF45.hh" -#include "G4RKG3_Stepper.hh" - -#include "G4VisAttributes.hh" -#include "G4Colour.hh" -#include "G4UnitsTable.hh" -#include "G4ios.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// Possibility to turn off (0) magnetic field and measurement volume. -#define GAP 1 // Magnet geometric volume -#define MAG 1 // Magnetic field grid -#define MEASUREVOL 1 // Volume for measurement - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -PurgMagDetectorConstruction::PurgMagDetectorConstruction() - - :physiWorld(NULL), logicWorld(NULL), solidWorld(NULL), - physiGap1(NULL), logicGap1(NULL), solidGap1(NULL), - physiGap2(NULL), logicGap2(NULL), solidGap2(NULL), - physiMeasureVolume(NULL), logicMeasureVolume(NULL), solidMeasureVolume(NULL), - WorldMaterial(NULL), - GapMaterial(NULL) - -{ - WorldSizeXY=WorldSizeZ=0; - GapSizeX1=GapSizeX2=GapSizeY1=GapSizeY2=GapSizeZ=0; - MeasureVolumeSizeXY=MeasureVolumeSizeZ=0; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -PurgMagDetectorConstruction::~PurgMagDetectorConstruction() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4VPhysicalVolume* PurgMagDetectorConstruction::Construct() - -{ - DefineMaterials(); - return ConstructCalorimeter(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagDetectorConstruction::DefineMaterials() -{ - //This function illustrates the possible ways to define materials. - //Density and mass per mole taken from Physics Handbook for Science - //and engineering, sixth edition. This is a general material list - //with extra materials for other examples. - - G4String name, symbol; - G4double density; - - G4int ncomponents, natoms; - G4double fractionmass; - G4double temperature, pressure; - - // Define Elements - // Example: G4Element* Notation = new G4Element ("Element", "Notation", z, a); - G4Element* H = new G4Element ("Hydrogen", "H", 1. , 1.01*g/mole); - G4Element* N = new G4Element ("Nitrogen", "N", 7., 14.01*g/mole); - G4Element* O = new G4Element ("Oxygen" , "O", 8. , 16.00*g/mole); - G4Element* Ar = new G4Element ("Argon" , "Ar", 18., 39.948*g/mole ); - - - // Define Material - // Example: G4Material* Notation = new G4Material("Material", z, a, density); - /* Not used in this setup, will be used in further development. - G4Material* He = new G4Material("Helium", 2., 4.00*g/mole, 0.178*mg/cm3); - G4Material* Be = new G4Material("Beryllium", 4., 9.01*g/mole, 1.848*g/cm3); - G4Material* W = new G4Material("Tungsten", 74., 183.85*g/mole, 19.30*g/cm3); - G4Material* Cu = new G4Material("Copper", 29., 63.55*g/mole, 8.96*g/cm3); - */ - G4Material* Fe = new G4Material("Iron", 26., 55.84*g/mole, 7.87*g/cm3); - - // Define materials from elements. - - // Case 1: chemical molecule - // Water - density = 1.000*g/cm3; - G4Material* H2O = new G4Material(name="H2O" , density, ncomponents=2); - H2O->AddElement(H, natoms=2); - H2O->AddElement(O, natoms=1); - - // Case 2: mixture by fractional mass. - // Air - density = 1.290*mg/cm3; - G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); - Air->AddElement(N, fractionmass=0.7); - Air->AddElement(O, fractionmass=0.3); - - // Vacuum - density = 1.e-5*g/cm3; - pressure = 2.e-2*bar; - temperature = STP_Temperature; //from PhysicalConstants.h - G4Material* vacuum = new G4Material(name="vacuum", density, ncomponents=1, - kStateGas,temperature,pressure); - vacuum->AddMaterial(Air, fractionmass=1.); - - - // Laboratory vacuum: Dry air (average composition) - density = 1.7836*mg/cm3 ; // STP - G4Material* Argon = new G4Material(name="Argon", density, ncomponents=1); - Argon->AddElement(Ar, 1); - - density = 1.25053*mg/cm3 ; // STP - G4Material* Nitrogen = new G4Material(name="N2", density, ncomponents=1); - Nitrogen->AddElement(N, 2); - - density = 1.4289*mg/cm3 ; // STP - G4Material* Oxygen = new G4Material(name="O2", density, ncomponents=1); - Oxygen->AddElement(O, 2); - - - density = 1.2928*mg/cm3 ; // STP - density *= 1.0e-8 ; // pumped vacuum - - temperature = STP_Temperature; - pressure = 1.0e-8*STP_Pressure; - - G4Material* LaboratoryVacuum = new G4Material(name="LaboratoryVacuum", - density,ncomponents=3, - kStateGas,temperature,pressure); - LaboratoryVacuum->AddMaterial( Nitrogen, fractionmass = 0.7557 ) ; - LaboratoryVacuum->AddMaterial( Oxygen, fractionmass = 0.2315 ) ; - LaboratoryVacuum->AddMaterial( Argon, fractionmass = 0.0128 ) ; - - - G4cout << G4endl << *(G4Material::GetMaterialTable()) << G4endl; - - - // Default materials in setup. - WorldMaterial = LaboratoryVacuum; - GapMaterial = Fe; - - - G4cout << "end material"<< endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VPhysicalVolume* PurgMagDetectorConstruction::ConstructCalorimeter() -{ - // Complete the parameters definition - - //The World - WorldSizeXY = 300.*cm; // Cube - WorldSizeZ = 300.*cm; - - //Measurement volume - MeasureVolumeSizeXY = 280.*cm; // Cubic slice - MeasureVolumeSizeZ = 1.*cm; - - // Position of measurement volume. - // SSD is Source to Surface Distance. Source in origo and measurements 50 cm - // below in the z-direction (symbolizin a patient at SSD = 50 cm) - - SSD = 50.*cm; - MeasureVolumePosition = -(SSD + MeasureVolumeSizeZ/2); - - - // Geometric definition of the gap of the purging magnet. Approximation of - // the shape of the pole gap. - - GapSizeY1 = 10.*cm; // length along x at the surface positioned at -dz - GapSizeY2 = 10.*cm; // length along x at the surface positioned at +dz - GapSizeX1 = 10.*cm; // length along y at the surface positioned at -dz - GapSizeX2 = 18.37*cm; // length along y at the surface positioned at +dz - GapSizeZ = 11.5*cm; // length along z axis - - Gap1PosY = 0.*cm; - Gap1PosX = -9.55*cm; - Gap1PosZ = -6.89*cm; - - Gap2PosY = 0.*cm; - Gap2PosX = 9.55*cm; - Gap2PosZ = -6.89*cm; - - - // Coordinate correction for field grif. - // Gap opening at z = -11.4 mm. - // In field grid coordonates gap at z = -0.007m in field from z = 0.0m to - // z = 0.087m. - // -> zOffset = -11.4-(-7) = 4.4 mm - - zOffset = 4.4*mm; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// -// Magnetic Field - Purging magnet -// -#if MAG - - static G4bool fieldIsInitialized = false; - if(!fieldIsInitialized) - { - G4FieldManager *pFieldMgr; - // G4MagIntegratorStepper *pStepper; - - //Field grid in A9.TABLE. File must be in accessible from run urn directory. - G4MagneticField* PurgMagField= new PurgMagTabulatedField3D("PurgMag3D.TABLE", zOffset); - - pFieldMgr=G4TransportationManager::GetTransportationManager()->GetFieldManager(); - - G4cout<< "DeltaStep "<GetDeltaOneStep()/mm <<"mm" <SetChordFinder( pChordFinder ); - - pFieldMgr->SetDetectorField(PurgMagField); - - fieldIsInitialized = true; - } -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// Some out prints of the setup. - - G4cout << "\n-----------------------------------------------------------" - << "\n Geometry and materials" - << "\n-----------------------------------------------------------" - << "\n ---> World:" - << "\n ---> " << WorldMaterial->GetName() << " in World" - << "\n ---> " << "WorldSizeXY: " << G4BestUnit(WorldSizeXY,"Length") - << "\n ---> " << "WorldSizeZ: " << G4BestUnit(WorldSizeZ,"Length"); - -#if GAP - G4cout << "\n-----------------------------------------------------------" - << "\n ---> Purging Magnet:" - << "\n ---> " << "Gap made of "<< GapMaterial->GetName() - << "\n ---> " << "GapSizeY1: " << G4BestUnit(GapSizeY1,"Length") - << "\n ---> " << "GapSizeY2: " << G4BestUnit(GapSizeY2,"Length") - << "\n ---> " << "GapSizeX1: " << G4BestUnit(GapSizeX1,"Length") - << "\n ---> " << "GapSizeX2: " << G4BestUnit(GapSizeX2,"Length"); -#endif - -#if MEASUREVOL - G4cout << "\n-----------------------------------------------------------" - << "\n ---> Measurement Volume:" - << "\n ---> " << WorldMaterial->GetName() << " in Measurement volume" - << "\n ---> " << "MeasureVolumeXY: " << G4BestUnit(MeasureVolumeSizeXY,"Length") - << "\n ---> " << "MeasureVolumeZ: " << G4BestUnit(MeasureVolumeSizeZ,"Length") - << "\n ---> " << "At SSD = " << G4BestUnit(MeasureVolumePosition,"Length"); -#endif - - G4cout << "\n-----------------------------------------------------------\n"; - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - // - // World - // - - - solidWorld = new G4Box("World", //its name - WorldSizeXY/2,WorldSizeXY/2,WorldSizeZ/2); //its size - - - logicWorld = new G4LogicalVolume(solidWorld, //its solid - WorldMaterial, //its material - "World"); //its name - - physiWorld = new G4PVPlacement(0, //no rotation - G4ThreeVector(), //at (0,0,0) - "World", //its name - logicWorld, //its logical volume - NULL, //its mother volume - false, //no boolean operation - 0); //copy number - - // Visualization attributes - G4VisAttributes* simpleWorldVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); //White - simpleWorldVisAtt->SetVisibility(true); - logicWorld->SetVisAttributes(simpleWorldVisAtt); - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - // - // Measurement Volume - // - -#if MEASUREVOL - - solidMeasureVolume = new G4Box("MeasureVolume", //its name - MeasureVolumeSizeXY/2,MeasureVolumeSizeXY/2,MeasureVolumeSizeZ/2); //its size - - logicMeasureVolume = new G4LogicalVolume(solidMeasureVolume, //its solid - WorldMaterial, //its material - "MeasureVolume"); //its name - - physiMeasureVolume = new G4PVPlacement(0, //no rotation - G4ThreeVector(0.,0.,MeasureVolumePosition), //at (0,0,0) - "MeasureVolume", //its name - logicMeasureVolume, //its logical volume - physiWorld, //its mother volume - false, //no boolean operation - 0); //copy number - - // Visualization attributes - G4VisAttributes* simpleMeasureVolumeVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); //White - simpleMeasureVolumeVisAtt->SetVisibility(true); - simpleMeasureVolumeVisAtt->SetForceSolid(true); - logicMeasureVolume->SetVisAttributes(simpleMeasureVolumeVisAtt); - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - // - //Gap cone. Opening 20 deg. Two separate trapezoids. Iron. - // - -#if GAP - - //Gap part 1, placed in negative x-direction. - - solidGap1 = new G4Trd("Gap1", - GapSizeX1/2, // Half-length along x at the surface positioned at -dz - GapSizeX2/2, // Half-length along x at the surface positioned at +dz - GapSizeY1/2, // Half-length along y at the surface positioned at -dz - GapSizeY2/2, // Half-length along y at the surface positioned at +dz - GapSizeZ/2 ); // Half-length along z axis - - logicGap1 = new G4LogicalVolume(solidGap1, //its solid - GapMaterial, //its material - "Gap1"); //its name - - physiGap1 = new G4PVPlacement(0, //90 deg rotation - G4ThreeVector(Gap1PosX,Gap1PosY,Gap1PosZ), //position - "Gap1", //its name - logicGap1, //its logical volume - physiWorld, //its mother volume - false, //no boolean operation - 0); //copy number - - //Gap part 2, placed in positive x-direction. - - solidGap2 = new G4Trd("Gap2", - GapSizeX1/2, // Half-length along x at the surface positioned at -dz - GapSizeX2/2, // Half-length along x at the surface positioned at +dz - GapSizeY1/2, // Half-length along y at the surface positioned at -dz - GapSizeY2/2, // Half-length along y at the surface positioned at +dz - GapSizeZ/2 ); // Half-length along z axis - - logicGap2 = new G4LogicalVolume(solidGap2, //its solid - GapMaterial, //its material - "Gap2"); //its name - - physiGap2 = new G4PVPlacement(0, //no rotation - G4ThreeVector(Gap2PosX,Gap2PosY,Gap2PosZ), //position - "Gap2", //its name - logicGap2, //its logical volume - physiWorld, //its mother volume - false, //no boolean operation - 0); //copy number - - // Visualization attributes - G4VisAttributes* simpleGap1VisAtt= new G4VisAttributes(G4Colour(0.0,0.0,1.0)); //yellow - simpleGap1VisAtt->SetVisibility(true); - simpleGap1VisAtt->SetForceSolid(true); - logicGap1->SetVisAttributes(simpleGap1VisAtt); - - G4VisAttributes* simpleGap2VisAtt= new G4VisAttributes(G4Colour(0.0,0.0,1.0)); //yellow - simpleGap2VisAtt->SetVisibility(true); - simpleGap2VisAtt->SetForceSolid(true); - logicGap2->SetVisAttributes(simpleGap2VisAtt); - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - return physiWorld; -} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - +// Code developed by: +// S.Larsson +// +// ***************************************** +// * * +// * PurgMagDetectorConstruction.cc * +// * * +// ***************************************** +// +// $Id: PurgMagDetectorConstruction.cc,v 1.3 2005/12/14 16:06:49 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +#include "PurgMagDetectorConstruction.hh" +#include "PurgMagTabulatedField3D.hh" +#include "G4ThreeVector.hh" +#include "globals.hh" +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4Trd.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4PVParameterised.hh" +#include "G4Mag_UsualEqRhs.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4EqMagElectricField.hh" + +#include "G4ChordFinder.hh" +#include "G4UniformMagField.hh" +#include "G4ExplicitEuler.hh" +#include "G4ImplicitEuler.hh" +#include "G4SimpleRunge.hh" +#include "G4SimpleHeum.hh" +#include "G4ClassicalRK4.hh" +#include "G4HelixExplicitEuler.hh" +#include "G4HelixImplicitEuler.hh" +#include "G4HelixSimpleRunge.hh" +#include "G4CashKarpRKF45.hh" +#include "G4RKG3_Stepper.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" +#include "G4UnitsTable.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +// Possibility to turn off (0) magnetic field and measurement volume. +#define GAP 1 // Magnet geometric volume +#define MAG 1 // Magnetic field grid +#define MEASUREVOL 1 // Volume for measurement + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +PurgMagDetectorConstruction::PurgMagDetectorConstruction() + + :physiWorld(NULL), logicWorld(NULL), solidWorld(NULL), + physiGap1(NULL), logicGap1(NULL), solidGap1(NULL), + physiGap2(NULL), logicGap2(NULL), solidGap2(NULL), + physiMeasureVolume(NULL), logicMeasureVolume(NULL), solidMeasureVolume(NULL), + WorldMaterial(NULL), + GapMaterial(NULL) + +{ + WorldSizeXY=WorldSizeZ=0; + GapSizeX1=GapSizeX2=GapSizeY1=GapSizeY2=GapSizeZ=0; + MeasureVolumeSizeXY=MeasureVolumeSizeZ=0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +PurgMagDetectorConstruction::~PurgMagDetectorConstruction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VPhysicalVolume* PurgMagDetectorConstruction::Construct() + +{ + DefineMaterials(); + return ConstructCalorimeter(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagDetectorConstruction::DefineMaterials() +{ + //This function illustrates the possible ways to define materials. + //Density and mass per mole taken from Physics Handbook for Science + //and engineering, sixth edition. This is a general material list + //with extra materials for other examples. + + G4String name, symbol; + G4double density; + + G4int ncomponents, natoms; + G4double fractionmass; + G4double temperature, pressure; + + // Define Elements + // Example: G4Element* Notation = new G4Element ("Element", "Notation", z, a); + G4Element* H = new G4Element ("Hydrogen", "H", 1. , 1.01*g/mole); + G4Element* N = new G4Element ("Nitrogen", "N", 7., 14.01*g/mole); + G4Element* O = new G4Element ("Oxygen" , "O", 8. , 16.00*g/mole); + G4Element* Ar = new G4Element ("Argon" , "Ar", 18., 39.948*g/mole ); + + + // Define Material + // Example: G4Material* Notation = new G4Material("Material", z, a, density); + /* Not used in this setup, will be used in further development. + G4Material* He = new G4Material("Helium", 2., 4.00*g/mole, 0.178*mg/cm3); + G4Material* Be = new G4Material("Beryllium", 4., 9.01*g/mole, 1.848*g/cm3); + G4Material* W = new G4Material("Tungsten", 74., 183.85*g/mole, 19.30*g/cm3); + G4Material* Cu = new G4Material("Copper", 29., 63.55*g/mole, 8.96*g/cm3); + */ + G4Material* Fe = new G4Material("Iron", 26., 55.84*g/mole, 7.87*g/cm3); + + // Define materials from elements. + + // Case 1: chemical molecule + // Water + density = 1.000*g/cm3; + G4Material* H2O = new G4Material(name="H2O" , density, ncomponents=2); + H2O->AddElement(H, natoms=2); + H2O->AddElement(O, natoms=1); + + // Case 2: mixture by fractional mass. + // Air + density = 1.290*mg/cm3; + G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); + Air->AddElement(N, fractionmass=0.7); + Air->AddElement(O, fractionmass=0.3); + + // Vacuum + density = 1.e-5*g/cm3; + pressure = 2.e-2*bar; + temperature = STP_Temperature; //from PhysicalConstants.h + G4Material* vacuum = new G4Material(name="vacuum", density, ncomponents=1, + kStateGas,temperature,pressure); + vacuum->AddMaterial(Air, fractionmass=1.); + + + // Laboratory vacuum: Dry air (average composition) + density = 1.7836*mg/cm3 ; // STP + G4Material* Argon = new G4Material(name="Argon", density, ncomponents=1); + Argon->AddElement(Ar, 1); + + density = 1.25053*mg/cm3 ; // STP + G4Material* Nitrogen = new G4Material(name="N2", density, ncomponents=1); + Nitrogen->AddElement(N, 2); + + density = 1.4289*mg/cm3 ; // STP + G4Material* Oxygen = new G4Material(name="O2", density, ncomponents=1); + Oxygen->AddElement(O, 2); + + + density = 1.2928*mg/cm3 ; // STP + density *= 1.0e-8 ; // pumped vacuum + + temperature = STP_Temperature; + pressure = 1.0e-8*STP_Pressure; + + G4Material* LaboratoryVacuum = new G4Material(name="LaboratoryVacuum", + density,ncomponents=3, + kStateGas,temperature,pressure); + LaboratoryVacuum->AddMaterial( Nitrogen, fractionmass = 0.7557 ) ; + LaboratoryVacuum->AddMaterial( Oxygen, fractionmass = 0.2315 ) ; + LaboratoryVacuum->AddMaterial( Argon, fractionmass = 0.0128 ) ; + + + G4cout << G4endl << *(G4Material::GetMaterialTable()) << G4endl; + + + // Default materials in setup. + WorldMaterial = LaboratoryVacuum; + GapMaterial = Fe; + + + G4cout << "end material"<< endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +G4VPhysicalVolume* PurgMagDetectorConstruction::ConstructCalorimeter() +{ + // Complete the parameters definition + + //The World + WorldSizeXY = 300.*cm; // Cube + WorldSizeZ = 300.*cm; + + //Measurement volume + MeasureVolumeSizeXY = 280.*cm; // Cubic slice + MeasureVolumeSizeZ = 1.*cm; + + // Position of measurement volume. + // SSD is Source to Surface Distance. Source in origo and measurements 50 cm + // below in the z-direction (symbolizin a patient at SSD = 50 cm) + + SSD = 50.*cm; + MeasureVolumePosition = -(SSD + MeasureVolumeSizeZ/2); + + + // Geometric definition of the gap of the purging magnet. Approximation of + // the shape of the pole gap. + + GapSizeY1 = 10.*cm; // length along x at the surface positioned at -dz + GapSizeY2 = 10.*cm; // length along x at the surface positioned at +dz + GapSizeX1 = 10.*cm; // length along y at the surface positioned at -dz + GapSizeX2 = 18.37*cm; // length along y at the surface positioned at +dz + GapSizeZ = 11.5*cm; // length along z axis + + Gap1PosY = 0.*cm; + Gap1PosX = -9.55*cm; + Gap1PosZ = -6.89*cm; + + Gap2PosY = 0.*cm; + Gap2PosX = 9.55*cm; + Gap2PosZ = -6.89*cm; + + + // Coordinate correction for field grif. + // Gap opening at z = -11.4 mm. + // In field grid coordonates gap at z = -0.007m in field from z = 0.0m to + // z = 0.087m. + // -> zOffset = -11.4-(-7) = 4.4 mm + + zOffset = 4.4*mm; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +// +// Magnetic Field - Purging magnet +// +#if MAG + + static G4bool fieldIsInitialized = false; + if(!fieldIsInitialized) + { + G4FieldManager *pFieldMgr; + // G4MagIntegratorStepper *pStepper; + + //Field grid in A9.TABLE. File must be in accessible from run urn directory. + G4MagneticField* PurgMagField= new PurgMagTabulatedField3D("PurgMag3D.TABLE", zOffset); + + pFieldMgr=G4TransportationManager::GetTransportationManager()->GetFieldManager(); + + G4cout<< "DeltaStep "<GetDeltaOneStep()/mm <<"mm" <SetChordFinder( pChordFinder ); + + pFieldMgr->SetDetectorField(PurgMagField); + + fieldIsInitialized = true; + } +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +// Some out prints of the setup. + + G4cout << "\n-----------------------------------------------------------" + << "\n Geometry and materials" + << "\n-----------------------------------------------------------" + << "\n ---> World:" + << "\n ---> " << WorldMaterial->GetName() << " in World" + << "\n ---> " << "WorldSizeXY: " << G4BestUnit(WorldSizeXY,"Length") + << "\n ---> " << "WorldSizeZ: " << G4BestUnit(WorldSizeZ,"Length"); + +#if GAP + G4cout << "\n-----------------------------------------------------------" + << "\n ---> Purging Magnet:" + << "\n ---> " << "Gap made of "<< GapMaterial->GetName() + << "\n ---> " << "GapSizeY1: " << G4BestUnit(GapSizeY1,"Length") + << "\n ---> " << "GapSizeY2: " << G4BestUnit(GapSizeY2,"Length") + << "\n ---> " << "GapSizeX1: " << G4BestUnit(GapSizeX1,"Length") + << "\n ---> " << "GapSizeX2: " << G4BestUnit(GapSizeX2,"Length"); +#endif + +#if MEASUREVOL + G4cout << "\n-----------------------------------------------------------" + << "\n ---> Measurement Volume:" + << "\n ---> " << WorldMaterial->GetName() << " in Measurement volume" + << "\n ---> " << "MeasureVolumeXY: " << G4BestUnit(MeasureVolumeSizeXY,"Length") + << "\n ---> " << "MeasureVolumeZ: " << G4BestUnit(MeasureVolumeSizeZ,"Length") + << "\n ---> " << "At SSD = " << G4BestUnit(MeasureVolumePosition,"Length"); +#endif + + G4cout << "\n-----------------------------------------------------------\n"; + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + // + // World + // + + + solidWorld = new G4Box("World", //its name + WorldSizeXY/2,WorldSizeXY/2,WorldSizeZ/2); //its size + + + logicWorld = new G4LogicalVolume(solidWorld, //its solid + WorldMaterial, //its material + "World"); //its name + + physiWorld = new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + "World", //its name + logicWorld, //its logical volume + NULL, //its mother volume + false, //no boolean operation + 0); //copy number + + // Visualization attributes + G4VisAttributes* simpleWorldVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); //White + simpleWorldVisAtt->SetVisibility(true); + logicWorld->SetVisAttributes(simpleWorldVisAtt); + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + // + // Measurement Volume + // + +#if MEASUREVOL + + solidMeasureVolume = new G4Box("MeasureVolume", //its name + MeasureVolumeSizeXY/2,MeasureVolumeSizeXY/2,MeasureVolumeSizeZ/2); //its size + + logicMeasureVolume = new G4LogicalVolume(solidMeasureVolume, //its solid + WorldMaterial, //its material + "MeasureVolume"); //its name + + physiMeasureVolume = new G4PVPlacement(0, //no rotation + G4ThreeVector(0.,0.,MeasureVolumePosition), //at (0,0,0) + "MeasureVolume", //its name + logicMeasureVolume, //its logical volume + physiWorld, //its mother volume + false, //no boolean operation + 0); //copy number + + // Visualization attributes + G4VisAttributes* simpleMeasureVolumeVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); //White + simpleMeasureVolumeVisAtt->SetVisibility(true); + simpleMeasureVolumeVisAtt->SetForceSolid(true); + logicMeasureVolume->SetVisAttributes(simpleMeasureVolumeVisAtt); + +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + // + //Gap cone. Opening 20 deg. Two separate trapezoids. Iron. + // + +#if GAP + + //Gap part 1, placed in negative x-direction. + + solidGap1 = new G4Trd("Gap1", + GapSizeX1/2, // Half-length along x at the surface positioned at -dz + GapSizeX2/2, // Half-length along x at the surface positioned at +dz + GapSizeY1/2, // Half-length along y at the surface positioned at -dz + GapSizeY2/2, // Half-length along y at the surface positioned at +dz + GapSizeZ/2 ); // Half-length along z axis + + logicGap1 = new G4LogicalVolume(solidGap1, //its solid + GapMaterial, //its material + "Gap1"); //its name + + physiGap1 = new G4PVPlacement(0, //90 deg rotation + G4ThreeVector(Gap1PosX,Gap1PosY,Gap1PosZ), //position + "Gap1", //its name + logicGap1, //its logical volume + physiWorld, //its mother volume + false, //no boolean operation + 0); //copy number + + //Gap part 2, placed in positive x-direction. + + solidGap2 = new G4Trd("Gap2", + GapSizeX1/2, // Half-length along x at the surface positioned at -dz + GapSizeX2/2, // Half-length along x at the surface positioned at +dz + GapSizeY1/2, // Half-length along y at the surface positioned at -dz + GapSizeY2/2, // Half-length along y at the surface positioned at +dz + GapSizeZ/2 ); // Half-length along z axis + + logicGap2 = new G4LogicalVolume(solidGap2, //its solid + GapMaterial, //its material + "Gap2"); //its name + + physiGap2 = new G4PVPlacement(0, //no rotation + G4ThreeVector(Gap2PosX,Gap2PosY,Gap2PosZ), //position + "Gap2", //its name + logicGap2, //its logical volume + physiWorld, //its mother volume + false, //no boolean operation + 0); //copy number + + // Visualization attributes + G4VisAttributes* simpleGap1VisAtt= new G4VisAttributes(G4Colour(0.0,0.0,1.0)); //yellow + simpleGap1VisAtt->SetVisibility(true); + simpleGap1VisAtt->SetForceSolid(true); + logicGap1->SetVisAttributes(simpleGap1VisAtt); + + G4VisAttributes* simpleGap2VisAtt= new G4VisAttributes(G4Colour(0.0,0.0,1.0)); //yellow + simpleGap2VisAtt->SetVisibility(true); + simpleGap2VisAtt->SetForceSolid(true); + logicGap2->SetVisAttributes(simpleGap2VisAtt); + +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + return physiWorld; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + diff --git a/examples/advanced/purging_magnet/src/PurgMagEventAction.cc b/examples/advanced/purging_magnet/src/PurgMagEventAction.cc index c88cacb061..f5c8dd6305 100644 --- a/examples/advanced/purging_magnet/src/PurgMagEventAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagEventAction.cc @@ -29,8 +29,8 @@ // * * // ******************************** // -// $Id: PurgMagEventAction.cc,v 1.2 2004/06/18 09:17:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PurgMagEventAction.cc,v 1.3 2005/12/07 14:35:12 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -96,12 +96,12 @@ void PurgMagEventAction::EndOfEventAction(const G4Event* evt) //save rndm status if (PurgMagRun->GetRndmFreq() == 2) { - HepRandom::saveEngineStatus("endOfEvent.rndm"); + CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); G4int evtNb = evt->GetEventID(); if (evtNb%printModulo == 0) { G4cout << "\n---> End of Event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } } } diff --git a/examples/advanced/purging_magnet/src/PurgMagPhysicsList.cc b/examples/advanced/purging_magnet/src/PurgMagPhysicsList.cc index e022e195e3..37d2ff827c 100644 --- a/examples/advanced/purging_magnet/src/PurgMagPhysicsList.cc +++ b/examples/advanced/purging_magnet/src/PurgMagPhysicsList.cc @@ -20,308 +20,308 @@ // * statement, and all its terms. * // ******************************************************************** // -// Code developed by: -// S.Larsson -// -// ******************************** -// * * -// * PurgMagPhysicsList.cc * -// * * -// ******************************** -// -// -// $Id: PurgMagPhysicsList.cc,v 1.2 2004/06/18 09:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "PurgMagPhysicsList.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4Material.hh" -#include "G4UnitsTable.hh" -#include "G4ios.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -PurgMagPhysicsList::PurgMagPhysicsList(): G4VUserPhysicsList() -{ - defaultCutValue = 1*micrometer; - cutForGamma = defaultCutValue; - cutForElectron = defaultCutValue; - cutForPositron = defaultCutValue; - cutForProton = defaultCutValue; - - SetVerboseLevel(1); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -PurgMagPhysicsList::~PurgMagPhysicsList() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::ConstructParticle() -{ - // In this method, static member functions should be called - // for all particles which you want to use. - // This ensures that objects of these particle types will be - // created in the program. - - ConstructBosons(); - ConstructLeptons(); - ConstructBarions(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::ConstructBosons() -{ - - // gamma - G4Gamma::GammaDefinition(); - - // optical photon - G4OpticalPhoton::OpticalPhotonDefinition(); -} - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::ConstructLeptons() -{ - // leptons - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::ConstructBarions() -{ - // barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructGeneral(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4MultipleScattering.hh" -// Bosons -#include "G4PhotoElectricEffect.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -// Leptons -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ) - { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - - if (particleName == "gamma") { - //gamma - pmanager->AddDiscreteProcess(new G4GammaConversion); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - - } else if (particleName == "e-") { - //electron - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - - } else if (particleName == "e+") { - //positron - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - - } else if (particleName == "proton") { - //proton - pmanager->AddProcess(new G4MultipleScattering, -1,1,1); - - } else if (particleName == "anti_proton") { - //antiproton - pmanager->AddProcess(new G4MultipleScattering, -1,1,1); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::ConstructGeneral() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetCuts() -{ - if (verboseLevel >0){ - G4cout << "PurgMagPhysicsList::SetCuts:"; - G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; - } - - // set cut values for gamma at first and for e- second and next for e+, - // because some processes for e+/e- need cut values for gamma - SetCutValue(cutForGamma, "gamma"); - SetCutValue(cutForElectron, "e-"); - SetCutValue(cutForPositron, "e+"); - - // set cut values for proton and anti_proton before all other hadrons - // because some processes for hadrons need cut values for proton/anti_proton - SetCutValue(cutForProton, "proton"); - SetCutValue(cutForProton, "anti_proton"); - - SetCutValueForOthers(defaultCutValue); - - if (verboseLevel>0) DumpCutValuesTable(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetGammaLowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - G4cout << "PurgMagPhysicsList::SetCuts:"; - G4cout << "Gamma cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - // G4Gamma::SetEnergyRange(lowcut,1e5); - SetGELowLimit(lowcut); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetElectronLowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - - G4cout << "PurgMagPhysicsList::SetCuts:"; - G4cout << "Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - // G4Electron::SetEnergyRange(lowcut,1e5); - SetGELowLimit(lowcut); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetPositronLowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - - G4cout << "PurgMagPhysicsList::SetCuts:"; - G4cout << "Positron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - G4cerr << "PurgMagPhysicsList::SetPositronLowLimit: Not currently able to set Positron LowLimit." << G4endl; - G4Exception("Positron Low Limit: not implemented in PurgMagPhysicsList"); - // - // G4Positron::SetEnergyRange(lowcut,1e5); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetProtonLowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - - G4cout << "PurgMagPhysicsList::SetCuts:"; - G4cout << "Proton cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - G4cerr << "PurgMagPhysicsList::SetProtonLowLimit: Not currently able to set Proton LowLimit." << G4endl; - G4Exception("Proton Low Limit: not implemented in PurgMagPhysicsList"); - // - // G4Proton::SetEnergyRange(lowcut,1e5); - // G4AntiProton::SetEnergyRange(lowcut,1e5); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetGEPLowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - G4cout << "PurgMagPhysicsList::SetGEPLowLimit:"; - G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - // G4Gamma::SetEnergyRange(lowcut,1e5); - // G4Electron::SetEnergyRange(lowcut,1e5); - // G4Positron::SetEnergyRange(lowcut,1e5); - this->SetGELowLimit(lowcut); - - G4cerr << " SetGEPLowLimit : Uncertain whether setting Positron low limit " << G4endl; -} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void PurgMagPhysicsList::SetGELowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - G4cout << "PurgMagPhysicsList::SetGELowLimit:"; - G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowcut,1e5); -} -void PurgMagPhysicsList::SetGammaCut(G4double val) -{ - ResetCuts(); - cutForGamma = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetElectronCut(G4double val) -{ - // ResetCuts(); - cutForElectron = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetPositronCut(G4double val) -{ - // ResetCuts(); - cutForPositron = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void PurgMagPhysicsList::SetProtonCut(G4double val) -{ - //ResetCuts(); - cutForProton = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - - - +// Code developed by: +// S.Larsson +// +// ******************************** +// * * +// * PurgMagPhysicsList.cc * +// * * +// ******************************** +// +// +// $Id: PurgMagPhysicsList.cc,v 1.4 2005/12/14 16:06:49 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "PurgMagPhysicsList.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4Material.hh" +#include "G4UnitsTable.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +PurgMagPhysicsList::PurgMagPhysicsList(): G4VUserPhysicsList() +{ + defaultCutValue = 1*micrometer; + cutForGamma = defaultCutValue; + cutForElectron = defaultCutValue; + cutForPositron = defaultCutValue; + cutForProton = defaultCutValue; + + SetVerboseLevel(1); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +PurgMagPhysicsList::~PurgMagPhysicsList() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::ConstructParticle() +{ + // In this method, static member functions should be called + // for all particles which you want to use. + // This ensures that objects of these particle types will be + // created in the program. + + ConstructBosons(); + ConstructLeptons(); + ConstructBarions(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::ConstructBosons() +{ + + // gamma + G4Gamma::GammaDefinition(); + + // optical photon + G4OpticalPhoton::OpticalPhotonDefinition(); +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::ConstructLeptons() +{ + // leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::ConstructBarions() +{ + // barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::ConstructProcess() +{ + AddTransportation(); + ConstructEM(); + ConstructGeneral(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4MultipleScattering.hh" +// Bosons +#include "G4PhotoElectricEffect.hh" +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +// Leptons +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::ConstructEM() +{ + theParticleIterator->reset(); + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + + if (particleName == "gamma") { + //gamma + pmanager->AddDiscreteProcess(new G4GammaConversion); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if (particleName == "proton") { + //proton + pmanager->AddProcess(new G4MultipleScattering, -1,1,1); + + } else if (particleName == "anti_proton") { + //antiproton + pmanager->AddProcess(new G4MultipleScattering, -1,1,1); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::ConstructGeneral() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetCuts() +{ + if (verboseLevel >0){ + G4cout << "PurgMagPhysicsList::SetCuts:"; + G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; + } + + // set cut values for gamma at first and for e- second and next for e+, + // because some processes for e+/e- need cut values for gamma + SetCutValue(cutForGamma, "gamma"); + SetCutValue(cutForElectron, "e-"); + SetCutValue(cutForPositron, "e+"); + + // set cut values for proton and anti_proton before all other hadrons + // because some processes for hadrons need cut values for proton/anti_proton + SetCutValue(cutForProton, "proton"); + SetCutValue(cutForProton, "anti_proton"); + + // SetCutValueForOthers(defaultCutValue); + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetGammaLowLimit(G4double lowcut) +{ + if (verboseLevel >0){ + G4cout << "PurgMagPhysicsList::SetCuts:"; + G4cout << "Gamma cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + } + + // G4Gamma::SetEnergyRange(lowcut,1e5); + SetGELowLimit(lowcut); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetElectronLowLimit(G4double lowcut) +{ + if (verboseLevel >0){ + + G4cout << "PurgMagPhysicsList::SetCuts:"; + G4cout << "Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + } + + // G4Electron::SetEnergyRange(lowcut,1e5); + SetGELowLimit(lowcut); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetPositronLowLimit(G4double lowcut) +{ + if (verboseLevel >0){ + + G4cout << "PurgMagPhysicsList::SetCuts:"; + G4cout << "Positron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + } + + G4cerr << "PurgMagPhysicsList::SetPositronLowLimit: Not currently able to set Positron LowLimit." << G4endl; + G4Exception("Positron Low Limit: not implemented in PurgMagPhysicsList"); + // + // G4Positron::SetEnergyRange(lowcut,1e5); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetProtonLowLimit(G4double lowcut) +{ + if (verboseLevel >0){ + + G4cout << "PurgMagPhysicsList::SetCuts:"; + G4cout << "Proton cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + } + + G4cerr << "PurgMagPhysicsList::SetProtonLowLimit: Not currently able to set Proton LowLimit." << G4endl; + G4Exception("Proton Low Limit: not implemented in PurgMagPhysicsList"); + // + // G4Proton::SetEnergyRange(lowcut,1e5); + // G4AntiProton::SetEnergyRange(lowcut,1e5); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetGEPLowLimit(G4double lowcut) +{ + if (verboseLevel >0){ + G4cout << "PurgMagPhysicsList::SetGEPLowLimit:"; + G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + } + + // G4Gamma::SetEnergyRange(lowcut,1e5); + // G4Electron::SetEnergyRange(lowcut,1e5); + // G4Positron::SetEnergyRange(lowcut,1e5); + this->SetGELowLimit(lowcut); + + G4cerr << " SetGEPLowLimit : Uncertain whether setting Positron low limit " << G4endl; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void PurgMagPhysicsList::SetGELowLimit(G4double lowcut) +{ + if (verboseLevel >0){ + G4cout << "PurgMagPhysicsList::SetGELowLimit:"; + G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; + } + + G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowcut,1e5); +} +void PurgMagPhysicsList::SetGammaCut(G4double val) +{ + ResetCuts(); + cutForGamma = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetElectronCut(G4double val) +{ + // ResetCuts(); + cutForElectron = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetPositronCut(G4double val) +{ + // ResetCuts(); + cutForPositron = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void PurgMagPhysicsList::SetProtonCut(G4double val) +{ + //ResetCuts(); + cutForProton = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + + + diff --git a/examples/advanced/purging_magnet/src/PurgMagPrimaryGeneratorAction.cc b/examples/advanced/purging_magnet/src/PurgMagPrimaryGeneratorAction.cc index 3d3376220a..9fca9e1daa 100644 --- a/examples/advanced/purging_magnet/src/PurgMagPrimaryGeneratorAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagPrimaryGeneratorAction.cc @@ -30,7 +30,7 @@ // ******************************************** // // $Id: PurgMagPrimaryGeneratorAction.cc,v 1.2 2004/06/18 09:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/src/PurgMagRunAction.cc b/examples/advanced/purging_magnet/src/PurgMagRunAction.cc index a9a82d1640..a82c510a3c 100644 --- a/examples/advanced/purging_magnet/src/PurgMagRunAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagRunAction.cc @@ -29,8 +29,8 @@ // * * // ****************************** // -// $Id: PurgMagRunAction.cc,v 1.2 2004/06/18 09:18:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PurgMagRunAction.cc,v 1.3 2005/12/07 14:35:12 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "PurgMagRunAction.hh" @@ -81,8 +81,8 @@ PurgMagAnalysisManager* analysis = PurgMagAnalysisManager::getInstance(); // save Rndm status if (saveRndm > 0) - { HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("beginOfRun.rndm"); + { CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); } @@ -117,8 +117,8 @@ void PurgMagRunAction::EndOfRunAction(const G4Run* aRun) // save Rndm status if (saveRndm == 1) - { HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("endOfRun.rndm"); + { CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); } } diff --git a/examples/advanced/purging_magnet/src/PurgMagSteppingAction.cc b/examples/advanced/purging_magnet/src/PurgMagSteppingAction.cc index 1f307a79db..a99bced4c0 100644 --- a/examples/advanced/purging_magnet/src/PurgMagSteppingAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagSteppingAction.cc @@ -30,7 +30,7 @@ // *********************************** // // $Id: PurgMagSteppingAction.cc,v 1.4 2004/12/07 13:45:02 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/purging_magnet/src/PurgMagSteppingVerbose.cc b/examples/advanced/purging_magnet/src/PurgMagSteppingVerbose.cc index 1ac78fe2e1..a69642e2b3 100644 --- a/examples/advanced/purging_magnet/src/PurgMagSteppingVerbose.cc +++ b/examples/advanced/purging_magnet/src/PurgMagSteppingVerbose.cc @@ -30,7 +30,7 @@ // ************************************ // // $Id: PurgMagSteppingVerbose.cc,v 1.2 2004/06/18 09:18:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "PurgMagSteppingVerbose.hh" diff --git a/examples/advanced/purging_magnet/src/PurgMagTabulatedField3D.cc b/examples/advanced/purging_magnet/src/PurgMagTabulatedField3D.cc index 8a897d7c41..2033eb25cf 100644 --- a/examples/advanced/purging_magnet/src/PurgMagTabulatedField3D.cc +++ b/examples/advanced/purging_magnet/src/PurgMagTabulatedField3D.cc @@ -30,7 +30,7 @@ // ************************************* // // $Id: PurgMagTabulatedField3D.cc,v 1.3 2004/11/29 14:13:20 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "PurgMagTabulatedField3D.hh" diff --git a/examples/advanced/purging_magnet/src/PurgMagTrackingAction.cc b/examples/advanced/purging_magnet/src/PurgMagTrackingAction.cc index 576d267bbf..7b628b1a8e 100644 --- a/examples/advanced/purging_magnet/src/PurgMagTrackingAction.cc +++ b/examples/advanced/purging_magnet/src/PurgMagTrackingAction.cc @@ -30,7 +30,7 @@ // *********************************** // // $Id: PurgMagTrackingAction.cc,v 1.2 2004/06/18 09:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "PurgMagTrackingAction.hh" diff --git a/examples/advanced/radioprotection/History b/examples/advanced/radioprotection/History index 96d95f14b2..c4aeba3fda 100644 --- a/examples/advanced/radioprotection/History +++ b/examples/advanced/radioprotection/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.9 2005/05/30 09:41:25 guatelli Exp $ +$Id: History,v 1.16 2005/12/07 14:41:36 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,6 +8,30 @@ $Id: History,v 1.9 2005/05/30 09:41:25 guatelli Exp $ Category History file --------------------- +7th December 2005 Susanna Guatelli (radioprotection-V07-01-04) +- Macros updated +- Comment deleted from remsim.cc + +2nd December 2005 Susanna Guatelli (radioprotection-V07-01-03) +- Ions updated +- General Particle source introduced +- Macros updated +- README updated + +23th November 2005 Susanna Guatelli (radioprotection-V07-01-02) +- Ions introduced + +23th November 2005 Susanna Guatelli (radioprotection-V07-01-01) +- Deleted warning due to standard C++ libraries concerning reading +external files +- Added Eta and EtaPrime as particles + +8th September 2005 Susanna Guatelli (radioprotection-V07-01-00) +- Deleted bug. The bug appears at the end of the execution of the simulation. + The bug consists in a segmentation fault appearing after the delete + of the run manager. The bug appeared with platform slc3. + It is due to a bug in G4hLowEnergyIonisation. + 30th May 2005 Susanna Guatelli (radioprotection-V07-00-05) - Code review, analysis with AIDA 3.2.1 and PI 1.3.3 diff --git a/examples/advanced/radioprotection/README b/examples/advanced/radioprotection/README index aea0c86047..9d00f7627c 100644 --- a/examples/advanced/radioprotection/README +++ b/examples/advanced/radioprotection/README @@ -114,66 +114,12 @@ The user can choose the Bertini cascade approach or the binary cascade approach for the modeling of proton hadronic physics. 3. PRIMARY PARTICLES - -The user can select different set-ups to generate primary particles: - -- "Basic": monochromatic particle beam (default configuration) - -- "Interplanetary": particle beam with energy derived from a given - energy spectrum. - -- "Moon": particles generated with energy derived from a given - energy spectrum; The primary vertex is generated on a given hemisphere. - -The default configuration is Basic. - -The energy spectrum is written is ASCII file: -first column: energy in MeV -second column: flux -The final two rows must look as follows: --1 -1 --2 -2 - -The flux is used as probability of generating a particle with a particular -energy. The sum of the fluxes is normalised to 1 in the RunAction. - -Examples of ASCII files -- - -- Galactic Cosmic Rays fluxes (envelope of CREME96 1977 and CREME86 1975 solar -minimum spectra): - -p: gcrZ=1.txt -alpha: gcrZ=2.txt -carbon ion: gcrZ=6.txt -oxygen ion: gcrZ=8.txt -silicon ion: gcrZ=14.txt -iron ion: gcrZ=26.txt - -- Solar Particle Events (envelope of CREME96 October 1989 and -August 1972 spectra) - -p: speZ=1.txt -alpha: speZ=2.txt - -3.1 UI - -The user can select interactively the configuration with the following -UI commands: -/gun/generator Basic -/gun/generator Interplanetary -/gun/generator Moon - -After that the user can define primary particles with the following command: -/gun/particle proton -/gun/particle alpha -/gun/particle IonC12 -/gun/particle IonO16 -/gun/particle IonSi28 -/gun/particle IonFe52 - -In the Basic configuration, the user can change interactively the -energy of primary particles: -example: /gun/energy 1. MeV +Primary particles are generated through the General Particle Source. +Galactic Cosmic Protons (CREME 96) are generated from a point set in +the position (0., 0., -25. m), with a direction (0., 0., 1.) by default. +The energy spectrum of the primary particles follows the +differential energy distribution described in gcrZ=1gps.mac. +The user can change these parameters interactively. 4. STEPPING @@ -263,6 +209,6 @@ Author : Susanna Guatelli for comments, advices, doubts and questions: guatelli@ge.infn.it -last modified: Susanna Guatelli 27/5/2005 +last modified: Susanna Guatelli 2/12/2005 diff --git a/examples/advanced/radioprotection/gcrZ=1.txt b/examples/advanced/radioprotection/gcrZ=1.txt deleted file mode 100644 index 706ecd26e1..0000000000 --- a/examples/advanced/radioprotection/gcrZ=1.txt +++ /dev/null @@ -1,837 +0,0 @@ -1.0023 4271.974565 -1.0162 4268.700197 -1.0304 4265.269509 -1.0447 4261.725529 -1.0592 4258.038604 -1.0739 4254.203028 -1.0888 4250.212715 -1.104 4246.114704 -1.1193 4242.089408 -1.1349 4238.13283 -1.1506 4234.294698 -1.1666 4230.525274 -1.1828 4226.848085 -1.1993 4223.240179 -1.2159 4219.744131 -1.2328 4216.316672 -1.25 4212.958127 -1.2674 4209.687492 -1.285 4206.503538 -1.3028 4203.404892 -1.3209 4200.373395 -1.3393 4197.408985 -1.3579 4194.526896 -1.3768 4191.710801 -1.3959 4188.974731 -1.4153 4186.303331 -1.435 4183.696194 -1.4549 4181.165571 -1.4751 4178.697732 -1.4956 4176.292009 -1.5164 4173.94767 -1.5375 4171.664066 -1.5589 4169.440467 -1.5805 4167.286069 -1.6025 4165.180109 -1.6248 4163.131715 -1.6473 4161.14881 -1.6702 4159.212858 -1.6934 4157.331758 -1.717 4155.496796 -1.7408 4153.722549 -1.765 4151.993109 -1.7896 4150.308072 -1.8144 4148.680108 -1.8397 4147.088771 -1.8652 4145.552171 -1.8911 4144.057187 -1.9174 4142.603265 -1.9441 4141.189821 -1.9711 4139.821308 -1.9985 4138.491791 -2.0263 4137.200618 -2.0544 4135.951563 -2.083 4134.734649 -2.1119 4133.557698 -2.1413 4132.412266 -2.171 4131.305422 -2.2012 4130.228966 -2.2318 4129.185899 -2.2628 4128.175489 -2.2942 4127.19698 -2.3261 4126.246637 -2.3585 4125.323986 -2.3912 4124.433989 -2.4245 4123.567851 -2.4582 4122.730259 -2.4923 4121.92045 -2.527 4121.133144 -2.5621 4120.372365 -2.5977 4119.635301 -2.6338 4118.921409 -2.6704 4118.230144 -2.7075 4117.560965 -2.7451 4116.913338 -2.7833 4116.285073 -2.822 4115.677335 -2.8612 4115.089582 -2.9009 4114.521291 -2.9412 4113.970551 -2.9821 4113.436962 -3.0236 4112.920124 -3.0656 4112.420823 -3.1082 4111.937414 -3.1514 4111.469483 -3.1952 4111.016627 -3.2396 4110.578445 -3.2846 4110.154543 -3.3303 4109.743626 -3.3765 4109.347101 -3.4235 4108.962043 -3.471 4108.590566 -3.5193 4108.229979 -3.5682 4107.881471 -3.6178 4107.543993 -3.6681 4107.217244 -3.719 4106.901548 -3.7707 4106.595366 -3.8231 4106.299026 -3.8762 4106.01224 -3.9301 4105.734209 -3.9847 4105.465085 -4.0401 4105.204119 -4.0963 4104.951193 -4.1532 4104.706509 -4.2109 4104.469392 -4.2694 4104.239621 -4.3288 4104.016603 -4.3889 4103.800874 -4.4499 4103.591501 -4.5118 4103.388307 -4.5745 4103.191432 -4.638 4103.000668 -4.7025 4102.815246 -4.7678 4102.635573 -4.8341 4102.460934 -4.9013 4102.291436 -4.9694 4102.12692 -5.0385 4101.966996 -5.1085 4101.811752 -5.1795 4101.660822 -5.2515 4101.514072 -5.3244 4101.371569 -5.3984 4101.232796 -5.4735 4101.097644 -5.5495 4100.966347 -5.6266 4100.838439 -5.7048 4100.713818 -5.7841 4100.592383 -5.8645 4100.47403 -5.946 4100.358659 -6.0286 4100.246172 -6.1124 4100.136339 -6.1974 4100.029078 -6.2835 4099.924429 -6.3708 4099.822186 -6.4594 4099.722158 -6.5491 4099.624488 -6.6401 4099.528883 -6.7324 4099.435274 -6.826 4099.343594 -6.9209 4099.253776 -7.017 4099.165848 -7.1146 4099.079473 -7.2134 4098.994859 -7.3137 4098.911688 -7.4153 4098.83007 -7.5184 4098.749792 -7.6229 4098.67088 -7.7288 4098.59328 -7.8362 4098.516871 -7.9451 4098.441605 -8.0555 4098.367435 -8.1675 4098.294251 -8.281 4098.222019 -8.3961 4098.150631 -8.5128 4098.080106 -8.6311 4098.010401 -8.751 4097.941477 -8.8726 4097.873239 -8.9959 4097.80565 -9.1209 4097.738674 -9.2477 4097.672223 -9.3762 4097.606314 -9.5065 4097.540864 -9.6386 4097.475837 -9.7726 4097.411154 -9.9084 4097.34683 -10.046 4097.282833 -10.186 4097.218856 -10.327 4097.155506 -10.471 4097.091853 -10.616 4097.028753 -10.764 4096.965306 -10.913 4096.902339 -11.065 4096.838978 -11.219 4096.775614 -11.375 4096.712219 -11.533 4096.648761 -11.693 4096.58521 -11.856 4096.521143 -12.02 4096.457315 -12.187 4096.392916 -12.357 4096.327922 -12.529 4096.262688 -12.703 4096.197181 -12.879 4096.13137 -13.058 4096.064849 -13.24 4095.997592 -13.424 4095.929936 -13.61 4095.861847 -13.799 4095.792928 -13.991 4095.723146 -14.186 4095.65247 -14.383 4095.581228 -14.583 4095.509022 -14.785 4095.436178 -14.991 4095.36194 -15.199 4095.286989 -15.41 4095.210929 -15.625 4095.133361 -15.842 4095.054965 -16.062 4094.975339 -16.285 4094.894442 -16.511 4094.81223 -16.741 4094.728297 -16.973 4094.643325 -17.209 4094.556535 -17.449 4094.467877 -17.691 4094.37804 -17.937 4094.286234 -18.186 4094.192778 -18.439 4094.097241 -18.695 4093.99962 -18.955 4093.899464 -19.218 4093.797423 -19.485 4093.693049 -19.756 4093.586276 -20.031 4093.477037 -20.309 4093.365663 -20.591 4093.251687 -20.878 4093.134628 -21.168 4093.015228 -21.462 4092.893001 -21.76 4092.767871 -22.063 4092.639333 -22.369 4092.508154 -22.68 4092.373391 -22.995 4092.235389 -23.315 4092.093615 -23.639 4091.948416 -23.967 4091.799703 -24.3 4091.646924 -24.638 4091.489968 -24.981 4091.328729 -25.328 4091.16357 -25.68 4090.993906 -26.037 4090.819622 -26.398 4090.641093 -26.765 4090.457208 -27.137 4090.268336 -27.514 4090.074353 -27.897 4089.874607 -28.284 4089.670008 -28.678 4089.458834 -29.076 4089.242548 -29.48 4089.019923 -29.89 4088.790805 -30.305 4088.555599 -30.726 4088.313587 -31.153 4088.064605 -31.586 4087.808485 -32.025 4087.545054 -32.47 4087.274144 -32.922 4086.994962 -33.379 4086.708563 -33.843 4086.413517 -34.313 4086.11027 -34.79 4085.79798 -35.274 4085.476441 -35.764 4085.146117 -36.261 4084.806133 -36.765 4084.456275 -37.276 4084.096325 -37.794 4083.726065 -38.319 4083.345273 -38.852 4082.952989 -39.392 4082.549708 -39.939 4082.135205 -40.494 4081.708481 -41.057 4081.269283 -41.628 4080.817353 -42.206 4080.353233 -42.793 4079.875055 -43.387 4079.384183 -43.99 4078.878696 -44.602 4078.358302 -45.221 4077.824436 -45.85 4077.274227 -46.487 4076.708131 -47.133 4076.124932 -47.788 4075.525311 -48.452 4074.90896 -49.126 4074.274634 -49.808 4073.623912 -50.501 4072.953609 -51.202 4072.266302 -51.914 4071.558728 -52.635 4070.832537 -53.367 4070.085372 -54.109 4069.317902 -54.861 4068.529788 -55.623 4067.720687 -56.396 4066.889181 -57.18 4066.034901 -57.974 4065.158585 -58.78 4064.257653 -59.597 4063.332835 -60.425 4062.383777 -61.265 4061.408938 -62.116 4060.4091 -62.98 4059.381519 -63.855 4058.328126 -64.742 4057.247383 -65.642 4056.137656 -66.554 4054.999761 -67.479 4053.832082 -68.417 4052.634132 -69.368 4051.405526 -70.332 4050.145879 -71.309 4048.854752 -72.3 4047.530364 -73.305 4046.1723 -74.324 4044.780142 -75.357 4043.353415 -76.404 4041.891698 -77.466 4040.393163 -78.543 4038.857361 -79.634 4037.285284 -80.741 4035.673603 -81.863 4034.023374 -83.001 4032.332664 -84.154 4030.602432 -85.324 4028.829265 -86.509 4027.015717 -87.712 4025.156706 -88.931 4023.254886 -90.166 4021.309854 -91.42 4019.316439 -92.69 4017.278896 -93.978 4015.193514 -95.284 4013.05984 -96.608 4010.877421 -97.951 4008.644147 -99.312 4006.361219 -100.69 4004.029808 -102.09 4001.640971 -103.51 3999.197676 -104.95 3996.699434 -106.41 3994.145759 -107.89 3991.536168 -109.39 3988.87018 -110.91 3986.147408 -112.45 3983.367381 -114.01 3980.529632 -115.59 3977.633788 -117.2 3974.660927 -118.83 3971.628923 -120.48 3968.537421 -122.16 3965.367203 -123.85 3962.155569 -125.57 3958.864177 -127.32 3955.492434 -129.09 3952.059055 -130.88 3948.563619 -132.7 3944.984693 -134.55 3941.321777 -136.42 3937.595605 -138.31 3933.805891 -140.23 3929.932176 -142.18 3925.973827 -144.16 3921.930444 -146.16 3917.822069 -148.19 3913.62779 -150.25 3909.347125 -152.34 3904.979605 -154.46 3900.524769 -156.6 3896.003297 -158.78 3891.372617 -160.99 3886.65356 -163.23 3881.845714 -165.49 3876.97025 -167.79 3871.983764 -170.13 3866.885799 -172.49 3861.7197 -174.89 3856.441338 -177.32 3851.072404 -179.78 3845.612859 -182.28 3840.040246 -184.81 3834.376468 -187.38 3828.598909 -189.99 3822.707415 -192.63 3816.724521 -195.3 3810.650305 -198.02 3804.439035 -200.77 3798.136331 -203.56 3791.719331 -206.39 3785.188037 -209.26 3778.542481 -212.16 3771.805947 -215.11 3764.932233 -218.1 3757.944686 -221.13 3750.843623 -224.21 3743.6059 -227.32 3736.278725 -230.48 3728.815397 -233.69 3721.21626 -236.93 3713.529149 -240.23 3705.683366 -243.56 3697.75094 -246.95 3689.660968 -250.38 3681.461733 -253.86 3673.130169 -257.39 3664.666924 -260.97 3656.073098 -264.59 3647.373469 -268.27 3638.520759 -272 3629.540262 -275.78 3620.43308 -279.61 3611.200147 -283.5 3601.818546 -287.44 3592.313867 -291.43 3582.687424 -295.48 3572.916222 -299.59 3563.001679 -303.75 3552.969631 -307.97 3542.7975 -312.25 3532.486895 -316.59 3522.039484 -320.99 3511.457 -325.45 3500.741237 -329.98 3489.870052 -334.56 3478.893624 -339.21 3467.766011 -343.92 3456.512962 -348.7 3445.112734 -353.55 3433.567587 -358.46 3421.903612 -363.45 3410.075703 -368.5 3398.133741 -373.62 3386.056275 -378.81 3373.845918 -384.07 3361.505353 -389.41 3349.013638 -394.82 3336.397058 -400.31 3323.634949 -405.87 3310.753597 -411.51 3297.732627 -417.23 3284.574983 -423.03 3271.283674 -428.91 3257.861442 -434.87 3244.311769 -440.92 3230.615583 -447.04 3216.821455 -453.26 3202.864879 -459.56 3188.794364 -465.94 3174.613411 -472.42 3160.280979 -478.98 3145.844781 -485.64 3131.264725 -492.39 3116.566432 -499.23 3101.753574 -506.17 3086.808752 -513.2 3071.757434 -520.34 3056.560515 -527.57 3041.264746 -534.9 3025.853091 -542.33 3010.32987 -549.87 2994.678715 -557.51 2978.924099 -565.26 2963.050046 -573.11 2947.081752 -581.08 2930.982552 -589.16 2914.777304 -597.34 2898.490964 -605.64 2882.087882 -614.06 2865.573041 -622.6 2848.95149 -631.25 2832.24715 -640.02 2815.445716 -648.91 2798.551893 -657.93 2781.552102 -667.08 2764.451461 -676.35 2747.273132 -685.75 2730.004157 -695.28 2712.649789 -704.94 2695.214768 -714.74 2677.687101 -724.67 2660.089651 -734.74 2642.409702 -744.95 2624.653032 -755.3 2606.824872 -765.8 2588.914025 -776.44 2570.943011 -787.23 2552.900432 -798.17 2534.79197 -809.27 2516.606951 -820.51 2498.383876 -831.92 2480.079383 -843.48 2461.731669 -855.2 2443.33083 -867.09 2424.866819 -879.14 2406.360821 -891.35 2387.81902 -903.74 2369.216891 -916.3 2350.575464 -929.03 2331.901318 -941.95 2313.17058 -955.04 2294.418435 -968.31 2275.636575 -981.77 2256.817207 -995.41 2237.980674 -1009.2 2219.173286 -1023.3 2200.18471 -1037.5 2181.303964 -1051.9 2162.40238 -1066.5 2143.486766 -1081.3 2124.56393 -1096.4 2105.513657 -1111.6 2086.593305 -1127.1 2067.560661 -1142.7 2048.66715 -1158.6 2029.675435 -1174.7 2010.713297 -1191 1991.786471 -1207.6 1972.785144 -1224.4 1953.830678 -1241.4 1934.928663 -1258.6 1916.084257 -1276.1 1897.19453 -1293.9 1878.267661 -1311.8 1859.52121 -1330.1 1840.647212 -1348.6 1821.859685 -1367.3 1803.163131 -1386.3 1784.463573 -1405.6 1765.768391 -1425.1 1747.179972 -1444.9 1728.607394 -1465 1710.057607 -1485.3 1691.629297 -1506 1673.147571 -1526.9 1654.79745 -1548.1 1636.495993 -1569.7 1618.16457 -1591.5 1599.978917 -1613.6 1581.860056 -1636 1563.81363 -1658.7 1545.845167 -1681.8 1527.882312 -1705.2 1510.009498 -1728.9 1492.231743 -1752.9 1474.553805 -1777.3 1456.908274 -1802 1439.373299 -1827 1421.953243 -1852.4 1404.5841 -1878.1 1387.339497 -1904.2 1370.15756 -1930.7 1353.044629 -1957.5 1336.070051 -1984.7 1319.175098 -2012.3 1302.365435 -2040.3 1285.646551 -2068.6 1269.082285 -2097.4 1252.560704 -2126.5 1236.201339 -2156.1 1219.896519 -2186.1 1203.707049 -2216.4 1187.690022 -2247.2 1171.743938 -2278.5 1155.874823 -2310.1 1140.187935 -2342.2 1124.587656 -2374.8 1109.079168 -2407.8 1093.714351 -2441.3 1078.450746 -2475.2 1063.337821 -2509.6 1048.334691 -2544.5 1033.445609 -2579.8 1018.716526 -2615.7 1004.067988 -2652 989.5853955 -2688.9 975.1925044 -2726.2 960.9706671 -2764.1 946.8469479 -2802.5 932.8625799 -2841.5 918.9846444 -2881 905.2522126 -2921 891.6679526 -2961.6 878.2009225 -3002.8 864.8546872 -3044.5 851.6641849 -3086.8 838.6003269 -3129.7 825.6664166 -3173.2 812.8652693 -3217.3 800.1994516 -3262 787.671282 -3307.4 775.255744 -3353.3 763.0098879 -3399.9 750.8824709 -3447.2 738.8764065 -3495.1 727.0190849 -3543.6 715.3121912 -3592.9 703.709843 -3642.8 692.2612485 -3693.5 680.9229667 -3744.8 669.7416444 -3796.8 658.6965844 -3849.6 647.768806 -3903.1 636.9807048 -3957.3 626.3334942 -4012.3 615.809643 -4068.1 605.4112153 -4124.6 595.1578355 -4181.9 585.0324098 -4240.1 575.0193471 -4299 565.1544217 -4358.7 555.4215456 -4419.3 545.8060679 -4480.7 536.3252632 -4543 526.9644857 -4606.1 517.7396601 -4670.1 508.6375481 -4735.1 499.6454968 -4800.9 490.7917285 -4867.6 482.063083 -4935.2 473.4603746 -5003.8 464.9722051 -5073.3 456.6116504 -5143.9 448.3554393 -5215.3 440.2390711 -5287.8 432.228818 -5361.3 424.3368033 -5435.8 416.8606235 -5511.4 410.2626016 -5588 403.7605622 -5665.6 397.3543764 -5744.3 391.0359003 -5824.2 384.7977725 -5905.1 378.6558272 -5987.2 372.5949741 -6070.4 366.6229022 -6154.8 360.7326192 -6240.3 354.9311892 -6327 349.2118053 -6414.9 343.5746301 -6504.1 338.0135754 -6594.5 332.5350961 -6686.1 327.1390517 -6779 321.8195713 -6873.3 316.5713392 -6968.8 311.4055587 -7065.6 306.316565 -7163.8 301.2992149 -7263.4 296.3537486 -7364.3 291.4850651 -7466.7 286.6835642 -7570.4 281.9585965 -7675.6 277.3009319 -7782.3 272.7107586 -7890.5 268.1881736 -8000.1 263.7371925 -8111.3 259.349626 -8224 255.0294526 -8338.3 250.7727892 -8454.2 246.5796739 -8571.7 242.450067 -8690.8 238.3838572 -8811.6 234.377596 -8934.1 230.431323 -9058.2 226.548088 -9184.1 222.7215302 -9311.7 218.9546574 -9441.2 215.2415896 -9572.4 211.5880218 -9705.4 207.9909401 -9840.3 204.447591 -9977 200.9604921 -10116 197.5171553 -10256 194.1491364 -10399 190.8083353 -10543 187.5414758 -10690 184.3030762 -10838 181.1370789 -10989 178.0004853 -11142 174.9147424 -11297 171.8795395 -11454 168.8945258 -11613 165.9593139 -11774 163.0734826 -11938 160.2194282 -12104 157.4148203 -12272 154.6591092 -12442 151.9517243 -12615 149.2768375 -12791 146.6351759 -12968 144.0560934 -13149 141.4958002 -13331 138.9966552 -13517 136.5172994 -13704 134.0975619 -13895 131.6983839 -14088 129.3452004 -14284 127.0255126 -14482 124.7508345 -14684 122.4983299 -14888 120.2904129 -15095 118.1158281 -15304 115.9846425 -15517 113.8764402 -15733 111.8015094 -15951 109.7689359 -16173 107.7599383 -16398 105.7838147 -16626 103.8403676 -16857 101.9293723 -17091 100.0505795 -17329 98.19603891 -17569 96.3810402 -17814 94.58289655 -18061 92.82361469 -18312 91.08856895 -18567 89.37798647 -18825 87.69846179 -19086 86.04956217 -19351 84.42480618 -19620 82.82428228 -19893 81.24804213 -20170 79.696103 -20450 78.17380674 -20734 76.6754345 -21022 75.20092782 -21314 73.75020212 -21611 72.31839868 -21911 70.91502711 -22215 69.53504105 -22524 68.17393007 -22837 66.83610391 -23154 65.52134768 -23476 64.22546733 -23803 62.94857444 -24133 61.69821439 -24469 60.4629044 -24809 59.25003733 -25154 58.05589404 -25503 56.8837725 -25858 55.72692233 -26217 54.59181335 -26581 53.47506961 -26951 52.3736726 -27325 51.29347222 -27705 50.22856614 -28090 49.18174632 -28480 48.15285888 -28876 47.13921614 -29277 46.14331347 -29684 45.16258374 -30097 44.19703729 -30515 43.24889894 -30939 42.31577213 -31369 41.39761663 -31805 40.4943759 -32247 39.60597827 -32695 38.73233819 -33150 37.8714933 -33610 37.02711699 -34077 36.19541269 -34551 35.37640661 -35031 34.57175831 -35518 33.77970881 -36012 33.00023783 -36512 32.23481848 -37020 31.48034077 -37534 30.73971746 -38056 30.00999417 -38585 29.29255046 -39121 28.58729292 -39664 27.89411918 -40216 27.21047845 -40775 26.53883863 -41341 25.87906851 -41916 25.22880283 -42498 24.59026064 -43089 23.96119189 -43688 23.34264508 -44295 22.73454571 -44910 22.13681122 -45535 21.54749375 -46167 20.96936659 -46809 20.39961832 -47460 19.83914306 -48119 19.28871934 -48788 18.74662384 -49466 18.21364368 -50153 17.68971043 -50850 17.17402005 -51557 16.66655655 -52274 16.16729446 -53000 15.67686506 -53737 15.19387513 -54483 14.71958724 -55241 14.25206575 -56008 13.7931268 -56787 13.34093171 -57576 12.89661874 -58376 12.45956805 -59187 12.02974211 -60010 11.60659022 -60844 11.19059894 -61689 10.78171108 -62547 10.37893951 -63416 9.983197609 -64297 9.593976703 -65191 9.210816461 -66097 8.834120632 -67015 8.463839209 -67947 8.099146525 -68891 7.740800716 -69848 7.388374121 -70819 7.041479028 -71803 6.700447654 -72801 6.364902452 -73813 6.034822641 -74839 5.710181868 -75879 5.390948647 -76933 5.077086776 -78002 4.768271138 -79086 4.464482768 -80186 4.165429738 -81300 3.871626891 -82430 3.582512918 -83575 3.29831779 -84737 3.018525604 -85914 2.743594367 -87108 2.473028548 -88319 2.206816474 -89546 1.945151767 -90791 1.687587076 -92053 1.434313992 -93332 1.185303792 -94629 0.940338253 -95944 0.699398765 -97277 0.462462852 -98629 0.229334614 -100000 0. --1 -1 --2 -2 \ No newline at end of file diff --git a/examples/advanced/radioprotection/gcrZ=14.txt b/examples/advanced/radioprotection/gcrZ=14.txt deleted file mode 100644 index 853f832667..0000000000 --- a/examples/advanced/radioprotection/gcrZ=14.txt +++ /dev/null @@ -1,837 +0,0 @@ -1.0023 1.694862563 -1.0162 1.694829508 -1.0304 1.694795751 -1.0447 1.694761779 -1.0592 1.694727364 -1.0739 1.694692515 -1.0888 1.694657243 -1.104 1.694621323 -1.1193 1.694585238 -1.1349 1.694548526 -1.1506 1.694511669 -1.1666 1.694474209 -1.1828 1.694436393 -1.1993 1.694397998 -1.2159 1.694359503 -1.2328 1.694320455 -1.25 1.694280868 -1.2674 1.694240985 -1.285 1.69420082 -1.3028 1.694160383 -1.3209 1.694119461 -1.3393 1.69407807 -1.3579 1.694036448 -1.3768 1.693994385 -1.3959 1.693952119 -1.4153 1.693909441 -1.435 1.693866368 -1.4549 1.693823133 -1.4751 1.693779531 -1.4956 1.69373558 -1.5164 1.693691295 -1.5375 1.693646693 -1.5589 1.693601789 -1.5805 1.693556806 -1.6025 1.693511346 -1.6248 1.693465631 -1.6473 1.693419881 -1.6702 1.693373704 -1.6934 1.69332732 -1.717 1.693280547 -1.7408 1.693233796 -1.765 1.693186689 -1.7896 1.693139247 -1.8144 1.693091868 -1.8397 1.693043997 -1.8652 1.692996218 -1.8911 1.69294817 -1.9174 1.692899872 -1.9441 1.692851341 -1.9711 1.692802776 -1.9985 1.692754011 -2.0263 1.692705064 -2.0544 1.692656125 -2.083 1.692606864 -2.1119 1.692557639 -2.1413 1.692508128 -2.171 1.692458683 -2.2012 1.692408985 -2.2318 1.692359218 -2.2628 1.692309395 -2.2942 1.69225953 -2.3261 1.692209481 -2.3585 1.692159266 -2.3912 1.692109209 -2.4245 1.692058864 -2.4582 1.692008551 -2.4923 1.691958281 -2.527 1.691907775 -2.5621 1.691857341 -2.5977 1.691806846 -2.6338 1.691756305 -2.6704 1.691705733 -2.7075 1.691655142 -2.7451 1.691604545 -2.7833 1.691553824 -2.822 1.691503124 -2.8612 1.691452457 -2.9009 1.691401834 -2.9412 1.69135114 -2.9821 1.69130039 -3.0236 1.691249597 -3.0656 1.691198894 -3.1082 1.691148172 -3.1514 1.691097442 -3.1952 1.691046717 -3.2396 1.690996006 -3.2846 1.69094532 -3.3303 1.69089456 -3.3765 1.690843955 -3.4235 1.690793189 -3.471 1.690742595 -3.5193 1.690691865 -3.5682 1.690641218 -3.6178 1.69059056 -3.6681 1.690539902 -3.719 1.69048935 -3.7707 1.690438715 -3.8231 1.690388106 -3.8762 1.69033753 -3.9301 1.6902869 -3.9847 1.69023632 -4.0401 1.690185704 -4.0963 1.69013506 -4.1532 1.690084487 -4.2109 1.690033901 -4.2694 1.68998331 -4.3288 1.689932635 -4.3889 1.689882053 -4.4499 1.689831401 -4.5118 1.689780688 -4.5745 1.689730002 -4.638 1.689679347 -4.7025 1.689628569 -4.7678 1.689577833 -4.8341 1.689526987 -4.9013 1.689476116 -4.9694 1.689425223 -5.0385 1.68937424 -5.1085 1.689323243 -5.1795 1.689272166 -5.2515 1.689221012 -5.3244 1.689169855 -5.3984 1.68911856 -5.4735 1.689067132 -5.5495 1.689015711 -5.6266 1.688964164 -5.7048 1.688912494 -5.7841 1.688860706 -5.8645 1.688808803 -5.946 1.688756787 -6.0286 1.68870466 -6.1124 1.688652363 -6.1974 1.688599897 -6.2835 1.688547326 -6.3708 1.688494591 -6.4594 1.688441633 -6.5491 1.688388574 -6.6401 1.688335295 -6.7324 1.688281798 -6.826 1.688228085 -6.9209 1.688174156 -7.017 1.688120069 -7.1146 1.688065654 -7.2134 1.68801108 -7.3137 1.68795618 -7.4153 1.687901064 -7.5184 1.687845623 -7.6229 1.68778991 -7.7288 1.687733924 -7.8362 1.68767761 -7.9451 1.687620968 -8.0555 1.687563996 -8.1675 1.687506641 -8.281 1.687448952 -8.3961 1.687390875 -8.5128 1.687332408 -8.6311 1.687273549 -8.751 1.687214294 -8.8726 1.68715459 -8.9959 1.687094434 -9.1209 1.687033822 -9.2477 1.686972701 -9.3762 1.686911115 -9.5065 1.686849012 -9.6386 1.686786386 -9.7726 1.686723184 -9.9084 1.686659448 -10.046 1.686595172 -10.186 1.68653007 -10.327 1.686464785 -10.471 1.686398384 -10.616 1.686331782 -10.764 1.686264053 -10.913 1.686196103 -11.065 1.68612701 -11.219 1.686057224 -11.375 1.685986732 -11.533 1.685915526 -11.693 1.685843593 -11.856 1.685770474 -12.02 1.685697055 -12.187 1.685622427 -12.357 1.685546579 -12.529 1.685469946 -12.703 1.685392513 -12.879 1.685314265 -13.058 1.685234743 -13.24 1.685153933 -13.424 1.685072262 -13.61 1.684989715 -13.799 1.68490583 -13.991 1.68482059 -14.186 1.684733975 -14.383 1.684646412 -14.583 1.684557435 -14.785 1.68446747 -14.991 1.684375604 -15.199 1.684282706 -15.41 1.684188308 -15.625 1.684091937 -15.842 1.683994464 -16.062 1.683895416 -16.285 1.683794767 -16.511 1.68369249 -16.741 1.683588102 -16.973 1.683482481 -17.209 1.683374689 -17.449 1.683264689 -17.691 1.683153368 -17.937 1.683039772 -18.186 1.682924329 -18.439 1.682806538 -18.695 1.682686828 -18.955 1.682564691 -19.218 1.68244056 -19.485 1.68231392 -19.756 1.682184728 -20.031 1.682052937 -20.309 1.681918982 -20.591 1.681782339 -20.878 1.681642469 -21.168 1.681500295 -21.462 1.68135528 -21.76 1.681207372 -22.063 1.681056015 -22.369 1.680902152 -22.68 1.680744723 -22.995 1.68058417 -23.315 1.68041992 -23.639 1.68025242 -23.967 1.68008161 -24.3 1.679906901 -24.638 1.679728217 -24.981 1.679545481 -25.328 1.679359155 -25.68 1.679168627 -26.037 1.678973817 -26.398 1.678775195 -26.765 1.678571574 -27.137 1.678363418 -27.514 1.67815064 -27.897 1.677932578 -28.284 1.677710281 -28.678 1.677481926 -29.076 1.677249152 -29.48 1.677010692 -29.89 1.676766436 -30.305 1.676516872 -30.726 1.676261293 -31.153 1.675999579 -31.586 1.675731611 -32.025 1.675457268 -32.47 1.675176426 -32.922 1.674888321 -33.379 1.674594101 -33.843 1.674292348 -34.313 1.673983576 -34.79 1.673666983 -35.274 1.673342418 -35.764 1.673010406 -36.261 1.672670122 -36.765 1.672321407 -37.276 1.6719641 -37.794 1.671598039 -38.319 1.671223058 -38.852 1.670838267 -39.392 1.670444207 -39.939 1.67004071 -40.494 1.669626854 -41.057 1.669202444 -41.628 1.668767281 -42.206 1.66832194 -42.793 1.667864678 -43.387 1.667396851 -43.99 1.666916678 -44.602 1.666423928 -45.221 1.665920004 -45.85 1.665402242 -46.487 1.664872052 -47.133 1.664328378 -47.788 1.663770981 -48.452 1.663199621 -49.126 1.662613182 -49.808 1.662013163 -50.501 1.661396668 -51.202 1.660766109 -51.914 1.660118528 -52.635 1.659455472 -53.367 1.658774828 -54.109 1.658077237 -54.861 1.657362425 -55.623 1.656630118 -56.396 1.655879067 -57.18 1.655108969 -57.974 1.654320517 -58.78 1.653511423 -59.597 1.652682373 -60.425 1.651833067 -61.265 1.650962163 -62.116 1.650070386 -62.98 1.649155311 -63.855 1.648218729 -64.742 1.647259264 -65.642 1.646275495 -66.554 1.645268182 -67.479 1.644235886 -68.417 1.643178263 -69.368 1.64209497 -70.332 1.64098567 -71.309 1.639850029 -72.3 1.63868654 -73.305 1.637494843 -74.324 1.636274587 -75.357 1.635025423 -76.404 1.633747012 -77.466 1.632437781 -78.543 1.631097367 -79.634 1.629726679 -80.741 1.628322855 -81.863 1.626886809 -83.001 1.625416913 -84.154 1.62391412 -85.324 1.622375477 -86.509 1.620803279 -87.712 1.619193203 -88.931 1.617547577 -90.166 1.615866097 -91.42 1.614144337 -92.69 1.612386087 -93.978 1.610588278 -95.284 1.608750591 -96.608 1.606872721 -97.951 1.604952942 -99.312 1.602992393 -100.69 1.600992271 -102.09 1.598945028 -103.51 1.596853265 -104.95 1.59471671 -106.41 1.592535109 -107.89 1.590308229 -109.39 1.588035855 -110.91 1.585717791 -112.45 1.583353863 -114.01 1.580943916 -115.59 1.578487817 -117.2 1.575969766 -118.83 1.573405174 -120.48 1.570793976 -122.16 1.56812017 -123.85 1.565415565 -125.57 1.562648162 -127.32 1.559817733 -129.09 1.556940382 -130.88 1.554016188 -132.7 1.551028802 -134.55 1.547978122 -136.42 1.544880684 -138.31 1.54173667 -140.23 1.538529545 -142.18 1.53525934 -144.16 1.53192612 -146.16 1.528546912 -148.19 1.525105044 -150.25 1.521600684 -152.34 1.518034033 -154.46 1.51440533 -156.6 1.510732037 -158.78 1.506980132 -160.99 1.503167102 -163.23 1.499293325 -165.49 1.495376565 -167.79 1.491382605 -170.13 1.48731183 -172.49 1.483199547 -174.89 1.479011461 -177.32 1.47476557 -179.78 1.470462492 -182.28 1.466085359 -184.81 1.461652341 -187.38 1.457146617 -189.99 1.452568913 -192.63 1.447937542 -195.3 1.443253318 -198.02 1.438482 -200.77 1.433659556 -203.56 1.428769363 -206.39 1.423812386 -209.26 1.418789625 -212.16 1.413719591 -215.11 1.40856839 -218.1 1.403354623 -221.13 1.398079433 -224.21 1.392726629 -227.32 1.387332176 -230.48 1.381862622 -233.69 1.376319351 -236.93 1.370738193 -240.23 1.365068867 -243.56 1.359364328 -246.95 1.353574637 -250.38 1.347735509 -253.86 1.341831426 -257.39 1.33586401 -260.97 1.329834909 -264.59 1.323762543 -268.27 1.317615061 -272 1.311411 -275.78 1.305152105 -279.61 1.298840142 -283.5 1.292460535 -287.44 1.286031608 -291.43 1.279555176 -295.48 1.273016966 -299.59 1.266419088 -303.75 1.259779581 -307.97 1.253084484 -312.25 1.24633595 -316.59 1.239536143 -320.99 1.232687236 -325.45 1.225791408 -329.98 1.218835542 -334.56 1.211852534 -339.21 1.204814081 -343.92 1.197737668 -348.7 1.190610623 -353.55 1.183435468 -358.46 1.17622934 -363.45 1.168965404 -368.5 1.16167528 -373.62 1.154346849 -378.81 1.146982596 -384.07 1.139584993 -389.41 1.13214262 -394.82 1.124672045 -400.31 1.117162068 -405.87 1.109628961 -411.51 1.102061741 -417.23 1.094463148 -423.03 1.086835898 -428.91 1.079182677 -434.87 1.071506141 -440.92 1.06379624 -447.04 1.056081049 -453.26 1.048325507 -459.56 1.040557482 -465.94 1.032779446 -472.42 1.024969863 -478.98 1.017155644 -485.64 1.009315723 -492.39 1.001464794 -499.23 0.993605522 -506.17 0.985729239 -513.2 0.977850066 -520.34 0.969948513 -527.57 0.962049587 -534.9 0.954144964 -542.33 0.946237397 -549.87 0.938319147 -557.51 0.930403557 -565.26 0.922483041 -573.11 0.914570529 -581.08 0.907688015 -589.16 0.901613742 -597.34 0.895525908 -605.64 0.889411381 -614.06 0.883272068 -622.6 0.877109931 -631.25 0.870934026 -640.02 0.864739007 -648.91 0.858526749 -657.93 0.852292264 -667.08 0.846037585 -676.35 0.83977145 -685.75 0.833489002 -695.28 0.827192167 -704.94 0.820882921 -714.74 0.814556789 -724.67 0.808222221 -734.74 0.801874833 -744.95 0.795516634 -755.3 0.78914963 -765.8 0.782769743 -776.44 0.776385121 -787.23 0.769991827 -798.17 0.763591936 -809.27 0.757181672 -820.51 0.750774641 -831.92 0.7443558 -843.48 0.737938521 -855.2 0.731519354 -867.09 0.725094928 -879.14 0.718672739 -891.35 0.712254791 -903.74 0.705832635 -916.3 0.69941365 -929.03 0.692999938 -941.95 0.686583585 -955.04 0.68017659 -968.31 0.673776107 -981.77 0.667379488 -995.41 0.660993482 -1009.2 0.654633906 -1023.3 0.64822963 -1037.5 0.64187824 -1051.9 0.635536505 -1066.5 0.629206507 -1081.3 0.622890215 -1096.4 0.616547649 -1111.6 0.610264725 -1127.1 0.603960735 -1142.7 0.597718871 -1158.6 0.59146083 -1174.7 0.585228496 -1191 0.579023526 -1207.6 0.572810113 -1224.4 0.566628002 -1241.4 0.560478745 -1258.6 0.554363857 -1276.1 0.548249882 -1293.9 0.542139485 -1311.8 0.536102625 -1330.1 0.530039981 -1348.6 0.524020326 -1367.3 0.518044947 -1386.3 0.512083612 -1405.6 0.506138459 -1425.1 0.500242029 -1444.9 0.494365662 -1465 0.488511326 -1485.3 0.482709743 -1506 0.476905608 -1526.9 0.471156796 -1548.1 0.465437248 -1569.7 0.459722185 -1591.5 0.454066143 -1613.6 0.448444472 -1636 0.442858673 -1658.7 0.437310186 -1681.8 0.431776564 -1705.2 0.42628356 -1728.9 0.42083256 -1752.9 0.415424754 -1777.3 0.410039198 -1802 0.404699768 -1827 0.399407468 -1852.4 0.394142512 -1878.1 0.388927089 -1904.2 0.383742148 -1930.7 0.378589435 -1957.5 0.373489649 -1984.7 0.368424792 -2012.3 0.363396382 -2040.3 0.358405865 -2068.6 0.353472043 -2097.4 0.348561341 -2126.5 0.343709083 -2156.1 0.338883062 -2186.1 0.334101017 -2216.4 0.32937952 -2247.2 0.324688318 -2278.5 0.320029125 -2310.1 0.31543266 -2342.2 0.31087052 -2374.8 0.306345102 -2407.8 0.301871366 -2441.3 0.297435598 -2475.2 0.293051734 -2509.6 0.288707651 -2544.5 0.284404577 -2579.8 0.280155498 -2615.7 0.275937203 -2652 0.271774037 -2688.9 0.267643881 -2726.2 0.263569885 -2764.1 0.259530885 -2802.5 0.255538424 -2841.5 0.251582968 -2881 0.247675418 -2921 0.243816225 -2961.6 0.239996423 -3002.8 0.236216849 -3044.5 0.232487221 -3086.8 0.228799079 -3129.7 0.225153099 -3173.2 0.221549898 -3217.3 0.21799001 -3262 0.214473933 -3307.4 0.210994476 -3353.3 0.207567357 -3399.9 0.204178004 -3447.2 0.200827109 -3495.1 0.197522174 -3543.6 0.194263436 -3592.9 0.191037973 -3642.8 0.187859331 -3693.5 0.184715205 -3744.8 0.18161838 -3796.8 0.178562989 -3849.6 0.175543596 -3903.1 0.17256634 -3957.3 0.169631407 -4012.3 0.166733672 -4068.1 0.163873551 -4124.6 0.161056365 -4181.9 0.158277309 -4240.1 0.155531941 -4299 0.152829924 -4358.7 0.150166762 -4419.3 0.147538264 -4480.7 0.144948995 -4543 0.142394923 -4606.1 0.139880292 -4670.1 0.13740126 -4735.1 0.134954244 -4800.9 0.132546916 -4867.6 0.130175658 -4935.2 0.127840542 -5003.8 0.125538256 -5073.3 0.123272263 -5143.9 0.121036209 -5215.3 0.118839684 -5287.8 0.116673477 -5361.3 0.1145407 -5435.8 0.112441405 -5511.4 0.110372885 -5588 0.108337918 -5665.6 0.106336443 -5744.3 0.104365923 -5824.2 0.10242398 -5905.1 0.10051546 -5987.2 0.098635657 -6070.4 0.096818831 -6154.8 0.095315604 -6240.3 0.093835958 -6327 0.092378099 -6414.9 0.090942011 -6504.1 0.089526087 -6594.5 0.088131919 -6686.1 0.086759418 -6779 0.08540704 -6873.3 0.084073387 -6968.8 0.082761258 -7065.6 0.081469168 -7163.8 0.080195767 -7263.4 0.078941075 -7364.3 0.077706294 -7466.7 0.076488948 -7570.4 0.07529137 -7675.6 0.074111185 -7782.3 0.072948403 -7890.5 0.071803017 -8000.1 0.070676008 -8111.3 0.069565272 -8224 0.068471786 -8338.3 0.067394537 -8454.2 0.066333505 -8571.7 0.065288655 -8690.8 0.06425993 -8811.6 0.063246435 -8934.1 0.062248153 -9058.2 0.061265834 -9184.1 0.060297847 -9311.7 0.059344929 -9441.2 0.058405575 -9572.4 0.057481204 -9705.4 0.056571036 -9840.3 0.055674355 -9977 0.054791783 -10116 0.053920141 -10256 0.053067403 -10399 0.052221375 -10543 0.051393877 -10690 0.050573373 -10838 0.049770986 -10989 0.048975806 -11142 0.048193256 -11297 0.047423248 -11454 0.046665684 -11613 0.045920458 -11774 0.045187453 -11938 0.044462191 -12104 0.04374915 -12272 0.043048188 -12442 0.042359154 -12615 0.041678012 -12791 0.04100494 -12968 0.040347413 -13149 0.039694263 -13331 0.039056292 -13517 0.038422939 -13704 0.037804376 -13895 0.037190615 -14088 0.03658816 -14284 0.035993809 -14482 0.035410513 -14684 0.034832414 -14888 0.034265261 -15095 0.033706167 -15304 0.033157721 -15517 0.03261467 -15733 0.032079661 -15951 0.031555041 -16173 0.031035965 -16398 0.030524834 -16626 0.0300216 -16857 0.029526208 -17091 0.029038598 -17329 0.028556709 -17569 0.028084517 -17814 0.027616125 -18061 0.027157267 -18312 0.026704136 -18567 0.026256792 -18825 0.025816965 -19086 0.02538455 -19351 0.024957854 -19620 0.024536904 -19893 0.024121716 -20170 0.0237123 -20450 0.023310073 -20734 0.022913534 -21022 0.022522672 -21314 0.022137473 -21611 0.02175665 -21911 0.021382741 -22215 0.021014412 -22524 0.020650465 -22837 0.020292086 -23154 0.019939227 -23476 0.01959077 -23803 0.01924675 -24133 0.018909212 -24469 0.018575064 -24809 0.018246312 -25154 0.01792196 -25503 0.017602913 -25858 0.017287342 -26217 0.016977021 -26581 0.016671039 -26951 0.016368575 -27325 0.016071246 -27705 0.01577744 -28090 0.015487934 -28480 0.015202697 -28876 0.014920994 -29277 0.01464353 -29684 0.014369598 -30097 0.01409921 -30515 0.013833002 -30939 0.013570312 -31369 0.013311139 -31805 0.013055478 -32247 0.012803319 -32695 0.012554649 -33150 0.012308921 -33610 0.012067193 -34077 0.011828394 -34551 0.011592538 -35031 0.011360117 -35518 0.011130632 -36012 0.01090409 -36512 0.01068093 -37020 0.010460259 -37534 0.010242938 -38056 0.010028114 -38585 0.009816204 -39121 0.009607192 -39664 0.009401063 -40216 0.009197066 -40775 0.008995951 -41341 0.008797691 -41916 0.008601588 -42498 0.008408322 -43089 0.008217226 -43688 0.008028628 -44295 0.007842519 -44910 0.007658888 -45535 0.007477146 -46167 0.007298161 -46809 0.007121077 -47460 0.006946181 -48119 0.006773731 -48788 0.006603199 -49466 0.006434844 -50153 0.006268659 -50850 0.006104401 -51557 0.005942076 -52274 0.005781687 -53000 0.005623453 -53737 0.005466935 -54483 0.005312555 -55241 0.005159697 -56008 0.005008965 -56787 0.00485977 -57576 0.004712498 -58376 0.004566957 -59187 0.004423149 -60010 0.0042809 -60844 0.004140387 -61689 0.004001603 -62547 0.003864227 -63416 0.003728581 -64297 0.003594505 -65191 0.003461852 -66097 0.003330775 -67015 0.003201269 -67947 0.003073058 -68891 0.002946421 -69848 0.00282122 -70819 0.002697329 -71803 0.00257488 -72801 0.00245375 -73813 0.002333943 -74839 0.002215462 -75879 0.002098309 -76933 0.001982484 -78002 0.001867878 -79086 0.001754498 -80186 0.001642246 -81300 0.001531327 -82430 0.001421543 -83575 0.001312994 -84737 0.001205496 -85914 0.001099235 -87108 0.000994034 -88319 0.0008899 -89546 0.000786921 -90791 0.000684933 -92053 0.000584024 -93332 0.000484195 -94629 0.000385372 -95944 0.000287559 -97277 0.000190759 -98629 9.49038E-05 -100000 0 --1 -1 --2 -2 \ No newline at end of file diff --git a/examples/advanced/radioprotection/gcrZ=1gps.mac b/examples/advanced/radioprotection/gcrZ=1gps.mac new file mode 100644 index 0000000000..5c52ba3327 --- /dev/null +++ b/examples/advanced/radioprotection/gcrZ=1gps.mac @@ -0,0 +1,844 @@ +#/gps/verbose 2 +/gps/particle proton +/gps/pos/type Point +/gps/pos/centre 0. 0. -25. m +/gps/direction 0. 0. 1. +/gps/ene/type Arb +/gps/hist/type arb +/gps/hist/point 1.0023 4271.974565 +/gps/hist/point 1.0162 4268.700197 +/gps/hist/point 1.0304 4265.269509 +/gps/hist/point 1.0447 4261.725529 +/gps/hist/point 1.0592 4258.038604 +/gps/hist/point 1.0739 4254.203028 +/gps/hist/point 1.0888 4250.212715 +/gps/hist/point 1.104 4246.114704 +/gps/hist/point 1.1193 4242.089408 +/gps/hist/point 1.1349 4238.13283 +/gps/hist/point 1.1506 4234.294698 +/gps/hist/point 1.1666 4230.525274 +/gps/hist/point 1.1828 4226.848085 +/gps/hist/point 1.1993 4223.240179 +/gps/hist/point 1.2159 4219.744131 +/gps/hist/point 1.2328 4216.316672 +/gps/hist/point 1.25 4212.958127 +/gps/hist/point 1.2674 4209.687492 +/gps/hist/point 1.285 4206.503538 +/gps/hist/point 1.3028 4203.404892 +/gps/hist/point 1.3209 4200.373395 +/gps/hist/point 1.3393 4197.408985 +/gps/hist/point 1.3579 4194.526896 +/gps/hist/point 1.3768 4191.710801 +/gps/hist/point 1.3959 4188.974731 +/gps/hist/point 1.4153 4186.303331 +/gps/hist/point 1.435 4183.696194 +/gps/hist/point 1.4549 4181.165571 +/gps/hist/point 1.4751 4178.697732 +/gps/hist/point 1.4956 4176.292009 +/gps/hist/point 1.5164 4173.94767 +/gps/hist/point 1.5375 4171.664066 +/gps/hist/point 1.5589 4169.440467 +/gps/hist/point 1.5805 4167.286069 +/gps/hist/point 1.6025 4165.180109 +/gps/hist/point 1.6248 4163.131715 +/gps/hist/point 1.6473 4161.14881 +/gps/hist/point 1.6702 4159.212858 +/gps/hist/point 1.6934 4157.331758 +/gps/hist/point 1.717 4155.496796 +/gps/hist/point 1.7408 4153.722549 +/gps/hist/point 1.765 4151.993109 +/gps/hist/point 1.7896 4150.308072 +/gps/hist/point 1.8144 4148.680108 +/gps/hist/point 1.8397 4147.088771 +/gps/hist/point 1.8652 4145.552171 +/gps/hist/point 1.8911 4144.057187 +/gps/hist/point 1.9174 4142.603265 +/gps/hist/point 1.9441 4141.19821 +/gps/hist/point 1.9711 4139.821308 +/gps/hist/point 1.9985 4138.491791 +/gps/hist/point 2.0263 4137.200618 +/gps/hist/point 2.0544 4135.951563 +/gps/hist/point 2.083 4134.734649 +/gps/hist/point 2.1119 4133.557698 +/gps/hist/point 2.1413 4132.412266 +/gps/hist/point 2.171 4131.305422 +/gps/hist/point 2.2012 4130.228966 +/gps/hist/point 2.2318 4129.185899 +/gps/hist/point 2.2628 4128.175489 +/gps/hist/point 2.2942 4127.19698 +/gps/hist/point 2.3261 4126.246637 +/gps/hist/point 2.3585 4125.323986 +/gps/hist/point 2.3912 4124.433989 +/gps/hist/point 2.4245 4123.567851 +/gps/hist/point 2.4582 4122.730259 +/gps/hist/point 2.4923 4121.92045 +/gps/hist/point 2.527 4121.133144 +/gps/hist/point 2.5621 4120.372365 +/gps/hist/point 2.5977 4119.635301 +/gps/hist/point 2.6338 4118.921409 +/gps/hist/point 2.6704 4118.230144 +/gps/hist/point 2.7075 4117.560965 +/gps/hist/point 2.7451 4116.913338 +/gps/hist/point 2.7833 4116.285073 +/gps/hist/point 2.822 4115.677335 +/gps/hist/point 2.8612 4115.089582 +/gps/hist/point 2.9009 4114.521291 +/gps/hist/point 2.9412 4113.970551 +/gps/hist/point 2.9821 4113.436962 +/gps/hist/point 3.0236 4112.920124 +/gps/hist/point 3.0656 4112.420823 +/gps/hist/point 3.1082 4111.937414 +/gps/hist/point 3.1514 4111.469483 +/gps/hist/point 3.1952 4111.016627 +/gps/hist/point 3.2396 4110.578445 +/gps/hist/point 3.2846 4110.154543 +/gps/hist/point 3.3303 4109.743626 +/gps/hist/point 3.3765 4109.347101 +/gps/hist/point 3.4235 4108.962043 +/gps/hist/point 3.471 4108.590566 +/gps/hist/point 3.5193 4108.229979 +/gps/hist/point 3.5682 4107.881471 +/gps/hist/point 3.6178 4107.543993 +/gps/hist/point 3.6681 4107.217244 +/gps/hist/point 3.719 4106.901548 +/gps/hist/point 3.7707 4106.595366 +/gps/hist/point 3.8231 4106.299026 +/gps/hist/point 3.8762 4106.01224 +/gps/hist/point 3.9301 4105.734209 +/gps/hist/point 3.9847 4105.465085 +/gps/hist/point 4.0401 4105.204119 +/gps/hist/point 4.0963 4104.951193 +/gps/hist/point 4.1532 4104.706509 +/gps/hist/point 4.2109 4104.469392 +/gps/hist/point 4.2694 4104.239621 +/gps/hist/point 4.3288 4104.016603 +/gps/hist/point 4.3889 4103.800874 +/gps/hist/point 4.4499 4103.591501 +/gps/hist/point 4.5118 4103.388307 +/gps/hist/point 4.5745 4103.191432 +/gps/hist/point 4.638 4103.000668 +/gps/hist/point 4.7025 4102.815246 +/gps/hist/point 4.7678 4102.635573 +/gps/hist/point 4.8341 4102.460934 +/gps/hist/point 4.9013 4102.291436 +/gps/hist/point 4.9694 4102.12692 +/gps/hist/point 5.0385 4101.966996 +/gps/hist/point 5.1085 4101.811752 +/gps/hist/point 5.1795 4101.660822 +/gps/hist/point 5.2515 4101.514072 +/gps/hist/point 5.3244 4101.371569 +/gps/hist/point 5.3984 4101.232796 +/gps/hist/point 5.4735 4101.097644 +/gps/hist/point 5.5495 4100.966347 +/gps/hist/point 5.6266 4100.838439 +/gps/hist/point 5.7048 4100.713818 +/gps/hist/point 5.7841 4100.592383 +/gps/hist/point 5.8645 4100.47403 +/gps/hist/point 5.946 4100.358659 +/gps/hist/point 6.0286 4100.246172 +/gps/hist/point 6.1124 4100.136339 +/gps/hist/point 6.1974 4100.029078 +/gps/hist/point 6.2835 4099.924429 +/gps/hist/point 6.3708 4099.822186 +/gps/hist/point 6.4594 4099.722158 +/gps/hist/point 6.5491 4099.624488 +/gps/hist/point 6.6401 4099.528883 +/gps/hist/point 6.7324 4099.435274 +/gps/hist/point 6.826 4099.343594 +/gps/hist/point 6.9209 4099.253776 +/gps/hist/point 7.017 4099.165848 +/gps/hist/point 7.1146 4099.079473 +/gps/hist/point 7.2134 4098.994859 +/gps/hist/point 7.3137 4098.911688 +/gps/hist/point 7.4153 4098.83007 +/gps/hist/point 7.5184 4098.749792 +/gps/hist/point 7.6229 4098.67088 +/gps/hist/point 7.7288 4098.59328 +/gps/hist/point 7.8362 4098.516871 +/gps/hist/point 7.9451 4098.441605 +/gps/hist/point 8.0555 4098.367435 +/gps/hist/point 8.1675 4098.294251 +/gps/hist/point 8.281 4098.222019 +/gps/hist/point 8.3961 4098.150631 +/gps/hist/point 8.5128 4098.080106 +/gps/hist/point 8.6311 4098.010401 +/gps/hist/point 8.751 4097.941477 +/gps/hist/point 8.8726 4097.873239 +/gps/hist/point 8.9959 4097.80565 +/gps/hist/point 9.1209 4097.738674 +/gps/hist/point 9.2477 4097.672223 +/gps/hist/point 9.3762 4097.606314 +/gps/hist/point 9.5065 4097.540864 +/gps/hist/point 9.6386 4097.475837 +/gps/hist/point 9.7726 4097.411154 +/gps/hist/point 9.9084 4097.34683 +/gps/hist/point 10.046 4097.282833 +/gps/hist/point 10.186 4097.218856 +/gps/hist/point 10.327 4097.155506 +/gps/hist/point 10.471 4097.091853 +/gps/hist/point 10.616 4097.028753 +/gps/hist/point 10.764 4096.965306 +/gps/hist/point 10.913 4096.902339 +/gps/hist/point 11.065 4096.838978 +/gps/hist/point 11.219 4096.775614 +/gps/hist/point 11.375 4096.712219 +/gps/hist/point 11.533 4096.648761 +/gps/hist/point 11.693 4096.58521 +/gps/hist/point 11.856 4096.521143 +/gps/hist/point 12.02 4096.457315 +/gps/hist/point 12.187 4096.392916 +/gps/hist/point 12.357 4096.327922 +/gps/hist/point 12.529 4096.262688 +/gps/hist/point 12.703 4096.197181 +/gps/hist/point 12.879 4096.13137 +/gps/hist/point 13.058 4096.064849 +/gps/hist/point 13.24 4095.997592 +/gps/hist/point 13.424 4095.929936 +/gps/hist/point 13.61 4095.861847 +/gps/hist/point 13.799 4095.792928 +/gps/hist/point 13.991 4095.723146 +/gps/hist/point 14.186 4095.65247 +/gps/hist/point 14.383 4095.581228 +/gps/hist/point 14.583 4095.509022 +/gps/hist/point 14.785 4095.436178 +/gps/hist/point 14.991 4095.36194 +/gps/hist/point 15.199 4095.286989 +/gps/hist/point 15.41 4095.210929 +/gps/hist/point 15.625 4095.133361 +/gps/hist/point 15.842 4095.054965 +/gps/hist/point 16.062 4094.975339 +/gps/hist/point 16.285 4094.894442 +/gps/hist/point 16.511 4094.81223 +/gps/hist/point 16.741 4094.728297 +/gps/hist/point 16.973 4094.643325 +/gps/hist/point 17.209 4094.556535 +/gps/hist/point 17.449 4094.467877 +/gps/hist/point 17.691 4094.37804 +/gps/hist/point 17.937 4094.286234 +/gps/hist/point 18.186 4094.192778 +/gps/hist/point 18.439 4094.097241 +/gps/hist/point 18.695 4093.99962 +/gps/hist/point 18.955 4093.899464 +/gps/hist/point 19.218 4093.797423 +/gps/hist/point 19.485 4093.693049 +/gps/hist/point 19.756 4093.586276 +/gps/hist/point 20.031 4093.477037 +/gps/hist/point 20.309 4093.365663 +/gps/hist/point 20.591 4093.251687 +/gps/hist/point 20.878 4093.134628 +/gps/hist/point 21.168 4093.015228 +/gps/hist/point 21.462 4092.893001 +/gps/hist/point 21.76 4092.767871 +/gps/hist/point 22.063 4092.639333 +/gps/hist/point 22.369 4092.508154 +/gps/hist/point 22.68 4092.373391 +/gps/hist/point 22.995 4092.235389 +/gps/hist/point 23.315 4092.093615 +/gps/hist/point 23.639 4091.948416 +/gps/hist/point 23.967 4091.799703 +/gps/hist/point 24.3 4091.646924 +/gps/hist/point 24.638 4091.489968 +/gps/hist/point 24.981 4091.328729 +/gps/hist/point 25.328 4091.16357 +/gps/hist/point 25.68 4090.993906 +/gps/hist/point 26.037 4090.819622 +/gps/hist/point 26.398 4090.641093 +/gps/hist/point 26.765 4090.457208 +/gps/hist/point 27.137 4090.268336 +/gps/hist/point 27.514 4090.074353 +/gps/hist/point 27.897 4089.874607 +/gps/hist/point 28.284 4089.670008 +/gps/hist/point 28.678 4089.458834 +/gps/hist/point 29.076 4089.242548 +/gps/hist/point 29.48 4089.019923 +/gps/hist/point 29.89 4088.790805 +/gps/hist/point 30.305 4088.555599 +/gps/hist/point 30.726 4088.313587 +/gps/hist/point 31.153 4088.064605 +/gps/hist/point 31.586 4087.808485 +/gps/hist/point 32.025 4087.545054 +/gps/hist/point 32.47 4087.274144 +/gps/hist/point 32.922 4086.994962 +/gps/hist/point 33.379 4086.708563 +/gps/hist/point 33.843 4086.413517 +/gps/hist/point 34.313 4086.11027 +/gps/hist/point 34.79 4085.79798 +/gps/hist/point 35.274 4085.476441 +/gps/hist/point 35.764 4085.146117 +/gps/hist/point 36.261 4084.806133 +/gps/hist/point 36.765 4084.456275 +/gps/hist/point 37.276 4084.096325 +/gps/hist/point 37.794 4083.726065 +/gps/hist/point 38.319 4083.345273 +/gps/hist/point 38.852 4082.952989 +/gps/hist/point 39.392 4082.549708 +/gps/hist/point 39.939 4082.135205 +/gps/hist/point 40.494 4081.708481 +/gps/hist/point 41.057 4081.269283 +/gps/hist/point 41.628 4080.817353 +/gps/hist/point 42.206 4080.353233 +/gps/hist/point 42.793 4079.875055 +/gps/hist/point 43.387 4079.384183 +/gps/hist/point 43.99 4078.878696 +/gps/hist/point 44.602 4078.358302 +/gps/hist/point 45.221 4077.824436 +/gps/hist/point 45.85 4077.274227 +/gps/hist/point 46.487 4076.708131 +/gps/hist/point 47.133 4076.124932 +/gps/hist/point 47.788 4075.525311 +/gps/hist/point 48.452 4074.90896 +/gps/hist/point 49.126 4074.274634 +/gps/hist/point 49.808 4073.623912 +/gps/hist/point 50.501 4072.953609 +/gps/hist/point 51.202 4072.266302 +/gps/hist/point 51.914 4071.558728 +/gps/hist/point 52.635 4070.832537 +/gps/hist/point 53.367 4070.085372 +/gps/hist/point 54.109 4069.317902 +/gps/hist/point 54.861 4068.529788 +/gps/hist/point 55.623 4067.720687 +/gps/hist/point 56.396 4066.889181 +/gps/hist/point 57.18 4066.034901 +/gps/hist/point 57.974 4065.158585 +/gps/hist/point 58.78 4064.257653 +/gps/hist/point 59.597 4063.332835 +/gps/hist/point 60.425 4062.383777 +/gps/hist/point 61.265 4061.408938 +/gps/hist/point 62.116 4060.4091 +/gps/hist/point 62.98 4059.381519 +/gps/hist/point 63.855 4058.328126 +/gps/hist/point 64.742 4057.247383 +/gps/hist/point 65.642 4056.137656 +/gps/hist/point 66.554 4054.999761 +/gps/hist/point 67.479 4053.832082 +/gps/hist/point 68.417 4052.634132 +/gps/hist/point 69.368 4051.405526 +/gps/hist/point 70.332 4050.145879 +/gps/hist/point 71.309 4048.854752 +/gps/hist/point 72.3 4047.530364 +/gps/hist/point 73.305 4046.1723 +/gps/hist/point 74.324 4044.780142 +/gps/hist/point 75.357 4043.353415 +/gps/hist/point 76.404 4041.891698 +/gps/hist/point 77.466 4040.393163 +/gps/hist/point 78.543 4038.857361 +/gps/hist/point 79.634 4037.285284 +/gps/hist/point 80.741 4035.673603 +/gps/hist/point 81.863 4034.023374 +/gps/hist/point 83.001 4032.332664 +/gps/hist/point 84.154 4030.602432 +/gps/hist/point 85.324 4028.829265 +/gps/hist/point 86.509 4027.015717 +/gps/hist/point 87.712 4025.156706 +/gps/hist/point 88.931 4023.254886 +/gps/hist/point 90.166 4021.309854 +/gps/hist/point 91.42 4019.316439 +/gps/hist/point 92.69 4017.278896 +/gps/hist/point 93.978 4015.193514 +/gps/hist/point 95.284 4013.05984 +/gps/hist/point 96.608 4010.877421 +/gps/hist/point 97.951 4008.644147 +/gps/hist/point 99.312 4006.361219 +/gps/hist/point 100.69 4004.029808 +/gps/hist/point 102.09 4001.640971 +/gps/hist/point 103.51 3999.197676 +/gps/hist/point 104.95 3996.699434 +/gps/hist/point 106.41 3994.145759 +/gps/hist/point 107.89 3991.536168 +/gps/hist/point 109.39 3988.87018 +/gps/hist/point 110.91 3986.147408 +/gps/hist/point 112.45 3983.367381 +/gps/hist/point 114.01 3980.529632 +/gps/hist/point 115.59 3977.633788 +/gps/hist/point 117.2 3974.660927 +/gps/hist/point 118.83 3971.628923 +/gps/hist/point 120.48 3968.537421 +/gps/hist/point 122.16 3965.367203 +/gps/hist/point 123.85 3962.155569 +/gps/hist/point 125.57 3958.864177 +/gps/hist/point 127.32 3955.492434 +/gps/hist/point 129.09 3952.059055 +/gps/hist/point 130.88 3948.563619 +/gps/hist/point 132.7 3944.984693 +/gps/hist/point 134.55 3941.321777 +/gps/hist/point 136.42 3937.595605 +/gps/hist/point 138.31 3933.805891 +/gps/hist/point 140.23 3929.932176 +/gps/hist/point 142.18 3925.973827 +/gps/hist/point 144.16 3921.930444 +/gps/hist/point 146.16 3917.822069 +/gps/hist/point 148.19 3913.62779 +/gps/hist/point 150.25 3909.347125 +/gps/hist/point 152.34 3904.979605 +/gps/hist/point 154.46 3900.524769 +/gps/hist/point 156.6 3896.003297 +/gps/hist/point 158.78 3891.372617 +/gps/hist/point 160.99 3886.65356 +/gps/hist/point 163.23 3881.845714 +/gps/hist/point 165.49 3876.97025 +/gps/hist/point 167.79 3871.983764 +/gps/hist/point 170.13 3866.885799 +/gps/hist/point 172.49 3861.7197 +/gps/hist/point 174.89 3856.441338 +/gps/hist/point 177.32 3851.072404 +/gps/hist/point 179.78 3845.612859 +/gps/hist/point 182.28 3840.040246 +/gps/hist/point 184.81 3834.376468 +/gps/hist/point 187.38 3828.598909 +/gps/hist/point 189.99 3822.707415 +/gps/hist/point 192.63 3816.724521 +/gps/hist/point 195.3 3810.650305 +/gps/hist/point 198.02 3804.439035 +/gps/hist/point 200.77 3798.136331 +/gps/hist/point 203.56 3791.719331 +/gps/hist/point 206.39 3785.188037 +/gps/hist/point 209.26 3778.542481 +/gps/hist/point 212.16 3771.805947 +/gps/hist/point 215.11 3764.932233 +/gps/hist/point 218.1 3757.944686 +/gps/hist/point 221.13 3750.843623 +/gps/hist/point 224.21 3743.6059 +/gps/hist/point 227.32 3736.278725 +/gps/hist/point 230.48 3728.815397 +/gps/hist/point 233.69 3721.21626 +/gps/hist/point 236.93 3713.529149 +/gps/hist/point 240.23 3705.683366 +/gps/hist/point 243.56 3697.75094 +/gps/hist/point 246.95 3689.660968 +/gps/hist/point 250.38 3681.461733 +/gps/hist/point 253.86 3673.130169 +/gps/hist/point 257.39 3664.666924 +/gps/hist/point 260.97 3656.073098 +/gps/hist/point 264.59 3647.373469 +/gps/hist/point 268.27 3638.520759 +/gps/hist/point 272 3629.540262 +/gps/hist/point 275.78 3620.43308 +/gps/hist/point 279.61 3611.200147 +/gps/hist/point 283.5 3601.818546 +/gps/hist/point 287.44 3592.313867 +/gps/hist/point 291.43 3582.687424 +/gps/hist/point 295.48 3572.916222 +/gps/hist/point 299.59 3563.001679 +/gps/hist/point 303.75 3552.969631 +/gps/hist/point 307.97 3542.7975 +/gps/hist/point 312.25 3532.486895 +/gps/hist/point 316.59 3522.039484 +/gps/hist/point 320.99 3511.457 +/gps/hist/point 325.45 3500.741237 +/gps/hist/point 329.98 3489.870052 +/gps/hist/point 334.56 3478.893624 +/gps/hist/point 339.21 3467.766011 +/gps/hist/point 343.92 3456.512962 +/gps/hist/point 348.7 3445.112734 +/gps/hist/point 353.55 3433.567587 +/gps/hist/point 358.46 3421.903612 +/gps/hist/point 363.45 3410.075703 +/gps/hist/point 368.5 3398.133741 +/gps/hist/point 373.62 3386.056275 +/gps/hist/point 378.81 3373.845918 +/gps/hist/point 384.07 3361.505353 +/gps/hist/point 389.41 3349.013638 +/gps/hist/point 394.82 3336.397058 +/gps/hist/point 400.31 3323.634949 +/gps/hist/point 405.87 3310.753597 +/gps/hist/point 411.51 3297.732627 +/gps/hist/point 417.23 3284.574983 +/gps/hist/point 423.03 3271.283674 +/gps/hist/point 428.91 3257.861442 +/gps/hist/point 434.87 3244.311769 +/gps/hist/point 440.92 3230.615583 +/gps/hist/point 447.04 3216.821455 +/gps/hist/point 453.26 3202.864879 +/gps/hist/point 459.56 3188.794364 +/gps/hist/point 465.94 3174.613411 +/gps/hist/point 472.42 3160.280979 +/gps/hist/point 478.98 3145.844781 +/gps/hist/point 485.64 3131.264725 +/gps/hist/point 492.39 3116.566432 +/gps/hist/point 499.23 3101.753574 +/gps/hist/point 506.17 3086.808752 +/gps/hist/point 513.2 3071.757434 +/gps/hist/point 520.34 3056.560515 +/gps/hist/point 527.57 3041.264746 +/gps/hist/point 534.9 3025.853091 +/gps/hist/point 542.33 3010.32987 +/gps/hist/point 549.87 2994.678715 +/gps/hist/point 557.51 2978.924099 +/gps/hist/point 565.26 2963.050046 +/gps/hist/point 573.11 2947.081752 +/gps/hist/point 581.08 2930.982552 +/gps/hist/point 589.16 2914.777304 +/gps/hist/point 597.34 2898.490964 +/gps/hist/point 605.64 2882.087882 +/gps/hist/point 614.06 2865.573041 +/gps/hist/point 622.6 2848.95149 +/gps/hist/point 631.25 2832.24715 +/gps/hist/point 640.02 2815.445716 +/gps/hist/point 648.91 2798.551893 +/gps/hist/point 657.93 2781.552102 +/gps/hist/point 667.08 2764.451461 +/gps/hist/point 676.35 2747.273132 +/gps/hist/point 685.75 2730.004157 +/gps/hist/point 695.28 2712.649789 +/gps/hist/point 704.94 2695.214768 +/gps/hist/point 714.74 2677.687101 +/gps/hist/point 724.67 2660.089651 +/gps/hist/point 734.74 2642.409702 +/gps/hist/point 744.95 2624.653032 +/gps/hist/point 755.3 2606.824872 +/gps/hist/point 765.8 2588.914025 +/gps/hist/point 776.44 2570.943011 +/gps/hist/point 787.23 2552.900432 +/gps/hist/point 798.17 2534.79197 +/gps/hist/point 809.27 2516.606951 +/gps/hist/point 820.51 2498.383876 +/gps/hist/point 831.92 2480.079383 +/gps/hist/point 843.48 2461.731669 +/gps/hist/point 855.2 2443.33083 +/gps/hist/point 867.09 2424.866819 +/gps/hist/point 879.14 2406.360821 +/gps/hist/point 891.35 2387.81902 +/gps/hist/point 903.74 2369.216891 +/gps/hist/point 916.3 2350.575464 +/gps/hist/point 929.03 2331.901318 +/gps/hist/point 941.95 2313.17058 +/gps/hist/point 955.04 2294.418435 +/gps/hist/point 968.31 2275.636575 +/gps/hist/point 981.77 2256.817207 +/gps/hist/point 995.41 2237.980674 +/gps/hist/point 1009.2 2219.173286 +/gps/hist/point 1023.3 2200.18471 +/gps/hist/point 1037.5 2181.303964 +/gps/hist/point 1051.9 2162.40238 +/gps/hist/point 1066.5 2143.486766 +/gps/hist/point 1081.3 2124.56393 +/gps/hist/point 1096.4 2105.513657 +/gps/hist/point 1111.6 2086.593305 +/gps/hist/point 1127.1 2067.560661 +/gps/hist/point 1142.7 2048.66715 +/gps/hist/point 1158.6 2029.675435 +/gps/hist/point 1174.7 2010.713297 +/gps/hist/point 1191 1991.786471 +/gps/hist/point 1207.6 1972.785144 +/gps/hist/point 1224.4 1953.830678 +/gps/hist/point 1241.4 1934.928663 +/gps/hist/point 1258.6 1916.084257 +/gps/hist/point 1276.1 1897.19453 +/gps/hist/point 1293.9 1878.267661 +/gps/hist/point 1311.8 1859.52121 +/gps/hist/point 1330.1 1840.647212 +/gps/hist/point 1348.6 1821.859685 +/gps/hist/point 1367.3 1803.163131 +/gps/hist/point 1386.3 1784.463573 +/gps/hist/point 1405.6 1765.768391 +/gps/hist/point 1425.1 1747.179972 +/gps/hist/point 1444.9 1728.607394 +/gps/hist/point 1465 1710.057607 +/gps/hist/point 1485.3 1691.629297 +/gps/hist/point 1506 1673.147571 +/gps/hist/point 1526.9 1654.79745 +/gps/hist/point 1548.1 1636.495993 +/gps/hist/point 1569.7 1618.16457 +/gps/hist/point 1591.5 1599.978917 +/gps/hist/point 1613.6 1581.860056 +/gps/hist/point 1636 1563.81363 +/gps/hist/point 1658.7 1545.845167 +/gps/hist/point 1681.8 1527.882312 +/gps/hist/point 1705.2 1510.009498 +/gps/hist/point 1728.9 1492.231743 +/gps/hist/point 1752.9 1474.553805 +/gps/hist/point 1777.3 1456.908274 +/gps/hist/point 1802 1439.373299 +/gps/hist/point 1827 1421.953243 +/gps/hist/point 1852.4 1404.5841 +/gps/hist/point 1878.1 1387.339497 +/gps/hist/point 1904.2 1370.15756 +/gps/hist/point 1930.7 1353.044629 +/gps/hist/point 1957.5 1336.070051 +/gps/hist/point 1984.7 1319.175098 +/gps/hist/point 2012.3 1302.365435 +/gps/hist/point 2040.3 1285.646551 +/gps/hist/point 2068.6 1269.082285 +/gps/hist/point 2097.4 1252.560704 +/gps/hist/point 2126.5 1236.201339 +/gps/hist/point 2156.1 1219.896519 +/gps/hist/point 2186.1 1203.707049 +/gps/hist/point 2216.4 1187.690022 +/gps/hist/point 2247.2 1171.743938 +/gps/hist/point 2278.5 1155.874823 +/gps/hist/point 2310.1 1140.187935 +/gps/hist/point 2342.2 1124.587656 +/gps/hist/point 2374.8 1109.079168 +/gps/hist/point 2407.8 1093.714351 +/gps/hist/point 2441.3 1078.450746 +/gps/hist/point 2475.2 1063.337821 +/gps/hist/point 2509.6 1048.334691 +/gps/hist/point 2544.5 1033.445609 +/gps/hist/point 2579.8 1018.716526 +/gps/hist/point 2615.7 1004.067988 +/gps/hist/point 2652 989.5853955 +/gps/hist/point 2688.9 975.1925044 +/gps/hist/point 2726.2 960.9706671 +/gps/hist/point 2764.1 946.8469479 +/gps/hist/point 2802.5 932.8625799 +/gps/hist/point 2841.5 918.9846444 +/gps/hist/point 2881 905.2522126 +/gps/hist/point 2921 891.6679526 +/gps/hist/point 2961.6 878.2009225 +/gps/hist/point 3002.8 864.8546872 +/gps/hist/point 3044.5 851.6641849 +/gps/hist/point 3086.8 838.6003269 +/gps/hist/point 3129.7 825.6664166 +/gps/hist/point 3173.2 812.8652693 +/gps/hist/point 3217.3 800.1994516 +/gps/hist/point 3262 787.671282 +/gps/hist/point 3307.4 775.255744 +/gps/hist/point 3353.3 763.0098879 +/gps/hist/point 3399.9 750.8824709 +/gps/hist/point 3447.2 738.8764065 +/gps/hist/point 3495.1 727.0190849 +/gps/hist/point 3543.6 715.3121912 +/gps/hist/point 3592.9 703.709843 +/gps/hist/point 3642.8 692.2612485 +/gps/hist/point 3693.5 680.9229667 +/gps/hist/point 3744.8 669.7416444 +/gps/hist/point 3796.8 658.6965844 +/gps/hist/point 3849.6 647.768806 +/gps/hist/point 3903.1 636.9807048 +/gps/hist/point 3957.3 626.3334942 +/gps/hist/point 4012.3 615.809643 +/gps/hist/point 4068.1 605.4112153 +/gps/hist/point 4124.6 595.1578355 +/gps/hist/point 4181.9 585.0324098 +/gps/hist/point 4240.1 575.0193471 +/gps/hist/point 4299 565.1544217 +/gps/hist/point 4358.7 555.4215456 +/gps/hist/point 4419.3 545.8060679 +/gps/hist/point 4480.7 536.3252632 +/gps/hist/point 4543 526.9644857 +/gps/hist/point 4606.1 517.7396601 +/gps/hist/point 4670.1 508.6375481 +/gps/hist/point 4735.1 499.6454968 +/gps/hist/point 4800.9 490.7917285 +/gps/hist/point 4867.6 482.063083 +/gps/hist/point 4935.2 473.4603746 +/gps/hist/point 5003.8 464.9722051 +/gps/hist/point 5073.3 456.6116504 +/gps/hist/point 5143.9 448.3554393 +/gps/hist/point 5215.3 440.2390711 +/gps/hist/point 5287.8 432.228818 +/gps/hist/point 5361.3 424.3368033 +/gps/hist/point 5435.8 416.8606235 +/gps/hist/point 5511.4 410.2626016 +/gps/hist/point 5588 403.7605622 +/gps/hist/point 5665.6 397.3543764 +/gps/hist/point 5744.3 391.0359003 +/gps/hist/point 5824.2 384.7977725 +/gps/hist/point 5905.1 378.6558272 +/gps/hist/point 5987.2 372.5949741 +/gps/hist/point 6070.4 366.6229022 +/gps/hist/point 6154.8 360.7326192 +/gps/hist/point 6240.3 354.9311892 +/gps/hist/point 6327 349.2118053 +/gps/hist/point 6414.9 343.5746301 +/gps/hist/point 6504.1 338.0135754 +/gps/hist/point 6594.5 332.5350961 +/gps/hist/point 6686.1 327.1390517 +/gps/hist/point 6779 321.8195713 +/gps/hist/point 6873.3 316.5713392 +/gps/hist/point 6968.8 311.4055587 +/gps/hist/point 7065.6 306.316565 +/gps/hist/point 7163.8 301.2992149 +/gps/hist/point 7263.4 296.3537486 +/gps/hist/point 7364.3 291.4850651 +/gps/hist/point 7466.7 286.6835642 +/gps/hist/point 7570.4 281.9585965 +/gps/hist/point 7675.6 277.3009319 +/gps/hist/point 7782.3 272.7107586 +/gps/hist/point 7890.5 268.1881736 +/gps/hist/point 8000.1 263.7371925 +/gps/hist/point 8111.3 259.349626 +/gps/hist/point 8224 255.0294526 +/gps/hist/point 8338.3 250.7727892 +/gps/hist/point 8454.2 246.5796739 +/gps/hist/point 8571.7 242.450067 +/gps/hist/point 8690.8 238.3838572 +/gps/hist/point 8811.6 234.377596 +/gps/hist/point 8934.1 230.431323 +/gps/hist/point 9058.2 226.548088 +/gps/hist/point 9184.1 222.7215302 +/gps/hist/point 9311.7 218.9546574 +/gps/hist/point 9441.2 215.2415896 +/gps/hist/point 9572.4 211.5880218 +/gps/hist/point 9705.4 207.9909401 +/gps/hist/point 9840.3 204.447591 +/gps/hist/point 9977 200.9604921 +/gps/hist/point 10116 197.5171553 +/gps/hist/point 10256 194.1491364 +/gps/hist/point 10399 190.8083353 +/gps/hist/point 10543 187.5414758 +/gps/hist/point 10690 184.3030762 +/gps/hist/point 10838 181.1370789 +/gps/hist/point 10989 178.0004853 +/gps/hist/point 11142 174.9147424 +/gps/hist/point 11297 171.8795395 +/gps/hist/point 11454 168.8945258 +/gps/hist/point 11613 165.9593139 +/gps/hist/point 11774 163.0734826 +/gps/hist/point 11938 160.2194282 +/gps/hist/point 12104 157.4148203 +/gps/hist/point 12272 154.6591092 +/gps/hist/point 12442 151.9517243 +/gps/hist/point 12615 149.2768375 +/gps/hist/point 12791 146.6351759 +/gps/hist/point 12968 144.0560934 +/gps/hist/point 13149 141.4958002 +/gps/hist/point 13331 138.9966552 +/gps/hist/point 13517 136.5172994 +/gps/hist/point 13704 134.0975619 +/gps/hist/point 13895 131.6983839 +/gps/hist/point 14088 129.3452004 +/gps/hist/point 14284 127.0255126 +/gps/hist/point 14482 124.7508345 +/gps/hist/point 14684 122.4983299 +/gps/hist/point 14888 120.2904129 +/gps/hist/point 15095 118.1158281 +/gps/hist/point 15304 115.9846425 +/gps/hist/point 15517 113.8764402 +/gps/hist/point 15733 111.8015094 +/gps/hist/point 15951 109.7689359 +/gps/hist/point 16173 107.7599383 +/gps/hist/point 16398 105.7838147 +/gps/hist/point 16626 103.8403676 +/gps/hist/point 16857 101.9293723 +/gps/hist/point 17091 100.0505795 +/gps/hist/point 17329 98.19603891 +/gps/hist/point 17569 96.3810402 +/gps/hist/point 17814 94.58289655 +/gps/hist/point 18061 92.82361469 +/gps/hist/point 18312 91.08856895 +/gps/hist/point 18567 89.37798647 +/gps/hist/point 18825 87.69846179 +/gps/hist/point 19086 86.04956217 +/gps/hist/point 19351 84.42480618 +/gps/hist/point 19620 82.82428228 +/gps/hist/point 19893 81.24804213 +/gps/hist/point 20170 79.696103 +/gps/hist/point 20450 78.17380674 +/gps/hist/point 20734 76.6754345 +/gps/hist/point 21022 75.20092782 +/gps/hist/point 21314 73.75020212 +/gps/hist/point 21611 72.31839868 +/gps/hist/point 21911 70.91502711 +/gps/hist/point 22215 69.53504105 +/gps/hist/point 22524 68.17393007 +/gps/hist/point 22837 66.83610391 +/gps/hist/point 23154 65.52134768 +/gps/hist/point 23476 64.22546733 +/gps/hist/point 23803 62.94857444 +/gps/hist/point 24133 61.69821439 +/gps/hist/point 24469 60.4629044 +/gps/hist/point 24809 59.25003733 +/gps/hist/point 25154 58.05589404 +/gps/hist/point 25503 56.8837725 +/gps/hist/point 25858 55.72692233 +/gps/hist/point 26217 54.59181335 +/gps/hist/point 26581 53.47506961 +/gps/hist/point 26951 52.3736726 +/gps/hist/point 27325 51.29347222 +/gps/hist/point 27705 50.22856614 +/gps/hist/point 28090 49.18174632 +/gps/hist/point 28480 48.15285888 +/gps/hist/point 28876 47.13921614 +/gps/hist/point 29277 46.14331347 +/gps/hist/point 29684 45.16258374 +/gps/hist/point 30097 44.19703729 +/gps/hist/point 30515 43.24889894 +/gps/hist/point 30939 42.31577213 +/gps/hist/point 31369 41.39761663 +/gps/hist/point 31805 40.4943759 +/gps/hist/point 32247 39.60597827 +/gps/hist/point 32695 38.73233819 +/gps/hist/point 33150 37.8714933 +/gps/hist/point 33610 37.02711699 +/gps/hist/point 34077 36.19541269 +/gps/hist/point 34551 35.37640661 +/gps/hist/point 35031 34.57175831 +/gps/hist/point 35518 33.77970881 +/gps/hist/point 36012 33.00023783 +/gps/hist/point 36512 32.23481848 +/gps/hist/point 37020 31.48034077 +/gps/hist/point 37534 30.73971746 +/gps/hist/point 38056 30.00999417 +/gps/hist/point 38585 29.29255046 +/gps/hist/point 39121 28.58729292 +/gps/hist/point 39664 27.89411918 +/gps/hist/point 40216 27.21047845 +/gps/hist/point 40775 26.53883863 +/gps/hist/point 41341 25.87906851 +/gps/hist/point 41916 25.22880283 +/gps/hist/point 42498 24.59026064 +/gps/hist/point 43089 23.96119189 +/gps/hist/point 43688 23.34264508 +/gps/hist/point 44295 22.73454571 +/gps/hist/point 44910 22.13681122 +/gps/hist/point 45535 21.54749375 +/gps/hist/point 46167 20.96936659 +/gps/hist/point 46809 20.39961832 +/gps/hist/point 47460 19.83914306 +/gps/hist/point 48119 19.28871934 +/gps/hist/point 48788 18.74662384 +/gps/hist/point 49466 18.21364368 +/gps/hist/point 50153 17.68971043 +/gps/hist/point 50850 17.17402005 +/gps/hist/point 51557 16.66655655 +/gps/hist/point 52274 16.16729446 +/gps/hist/point 53000 15.67686506 +/gps/hist/point 53737 15.19387513 +/gps/hist/point 54483 14.71958724 +/gps/hist/point 55241 14.25206575 +/gps/hist/point 56008 13.7931268 +/gps/hist/point 56787 13.34093171 +/gps/hist/point 57576 12.89661874 +/gps/hist/point 58376 12.45956805 +/gps/hist/point 59187 12.02974211 +/gps/hist/point 60010 11.60659022 +/gps/hist/point 60844 11.19059894 +/gps/hist/point 61689 10.78171108 +/gps/hist/point 62547 10.37893951 +/gps/hist/point 63416 9.983197609 +/gps/hist/point 64297 9.593976703 +/gps/hist/point 65191 9.210816461 +/gps/hist/point 66097 8.834120632 +/gps/hist/point 67015 8.463839209 +/gps/hist/point 67947 8.099146525 +/gps/hist/point 68891 7.740800716 +/gps/hist/point 69848 7.388374121 +/gps/hist/point 70819 7.041479028 +/gps/hist/point 71803 6.700447654 +/gps/hist/point 72801 6.364902452 +/gps/hist/point 73813 6.034822641 +/gps/hist/point 74839 5.710181868 +/gps/hist/point 75879 5.390948647 +/gps/hist/point 76933 5.077086776 +/gps/hist/point 78002 4.768271138 +/gps/hist/point 79086 4.464482768 +/gps/hist/point 80186 4.165429738 +/gps/hist/point 81300 3.871626891 +/gps/hist/point 82430 3.582512918 +/gps/hist/point 83575 3.29831779 +/gps/hist/point 84737 3.018525604 +/gps/hist/point 85914 2.743594367 +/gps/hist/point 87108 2.473028548 +/gps/hist/point 88319 2.206816474 +/gps/hist/point 89546 1.945151767 +/gps/hist/point 90791 1.687587076 +/gps/hist/point 92053 1.434313992 +/gps/hist/point 93332 1.185303792 +/gps/hist/point 94629 0.940338253 +/gps/hist/point 95944 0.699398765 +/gps/hist/point 97277 0.462462852 +/gps/hist/point 98629 0.229334614 +/gps/hist/point 100000 0.0 +/gps/hist/inter Lin +/gps/ene/diffspec True diff --git a/examples/advanced/radioprotection/gcrZ=2.txt b/examples/advanced/radioprotection/gcrZ=2.txt deleted file mode 100644 index 3abe784c44..0000000000 --- a/examples/advanced/radioprotection/gcrZ=2.txt +++ /dev/null @@ -1,837 +0,0 @@ -1.0023 402.5346665 -1.0162 402.3545875 -1.0304 402.1673722 -1.0447 401.975492 -1.0592 401.7774513 -1.0739 401.5730699 -1.0888 401.3621637 -1.104 401.1462158 -1.1193 400.932982 -1.1349 400.721595 -1.1506 400.514784 -1.1666 400.3099184 -1.1828 400.1083045 -1.1993 399.908735 -1.2159 399.7136256 -1.2328 399.5206118 -1.25 399.3297506 -1.2674 399.1421739 -1.285 398.9578674 -1.3028 398.7768143 -1.3209 398.5980083 -1.3393 398.4214863 -1.3579 398.2482123 -1.3768 398.0772578 -1.3959 397.9095276 -1.4153 397.7441402 -1.435 397.581116 -1.4549 397.4212757 -1.4751 397.2638065 -1.4956 397.1087207 -1.5164 396.9560274 -1.5375 396.8057324 -1.5589 396.6578399 -1.5805 396.5130214 -1.6025 396.369936 -1.6248 396.2292514 -1.6473 396.0915731 -1.6702 395.95567 -1.6934 395.8221459 -1.717 395.6904314 -1.7408 395.5616296 -1.765 395.4346441 -1.7896 395.309492 -1.8144 395.1871725 -1.8397 395.0661999 -1.8652 394.948004 -1.8911 394.8316355 -1.9174 394.7170977 -1.9441 394.604395 -1.9711 394.4939362 -1.9985 394.3852976 -2.0263 394.2784762 -2.0544 394.1738386 -2.083 394.070615 -2.1119 393.9695191 -2.1413 393.8698591 -2.171 393.7723021 -2.2012 393.6761799 -2.2318 393.5818056 -2.2628 393.4891637 -2.2942 393.3982388 -2.3261 393.3087329 -2.3585 393.2206446 -2.3912 393.1344991 -2.4245 393.0494938 -2.4582 392.9661337 -2.4923 392.8843959 -2.527 392.8037918 -2.5621 392.7247793 -2.5977 392.6471162 -2.6338 392.5707888 -2.6704 392.4957865 -2.7075 392.4220955 -2.7451 392.3497009 -2.7833 392.2784025 -2.822 392.2083761 -2.8612 392.1396066 -2.9009 392.072076 -2.9412 392.0055987 -2.9821 391.9401683 -3.0236 391.8757754 -3.0656 391.8125604 -3.1082 391.7503578 -3.1514 391.6891545 -3.1952 391.6289371 -3.2396 391.5696922 -3.2846 391.5114062 -3.3303 391.4539399 -3.3765 391.3975292 -3.4235 391.3417955 -3.471 391.2870828 -3.5193 391.2330312 -3.5682 391.1798545 -3.6178 391.1274299 -3.6681 391.0757454 -3.719 391.0248887 -3.7707 390.9746474 -3.8231 390.9251083 -3.8762 390.8762578 -3.9301 390.8279923 -3.9847 390.7803893 -4.0401 390.7333497 -4.0963 390.6868626 -4.1532 390.6409976 -4.2109 390.5956605 -4.2694 390.5508399 -4.3288 390.506449 -4.3889 390.4626245 -4.4499 390.419208 -4.5118 390.3761895 -4.5745 390.3336266 -4.638 390.2915062 -4.7025 390.249614 -4.7678 390.2080684 -4.8341 390.1668027 -4.9013 390.1258687 -4.9694 390.0852545 -5.0385 390.0448895 -5.1085 390.004821 -5.1795 389.9649807 -5.2515 389.9253576 -5.3244 389.8859949 -5.3984 389.8467736 -5.4735 389.8076844 -5.5495 389.7688202 -5.6266 389.7300665 -5.7048 389.6914133 -5.7841 389.6528506 -5.8645 389.6143678 -5.946 389.5759541 -6.0286 389.5375981 -6.1124 389.4992429 -6.1974 389.4608789 -6.2835 389.4225403 -6.3708 389.3841713 -6.4594 389.3457186 -6.5491 389.3072577 -6.6401 389.2686921 -6.7324 389.2300118 -6.826 389.1912065 -6.9209 389.1522661 -7.017 389.11322 -7.1146 389.073936 -7.2134 389.0345246 -7.3137 388.9948558 -7.4153 388.9549981 -7.5184 388.9148633 -7.6229 388.8744797 -7.7288 388.8338358 -7.8362 388.7928829 -7.9451 388.7516111 -8.0555 388.7100101 -8.1675 388.6680316 -8.281 388.6257024 -8.3961 388.5829743 -8.5128 388.5398368 -8.6311 388.4962799 -8.751 388.4522932 -8.8726 388.407829 -8.9959 388.3628765 -9.1209 388.3174256 -9.2477 388.2714296 -9.3762 388.2249137 -9.5065 388.1778317 -9.6386 388.1301736 -9.7726 388.0818926 -9.9084 388.0330137 -10.046 387.9835273 -10.186 387.9332076 -10.327 387.882547 -10.471 387.8308169 -10.616 387.7787259 -10.764 387.7255452 -10.913 387.6719838 -11.065 387.6173124 -11.219 387.561881 -11.375 387.5056804 -11.533 387.4487011 -11.693 387.3909334 -11.856 387.3319663 -12.02 387.2725148 -12.187 387.2118856 -12.357 387.1500695 -12.529 387.0874213 -12.703 387.0239326 -12.879 386.9595967 -13.058 386.8940396 -13.24 386.827253 -13.424 386.7595982 -13.61 386.6910689 -13.799 386.6212898 -13.991 386.550254 -14.186 386.4779547 -14.383 386.4047586 -14.583 386.3302904 -14.785 386.2549172 -14.991 386.1778891 -15.199 386.0999506 -15.41 386.0207241 -15.625 385.9398314 -15.842 385.8580239 -16.062 385.7749235 -16.285 385.6905297 -16.511 385.6048445 -16.741 385.5174881 -16.973 385.4292213 -17.209 385.3392875 -17.449 385.2476886 -17.691 385.1551915 -17.937 385.0610381 -18.186 384.9656177 -18.439 384.8685524 -18.695 384.7702331 -18.955 384.6702849 -19.218 384.5691033 -19.485 384.4663137 -19.756 384.3619265 -20.031 384.2559559 -20.309 384.1488004 -20.591 384.0400886 -20.878 383.9294509 -21.168 383.8176767 -21.462 383.704398 -21.76 383.5896346 -22.063 383.4730223 -22.369 383.3553505 -22.68 383.2358739 -22.995 383.1150019 -23.315 382.9923751 -23.639 382.8684037 -23.967 382.7431148 -24.3 382.6161535 -24.638 382.4875501 -24.981 382.3573343 -25.328 382.2259172 -25.68 382.0929545 -26.037 381.9584789 -26.398 381.8228992 -26.765 381.6854987 -27.137 381.5466883 -27.514 381.4065064 -27.897 381.2646198 -28.284 381.1218033 -28.678 380.976988 -29.076 380.8313181 -29.48 380.684098 -29.89 380.5353657 -30.305 380.3855211 -30.726 380.2342436 -31.153 380.0815712 -31.586 379.9275404 -32.025 379.7721904 -32.47 379.6155591 -32.922 379.457332 -33.379 379.2982428 -33.843 379.1376265 -34.313 378.975863 -34.79 378.8126008 -35.274 378.6478694 -35.764 378.4820765 -36.261 378.3149095 -36.765 378.1463937 -37.276 377.9765511 -37.794 377.8054035 -38.319 377.6329665 -38.852 377.4589285 -39.392 377.2836295 -39.939 377.1070741 -40.494 376.9289481 -41.057 376.749258 -41.628 376.5680062 -42.206 376.3855062 -42.793 376.2011163 -43.387 376.0154565 -43.99 375.8278922 -44.602 375.6384081 -45.221 375.4476038 -45.85 375.2545309 -46.487 375.0597788 -47.133 374.8630106 -47.788 374.664194 -48.452 374.4632947 -49.126 374.2599704 -49.808 374.0547819 -50.501 373.8467819 -51.202 373.6368282 -51.914 373.4239689 -52.635 373.2087464 -53.367 372.9905139 -54.109 372.7695135 -54.861 372.545686 -55.623 372.3189696 -56.396 372.0890072 -57.18 371.8557362 -57.974 371.6193894 -58.78 371.3793084 -59.597 371.1357254 -60.425 370.8885771 -61.265 370.6374992 -62.116 370.3827272 -62.98 370.1236013 -63.855 369.8606531 -64.742 369.5935173 -65.642 369.321835 -66.554 369.0458485 -67.479 368.765194 -68.417 368.4798132 -69.368 368.1896569 -70.332 367.8946695 -71.309 367.594794 -72.3 367.2896755 -73.305 366.9792642 -74.324 366.6635151 -75.357 366.3423884 -76.404 366.015844 -77.466 365.6835283 -78.543 365.345398 -79.634 365.0017368 -80.741 364.6518835 -81.863 364.296122 -83.001 363.9341029 -84.154 363.5661186 -85.324 363.1915112 -86.509 362.8108952 -87.712 362.4232871 -88.931 362.0293111 -90.166 361.6289498 -91.42 361.2212176 -92.69 360.8070782 -93.978 360.3858694 -95.284 359.9575801 -96.608 359.5222002 -97.951 359.0793987 -99.312 358.6294963 -100.69 358.1728254 -102.09 357.7077286 -103.51 357.2348689 -104.95 356.7542481 -106.41 356.2658689 -107.89 355.7697444 -109.39 355.2658806 -110.91 354.7542934 -112.45 354.2350008 -114.01 353.7080133 -115.59 353.173352 -117.2 352.6276594 -118.83 352.0743351 -120.48 351.5133866 -122.16 350.941447 -123.85 350.3653742 -125.57 349.7783928 -127.32 349.1805294 -129.09 348.5752327 -130.88 347.9625614 -132.7 347.3391404 -134.55 346.7050071 -136.42 346.063642 -138.31 345.4151022 -140.23 344.7560142 -142.18 344.0864373 -144.16 343.406434 -146.16 342.7195045 -148.19 342.0222944 -150.25 341.3148755 -152.34 340.5973226 -154.46 339.8697259 -156.6 339.1355973 -158.78 338.3881603 -160.99 337.6309458 -163.23 336.8640448 -165.49 336.0909723 -167.79 335.3049973 -170.13 334.5062278 -172.49 333.7015946 -174.89 332.8843862 -177.32 332.0581224 -179.78 331.2229309 -182.28 330.3755534 -184.81 329.5194912 -187.38 328.6514904 -189.99 327.7717058 -192.63 326.8836302 -195.3 325.9873973 -198.02 325.0764455 -200.77 324.1576286 -203.56 323.2277572 -206.39 322.2869951 -209.26 321.3355105 -212.16 320.3767647 -215.11 319.4043046 -218.1 318.4216156 -221.13 317.4288816 -224.21 316.4230067 -227.32 315.4106963 -230.48 314.3856176 -233.69 313.3479923 -236.93 312.3044701 -240.23 311.2455892 -243.56 310.1811797 -246.95 309.101841 -250.38 308.0141648 -253.86 306.9151956 -257.39 305.8051659 -260.97 304.6843127 -264.59 303.5559731 -268.27 302.4141372 -272 301.2621705 -275.78 300.1003044 -279.61 298.9287735 -283.5 297.7447946 -287.44 296.551669 -291.43 295.3496197 -295.48 294.1358984 -299.59 292.9108133 -303.75 291.6775938 -307.97 290.4335515 -312.25 289.1789829 -316.59 287.9141637 -320.99 286.6393726 -325.45 285.3549171 -329.98 284.0582465 -334.56 282.7553487 -339.21 281.4408263 -343.92 280.1178461 -348.7 278.7839166 -353.55 277.4393766 -358.46 276.0873222 -363.45 274.7225921 -368.5 273.3510058 -373.62 271.970152 -378.81 270.580357 -384.07 269.1819794 -389.41 267.7727427 -394.82 266.3556405 -400.31 264.9284107 -405.87 263.4940447 -411.51 262.050326 -417.23 260.5976405 -423.03 259.1363769 -428.91 257.6669266 -434.87 256.189684 -440.92 254.7025532 -447.04 253.2108843 -453.26 251.7077886 -459.56 250.198474 -465.94 248.6833468 -472.42 247.1581087 -478.98 245.6278837 -485.64 244.088463 -492.39 242.5426 -499.23 240.9907168 -506.17 239.4308703 -513.2 237.8657515 -520.34 236.2914975 -527.57 234.7129897 -534.9 233.1284966 -542.33 231.5384933 -549.87 229.9412951 -557.51 228.3394755 -565.26 226.7314823 -573.11 225.1198478 -581.08 223.5009456 -589.16 221.8773544 -597.34 220.2515426 -605.64 218.619968 -614.06 216.9831537 -622.6 215.3416718 -631.25 213.6979469 -640.02 212.0505813 -648.91 210.4000995 -657.93 208.7451392 -667.08 207.0862144 -676.35 205.4256817 -685.75 203.7622929 -695.28 202.0965585 -704.94 200.4290421 -714.74 198.7585463 -724.67 197.0872454 -734.74 195.4140368 -744.95 193.7394641 -755.3 192.0640682 -765.8 190.3867903 -776.44 188.7097854 -787.23 187.0320321 -798.17 185.3540412 -809.27 183.6748054 -820.51 181.9979155 -831.92 180.3194788 -843.48 178.6429724 -855.2 176.9674549 -867.09 175.2920409 -879.14 173.6187478 -891.35 171.9480901 -903.74 170.277881 -916.3 168.6100323 -929.03 166.9450819 -941.95 165.2809859 -955.04 163.6208107 -968.31 161.9638256 -981.77 160.3093527 -995.41 158.6591855 -1009.2 157.0174343 -1023.3 155.3656933 -1037.5 153.7291089 -1051.9 152.096533 -1066.5 150.468499 -1081.3 148.8455314 -1096.4 147.2173456 -1111.6 145.6060042 -1127.1 143.9907919 -1142.7 142.3930106 -1158.6 140.7926343 -1174.7 139.2003443 -1191 137.6165605 -1207.6 136.0321573 -1224.4 134.4572488 -1241.4 132.8922127 -1258.6 131.3374256 -1276.1 129.7843693 -1293.9 128.2337156 -1311.8 126.7032208 -1330.1 125.167704 -1348.6 123.6445735 -1367.3 122.1341054 -1386.3 120.6286513 -1405.6 119.1287798 -1425.1 117.6426526 -1444.9 116.1630352 -1465 114.6904479 -1485.3 113.2325643 -1506 111.775496 -1526.9 110.3337806 -1548.1 108.9008217 -1569.7 107.4704227 -1591.5 106.0562365 -1613.6 104.6520451 -1636 103.258223 -1658.7 101.8751148 -1681.8 100.4970953 -1705.2 99.13059205 -1728.9 97.77590953 -1752.9 96.43333513 -1777.3 95.09767913 -1802 93.77480147 -1827 92.46493709 -1852.4 91.16319344 -1878.1 89.87502399 -1904.2 88.59572466 -1930.7 87.32570951 -1957.5 86.07004107 -1984.7 84.82428379 -2012.3 83.58878842 -2040.3 82.36388432 -2068.6 81.15415412 -2097.4 79.95135164 -2126.5 78.76411384 -2156.1 77.58454274 -2186.1 76.41695924 -2216.4 75.26538426 -2247.2 74.12243399 -2278.5 72.9885015 -2310.1 71.87101016 -2342.2 70.76304335 -2374.8 69.66518619 -2407.8 68.58103059 -2441.3 67.50722326 -2475.2 66.44714314 -2509.6 65.39783392 -2544.5 64.35954147 -2579.8 63.33539052 -2615.7 62.31977952 -2652 61.31854656 -2688.9 60.32633139 -2726.2 59.34866855 -2764.1 58.38047136 -2802.5 57.42449568 -2841.5 56.47842978 -2881 55.54485518 -2921 54.62386618 -2961.6 53.71329446 -3002.8 52.81331136 -3044.5 51.92621579 -3086.8 51.04997341 -3129.7 50.18471151 -3173.2 49.33055965 -3217.3 48.48762563 -3262 47.65599554 -3307.4 46.83394909 -3353.3 46.02517732 -3399.9 45.22623081 -3447.2 44.43725853 -3495.1 43.65998164 -3543.6 42.89444187 -3592.9 42.13759197 -3642.8 41.39256252 -3693.5 40.65646189 -3744.8 39.93226877 -3796.8 39.21858567 -3849.6 38.51414259 -3903.1 37.82032516 -3957.3 37.1371572 -4012.3 36.46344982 -4068.1 35.79925824 -4124.6 35.14579167 -4181.9 34.50191844 -4240.1 33.86659546 -4299 33.24203812 -4358.7 32.62717767 -4419.3 32.02102799 -4480.7 31.42462415 -4543 30.83702052 -4606.1 30.25917454 -4670.1 29.6901803 -4735.1 29.12920024 -4800.9 28.57797456 -4867.6 28.03564719 -4935.2 27.50221864 -5003.8 26.97691774 -5073.3 26.46051832 -5143.9 25.95155445 -5215.3 25.45218195 -5287.8 24.96028613 -5361.3 24.47656646 -5435.8 24.00101452 -5511.4 23.53299476 -5588 23.07312092 -5665.6 22.62136573 -5744.3 22.17713099 -5824.2 21.73986405 -5905.1 21.31064708 -5987.2 20.8883996 -6070.4 20.47363158 -6154.8 20.06582429 -6240.3 19.66543997 -6327 19.27198908 -6414.9 18.88545521 -6504.1 18.50538605 -6594.5 18.13219044 -6686.1 17.76583899 -6779 17.40590653 -6873.3 17.05199627 -6968.8 16.70483396 -7065.6 16.36401665 -7163.8 16.02917355 -7263.4 15.70028912 -7364.3 15.37766541 -7466.7 15.06063782 -7570.4 14.7497937 -7675.6 14.44450067 -7782.3 14.14473849 -7890.5 13.85048021 -8000.1 13.56196204 -8111.3 13.27863112 -8224 13.00071911 -8338.3 12.72794445 -8454.2 12.46028151 -8571.7 12.19769986 -8690.8 11.94016457 -8811.6 11.68743436 -8934.1 11.43948027 -9058.2 11.1964723 -9184.1 10.95798245 -9311.7 10.72416694 -9441.2 10.49464373 -9572.4 10.26973445 -9705.4 10.04922644 -9840.3 9.832929465 -9977 9.620969963 -10116 9.412557533 -10256 9.209584833 -10399 9.009120283 -10543 8.813944123 -10690 8.621320101 -10838 8.433836291 -10989 8.248925088 -11142 8.067810956 -11297 7.890455771 -11454 7.716822641 -11613 7.546867223 -11774 7.380545127 -11938 7.216813923 -12104 7.056659322 -12272 6.900033048 -12442 6.746886168 -12615 6.596297929 -12791 6.448276737 -12968 6.304453396 -13149 6.162363961 -13331 6.02433689 -13517 5.894993343 -13704 5.781579779 -13895 5.669327749 -14088 5.559422061 -14284 5.451272038 -14482 5.345407696 -14684 5.240760762 -14888 5.138367147 -15095 5.037698026 -15304 4.939212729 -15517 4.841962301 -15733 4.746417081 -15951 4.652988768 -16173 4.560808528 -16398 4.470298609 -16626 4.381444422 -16857 4.294230176 -17091 4.208638995 -17329 4.124304161 -17569 4.041915532 -17814 3.960438679 -18061 3.880866256 -18312 3.802531266 -18567 3.725440233 -18825 3.649885762 -19086 3.575843004 -19351 3.503016346 -19620 3.431405934 -19893 3.361010217 -20170 3.291826066 -20450 3.224087037 -20734 3.157534081 -21022 3.092160712 -21314 3.027959278 -21611 2.964711424 -21911 2.902833312 -22215 2.842097939 -22524 2.782303433 -22837 2.72364015 -23154 2.666094761 -23476 2.609480296 -23803 2.553798703 -24133 2.499375138 -24469 2.44570636 -24809 2.393110604 -25154 2.341423162 -25503 2.290783387 -25858 2.240896627 -26217 2.192038891 -26581 2.144061478 -26951 2.096832063 -27325 2.050598497 -27705 2.005105132 -28090 1.960468578 -28480 1.916679268 -28876 1.87362013 -29277 1.831394487 -29684 1.789890801 -30097 1.749107106 -30515 1.709134686 -30939 1.669869813 -31369 1.631308379 -31805 1.593445584 -32247 1.556276 -32695 1.519793622 -33150 1.483914308 -33610 1.448788745 -34077 1.414256574 -34551 1.380316899 -35031 1.347036289 -35518 1.314339784 -36012 1.282224533 -36512 1.250749035 -37020 1.219783377 -37534 1.1894451 -38056 1.159611158 -38585 1.130336109 -39121 1.101614126 -39664 1.073439037 -40216 1.045705454 -40775 1.018511791 -41341 0.991850739 -41916 0.965625004 -42498 0.939922374 -43089 0.914650563 -43688 0.889850105 -44295 0.8655163 -44910 0.841644138 -45535 0.818154346 -46167 0.795155879 -46809 0.772535302 -47460 0.750326734 -48119 0.728559442 -48788 0.707163786 -49466 0.686169449 -50153 0.665572257 -50850 0.645339213 -51557 0.625468389 -52274 0.605957483 -53000 0.586829781 -53737 0.568029639 -54483 0.549604906 -55241 0.531479156 -56008 0.513721581 -56787 0.496259806 -57576 0.479136632 -58376 0.462326948 -59187 0.445828155 -60010 0.429618019 -60844 0.413714087 -61689 0.39811302 -62547 0.382776115 -63416 0.367737118 -64297 0.352975606 -65191 0.338473136 -66097 0.324244004 -67015 0.310285289 -67947 0.296564927 -68891 0.283110503 -69848 0.26990498 -70819 0.256932936 -71803 0.244205901 -72801 0.231708891 -73813 0.21944028 -74839 0.207398232 -75879 0.195580727 -76933 0.183985575 -78002 0.17259995 -79086 0.161422371 -80186 0.150441347 -81300 0.139675001 -82430 0.129101984 -83575 0.118729959 -84737 0.108539377 -85914 0.098546201 -87108 0.088731701 -88319 0.079094789 -89546 0.069641782 -90791 0.060355854 -92053 0.05124327 -93332 0.042302332 -94629 0.033524566 -95944 0.024908686 -97277 0.016453271 -98629 0.008150735 -100000 0 --1 -1 --2 -2 \ No newline at end of file diff --git a/examples/advanced/radioprotection/gcrZ=26.txt b/examples/advanced/radioprotection/gcrZ=26.txt deleted file mode 100644 index 9b135f56c5..0000000000 --- a/examples/advanced/radioprotection/gcrZ=26.txt +++ /dev/null @@ -1,837 +0,0 @@ -1.0023 1.106254902 -1.0162 1.106038585 -1.0304 1.105813484 -1.0447 1.105582547 -1.0592 1.105343961 -1.0739 1.105097503 -1.0888 1.104842928 -1.104 1.10458189 -1.1193 1.104323587 -1.1349 1.104066901 -1.1506 1.103815152 -1.1666 1.103565151 -1.1828 1.103318517 -1.1993 1.103073787 -1.2159 1.102833931 -1.2328 1.102596066 -1.25 1.102360279 -1.2674 1.102127983 -1.285 1.101899179 -1.3028 1.101673856 -1.3209 1.101450782 -1.3393 1.101230019 -1.3579 1.101012782 -1.3768 1.100797923 -1.3959 1.100586594 -1.4153 1.100377703 -1.435 1.10017129 -1.4549 1.09996841 -1.4751 1.099768047 -1.4956 1.099570232 -1.5164 1.09937499 -1.5375 1.099182344 -1.5589 1.098992313 -1.5805 1.098805777 -1.6025 1.098621024 -1.6248 1.098438927 -1.6473 1.09826029 -1.6702 1.098083531 -1.6934 1.097909447 -1.717 1.097737309 -1.7408 1.097568574 -1.765 1.097401821 -1.7896 1.097237063 -1.8144 1.097075629 -1.8397 1.096915598 -1.8652 1.096758874 -1.8911 1.096604212 -1.9174 1.096451632 -1.9441 1.096301148 -1.9711 1.096153323 -1.9985 1.096007603 -2.0263 1.095863998 -2.0544 1.095723018 -2.083 1.095583661 -2.1119 1.095446904 -2.1413 1.095311801 -2.171 1.09517927 -2.2012 1.095048412 -2.2318 1.094919669 -2.2628 1.094793034 -2.2942 1.094668496 -2.3261 1.094545661 -2.3585 1.09442454 -2.3912 1.094305865 -2.4245 1.094188542 -2.4582 1.094073283 -2.4923 1.093960069 -2.527 1.093848237 -2.5621 1.09373843 -2.5977 1.093630324 -2.6338 1.093523915 -2.6704 1.093419197 -2.7075 1.093316163 -2.7451 1.093214804 -2.7833 1.093114851 -2.822 1.093016559 -2.8612 1.092919917 -2.9009 1.092824911 -2.9412 1.092731296 -2.9821 1.092639072 -3.0236 1.092548235 -3.0656 1.092458991 -3.1082 1.092371118 -3.1514 1.092284607 -3.1952 1.092199452 -3.2396 1.092115645 -3.2846 1.092033176 -3.3303 1.091951855 -3.3765 1.091872027 -3.4235 1.091793168 -3.471 1.09171577 -3.5193 1.091639334 -3.5682 1.091564176 -3.6178 1.09149013 -3.6681 1.091417184 -3.719 1.091345473 -3.7707 1.091274707 -3.8231 1.091205019 -3.8762 1.091136397 -3.9301 1.091068703 -3.9847 1.091002058 -4.0401 1.090936329 -4.0963 1.090871392 -4.1532 1.090807352 -4.2109 1.090744204 -4.2694 1.09068194 -4.3288 1.090620447 -4.3889 1.090559922 -4.4499 1.090500154 -4.5118 1.090441139 -4.5745 1.090382963 -4.638 1.090325614 -4.7025 1.090268905 -4.7678 1.090213004 -4.8341 1.090157732 -4.9013 1.090103166 -4.9694 1.090049296 -5.0385 1.089996036 -5.1085 1.089943456 -5.1795 1.089891471 -5.2515 1.089840076 -5.3244 1.089789332 -5.3984 1.089739092 -5.4735 1.089689351 -5.5495 1.089640234 -5.6266 1.089591602 -5.7048 1.089543449 -5.7841 1.089495769 -5.8645 1.089448554 -5.946 1.089401797 -6.0286 1.089355491 -6.1124 1.089309572 -6.1974 1.089264035 -6.2835 1.089218926 -6.3708 1.089174184 -6.4594 1.089129753 -6.5491 1.089085726 -6.6401 1.089041996 -6.7324 1.088998558 -6.826 1.088955406 -6.9209 1.088912534 -7.017 1.088869978 -7.1146 1.088827599 -7.2134 1.088785522 -7.3137 1.088743611 -7.4153 1.088701943 -7.5184 1.088660431 -7.6229 1.088619107 -7.7288 1.088577964 -7.8362 1.088536957 -7.9451 1.088496079 -8.0555 1.088455323 -8.1675 1.088414645 -8.281 1.088374075 -8.3961 1.08833357 -8.5128 1.088293124 -8.6311 1.088252728 -8.751 1.088212375 -8.8726 1.088172024 -8.9959 1.088131668 -9.1209 1.088091299 -9.2477 1.088050877 -9.3762 1.088010426 -9.5065 1.087969908 -9.6386 1.087929314 -9.7726 1.087888605 -9.9084 1.087847802 -10.046 1.087806898 -10.186 1.087765705 -10.327 1.087724557 -10.471 1.08768286 -10.616 1.087641253 -10.764 1.087599151 -10.913 1.087557115 -11.065 1.087514569 -11.219 1.087471785 -11.375 1.08742875 -11.533 1.087385455 -11.693 1.087341885 -11.856 1.08729776 -12.02 1.087253606 -12.187 1.087208874 -12.357 1.087163552 -12.529 1.087117895 -12.703 1.087071887 -12.879 1.087025514 -13.058 1.086978499 -13.24 1.086930828 -13.424 1.086882747 -13.61 1.08683424 -13.799 1.086785031 -13.991 1.086735104 -14.186 1.08668444 -14.383 1.086633281 -14.583 1.086581352 -14.785 1.086528893 -14.991 1.086475364 -15.199 1.086421266 -15.41 1.086366316 -15.625 1.086310234 -15.842 1.086253519 -16.062 1.086195888 -16.285 1.086137318 -16.511 1.086077786 -16.741 1.086017001 -16.973 1.085955469 -17.209 1.085892633 -17.449 1.085828464 -17.691 1.08576347 -17.937 1.085697086 -18.186 1.085629552 -18.439 1.085560565 -18.695 1.085490368 -18.955 1.085418656 -19.218 1.08534567 -19.485 1.0852711 -19.756 1.085194909 -20.031 1.085117063 -20.309 1.085037808 -20.591 1.084956822 -20.878 1.084873778 -21.168 1.084789214 -21.462 1.084702799 -21.76 1.084614492 -22.063 1.084523953 -22.369 1.084431734 -22.68 1.084337191 -22.995 1.08424058 -23.315 1.084141546 -23.639 1.08404035 -23.967 1.083936946 -24.3 1.083830969 -24.638 1.083722362 -24.981 1.083611074 -25.328 1.083497376 -25.68 1.083380887 -26.037 1.083261548 -26.398 1.08313964 -26.765 1.083014428 -27.137 1.082886193 -27.514 1.082754875 -27.897 1.082620062 -28.284 1.082482397 -28.678 1.082340746 -29.076 1.082196122 -29.48 1.082047736 -29.89 1.081895517 -30.305 1.081739702 -30.726 1.081579848 -31.153 1.081415948 -31.586 1.081247927 -32.025 1.081075715 -32.47 1.080899238 -32.922 1.08071802 -33.379 1.08053279 -33.843 1.08034266 -34.313 1.080147961 -34.79 1.079948204 -35.274 1.079743303 -35.764 1.079533602 -36.261 1.079318594 -36.765 1.079098192 -37.276 1.078872317 -37.794 1.078640882 -38.319 1.078403801 -38.852 1.078160536 -39.392 1.077911456 -39.939 1.077656477 -40.494 1.077395044 -41.057 1.077127061 -41.628 1.076852437 -42.206 1.076571568 -42.793 1.076283389 -43.387 1.075988792 -43.99 1.075686694 -44.602 1.075376994 -45.221 1.075060615 -45.85 1.074735933 -46.487 1.074403879 -47.133 1.074063838 -47.788 1.073715716 -48.452 1.073359417 -49.126 1.072994302 -49.808 1.072621364 -50.501 1.072238859 -51.202 1.071848348 -51.914 1.071448066 -52.635 1.071039038 -53.367 1.070620032 -54.109 1.070191517 -54.861 1.069753401 -55.623 1.069305585 -56.396 1.068847385 -57.18 1.068378702 -57.974 1.067900036 -58.78 1.067410086 -59.597 1.066909358 -60.425 1.066397755 -61.265 1.06587457 -62.116 1.065340329 -62.98 1.064793675 -63.855 1.06423578 -64.742 1.063665919 -65.642 1.063083354 -66.554 1.062488637 -67.479 1.061881028 -68.417 1.061260436 -69.368 1.060626764 -70.332 1.05997993 -71.309 1.05931985 -72.3 1.058645764 -73.305 1.057957584 -74.324 1.057255224 -75.357 1.056538605 -76.404 1.05580765 -77.466 1.055061582 -78.543 1.05430032 -79.634 1.053524501 -80.741 1.052732632 -81.863 1.051925356 -83.001 1.051101889 -84.154 1.050262888 -85.324 1.049406827 -86.509 1.048535116 -87.712 1.047645496 -88.931 1.046739382 -90.166 1.045816724 -91.42 1.044875227 -92.69 1.043917103 -93.978 1.042940799 -95.284 1.041946271 -96.608 1.040933491 -97.951 1.039901659 -99.312 1.038851506 -100.69 1.037783791 -102.09 1.036694618 -103.51 1.035585509 -104.95 1.034456448 -106.41 1.033307382 -107.89 1.032138304 -109.39 1.030949261 -110.91 1.029740257 -112.45 1.028511307 -114.01 1.027262432 -115.59 1.025993657 -117.2 1.024696959 -118.83 1.023380404 -120.48 1.022044033 -122.16 1.02067977 -123.85 1.019303928 -125.57 1.01790028 -127.32 1.016468849 -129.09 1.015017883 -130.88 1.013547466 -132.7 1.012049443 -134.55 1.010523877 -136.42 1.008979097 -138.31 1.00741521 -140.23 1.005824048 -142.18 1.004205714 -144.16 1.002560308 -146.16 1.000896247 -148.19 0.999205345 -150.25 0.997487737 -152.34 0.995743541 -154.46 0.993972907 -156.6 0.992184351 -158.78 0.99036131 -160.99 0.988512306 -163.23 0.986637506 -165.49 0.984745473 -167.79 0.982819661 -170.13 0.980860264 -172.49 0.978884227 -174.89 0.976875016 -177.32 0.974841221 -179.78 0.972783067 -182.28 0.970692439 -184.81 0.968577945 -187.38 0.966431469 -189.99 0.96425328 -192.63 0.962051998 -195.3 0.959827897 -198.02 0.957564617 -200.77 0.955279094 -203.56 0.952963311 -206.39 0.950617598 -209.26 0.948242277 -212.16 0.945845963 -215.11 0.943412472 -218.1 0.940950403 -221.13 0.938460135 -224.21 0.935933839 -227.32 0.933388283 -230.48 0.930807471 -233.69 0.92819184 -236.93 0.925558098 -240.23 0.922882263 -243.56 0.92018909 -246.95 0.91745478 -250.38 0.914695937 -253.86 0.911904963 -257.39 0.909082352 -260.97 0.906228612 -264.59 0.903352187 -268.27 0.900437693 -272 0.897493595 -275.78 0.894520443 -279.61 0.891518776 -283.5 0.888481314 -287.44 0.885416432 -291.43 0.882324701 -295.48 0.879198983 -299.59 0.876039885 -303.75 0.872855726 -307.97 0.869639473 -312.25 0.866391765 -316.59 0.863113277 -320.99 0.859804695 -325.45 0.856466716 -329.98 0.853092549 -334.56 0.849697783 -339.21 0.846268325 -343.92 0.8428123 -348.7 0.839323107 -353.55 0.835801557 -358.46 0.832255696 -363.45 0.828671859 -368.5 0.825065227 -373.62 0.821429476 -378.81 0.817765443 -384.07 0.81407395 -389.41 0.810348881 -394.82 0.806598126 -400.31 0.802815645 -405.87 0.799009232 -411.51 0.795172958 -417.23 0.791307758 -423.03 0.787414612 -428.91 0.783494512 -434.87 0.779548424 -440.92 0.775570787 -447.04 0.771575736 -453.26 0.767544449 -459.56 0.76349098 -465.94 0.759416597 -472.42 0.755309614 -478.98 0.7511838 -485.64 0.747027682 -492.39 0.742848701 -499.23 0.738647982 -506.17 0.734420486 -513.2 0.730173456 -520.34 0.725896058 -527.57 0.721601536 -534.9 0.717285084 -542.33 0.712947896 -549.87 0.708585429 -557.51 0.70420473 -565.26 0.699801331 -573.11 0.695382189 -581.08 0.69093738 -589.16 0.686473828 -597.34 0.681998307 -605.64 0.67750118 -614.06 0.672983867 -622.6 0.668447792 -631.25 0.663899596 -640.02 0.659335403 -648.91 0.654756604 -657.93 0.650159446 -667.08 0.645545383 -676.35 0.640920911 -685.75 0.636282502 -695.28 0.631631565 -704.94 0.626969506 -714.74 0.62229302 -724.67 0.617608398 -734.74 0.61291239 -744.95 0.608206455 -755.3 0.603492113 -765.8 0.59876638 -776.44 0.59403527 -787.23 0.589295843 -798.17 0.584549598 -809.27 0.579793806 -820.51 0.575038524 -831.92 0.570272599 -843.48 0.565506035 -855.2 0.560736171 -867.09 0.555960564 -879.14 0.551184785 -891.35 0.546410324 -903.74 0.541630949 -916.3 0.53685208 -929.03 0.532075357 -941.95 0.52729487 -955.04 0.522519524 -968.31 0.51774726 -981.77 0.51297609 -995.41 0.508211076 -1009.2 0.503463992 -1023.3 0.498681702 -1037.5 0.493937184 -1051.9 0.489198126 -1066.5 0.484466033 -1081.3 0.479742472 -1096.4 0.474997486 -1111.6 0.470295366 -1127.1 0.465575751 -1142.7 0.460900946 -1158.6 0.456212398 -1174.7 0.451541341 -1191 0.44688902 -1207.6 0.442228673 -1224.4 0.437590135 -1241.4 0.432974575 -1258.6 0.428383143 -1276.1 0.423790718 -1293.9 0.419199195 -1311.8 0.414661232 -1330.1 0.410102253 -1348.6 0.405573976 -1367.3 0.40107728 -1386.3 0.3965894 -1405.6 0.392112113 -1425.1 0.387669833 -1444.9 0.383241068 -1465 0.378827374 -1485.3 0.374451704 -1506 0.370072536 -1526.9 0.365733618 -1548.1 0.361415067 -1569.7 0.357098247 -1591.5 0.352824439 -1613.6 0.348574924 -1636 0.344350928 -1658.7 0.340153636 -1681.8 0.335966062 -1705.2 0.331807659 -1728.9 0.327679345 -1752.9 0.323582263 -1777.3 0.319500655 -1802 0.315452374 -1827 0.311438156 -1852.4 0.307443104 -1878.1 0.303484212 -1904.2 0.299546994 -1930.7 0.295632633 -1957.5 0.291757018 -1984.7 0.287906606 -2012.3 0.284082412 -2040.3 0.280285549 -2068.6 0.276530344 -2097.4 0.272791262 -2126.5 0.26909522 -2156.1 0.265417709 -2186.1 0.261773129 -2216.4 0.258174163 -2247.2 0.254596902 -2278.5 0.251042576 -2310.1 0.247534585 -2342.2 0.244051341 -2374.8 0.240593919 -2407.8 0.237173714 -2441.3 0.233781086 -2475.2 0.230426856 -2509.6 0.227101779 -2544.5 0.223806675 -2579.8 0.220551545 -2615.7 0.217318661 -2652 0.214126734 -2688.9 0.210958813 -2726.2 0.207832668 -2764.1 0.204732096 -2802.5 0.201665979 -2841.5 0.198626988 -2881 0.195623533 -2921 0.192656004 -2961.6 0.189717498 -3002.8 0.186808698 -3044.5 0.183937105 -3086.8 0.181096237 -3129.7 0.178286633 -3173.2 0.17550877 -3217.3 0.17276311 -3262 0.170050083 -3307.4 0.16736414 -3353.3 0.164717447 -3399.9 0.162098772 -3447.2 0.159508645 -3495.1 0.156952921 -3543.6 0.154431808 -3592.9 0.1519353 -3642.8 0.149473942 -3693.5 0.147038222 -3744.8 0.14463804 -3796.8 0.142268913 -3849.6 0.139926639 -3903.1 0.137615976 -3957.3 0.135337097 -4012.3 0.133086062 -4068.1 0.130863245 -4124.6 0.128672808 -4181.9 0.126511023 -4240.1 0.12437445 -4299 0.122270635 -4358.7 0.120196087 -4419.3 0.118147549 -4480.7 0.116128633 -4543 0.114136221 -4606.1 0.112173628 -4670.1 0.110237875 -4735.1 0.108326218 -4800.9 0.106444684 -4867.6 0.104590455 -4935.2 0.102763604 -5003.8 0.100961559 -5073.3 0.099187065 -5143.9 0.097435147 -5215.3 0.095713341 -5287.8 0.09401445 -5361.3 0.092340982 -5435.8 0.090692981 -5511.4 0.08906829 -5588 0.087469148 -5665.6 0.085895579 -5744.3 0.08434559 -5824.2 0.082817267 -5905.1 0.081314473 -5987.2 0.079833526 -6070.4 0.07837632 -6154.8 0.076941142 -6240.3 0.075529638 -6327 0.074140149 -6414.9 0.072772721 -6504.1 0.071425795 -6594.5 0.070100876 -6686.1 0.068797979 -6779 0.067515692 -6873.3 0.066252687 -6968.8 0.065011609 -7065.6 0.063791041 -7163.8 0.062589748 -7263.4 0.061407753 -7364.3 0.060246179 -7466.7 0.059102723 -7570.4 0.057979574 -7675.6 0.056874518 -7782.3 0.055787548 -7890.5 0.054718645 -8000.1 0.053668731 -8111.3 0.052635845 -8224 0.051620882 -8338.3 0.050622892 -8454.2 0.049641842 -8571.7 0.048677677 -8690.8 0.047730338 -8811.6 0.046798984 -8934.1 0.045883578 -9058.2 0.044984795 -9184.1 0.044101129 -9311.7 0.043233228 -9441.2 0.042379686 -9572.4 0.041541774 -9705.4 0.040718765 -9840.3 0.039909977 -9977 0.03911595 -10116 0.03833378 -10256 0.037570616 -10399 0.036815519 -10543 0.036078997 -10690 0.035350755 -10838 0.034640629 -10989 0.033938935 -11142 0.03325039 -11297 0.032574894 -11454 0.031912339 -11613 0.031262609 -11774 0.030625582 -11938 0.029997308 -12104 0.029381608 -12272 0.028778341 -12442 0.028238472 -12615 0.027756525 -12791 0.02728033 -12968 0.026815184 -13149 0.026353192 -13331 0.025902003 -13517 0.025454154 -13704 0.025016845 -13895 0.02458302 -14088 0.024157283 -14284 0.023737378 -14482 0.023325393 -14684 0.022917198 -14888 0.022516857 -15095 0.022122337 -15304 0.021735468 -15517 0.021352551 -15733 0.020975456 -15951 0.020605842 -16173 0.020240297 -16398 0.019880519 -16626 0.019526475 -16857 0.019178131 -17091 0.018835446 -17329 0.018496976 -17569 0.018165515 -17814 0.017836926 -18061 0.017515235 -18312 0.017197774 -18567 0.016884588 -18825 0.016576889 -19086 0.016274605 -19351 0.015976552 -19620 0.015682751 -19893 0.015393216 -20170 0.015107955 -20450 0.014827954 -20734 0.014552169 -21022 0.014280592 -21314 0.014013214 -21611 0.013749142 -21911 0.013490136 -22215 0.013235271 -22524 0.012983716 -22837 0.012736293 -23154 0.012492966 -23476 0.012252963 -23803 0.01201631 -24133 0.011784409 -24469 0.011555137 -24809 0.011329868 -25154 0.011107918 -25503 0.010889904 -25858 0.010674574 -26217 0.010463138 -26581 0.010254971 -26951 0.010049514 -27325 0.009847864 -27705 0.009648922 -28090 0.009453215 -28480 0.009260717 -28876 0.009070931 -29277 0.008884327 -29684 0.008700429 -30097 0.008519242 -30515 0.008341187 -30939 0.00816582 -31369 0.007993136 -31805 0.007823128 -32247 0.007655787 -32695 0.0074911 -33150 0.007328702 -33610 0.007169288 -34077 0.007012146 -34551 0.006857285 -35031 0.006705021 -35518 0.006555025 -36012 0.006407297 -36512 0.00626212 -37020 0.006118907 -37534 0.005978215 -38056 0.005839485 -38585 0.005702983 -39121 0.005568695 -39664 0.005436604 -40216 0.005306227 -40775 0.005178039 -41341 0.005052016 -41916 0.004927712 -42498 0.004805552 -43089 0.004685109 -43688 0.004566587 -44295 0.004449974 -44910 0.004335258 -45535 0.004222067 -46167 0.004110937 -46809 0.004001331 -47460 0.003893422 -48119 0.003787364 -48788 0.003682828 -49466 0.003579966 -50153 0.00347877 -50850 0.003379085 -51557 0.003280913 -52274 0.003184249 -53000 0.003089218 -53737 0.002995554 -54483 0.002903504 -55241 0.002812693 -56008 0.002723477 -56787 0.002635502 -57576 0.002548989 -58376 0.002463822 -59187 0.002379995 -60010 0.002297403 -60844 0.002216142 -61689 0.002136204 -62547 0.002057398 -63416 0.001979904 -64297 0.001903625 -65191 0.001828473 -66097 0.001754529 -67015 0.001681784 -67947 0.001610079 -68891 0.001539564 -69848 0.001470157 -70819 0.001401784 -71803 0.001334512 -72801 0.001268268 -73813 0.001203049 -74839 0.001138853 -75879 0.001075674 -76933 0.001013507 -78002 0.00095229 -79086 0.00089202 -80186 0.000832641 -81300 0.000774256 -82430 0.000716756 -83575 0.000660188 -84737 0.00060445 -85914 0.000549636 -87108 0.000495648 -88319 0.000442485 -89546 0.000390186 -90791 0.000338665 -92053 0.000287961 -93332 0.000238069 -94629 0.000188948 -95944 0.000140593 -97277 9.30031E-05 -98629 4.61393E-05 -100000 0 --1 -1 --2 -2 \ No newline at end of file diff --git a/examples/advanced/radioprotection/gcrZ=6.txt b/examples/advanced/radioprotection/gcrZ=6.txt deleted file mode 100644 index a1fab27e15..0000000000 --- a/examples/advanced/radioprotection/gcrZ=6.txt +++ /dev/null @@ -1,837 +0,0 @@ -1.0023 10.99455176 -1.0162 10.99433472 -1.0304 10.99411308 -1.0447 10.99389002 -1.0592 10.99366405 -1.0739 10.99343524 -1.0888 10.99320365 -1.104 10.9929678 -1.1193 10.99273087 -1.1349 10.99248983 -1.1506 10.99224783 -1.1666 10.99200187 -1.1828 10.99175357 -1.1993 10.99150148 -1.2159 10.99124873 -1.2328 10.99099234 -1.25 10.99073241 -1.2674 10.99047055 -1.285 10.99020683 -1.3028 10.98994133 -1.3209 10.98967264 -1.3393 10.98940087 -1.3579 10.98912759 -1.3768 10.98885141 -1.3959 10.98857389 -1.4153 10.98829368 -1.435 10.98801087 -1.4549 10.98772699 -1.4751 10.9874407 -1.4956 10.98715213 -1.5164 10.98686136 -1.5375 10.9865685 -1.5589 10.98627367 -1.5805 10.98597832 -1.6025 10.98567983 -1.6248 10.98537967 -1.6473 10.98507928 -1.6702 10.98477609 -1.6934 10.98447154 -1.717 10.98416444 -1.7408 10.98385748 -1.765 10.98354818 -1.7896 10.98323667 -1.8144 10.98292559 -1.8397 10.98261128 -1.8652 10.98229757 -1.8911 10.98198209 -1.9174 10.98166497 -1.9441 10.98134632 -1.9711 10.98102745 -1.9985 10.98070727 -2.0263 10.98038589 -2.0544 10.98006456 -2.083 10.97974111 -2.1119 10.97941791 -2.1413 10.97909283 -2.171 10.97876818 -2.2012 10.97844187 -2.2318 10.9781151 -2.2628 10.97778797 -2.2942 10.97746056 -2.3261 10.97713195 -2.3585 10.97680225 -2.3912 10.97647357 -2.4245 10.97614301 -2.4582 10.97581267 -2.4923 10.9754826 -2.527 10.97515099 -2.5621 10.97481984 -2.5977 10.9744883 -2.6338 10.97415646 -2.6704 10.9738244 -2.7075 10.97349223 -2.7451 10.97316002 -2.7833 10.97282699 -2.822 10.9724941 -2.8612 10.97216143 -2.9009 10.97182904 -2.9412 10.97149619 -2.9821 10.97116297 -3.0236 10.97082947 -3.0656 10.97049656 -3.1082 10.97016353 -3.1514 10.96983044 -3.1952 10.96949738 -3.2396 10.96916442 -3.2846 10.96883163 -3.3303 10.96849834 -3.3765 10.96816608 -3.4235 10.96783275 -3.471 10.96750056 -3.5193 10.96716747 -3.5682 10.96683493 -3.6178 10.96650232 -3.6681 10.9661697 -3.719 10.96583778 -3.7707 10.96550532 -3.8231 10.96517303 -3.8762 10.96484095 -3.9301 10.96450853 -3.9847 10.96417642 -4.0401 10.96384408 -4.0963 10.96351156 -4.1532 10.96317951 -4.2109 10.96284737 -4.2694 10.96251519 -4.3288 10.96218246 -4.3889 10.96185035 -4.4499 10.96151778 -4.5118 10.9611848 -4.5745 10.960852 -4.638 10.96051941 -4.7025 10.96018601 -4.7678 10.95985288 -4.8341 10.95951903 -4.9013 10.95918502 -4.9694 10.95885086 -5.0385 10.95851611 -5.1085 10.95818128 -5.1795 10.95784591 -5.2515 10.95751003 -5.3244 10.95717415 -5.3984 10.95683735 -5.4735 10.95649968 -5.5495 10.95616206 -5.6266 10.9558236 -5.7048 10.95548435 -5.7841 10.95514431 -5.8645 10.95480352 -5.946 10.95446199 -6.0286 10.95411974 -6.1124 10.95377636 -6.1974 10.95343187 -6.2835 10.9530867 -6.3708 10.95274045 -6.4594 10.95239273 -6.5491 10.95204435 -6.6401 10.95169453 -6.7324 10.95134327 -6.826 10.9509906 -6.9209 10.95063651 -7.017 10.95028138 -7.1146 10.9499241 -7.2134 10.94956578 -7.3137 10.94920531 -7.4153 10.94884343 -7.5184 10.94847941 -7.6229 10.9481136 -7.7288 10.947746 -7.8362 10.94737625 -7.9451 10.94700435 -8.0555 10.94663028 -8.1675 10.94625369 -8.281 10.94587491 -8.3961 10.94549359 -8.5128 10.9451097 -8.6311 10.94472324 -8.751 10.94433418 -8.8726 10.94394217 -8.9959 10.94354719 -9.1209 10.94314922 -9.2477 10.94274791 -9.3762 10.94234354 -9.5065 10.94193578 -9.6386 10.94152459 -9.7726 10.94110961 -9.9084 10.94069113 -10.046 10.9402691 -10.186 10.93984165 -10.327 10.939413 -10.471 10.93897702 -10.616 10.93853972 -10.764 10.93809501 -10.913 10.93764886 -11.065 10.93719521 -11.219 10.936737 -11.375 10.93627416 -11.533 10.93580663 -11.693 10.93533433 -11.856 10.93485424 -12.02 10.93437217 -12.187 10.93388218 -12.357 10.93338417 -12.529 10.93288101 -12.703 10.93237259 -12.879 10.93185882 -13.058 10.93133669 -13.24 10.9308061 -13.424 10.93026987 -13.61 10.92972787 -13.799 10.92917709 -13.991 10.92861742 -14.186 10.92804872 -14.383 10.92747379 -14.583 10.92688958 -14.785 10.92629888 -14.991 10.92569569 -15.199 10.92508574 -15.41 10.92446593 -15.625 10.92383317 -15.842 10.92319318 -16.062 10.92254284 -16.285 10.92188199 -16.511 10.92121045 -16.741 10.92052505 -16.973 10.91983156 -17.209 10.91912381 -17.449 10.91840157 -17.691 10.91767064 -17.937 10.91692479 -18.186 10.91616681 -18.439 10.91539341 -18.695 10.9146074 -18.955 10.91380547 -19.218 10.91299044 -19.485 10.91215894 -19.756 10.91131068 -20.031 10.91044535 -20.309 10.90956583 -20.591 10.90866864 -20.878 10.90775027 -21.168 10.90681678 -21.462 10.90586463 -21.76 10.90489348 -22.063 10.90389969 -22.369 10.90288945 -22.68 10.90185578 -22.995 10.90080161 -23.315 10.89972317 -23.639 10.89862339 -23.967 10.89750187 -24.3 10.89635475 -24.638 10.89518153 -24.981 10.89398171 -25.328 10.89275832 -25.68 10.89150734 -26.037 10.89022824 -26.398 10.88892411 -26.765 10.88758716 -27.137 10.88622044 -27.514 10.88482336 -27.897 10.88339159 -28.284 10.88193202 -28.678 10.88043267 -29.076 10.8789043 -29.48 10.87733861 -29.89 10.87573485 -30.305 10.87409625 -30.726 10.87241814 -31.153 10.87069976 -31.586 10.86894032 -32.025 10.86713902 -32.47 10.86529505 -32.922 10.86340338 -33.379 10.86147157 -33.843 10.8594903 -34.313 10.85746294 -34.79 10.85538423 -35.274 10.85325318 -35.764 10.85107323 -36.261 10.84883897 -36.765 10.84654935 -37.276 10.84420332 -37.794 10.8417998 -38.319 10.83933773 -38.852 10.83681124 -39.392 10.83422389 -39.939 10.83157457 -40.494 10.82885725 -41.057 10.82607063 -41.628 10.8232134 -42.206 10.82028935 -42.793 10.81728703 -43.387 10.81421533 -43.99 10.81106257 -44.602 10.80782724 -45.221 10.80451854 -45.85 10.80111898 -46.487 10.79763782 -47.133 10.79406812 -47.788 10.79040832 -48.452 10.78665684 -49.126 10.78280636 -49.808 10.77886671 -50.501 10.77481888 -51.202 10.77067871 -51.914 10.76642677 -52.635 10.76207323 -53.367 10.75760421 -54.109 10.75302391 -54.861 10.74833054 -55.623 10.74352231 -56.396 10.73859101 -57.18 10.73353463 -57.974 10.72835776 -58.78 10.72304535 -59.597 10.71760191 -60.425 10.71202547 -61.265 10.70630723 -62.116 10.70045193 -62.98 10.69444366 -63.855 10.68829418 -64.742 10.68199446 -65.642 10.67553515 -66.554 10.66892126 -67.479 10.66214333 -68.417 10.65519911 -69.368 10.64808635 -70.332 10.64080282 -71.309 10.63334635 -72.3 10.62570702 -73.305 10.61788249 -74.324 10.60987044 -75.357 10.60166859 -76.404 10.5932747 -77.466 10.58467846 -78.543 10.57587747 -79.634 10.5668777 -80.741 10.55766037 -81.863 10.54823147 -83.001 10.53858031 -84.154 10.52871316 -85.324 10.51861063 -86.509 10.50828778 -87.712 10.49771622 -88.931 10.48691124 -90.166 10.47587085 -91.42 10.46456599 -92.69 10.45302154 -93.978 10.44121735 -95.284 10.42915133 -96.608 10.41682147 -97.951 10.40421645 -99.312 10.39134373 -100.69 10.37821118 -102.09 10.36476923 -103.51 10.35103498 -104.95 10.33700663 -106.41 10.32268251 -107.89 10.3080611 -109.39 10.29314097 -110.91 10.27792085 -112.45 10.2623996 -114.01 10.24657619 -115.59 10.23044975 -117.2 10.21391654 -118.83 10.19707775 -120.48 10.17993295 -122.16 10.16237708 -123.85 10.14461898 -125.57 10.12644856 -127.32 10.10786432 -129.09 10.08897199 -130.88 10.0697721 -132.7 10.0501573 -134.55 10.03012692 -136.42 10.00978953 -138.31 9.989146321 -140.23 9.968088743 -142.18 9.946616986 -144.16 9.92473148 -146.16 9.902544024 -148.19 9.879945153 -150.25 9.85693596 -152.34 9.833517776 -154.46 9.809692166 -156.6 9.785573783 -158.78 9.760939249 -160.99 9.735903369 -163.23 9.710468638 -165.49 9.684751678 -167.79 9.65852784 -170.13 9.631799639 -172.49 9.604798905 -174.89 9.577300459 -177.32 9.549422471 -179.78 9.521168998 -182.28 9.492429294 -184.81 9.463322653 -187.38 9.433738633 -189.99 9.403681998 -192.63 9.373272998 -195.3 9.342516971 -198.02 9.311189097 -200.77 9.279525529 -203.56 9.247417139 -206.39 9.214870248 -209.26 9.181891428 -212.16 9.148602218 -215.11 9.114780078 -218.1 9.08054714 -221.13 9.045910899 -224.21 9.010765062 -227.32 8.975345759 -230.48 8.939433354 -233.69 8.903036925 -236.93 8.866391745 -240.23 8.829167658 -243.56 8.791712369 -246.95 8.753697985 -250.38 8.715359 -253.86 8.676593534 -257.39 8.637412225 -260.97 8.597825908 -264.59 8.557955508 -268.27 8.517591917 -272 8.476856826 -275.78 8.435761706 -279.61 8.39431815 -283.5 8.35243045 -287.44 8.310218917 -291.43 8.267695475 -295.48 8.224766411 -299.59 8.181445566 -303.75 8.137851395 -307.97 8.09389223 -312.25 8.049582202 -316.59 8.00493552 -320.99 7.959966452 -325.45 7.91468931 -329.98 7.869017964 -334.56 7.823168413 -339.21 7.776954807 -343.92 7.730491965 -348.7 7.683696681 -353.55 7.636585511 -358.46 7.589270982 -363.45 7.541576885 -368.5 7.493710845 -373.62 7.445593284 -378.81 7.397240522 -384.07 7.348668786 -389.41 7.299803101 -394.82 7.250752237 -400.31 7.201442675 -405.87 7.151981236 -411.51 7.102587703 -417.23 7.06402056 -423.03 7.025210498 -428.91 6.986167724 -434.87 6.946902529 -440.92 6.907360274 -447.04 6.867682141 -453.26 6.827683996 -459.56 6.787505761 -465.94 6.747158131 -472.42 6.706526101 -478.98 6.665746632 -485.64 6.624707029 -492.39 6.583480392 -499.23 6.542078094 -506.17 6.500449198 -513.2 6.458665672 -520.34 6.41662371 -527.57 6.374453398 -534.9 6.332108647 -542.33 6.289601896 -549.87 6.24688855 -557.51 6.20403791 -565.26 6.161007023 -573.11 6.117864601 -581.08 6.074513619 -589.16 6.031021948 -597.34 5.98745625 -605.64 5.943723446 -614.06 5.899837669 -622.6 5.855812582 -631.25 5.811713325 -640.02 5.767502527 -648.91 5.723193878 -657.93 5.678751797 -667.08 5.634191114 -676.35 5.589574256 -685.75 5.544866798 -695.28 5.500083542 -704.94 5.45523873 -714.74 5.410300732 -724.67 5.365329599 -734.74 5.320294193 -744.95 5.275209768 -755.3 5.230090962 -765.8 5.184908727 -776.44 5.139721179 -787.23 5.094500882 -798.17 5.049262122 -809.27 5.003978923 -820.51 4.958747618 -831.92 4.913462041 -843.48 4.868217241 -855.2 4.822988443 -867.09 4.777752402 -879.14 4.732562402 -891.35 4.687432319 -903.74 4.642303757 -916.3 4.597228367 -929.03 4.552220688 -941.95 4.507225464 -955.04 4.462326894 -968.31 4.41750528 -981.77 4.37274156 -995.41 4.328083518 -1009.2 4.28364245 -1023.3 4.23892148 -1037.5 4.19460186 -1051.9 4.150381692 -1066.5 4.106276041 -1081.3 4.062298063 -1096.4 4.018169257 -1111.6 3.974488485 -1127.1 3.930694243 -1142.7 3.887363761 -1158.6 3.843954256 -1174.7 3.800755984 -1191 3.757781197 -1207.6 3.714781927 -1224.4 3.672031597 -1241.4 3.629541627 -1258.6 3.587323195 -1276.1 3.545144213 -1293.9 3.503023094 -1311.8 3.461442424 -1330.1 3.419718607 -1348.6 3.378324903 -1367.3 3.337268632 -1386.3 3.296341397 -1405.6 3.255559194 -1425.1 3.215144859 -1444.9 3.174901161 -1465 3.134842866 -1485.3 3.095178544 -1506 3.055530126 -1526.9 3.016294191 -1548.1 2.977291067 -1569.7 2.938351883 -1591.5 2.899849377 -1613.6 2.86161378 -1636 2.823655132 -1658.7 2.785983006 -1681.8 2.748444005 -1705.2 2.71121402 -1728.9 2.674301211 -1752.9 2.637713271 -1777.3 2.60130963 -1802 2.565250902 -1827 2.529543402 -1852.4 2.494051792 -1878.1 2.458925674 -1904.2 2.424037739 -1930.7 2.38939833 -1957.5 2.355146523 -1984.7 2.321162367 -2012.3 2.287454487 -2040.3 2.254032497 -2068.6 2.221022104 -2097.4 2.188196706 -2126.5 2.155792379 -2156.1 2.123594114 -2186.1 2.091719909 -2216.4 2.060279788 -2247.2 2.029072288 -2278.5 1.99810795 -2310.1 1.967589618 -2342.2 1.937328731 -2374.8 1.907341792 -2407.8 1.877726751 -2441.3 1.848391504 -2475.2 1.819428963 -2509.6 1.790758644 -2544.5 1.762387012 -2579.8 1.734399398 -2615.7 1.706642667 -2652 1.679276732 -2688.9 1.652155675 -2726.2 1.625430803 -2764.1 1.598962722 -2802.5 1.572826626 -2841.5 1.546959613 -2881 1.52143258 -2921 1.49624781 -2961.6 1.471346165 -3002.8 1.446732492 -3044.5 1.42246942 -3086.8 1.398501542 -3129.7 1.374832829 -3173.2 1.351466652 -3217.3 1.328406034 -3262 1.305653667 -3307.4 1.283162382 -3353.3 1.261033327 -3399.9 1.239171822 -3447.2 1.217581631 -3495.1 1.196310834 -3543.6 1.175360349 -3592.9 1.154646264 -3642.8 1.134255365 -3693.5 1.114108072 -3744.8 1.094285752 -3796.8 1.074750288 -3849.6 1.055466223 -3903.1 1.036472225 -3957.3 1.017769174 -4012.3 0.999323893 -4068.1 0.981138115 -4124.6 0.963245624 -4181.9 0.945615417 -4240.1 0.928218637 -4299 0.911115888 -4358.7 0.894277906 -4419.3 0.877678096 -4480.7 0.861344591 -4543 0.845251333 -4606.1 0.829424906 -4670.1 0.813840474 -4735.1 0.798474864 -4800.9 0.783376051 -4867.6 0.768520594 -4935.2 0.753908194 -5003.8 0.73951787 -5073.3 0.725371145 -5143.9 0.71142798 -5215.3 0.697747222 -5287.8 0.684270904 -5361.3 0.671018229 -5435.8 0.657988775 -5511.4 0.645165125 -5588 0.632564732 -5665.6 0.620186698 -5744.3 0.608014228 -5824.2 0.596032424 -5905.1 0.584270939 -5987.2 0.572699909 -6070.4 0.561333603 -6154.8 0.550158115 -6240.3 0.539185536 -6327 0.52840244 -6414.9 0.517808732 -6504.1 0.507392092 -6594.5 0.497163832 -6686.1 0.487122928 -6779 0.477257731 -6873.3 0.467557489 -6968.8 0.458042086 -7065.6 0.448700501 -7163.8 0.439522511 -7263.4 0.430507697 -7364.3 0.421664264 -7466.7 0.412973988 -7570.4 0.404453099 -7675.6 0.396084247 -7782.3 0.387866877 -7890.5 0.379800391 -8000.1 0.371891255 -8111.3 0.364124144 -8224 0.356505379 -8338.3 0.349027407 -8454.2 0.341689468 -8571.7 0.335116501 -8690.8 0.328977817 -8811.6 0.322940272 -8934.1 0.317003582 -9058.2 0.311171979 -9184.1 0.305435565 -9311.7 0.299798521 -9441.2 0.294251728 -9572.4 0.288803375 -9705.4 0.283448638 -9840.3 0.278183112 -9977 0.273010231 -10116 0.267911202 -10256 0.262932412 -10399 0.258002478 -10543 0.253190075 -10690 0.248427925 -10838 0.243780372 -10989 0.239184018 -11142 0.234670094 -11297 0.230237869 -11454 0.225886554 -11613 0.221615309 -11774 0.217423251 -11938 0.213284603 -12104 0.209224784 -12272 0.205242726 -12442 0.201337338 -12615 0.197485581 -12791 0.193688352 -12968 0.189987582 -13149 0.186320223 -13331 0.182746745 -13517 0.179207798 -13704 0.175760025 -13895 0.172347564 -14088 0.169006431 -14284 0.16571867 -14482 0.162500394 -14684 0.159319127 -14888 0.156206361 -15095 0.15314602 -15304 0.150152067 -15517 0.147195654 -15733 0.144291079 -15951 0.141450859 -16173 0.138648579 -16398 0.135897078 -16626 0.13319591 -16857 0.130544597 -17091 0.127942625 -17329 0.125378846 -17569 0.122874232 -17814 0.120397336 -18061 0.117978334 -18312 0.11559695 -18567 0.113253383 -18825 0.110956527 -19086 0.108705627 -19351 0.106491697 -19620 0.10431474 -19893 0.102174711 -20170 0.100071512 -20450 0.098012246 -20734 0.095989036 -21022 0.094001686 -21314 0.092049962 -21611 0.090127227 -21911 0.088246133 -22215 0.086399777 -22524 0.084582024 -22837 0.082798661 -23154 0.081049281 -23476 0.079328201 -23803 0.077635481 -24133 0.075981004 -24469 0.074349473 -24809 0.072750562 -25154 0.071179264 -25503 0.069639815 -25858 0.068123257 -26217 0.066637982 -26581 0.065179469 -26951 0.063743695 -27325 0.062338194 -27705 0.060955196 -28090 0.059598245 -28480 0.05826705 -28876 0.056958052 -29277 0.055674392 -29684 0.05441268 -30097 0.053172856 -30515 0.051957694 -30939 0.050764042 -31369 0.049591775 -31805 0.048440746 -32247 0.04731079 -32695 0.046201726 -33150 0.045110995 -33610 0.044043178 -34077 0.0429934 -34551 0.041961634 -35031 0.040949903 -35518 0.039955929 -36012 0.038979626 -36512 0.038022771 -37020 0.037081415 -37534 0.036159131 -38056 0.035252179 -38585 0.034362218 -39121 0.033489069 -39664 0.032632547 -40216 0.031789446 -40775 0.030962758 -41341 0.030152262 -41916 0.029355 -42498 0.02857364 -43089 0.027805377 -43688 0.027051443 -44295 0.026311696 -44910 0.025585982 -45535 0.024871892 -46167 0.024172739 -46809 0.023485073 -47460 0.022809933 -48119 0.022148207 -48788 0.021497779 -49466 0.020859551 -50153 0.020233397 -50850 0.019618312 -51557 0.019014239 -52274 0.018421107 -53000 0.017839625 -53737 0.017268101 -54483 0.016707989 -55241 0.016156966 -56008 0.015617136 -56787 0.015086298 -57576 0.014565754 -58376 0.014054739 -59187 0.013553176 -60010 0.013060388 -60844 0.012576908 -61689 0.012102636 -62547 0.011636394 -63416 0.011179208 -64297 0.010730458 -65191 0.010289583 -66097 0.009857018 -67015 0.009432673 -67947 0.009015574 -68891 0.008606559 -69848 0.008205111 -70819 0.007810761 -71803 0.007423859 -72801 0.00704395 -73813 0.006670984 -74839 0.006304906 -75879 0.005945654 -76933 0.005593161 -78002 0.005247038 -79086 0.00490724 -80186 0.004573417 -81300 0.00424612 -82430 0.0039247 -83575 0.003609391 -84737 0.003299597 -85914 0.002995804 -87108 0.002697444 -88319 0.002404482 -89546 0.00211711 -90791 0.001834818 -92053 0.001557795 -93332 0.001285991 -94629 0.001019147 -95944 0.000757224 -97277 0.000500179 -98629 0.000247782 -100000 0 --1 -1 --2 -2 \ No newline at end of file diff --git a/examples/advanced/radioprotection/gcrZ=8.txt b/examples/advanced/radioprotection/gcrZ=8.txt deleted file mode 100644 index ee6e72e006..0000000000 --- a/examples/advanced/radioprotection/gcrZ=8.txt +++ /dev/null @@ -1,837 +0,0 @@ -1.0023 11.05592056 -1.0162 11.0557178 -1.0304 11.05551074 -1.0447 11.05530236 -1.0592 11.05509126 -1.0739 11.0548775 -1.0888 11.05466115 -1.104 11.05444082 -1.1193 11.05421947 -1.1349 11.05399429 -1.1506 11.05376821 -1.1666 11.05353844 -1.1828 11.05330647 -1.1993 11.05307097 -1.2159 11.05283484 -1.2328 11.05259532 -1.25 11.0523525 -1.2674 11.05210786 -1.285 11.05186149 -1.3028 11.05161345 -1.3209 11.05136244 -1.3393 11.05110855 -1.3579 11.05085325 -1.3768 11.05059524 -1.3959 11.05033598 -1.4153 11.0500742 -1.435 11.04981 -1.4549 11.04954479 -1.4751 11.04927735 -1.4956 11.04900775 -1.5164 11.04873611 -1.5375 11.04846252 -1.5589 11.04818709 -1.5805 11.04791117 -1.6025 11.04763232 -1.6248 11.04735191 -1.6473 11.04707128 -1.6702 11.04678804 -1.6934 11.04650352 -1.717 11.04621662 -1.7408 11.04592986 -1.765 11.04564091 -1.7896 11.0453499 -1.8144 11.04505928 -1.8397 11.04476449 -1.8652 11.04446064 -1.8911 11.04413752 -1.9174 11.04379415 -1.9441 11.04342953 -1.9711 11.04304407 -1.9985 11.04263538 -2.0263 11.04220238 -2.0544 11.0417456 -2.083 11.04126067 -2.1119 11.04074982 -2.1413 11.04020832 -2.171 11.03963866 -2.2012 11.03903577 -2.2318 11.0384003 -2.2628 11.03773096 -2.2942 11.03702649 -2.3261 11.03628322 -2.3585 11.03549958 -2.3912 11.03467908 -2.4245 11.03381272 -2.4582 11.03290409 -2.4923 11.03195185 -2.527 11.03094877 -2.5621 11.02989899 -2.5977 11.02879801 -2.6338 11.02764419 -2.6704 11.02643587 -2.7075 11.02517142 -2.7451 11.0238492 -2.7833 11.0224639 -2.822 11.02101738 -2.8612 11.01950804 -2.9009 11.01793432 -2.9412 11.01629053 -2.9821 11.01457483 -3.0236 11.01278537 -3.0656 11.01092487 -3.1082 11.0089873 -3.1514 11.00697096 -3.1952 11.00487419 -3.2396 11.00269538 -3.2846 11.00043299 -3.3303 10.99808031 -3.3765 10.99564622 -3.4235 10.9931134 -3.471 10.99049655 -3.5193 10.98777778 -3.5682 10.98496689 -3.6178 10.98205694 -3.6681 10.97904666 -3.719 10.97594103 -3.7707 10.9727268 -3.8231 10.96940906 -3.8762 10.96598698 -3.9301 10.96245323 -3.9847 10.95881362 -4.0401 10.95506086 -4.0963 10.9511943 -4.1532 10.94722049 -4.2109 10.94313225 -4.2694 10.93892935 -4.3288 10.93460444 -4.3889 10.93017216 -4.4499 10.92561806 -4.5118 10.92094227 -4.5745 10.91615283 -4.638 10.9112505 -4.7025 10.90622051 -4.7678 10.90107934 -4.8341 10.89581228 -4.9013 10.89042841 -4.9694 10.88492912 -5.0385 10.87930785 -5.1085 10.8735744 -5.1795 10.86772246 -5.2515 10.86175401 -5.3244 10.85567954 -5.3984 10.84948476 -5.4735 10.84317207 -5.5495 10.83676099 -5.6266 10.83023754 -5.7048 10.8236047 -5.7841 10.81686563 -5.8645 10.81002368 -5.946 10.80308234 -6.0286 10.7960453 -6.1124 10.78890787 -6.1974 10.78167402 -6.2835 10.77435642 -6.3708 10.76695083 -6.4594 10.75945323 -6.5491 10.75188513 -6.6401 10.74423432 -6.7324 10.7365057 -6.826 10.7287043 -6.9209 10.72083522 -7.017 10.71291191 -7.1146 10.70491502 -7.2134 10.69687456 -7.3137 10.68877164 -7.4153 10.6806281 -7.5184 10.67243361 -7.6229 10.664202 -7.7288 10.65593903 -7.8362 10.64764283 -7.9451 10.63931942 -8.0555 10.63097483 -8.1675 10.62260767 -8.281 10.61423153 -8.3961 10.60584512 -8.5128 10.59745464 -8.6311 10.58906621 -8.751 10.58068591 -8.8726 10.57231286 -8.9959 10.56395328 -9.1209 10.55561326 -9.2477 10.54729229 -9.3762 10.53900296 -9.5065 10.53074473 -9.6386 10.52252353 -9.7726 10.51433908 -9.9084 10.50620329 -10.046 10.49812159 -10.186 10.49006508 -10.327 10.48211902 -10.471 10.47417631 -10.616 10.46635264 -10.764 10.45854527 -10.913 10.45086465 -11.065 10.44321241 -11.219 10.43564519 -11.375 10.42816724 -11.533 10.42078255 -11.693 10.41349489 -11.856 10.40626399 -12.02 10.39918183 -12.187 10.39216502 -12.357 10.38521977 -12.529 10.37839115 -12.703 10.37168133 -12.879 10.36509226 -13.058 10.35858986 -13.24 10.35217885 -13.424 10.34589725 -13.61 10.33974595 -13.799 10.33369412 -13.991 10.32774528 -14.186 10.32190266 -14.383 10.31619761 -14.583 10.3106023 -14.785 10.30514563 -14.991 10.2997756 -15.199 10.29454616 -15.41 10.28943228 -15.625 10.28441231 -15.842 10.27953392 -16.062 10.27477404 -16.285 10.27013315 -16.511 10.26561149 -16.741 10.26119024 -16.973 10.25690763 -17.209 10.25272627 -17.449 10.2486477 -17.691 10.24470504 -17.937 10.24086464 -18.186 10.23714189 -18.439 10.2335214 -18.695 10.23001685 -18.955 10.22661373 -19.218 10.22332415 -19.485 10.22013444 -19.756 10.2170441 -20.031 10.21405246 -20.309 10.21116879 -20.591 10.20838098 -20.878 10.20567869 -21.168 10.2030795 -21.462 10.20057234 -21.76 10.19815569 -22.063 10.19582042 -22.369 10.19358021 -22.68 10.19141857 -22.995 10.18934109 -23.315 10.1873397 -23.639 10.18541909 -23.967 10.18357714 -24.3 10.18180652 -24.638 10.18010589 -24.981 10.17847382 -25.328 10.17691317 -25.68 10.17541751 -26.037 10.17398524 -26.398 10.17261836 -26.765 10.17130763 -27.137 10.17002172 -27.514 10.16871656 -27.897 10.16737899 -28.284 10.16601544 -28.678 10.16461473 -29.076 10.16318691 -29.48 10.16172423 -29.89 10.16022598 -30.305 10.15869518 -30.726 10.15712748 -31.153 10.15552215 -31.586 10.15387845 -32.025 10.15219566 -32.47 10.150473 -32.922 10.14870579 -33.379 10.14690107 -33.843 10.14505015 -34.313 10.14315617 -34.79 10.14121422 -35.274 10.13922337 -35.764 10.13718683 -36.261 10.13509956 -36.765 10.13296057 -37.276 10.13076889 -37.794 10.1285235 -38.319 10.1262234 -38.852 10.12386313 -39.392 10.121446 -39.939 10.11897098 -40.494 10.11643243 -41.057 10.11382914 -41.628 10.11115989 -42.206 10.10842821 -42.793 10.10562341 -43.387 10.10275379 -43.99 10.09980846 -44.602 10.09678597 -45.221 10.09369495 -45.85 10.09051905 -46.487 10.08726691 -47.133 10.08393206 -47.788 10.08051304 -48.452 10.07700836 -49.126 10.0734112 -49.808 10.06973074 -50.501 10.06594922 -51.202 10.06208142 -51.914 10.05810922 -52.635 10.0540421 -53.367 10.04986709 -54.109 10.04558813 -54.861 10.04120353 -55.623 10.03671163 -56.396 10.03210476 -57.18 10.02738104 -57.974 10.02254475 -58.78 10.01758184 -59.597 10.01249652 -60.425 10.00728695 -61.265 10.00194491 -62.116 9.996474831 -62.98 9.990861841 -63.855 9.985116934 -64.742 9.979231662 -65.642 9.973197316 -66.554 9.967018544 -67.479 9.960686536 -68.417 9.954199171 -69.368 9.947554351 -70.332 9.940750004 -71.309 9.933784088 -72.3 9.926647349 -73.305 9.91933759 -74.324 9.911852648 -75.357 9.904190393 -76.404 9.896348736 -77.466 9.888318031 -78.543 9.880096056 -79.634 9.871688375 -80.741 9.86307745 -81.863 9.854268873 -83.001 9.845252662 -84.154 9.836034666 -85.324 9.826596773 -86.509 9.816953053 -87.712 9.807076992 -88.931 9.796982868 -90.166 9.786668823 -91.42 9.776107705 -92.69 9.765322757 -93.978 9.754295161 -95.284 9.743022956 -96.608 9.73150427 -97.951 9.719728523 -99.312 9.707702692 -100.69 9.695434127 -102.09 9.682876522 -103.51 9.670045837 -104.95 9.656940402 -106.41 9.643558663 -107.89 9.629899182 -109.39 9.615960643 -110.91 9.601741849 -112.45 9.587241728 -114.01 9.572459332 -115.59 9.557393843 -117.2 9.54194835 -118.83 9.526217375 -120.48 9.510200523 -122.16 9.493799638 -123.85 9.47720984 -125.57 9.460234839 -127.32 9.442873245 -129.09 9.425223835 -130.88 9.407287096 -132.7 9.388962737 -134.55 9.370250146 -136.42 9.351250743 -138.31 9.331965642 -140.23 9.312293431 -142.18 9.292234289 -144.16 9.27178862 -146.16 9.251060864 -148.19 9.229948761 -150.25 9.208453331 -152.34 9.186575817 -154.46 9.164317681 -156.6 9.141786035 -158.78 9.118772193 -160.99 9.095383411 -163.23 9.071622017 -165.49 9.047596963 -167.79 9.023098377 -170.13 8.99812861 -172.49 8.97290424 -174.89 8.947214902 -177.32 8.921170993 -179.78 8.894776301 -182.28 8.867927367 -184.81 8.840735637 -187.38 8.813097934 -189.99 8.785018709 -192.63 8.756610301 -195.3 8.727877696 -198.02 8.698610867 -200.77 8.669030428 -203.56 8.639034433 -206.39 8.608628785 -209.26 8.577819624 -212.16 8.546720493 -215.11 8.515123494 -218.1 8.483142723 -221.13 8.450785182 -224.21 8.417951571 -227.32 8.384862486 -230.48 8.351312738 -233.69 8.317310812 -236.93 8.283076498 -240.23 8.248301365 -243.56 8.21331024 -246.95 8.177796802 -250.38 8.141980119 -253.86 8.105765012 -257.39 8.069161421 -260.97 8.032179467 -264.59 7.99493212 -268.27 7.957224028 -272 7.919168877 -275.78 7.880777383 -279.61 7.842060377 -283.5 7.802928447 -287.44 7.763493988 -291.43 7.723768142 -295.48 7.683663358 -299.59 7.643192568 -303.75 7.602466434 -307.97 7.56139932 -312.25 7.520004426 -316.59 7.478295025 -320.99 7.436284449 -325.45 7.393986066 -329.98 7.351319414 -334.56 7.308486281 -339.21 7.275489252 -343.92 7.242850777 -348.7 7.209928969 -353.55 7.176731968 -358.46 7.143336026 -363.45 7.109613444 -368.5 7.075707517 -373.62 7.041558589 -378.81 7.007175254 -384.07 6.972565901 -389.41 6.937673353 -394.82 6.902571961 -400.31 6.867205628 -405.87 6.831647635 -411.51 6.795843293 -417.23 6.759802102 -423.03 6.72353331 -428.91 6.687046235 -434.87 6.650350261 -440.92 6.613394109 -447.04 6.576309479 -453.26 6.538924682 -459.56 6.501370587 -465.94 6.463656573 -472.42 6.425674846 -478.98 6.387553128 -485.64 6.349185751 -492.39 6.310641445 -499.23 6.271930893 -506.17 6.23300596 -513.2 6.193933975 -520.34 6.154617655 -527.57 6.115178239 -534.9 6.075572655 -542.33 6.035812106 -549.87 5.995854837 -557.51 5.955766077 -565.26 5.915504749 -573.11 5.875134672 -581.08 5.834565419 -589.16 5.793860884 -597.34 5.75308295 -605.64 5.712143491 -614.06 5.671056101 -622.6 5.629833927 -631.25 5.588537378 -640.02 5.547130853 -648.91 5.505627021 -657.93 5.463992393 -667.08 5.422241217 -676.35 5.380431802 -685.75 5.338531702 -695.28 5.296554625 -704.94 5.25451317 -714.74 5.212377457 -724.67 5.170204102 -734.74 5.127963649 -744.95 5.085670179 -755.3 5.043337152 -765.8 5.000937601 -776.44 4.95852579 -787.23 4.91607507 -798.17 4.873599098 -809.27 4.831073139 -820.51 4.788587962 -831.92 4.746044123 -843.48 4.703529911 -855.2 4.661021646 -867.09 4.618497745 -879.14 4.576008571 -891.35 4.533566734 -903.74 4.49111689 -916.3 4.448707862 -929.03 4.40635286 -941.95 4.363999388 -955.04 4.321726902 -968.31 4.279517122 -981.77 4.237352326 -995.41 4.195276984 -1009.2 4.153395479 -1023.3 4.111238911 -1037.5 4.069449624 -1051.9 4.027743264 -1066.5 3.986133447 -1081.3 3.944633581 -1096.4 3.902981024 -1111.6 3.86174046 -1127.1 3.820381112 -1142.7 3.779448311 -1158.6 3.738429571 -1174.7 3.697598441 -1191 3.656965842 -1207.6 3.616298415 -1224.4 3.575854893 -1241.4 3.53564543 -1258.6 3.49567994 -1276.1 3.455739865 -1293.9 3.415842812 -1311.8 3.37644518 -1330.1 3.336898469 -1348.6 3.297651412 -1367.3 3.258712309 -1386.3 3.219882674 -1405.6 3.181177923 -1425.1 3.142809869 -1444.9 3.104590424 -1465 3.066532733 -1485.3 3.028836394 -1506 2.991142367 -1526.9 2.953826827 -1548.1 2.916719248 -1569.7 2.879660452 -1591.5 2.843004352 -1613.6 2.806588469 -1636 2.770422717 -1658.7 2.734516595 -1681.8 2.698724242 -1705.2 2.663212461 -1728.9 2.627990824 -1752.9 2.593067164 -1777.3 2.558305033 -1802 2.523856869 -1827 2.489730619 -1852.4 2.455798823 -1878.1 2.422202177 -1904.2 2.388819494 -1930.7 2.355662694 -1957.5 2.32286405 -1984.7 2.290306262 -2012.3 2.257999703 -2040.3 2.225954102 -2068.6 2.194288467 -2097.4 2.162787704 -2126.5 2.131678138 -2156.1 2.100752968 -2186.1 2.070125766 -2216.4 2.039902607 -2247.2 2.009889824 -2278.5 1.980097662 -2310.1 1.950721497 -2342.2 1.921580057 -2374.8 1.892689513 -2407.8 1.864144282 -2441.3 1.835855953 -2475.2 1.807914429 -2509.6 1.780242011 -2544.5 1.752845057 -2579.8 1.725806149 -2615.7 1.698977917 -2652 1.672515135 -2688.9 1.646276514 -2726.2 1.620408899 -2764.1 1.59477765 -2802.5 1.569455643 -2841.5 1.544382027 -2881 1.519625856 -2921 1.495189736 -2961.6 1.471016455 -3002.8 1.447111113 -3044.5 1.423534757 -3086.8 1.400233802 -3129.7 1.377212117 -3173.2 1.354473254 -3217.3 1.332020455 -3262 1.309856418 -3307.4 1.287935528 -3353.3 1.266356756 -3399.9 1.245027936 -3447.2 1.223952865 -3495.1 1.203178659 -3543.6 1.182706445 -3592.9 1.162454708 -3642.8 1.142508543 -3693.5 1.122790375 -3744.8 1.103380135 -3796.8 1.084240547 -3849.6 1.065337196 -3903.1 1.046708349 -3957.3 1.028354969 -4012.3 1.010244597 -4068.1 0.992379669 -4124.6 0.974793535 -4181.9 0.957455572 -4240.1 0.940337555 -4299 0.92349965 -4358.7 0.906913632 -4419.3 0.890553208 -4480.7 0.874446361 -4543 0.858567679 -4606.1 0.842943709 -4670.1 0.827549901 -4735.1 0.812363691 -4800.9 0.797432865 -4867.6 0.782734269 -4935.2 0.768268022 -5003.8 0.754013782 -5073.3 0.739992939 -5143.9 0.726165876 -5215.3 0.71259104 -5287.8 0.699211437 -5361.3 0.686046246 -5435.8 0.673095613 -5511.4 0.660342384 -5588 0.647803213 -5665.6 0.635478277 -5744.3 0.623351512 -5824.2 0.61140784 -5905.1 0.599676592 -5987.2 0.588128693 -6070.4 0.576778653 -6154.8 0.565612385 -6240.3 0.554642757 -6327 0.543856171 -6414.9 0.533252355 -6504.1 0.522819456 -6594.5 0.512569208 -6686.1 0.502500916 -6779 0.49260292 -6873.3 0.482864559 -6968.8 0.47330605 -7065.6 0.463916542 -7163.8 0.454685926 -7263.4 0.445613957 -7364.3 0.436709083 -7466.7 0.427953156 -7570.4 0.419362682 -7675.6 0.410920335 -7782.3 0.402625783 -7890.5 0.394478542 -8000.1 0.386485338 -8111.3 0.378630948 -8224 0.370921848 -8338.3 0.363350551 -8454.2 0.355916513 -8571.7 0.34861902 -8690.8 0.341457326 -8811.6 0.334424778 -8934.1 0.327520776 -9058.2 0.320750163 -9184.1 0.314101274 -9311.7 0.307578681 -9441.2 0.301171629 -9572.4 0.294889363 -9705.4 0.288726166 -9840.3 0.282676755 -9977 0.27674486 -10116 0.270908497 -10256 0.26522085 -10399 0.259600113 -10543 0.254124218 -10690 0.248716393 -10838 0.243449469 -10989 0.23825143 -11142 0.233156973 -11297 0.228165082 -11454 0.223274795 -11613 0.218485039 -11774 0.213794634 -11938 0.209174312 -12104 0.204651986 -12272 0.20022645 -12442 0.195896418 -12615 0.191636004 -12791 0.187445615 -12968 0.183371358 -13149 0.179343552 -13331 0.175428386 -13517 0.171560646 -13704 0.167801895 -13895 0.164091018 -14088 0.160466796 -14284 0.156909534 -14482 0.153437222 -14684 0.150014398 -14888 0.146673811 -15095 0.143398243 -15304 0.140273642 -15517 0.137511729 -15733 0.134798245 -15951 0.132144881 -16173 0.129526962 -16398 0.12695648 -16626 0.124433022 -16857 0.121956137 -17091 0.119525347 -17329 0.117130238 -17569 0.114790401 -17814 0.112476458 -18061 0.110216602 -18312 0.107991888 -18567 0.105802503 -18825 0.103656756 -19086 0.101553941 -19351 0.099485664 -19620 0.097451929 -19893 0.09545269 -20170 0.09348786 -20450 0.091564072 -20734 0.089673968 -21022 0.087817364 -21314 0.085994043 -21611 0.084197804 -21911 0.082440466 -22215 0.080715581 -22524 0.079017418 -22837 0.07735138 -23154 0.075717091 -23476 0.07410924 -23803 0.072527883 -24133 0.070982254 -24469 0.069458061 -24809 0.067964341 -25154 0.066496418 -25503 0.065058248 -25858 0.063641464 -26217 0.062253905 -26581 0.060891346 -26951 0.059550031 -27325 0.058236997 -27705 0.056944986 -28090 0.055677308 -28480 0.054433691 -28876 0.053210812 -29277 0.052011603 -29684 0.050832899 -30097 0.049674642 -30515 0.048539425 -30939 0.047424303 -31369 0.046329158 -31805 0.045253855 -32247 0.044198238 -32695 0.043162139 -33150 0.042143166 -33610 0.0411456 -34077 0.040164887 -34551 0.039201 -35031 0.038255831 -35518 0.03732725 -36012 0.036415177 -36512 0.035521273 -37020 0.034641848 -37534 0.033780241 -38056 0.032932957 -38585 0.032101545 -39121 0.031285841 -39664 0.030485669 -40216 0.029698035 -40775 0.028925735 -41341 0.028168561 -41916 0.02742375 -42498 0.026693795 -43089 0.025976076 -43688 0.025271743 -44295 0.024580663 -44910 0.023902694 -45535 0.023235583 -46167 0.022582427 -46809 0.021940003 -47460 0.021309279 -48119 0.020691088 -48788 0.020083452 -49466 0.019487212 -50153 0.018902252 -50850 0.018327634 -51557 0.017763302 -52274 0.017209193 -53000 0.016665966 -53737 0.016132042 -54483 0.015608779 -55241 0.015094008 -56008 0.014589693 -56787 0.014093778 -57576 0.01360748 -58376 0.013130085 -59187 0.01266152 -60010 0.012201152 -60844 0.01174948 -61689 0.01130641 -62547 0.010870842 -63416 0.010443734 -64297 0.010024507 -65191 0.009612637 -66097 0.00920853 -67015 0.008812102 -67947 0.008422444 -68891 0.008040338 -69848 0.007665301 -70819 0.007296895 -71803 0.006935448 -72801 0.006580533 -73813 0.006232104 -74839 0.00589011 -75879 0.005554493 -76933 0.00522519 -78002 0.004901839 -79086 0.004584395 -80186 0.004272534 -81300 0.00396677 -82430 0.003666496 -83575 0.003371931 -84737 0.003082518 -85914 0.002798712 -87108 0.00251998 -88319 0.002246292 -89546 0.001977827 -90791 0.001714106 -92053 0.001455309 -93332 0.001201386 -94629 0.000952098 -95944 0.000707407 -97277 0.000467273 -98629 0.000231481 -100000 0 --1 -1 --2 -2 \ No newline at end of file diff --git a/examples/advanced/radioprotection/include/G4IonC12.hh b/examples/advanced/radioprotection/include/G4IonC12.hh deleted file mode 100644 index c0364f75b6..0000000000 --- a/examples/advanced/radioprotection/include/G4IonC12.hh +++ /dev/null @@ -1,83 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4IonC12.hh,v 1.1 2004/05/14 12:29:32 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 4-th April 1996, G.Cosmo -// **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 -// ---------------------------------------------------------------- - -// Class Description: -// The new ion C12+ is defined as G4VIon. -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. -// Class Description - end - - -#ifndef G4IonC12_h -#define G4IonC12_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include "G4VIon.hh" - -// ###################################################################### -// ### IonC12 ### -// ###################################################################### - -class G4IonC12 : public G4VIon -{ - private: - static G4IonC12 theIonC12; - -public: // Without description - - G4IonC12( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~G4IonC12(); - - static G4IonC12* IonC12Definition(); - static G4IonC12* IonC12(); - -}; - -#endif diff --git a/examples/advanced/radioprotection/include/G4IonFe52.hh b/examples/advanced/radioprotection/include/G4IonFe52.hh deleted file mode 100644 index f4796034df..0000000000 --- a/examples/advanced/radioprotection/include/G4IonFe52.hh +++ /dev/null @@ -1,83 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4IonFe52.hh,v 1.1 2004/05/14 12:29:32 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 4-th April 1996, G.Cosmo -// **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 -// ---------------------------------------------------------------- - -// Class Description: -// The new ion Fe52+ is defined as G4VIon. -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. -// Class Description - end - - -#ifndef G4IonFe52_h -#define G4IonFe52_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include "G4VIon.hh" - -// ###################################################################### -// ### IonFe52 ### -// ###################################################################### - -class G4IonFe52 : public G4VIon -{ - private: - static G4IonFe52 theIonFe52; - -public: // Without description - - G4IonFe52( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~G4IonFe52(); - - static G4IonFe52* IonFe52Definition(); - static G4IonFe52* IonFe52(); - -}; - -#endif diff --git a/examples/advanced/radioprotection/include/G4IonO16.hh b/examples/advanced/radioprotection/include/G4IonO16.hh deleted file mode 100644 index c9cd2a0368..0000000000 --- a/examples/advanced/radioprotection/include/G4IonO16.hh +++ /dev/null @@ -1,59 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - -#ifndef G4IonO16_h -#define G4IonO16_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include "G4VIon.hh" - -// ###################################################################### -// ### IonO16 ### -// ###################################################################### - -class G4IonO16 : public G4VIon -{ - private: - static G4IonO16 theIonO16; - -public: - - G4IonO16( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~G4IonO16(); - - static G4IonO16* IonO16Definition(); - static G4IonO16* IonO16(); -}; - -#endif diff --git a/examples/advanced/radioprotection/include/G4IonSi28.hh b/examples/advanced/radioprotection/include/G4IonSi28.hh deleted file mode 100644 index b1ea8455eb..0000000000 --- a/examples/advanced/radioprotection/include/G4IonSi28.hh +++ /dev/null @@ -1,83 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4IonSi28.hh,v 1.1 2004/05/14 12:29:32 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 4-th April 1996, G.Cosmo -// **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 -// ---------------------------------------------------------------- - -// Class Description: -// The new ion Si28+ is defined as G4VIon. -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. -// Class Description - end - - -#ifndef G4IonSi28_h -#define G4IonSi28_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include "G4VIon.hh" - -// ###################################################################### -// ### IonSi28 ### -// ###################################################################### - -class G4IonSi28 : public G4VIon -{ - private: - static G4IonSi28 theIonSi28; - -public: // Without description - - G4IonSi28( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~G4IonSi28(); - - static G4IonSi28* IonSi28Definition(); - static G4IonSi28* IonSi28(); - -}; - -#endif diff --git a/examples/advanced/radioprotection/include/RemSimAnalysisManager.hh b/examples/advanced/radioprotection/include/RemSimAnalysisManager.hh index 54626088fc..65a11f2e7b 100644 --- a/examples/advanced/radioprotection/include/RemSimAnalysisManager.hh +++ b/examples/advanced/radioprotection/include/RemSimAnalysisManager.hh @@ -26,7 +26,7 @@ // * * // ********************************** // -// $Id: RemSimAnalysisManager.hh,v 1.7 2004/11/23 11:43:21 guatelli Exp $ +// $Id: RemSimAnalysisManager.hh,v 1.8 2005/09/08 06:56:18 guatelli Exp $ // // Author: Susanna Guatelli (guatelli@ge.infn.it) // @@ -39,7 +39,7 @@ #include #include "G4ThreeVector.hh" # include -#include "RemSimAnalysisMessenger.hh" +//#include "RemSimAnalysisMessenger.hh" namespace AIDA { @@ -52,7 +52,7 @@ namespace AIDA class ITreeFactory; }; -class RemSimAnalysisMessenger; +//class RemSimAnalysisMessenger; class RemSimAnalysisManager { public: @@ -113,7 +113,7 @@ private: AIDA::IHistogram2D* shape; AIDA::IHistogram2D* energyShape; - RemSimAnalysisMessenger* messenger; + // RemSimAnalysisMessenger* messenger; G4String fileFormat; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimDecay.hh b/examples/advanced/radioprotection/include/RemSimDecay.hh index 709e77e3a3..aff549058c 100644 --- a/examples/advanced/radioprotection/include/RemSimDecay.hh +++ b/examples/advanced/radioprotection/include/RemSimDecay.hh @@ -28,7 +28,7 @@ // ************************ // // $Id: RemSimDecay.hh,v 1.2 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimDecorator.hh b/examples/advanced/radioprotection/include/RemSimDecorator.hh index 8f48781093..7f65964c67 100644 --- a/examples/advanced/radioprotection/include/RemSimDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimDecorator.hh @@ -27,8 +27,8 @@ // * * // *************************** // -// $Id: RemSimDecorator.hh,v 1.8 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimDecorator.hh,v 1.9 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimDetectorConstruction.hh b/examples/advanced/radioprotection/include/RemSimDetectorConstruction.hh index d89102d847..08014a7900 100644 --- a/examples/advanced/radioprotection/include/RemSimDetectorConstruction.hh +++ b/examples/advanced/radioprotection/include/RemSimDetectorConstruction.hh @@ -26,8 +26,8 @@ // * * // ************************************** // -// $Id: RemSimDetectorConstruction.hh,v 1.11 2005/05/19 14:28:09 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimDetectorConstruction.hh,v 1.12 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimDetectorMessenger.hh b/examples/advanced/radioprotection/include/RemSimDetectorMessenger.hh index 7790bc673c..bed426b8ab 100644 --- a/examples/advanced/radioprotection/include/RemSimDetectorMessenger.hh +++ b/examples/advanced/radioprotection/include/RemSimDetectorMessenger.hh @@ -28,7 +28,7 @@ // ***************************************** // // $Id: RemSimDetectorMessenger.hh,v 1.8 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // #ifndef RemSimDetectorMessenger_h diff --git a/examples/advanced/radioprotection/include/RemSimElectronEEDL.hh b/examples/advanced/radioprotection/include/RemSimElectronEEDL.hh index 970bf6954d..080f9d601f 100644 --- a/examples/advanced/radioprotection/include/RemSimElectronEEDL.hh +++ b/examples/advanced/radioprotection/include/RemSimElectronEEDL.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimElectronEEDL.hh,v 1.3 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimEventAction.hh b/examples/advanced/radioprotection/include/RemSimEventAction.hh index f429065a14..b099629018 100644 --- a/examples/advanced/radioprotection/include/RemSimEventAction.hh +++ b/examples/advanced/radioprotection/include/RemSimEventAction.hh @@ -28,7 +28,7 @@ // ********************************** // // $Id: RemSimEventAction.hh,v 1.4 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimHadronicBertini.hh b/examples/advanced/radioprotection/include/RemSimHadronicBertini.hh index f408c8218a..427a971e96 100644 --- a/examples/advanced/radioprotection/include/RemSimHadronicBertini.hh +++ b/examples/advanced/radioprotection/include/RemSimHadronicBertini.hh @@ -26,8 +26,8 @@ // * * // ************************************** // -// $Id: RemSimHadronicBertini.hh,v 1.1 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimHadronicBertini.hh,v 1.3 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // @@ -37,7 +37,7 @@ #include "G4VPhysicsConstructor.hh" #include "globals.hh" - +#include "G4ExcitationHandler.hh" #include "G4QGSParticipants.hh" #include "G4QGSModel.hh" @@ -99,7 +99,7 @@ class RemSimHadronicBertini: public G4VPhysicsConstructor G4TheoFSGenerator* QGSP_model; G4GeneratorPrecompoundInterface* theCascade; - G4ExcitationHandler* theHandler; + G4ExcitationHandler theHandler; G4PreCompoundModel* thePreEquilib; G4QGSMFragmentation* theFragmentation; G4ExcitedStringDecay* theStringDecay; diff --git a/examples/advanced/radioprotection/include/RemSimHadronicBinary.hh b/examples/advanced/radioprotection/include/RemSimHadronicBinary.hh index e9b6ac752e..b1b1616613 100644 --- a/examples/advanced/radioprotection/include/RemSimHadronicBinary.hh +++ b/examples/advanced/radioprotection/include/RemSimHadronicBinary.hh @@ -26,8 +26,8 @@ // * * // ************************************** // -// $Id: RemSimHadronicBinary.hh,v 1.1 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimHadronicBinary.hh,v 1.3 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // @@ -37,7 +37,7 @@ #include "G4VPhysicsConstructor.hh" #include "globals.hh" - +#include "G4ExcitationHandler.hh" #include "G4QGSParticipants.hh" #include "G4QGSModel.hh" @@ -98,7 +98,7 @@ class RemSimHadronicBinary: public G4VPhysicsConstructor G4TheoFSGenerator* QGSP_model; G4GeneratorPrecompoundInterface* theCascade; - G4ExcitationHandler* theHandler; + G4ExcitationHandler theHandler; G4PreCompoundModel* thePreEquilib; G4QGSMFragmentation* theFragmentation; G4ExcitedStringDecay* theStringDecay; diff --git a/examples/advanced/radioprotection/include/RemSimIonICRU.hh b/examples/advanced/radioprotection/include/RemSimIonICRU.hh index 0595c3aa8c..30500720c2 100644 --- a/examples/advanced/radioprotection/include/RemSimIonICRU.hh +++ b/examples/advanced/radioprotection/include/RemSimIonICRU.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimIonICRU.hh,v 1.3 2004/12/15 15:41:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimIonICRU.hh,v 1.4 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimMaterial.hh b/examples/advanced/radioprotection/include/RemSimMaterial.hh index 94844f47d7..f992002860 100644 --- a/examples/advanced/radioprotection/include/RemSimMaterial.hh +++ b/examples/advanced/radioprotection/include/RemSimMaterial.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimMaterial.hh,v 1.5 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/advanced/radioprotection/include/RemSimMoonHabitat.hh b/examples/advanced/radioprotection/include/RemSimMoonHabitat.hh index 0d0204a5cf..019de7e882 100644 --- a/examples/advanced/radioprotection/include/RemSimMoonHabitat.hh +++ b/examples/advanced/radioprotection/include/RemSimMoonHabitat.hh @@ -27,8 +27,8 @@ // * * // ************************************** // -// $Id: RemSimMoonHabitat.hh,v 1.4 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimMoonHabitat.hh,v 1.5 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimMuonStandard.hh b/examples/advanced/radioprotection/include/RemSimMuonStandard.hh index 929334bdc3..e7bcc6a4d6 100644 --- a/examples/advanced/radioprotection/include/RemSimMuonStandard.hh +++ b/examples/advanced/radioprotection/include/RemSimMuonStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimMuonStandard.hh,v 1.2 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimParticles.hh b/examples/advanced/radioprotection/include/RemSimParticles.hh index 9f99f5b7a8..e9793689e8 100644 --- a/examples/advanced/radioprotection/include/RemSimParticles.hh +++ b/examples/advanced/radioprotection/include/RemSimParticles.hh @@ -19,15 +19,23 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// $Id: RemsimParticles.hh; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Remsim example +// ---------------------------------------------------------------------------- +// Code developed by: // -// $Id: RemSimParticles.hh,v 1.4 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// Author:Susanna Guatelli, guatelli@ge.infn.it -// +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- -#ifndef REMSIMPARTICLES_HH -#define REMSIMPARTICLES_HH 1 +#ifndef HADRONTHERAPYPARTICLES_HH +#define HADRONTHERAPYPARTICLES_HH 1 #include "globals.hh" #include "G4VPhysicsConstructor.hh" diff --git a/examples/advanced/radioprotection/include/RemSimPhotonEPDL.hh b/examples/advanced/radioprotection/include/RemSimPhotonEPDL.hh index 71e5ce72e2..5e2b01f398 100644 --- a/examples/advanced/radioprotection/include/RemSimPhotonEPDL.hh +++ b/examples/advanced/radioprotection/include/RemSimPhotonEPDL.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimPhotonEPDL.hh,v 1.3 2004/05/22 12:57:04 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimPhysicsList.hh b/examples/advanced/radioprotection/include/RemSimPhysicsList.hh index 87825eb796..afd34da081 100644 --- a/examples/advanced/radioprotection/include/RemSimPhysicsList.hh +++ b/examples/advanced/radioprotection/include/RemSimPhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimPhysicsList.hh,v 1.5 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimPhysicsListMessenger.hh b/examples/advanced/radioprotection/include/RemSimPhysicsListMessenger.hh index 631e27c0fe..f444672dcf 100644 --- a/examples/advanced/radioprotection/include/RemSimPhysicsListMessenger.hh +++ b/examples/advanced/radioprotection/include/RemSimPhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimPhysicsListMessenger.hh,v 1.3 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimPositronStandard.hh b/examples/advanced/radioprotection/include/RemSimPositronStandard.hh index 5297922f77..ff966e2b53 100644 --- a/examples/advanced/radioprotection/include/RemSimPositronStandard.hh +++ b/examples/advanced/radioprotection/include/RemSimPositronStandard.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimPositronStandard.hh,v 1.3 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorAction.hh b/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorAction.hh index d73c300760..af499a0a8d 100644 --- a/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorAction.hh +++ b/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: RemSimPrimaryGeneratorAction.hh,v 1.10 2005/05/19 13:30:59 guatelli Exp $// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimPrimaryGeneratorAction.hh,v 1.12 2005/12/02 10:08:34 guatelli Exp $// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it // @@ -31,10 +31,9 @@ #include "G4VUserPrimaryGeneratorAction.hh" #include "globals.hh" -class G4ParticleGun; +class G4GeneralParticleSource; class G4Event; -class RemSimVPrimaryGeneratorFactory; -class RemSimPrimaryGeneratorMessenger; + class RemSimPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: @@ -44,13 +43,9 @@ public: public: G4double GetInitialEnergy(); void GeneratePrimaries(G4Event* anEvent); - void SelectPrimaries(G4String value); - void Read(G4String); -private: - G4String value; - RemSimVPrimaryGeneratorFactory* primaryFactory; - RemSimPrimaryGeneratorMessenger* messenger; +private: + G4GeneralParticleSource* particleGun; }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimROGeometry.hh b/examples/advanced/radioprotection/include/RemSimROGeometry.hh index 7034aeabcc..c5eea5ea85 100644 --- a/examples/advanced/radioprotection/include/RemSimROGeometry.hh +++ b/examples/advanced/radioprotection/include/RemSimROGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimROGeometry.hh,v 1.5 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ************************************ // * * diff --git a/examples/advanced/radioprotection/include/RemSimRoofDecorator.hh b/examples/advanced/radioprotection/include/RemSimRoofDecorator.hh index 65c1f93058..5385617b2f 100644 --- a/examples/advanced/radioprotection/include/RemSimRoofDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimRoofDecorator.hh @@ -29,8 +29,8 @@ // Code developed by: S.Guatelli, guatelli@ge.infn.it // // -// $Id: RemSimRoofDecorator.hh,v 1.4 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimRoofDecorator.hh,v 1.5 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RemSimRoofDecorator_h diff --git a/examples/advanced/radioprotection/include/RemSimRunAction.hh b/examples/advanced/radioprotection/include/RemSimRunAction.hh index 69262535b9..488d74a4b9 100644 --- a/examples/advanced/radioprotection/include/RemSimRunAction.hh +++ b/examples/advanced/radioprotection/include/RemSimRunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RemSimRunAction.hh,v 1.8 2005/05/19 13:30:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimRunAction.hh,v 1.9 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimSensitiveDetector.hh b/examples/advanced/radioprotection/include/RemSimSensitiveDetector.hh index 2a9bcd788b..03a3d9a4a1 100644 --- a/examples/advanced/radioprotection/include/RemSimSensitiveDetector.hh +++ b/examples/advanced/radioprotection/include/RemSimSensitiveDetector.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimSensitiveDetector.hh,v 1.2 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimSensitiveDetector.hh,v 1.3 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // @@ -29,7 +29,7 @@ #define RemSimSensitiveDetector_h 1 #include "G4VSensitiveDetector.hh" -#include "RemSimHit.hh" + class G4Step; class G4HCofThisEvent; class G4TouchableHistory; @@ -46,7 +46,7 @@ class RemSimSensitiveDetector : public G4VSensitiveDetector void EndOfEvent(G4HCofThisEvent*HCE); private: - RemSimHitsCollection *trackerCollection; + }; #endif diff --git a/examples/advanced/radioprotection/include/RemSimShelterSPEDecorator.hh b/examples/advanced/radioprotection/include/RemSimShelterSPEDecorator.hh index bff0144313..f6536092f7 100644 --- a/examples/advanced/radioprotection/include/RemSimShelterSPEDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimShelterSPEDecorator.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimShelterSPEDecorator.hh,v 1.3 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimShelterSPEDecorator.hh,v 1.4 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimShieldingDecorator.hh b/examples/advanced/radioprotection/include/RemSimShieldingDecorator.hh index 99caef7c79..e343087bf4 100644 --- a/examples/advanced/radioprotection/include/RemSimShieldingDecorator.hh +++ b/examples/advanced/radioprotection/include/RemSimShieldingDecorator.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimShieldingDecorator.hh,v 1.5 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimShieldingDecorator.hh,v 1.6 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimSteppingAction.hh b/examples/advanced/radioprotection/include/RemSimSteppingAction.hh index 9cbcca775a..df5826fe95 100644 --- a/examples/advanced/radioprotection/include/RemSimSteppingAction.hh +++ b/examples/advanced/radioprotection/include/RemSimSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimSteppingAction.hh,v 1.3 2004/05/17 10:34:57 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli (guatelli@ge.infn.it) // diff --git a/examples/advanced/radioprotection/include/RemSimSteppingActionMessenger.hh b/examples/advanced/radioprotection/include/RemSimSteppingActionMessenger.hh index 4e81dd5e3c..17649fda7b 100644 --- a/examples/advanced/radioprotection/include/RemSimSteppingActionMessenger.hh +++ b/examples/advanced/radioprotection/include/RemSimSteppingActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: RemSimSteppingActionMessenger.hh,v 1.2 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimVGeometryComponent.hh b/examples/advanced/radioprotection/include/RemSimVGeometryComponent.hh index 4c3eb3cfae..89bf777bc5 100644 --- a/examples/advanced/radioprotection/include/RemSimVGeometryComponent.hh +++ b/examples/advanced/radioprotection/include/RemSimVGeometryComponent.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimVGeometryComponent.hh,v 1.6 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimVGeometryComponent.hh,v 1.7 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/include/RemSimVehicle1.hh b/examples/advanced/radioprotection/include/RemSimVehicle1.hh index c81b37ed3b..81c9c3b1d8 100644 --- a/examples/advanced/radioprotection/include/RemSimVehicle1.hh +++ b/examples/advanced/radioprotection/include/RemSimVehicle1.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimVehicle1.hh,v 1.7 2004/05/22 12:57:05 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/moon.mac b/examples/advanced/radioprotection/moon.mac index e4f160d6d7..2ef73ab37d 100644 --- a/examples/advanced/radioprotection/moon.mac +++ b/examples/advanced/radioprotection/moon.mac @@ -32,10 +32,7 @@ /configuration/choose moon /configuration/AddRoof On /roof/thickness 2. m -/gun/generator Interplanetary -/gun/data gcrZ=26.txt -#/tracking/verbose 1 -/gun/particle IonFe52 +/control/execute gcrZ=1gps.mac /run/beamOn 10 diff --git a/examples/advanced/radioprotection/remsim.cc b/examples/advanced/radioprotection/remsim.cc index 600175d8fa..1c1e5b2ad5 100644 --- a/examples/advanced/radioprotection/remsim.cc +++ b/examples/advanced/radioprotection/remsim.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: remsim.cc,v 1.10 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: remsim.cc,v 1.12 2005/12/07 14:41:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4RunManager.hh" #include "G4UImanager.hh" @@ -71,14 +71,14 @@ int main(int argc,char** argv) runManager -> SetUserAction(new RemSimSteppingAction(primary)); #ifdef G4VIS_USE - // Visualisation - G4VisManager* visManager = new G4VisExecutive; - visManager -> Initialize(); + // Visualisation + G4VisManager* visManager = new G4VisExecutive; + visManager -> Initialize(); #endif #ifdef G4ANALYSIS_USE - RemSimAnalysisManager* analysis = RemSimAnalysisManager::getInstance(); - analysis -> SetFormat("hbook"); + RemSimAnalysisManager* analysis = RemSimAnalysisManager::getInstance(); + analysis -> SetFormat("hbook"); #endif // get the pointer to the UI manager and set verbosities @@ -108,16 +108,16 @@ int main(int argc,char** argv) } #ifdef G4ANALYSIS_USE - analysis -> finish(); -#endif - + analysis -> finish(); +#endif + #ifdef G4VIS_USE - delete visManager; + delete visManager; #endif // job termination delete runManager; + return 0; } - diff --git a/examples/advanced/radioprotection/speZ=1.txt b/examples/advanced/radioprotection/speZ=1.txt deleted file mode 100644 index b236c6fe0c..0000000000 --- a/examples/advanced/radioprotection/speZ=1.txt +++ /dev/null @@ -1,837 +0,0 @@ -1.0023 2329084.825 -1.0162 2315943.759 -1.0304 2302694.459 -1.0447 2289526.714 -1.0592 2276350.174 -1.0739 2263168.017 -1.0888 2249983.199 -1.104 2236711.29 -1.1193 2223529.727 -1.1349 2210268.926 -1.1506 2197101.881 -1.1666 2183863.442 -1.1828 2170639.984 -1.1993 2157353.587 -1.2159 2144167.836 -1.2328 2130926.322 -1.25 2117633.582 -1.2674 2104370.28 -1.285 2091138.478 -1.3028 2077940.527 -1.3209 2064705.599 -1.3393 2051437.574 -1.3579 2038211.714 -1.3768 2024959.981 -1.3959 2011755.292 -1.4153 1998531.423 -1.435 1985291.971 -1.4549 1972106.893 -1.4751 1958912.602 -1.4956 1945712.622 -1.5164 1932510.602 -1.5375 1919309.671 -1.5589 1906113.077 -1.5805 1892984.979 -1.6025 1879806.888 -1.6248 1866642.791 -1.6473 1853553.751 -1.6702 1840426.22 -1.6934 1827321.316 -1.717 1814186.245 -1.7408 1801135.097 -1.765 1788060.637 -1.7896 1774967.072 -1.8144 1761963.622 -1.8397 1748896.198 -1.8652 1735922.615 -1.8911 1722943.365 -1.9174 1709962.398 -1.9441 1696983.566 -1.9711 1684058.217 -1.9985 1671141.114 -2.0263 1658235.806 -2.0544 1645391.163 -2.083 1632519.108 -2.1119 1619712.907 -2.1413 1606887.081 -2.171 1594131.938 -2.2012 1581364.221 -2.2318 1568629.72 -2.2628 1555931.496 -2.2942 1543272.202 -2.3261 1530614.715 -2.3585 1517962.748 -2.3912 1505396.749 -2.4245 1492804.631 -2.4582 1480265.739 -2.4923 1467782.479 -2.527 1455284.778 -2.5621 1442847.702 -2.5977 1430438.507 -2.6338 1418060.359 -2.6704 1405716.313 -2.7075 1393409.322 -2.7451 1381141.839 -2.7833 1368884.894 -2.822 1356673.733 -2.8612 1344510.867 -2.9009 1332399.106 -2.9412 1320310.347 -2.9821 1308248.207 -3.0236 1296216.189 -3.0656 1284245.758 -3.1082 1272310.76 -3.1514 1260414.349 -3.1952 1248559.569 -3.2396 1236748.895 -3.2846 1224985.6 -3.3303 1213246.706 -3.3765 1201585.712 -3.4235 1189929.808 -3.471 1178356.194 -3.5193 1166794.444 -3.5682 1155295.413 -3.6178 1143838.526 -3.6681 1132426.52 -3.719 1121084.286 -3.7707 1109770.266 -3.8231 1098509.108 -3.8762 1087303.045 -3.9301 1076133.792 -3.9847 1065024.991 -4.0401 1053958.926 -4.0963 1042938.417 -4.1532 1031985.518 -4.2109 1021083.358 -4.2694 1010234.491 -4.3288 999423.2028 -4.3889 988688.3185 -4.4499 977996.4088 -4.5118 967350.3714 -4.5745 956769.9074 -4.638 946257.0716 -4.7025 935781.3181 -4.7678 925377.6336 -4.8341 915016.5908 -4.9013 904716.4315 -4.9694 894479.3375 -5.0385 884292.6921 -5.1085 874173.5956 -5.1795 864109.8194 -5.2515 854103.8153 -5.3244 844171.5271 -5.3984 834287.8926 -5.4735 824455.5754 -5.5495 814702.7623 -5.6266 805005.8146 -5.7048 795367.1427 -5.7841 785788.9402 -5.8645 776273.4269 -5.946 766822.6902 -6.0286 757438.6857 -6.1124 748112.1931 -6.1974 738845.4477 -6.2835 729651.3114 -6.3708 720521.0221 -6.4594 711446.2535 -6.5491 702449.3619 -6.6401 693512.1155 -6.7324 684636.6271 -6.826 675824.9655 -6.9209 667079.0633 -7.017 658409.7383 -7.1146 649791.8787 -7.2134 641253.7937 -7.3137 632771.3383 -7.4153 624363.2603 -7.5184 616014.7007 -7.6229 607735.7043 -7.7288 599527.8019 -7.8362 591384.9192 -7.9451 583308.7655 -8.0555 575300.9117 -8.1675 567355.9261 -8.281 559482.5919 -8.3961 551675.4085 -8.5128 543935.946 -8.6311 536265.7578 -8.751 528666.2644 -8.8726 521132.5576 -8.9959 513666.1982 -9.1209 506268.7393 -9.2477 498935.6896 -9.3762 491674.1203 -9.5065 484479.6607 -9.6386 477353.8557 -9.7726 470292.7161 -9.9084 463302.7806 -10.046 456385.2019 -10.186 449511.4032 -10.327 442750.9309 -10.471 436009.2471 -10.616 429381.2286 -10.764 422776.6906 -10.913 416285.859 -11.065 409822.5818 -11.219 404673.8436 -11.375 402298.6108 -11.533 399907.1366 -11.693 397499.8774 -11.856 395062.3823 -12.02 392625.0177 -12.187 390158.5193 -12.357 387663.6266 -12.529 385155.6183 -12.703 382634.9564 -12.879 380102.103 -13.058 377543.2727 -13.24 374959.2177 -13.424 372364.7449 -13.61 369760.3167 -13.799 367132.5401 -13.991 364482.1739 -14.186 361809.979 -14.383 359130.27 -14.583 356430.0552 -14.785 353723.4455 -14.991 350984.4061 -15.199 348240.2931 -15.41 345478.5215 -15.625 342686.9222 -15.842 339892.227 -16.062 337082.1608 -16.285 334257.4842 -16.511 331418.9566 -16.741 328554.9369 -16.973 325691.0858 -17.209 322803.4688 -17.449 319893.1643 -17.691 316985.174 -17.937 314056.2105 -18.186 311119.0878 -18.439 308162.915 -18.695 305200.2781 -18.955 302220.5019 -19.218 299235.9407 -19.485 296236.1351 -19.756 293222.1388 -20.031 290195.0016 -20.309 287166.6043 -20.591 284126.9203 -20.878 281066.3752 -21.168 278007.3232 -21.462 274940.0616 -21.76 271865.6018 -22.063 268774.8045 -22.369 265689.0662 -22.68 262589.2048 -22.995 259486.3395 -23.315 256371.7624 -23.639 253256.3389 -23.967 250141.0139 -24.3 247017.3993 -24.638 243886.7699 -24.981 240750.3883 -25.328 237618.4709 -25.68 234483.0503 -26.037 231345.3479 -26.398 228215.1822 -26.765 225076.4019 -27.137 221938.912 -27.514 218803.87 -27.897 215664.2775 -28.284 212537.651 -28.678 209401.0326 -29.076 206279.5652 -29.48 203158.6251 -29.89 200039.6067 -30.305 196931.313 -30.726 193827.4268 -31.153 190729.2729 -31.586 187638.1512 -32.025 184555.336 -32.47 181482.0752 -32.922 178412.857 -33.379 175362.4549 -33.843 172318.6827 -34.313 169289.4074 -34.79 166269.4591 -35.274 163260.2526 -35.764 160269.2163 -36.261 157291.4236 -36.765 154328.1868 -37.276 151380.7822 -37.794 148450.4495 -38.319 145538.3912 -38.852 142640.3891 -39.392 139763.1694 -39.939 136907.8173 -40.494 134070.3198 -41.057 131252.0019 -41.628 128454.1439 -42.206 125682.7235 -42.793 122929.3402 -43.387 120204.52 -43.99 117500.1851 -44.602 114817.6903 -45.221 112166.8033 -45.85 109535.7773 -46.487 106934.1788 -47.133 104358.9225 -47.788 101811.1019 -48.452 99291.75637 -49.126 96798.21828 -49.808 94338.81708 -50.501 91903.74649 -51.202 89504.50555 -51.914 87131.72385 -52.635 84793.04252 -53.367 82482.88787 -54.109 80205.40063 -54.861 77961.37359 -55.623 75751.54018 -56.396 73573.79862 -57.18 71429.00788 -57.974 69320.57748 -58.78 67243.92644 -59.597 65202.41528 -60.425 63196.64596 -61.265 61224.84776 -62.116 59289.95559 -62.98 57388.05239 -63.855 55524.10591 -64.742 53696.379 -65.642 51903.34842 -66.554 50147.47733 -67.479 48427.24411 -68.417 46743.08469 -69.368 45095.36778 -70.332 43484.39651 -71.309 41910.41015 -72.3 40372.06244 -73.305 38869.64041 -74.324 37403.36462 -75.357 35973.39118 -76.404 34579.81386 -77.466 33221.41259 -78.543 31898.31274 -79.634 30611.73111 -80.741 29359.31053 -81.863 28142.19629 -83.001 26959.25632 -84.154 25811.42613 -85.324 24696.61831 -86.509 23616.58791 -87.712 22568.45458 -88.931 21553.82115 -90.166 20572.37883 -91.42 19621.55267 -92.69 18703.37632 -93.978 17816.05979 -95.284 16959.31545 -96.608 16132.80865 -97.951 15335.58213 -99.312 14567.85323 -100.69 13829.68359 -102.09 13118.0229 -103.51 12433.59611 -104.95 11775.98809 -106.41 11144.74638 -107.89 10539.3846 -109.39 9959.385575 -110.91 9404.204625 -112.45 8873.272622 -114.01 8365.999036 -115.59 7881.774874 -117.2 7460.178341 -118.83 7228.348495 -120.48 7003.450446 -122.16 6784.025887 -123.85 6572.534707 -125.57 6366.321894 -127.32 6165.337807 -129.09 5970.626904 -130.88 5782.037356 -132.7 5598.407951 -134.55 5419.675918 -136.42 5246.698998 -138.31 5079.327274 -140.23 4916.566863 -142.18 4758.344584 -144.16 4604.587623 -146.16 4455.961339 -148.19 4311.610415 -150.25 4171.458506 -152.34 4035.426113 -154.46 3903.431083 -156.6 3775.986832 -158.78 3651.820836 -160.99 3531.446175 -163.23 3414.777592 -165.49 3302.230056 -167.79 3192.727386 -170.13 3086.228557 -172.49 2983.558865 -174.89 2883.766668 -177.32 2787.205354 -179.78 2693.793547 -182.28 2603.087694 -184.81 2515.384491 -187.38 2430.27369 -189.99 2347.707653 -192.63 2267.938454 -195.3 2190.88675 -198.02 2115.924779 -200.77 2043.552345 -203.56 1973.441421 -206.39 1905.544666 -209.26 1839.811647 -212.16 1776.407643 -215.11 1714.843506 -218.1 1655.287556 -221.13 1597.689558 -224.21 1541.818231 -227.32 1487.986494 -230.48 1435.798478 -233.69 1385.220874 -236.93 1336.520082 -240.23 1289.204045 -243.56 1243.662363 -246.95 1199.443746 -250.38 1156.775461 -253.86 1115.493157 -257.39 1075.562841 -260.97 1036.951034 -264.59 999.7271021 -268.27 963.6521452 -272 928.795793 -275.78 895.1254624 -279.61 862.6086051 -283.5 831.1323546 -287.44 800.7502622 -291.43 771.4307263 -295.48 743.0732417 -299.59 715.6543936 -303.75 689.2140487 -307.97 663.6622519 -312.25 638.975792 -316.59 615.1320815 -320.99 592.1088782 -325.45 569.8835168 -329.98 548.3864809 -334.56 527.6908998 -339.21 507.6849193 -343.92 488.3927786 -348.7 469.7547047 -353.55 451.7539347 -358.46 434.409637 -363.45 417.6347324 -368.5 401.4804357 -373.62 385.8975528 -378.81 370.8705312 -384.07 356.3844696 -389.41 342.3973977 -394.82 328.9223875 -400.31 315.9216842 -405.87 303.4054049 -411.51 291.3384686 -417.23 279.7094854 -423.03 268.50697 -428.91 257.7198867 -434.87 247.3373708 -440.92 237.3321989 -447.04 227.7269406 -453.26 218.4650157 -459.56 209.5676564 -465.94 201.0250067 -472.42 192.8020596 -478.98 184.9160506 -485.64 177.334933 -492.39 170.0628821 -499.23 163.092262 -506.17 156.4058499 -513.2 150.0063124 -520.34 143.8691379 -527.57 138.0052664 -534.9 132.3999236 -542.33 127.0470434 -549.87 121.9337777 -557.51 117.0611991 -565.26 112.4173259 -573.11 108.0026277 -581.08 103.8006211 -589.16 99.81163963 -597.34 96.03498234 -605.64 92.43547515 -614.06 88.97808829 -622.6 85.64880349 -631.25 82.44723778 -640.02 79.3654922 -648.91 76.39957279 -657.93 73.54252946 -667.08 70.79095349 -676.35 68.14424476 -685.75 65.59611129 -695.28 63.14345719 -704.94 60.78310462 -714.74 58.50968573 -724.67 56.32263891 -734.74 54.216913 -744.95 52.18994497 -755.3 50.23911874 -765.8 48.36012541 -776.44 46.55239596 -787.23 44.81191579 -798.17 43.13650084 -809.27 41.52256768 -820.51 39.97095146 -831.92 38.47553858 -843.48 37.03710191 -855.2 35.65252951 -867.09 34.31893295 -879.14 33.03575641 -891.35 31.80130535 -903.74 30.612018 -916.3 29.4674074 -929.03 28.36598794 -941.95 27.30466432 -955.04 26.28376528 -968.31 25.30118581 -981.77 24.35496439 -995.41 23.44458542 -1009.2 22.57074682 -1023.3 21.72245955 -1037.5 20.91136838 -1051.9 20.13047146 -1066.5 19.37878131 -1081.3 18.65532875 -1096.4 17.95454302 -1111.6 17.28480667 -1127.1 16.63640061 -1142.7 16.01682115 -1158.6 15.41727361 -1174.7 14.84089692 -1191 14.286881 -1207.6 13.75119866 -1224.4 13.23648737 -1241.4 12.7420038 -1258.6 12.26700831 -1276.1 11.80816335 -1293.9 11.36506396 -1311.8 10.94202484 -1330.1 10.53140215 -1348.6 10.13727998 -1367.3 9.759048479 -1386.3 9.39419581 -1405.6 9.042329465 -1425.1 8.704801282 -1444.9 8.379416539 -1465 8.065809075 -1485.3 7.765102299 -1506 7.473980389 -1526.9 7.19491389 -1548.1 6.926161446 -1569.7 6.666189701 -1591.5 6.417083294 -1613.6 6.177323253 -1636 5.946600954 -1658.7 5.724616395 -1681.8 5.510146888 -1705.2 5.303880933 -1728.9 5.105538212 -1752.9 4.914844167 -1777.3 4.730779485 -1802 4.553877781 -1827 4.383882915 -1852.4 4.21990427 -1878.1 4.062382268 -1904.2 3.910501169 -1930.7 3.76409275 -1957.5 3.62351657 -1984.7 3.488058335 -2012.3 3.357559075 -2040.3 3.231866672 -2068.6 3.111254629 -2097.4 2.994721077 -2126.5 2.882931066 -2156.1 2.77497312 -2186.1 2.67109119 -2216.4 2.571477607 -2247.2 2.475339865 -2278.5 2.382580676 -2310.1 2.293672422 -2342.2 2.20792851 -2374.8 2.125253705 -2407.8 2.04579621 -2441.3 1.969213972 -2475.2 1.895636354 -2509.6 1.824750103 -2544.5 1.756472947 -2579.8 1.690906278 -2615.7 1.627598065 -2652 1.566822772 -2688.9 1.508168062 -2726.2 1.451876465 -2764.1 1.397572847 -2802.5 1.345336231 -2841.5 1.29496697 -2881 1.246532427 -2921 1.199965692 -2961.6 1.155091437 -3002.8 1.111857663 -3044.5 1.070312647 -3086.8 1.030301363 -3129.7 0.991775049 -3173.2 0.954686163 -3217.3 0.918987802 -3262 0.88463397 -3307.4 0.851506886 -3353.3 0.819709119 -3399.9 0.789059332 -3447.2 0.759523056 -3495.1 0.73112534 -3543.6 0.703826412 -3592.9 0.677480776 -3642.8 0.652163442 -3693.5 0.627741554 -3744.8 0.604280495 -3796.8 0.581702137 -3849.6 0.559935961 -3903.1 0.538996808 -3957.3 0.518856555 -4012.3 0.499452962 -4068.1 0.480763399 -4124.6 0.462796515 -4181.9 0.445496504 -4240.1 0.428813898 -4299 0.412785116 -4358.7 0.397360573 -4419.3 0.38249553 -4480.7 0.36819576 -4543 0.35442004 -4606.1 0.341173316 -4670.1 0.328417275 -4735.1 0.316117259 -4800.9 0.304295688 -4867.6 0.292918544 -4935.2 0.281971161 -5003.8 0.271423806 -5073.3 0.26127859 -5143.9 0.251494111 -5215.3 0.242099366 -5287.8 0.233042449 -5361.3 0.224325002 -5435.8 0.215935874 -5511.4 0.207853504 -5588 0.200078525 -5665.6 0.192600483 -5744.3 0.185399998 -5824.2 0.178459527 -5905.1 0.171787685 -5987.2 0.165359357 -6070.4 0.159174453 -6154.8 0.153217754 -6240.3 0.14748864 -6327 0.141972953 -6414.9 0.136663847 -6504.1 0.131548767 -6594.5 0.126627072 -6686.1 0.121892274 -6779 0.117333211 -6873.3 0.112939548 -6968.8 0.108714996 -7065.6 0.104649595 -7163.8 0.100733996 -7263.4 0.09696341 -7364.3 0.093336811 -7466.7 0.08984249 -7570.4 0.086482887 -7675.6 0.083247069 -7782.3 0.080131078 -7890.5 0.077131139 -8000.1 0.074246093 -8111.3 0.071467007 -8224 0.068792985 -8338.3 0.066218184 -8454.2 0.063739304 -8571.7 0.061353306 -8690.8 0.059057207 -8811.6 0.056846146 -8934.1 0.054717388 -9058.2 0.052669903 -9184.1 0.050697784 -9311.7 0.048800147 -9441.2 0.046971671 -9572.4 0.04521289 -9705.4 0.043520172 -9840.3 0.041890126 -9977 0.040321879 -10116 0.038807906 -10256 0.037360186 -10399 0.035956246 -10543 0.034614 -10690 0.033313111 -10838 0.032069622 -10989 0.030865094 -11142 0.029706347 -11297 0.028591827 -11454 0.027520036 -11613 0.026489507 -11774 0.025498795 -11938 0.024540675 -12104 0.02361992 -12272 0.022735195 -12442 0.02188523 -12615 0.021064031 -12791 0.020270856 -12968 0.019513518 -13149 0.018778238 -13331 0.018076305 -13517 0.017395228 -13704 0.016745124 -13895 0.016114706 -14088 0.015509907 -14284 0.014926777 -14482 0.014367498 -14684 0.01382579 -14888 0.013306386 -15095 0.012805994 -15304 0.012326324 -15517 0.011862207 -15733 0.011415362 -15951 0.010987187 -16173 0.010573211 -16398 0.010174867 -16626 0.00979163 -16857 0.009422991 -17091 0.009068452 -17329 0.008726093 -17569 0.008398321 -17814 0.008080646 -18061 0.00777658 -18312 0.007483219 -18567 0.007200258 -18825 0.006928449 -19086 0.00666739 -19351 0.006415738 -19620 0.00617321 -19893 0.005939526 -20170 0.005714411 -20450 0.005498368 -20734 0.005290322 -21022 0.005090018 -21314 0.004897205 -21611 0.004711012 -21911 0.004532454 -22215 0.004360666 -22524 0.004194884 -22837 0.00403545 -23154 0.003882148 -23476 0.003734306 -23803 0.003591762 -24133 0.003455188 -24469 0.003323165 -24809 0.003196328 -25154 0.003074137 -25503 0.002956781 -25858 0.002843447 -26217 0.002734634 -26581 0.002629885 -26951 0.002528792 -27325 0.002431775 -27705 0.002338187 -28090 0.002248163 -28480 0.002161586 -28876 0.002078126 -29277 0.001997885 -29684 0.001920563 -30097 0.001846071 -30515 0.00177449 -30939 0.001705554 -31369 0.001639179 -31805 0.001575283 -32247 0.001513784 -32695 0.001454603 -33150 0.001397538 -33610 0.001342764 -34077 0.00128997 -34551 0.001239094 -35031 0.001190181 -35518 0.001143065 -36012 0.001097689 -36512 0.001054085 -37020 0.001012024 -37534 0.000971619 -38056 0.000932661 -38585 0.000895178 -39121 0.000859119 -39664 0.000824438 -40216 0.000790966 -40775 0.000758783 -41341 0.000727846 -41916 0.000698007 -42498 0.000669332 -43089 0.000641686 -43688 0.000615084 -44295 0.00058949 -44910 0.000564872 -45535 0.000541118 -46167 0.000518312 -46809 0.000496318 -47460 0.000475144 -48119 0.000454794 -48788 0.000435179 -49466 0.000416306 -50153 0.000398151 -50850 0.000380663 -51557 0.000363821 -52274 0.000347606 -53000 0.000332017 -53737 0.000316992 -54483 0.000302553 -55241 0.000288624 -56008 0.000275243 -56787 0.000262339 -57576 0.000249932 -58376 0.000237987 -59187 0.000226491 -60010 0.000215415 -60844 0.000204758 -61689 0.000194507 -62547 0.000184625 -63416 0.000175123 -64297 0.000165977 -65191 0.000157165 -66097 0.000148687 -67015 0.00014053 -67947 0.000132669 -68891 0.000125109 -69848 0.000117832 -70819 0.000110822 -71803 0.000104078 -72801 9.75845E-05 -73813 9.13325E-05 -74839 8.53147E-05 -75879 7.95233E-05 -76933 7.39508E-05 -78002 6.8585E-05 -79086 6.3419E-05 -80186 5.84421E-05 -81300 5.36567E-05 -82430 4.90481E-05 -83575 4.46146E-05 -84737 4.03428E-05 -85914 3.62346E-05 -87108 3.2278E-05 -88319 2.84681E-05 -89546 2.48031E-05 -90791 2.12725E-05 -92053 1.78747E-05 -93332 1.46052E-05 -94629 1.14575E-05 -95944 8.42761E-06 -97277 5.51157E-06 -98629 2.70357E-06 -100000 0 --1 -1 --2 -2 \ No newline at end of file diff --git a/examples/advanced/radioprotection/speZ=2.txt b/examples/advanced/radioprotection/speZ=2.txt deleted file mode 100644 index 036fe4a067..0000000000 --- a/examples/advanced/radioprotection/speZ=2.txt +++ /dev/null @@ -1,844 +0,0 @@ -Data from: EADS UK. 20.02.2004 - -SPE envelope fluence of worst week Oct 1989 CREME96 (online) and Aug 1972 (code from D Henderyickx) models -Energy. [MeV/nuc] -Integral Flux. [particles/(m2-s-sr-MeV/nuc)] - -Z=2 - -Energy Flux -1.0023 73978.04958 -1.0162 73312.97597 -1.0304 72644.52627 -1.0447 71982.29239 -1.0592 71321.73849 -1.0739 70663.03059 -1.0888 70006.34445 -1.104 69347.50091 -1.1193 68695.30307 -1.1349 68041.36837 -1.1506 67394.235 -1.1666 66745.8079 -1.1828 66100.33603 -1.1993 65454.02391 -1.2159 64814.8387 -1.2328 64175.20666 -1.25 63535.38079 -1.2674 62899.24465 -1.285 62266.89147 -1.3028 61638.44547 -1.3209 61010.53901 -1.3393 60383.37104 -1.3579 59760.51929 -1.3768 59138.77915 -1.3959 58521.57853 -1.4153 57905.81775 -1.435 57291.67935 -1.4549 56682.42063 -1.4751 56075.11406 -1.4956 55469.92206 -1.5164 54866.99968 -1.5375 54266.51621 -1.5589 53668.63449 -1.5805 53076.25338 -1.6025 52484.01519 -1.6248 51894.80523 -1.6473 51311.35297 -1.6702 50728.60204 -1.6934 50149.26898 -1.717 49571.02052 -1.7408 48998.89198 -1.765 48428.17946 -1.7896 47859.07083 -1.8144 47296.30944 -1.8397 46733.2156 -1.8652 46176.61395 -1.8911 45622.23695 -1.9174 45070.20697 -1.9441 44520.69685 -1.9711 43975.90393 -1.9985 43433.90718 -2.0263 42894.85262 -2.0544 42360.77952 -2.083 41828.0179 -2.1119 41300.4208 -2.1413 40774.45963 -2.171 40253.82839 -2.2012 39735.13254 -2.2318 39220.2357 -2.2628 38709.23857 -2.2942 38202.23818 -2.3261 37697.74329 -2.3585 37195.90587 -2.3912 36699.90999 -2.4245 36205.31268 -2.4582 35715.21988 -2.4923 35229.701 -2.527 34746.03145 -2.5621 34267.11826 -2.5977 33791.68281 -2.6338 33319.83283 -2.6704 32851.67224 -2.7075 32387.30137 -2.7451 31926.80946 -2.7833 31469.08796 -2.822 31015.4437 -2.8612 30565.95171 -2.9009 30120.68808 -2.9412 29678.62935 -2.9821 29239.88657 -3.0236 28804.56265 -3.0656 28373.79099 -3.1082 27946.61883 -3.1514 27523.13464 -3.1952 27103.42811 -3.2396 26687.58154 -3.2846 26275.67446 -3.3303 25866.88467 -3.3765 25463.06632 -3.4235 25061.67956 -3.471 24665.36667 -3.5193 24271.69688 -3.5682 23882.3846 -3.6178 23496.70132 -3.6681 23114.72601 -3.719 22737.27167 -3.7707 22362.9244 -3.8231 21992.49298 -3.8762 21626.03211 -3.9301 21262.92098 -3.9847 20903.90636 -4.0401 20548.39079 -4.0963 20196.44839 -4.1532 19848.75667 -4.2109 19504.74856 -4.2694 19164.48758 -4.3288 18827.46271 -4.3889 18494.85796 -4.4499 18165.61453 -4.5118 17839.80064 -4.5745 17517.98999 -4.638 17200.21617 -4.7025 16885.53696 -4.7678 16574.97982 -4.8341 16267.6446 -4.9013 15964.04411 -4.9694 15664.21533 -5.0385 15367.7664 -5.1085 15075.16783 -5.1795 14786.0433 -5.2515 14500.43098 -5.3244 14218.76304 -5.3984 13940.30575 -5.4735 13665.10357 -5.5495 13393.92247 -5.6266 13126.07517 -5.7048 12861.6002 -5.7841 12600.53711 -5.8645 12342.91867 -5.946 12088.77087 -6.0286 11838.11295 -6.1124 11590.67925 -6.1974 11346.50933 -6.2835 11105.90668 -6.3708 10868.61023 -6.4594 10654.43396 -6.5491 10618.43067 -6.6401 10582.02992 -6.7324 10545.23662 -6.826 10508.05575 -6.9209 10470.49232 -7.017 10432.59073 -7.1146 10394.23797 -7.2134 10355.55727 -7.3137 10316.43654 -7.4153 10276.95944 -7.5184 10237.05392 -7.6229 10196.76466 -7.7288 10156.09739 -7.8362 10115.01975 -7.9451 10073.53803 -8.0555 10031.65859 -8.1675 9989.350104 -8.281 9946.657022 -8.3961 9903.548436 -8.5128 9860.031341 -8.6311 9816.112776 -8.751 9771.799819 -8.8726 9727.062884 -8.9959 9681.909639 -9.1209 9636.347795 -9.2477 9590.348918 -9.3762 9543.957342 -9.5065 9497.145066 -9.6386 9449.920496 -9.7726 9402.256603 -9.9084 9354.197718 -10.046 9305.752371 -10.186 9256.71954 -10.327 9207.597605 -10.471 9157.699562 -10.616 9107.728233 -10.764 9057.004207 -10.913 9006.222815 -11.065 8954.71235 -11.219 8902.824559 -11.375 8850.569437 -11.533 8797.957004 -11.693 8744.997303 -11.856 8691.372411 -12.02 8637.75039 -12.187 8583.487424 -12.357 8528.599786 -12.529 8473.423602 -12.703 8417.96904 -12.879 8362.246266 -13.058 8305.951999 -13.24 8249.102789 -13.424 8192.024388 -13.61 8134.726968 -13.799 8076.915883 -13.991 8018.607825 -14.186 7959.819537 -14.383 7900.86594 -14.583 7841.461214 -14.785 7781.915801 -14.991 7721.656935 -15.199 7661.286448 -15.41 7600.527472 -15.625 7539.112289 -15.842 7477.628994 -16.062 7415.807537 -16.285 7353.664653 -16.511 7291.217045 -16.741 7228.208613 -16.973 7165.203889 -17.209 7101.676314 -17.449 7037.649615 -17.691 6973.673828 -17.937 6909.236631 -18.186 6844.619931 -18.439 6779.58413 -18.695 6714.406118 -18.955 6648.851043 -19.218 6583.190695 -19.485 6517.194971 -19.756 6450.887054 -20.031 6384.290035 -20.309 6317.665295 -20.591 6250.792247 -20.878 6183.460254 -21.168 6116.161111 -21.462 6048.681356 -21.76 5981.04324 -22.063 5913.045699 -22.369 5845.159457 -22.68 5776.962506 -22.995 5708.699469 -23.315 5640.178773 -23.639 5571.639455 -23.967 5503.102305 -24.3 5434.382785 -24.638 5365.508937 -24.981 5296.508542 -25.328 5227.606359 -25.68 5158.627106 -26.037 5089.597655 -26.398 5020.734008 -26.765 4951.680843 -27.137 4882.656064 -27.514 4813.68514 -27.897 4744.614104 -28.284 4675.828323 -28.678 4606.822716 -29.076 4538.150435 -29.48 4469.489753 -29.89 4400.871347 -30.305 4332.488886 -30.726 4264.20339 -31.153 4196.044003 -31.586 4128.039326 -32.025 4060.217392 -32.47 3992.605655 -32.922 3925.082855 -33.379 3857.974009 -33.843 3791.01102 -34.313 3724.366962 -34.79 3657.928101 -35.274 3591.725557 -35.764 3525.922758 -36.261 3460.411319 -36.765 3395.22011 -37.276 3330.377209 -37.794 3265.90989 -38.319 3201.844606 -38.852 3138.088559 -39.392 3074.789726 -39.939 3011.971982 -40.494 2949.547036 -41.057 2887.544042 -41.628 2825.991167 -42.206 2765.019916 -42.793 2704.445483 -43.387 2644.499441 -43.99 2585.004072 -44.602 2525.989188 -45.221 2467.669673 -45.85 2409.787101 -46.487 2352.551933 -47.133 2295.896294 -47.788 2239.844241 -48.452 2184.41864 -49.126 2129.560802 -49.808 2075.453976 -50.501 2021.882423 -51.202 1969.099122 -51.914 1916.897925 -52.635 1865.446935 -53.367 1814.623533 -54.109 1764.518814 -54.861 1715.150219 -55.623 1666.533884 -56.396 1618.62357 -57.18 1571.438173 -57.974 1525.052705 -58.78 1479.366382 -59.597 1434.453136 -60.425 1390.326211 -61.265 1346.946651 -62.116 1304.379023 -62.98 1262.537153 -63.855 1221.53033 -64.742 1181.320338 -65.642 1141.873665 -66.554 1103.244501 -67.479 1065.39937 -68.417 1028.347863 -69.368 992.0980913 -70.332 956.6567233 -71.309 922.0290233 -72.3 888.1853736 -73.305 855.1320889 -74.324 822.8740216 -75.357 791.414606 -76.404 760.7559049 -77.466 730.8710771 -78.543 701.7628803 -79.634 673.4580843 -80.741 645.9048316 -81.863 619.1283184 -83.001 593.1036391 -84.154 567.8513749 -85.324 543.3256029 -86.509 519.564934 -87.712 496.5060008 -88.931 474.1840652 -90.166 452.5923343 -91.42 431.6741587 -92.69 411.4742791 -93.978 391.9533154 -95.284 373.10494 -96.608 354.9217904 -97.951 337.3828069 -99.312 320.492771 -100.69 304.2530391 -102.09 288.5965038 -103.51 273.5391145 -104.95 259.0717379 -106.41 245.1844205 -107.89 231.8664611 -109.39 219.1064826 -110.91 206.8925018 -112.45 195.2119977 -114.01 184.0519788 -115.59 173.3990472 -117.2 163.1778732 -118.83 153.4433462 -120.48 144.1806847 -122.16 135.3238834 -123.85 126.9632223 -125.57 118.9843291 -127.32 111.3806997 -129.09 104.1843168 -130.88 97.37937548 -132.7 90.91592626 -134.55 84.78544352 -136.42 79.008689 -138.31 73.56998125 -140.23 68.42814721 -142.18 63.57366697 -144.16 58.99675026 -146.16 54.708039 -148.19 50.6736925 -150.25 46.88374568 -152.34 43.32817502 -154.46 39.99694662 -156.6 36.89398021 -158.78 33.98041227 -160.99 31.26152232 -163.23 28.72763986 -165.49 26.37922324 -167.79 24.18624901 -170.13 22.14213517 -172.49 20.25548778 -174.89 18.50164636 -177.32 16.88054216 -179.78 15.38405247 -182.28 13.99908256 -184.81 12.7243833 -187.38 11.54830838 -189.99 10.46512604 -192.63 9.472811597 -195.3 8.564887881 -198.02 7.729386798 -200.77 6.967496284 -203.56 6.271232637 -206.39 5.636033147 -209.26 5.057531854 -212.16 4.533274954 -215.11 4.055702322 -218.1 3.622968375 -221.13 3.231524671 -224.21 2.876941196 -227.32 2.558366975 -230.48 2.270781105 -233.69 2.011723457 -236.93 1.780203431 -240.23 1.571765238 -243.56 1.386162262 -246.95 1.2197116 -250.38 1.071629594 -253.86 0.93975105 -257.39 0.822548504 -260.97 0.71860592 -264.59 0.626851292 -268.27 0.582864058 -272 0.561002582 -275.78 0.539970801 -279.61 0.519741009 -283.5 0.500235494 -287.44 0.481480447 -291.43 0.463450071 -295.48 0.446076237 -299.59 0.429338747 -303.75 0.413256119 -307.97 0.397768199 -312.25 0.38285631 -316.59 0.368501782 -320.99 0.354686053 -325.45 0.341391681 -329.98 0.32857327 -334.56 0.31627028 -339.21 0.304412302 -343.92 0.293010137 -348.7 0.282024971 -353.55 0.271443605 -358.46 0.261274259 -363.45 0.251463274 -368.5 0.242037506 -373.62 0.232965381 -378.81 0.224235311 -384.07 0.215835944 -389.41 0.207741019 -394.82 0.199955618 -400.31 0.192455512 -405.87 0.185244751 -411.51 0.17830095 -417.23 0.171615597 -423.03 0.165180336 -428.91 0.158986958 -434.87 0.153027447 -440.92 0.147284544 -447.04 0.141769632 -453.26 0.136448658 -459.56 0.131332399 -465.94 0.126413772 -472.42 0.121671264 -478.98 0.117113546 -485.64 0.112720818 -492.39 0.108494375 -499.23 0.104428648 -506.17 0.100512536 -513.2 0.096746722 -520.34 0.093115878 -527.57 0.089625585 -534.9 0.086266352 -542.33 0.083033845 -549.87 0.079919685 -557.51 0.076924162 -565.26 0.074039555 -573.11 0.071265861 -581.08 0.068592475 -589.16 0.066019567 -597.34 0.063546839 -605.64 0.061164977 -614.06 0.058871176 -622.6 0.056662612 -631.25 0.054538922 -640.02 0.0524949 -648.91 0.050527964 -657.93 0.048633375 -667.08 0.04680888 -676.35 0.045054138 -685.75 0.043364966 -695.28 0.04173923 -704.94 0.040174835 -714.74 0.038668211 -724.67 0.037218972 -734.74 0.03582378 -744.95 0.034480893 -755.3 0.033188588 -765.8 0.031944004 -776.44 0.030746742 -787.23 0.029594128 -798.17 0.028484718 -809.27 0.027416132 -820.51 0.026388918 -831.92 0.025399025 -843.48 0.024446939 -855.2 0.023530589 -867.09 0.022648068 -879.14 0.021799 -891.35 0.020982259 -903.74 0.020195481 -916.3 0.019438335 -929.03 0.018709837 -941.95 0.018007939 -955.04 0.017332849 -968.31 0.016683164 -981.77 0.016057578 -995.41 0.015455752 -1009.2 0.014878143 -1023.3 0.014317487 -1037.5 0.013781474 -1051.9 0.013265454 -1066.5 0.012768784 -1081.3 0.012290839 -1096.4 0.011827917 -1111.6 0.01138554 -1127.1 0.010957301 -1142.7 0.010548146 -1158.6 0.010152245 -1174.7 0.00977168 -1191 0.009405918 -1207.6 0.009052307 -1224.4 0.008712578 -1241.4 0.008386223 -1258.6 0.008072765 -1276.1 0.007770002 -1293.9 0.007477656 -1311.8 0.007198569 -1330.1 0.006927706 -1348.6 0.00666776 -1367.3 0.006418321 -1386.3 0.006177725 -1405.6 0.005945717 -1425.1 0.005723185 -1444.9 0.005508682 -1465 0.005301966 -1485.3 0.005103774 -1506 0.004911921 -1526.9 0.004728031 -1548.1 0.004550954 -1569.7 0.00437968 -1591.5 0.00421558 -1613.6 0.004057653 -1636 0.003905697 -1658.7 0.00375951 -1681.8 0.003618287 -1705.2 0.003482481 -1728.9 0.003351904 -1752.9 0.003226375 -1777.3 0.003105222 -1802 0.002988797 -1827 0.002876931 -1852.4 0.002769033 -1878.1 0.002665394 -1904.2 0.002565477 -1930.7 0.002469171 -1957.5 0.002376711 -1984.7 0.002287627 -2012.3 0.002201815 -2040.3 0.002119169 -2068.6 0.002039871 -2097.4 0.001963264 -2126.5 0.001889782 -2156.1 0.001818824 -2186.1 0.001750551 -2216.4 0.001685092 -2247.2 0.001621926 -2278.5 0.001560987 -2310.1 0.001502582 -2342.2 0.00144626 -2374.8 0.00139196 -2407.8 0.001339779 -2441.3 0.001289493 -2475.2 0.001241184 -2509.6 0.001194648 -2544.5 0.001149829 -2579.8 0.001106793 -2615.7 0.001065244 -2652 0.001025362 -2688.9 0.000986875 -2726.2 0.000949942 -2764.1 0.000914318 -2802.5 0.000880053 -2841.5 0.000847016 -2881 0.000815251 -2921 0.000784715 -2961.6 0.000755292 -3002.8 0.000726947 -3044.5 0.000699711 -3086.8 0.000673485 -3129.7 0.000648234 -3173.2 0.000623928 -3217.3 0.000600536 -3262 0.000578026 -3307.4 0.000556323 -3353.3 0.000535493 -3399.9 0.000515418 -3447.2 0.000496073 -3495.1 0.000477476 -3543.6 0.000459601 -3592.9 0.000442351 -3642.8 0.000425776 -3693.5 0.000409789 -3744.8 0.000394433 -3796.8 0.000379656 -3849.6 0.000365413 -3903.1 0.000351712 -3957.3 0.000338534 -4012.3 0.000325841 -4068.1 0.000313615 -4124.6 0.000301864 -4181.9 0.00029055 -4240.1 0.000279641 -4299 0.00026916 -4358.7 0.000259075 -4419.3 0.000249357 -4480.7 0.00024001 -4543 0.000231006 -4606.1 0.000222349 -4670.1 0.000214014 -4735.1 0.000205977 -4800.9 0.000198254 -4867.6 0.000190822 -4935.2 0.000183671 -5003.8 0.000176783 -5073.3 0.000170157 -5143.9 0.000163768 -5215.3 0.000157634 -5287.8 0.000151721 -5361.3 0.000146031 -5435.8 0.000140555 -5511.4 0.00013528 -5588 0.000130207 -5665.6 0.000125327 -5744.3 0.000120629 -5824.2 0.000116102 -5905.1 0.000111749 -5987.2 0.000107557 -6070.4 0.000103523 -6154.8 9.96387E-05 -6240.3 9.59032E-05 -6327 9.23072E-05 -6414.9 8.88461E-05 -6504.1 8.55119E-05 -6594.5 8.23041E-05 -6686.1 7.92184E-05 -6779 7.62475E-05 -6873.3 7.33847E-05 -6968.8 7.06325E-05 -7065.6 6.79842E-05 -7163.8 6.54337E-05 -7263.4 6.2978E-05 -7364.3 6.06163E-05 -7466.7 5.83411E-05 -7570.4 5.61536E-05 -7675.6 5.40469E-05 -7782.3 5.20186E-05 -7890.5 5.00659E-05 -8000.1 4.81883E-05 -8111.3 4.63798E-05 -8224 4.46398E-05 -8338.3 4.29645E-05 -8454.2 4.13519E-05 -8571.7 3.97999E-05 -8690.8 3.83065E-05 -8811.6 3.68685E-05 -8934.1 3.54842E-05 -9058.2 3.41529E-05 -9184.1 3.28708E-05 -9311.7 3.16372E-05 -9441.2 3.04487E-05 -9572.4 2.93056E-05 -9705.4 2.82055E-05 -9840.3 2.71463E-05 -9977 2.61273E-05 -10116 2.51438E-05 -10256 2.42033E-05 -10399 2.32914E-05 -10543 2.24196E-05 -10690 2.15748E-05 -10838 2.07674E-05 -10989 1.99853E-05 -11142 1.9233E-05 -11297 1.85096E-05 -11454 1.78139E-05 -11613 1.71451E-05 -11774 1.65021E-05 -11938 1.58805E-05 -12104 1.52831E-05 -12272 1.47091E-05 -12442 1.41578E-05 -12615 1.36252E-05 -12791 1.31107E-05 -12968 1.26196E-05 -13149 1.21429E-05 -13331 1.16878E-05 -13517 1.12463E-05 -13704 1.08249E-05 -13895 1.04163E-05 -14088 1.00243E-05 -14284 9.64645E-06 -14482 9.28407E-06 -14684 8.9331E-06 -14888 8.59663E-06 -15095 8.27252E-06 -15304 7.96185E-06 -15517 7.66129E-06 -15733 7.37194E-06 -15951 7.09472E-06 -16173 6.82672E-06 -16398 6.56886E-06 -16626 6.3208E-06 -16857 6.08222E-06 -17091 5.8528E-06 -17329 5.63127E-06 -17569 5.41921E-06 -17814 5.2137E-06 -18061 5.01701E-06 -18312 4.82727E-06 -18567 4.64427E-06 -18825 4.4685E-06 -19086 4.2997E-06 -19351 4.13701E-06 -19620 3.98022E-06 -19893 3.82918E-06 -20170 3.68368E-06 -20450 3.54406E-06 -20734 3.40962E-06 -21022 3.2802E-06 -21314 3.15563E-06 -21611 3.03536E-06 -21911 2.92002E-06 -22215 2.80907E-06 -22524 2.70201E-06 -22837 2.59906E-06 -23154 2.50008E-06 -23476 2.40464E-06 -23803 2.31262E-06 -24133 2.22447E-06 -24469 2.13927E-06 -24809 2.05741E-06 -25154 1.97857E-06 -25503 1.90286E-06 -25858 1.82974E-06 -26217 1.75955E-06 -26581 1.69199E-06 -26951 1.62679E-06 -27325 1.56423E-06 -27705 1.50389E-06 -28090 1.44585E-06 -28480 1.39004E-06 -28876 1.33624E-06 -29277 1.28452E-06 -29684 1.23469E-06 -30097 1.18669E-06 -30515 1.14057E-06 -30939 1.09616E-06 -31369 1.0534E-06 -31805 1.01225E-06 -32247 9.72637E-07 -32695 9.34526E-07 -33150 8.97781E-07 -33610 8.62515E-07 -34077 8.28527E-07 -34551 7.95777E-07 -35031 7.64294E-07 -35518 7.3397E-07 -36012 7.0477E-07 -36512 6.76713E-07 -37020 6.49652E-07 -37534 6.23659E-07 -38056 5.98599E-07 -38585 5.74491E-07 -39121 5.51301E-07 -39664 5.28999E-07 -40216 5.07477E-07 -40775 4.86787E-07 -41341 4.66899E-07 -41916 4.47719E-07 -42498 4.29289E-07 -43089 4.11523E-07 -43688 3.94428E-07 -44295 3.77984E-07 -44910 3.62168E-07 -45535 3.46908E-07 -46167 3.3226E-07 -46809 3.18134E-07 -47460 3.04536E-07 -48119 2.91469E-07 -48788 2.78876E-07 -49466 2.6676E-07 -50153 2.55105E-07 -50850 2.4388E-07 -51557 2.33072E-07 -52274 2.22666E-07 -53000 2.12663E-07 -53737 2.03023E-07 -54483 1.9376E-07 -55241 1.84825E-07 -56008 1.76243E-07 -56787 1.67968E-07 -57576 1.60011E-07 -58376 1.52352E-07 -59187 1.44982E-07 -60010 1.37882E-07 -60844 1.31051E-07 -61689 1.24481E-07 -62547 1.18148E-07 -63416 1.12059E-07 -64297 1.06199E-07 -65191 1.00553E-07 -66097 9.51222E-08 -67015 8.9898E-08 -67947 8.48629E-08 -68891 8.00214E-08 -69848 7.53621E-08 -70819 7.08742E-08 -71803 6.65567E-08 -72801 6.23997E-08 -73813 5.83981E-08 -74839 5.45467E-08 -75879 5.08406E-08 -76933 4.72749E-08 -78002 4.38419E-08 -79086 4.05371E-08 -80186 3.73535E-08 -81300 3.42929E-08 -82430 3.13456E-08 -83575 2.85105E-08 -84737 2.57791E-08 -85914 2.31526E-08 -87108 2.06232E-08 -88319 1.8188E-08 -89546 1.58455E-08 -90791 1.35892E-08 -92053 1.1418E-08 -93332 9.32904E-09 -94629 7.31806E-09 -95944 5.38252E-09 -97277 3.51992E-09 -98629 1.72652E-09 -100000 0 diff --git a/examples/advanced/radioprotection/src/G4IonC12.cc b/examples/advanced/radioprotection/src/G4IonC12.cc deleted file mode 100644 index 6e2e8eb659..0000000000 --- a/examples/advanced/radioprotection/src/G4IonC12.cc +++ /dev/null @@ -1,87 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4IonC12.cc,v 1.1 2004/05/14 12:29:33 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ---------------------------------------------------------------------- -// GEANT 4 class implementation file -// -// History: first implementation, based on object model of -// 4th April 1996, G.Cosmo -// ********************************************************************** -// ---------------------------------------------------------------------- - -#include -#include - -#include "G4IonC12.hh" - -// ###################################################################### -// ### IonC12 ### -// ###################################################################### - -G4IonC12::G4IonC12( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ -} - -G4IonC12::~G4IonC12() -{ -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4IonC12 G4IonC12::theIonC12( - "IonC12", 11.1749*GeV, 0.0*MeV, +6.0*eplus, - 0, +1, 0, - 0, 0, 0, - "static_nucleus", 0, +12, 0, - true, -1.0, 0 -); - -G4IonC12* G4IonC12::IonC12Definition(){return &theIonC12;} -G4IonC12* G4IonC12::IonC12(){return &theIonC12;} - - diff --git a/examples/advanced/radioprotection/src/G4IonFe52.cc b/examples/advanced/radioprotection/src/G4IonFe52.cc deleted file mode 100644 index 661a35690b..0000000000 --- a/examples/advanced/radioprotection/src/G4IonFe52.cc +++ /dev/null @@ -1,87 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4IonFe52.cc,v 1.1 2004/05/14 12:29:33 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ---------------------------------------------------------------------- -// GEANT 4 class implementation file -// -// History: first implementation, based on object model of -// 4th April 1996, G.Cosmo -// ********************************************************************** -// ---------------------------------------------------------------------- - -#include -#include - -#include "G4IonFe52.hh" - -// ###################################################################### -// ### IonFe52 ### -// ###################################################################### - -G4IonFe52::G4IonFe52( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ -} - -G4IonFe52::~G4IonFe52() -{ -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4IonFe52 G4IonFe52::theIonFe52( - "IonFe52", 48.3761*GeV, 0.0*MeV, +26.0*eplus, - 0, +1, 0, - 0, 0, 0, - "static_nucleus", 0, +52, 0, - true, -1.0, 0 -); - -G4IonFe52* G4IonFe52::IonFe52Definition(){return &theIonFe52;} -G4IonFe52* G4IonFe52::IonFe52(){return &theIonFe52;} - - diff --git a/examples/advanced/radioprotection/src/G4IonO16.cc b/examples/advanced/radioprotection/src/G4IonO16.cc deleted file mode 100644 index 7d4024f05b..0000000000 --- a/examples/advanced/radioprotection/src/G4IonO16.cc +++ /dev/null @@ -1,74 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -#include -#include - -#include "G4IonO16.hh" - -// ###################################################################### -// ### IonO16 ### -// ###################################################################### - -G4IonO16::G4IonO16( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ -} - -G4IonO16::~G4IonO16() -{ -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4IonO16 G4IonO16::theIonO16( - "IonO16", 14.8951*GeV, 0.0*MeV, +8.0*eplus, - 0, +1, 0, - 0, 0, 0, - "static_nucleus", 0, +16, 0, - true, -1.0, 0 -); - -G4IonO16* G4IonO16::IonO16Definition(){return &theIonO16;} -G4IonO16* G4IonO16::IonO16(){return &theIonO16;} - - diff --git a/examples/advanced/radioprotection/src/G4IonSi28.cc b/examples/advanced/radioprotection/src/G4IonSi28.cc deleted file mode 100644 index 541ff8cda8..0000000000 --- a/examples/advanced/radioprotection/src/G4IonSi28.cc +++ /dev/null @@ -1,87 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4IonSi28.cc,v 1.1 2004/05/14 12:29:33 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ---------------------------------------------------------------------- -// GEANT 4 class implementation file -// -// History: first implementation, based on object model of -// 4th April 1996, G.Cosmo -// ********************************************************************** -// ---------------------------------------------------------------------- - -#include -#include - -#include "G4IonSi28.hh" - -// ###################################################################### -// ### IonSi28 ### -// ###################################################################### - -G4IonSi28::G4IonSi28( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ -} - -G4IonSi28::~G4IonSi28() -{ -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4IonSi28 G4IonSi28::theIonSi28( - "IonSi28", 26.0532*GeV, 0.0*MeV, +14.0*eplus, - 0, +1, 0, - 0, 0, 0, - "static_nucleus", 0, +28, 0, - true, -1.0, 0 -); - -G4IonSi28* G4IonSi28::IonSi28Definition(){return &theIonSi28;} -G4IonSi28* G4IonSi28::IonSi28(){return &theIonSi28;} - - diff --git a/examples/advanced/radioprotection/src/RemSimAnalysisManager.cc b/examples/advanced/radioprotection/src/RemSimAnalysisManager.cc index a97f39c118..4c9cb9218a 100644 --- a/examples/advanced/radioprotection/src/RemSimAnalysisManager.cc +++ b/examples/advanced/radioprotection/src/RemSimAnalysisManager.cc @@ -26,7 +26,7 @@ // * * // ******************************* // -// $Id: RemSimAnalysisManager.cc,v 1.8 2005/05/27 14:21:42 guatelli Exp $ +// $Id: RemSimAnalysisManager.cc,v 1.9 2005/09/08 06:56:18 guatelli Exp $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -34,7 +34,7 @@ #include #include #include "RemSimAnalysisManager.hh" -#include "RemSimAnalysisMessenger.hh" +//#include "RemSimAnalysisMessenger.hh" #include "G4ios.hh" #include #include "G4RunManager.hh" @@ -51,13 +51,13 @@ RemSimAnalysisManager::RemSimAnalysisManager() { aFact = AIDA_createAnalysisFactory(); - messenger = new RemSimAnalysisMessenger(this); + // messenger = new RemSimAnalysisMessenger(this); fileFormat = "hbook"; } RemSimAnalysisManager::~RemSimAnalysisManager() { - delete messenger; + //delete messenger; delete energyShape; energyShape = 0; diff --git a/examples/advanced/radioprotection/src/RemSimDecay.cc b/examples/advanced/radioprotection/src/RemSimDecay.cc index 675524dd87..00f57343bc 100644 --- a/examples/advanced/radioprotection/src/RemSimDecay.cc +++ b/examples/advanced/radioprotection/src/RemSimDecay.cc @@ -27,8 +27,8 @@ // * * // *********************** // -// $Id: RemSimDecay.cc,v 1.2 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimDecay.cc,v 1.4 2005/12/07 14:41:36 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // @@ -56,13 +56,14 @@ void RemSimDecay::ConstructProcess() { G4ParticleDefinition* particle = theParticleIterator -> value(); G4ProcessManager* pmanager = particle -> GetProcessManager(); - - if (theDecayProcess -> IsApplicable(*particle)) + if (theDecayProcess -> IsApplicable(*particle) && !particle->IsShortLived()) { + G4String name = particle -> GetParticleName(); pmanager -> AddProcess(theDecayProcess); // set ordering for PostStepDoIt and AtRestDoIt pmanager -> SetProcessOrdering(theDecayProcess, idxPostStep); pmanager -> SetProcessOrdering(theDecayProcess, idxAtRest); } + } } diff --git a/examples/advanced/radioprotection/src/RemSimDecorator.cc b/examples/advanced/radioprotection/src/RemSimDecorator.cc index 2566e371f7..42b373da68 100644 --- a/examples/advanced/radioprotection/src/RemSimDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimDecorator.cc @@ -28,7 +28,7 @@ // *************************** // // $Id: RemSimDecorator.cc,v 1.5 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimDetectorConstruction.cc b/examples/advanced/radioprotection/src/RemSimDetectorConstruction.cc index 8bd8880a89..40aa582b39 100644 --- a/examples/advanced/radioprotection/src/RemSimDetectorConstruction.cc +++ b/examples/advanced/radioprotection/src/RemSimDetectorConstruction.cc @@ -27,8 +27,8 @@ // * * // ************************************** // -// $Id: RemSimDetectorConstruction.cc,v 1.15 2005/05/27 14:20:50 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimDetectorConstruction.cc,v 1.16 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimDetectorMessenger.cc b/examples/advanced/radioprotection/src/RemSimDetectorMessenger.cc index 2f529713ed..e66fff79ac 100644 --- a/examples/advanced/radioprotection/src/RemSimDetectorMessenger.cc +++ b/examples/advanced/radioprotection/src/RemSimDetectorMessenger.cc @@ -31,8 +31,8 @@ // ********************************* // // -// $Id: RemSimDetectorMessenger.cc,v 1.10 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimDetectorMessenger.cc,v 1.12 2005/12/06 07:47:35 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -51,7 +51,7 @@ RemSimDetectorMessenger::RemSimDetectorMessenger( RemSimDetectorConstruction* De vehicleCmd -> SetGuidance("Assign the geometrical set-up to G4RunManager."); vehicleCmd -> SetParameterName("choice",true); vehicleCmd -> SetCandidates("vehicle moon"); - vehicleCmd -> AvailableForStates(G4State_Idle); + vehicleCmd -> AvailableForStates(G4State_Idle); shieldingCmd = new G4UIcmdWithAString("/configuration/AddShielding",this); shieldingCmd -> SetGuidance("Add shielding layer in vehicle configuration."); diff --git a/examples/advanced/radioprotection/src/RemSimElectronEEDL.cc b/examples/advanced/radioprotection/src/RemSimElectronEEDL.cc index c013fcf167..a7a9cbbd3b 100644 --- a/examples/advanced/radioprotection/src/RemSimElectronEEDL.cc +++ b/examples/advanced/radioprotection/src/RemSimElectronEEDL.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimElectronEEDL.cc,v 1.4 2005/05/19 13:46:29 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimElectronEEDL.cc,v 1.5 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelloi@ge.infn.it diff --git a/examples/advanced/radioprotection/src/RemSimEventAction.cc b/examples/advanced/radioprotection/src/RemSimEventAction.cc index 72b4566a21..d6d9a17bd8 100644 --- a/examples/advanced/radioprotection/src/RemSimEventAction.cc +++ b/examples/advanced/radioprotection/src/RemSimEventAction.cc @@ -27,8 +27,8 @@ // ********************************** // // -// $Id: RemSimEventAction.cc,v 1.7 2004/05/27 12:31:31 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimEventAction.cc,v 1.8 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // @@ -39,8 +39,8 @@ #include "G4Trajectory.hh" #include "G4VVisManager.hh" #include "G4ios.hh" -#include "Randomize.hh" -#include "CLHEP/Random/RandEngine.h" +//##include "Randomize.hh" +//#include "CLHEP/Random/RandEngine.h" RemSimEventAction::RemSimEventAction():evtNo(-1) {} diff --git a/examples/advanced/radioprotection/src/RemSimHadronicBertini.cc b/examples/advanced/radioprotection/src/RemSimHadronicBertini.cc index a3aa8a6d8c..d25d6fea29 100644 --- a/examples/advanced/radioprotection/src/RemSimHadronicBertini.cc +++ b/examples/advanced/radioprotection/src/RemSimHadronicBertini.cc @@ -26,8 +26,8 @@ // * * // ************************************** // -// $Id: RemSimHadronicBertini.cc,v 1.1 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimHadronicBertini.cc,v 1.3 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // @@ -91,8 +91,7 @@ G4VPhysicsConstructor(name) QGSP_model = new G4TheoFSGenerator(); theCascade = new G4GeneratorPrecompoundInterface(); - theHandler = new G4ExcitationHandler(); - thePreEquilib = new G4PreCompoundModel(theHandler); + thePreEquilib = new G4PreCompoundModel(&theHandler); theCascade -> SetDeExcitation(thePreEquilib); QGSP_model -> SetTransport(theCascade); theFragmentation = new G4QGSMFragmentation(); diff --git a/examples/advanced/radioprotection/src/RemSimHadronicBinary.cc b/examples/advanced/radioprotection/src/RemSimHadronicBinary.cc index 6f58829367..335cf7281b 100644 --- a/examples/advanced/radioprotection/src/RemSimHadronicBinary.cc +++ b/examples/advanced/radioprotection/src/RemSimHadronicBinary.cc @@ -26,8 +26,8 @@ // * * // ************************************** // -// $Id: RemSimHadronicBinary.cc,v 1.1 2004/11/23 14:37:47 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimHadronicBinary.cc,v 1.3 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author : Susanna Guatelli, guatelli@ge.infn.it // @@ -95,8 +95,8 @@ G4VPhysicsConstructor(name) QGSP_model = new G4TheoFSGenerator(); theCascade = new G4GeneratorPrecompoundInterface(); - theHandler = new G4ExcitationHandler(); - thePreEquilib = new G4PreCompoundModel(theHandler); + + thePreEquilib = new G4PreCompoundModel(&theHandler); theCascade -> SetDeExcitation(thePreEquilib); QGSP_model -> SetTransport(theCascade); theFragmentation = new G4QGSMFragmentation(); diff --git a/examples/advanced/radioprotection/src/RemSimInterplanetarySpaceConfiguration.cc b/examples/advanced/radioprotection/src/RemSimInterplanetarySpaceConfiguration.cc deleted file mode 100644 index c577fc8b1d..0000000000 --- a/examples/advanced/radioprotection/src/RemSimInterplanetarySpaceConfiguration.cc +++ /dev/null @@ -1,228 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// Author : Susanna Guatelli, guatelli@ge.infn.it -// -#include "CLHEP/Random/RandGeneral.h" -#include "RemSimInterplanetarySpaceConfiguration.hh" -#include "RemSimVPrimaryGeneratorFactory.hh" -#include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4ParticleTable.hh" -#include "G4ParticleDefinition.hh" -#include "G4ios.hh" -#include "Randomize.hh" -#ifdef G4ANALYSIS_USE -#include "RemSimAnalysisManager.hh" -#endif -#include "RemSimRunAction.hh" -#include -#include - - -RemSimInterplanetarySpaceConfiguration::RemSimInterplanetarySpaceConfiguration() -{ - G4int n_particle = 1; - particleGun = new G4ParticleGun(n_particle); - - moon = false; - - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName = "proton"; - particleGun -> SetParticleDefinition(particleTable->FindParticle(particleName)); - particleGun -> SetParticlePosition(G4ThreeVector(0., 0., -25.*m)); - G4ThreeVector v(0.0,0.0,1.0); - particleGun -> SetParticleEnergy(1.*MeV); - particleGun -> SetParticleMomentumDirection(v); - - energies = new G4DataVector; - data = new G4DataVector; -} - -RemSimInterplanetarySpaceConfiguration::~RemSimInterplanetarySpaceConfiguration() -{ - delete data; - delete energies; - delete particleGun; -} - -void RemSimInterplanetarySpaceConfiguration::GeneratePrimaries(G4Event* anEvent){ - G4double sum = GetPrimaryParticleEnergyDistributionSum(); - G4double partSum = 0; - G4int j = 0; - G4double random = sum*G4UniformRand(); - while (partSum GetParticleDefinition() -> - GetParticleName(); - - G4int n = 0; - - if (particleName == "alpha") n = 4; - else { - if (particleName == "IonC12") n = 12; - else - { if (particleName == "IonSi28") n = 28; - else { - if (particleName == "IonFe52") n = 52; - else { - if (particleName == "IonO16") n = 16; - else { - if (particleName == "proton") n = 1 ; - } - } - } - } - } - - particleGun -> SetParticleEnergy((*energies)[j] * n); - -#ifdef G4ANALYSIS_USE - G4double energy = particleGun -> GetParticleEnergy(); - RemSimAnalysisManager* analysis = RemSimAnalysisManager::getInstance(); - analysis -> primaryParticleEnergyDistribution((energy/n) / MeV); -#endif - - if (moon == true) MoonConfiguration(); - else - { - particleGun -> SetParticlePosition(G4ThreeVector(0., 0., -25.*m)); - G4ThreeVector v(0.0,0.0,1.0); - particleGun -> SetParticleMomentumDirection(v); - } - - particleGun -> GeneratePrimaryVertex(anEvent); -} - -void RemSimInterplanetarySpaceConfiguration:: MoonConfiguration() -{ - //Generate the primary particles on a hemisphere with random direction - //position - G4double radius = 25.* m; - G4double angle = pi * G4UniformRand()*rad; - G4double y0 = radius*std::cos(angle); - G4double x0 = 0.*m; - G4double z0 = -radius*std::sin(angle); - - if ( z0 < 0. *m) - { - particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); - } - - //direction - G4double angledir = pi * G4UniformRand()*rad; - if ((angledir> (pi/2.-angle)) && angledir<(3*pi/2.-angle)) - { - G4double a,b,c; - b=std::cos(angledir); - a=0.; - c=std::sin(angledir); - G4ThreeVector direction(a,b,c); - particleGun -> SetParticleMomentumDirection(direction); - } -} - -G4double RemSimInterplanetarySpaceConfiguration:: GetInitialEnergy() -{ - G4double primaryParticleEnergy = particleGun -> GetParticleEnergy(); - return primaryParticleEnergy; -} -void RemSimInterplanetarySpaceConfiguration::SetMoon(G4bool value) -{ - moon = value; -} - -void RemSimInterplanetarySpaceConfiguration::Read(G4String name) -{ - ReadData(MeV,name); - G4cout << name << " is the input file!" << G4endl; -} - -void RemSimInterplanetarySpaceConfiguration::ReadData(G4double unitE, G4String fileName) -{ - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); - - ost << fileName; - - G4String name(nameChar); - - std::ifstream file(fileName); - std::filebuf* lsdp = file.rdbuf(); - - if (! (lsdp->is_open()) ) - { - G4String excep = "RemSimInterplanteraySpaceConfiguration - data file: not found"; - G4Exception(excep); - } - G4double a = 0; - G4int k = 1; - - do - { - file >> a; - G4int nColumns = 2; - // The file is organized into two columns: - // 1st column is the energy - // 2nd column is the corresponding value - // The file terminates with the pattern: -1 -1 - // -2 -2 - if (a == -1 || a == -2) - { - - } - else - { - if (k%nColumns != 0) - { - G4double e = a * unitE; - energies->push_back(e); - // G4cout<push_back(value); - //G4cout<<" "< size(); - for (size_t i = 0; i < size; i++) - { - sum+=(*data)[i]; - } - return sum; - } diff --git a/examples/advanced/radioprotection/src/RemSimIonICRU.cc b/examples/advanced/radioprotection/src/RemSimIonICRU.cc index bbb789fdd1..b5dd734c41 100644 --- a/examples/advanced/radioprotection/src/RemSimIonICRU.cc +++ b/examples/advanced/radioprotection/src/RemSimIonICRU.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimIonICRU.cc,v 1.6 2005/05/19 13:46:29 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimIonICRU.cc,v 1.9 2005/12/06 07:47:35 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it @@ -51,20 +51,30 @@ void RemSimIonICRU::ConstructProcess() G4String particleName = particle -> GetParticleName(); G4double charge = particle -> GetPDGCharge(); - if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && + if (particleName == "proton" || particleName == "GenericIon" + || particleName == "alpha" ) + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1,3); + } + else{ + if (( charge != 0. ) && particleName != "e+" && particleName != "mu+" && particleName != "e-" && particleName != "mu-") - { - if((!particle -> IsShortLived()) && - (particle -> GetParticleName() != "chargedgeantino")) - { - G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); - G4VProcess* multipleScattering = new G4MultipleScattering(); - manager -> AddProcess(multipleScattering, -1,1,1); - manager -> AddProcess(ionisation, -1,2,2); - manager -> AddProcess(new G4StepLimiter(),-1,-1,3); - } - } - } + { + if((!particle -> IsShortLived()) && + (particle -> GetParticleName() != "chargedgeantino")) + { + G4hLowEnergyIonisation* ionisation = new G4hLowEnergyIonisation(); + G4VProcess* multipleScattering = new G4MultipleScattering(); + manager -> AddProcess(multipleScattering, -1,1,1); + manager -> AddProcess(ionisation, -1,2,2); + manager -> AddProcess(new G4StepLimiter(),-1,-1,3); + } + } + }} } diff --git a/examples/advanced/radioprotection/src/RemSimMaterial.cc b/examples/advanced/radioprotection/src/RemSimMaterial.cc index 0d03797132..bda5ab2bff 100644 --- a/examples/advanced/radioprotection/src/RemSimMaterial.cc +++ b/examples/advanced/radioprotection/src/RemSimMaterial.cc @@ -29,15 +29,14 @@ // * * // ******************************* // -// $Id: RemSimMaterial.cc,v 1.5 2004/05/22 12:57:06 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimMaterial.cc,v 1.6 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4MaterialPropertiesTable.hh" #include "G4MaterialPropertyVector.hh" #include "globals.hh" #include "G4MaterialTable.hh" -#include "Randomize.hh" #include "G4RunManager.hh" #include "G4Element.hh" #include "G4ElementTable.hh" diff --git a/examples/advanced/radioprotection/src/RemSimMoonHabitat.cc b/examples/advanced/radioprotection/src/RemSimMoonHabitat.cc index c0f40dc0e9..8e19ef1538 100644 --- a/examples/advanced/radioprotection/src/RemSimMoonHabitat.cc +++ b/examples/advanced/radioprotection/src/RemSimMoonHabitat.cc @@ -27,8 +27,8 @@ // * * // ************************************** // -// $Id: RemSimMoonHabitat.cc,v 1.5 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimMoonHabitat.cc,v 1.6 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimMuonStandard.cc b/examples/advanced/radioprotection/src/RemSimMuonStandard.cc index 5772a313c9..931653aa53 100644 --- a/examples/advanced/radioprotection/src/RemSimMuonStandard.cc +++ b/examples/advanced/radioprotection/src/RemSimMuonStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimMuonStandard.cc,v 1.4 2005/05/19 13:46:29 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimMuonStandard.cc,v 1.5 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimParticles.cc b/examples/advanced/radioprotection/src/RemSimParticles.cc index 706d825b3a..225bd85147 100644 --- a/examples/advanced/radioprotection/src/RemSimParticles.cc +++ b/examples/advanced/radioprotection/src/RemSimParticles.cc @@ -19,42 +19,30 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// $Id: HadrontherapyParticles.cc; May 2005 +// ---------------------------------------------------------------------------- +// GEANT 4 - Hadrontherapy example +// ---------------------------------------------------------------------------- +// Code developed by: // -// $Id: RemSimParticles.cc,v 1.4 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// Author:Susanna Guatelli, guatelli@ge.infn.it -// - +// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a) +// +// (a) Laboratori Nazionali del Sud +// of the National Institute for Nuclear Physics, Catania, Italy +// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy +// +// * cirrone@lns.infn.it +// ---------------------------------------------------------------------------- #include "RemSimParticles.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4Proton.hh" -#include "G4Alpha.hh" -#include "G4IonO16.hh" -#include "G4IonC12.hh" -#include "G4IonSi28.hh" -#include "G4IonFe52.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4LeptonConstructor.hh" +#include "G4BosonConstructor.hh" #include "G4MesonConstructor.hh" #include "G4BaryonConstructor.hh" #include "G4ShortLivedConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4MuonPlus.hh" -#include "G4MuonMinus.hh" -#include "G4TauMinus.hh" -#include "G4TauPlus.hh" -#include "G4NeutrinoTau.hh" -#include "G4AntiNeutrinoTau.hh" -#include "G4NeutrinoMu.hh" -#include "G4AntiNeutrinoMu.hh" -#include "G4NeutrinoE.hh" -#include "G4AntiNeutrinoE.hh" -#include "G4ChargedGeantino.hh" -#include "G4Geantino.hh" -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" + RemSimParticles::RemSimParticles(const G4String& name) : G4VPhysicsConstructor(name) { } @@ -64,47 +52,26 @@ RemSimParticles::~RemSimParticles() void RemSimParticles::ConstructParticle() { - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4Proton :: ProtonDefinition(); - G4Alpha :: AlphaDefinition(); - G4IonO16::IonO16Definition(); - G4IonC12::IonC12Definition(); - G4IonSi28::IonSi28Definition(); - G4IonFe52::IonFe52Definition(); - -// Mu - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); - -// Tau - G4TauMinus::TauMinusDefinition(); - G4TauPlus::TauPlusDefinition(); - G4NeutrinoTau::NeutrinoTauDefinition(); - G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); - - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4LeptonConstructor lepton; + lepton.ConstructParticle(); - G4Geantino::GeantinoDefinition(); - G4ChargedGeantino::ChargedGeantinoDefinition(); + G4BosonConstructor boson; + boson.ConstructParticle(); - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - - G4MesonConstructor pMesonConstructor; - pMesonConstructor.ConstructParticle(); + G4MesonConstructor meson; + meson.ConstructParticle(); - G4BaryonConstructor pBaryonConstructor; - pBaryonConstructor.ConstructParticle(); + G4BaryonConstructor baryon; + baryon.ConstructParticle(); - G4ShortLivedConstructor pShortLivedConstructor; - pShortLivedConstructor.ConstructParticle(); - - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); + G4ShortLivedConstructor shortLived; + shortLived.ConstructParticle(); + // ******// + // ions // + // ******// + G4Deuteron::DeuteronDefinition(); + G4Triton::TritonDefinition(); + G4He3::He3Definition(); + G4Alpha::AlphaDefinition(); + G4GenericIon::GenericIonDefinition(); } diff --git a/examples/advanced/radioprotection/src/RemSimPhotonEPDL.cc b/examples/advanced/radioprotection/src/RemSimPhotonEPDL.cc index 9f0d00b1b7..2018ce2728 100644 --- a/examples/advanced/radioprotection/src/RemSimPhotonEPDL.cc +++ b/examples/advanced/radioprotection/src/RemSimPhotonEPDL.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimPhotonEPDL.cc,v 1.5 2005/05/19 13:46:29 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimPhotonEPDL.cc,v 1.6 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author:Susanna Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimPhysicsList.cc b/examples/advanced/radioprotection/src/RemSimPhysicsList.cc index 712611ee6c..40cbe4339e 100644 --- a/examples/advanced/radioprotection/src/RemSimPhysicsList.cc +++ b/examples/advanced/radioprotection/src/RemSimPhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimPhysicsList.cc,v 1.8 2004/11/23 15:43:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimPhysicsList.cc,v 1.9 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli @@ -140,10 +140,11 @@ void RemSimPhysicsList::AddPhysicsList(const G4String& name) } } - // Register hadronic process for p and alpha particle, activating the - // Binary model + // // Register hadronic process for p and alpha particle, activating the +// // Binary model - if (name == "hadronic-binary") + + if (name == "hadronic-binary") { if (hadronicIsRegistered) { @@ -163,7 +164,7 @@ void RemSimPhysicsList::AddPhysicsList(const G4String& name) // Register hadronic process for p and alpha particle, activating the // Bertini model - if (name == "hadronic-bertini") +if (name == "hadronic-bertini") { if (hadronicIsRegistered) { diff --git a/examples/advanced/radioprotection/src/RemSimPhysicsListMessenger.cc b/examples/advanced/radioprotection/src/RemSimPhysicsListMessenger.cc index 9d9693df28..cb91c848ad 100644 --- a/examples/advanced/radioprotection/src/RemSimPhysicsListMessenger.cc +++ b/examples/advanced/radioprotection/src/RemSimPhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimPhysicsListMessenger.cc,v 1.3 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it diff --git a/examples/advanced/radioprotection/src/RemSimPositronStandard.cc b/examples/advanced/radioprotection/src/RemSimPositronStandard.cc index 08b245126d..af61fc55cc 100644 --- a/examples/advanced/radioprotection/src/RemSimPositronStandard.cc +++ b/examples/advanced/radioprotection/src/RemSimPositronStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimPositronStandard.cc,v 1.4 2005/05/19 13:46:29 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimPositronStandard.cc,v 1.5 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Susanna Guatelli, guatelli@ge.infn.it #include "RemSimPositronStandard.hh" diff --git a/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorAction.cc b/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorAction.cc index c502e052c9..c76953b922 100644 --- a/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorAction.cc +++ b/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorAction.cc @@ -21,87 +21,38 @@ // ******************************************************************** // // -// $Id: RemSimPrimaryGeneratorAction.cc,v 1.11 2005/05/27 14:21:42 guatelli Exp $// Author: Susanna Guatelli, guatelli@ge.infn.it +// $Id: RemSimPrimaryGeneratorAction.cc,v 1.14 2005/12/02 10:08:34 guatelli Exp $// Author: Susanna Guatelli, guatelli@ge.infn.it #include "RemSimPrimaryGeneratorAction.hh" -#include "RemSimPrimaryGeneratorMessenger.hh" -#include "RemSimBasicGenerator.hh" -#include "RemSimInterplanetarySpaceConfiguration.hh" -#include "RemSimVPrimaryGeneratorFactory.hh" +#ifdef G4ANALYSIS_USE +#include "RemSimAnalysisManager.hh" +#endif #include "G4Event.hh" -#include "G4ParticleGun.hh" -#include "G4ParticleTable.hh" -#include "G4ParticleDefinition.hh" -#include "globals.hh" - +#include "G4GeneralParticleSource.hh" RemSimPrimaryGeneratorAction::RemSimPrimaryGeneratorAction() { - value = "Basic"; - primaryFactory = new RemSimBasicGenerator(); - messenger = new RemSimPrimaryGeneratorMessenger(this); + particleGun = new G4GeneralParticleSource(); } RemSimPrimaryGeneratorAction::~RemSimPrimaryGeneratorAction() { - delete messenger; - delete primaryFactory; + delete particleGun; } G4double RemSimPrimaryGeneratorAction::GetInitialEnergy() { - G4double initialEnergy = 0.; - - initialEnergy = primaryFactory -> GetInitialEnergy(); - - return initialEnergy; + G4double primaryParticleEnergy = particleGun -> GetParticleEnergy(); + return primaryParticleEnergy; } void RemSimPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { - if(value == "Interplanetary") - { - primaryFactory -> SetMoon(false); - } - else if(value == "Moon") - { - primaryFactory -> SetMoon(true); - } + +#ifdef G4ANALYSIS_USE + G4double energy = particleGun -> GetParticleEnergy(); + RemSimAnalysisManager* analysis = RemSimAnalysisManager::getInstance(); + analysis -> primaryParticleEnergyDistribution(energy/MeV); +#endif - primaryFactory -> GeneratePrimaries(anEvent); -} - -void RemSimPrimaryGeneratorAction::SelectPrimaries(G4String val) -{ - value = val; - - if(value == "Basic") - G4cout<< "The configuration is the basic generator" < Read(fileName); +particleGun -> GeneratePrimaryVertex(anEvent); } diff --git a/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorMessenger.cc b/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorMessenger.cc deleted file mode 100644 index bbcd76ae74..0000000000 --- a/examples/advanced/radioprotection/src/RemSimPrimaryGeneratorMessenger.cc +++ /dev/null @@ -1,76 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// Code developed by: S.Guatelli, guatelli@ge.infn.it -// -// ***************************************** -// * * -// * RemSimPrimaryGeneratorMessenger.cc * -// * * -// ***************************************** -// -// -// $Id: RemSimPrimaryGeneratorMessenger.cc,v 1.7 2005/05/19 13:30:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// - -#include "RemSimPrimaryGeneratorMessenger.hh" -#include "RemSimRunAction.hh" -#include "RemSimPrimaryGeneratorAction.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithoutParameter.hh" - -RemSimPrimaryGeneratorMessenger::RemSimPrimaryGeneratorMessenger( RemSimPrimaryGeneratorAction* prim): primary(prim) -{ - gunDir = new G4UIdirectory("/gun/"); - gunDir->SetGuidance("Select the generation configuration of primary particles."); - - fluxCmd = new G4UIcmdWithAString("/gun/generator",this); - fluxCmd -> SetGuidance("Assign the configuration of generation of primary particles."); - fluxCmd -> SetParameterName("choice",true); - fluxCmd -> SetCandidates("Moon Interplanetary Basic"); - fluxCmd -> AvailableForStates(G4State_PreInit,G4State_Idle); - - dataCmd = new G4UIcmdWithAString("/gun/data",this); - dataCmd -> SetGuidance("Primary particle spectrum"); - dataCmd -> SetParameterName("choice",true); - dataCmd -> AvailableForStates(G4State_PreInit,G4State_Idle); - } - -RemSimPrimaryGeneratorMessenger::~RemSimPrimaryGeneratorMessenger() -{ - delete dataCmd; - delete fluxCmd; - delete gunDir; -} - -void RemSimPrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if(command == fluxCmd) primary -> SelectPrimaries(newValue); - if (command == dataCmd) primary -> Read(newValue); -} - diff --git a/examples/advanced/radioprotection/src/RemSimROGeometry.cc b/examples/advanced/radioprotection/src/RemSimROGeometry.cc index ebdc3fa3be..af0b57d3cd 100644 --- a/examples/advanced/radioprotection/src/RemSimROGeometry.cc +++ b/examples/advanced/radioprotection/src/RemSimROGeometry.cc @@ -30,7 +30,7 @@ // ************************************ // // $Id: RemSimROGeometry.cc,v 1.5 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RemSimROGeometry.hh" #include "RemSimDummySD.hh" diff --git a/examples/advanced/radioprotection/src/RemSimRoofDecorator.cc b/examples/advanced/radioprotection/src/RemSimRoofDecorator.cc index 6cf0e1afd3..5f627bea9c 100644 --- a/examples/advanced/radioprotection/src/RemSimRoofDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimRoofDecorator.cc @@ -29,8 +29,8 @@ // Code developed by: S.Guatelli, guatelli@ge.infn.it // // -// $Id: RemSimRoofDecorator.cc,v 1.5 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimRoofDecorator.cc,v 1.6 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RemSimVGeometryComponent.hh" #include "RemSimMaterial.hh" diff --git a/examples/advanced/radioprotection/src/RemSimRunAction.cc b/examples/advanced/radioprotection/src/RemSimRunAction.cc index cfc8dbe6a4..9f5b225d4b 100644 --- a/examples/advanced/radioprotection/src/RemSimRunAction.cc +++ b/examples/advanced/radioprotection/src/RemSimRunAction.cc @@ -28,9 +28,8 @@ // ******************************* // // Code developed by: S.Guatelli, guatelli@ge.infn.it -// -// $Id: RemSimRunAction.cc,v 1.11 2005/05/19 13:30:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimRunAction.cc,v 1.13 2005/11/23 08:49:10 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RemSimRunAction.hh" @@ -43,8 +42,6 @@ #include "G4RunManager.hh" #include "G4ios.hh" #include "RemSimRunAction.hh" -#include -#include RemSimRunAction::RemSimRunAction() { diff --git a/examples/advanced/radioprotection/src/RemSimSensitiveDetector.cc b/examples/advanced/radioprotection/src/RemSimSensitiveDetector.cc index 5e44f27bf6..71c4e5f198 100644 --- a/examples/advanced/radioprotection/src/RemSimSensitiveDetector.cc +++ b/examples/advanced/radioprotection/src/RemSimSensitiveDetector.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: RemSimSensitiveDetector.cc,v 1.9 2005/05/27 14:21:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimSensitiveDetector.cc,v 1.11 2005/11/23 09:22:11 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // #include "RemSimSensitiveDetector.hh" -#include "RemSimHit.hh" #include "G4Step.hh" #include "G4HCofThisEvent.hh" #include "G4TouchableHistory.hh" @@ -39,20 +38,13 @@ RemSimSensitiveDetector::RemSimSensitiveDetector(G4String name) :G4VSensitiveDetector(name) { - G4String HCname; - collectionName.insert(HCname="trackerCollection"); } RemSimSensitiveDetector::~RemSimSensitiveDetector(){;} -void RemSimSensitiveDetector::Initialize(G4HCofThisEvent* HCE) +void RemSimSensitiveDetector::Initialize(G4HCofThisEvent*) { - static G4int HCID = -1; - trackerCollection = new RemSimHitsCollection - (SensitiveDetectorName,collectionName[0]); - if(HCID<0) - { HCID = GetCollectionID(0); } - HCE -> AddHitsCollection(HCID,trackerCollection); + } G4bool RemSimSensitiveDetector::ProcessHits(G4Step* aStep, @@ -61,24 +53,13 @@ G4bool RemSimSensitiveDetector::ProcessHits(G4Step* aStep, G4double edep = aStep -> GetTotalEnergyDeposit(); if(edep==0.) return false; - G4int i = ROhist -> GetReplicaNumber(); - - RemSimHit* newHit = new RemSimHit(); - newHit -> SetEdep(edep); - newHit -> SetIndexes(i); - newHit->SetPosition(aStep->GetPreStepPoint()->GetPosition()); - trackerCollection -> insert( newHit ); - - #ifdef G4ANALYSIS_USE RemSimAnalysisManager* analysis = RemSimAnalysisManager::getInstance(); - + G4int i = ROhist -> GetReplicaNumber(); // Energy deposit in the phantom analysis -> energyDepositStore(i,edep/MeV); - // G4cout << "energy deposit:"<< i <<","<< edep/MeV << G4endl; G4double xx = aStep -> GetPreStepPoint() -> GetPosition().x(); G4double yy = aStep -> GetPreStepPoint() -> GetPosition().y(); - //G4double zz = aStep -> GetPreStepPoint() -> GetPosition().z(); // Project the hits of primary and secondary particles // in the phantom in the plane x, y @@ -92,7 +73,6 @@ G4bool RemSimSensitiveDetector::ProcessHits(G4Step* aStep, if(aStep -> GetTrack() -> GetTrackID()!= 1) analysis -> SecondaryEnergyDeposit(i,edep/MeV); #endif - return true; } diff --git a/examples/advanced/radioprotection/src/RemSimShelterSPEDecorator.cc b/examples/advanced/radioprotection/src/RemSimShelterSPEDecorator.cc index c497a7fa61..6edc1c35e8 100644 --- a/examples/advanced/radioprotection/src/RemSimShelterSPEDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimShelterSPEDecorator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimShelterSPEDecorator.cc,v 1.2 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimShieldingDecorator.cc b/examples/advanced/radioprotection/src/RemSimShieldingDecorator.cc index df236c4722..8964e21dc2 100644 --- a/examples/advanced/radioprotection/src/RemSimShieldingDecorator.cc +++ b/examples/advanced/radioprotection/src/RemSimShieldingDecorator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimShieldingDecorator.cc,v 1.5 2004/05/27 08:36:52 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimSteppingAction.cc b/examples/advanced/radioprotection/src/RemSimSteppingAction.cc index 8f4efe7650..14192e8b27 100644 --- a/examples/advanced/radioprotection/src/RemSimSteppingAction.cc +++ b/examples/advanced/radioprotection/src/RemSimSteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RemSimSteppingAction.cc,v 1.6 2004/11/23 15:43:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RemSimSteppingAction.cc,v 1.7 2005/09/08 06:56:18 guatelli Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Author: Susanna Guatelli (guatelli@ge.infn.it) diff --git a/examples/advanced/radioprotection/src/RemSimSteppingActionMessenger.cc b/examples/advanced/radioprotection/src/RemSimSteppingActionMessenger.cc index 89060db03e..6c397683a5 100644 --- a/examples/advanced/radioprotection/src/RemSimSteppingActionMessenger.cc +++ b/examples/advanced/radioprotection/src/RemSimSteppingActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -//$Id: RemSimSteppingActionMessenger.cc,v 1.3 2004/11/23 15:43:41 guatelli Exp $// GEANT4 tag $Name: geant4-07-01 $ +//$Id: RemSimSteppingActionMessenger.cc,v 1.4 2005/09/08 06:56:18 guatelli Exp $// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimVGeometryComponent.cc b/examples/advanced/radioprotection/src/RemSimVGeometryComponent.cc index dc9dfc5ed6..53ab23c258 100644 --- a/examples/advanced/radioprotection/src/RemSimVGeometryComponent.cc +++ b/examples/advanced/radioprotection/src/RemSimVGeometryComponent.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimVGeometryComponent.cc,v 1.3 2004/05/22 12:57:07 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/src/RemSimVehicle1.cc b/examples/advanced/radioprotection/src/RemSimVehicle1.cc index 0ff03caecf..426d0b04e9 100644 --- a/examples/advanced/radioprotection/src/RemSimVehicle1.cc +++ b/examples/advanced/radioprotection/src/RemSimVehicle1.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RemSimVehicle1.cc,v 1.8 2004/05/27 08:36:52 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: S.Guatelli, guatelli@ge.infn.it // diff --git a/examples/advanced/radioprotection/vehicle1.mac b/examples/advanced/radioprotection/vehicle1.mac index b163a419f8..7bd5c0aa01 100644 --- a/examples/advanced/radioprotection/vehicle1.mac +++ b/examples/advanced/radioprotection/vehicle1.mac @@ -5,17 +5,19 @@ /physics/addPhysics electron-eedl /physics/addPhysics positron-standard /physics/addPhysics ion-ICRU +/process/verbose 0 # #### Add Hadronic Physics, muon physics and decay /physics/addPhysics hadronic-bertini -#/physics/addPhysics hadronic-binary /physics/addPhysics muon-standard /physics/addPhysics decay +#/physics/addPhysics hadronic-binary ############################## #### Sets some default verbose /control/verbose 1 -/run/verbose 1 +/run/verbose 2 /event/verbose 0 +/tracking/verbose 0 /run/initialize ################ ## Visualisation @@ -30,17 +32,23 @@ #/vis/viewer/zoom 2 #/tracking/storeTrajectory 1 ################ -# Generation of primary particles -/gun/generator Basic -/gun/particle proton -/gun/energy 600. MeV # Geometrical configuration /configuration/choose vehicle /configuration/AddShielding On -#/analysis/formatFile xml +# Generation of primary particles +/control/execute gcrZ=1gps.mac #/analysis/formatFile hbook # Number of events -/run/beamOn 2 +#/tracking/verbose 1 +/run/beamOn 10 + + + + + + + + diff --git a/examples/advanced/radioprotection/vehicle2.mac b/examples/advanced/radioprotection/vehicle2.mac index c60c026129..8e45c64cf5 100644 --- a/examples/advanced/radioprotection/vehicle2.mac +++ b/examples/advanced/radioprotection/vehicle2.mac @@ -31,9 +31,13 @@ ################ /run/initialize # Generation of primary particles -/gun/generator Interplanetary -/gun/particle proton -/gun/data gcrZ=1.txt +/gps/particle proton +/gps/pos/type Point +/gps/pos/centre 0. 0. -25. m +/gps/direction 0. 0. 1. +# Monoenergetic proton beam +/gps/ene/type Mono +/gps/ene/mono 400 MeV # Geometry configuration /configuration/choose vehicle /configuration/AddShielding On diff --git a/examples/advanced/radioprotection/vis.mac b/examples/advanced/radioprotection/vis.mac index 2e16caaefd..45054b4f97 100644 --- a/examples/advanced/radioprotection/vis.mac +++ b/examples/advanced/radioprotection/vis.mac @@ -14,6 +14,11 @@ /control/verbose 1 /run/verbose 1 /event/verbose 0 +/run/initialize +############################## +# Geometrical configuration +/configuration/choose vehicle +/configuration/AddShielding On ################ ## Visualisation /vis/scene/create @@ -23,17 +28,12 @@ #/vis/open VRML2FILE # -------- /vis/drawVolume +/vis/viewer/set/viewpointThetaPhi 90 180 deg /vis/viewer/zoom 2 /tracking/storeTrajectory 1 -/vis/scene/endOfEventAction accumulate -###################### -/run/initialize -/vis/viewer/set/viewpointThetaPhi 90 180 deg -/gun/generator Basic -/gun/energy 400. MeV -/configuration/choose vehicle -/configuration/AddShielding On -#/tracking/verbose 1 +################ +#Primary particles +/control/execute gcrZ=1gps.mac /run/beamOn 10 diff --git a/examples/advanced/underground_physics/DMX.cc b/examples/advanced/underground_physics/DMX.cc index b84d9cf6dc..3f20529363 100644 --- a/examples/advanced/underground_physics/DMX.cc +++ b/examples/advanced/underground_physics/DMX.cc @@ -64,7 +64,7 @@ int main(int argc,char** argv) { // choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); // Construct the default run manager G4RunManager * runManager = new G4RunManager; diff --git a/examples/advanced/underground_physics/History b/examples/advanced/underground_physics/History index 2ddb051880..7b8bcd381e 100644 --- a/examples/advanced/underground_physics/History +++ b/examples/advanced/underground_physics/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: +$Id: History,v 1.9 2005/12/07 16:26:39 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -8,12 +8,17 @@ $Id: Category History file --------------------- +07.12.2005 - S. Guatelli (DMX-V07-01-02) + Compiles with CLHEP 2.0.2.2 -3rd May 2005 John Allison (examples-V07-00-03) -- Replaced vis manager with G4VisExecutive. +15.11.2005 - G.Cosmo (DMX-V07-01-00) + Migration to from deprecated . + +03.05.2005 - J.Allison + Replaced vis manager with G4VisExecutive. 07.12.2004 - S. Guatelli (DMX-V06-02-02) - G4VParticleChange migrated + G4VParticleChange migrated 29.11.2004 - S. Guatelli (DMX-V06-02-00) Migrated to diff --git a/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh b/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh index 11aa97a1d1..e5e0ee6eac 100644 --- a/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh +++ b/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh @@ -22,7 +22,7 @@ // // // $Id: DMXMinEkineCuts.hh,v 1.2 2002/06/18 10:17:30 ahoward Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/underground_physics/include/DMXPhysicsList.hh b/examples/advanced/underground_physics/include/DMXPhysicsList.hh index 4504e9f718..d275d5d7e6 100644 --- a/examples/advanced/underground_physics/include/DMXPhysicsList.hh +++ b/examples/advanced/underground_physics/include/DMXPhysicsList.hh @@ -34,6 +34,12 @@ // (27th November 2001) // // PhysicsList header +// +// History: +// ------- +// 5/12/05: AH - modified member functions for new hadronic constructor +// +// // -------------------------------------------------------------- #ifndef DMXPhysicsList_h @@ -94,9 +100,7 @@ private: // these methods Construct particles void ConstructMyBosons(); void ConstructMyLeptons(); - void ConstructMyMesons(); - void ConstructMyBaryons(); - void ConstructMyIons(); + void ConstructMyHadrons(); void ConstructMyShortLiveds(); }; diff --git a/examples/advanced/underground_physics/src/DMXEventActionMessenger.cc b/examples/advanced/underground_physics/src/DMXEventActionMessenger.cc index 55a94448c6..af839ae6c4 100644 --- a/examples/advanced/underground_physics/src/DMXEventActionMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXEventActionMessenger.cc @@ -38,6 +38,8 @@ #include "DMXEventActionMessenger.hh" +#include + #include "DMXEventAction.hh" #include "G4UIdirectory.hh" @@ -126,7 +128,7 @@ void DMXEventActionMessenger::SetNewValue if(command == DrawHitsCmd) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; eventAction->SetDrawHitsFlag(vl!=0); } @@ -134,7 +136,7 @@ void DMXEventActionMessenger::SetNewValue if(command == SavePmtCmd) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; eventAction->SetSavePmtFlag(vl!=0); } @@ -142,7 +144,7 @@ void DMXEventActionMessenger::SetNewValue if(command == SaveHitsCmd) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; eventAction->SetSaveHitsFlag(vl!=0); } diff --git a/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc b/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc index da17d322ba..2358b512cc 100644 --- a/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc +++ b/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc @@ -22,7 +22,7 @@ // // // $Id: DMXMinEkineCuts.cc,v 1.4 2003/12/02 16:59:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/advanced/underground_physics/src/DMXParticleSourceMessenger.cc b/examples/advanced/underground_physics/src/DMXParticleSourceMessenger.cc index bae4dd1d6c..948dc40ebd 100644 --- a/examples/advanced/underground_physics/src/DMXParticleSourceMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXParticleSourceMessenger.cc @@ -60,7 +60,6 @@ #include #include #include "G4Tokenizer.hh" -#include /////////////////////////////////////////////////////////////////////////////// DMXParticleSourceMessenger::DMXParticleSourceMessenger diff --git a/examples/advanced/underground_physics/src/DMXPhysicsList.cc b/examples/advanced/underground_physics/src/DMXPhysicsList.cc index 6513d552e3..cbfcd1c6e9 100644 --- a/examples/advanced/underground_physics/src/DMXPhysicsList.cc +++ b/examples/advanced/underground_physics/src/DMXPhysicsList.cc @@ -39,6 +39,10 @@ // // 14-02-03 Fix bugs in msc and hIon instanciation + cut per region // +// 05-02-05 AH - changes to G4Decay - added is not short lived protection +// and redefined particles to allow non-static creation +// i.e. changed construction to G4MesonConstructor, G4BaryonConstructor +// // -------------------------------------------------------------- #include "DMXPhysicsList.hh" @@ -90,9 +94,7 @@ void DMXPhysicsList::ConstructParticle() ConstructMyBosons(); ConstructMyLeptons(); - ConstructMyMesons(); - ConstructMyBaryons(); - ConstructMyIons(); + ConstructMyHadrons(); ConstructMyShortLiveds(); } @@ -130,46 +132,28 @@ void DMXPhysicsList::ConstructMyLeptons() } -// construct Mesons:///////////////////////////////////////////////////// -void DMXPhysicsList::ConstructMyMesons() +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" + +// construct Hadrons:///////////////////////////////////////////////////// +void DMXPhysicsList::ConstructMyHadrons() { // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); + G4MesonConstructor mConstructor; + mConstructor.ConstructParticle(); + + // baryons + G4BaryonConstructor bConstructor; + bConstructor.ConstructParticle(); + + // ions + G4IonConstructor iConstructor; + iConstructor.ConstructParticle(); + } -// construct Baryons:///////////////////////////////////////////////////// -void DMXPhysicsList::ConstructMyBaryons() -{ -// barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); -} - - -// construct Ions:///////////////////////////////////////////////////// -void DMXPhysicsList::ConstructMyIons() -{ -// Ions - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4He3::He3Definition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); -} - // construct Shortliveds:///////////////////////////////////////////////////// void DMXPhysicsList::ConstructMyShortLiveds() { @@ -255,6 +239,9 @@ void DMXPhysicsList::AddTransportation() { //OTHERS: //#include "G4hIonisation.hh" // standard hadron ionisation +//em process options to allow msc step-limitation to be switched off +#include "G4EmProcessOptions.hh" + void DMXPhysicsList::ConstructEM() { // processes: @@ -367,6 +354,11 @@ void DMXPhysicsList::ConstructEM() { } } + + // turn off msc step-limitation - especially as electron cut 1nm + G4EmProcessOptions opt; + opt.SetMscStepLimitation(false); + } @@ -749,7 +741,7 @@ void DMXPhysicsList::ConstructGeneral() { G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) + if (theDecayProcess->IsApplicable(*particle) && !particle->IsShortLived()) { pmanager ->AddProcess(theDecayProcess); // set ordering for PostStepDoIt and AtRestDoIt diff --git a/examples/advanced/underground_physics/src/DMXPrimaryGeneratorAction.cc b/examples/advanced/underground_physics/src/DMXPrimaryGeneratorAction.cc index 4ed1b5ffa3..879ad2c445 100644 --- a/examples/advanced/underground_physics/src/DMXPrimaryGeneratorAction.cc +++ b/examples/advanced/underground_physics/src/DMXPrimaryGeneratorAction.cc @@ -84,8 +84,8 @@ void DMXPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { // seeds // seeds = HepRandom::getTheSeeds(); - seeds[0] = *HepRandom::getTheSeeds(); - seeds[1] = *(HepRandom::getTheSeeds()+1); + seeds[0] = *CLHEP::HepRandom::getTheSeeds(); + seeds[1] = *(CLHEP::HepRandom::getTheSeeds()+1); particleGun->GeneratePrimaryVertex(anEvent); diff --git a/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc b/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc index f5821b137b..ad412ad83c 100644 --- a/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXRunActionMessenger.cc @@ -37,6 +37,9 @@ // -------------------------------------------------------------- #include "DMXRunActionMessenger.hh" + +#include + #include "DMXRunAction.hh" #include "G4UIcmdWithAString.hh" @@ -110,7 +113,7 @@ void DMXRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue) if(command == PlotEventCmd) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; DMXRun->Setplotevent(vl!=0); } @@ -118,7 +121,7 @@ void DMXRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue) if(command == InteractPlotCmd) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; DMXRun->Setinteractplot(vl!=0); } diff --git a/examples/advanced/underground_physics/src/DMXStackingActionMessenger.cc b/examples/advanced/underground_physics/src/DMXStackingActionMessenger.cc index 4875287cfa..0c642c0f08 100644 --- a/examples/advanced/underground_physics/src/DMXStackingActionMessenger.cc +++ b/examples/advanced/underground_physics/src/DMXStackingActionMessenger.cc @@ -37,6 +37,9 @@ // -------------------------------------------------------------- #include "DMXStackingActionMessenger.hh" + +#include + #include "DMXStackingAction.hh" #include "G4UIcmdWithABool.hh" @@ -67,7 +70,7 @@ void DMXStackingActionMessenger::SetNewValue if(command==KillGammasCmd) { G4int vl; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; DMXAction->SetKillGammasFlag(vl!=0); } diff --git a/examples/advanced/underground_physics/wired.mac b/examples/advanced/underground_physics/wired.mac index 06579bdcc3..3ee7d9a96d 100644 --- a/examples/advanced/underground_physics/wired.mac +++ b/examples/advanced/underground_physics/wired.mac @@ -1,3 +1,3 @@ -/vis/open HepRep +/vis/open HepRepXML /vis/drawVolume /vis/viewer/update diff --git a/examples/advanced/xray_fluorescence/G4History.macro b/examples/advanced/xray_fluorescence/G4History.macro deleted file mode 100644 index ec26b91df9..0000000000 --- a/examples/advanced/xray_fluorescence/G4History.macro +++ /dev/null @@ -1,2 +0,0 @@ -/run/verbose 2 -/run/beamOn 100000 diff --git a/examples/advanced/xray_fluorescence/GNUmakefile b/examples/advanced/xray_fluorescence/GNUmakefile index ecbe08f46d..4e01e9d675 100644 --- a/examples/advanced/xray_fluorescence/GNUmakefile +++ b/examples/advanced/xray_fluorescence/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.18 2004/12/08 10:46:54 gcosmo Exp $ +# $Id: GNUmakefile,v 1.19 2005/12/09 22:15:52 mantero Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -16,7 +16,7 @@ all: lib bin include $(G4INSTALL)/config/architecture.gmk -G4ANALYSIS_USE := 1 +#G4ANALYSIS_USE := 1 ifdef G4ANALYSIS_USE CPPFLAGS += `aida-config --include` diff --git a/examples/advanced/xray_fluorescence/History b/examples/advanced/xray_fluorescence/History index b44a97366a..e53b8b9bfd 100644 --- a/examples/advanced/xray_fluorescence/History +++ b/examples/advanced/xray_fluorescence/History @@ -1,6 +1,6 @@ -# $Id: History,v 1.5 2005/05/03 10:05:48 allison Exp $ +# $Id: History,v 1.6 2005/11/15 15:57:47 gcosmo Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- ========================================================= @@ -19,7 +19,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +15-11-2004 Gabriele Cosmo: XrayFluo-V07-01-00 +- Migration to from deprecated . + +3-5-2005 John Allison - Replaced vis manager with G4VisExecutive. 10-12-2004 Alfonso Mantero: XrayFluo-V06-02-01 diff --git a/examples/advanced/xray_fluorescence/README b/examples/advanced/xray_fluorescence/README index 75aedcf67b..d5e7a10079 100644 --- a/examples/advanced/xray_fluorescence/README +++ b/examples/advanced/xray_fluorescence/README @@ -1,4 +1,4 @@ -$Id: README,v 1.13 2005/05/03 14:47:36 mantero Exp $ +$Id: README,v 1.14 2005/12/09 22:15:52 mantero Exp $ ------------------------------------------------------------------- ========================================================= @@ -45,48 +45,27 @@ generation and analysis schemes available in Geant4: here as a example of "forward compatibility" on how to use analysis. In order to be able to use any of these packages, prior installation is -necessary and a number of environment variables will have to be set. - - -#set up VRMLview -setenv G4VRMLFILE_MAX_FILE_NUM 100 -setenv G4VRMLFILE_VIEWER vrmlview #if installed -setenv PATH ${PATH}:"/afs/cern.ch/sw/contrib/VRML/bin/Linux" - -#set up OpenGL or Mesa -setenv G4VIS_BUILD_OPENGLX_DRIVER 1 -setenv G4VIS_USE_OPENGLX 1 -setenv OGLHOME /afs/cern.ch/sw/geant4/dev/Mesa/Linux-g++ - -#set up DAWN -setenv G4VIS_BUILD_DAWN_DRIVER 1 -setenv G4VIS_USE_DAWN 1 -setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/DAWN/Linux-g++" +necessary to configure you environment to get visulaization, as described in geant4 manual. +If we want to use analisys, we provide an example for the use of PI: # flag that we want to use analysis: setenv G4ANALYSIS_USE 1 -#select AIDA implementation: PI 1.3.0 (for cern AFS) +#select AIDA implementation: PI 1.3.3 + setenv G4ANALYSIS_BUILD 1 -setenv PI_VERSION 1_3_0 -setenv PATH /afs/cern.ch/sw/lcg/app/releases/PI/PI_1_3_0/slc3_ia32_gcc323/bin/:${PATH} +setenv PI_VERSION 1_3_3 +setenv PATH /your/path/to/PI/app/releases/PI/PI_1_3_0/slc3_ia32_gcc323/bin/:${PATH} eval `aida-config -r csh` -setenv ANAPHE_REL_DIR /afs/cern.ch/sw/lcg/app/releases/PI/PI_1_3_0/slc3_ia32_gcc323/ -setenv AIDA_DIR /afs/cern.ch/sw/lcg/external/AIDA/3.2.1/share/src/cpp/ - -setenv LD_LIBRARY_PATH $OGLHOME/lib:$LD_LIBRARY_PATH -setenv LD_LIBRARY_PATH "/usr/local/gcc-alt-3.2/lib:${LD_LIBRARY_PATH}" - - #path to the lowEnergy data base -setenv G4LEDATA /afs/cern.ch/sw/geant4/dev/data/G4EMLOW2.3 +setenv G4LEDATA /your/path/to/geant4/data/G4EMLOW3.0 #path to Xray_Fluorescence data files, if not set, PWD is assumed: -setenv XRAYDATA /afs/cern.ch/user/u/username +setenv XRAYDATA /path/to/detector/and/input/spctra/files 1. Run After the compilation of the program, to execute a sample simulation type (for example): @@ -161,7 +140,7 @@ In this readme only two commands are undrlined: At present the analisys is provided by any AIDA-3.2.1 compliant analysis system. In the example the Anaphe toolkit is used. -AIDA / Anaphe configuration for compilation and link are in GNUmakefile, once +AIDA implementation configuration for compilation and link are in GNUmakefile, once is set the environmente as above: ifdef G4ANALYSIS_USE @@ -171,8 +150,8 @@ ifdef G4ANALYSIS_USE endif To build and execute the example on platforms where there is no -implementation of the analysis system, the environment variables -must not be set. +implementation of the analysis system, the environment variable +G4ANALYSIS_USE must not be set. By setting visPlotter variable in XrayFluoAnalysisManager to true, it is possible to display the simulated output of the detector while diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh index 3c4dfe418b..36704dc506 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoAnalysisManager.hh @@ -38,6 +38,7 @@ #ifndef G4PROCESSTESTANALYSIS_HH #define G4PROCESSTESTANALYSIS_HH +#ifdef G4ANALYSIS_USE #include "globals.hh" #include @@ -49,7 +50,7 @@ class G4Step; class XrayFluoAnalysisMessenger; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOoo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... class XrayFluoAnalysisManager { public: @@ -169,7 +170,7 @@ private: AIDA::IPlotter* plotter; }; - +#endif #endif diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh index 0b7614c619..871f0610eb 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh @@ -54,7 +54,7 @@ class G4LogicalVolume; class G4VPhysicalVolume; class G4Material; class XrayFluoDetectorMessenger; -class XrayFluoMaterials; +class XrayFluoNistMaterials; //class XrayFluoSD; //class XrayFluoVDetectorType; @@ -190,7 +190,7 @@ private: G4VPhysicalVolume* physiGrain; //materials management - XrayFluoMaterials* materials; + XrayFluoNistMaterials* materials; G4Material* OhmicPosMaterial; G4Material* OhmicNegMaterial; diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoMercuryDetectorConstruction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoMercuryDetectorConstruction.hh index 602afdd3c2..6e5c90d399 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoMercuryDetectorConstruction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoMercuryDetectorConstruction.hh @@ -51,7 +51,7 @@ class G4LogicalVolume; class G4VPhysicalVolume; class G4Material; class XrayFluoMercuryDetectorMessenger; -class XrayFluoMaterials; +class XrayFluoNistMaterials; //class XrayFluoSD; //class XrayFluoVDetectorType; @@ -176,7 +176,7 @@ private: G4VPhysicalVolume* physiGrain; //materials management - XrayFluoMaterials* materials; + XrayFluoNistMaterials* materials; G4Material* screenMaterial; G4Material* OhmicPosMaterial; diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoMaterials.hh b/examples/advanced/xray_fluorescence/include/XrayFluoNistMaterials.hh similarity index 72% rename from examples/advanced/xray_fluorescence/include/XrayFluoMaterials.hh rename to examples/advanced/xray_fluorescence/include/XrayFluoNistMaterials.hh index 634600f573..bf1df9ee95 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoMaterials.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoNistMaterials.hh @@ -32,66 +32,48 @@ // // ------------------------------------------------------------------- -#ifndef XrayFluoMaterials_hh -#define XrayFluoMaterials_hh 1 +#ifndef XrayFluoNistMaterials_hh +#define XrayFluoNistMaterials_hh 1 #include "globals.hh" #include "G4Material.hh" +#include "G4NistManager.hh" -class XrayFluoMaterials +class XrayFluoNistMaterials { public: - ~XrayFluoMaterials(); + ~XrayFluoNistMaterials(); - static XrayFluoMaterials* GetInstance(); + static XrayFluoNistMaterials* GetInstance(); G4Material* GetMaterial(G4String); private: - XrayFluoMaterials(); + XrayFluoNistMaterials(); void CreateMaterials(); private: - static XrayFluoMaterials* instance; + static XrayFluoNistMaterials* instance; + + G4NistManager* nistMan; G4Material* dolorite; - G4Material* FeMaterial; - G4Material* Al; - G4Material* Si; - G4Material* Cu; G4Material* HPGe; - G4Material* materialMg; - G4Material* materialNd; - G4Material* Sn; - G4Material* Ti; G4Material* mars1; G4Material* anorthosite; - G4Material* Pb; G4Material* basalt; G4Material* Air; G4Material* Sci; G4Material* Vacuum; - G4Material* Be; - G4Material* materialW; - G4Material* materialAg; - G4Material* Au; - G4Material* Cs; - G4Material* materialK; - G4Material* materialMn; - G4Material* materialP; - G4Material* materialS; - G4Material* materialCa; - G4Material* materialNa; - G4Material* U; - - - - + G4Material* madaBasalt; + G4Material* icelandicBasalt; + G4Material* GaAs; + G4Material* galactic; }; diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoPlaneDetectorConstruction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoPlaneDetectorConstruction.hh index 901fb43ccb..4cbe47178e 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoPlaneDetectorConstruction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoPlaneDetectorConstruction.hh @@ -51,7 +51,7 @@ class G4LogicalVolume; class G4VPhysicalVolume; class G4Material; class XrayFluoPlaneDetectorMessenger; -class XrayFluoMaterials; +class XrayFluoNistMaterials; //class XrayFluoSD; //class XrayFluoVDetectorType; @@ -177,7 +177,7 @@ private: G4VPhysicalVolume* physiGrain; //materials management - XrayFluoMaterials* materials; + XrayFluoNistMaterials* materials; G4Material* screenMaterial; G4Material* OhmicPosMaterial; diff --git a/examples/advanced/xray_fluorescence/initInter.mac b/examples/advanced/xray_fluorescence/initInter.mac index 0b60d324f1..6342893e5b 100644 --- a/examples/advanced/xray_fluorescence/initInter.mac +++ b/examples/advanced/xray_fluorescence/initInter.mac @@ -10,7 +10,7 @@ # # create empty scene # -#/vis/scene/create +/vis/scene/create # # Create a scene handler for a specific graphics system # (Edit the next line(s) to choose another graphic system) @@ -22,7 +22,6 @@ # draw scene # # - /vis/viewer/flush diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc index 0821b23c69..fe31fdf94a 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoAnalysisManager.cc @@ -35,10 +35,10 @@ // 28 Nov 2001 Elena Guardincerri Created // // ------------------------------------------------------------------- -#include +#ifdef G4ANALYSIS_USE + #include "G4VProcess.hh" #include -#include #include "G4ios.hh" #include "XrayFluoAnalysisManager.hh" #include "G4Step.hh" @@ -738,7 +738,7 @@ void XrayFluoAnalysisManager::SetOutputFileType(G4String newType) persistencyType = newType; } - +#endif diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc index 0ffbfb426e..1f340a34c1 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDataSet.cc @@ -34,7 +34,6 @@ #include "XrayFluoDataSet.hh" #include -#include #include "G4VDataSetAlgorithm.hh" XrayFluoDataSet::XrayFluoDataSet(G4int Z, diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc index 04e3841856..7be38194da 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc @@ -52,7 +52,7 @@ #include "G4ios.hh" #include "G4PVReplica.hh" #include "G4UserLimits.hh" -#include "XrayFluoMaterials.hh" +#include "XrayFluoNistMaterials.hh" #include "G4Region.hh" @@ -78,7 +78,7 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() defaultMaterial(0),HPGeSD(0) { - materials = XrayFluoMaterials::GetInstance(); + materials = XrayFluoNistMaterials::GetInstance(); DefineDefaultMaterials(); @@ -128,15 +128,15 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() G4String defaultDetectorType = "sili"; ComputeApparateParameters(); + G4String regName = "SampleRegion"; + sampleRegion = new G4Region(regName); + if (!phaseSpaceFlag) SetDetectorType(defaultDetectorType); // create commands for interactive definition of the apparate detectorMessenger = new XrayFluoDetectorMessenger(this); - G4String regName = "SampleRegion"; - sampleRegion = new G4Region(regName); - G4cout << "XrayFluoDetectorConstruction created" << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -201,12 +201,12 @@ void XrayFluoDetectorConstruction::DefineDefaultMaterials() //define materials of the apparate - sampleMaterial = materials->GetMaterial("MadaBasalt"); - Dia1Material = materials->GetMaterial("Lead"); + sampleMaterial = materials->GetMaterial("Mars1"); + Dia1Material = materials->GetMaterial("G4_Pb"); Dia3Material = materials->GetMaterial("Galactic"); - pixelMaterial = materials->GetMaterial("Silicon"); - OhmicPosMaterial = materials->GetMaterial("Copper"); - OhmicNegMaterial = materials->GetMaterial("Lead"); + pixelMaterial = materials->GetMaterial("G4_Si"); + OhmicPosMaterial = materials->GetMaterial("G4_Cu"); + OhmicNegMaterial = materials->GetMaterial("G4_Pb"); defaultMaterial = materials->GetMaterial("Galactic"); @@ -607,7 +607,6 @@ G4VPhysicalVolume* XrayFluoDetectorConstruction::ConstructApparate() } // cut per region - logicSample->SetRegion(sampleRegion); sampleRegion->AddRootLogicalVolume(logicSample); @@ -689,8 +688,6 @@ void XrayFluoDetectorConstruction::PrintApparateParameters() void XrayFluoDetectorConstruction::UpdateGeometry() { - - if (solidPixel) delete solidPixel; if (logicPixel) delete logicPixel; if (physiPixel) delete physiPixel; @@ -703,9 +700,19 @@ void XrayFluoDetectorConstruction::UpdateGeometry() if (solidHPGe) delete solidHPGe; if (logicHPGe) delete logicHPGe; if (physiHPGe) delete physiHPGe; + + //if (sampleRegion) sampleRegion->RemoveRootLogicalVolume(logicSample); if (solidSample) delete solidSample; if (logicSample) delete logicSample; if (physiSample) delete physiSample; + + if (solidDia1) delete solidDia1; + if (logicDia1) delete logicDia1; + if (physiDia1) delete physiDia1; + if (solidDia3) delete solidDia3; + if (logicDia3) delete logicDia3; + if (physiDia3) delete physiDia3; + if (solidWorld) delete solidWorld; if (logicWorld) delete logicWorld; if (physiWorld) delete physiWorld; diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc index 37a09d8cfb..d73b019a45 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorMessenger.cc @@ -56,10 +56,9 @@ XrayFluoDetectorMessenger::XrayFluoDetectorMessenger(XrayFluoDetectorConstructio UpdateCmd->AvailableForStates(G4State_Idle); sampleCmd = new G4UIcmdWithAString("/apparate/sampleMaterial",this); - sampleCmd->SetGuidance("select a diferent material for the sample"); + sampleCmd->SetGuidance("select a diferent material for the sample: materials can be: Dolorite, Anorthosite, Mars1, IceBasalt, HPGe OR choosen from Nist database (see /material/nist/listMaterials for details"); sampleCmd->SetParameterName("material",true); sampleCmd->SetDefaultValue("mars1"); - sampleCmd->SetCandidates("Dolorite Iron Silicon Aluinium Oxigen Titanium Tin Lead Neodimium Magnesium Copper Anorthosite Mars1 IceBasalt Silver Gold Caesium Potassium Manganese Phosphorus Sulphur Calcium Sodium Uranium HPGe"); sampleCmd->AvailableForStates(G4State_Idle); detectorCmd = new G4UIcmdWithAString("/apparate/detector",this); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc index 79623015e6..06721f85fe 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoEventAction.cc @@ -140,9 +140,10 @@ void XrayFluoEventAction::BeginOfEventAction(const G4Event* evt) if ( eventNumber % (G4int)5e6 != 0 ) G4cout << "#" << std::flush; else G4cout << "#"<< G4endl; // if ( eventNumber % 5e6 == 0 ) G4cout << "#"<< G4endl; - +#ifdef G4ANALYSIS_USE XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); analysis->PlotCurrentResults(); +#endif } if (HPGeCollID==-1) @@ -188,10 +189,10 @@ void XrayFluoEventAction::EndOfEventAction(const G4Event* evt) energyD = detectorType->ResponseFunction(totEnergy); // energyD = totEnergy; // G4cout << "energy deposit: "<< totEnergy << G4endl; - +#ifdef G4ANALYSIS_USE XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); analysis->analyseEnergyDep(energyD); - +#endif totEnergyDetect += energyD; diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoHPGeDetectorType.cc b/examples/advanced/xray_fluorescence/src/XrayFluoHPGeDetectorType.cc index 09729c34ee..a1d81583da 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoHPGeDetectorType.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoHPGeDetectorType.cc @@ -38,7 +38,7 @@ #include "G4LogLogInterpolation.hh" #include "G4ios.hh" #include -#include +#include #include "G4UnitsTable.hh" #include "Randomize.hh" @@ -242,13 +242,11 @@ G4double XrayFluoHPGeDetectorType::GetSupData(G4double energy, G4double random, } void XrayFluoHPGeDetectorType::LoadResponseData(G4String fileName) { - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); - + std::ostringstream ost; ost << fileName<<".dat"; - G4String name(nameChar); + G4String name = ost.str(); char* path = getenv("XRAYDATA"); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoMaterials.cc b/examples/advanced/xray_fluorescence/src/XrayFluoMaterials.cc deleted file mode 100644 index 147d46a0c3..0000000000 --- a/examples/advanced/xray_fluorescence/src/XrayFluoMaterials.cc +++ /dev/null @@ -1,700 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: XrayFluoDetectorConstruction.hh -// GEANT4 tag $Name: xray_fluo-V03-02-00 -// -// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) -// -// History: -// ----------- -// 20 Aug 2001 Alfonso Mantero Created -// -// ------------------------------------------------------------------- - -#include "XrayFluoMaterials.hh" - -XrayFluoMaterials::XrayFluoMaterials() -{ CreateMaterials();} - -XrayFluoMaterials* XrayFluoMaterials::instance = 0; - -XrayFluoMaterials* XrayFluoMaterials::GetInstance() -{ - if (instance == 0) - { - instance = new XrayFluoMaterials; - - } - return instance; -} - -G4Material* XrayFluoMaterials::GetMaterial(G4String material) -{ - G4Material* pttoMaterial = G4Material::GetMaterial(material); - return pttoMaterial; -} - - -void XrayFluoMaterials::CreateMaterials() -{ - - //define elements - G4String name, symbol; //a=mass of a mole; - G4double a, z, density; //z=mean number of protons; - G4int natoms,ncomponents; - G4double temperature, pressure; - G4double fractionmass; - - // Elements Definitions - - //define Niobium - - a = 92.906*g/mole; - G4Element* Nb = new G4Element(name="Niobium" ,symbol="Nb" , z= 41., a); - - //define Zirconium - - a = 91.22*g/mole; - G4Element* Zr = new G4Element(name="Zirconium" ,symbol="Zr" , z= 40., a); - - //define Yttrium - - a = 88.905*g/mole; - G4Element* Y = new G4Element(name="Yttrium" ,symbol="Y" , z= 39., a); - - //define Stronzium - - a = 87.62*g/mole; - G4Element* Sr = new G4Element(name="Stronzium" ,symbol="Sr" , z= 38., a); - - //define Rubidium - - a = 85.47*g/mole; - G4Element* Rb = new G4Element(name="Rubidium" ,symbol="Rb" , z= 37., a); - - //define Zinc - - a = 65.37*g/mole; - G4Element* Zn = new G4Element(name="Zinc" ,symbol="Zn" , z= 30., a); - - //define Nichel - - a = 58.71*g/mole; - G4Element* Ni = new G4Element(name="Nichel" ,symbol="Ni" , z= 28., a); - - //define Scandio - - a = 44.956*g/mole; - G4Element* Sc = new G4Element(name="Scandium" ,symbol="Sc" , z= 21., a); - - //define Vanadium - - a = 50.942*g/mole; - G4Element* V = new G4Element(name="Vanadium" ,symbol="V" , z= 39., a); - - //define Vanadium - - a = 183.84*g/mole; - G4Element* W = new G4Element(name="Tungsten" ,symbol="W" , z= 74., a); - - - //define Cromium - - a = 51.996*g/mole; - G4Element* Cr = new G4Element(name="Cromium" ,symbol="Cr" , z= 24., a); - - //define Cobalt - - a = 58.933*g/mole; - G4Element* Co = new G4Element(name="Cobalt" ,symbol="Co" , z= 27., a); - - //define Copper - - a = 63.54*g/mole; - G4Element* elCu = new G4Element(name="Copper" ,symbol="Cu" , z= 29., a); - - //define Barium - - a = 137.34*g/mole; - G4Element* Ba = new G4Element(name="Barium" ,symbol="Ba" , z= 56., a); - - //define Cerium - - a = 140.12*g/mole; - G4Element* Ce = new G4Element(name="Cerium" ,symbol="Ce" , z= 58., a); - - //define Neodimuim - - a = 144.24*g/mole; - G4Element* Nd = new G4Element(name="Neodimuim" ,symbol="Nd" , z= 60., a); - - - //Define Zolfo - - a = 32.064*g/mole; - G4Element* elS = new G4Element(name="Sulphur" ,symbol="S" , z= 16., a); - - - //define carbon - - a = 12.0107*g/mole; - G4Element* C = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); - - //define Nitrogen - - a = 14.01*g/mole; - G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); - - // define Oxigen - a = 15.9994*g/mole; - G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); - - //define Arsenic - a = 74.9216 * g/mole; - G4Element * As = new G4Element( name="arsenic",symbol="As",z= 33.,a); - - //Define Gallium - a = 69.72* g/mole; - G4Element * Ga = new G4Element(name="gallium",symbol="Ga",z= 31.,a); - - //define Iron - a = 55.847*g/mole; - G4Element* Fe = new G4Element(name="Iron" ,symbol="Fe", z=26., a); - //define hydrogen - - a = 1.01*g/mole; - G4Element* H = new G4Element(name="Hydrogen",symbol="H" , z= 1., a); - - //define germanium - a = 72.61*g/mole; - G4Element* Ge = new G4Element(name="Germanium",symbol="Ge", z= 32.,a); - - //define phosporus - a = 30.97*g/mole; - G4Element* P = new G4Element(name="Phosporus",symbol="P", z= 15., a); - - // define Titanium - a = 47.88*g/mole; - G4Element* elTi = new G4Element(name="Titanium",symbol="Ti" , z= 22., a); - - // define Calcium - a = 40.078*g/mole; - G4Element* Ca = new G4Element(name="Calcium",symbol="Ca" , z= 20., a); - - // define silicon - a = 28.0855*g/mole; - G4Element* elSi = new G4Element(name="Silicon",symbol="Si" , z= 14., a); - - // define Aluminium - a = 26.98154*g/mole; - G4Element* elAl = new G4Element(name="Aluminium",symbol="Al" , z= 13., a); - - // Define Magnesium - a = 24.305*g/mole; - G4Element* Mg = new G4Element(name="Magnesium",symbol="Mg" , z= 12., a); - - // Define Manganese - a = 54.938*g/mole; - G4Element* Mn = new G4Element(name="Manganese",symbol="Mn" , z= 25., a); - - // Define Sodium - a = 22.989*g/mole; - G4Element* Na = new G4Element(name="Sodium",symbol="Na" , z= 11., a); - - // Define Potassium - a = 39.10*g/mole; - G4Element* K = new G4Element(name="Potassium",symbol="K" , z= 19., a); - // Define lead - - a=207.19*g/mole; - G4Element* elPb = new G4Element(name="Lead",symbol="pb", z=82.,a); - - //define Uranium - - a = 238.02891*g/mole; - G4Element* elU = new G4Element(name="Uranium",symbol="U", z=92.,a); - - - // define Palladium - a= 106.4*g/mole; - G4Element* Pd = new G4Element(name="Palladium",symbol="Pd",z=46.,a); - - // define cadmium - a = 112.4 *g/mole; - G4Element* Cd = new G4Element(name="Cadmium",symbol="Cd",z=48.,a); - - // define Silver - a = 107.87 *g/mole; - G4Element* Ag = new G4Element(name="Silver",symbol="Ag",z=47.,a); - - // define Clorine - a = 35.453 * g/mole; - G4Element * Cl = new G4Element( name="Chlorine",symbol="Cl",z= 17.,a); - - // define Lantanium - a = 138.91 * g/mole; - G4Element * La = new G4Element( name="Lantanium",symbol="La",z= 57.,a); - - // define Molibdenum - a = 95.94 * g/mole; - G4Element * Mo = new G4Element( name="Molibdenum",symbol="Mo",z= 42.,a); - - // define Thorium - a = 232.0381*g/mole; - G4Element* Th = new G4Element(name="Thorium",symbol="Th" , z= 90., a); - - // define Samarium - a = 150.36*g/mole; - G4Element* Sm = new G4Element(name="Samarium",symbol="Sm" , z= 62., a); - - // define Europium - a = 151.964*g/mole; - G4Element* Eu = new G4Element(name="Europium",symbol="Eu" , z= 63., a); - - // define Gadolinium - a = 157.25*g/mole; - G4Element* Gd = new G4Element(name="Gadolinium",symbol="Gd" , z= 64., a); - - // define Terbium - a = 158.92534*g/mole; - G4Element* Tb = new G4Element(name="Terbium",symbol="Tb" , z= 65., a); - - // define Ytterbium - a = 173.04*g/mole; - G4Element* Yb = new G4Element(name="Ytterbium",symbol="Yb" , z= 70., a); - - // define Lutetium - a = 174.967*g/mole; - G4Element* Lu = new G4Element(name="Lutetium",symbol="Lu" , z= 71., a); - - // define Tantalum - a = 180.9479*g/mole; - G4Element* Ta = new G4Element(name="Tantalum",symbol="Ta" , z= 73., a); - - // define Hafnium - a = 178.49*g/mole; - G4Element* Hf = new G4Element(name="Hafnium",symbol="Hf" , z= 73., a); - - G4cout << "Elements created" << G4endl; - - - // Materials Definitions - - // Define Madagascar Basalt main components 0054.PP.0044 sample - density = 3*g/cm3; - G4Material* madaBasaltMain= new G4Material(name="MadaBasaltMain", density, ncomponents=11); - madaBasaltMain->AddElement(elSi,fractionmass=0.1992); // 0.007093 mol/g(mat) - madaBasaltMain->AddElement(elTi,fractionmass=0.02027); // 4.235e-4 - madaBasaltMain->AddElement(elAl,fractionmass=0.04758); // 0.001763 - madaBasaltMain->AddElement(Fe, fractionmass=0.1303); // 0.002333 - madaBasaltMain->AddElement(Mn, fractionmass=0.001549);// 2.820e-5 - madaBasaltMain->AddElement(Mg, fractionmass=0.08141); // 0.003350 - madaBasaltMain->AddElement(Ca, fractionmass=0.06468); // 0.001614 - madaBasaltMain->AddElement(Na, fractionmass=0.01692); // 7.360e-4 - madaBasaltMain->AddElement(K, fractionmass=0.008576);// 2.193e-4 - madaBasaltMain->AddElement(P, fractionmass=0.001977);// 6.383e-5 - madaBasaltMain->AddElement(O, fractionmass=0.427538);// 0.02672 - // sum is 0.04434383 total number of moles of atoms in one gram of material - // 2.248766e8 g per 10.000.000 moles. - -// Define Madagascar Basalt traces components 0054.PP.0044 sample - density = 3*g/cm3; - G4Material* madaBasaltTraces= new G4Material(name="MadaBasaltTraces", density, ncomponents=24); - - madaBasaltTraces->AddElement(elTi,natoms=33); - madaBasaltTraces->AddElement(Ba ,natoms=4131); - madaBasaltTraces->AddElement(Ce ,natoms=694); - madaBasaltTraces->AddElement(Co ,natoms=965); - madaBasaltTraces->AddElement(Cr ,natoms=5584); - madaBasaltTraces->AddElement(La ,natoms=269); - madaBasaltTraces->AddElement(Nb ,natoms=259); - madaBasaltTraces->AddElement(Nd ,natoms=410); - madaBasaltTraces->AddElement(Ni ,natoms=389); - madaBasaltTraces->AddElement(Rb ,natoms=227); - madaBasaltTraces->AddElement(Sc ,natoms=212); - madaBasaltTraces->AddElement(Sr ,natoms=8686); - madaBasaltTraces->AddElement(V ,natoms=4203); - madaBasaltTraces->AddElement(Y ,natoms=272); - madaBasaltTraces->AddElement(Zn ,natoms=1440); - madaBasaltTraces->AddElement(Th ,natoms=19); - madaBasaltTraces->AddElement(Sm ,natoms=93); - madaBasaltTraces->AddElement(Eu ,natoms=32); - madaBasaltTraces->AddElement(Gd ,natoms=89); - madaBasaltTraces->AddElement(Tb ,natoms=13); - madaBasaltTraces->AddElement(Yb ,natoms=15); - madaBasaltTraces->AddElement(Lu ,natoms=2); - madaBasaltTraces->AddElement(Ta ,natoms=15); - madaBasaltTraces->AddElement(Hf ,natoms=62); //tot 28114/10e7 weight: 2335253.28 g per 10e6 moles - - // Define Madacagascar Basalt complete material 0054.PP.0044 sample - density = 3*g/cm3; - G4Material* madaBasalt= new G4Material(name="MadaBasalt", density, ncomponents=2); - madaBasalt->AddMaterial(madaBasaltMain, fractionmass=0.9897); - madaBasalt->AddMaterial(madaBasaltTraces, fractionmass=0.0103); - - // Define Icelandic Basalt main components 0029.PP.0035 sample - density = 3*g/cm3; - G4Material* icelandicBasaltMain= new G4Material(name="IceBasaltMain", density, ncomponents=12); - icelandicBasaltMain->AddElement(elSi,fractionmass=0.2313); - icelandicBasaltMain->AddElement(elTi,fractionmass=0.0127); - icelandicBasaltMain->AddElement(elAl,fractionmass=0.0702); - icelandicBasaltMain->AddElement(Fe, fractionmass=0.1134); - icelandicBasaltMain->AddElement(Mn, fractionmass=0.0019); - icelandicBasaltMain->AddElement(Mg, fractionmass=0.0349); - icelandicBasaltMain->AddElement(Ca, fractionmass=0.0756); - icelandicBasaltMain->AddElement(Na, fractionmass=0.0892); - icelandicBasaltMain->AddElement(K, fractionmass=0.0032); - icelandicBasaltMain->AddElement(P, fractionmass=0.00096); - icelandicBasaltMain->AddElement(elS, fractionmass=0.0004); - icelandicBasaltMain->AddElement(O, fractionmass=0.36624); - - // Define Icelandic Basalt traces components 0029.PP.0035 sample - density = 3*g/cm3; - G4Material* icelandicBasaltTraces= new G4Material(name="IceBasaltTraces", density, ncomponents=20); - icelandicBasaltTraces->AddElement(Ba, natoms=756); - icelandicBasaltTraces->AddElement(Ce ,natoms=328); - icelandicBasaltTraces->AddElement(Co ,natoms=643); - icelandicBasaltTraces->AddElement(Cr ,natoms=1000); - icelandicBasaltTraces->AddElement(elCu,natoms=1396); - icelandicBasaltTraces->AddElement(Ga ,natoms=190); - icelandicBasaltTraces->AddElement(La ,natoms=103); - icelandicBasaltTraces->AddElement(Mo ,natoms=9); - icelandicBasaltTraces->AddElement(Nb ,natoms=114); - icelandicBasaltTraces->AddElement(Nd ,natoms=104); - icelandicBasaltTraces->AddElement(Ni ,natoms=544); - icelandicBasaltTraces->AddElement(Rb ,natoms=78); - icelandicBasaltTraces->AddElement(elS ,natoms=5550); - icelandicBasaltTraces->AddElement(Sc ,natoms=531); - icelandicBasaltTraces->AddElement(Sr ,natoms=1353); - icelandicBasaltTraces->AddElement(elU ,natoms=22); - icelandicBasaltTraces->AddElement(V ,natoms=4533); - icelandicBasaltTraces->AddElement(Y ,natoms=408); - icelandicBasaltTraces->AddElement(Zn ,natoms=1259); - icelandicBasaltTraces->AddElement(Zr ,natoms=1274); - - - // Define Icelandic Basalt complete material 0029.PP.0035 sample - density = 3*g/cm3; - G4Material* icelandicBasalt= new G4Material(name="IceBasalt", density, ncomponents=2); - icelandicBasalt->AddMaterial(icelandicBasaltMain, fractionmass=0.9978); - icelandicBasalt->AddMaterial(icelandicBasaltTraces, fractionmass=0.0022); - - - // Define dolorite main components 0055.PP.0038 sample - - density = 3*g/cm3; - G4Material* diorite = new G4Material(name="Diorite", density, ncomponents=11); - diorite->AddElement(Fe, fractionmass=0.1750); - diorite->AddElement(elTi, fractionmass=0.0082); - diorite->AddElement(Ca, fractionmass=0.0753); - diorite->AddElement(elSi, fractionmass=0.2188); - diorite->AddElement(elAl, fractionmass=0.0676); - diorite->AddElement(Mg, fractionmass=0.0008); - diorite->AddElement(O , fractionmass=0.4377); - diorite->AddElement(Mn , fractionmass=0.0015); - diorite->AddElement(Na , fractionmass=0.0134); - diorite->AddElement(K , fractionmass=0.0011); - diorite->AddElement(P , fractionmass=0.0006); - - // define traces in dolorite 0055.PP.0038 sample - - density = 3*g/cm3; - G4Material* tracesOfDolorite = new G4Material(name="TracesOfDolorite", density, ncomponents=16); - tracesOfDolorite->AddElement(Nb, natoms=5); - tracesOfDolorite->AddElement(Zr, natoms=91); - tracesOfDolorite->AddElement(Y, natoms=29); - tracesOfDolorite->AddElement(Sr, natoms=140); - tracesOfDolorite->AddElement(Rb, natoms=3); - tracesOfDolorite->AddElement(Ga, natoms=20); - tracesOfDolorite->AddElement(Zn, natoms=99); - tracesOfDolorite->AddElement(Ni, natoms=77); - tracesOfDolorite->AddElement(Sc, natoms=32); - tracesOfDolorite->AddElement(V, natoms=314); - tracesOfDolorite->AddElement(Cr, natoms=130); - tracesOfDolorite->AddElement(Co, natoms=56); - tracesOfDolorite->AddElement(elCu, natoms=119); - tracesOfDolorite->AddElement(Ba, natoms=38); - tracesOfDolorite->AddElement(Ce, natoms=15); - tracesOfDolorite->AddElement(Nd, natoms=9); - - // define dolorite (full) -- 0055.PP.0038 sample - - density = 3*g/cm3; - dolorite = new G4Material(name="Dolorite", density, ncomponents=2); - dolorite->AddMaterial(tracesOfDolorite, fractionmass=0.0027842352); - dolorite->AddMaterial(diorite, fractionmass=0.9972157648); - - // define mars1 -- 01.PP.0030 sample - - density = 3*g/cm3; - G4Material* mars1Main = new G4Material(name="Mars1 Main components", density, ncomponents=11); - mars1Main->AddElement(Fe, fractionmass=0.100916); - mars1Main->AddElement(elTi, fractionmass=0.0186804); - mars1Main->AddElement(Ca, fractionmass=0.0404091); - mars1Main->AddElement(elSi, fractionmass=0.196378); - mars1Main->AddElement(elAl, fractionmass=0.103282); - mars1Main->AddElement(Mg, fractionmass=0.0241622); - mars1Main->AddElement(Mn , fractionmass=0.00184331); - mars1Main->AddElement(Na , fractionmass=0.0177908); - mars1Main->AddElement(K , fractionmass=0.00574498); - mars1Main->AddElement(P , fractionmass=0.00280169); - mars1Main->AddElement(O , fractionmass=0.48799152); - - density = 3*g/cm3; - G4Material* tracesOfMars1 = new G4Material(name="TracesOfMars1", density, ncomponents=17); - tracesOfMars1->AddElement(Nb, natoms=55); - tracesOfMars1->AddElement(Zr, natoms=433); - tracesOfMars1->AddElement(Y, natoms=58); - tracesOfMars1->AddElement(Sr, natoms=968); - tracesOfMars1->AddElement(Rb, natoms=16); - tracesOfMars1->AddElement(Ga, natoms=24); - tracesOfMars1->AddElement(Zn, natoms=109); - tracesOfMars1->AddElement(Ni, natoms=70); - tracesOfMars1->AddElement(Sc, natoms=21); - tracesOfMars1->AddElement(V, natoms=134); - tracesOfMars1->AddElement(Cr, natoms=141); - tracesOfMars1->AddElement(Co, natoms=30); - tracesOfMars1->AddElement(elCu, natoms=19); - tracesOfMars1->AddElement(Ba, natoms=580); - tracesOfMars1->AddElement(elPb, natoms=4); - tracesOfMars1->AddElement(elS, natoms=444); - tracesOfMars1->AddElement(elU, natoms=2); - - - density = 3*g/cm3; - mars1 = new G4Material(name="Mars1", density, ncomponents=2); - mars1->AddMaterial(tracesOfMars1, fractionmass=0.0044963163); - mars1->AddMaterial(mars1Main, fractionmass=0.9955036837); - - // define anorthosite - - density = 2.8*g/cm3; - anorthosite = new G4Material(name="Anorthosite", density, ncomponents=21); - anorthosite->AddElement(Fe, fractionmass=0.095283); - anorthosite->AddElement(Mn, fractionmass=0.00137086); - anorthosite->AddElement(Ni, fractionmass=5e-5); - anorthosite->AddElement(elCu, fractionmass=5.2e-4); - anorthosite->AddElement(Na, fractionmass=0.017635); - anorthosite->AddElement(Mg, fractionmass=0.0245361); - anorthosite->AddElement(elAl, fractionmass=0.0800355); - anorthosite->AddElement(elSi, fractionmass=0.232204); - anorthosite->AddElement(Ca, fractionmass=0.0635368); - anorthosite->AddElement(K, fractionmass=0.00464912); - anorthosite->AddElement(C, fractionmass=0.000837803); - anorthosite->AddElement(P, fractionmass=0.00176742); - anorthosite->AddElement(elTi, fractionmass=0.0240879); - anorthosite->AddElement(Cl, fractionmass=0.00014); - anorthosite->AddElement(Pd, fractionmass=0.00001); - anorthosite->AddElement(Cd, fractionmass=0.00018); - anorthosite->AddElement(Ag, fractionmass=0.00048); - anorthosite->AddElement(elS, fractionmass=0.00144); - anorthosite->AddElement(V, fractionmass=0.00228); - anorthosite->AddElement(Ba, fractionmass=0.00151); - anorthosite->AddElement(O, fractionmass=0.447026); - - - //define Neodimuim - - density = 6800*kg/m3; - materialNd = new G4Material(name="Neodimuim" ,density , ncomponents=1); - materialNd ->AddElement(Nd,natoms=1); - - // define Berillium - density = 1848 * kg/m3; - a = 9.012182 * g / mole; - Be = new G4Material(name="Beryllium",z=4., a,density); - - - // Define Magnesium - density = 1738 * kg/m3; - materialMg = new G4Material(name="Magnesium",density , ncomponents=1); - materialMg->AddElement(Mg,natoms=1); - - - //define Tungsten - density = 19250 * kg/m3; - materialW = new G4Material(name="Tungsten",density , ncomponents=1); - materialW->AddElement(W,natoms=1); - - - //define iron - - density = 7.86 * g/cm3; - FeMaterial = new G4Material(name="Iron",density,ncomponents=1); - FeMaterial->AddElement(Fe,natoms=1); - - - - //define gallium arsenide - - density = 5.32 * g/cm3; - G4Material * GaAs = new G4Material(name ="gallium arsenide",density,ncomponents=2); - GaAs->AddElement(Ga,natoms=1); - GaAs->AddElement(As,natoms=1); - - - // define germanium - - density = 5.32 * g/cm3; - HPGe = new G4Material(name="HPGe",density,ncomponents=1); - HPGe ->AddElement(Ge,natoms=1); - - //define silicon - - density = 2.333*g/cm3; - a = 28.0855*g/mole; - Si = new G4Material(name="Silicon",z=14., a,density); - - //define copper - - density = 8.960*g/cm3; - a = 63.55*g/mole; - Cu = new G4Material(name="Copper" , z=29., a, density); - - - - ////define Oxigen - //density = 1*g/cm3; - //a=16*g/mole; - //G4Material* matOx = new G4Material(name="Oxigen", z=8., a, density); - - //define aluminium - - density = 2.700*g/cm3; - a = 26.98*g/mole; - Al = new G4Material(name="Aluminium", z=13., a, density); - - //define titanium - density = 4.54 *g/cm3; - a = 47.867*g/mole; - Ti = new G4Material(name="Titanium",z=22.,a,density); - - - //define Uranium - density = 19050*kg/m3; - a = 238.02891*g/mole; - U = new G4Material(name="Uranium",z=92.,a,density); - - //define Tin - density = 7310*kg/m3; - a = 118.710*g/mole; - Sn = new G4Material(name="Tin",z=50.,a,density); - - //define lead - - density = 11.35*g/cm3; - a=207.19*g/mole; - Pb = new G4Material(name="Lead",z=82.,a,density); - - // define Silver material - density = 10490*kg/m3; - materialAg = new G4Material(name="Silver" ,density , ncomponents=1); - materialAg ->AddElement(Ag,natoms=1); - - //define gold - - density = 19300*kg/m3; - a= 196.96655*g/mole; - Au = new G4Material(name="Gold",z=79.,a,density); - - //define caesium - - density = 1879*kg/m3; - a= 132.90545*g/mole; - Cs = new G4Material(name="Caesium",z=55.,a,density); - - // define Potassium material - density = 1879*kg/m3; - materialK = new G4Material(name="Potassium" ,density , ncomponents=1); - materialK ->AddElement(K,natoms=1); - - // define Manganese material - density = 7470*kg/m3; - materialMn = new G4Material(name="Manganese" ,density , ncomponents=1); - materialMn ->AddElement(Mn,natoms=1); - - // define Phosphorus material - density = 1823*kg/m3; - materialP = new G4Material(name="Phosphorus" ,density , ncomponents=1); - materialP ->AddElement(P,natoms=1); - - // define Sufur material - density = 1960*kg/m3; - materialS = new G4Material(name="Sulphur" ,density , ncomponents=1); - materialS ->AddElement(elS,natoms=1); - - // define Calcium material - density = 1550*kg/m3; - materialCa = new G4Material(name="Calcium" ,density , ncomponents=1); - materialCa ->AddElement(Ca,natoms=1); - - // define Sodium material - density = 968*kg/m3; - materialNa = new G4Material(name="Sodium" ,density , ncomponents=1); - materialNa ->AddElement(Na,natoms=1); - - - - - - - - //define scintillator - - density = 1.032*g/cm3; - Sci = new G4Material(name="Scintillator", density, ncomponents=2); - Sci->AddElement(C, natoms=9); - Sci->AddElement(H, natoms=10); - - - //define air - - density = 1.290*mg/cm3; - Air = new G4Material(name="Air" , density, ncomponents=2); - Air->AddElement(N, fractionmass=0.7); - Air->AddElement(O, fractionmass=0.3); - - //define vacuum - - density = universe_mean_density; //from PhysicalConstants.h - pressure = 3.e-18*pascal; - temperature = 2.73*kelvin; - Vacuum = new G4Material(name="Galactic", z=1., a=1.01*g/mole, density, - kStateGas,temperature,pressure); - - //define basalt - density = 3.*g/cm3; - basalt = new G4Material(name="Basalt", density, ncomponents=7); - basalt->AddElement(Fe, fractionmass=0.1200); - basalt->AddElement(elTi, fractionmass=0.0160); - basalt->AddElement(Ca, fractionmass=0.0750); - basalt->AddElement(elSi, fractionmass=0.2160); - basalt->AddElement(elAl, fractionmass=0.0710); - basalt->AddElement(Mg, fractionmass=0.0590); - basalt->AddElement(O , fractionmass=0.4430); - - - G4cout << *(G4Material::GetMaterialTable()) << G4endl; -} - diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorConstruction.cc index 67a994b6b6..6c5f07380b 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoMercuryDetectorConstruction.cc @@ -49,7 +49,7 @@ #include "G4ios.hh" #include "G4PVReplica.hh" #include "G4UserLimits.hh" -#include "XrayFluoMaterials.hh" +#include "XrayFluoNistMaterials.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -70,7 +70,7 @@ XrayFluoMercuryDetectorConstruction::XrayFluoMercuryDetectorConstruction() defaultMaterial(0),HPGeSD(0) { - materials = XrayFluoMaterials::GetInstance(); + materials = XrayFluoNistMaterials::GetInstance(); DefineDefaultMaterials(); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoNistMaterials.cc b/examples/advanced/xray_fluorescence/src/XrayFluoNistMaterials.cc new file mode 100644 index 0000000000..220c2f81e3 --- /dev/null +++ b/examples/advanced/xray_fluorescence/src/XrayFluoNistMaterials.cc @@ -0,0 +1,428 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: XrayFluoDetectorConstruction.hh +// GEANT4 tag $Name: xray_fluo-V03-02-00 +// +// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) +// +// History: +// ----------- +// 20 Aug 2001 Alfonso Mantero Created +// +// ------------------------------------------------------------------- + +#include "XrayFluoNistMaterials.hh" + +XrayFluoNistMaterials::XrayFluoNistMaterials() +{ CreateMaterials();} + +XrayFluoNistMaterials::~XrayFluoNistMaterials() +{ + delete dolorite; + delete HPGe; + delete mars1; + delete galactic; + delete madaBasalt; + delete icelandicBasalt; + delete GaAs; +} +XrayFluoNistMaterials* XrayFluoNistMaterials::instance = 0; + +XrayFluoNistMaterials* XrayFluoNistMaterials::GetInstance() +{ + if (instance == 0) + { + instance = new XrayFluoNistMaterials; + + } + return instance; +} + +G4Material* XrayFluoNistMaterials::GetMaterial(G4String material) +{ + + //instancing G4NistManager + nistMan = G4NistManager::Instance(); + nistMan->SetVerbose(0); + + G4Material* mat = nistMan->FindOrBuildMaterial(material); + if (!mat) { + mat = G4Material::GetMaterial(material); + } + if (!mat) {G4cout << material << "Not Found, Please Retry"<< G4endl;} + return mat; +} + + +void XrayFluoNistMaterials::CreateMaterials() +{ + + G4double density; + std::vector natoms; + std::vector fractionMass; + std::vector elements; + + + //instancing G4NistManager + nistMan = G4NistManager::Instance(); + nistMan->SetVerbose(1); + + // Materials Definitions + + + /////////////////////// + // Madagascar Basalt // + /////////////////////// + + + // Define Madagascar Basalt main components 0054.PP.0044 sample + density = 3*g/cm3; + elements.push_back("Si"); fractionMass.push_back(0.1992); // 0.007093 mol/g(mat) + elements.push_back("Ti"); fractionMass.push_back(0.02027); // 4.235e-4 + elements.push_back("Al"); fractionMass.push_back(0.04758); // 0.001763 + elements.push_back("Fe"); fractionMass.push_back(0.1303); // 0.002333 + elements.push_back("Mn"); fractionMass.push_back(0.001549);// 2.820e-5 + elements.push_back("Mg"); fractionMass.push_back(0.08141); // 0.003350 + elements.push_back("Ca"); fractionMass.push_back(0.06468); // 0.001614 + elements.push_back("Na"); fractionMass.push_back(0.01692); // 7.360e-4 + elements.push_back("K"); fractionMass.push_back(0.008576);// 2.193e-4 + elements.push_back("P"); fractionMass.push_back(0.001977);// 6.383e-5 + elements.push_back("O"); fractionMass.push_back(0.427538);// 0.02672 + + // sum is 0.04434383 total number of moles of atoms in one gram of material + // 2.248766e8 g per 10.000.000 moles. + + G4Material* madaBasaltMain= nistMan->ConstructNewMaterial("MadaBasaltMain",elements, fractionMass, density); + elements.clear(); + fractionMass.clear(); + +// Define Madagascar Basalt traces components 0054.PP.0044 sample + density = 3*g/cm3; + + + elements.push_back("Ti"); natoms.push_back(33); + elements.push_back("Ba"); natoms.push_back(4131); + elements.push_back("Ce"); natoms.push_back(694); + elements.push_back("Co"); natoms.push_back(965); + elements.push_back("Cr"); natoms.push_back(5584); + elements.push_back("La"); natoms.push_back(269); + elements.push_back("Nb"); natoms.push_back(259); + elements.push_back("Nd"); natoms.push_back(410); + elements.push_back("Ni"); natoms.push_back(389); + elements.push_back("Rb"); natoms.push_back(227); + elements.push_back("Sc"); natoms.push_back(212); + elements.push_back("Sr"); natoms.push_back(8686); + elements.push_back("V"); natoms.push_back(4203); + elements.push_back("Y"); natoms.push_back(272); + elements.push_back("Zn"); natoms.push_back(1440); + elements.push_back("Th"); natoms.push_back(19); + elements.push_back("Sm"); natoms.push_back(93); + elements.push_back("Eu"); natoms.push_back(32); + elements.push_back("Gd"); natoms.push_back(89); + elements.push_back("Tb"); natoms.push_back(13); + elements.push_back("Yb"); natoms.push_back(15); + elements.push_back("Lu"); natoms.push_back(2); + elements.push_back("Ta"); natoms.push_back(15); + elements.push_back("Hf"); natoms.push_back(62); + + //tot 28114/10e7 weight: 2335253.28 g per 10e6 moles + + G4Material* madaBasaltTraces= nistMan->ConstructNewMaterial("MadaBasaltTraces", elements, natoms, density); + elements.clear(); + natoms.clear(); + + // Define Madacagascar Basalt complete material 0054.PP.0044 sample + density = 3*g/cm3; + + madaBasalt= new G4Material("MadaBasalt", density, 2); + madaBasalt->AddMaterial(madaBasaltMain, 0.9897); + madaBasalt->AddMaterial(madaBasaltTraces, 0.0103); + + + + /////////////////////// + // Iceland Basalt // + /////////////////////// + + elements.push_back("Si"); fractionMass.push_back(0.2313); + elements.push_back("Ti"); fractionMass.push_back(0.0127); + elements.push_back("Al"); fractionMass.push_back(0.0702); + elements.push_back("Fe"); fractionMass.push_back(0.1134); + elements.push_back("Mn"); fractionMass.push_back(0.0019); + elements.push_back("Mg"); fractionMass.push_back(0.0349); + elements.push_back("Ca"); fractionMass.push_back(0.0756); + elements.push_back("Na"); fractionMass.push_back(0.0892); + elements.push_back("K"); fractionMass.push_back(0.0032); + elements.push_back("P"); fractionMass.push_back(0.00096); + elements.push_back("S"); fractionMass.push_back(0.0004); + elements.push_back("O"); fractionMass.push_back(0.36624); + + // Define Icelandic Basalt main components 0029.PP.0035 sample + density = 3*g/cm3; + G4Material* icelandicBasaltMain= nistMan->ConstructNewMaterial("IceBasaltMain",elements, fractionMass, density); + + // Define Icelandic Basalt traces components 0029.PP.0035 sample + density = 3*g/cm3; + + elements.push_back("Ba"); natoms.push_back(756); + elements.push_back("Ce"); natoms.push_back(328); + elements.push_back("Co"); natoms.push_back(643); + elements.push_back("Cr"); natoms.push_back(1000); + elements.push_back("Cu"); natoms.push_back(1396); + elements.push_back("Ga"); natoms.push_back(190); + elements.push_back("La"); natoms.push_back(103); + elements.push_back("Mo"); natoms.push_back(9); + elements.push_back("Nb"); natoms.push_back(114); + elements.push_back("Nd"); natoms.push_back(104); + elements.push_back("Ni"); natoms.push_back(544); + elements.push_back("Rb"); natoms.push_back(78); + elements.push_back("S"); natoms.push_back(5550); + elements.push_back("Sc"); natoms.push_back(531); + elements.push_back("Sr"); natoms.push_back(1353); + elements.push_back("U"); natoms.push_back(22); + elements.push_back("V"); natoms.push_back(4533); + elements.push_back("Y"); natoms.push_back(408); + elements.push_back("Zn"); natoms.push_back(1259); + elements.push_back("Zr"); natoms.push_back(1274); + + G4Material* icelandicBasaltTraces= nistMan->ConstructNewMaterial("IceBasaltTraces", elements, natoms, density); + + elements.clear(); + natoms.clear(); + + // Define Icelandic Basalt complete material 0029.PP.0035 sample + density = 3*g/cm3; + icelandicBasalt= new G4Material("IceBasalt", density, 2); + icelandicBasalt->AddMaterial(icelandicBasaltMain, 0.9978); + icelandicBasalt->AddMaterial(icelandicBasaltTraces, 0.0022); + + + /////////////////////// + // Dolorite // + /////////////////////// + + // Define dolorite main components 0055.PP.0038 sample + + density = 3*g/cm3; + + elements.push_back("Fe"); fractionMass.push_back(0.1750); + elements.push_back("Ti"); fractionMass.push_back(0.0082); + elements.push_back("Ca"); fractionMass.push_back(0.0753); + elements.push_back("Si"); fractionMass.push_back(0.2188); + elements.push_back("Al"); fractionMass.push_back(0.0676); + elements.push_back("Mg"); fractionMass.push_back(0.0008); + elements.push_back("O"); fractionMass.push_back(0.4377); + elements.push_back("Mn"); fractionMass.push_back(0.0015); + elements.push_back("Na"); fractionMass.push_back(0.0134); + elements.push_back("K"); fractionMass.push_back(0.0011); + elements.push_back("P"); fractionMass.push_back(0.0006); + + + G4Material* dolorite = nistMan->ConstructNewMaterial("Dolorite", elements, fractionMass, density); + + elements.clear(); + natoms.clear(); + + // define traces in dolorite 0055.PP.0038 sample + + density = 3*g/cm3; + + elements.push_back("Nb"); natoms.push_back(5); + elements.push_back("Zr"); natoms.push_back(91); + elements.push_back("Y"); natoms.push_back(29); + elements.push_back("Sr"); natoms.push_back(140); + elements.push_back("Rb"); natoms.push_back(3); + elements.push_back("Ga"); natoms.push_back(20); + elements.push_back("Zn"); natoms.push_back(99); + elements.push_back("Ni"); natoms.push_back(77); + elements.push_back("Sc"); natoms.push_back(32); + elements.push_back("V"); natoms.push_back(314); + elements.push_back("Cr"); natoms.push_back(130); + elements.push_back("Co"); natoms.push_back(56); + elements.push_back("Cu"); natoms.push_back(119); + elements.push_back("Ba"); natoms.push_back(38); + elements.push_back("Ce"); natoms.push_back(15); + elements.push_back("Nd"); natoms.push_back(9); + + G4Material* tracesOfDolorite= nistMan->ConstructNewMaterial("TracesOfDolorite", elements, natoms, density); + + elements.clear(); + natoms.clear(); + + // define dolorite (full) -- 0055.PP.0038 sample + + density = 3*g/cm3; + dolorite = new G4Material("Dolorite", density, 2); + dolorite->AddMaterial(tracesOfDolorite, 0.0027842352); + dolorite->AddMaterial(dolorite, 0.9972157648); + + /////////////////////// + // Mars1 // + /////////////////////// + + + // define mars1 -- 01.PP.0030 sample + + density = 3*g/cm3; + + elements.push_back("Fe"); fractionMass.push_back(0.100916); + elements.push_back("Ti"); fractionMass.push_back(0.0186804); + elements.push_back("Ca"); fractionMass.push_back(0.0404091); + elements.push_back("Si"); fractionMass.push_back(0.196378); + elements.push_back("Al"); fractionMass.push_back(0.103282); + elements.push_back("Mg"); fractionMass.push_back(0.0241622); + elements.push_back("Mn"); fractionMass.push_back(0.00184331); + elements.push_back("Na"); fractionMass.push_back(0.0177908); + elements.push_back("K"); fractionMass.push_back(0.00574498); + elements.push_back("P"); fractionMass.push_back(0.00280169); + elements.push_back("O"); fractionMass.push_back(0.48799152); + + + G4Material* mars1Main = nistMan->ConstructNewMaterial("Mars1 Main components", elements, fractionMass, density); + + elements.clear(); + fractionMass.clear(); + + elements.push_back("Nb"); natoms.push_back(55); + elements.push_back("Zr"); natoms.push_back(433); + elements.push_back("Y"); natoms.push_back(58); + elements.push_back("Sr"); natoms.push_back(968); + elements.push_back("Rb"); natoms.push_back(16); + elements.push_back("Ga"); natoms.push_back(24); + elements.push_back("Zn"); natoms.push_back(109); + elements.push_back("Ni"); natoms.push_back(70); + elements.push_back("Sc"); natoms.push_back(21); + elements.push_back("V"); natoms.push_back(134); + elements.push_back("Cr"); natoms.push_back(141); + elements.push_back("Co"); natoms.push_back(30); + elements.push_back("Cu"); natoms.push_back(19); + elements.push_back("Ba"); natoms.push_back(580); + elements.push_back("Pb"); natoms.push_back(4); + elements.push_back("S"); natoms.push_back(444); + elements.push_back("U"); natoms.push_back(2); + + density = 3*g/cm3; + G4Material* tracesOfMars1 = nistMan->ConstructNewMaterial("TracesOfMars1", elements, natoms, density); + + elements.clear(); + natoms.clear(); + + density = 3*g/cm3; + mars1 = new G4Material("Mars1", density, 2); + mars1->AddMaterial(tracesOfMars1, 0.0044963163); + mars1->AddMaterial(mars1Main, 0.9955036837); + + /////////////////////// + // Anorthosite // + /////////////////////// + + + density = 2.8*g/cm3; + + elements.push_back("Fe"); fractionMass.push_back(0.095283); + elements.push_back("Mn"); fractionMass.push_back(0.00137086); + elements.push_back("Ni"); fractionMass.push_back(5e-5); + elements.push_back("Cu"); fractionMass.push_back(5.2e-4); + elements.push_back("Na"); fractionMass.push_back(0.017635); + elements.push_back("Mg"); fractionMass.push_back(0.0245361); + elements.push_back("Al"); fractionMass.push_back(0.0800355); + elements.push_back("Si"); fractionMass.push_back(0.232204); + elements.push_back("Ca"); fractionMass.push_back(0.0635368); + elements.push_back("K"); fractionMass.push_back(0.00464912); + elements.push_back("C"); fractionMass.push_back(0.000837803); + elements.push_back("P"); fractionMass.push_back(0.00176742); + elements.push_back("Ti"); fractionMass.push_back(0.0240879); + elements.push_back("Cl"); fractionMass.push_back(0.00014); + elements.push_back("Pd"); fractionMass.push_back(0.00001); + elements.push_back("Cd"); fractionMass.push_back(0.00018); + elements.push_back("Ag"); fractionMass.push_back(0.00048); + elements.push_back("S"); fractionMass.push_back(0.00144); + elements.push_back("V"); fractionMass.push_back(0.00228); + elements.push_back("Ba"); fractionMass.push_back(0.00151); + elements.push_back("O"); fractionMass.push_back(0.447026); + + anorthosite = nistMan->ConstructNewMaterial("Anorthosite", elements, fractionMass, density); + + elements.clear(); + fractionMass.clear(); + + //define gallium arsenide + + elements.push_back("Ga"); natoms.push_back(1); + elements.push_back("As"); natoms.push_back(1); + + density = 5.32 * g/cm3; + GaAs = nistMan->ConstructNewMaterial("gallium arsenide", elements, natoms, density); + + elements.clear(); + natoms.clear(); + + + // define germanium + + density = 5.32 * g/cm3; + + elements.push_back("Ge"); natoms.push_back(1); + HPGe = nistMan->ConstructNewMaterial("HPGe",elements, natoms, density); + + elements.clear(); + natoms.clear(); + + //define scintillator + + elements.push_back("C"); natoms.push_back(9); + elements.push_back("H"); natoms.push_back(10); + + density = 1.032*g/cm3; + Sci = nistMan->ConstructNewMaterial("Scintillator", elements, natoms, density); + + elements.clear(); + natoms.clear(); + + //define vacuum + + density = universe_mean_density; //from PhysicalConstants.h + G4double pressure = 3.e-18*pascal; + G4double temperature = 2.73*kelvin; + Vacuum = new G4Material("Galactic", 1., 1.01*g/mole, density, + kStateGas,temperature,pressure); + + //define basalt + density = 3.*g/cm3; + + elements.push_back("Fe"); fractionMass.push_back(0.1200); + elements.push_back("Ti"); fractionMass.push_back(0.0160); + elements.push_back("Ca"); fractionMass.push_back(0.0750); + elements.push_back("Si"); fractionMass.push_back(0.2160); + elements.push_back("Al"); fractionMass.push_back(0.0710); + elements.push_back("Mg"); fractionMass.push_back(0.0590); + elements.push_back("O"); fractionMass.push_back(0.4430); + + + + basalt = nistMan->ConstructNewMaterial("Basalt", elements, fractionMass, density); + + G4cout << *(G4Material::GetMaterialTable()) << G4endl; +} + diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc index 1bb4a95a08..8fa96e9f7c 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc @@ -38,6 +38,14 @@ #include "XrayFluoPlaneDetectorConstruction.hh" #include "XrayFluoMercuryDetectorConstruction.hh" +///////////////////////////////////////// +//#include "G4LeptonConstructor.hh" +//#include "G4BosonConstructor.hh" +//#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +///////////////////////////////////////// + + #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" @@ -159,12 +167,14 @@ void XrayFluoPhysicsList::ConstructLeptons() void XrayFluoPhysicsList::ConstructBarions() { - G4Proton::ProtonDefinition(); + G4BaryonConstructor baryon; + baryon.ConstructParticle(); + // G4Proton::ProtonDefinition(); } void XrayFluoPhysicsList::ConstructIons() { // Ions - G4Alpha::AlphaDefinition(); + G4Alpha::AlphaDefinition(); } void XrayFluoPhysicsList::ConstructProcess() diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorConstruction.cc index b0a56abdbe..9a00d08100 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPlaneDetectorConstruction.cc @@ -48,7 +48,7 @@ #include "G4ios.hh" #include "G4PVReplica.hh" #include "G4UserLimits.hh" -#include "XrayFluoMaterials.hh" +#include "XrayFluoNistMaterials.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -69,7 +69,7 @@ XrayFluoPlaneDetectorConstruction::XrayFluoPlaneDetectorConstruction() defaultMaterial(0),HPGeSD(0) { - materials = XrayFluoMaterials::GetInstance(); + materials = XrayFluoNistMaterials::GetInstance(); DefineDefaultMaterials(); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc index 9d47d32228..7989b8d686 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPrimaryGeneratorAction.cc @@ -44,8 +44,9 @@ #include "Randomize.hh" #include "XrayFluoAnalysisManager.hh" #include "XrayFluoDataSet.hh" +#ifdef G4ANALYSIS_USE #include "AIDA/AIDA.h" - +#endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction(XrayFluoDetectorConstruction* XrayFluoDC) diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc index 05cd6c3c7b..5893503348 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoRunAction.cc @@ -41,10 +41,11 @@ #include "G4DataVector.hh" #include "G4LogLogInterpolation.hh" #include -#include +#include #include "XrayFluoNormalization.hh" +#ifdef G4ANALYSIS_USE #include "XrayFluoAnalysisManager.hh" - +#endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #ifdef G4ANALYSIS_USE @@ -144,9 +145,9 @@ void XrayFluoRunAction::BeginOfRunAction(const G4Run* aRun) void XrayFluoRunAction::EndOfRunAction(const G4Run*) { - +#ifdef G4ANALYSIS_USE XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); - +#endif // Run ended, update the visualization if (G4VVisManager::GetConcreteInstance()) { G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); @@ -197,12 +198,11 @@ G4double XrayFluoRunAction::GetDataSum() void XrayFluoRunAction::ReadData(G4double unitE, G4String fileName) { - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; ost << fileName <<".dat"; - G4String name(nameChar); + G4String name = ost.str(); char* path; if (!(getenv("XRAYDATA"))) { diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoSiLiDetectorType.cc b/examples/advanced/xray_fluorescence/src/XrayFluoSiLiDetectorType.cc index be563a4361..3e489ac0a4 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoSiLiDetectorType.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoSiLiDetectorType.cc @@ -38,7 +38,7 @@ #include "G4LogLogInterpolation.hh" #include "G4ios.hh" #include -#include +#include #include "G4UnitsTable.hh" #include "Randomize.hh" @@ -306,13 +306,11 @@ G4double XrayFluoSiLiDetectorType::GetSupData(G4double, G4double random, G4int p } void XrayFluoSiLiDetectorType::LoadResponseData(G4String fileName) { - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); - - + std::ostringstream ost; + ost << fileName<<".dat"; - G4String name(nameChar); + G4String name = ost.str(); char* path = getenv("XRAYDATA"); diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc b/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc index 5866dbbfb4..9453f2ad9f 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoSimulation.cc @@ -54,7 +54,10 @@ #include "XrayFluoSteppingAction.hh" #include "XrayFluoSteppingVerbose.hh" #include "XrayFluoSimulation.hh" +#ifdef G4ANALYSIS_USE #include "XrayFluoAnalysisManager.hh" +#endif +using namespace CLHEP; XrayFluoSimulation::XrayFluoSimulation(G4int seed):dir(seed) @@ -68,8 +71,8 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) { // choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); - HepRandom::setTheSeed(dir); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); + CLHEP::HepRandom::setTheSeed(dir); //XrayFluo Verbose output class G4VSteppingVerbose::SetInstance(new XrayFluoSteppingVerbose); @@ -135,7 +138,7 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) { // G4UIterminal is a (dumb) terminal. #ifdef G4UI_USE_XM - session = new G4UIXm(argc,argv[1]); + session = new G4UIXm(argc,&argv[1]); #else #ifdef G4UI_USE_TCSH session = new G4UIterminal(new G4UItcsh); @@ -153,8 +156,10 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) visManager->Initialize(); #endif +#ifdef G4ANALYSIS_USE // set analysis to have the messenger running... XrayFluoAnalysisManager* analysis = XrayFluoAnalysisManager::getInstance(); +#endif XrayFluoEventAction* eventAction = 0; XrayFluoRunAction* runAction = new XrayFluoRunAction(); XrayFluoSteppingAction* stepAction = new XrayFluoSteppingAction(); @@ -164,8 +169,10 @@ void XrayFluoSimulation::RunSimulation(int argc,char* argv[]) if (geometryNumber == 1 || geometryNumber == 4) { if (geometryNumber == 4) { +#ifdef G4ANALYSIS_USE analysis->PhaseSpaceOn(); analysis->CreatePersistency(); +#endif } eventAction = new XrayFluoEventAction(testBeamDetector); runManager->SetUserAction(new XrayFluoPrimaryGeneratorAction(testBeamDetector)); diff --git a/examples/advanced/xray_fluorescence/xrayfluo.xml b/examples/advanced/xray_fluorescence/xrayfluo.xml deleted file mode 100644 index fbb13c66de..0000000000 Binary files a/examples/advanced/xray_fluorescence/xrayfluo.xml and /dev/null differ diff --git a/examples/advanced/xray_telescope/History b/examples/advanced/xray_telescope/History index d184d55089..452919e47c 100644 --- a/examples/advanced/xray_telescope/History +++ b/examples/advanced/xray_telescope/History @@ -1,4 +1,4 @@ -$Id: History,v 1.20 2005/05/03 10:05:48 allison Exp $ +$Id: History,v 1.22 2005/12/07 14:58:09 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,16 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +07.12.2005 - S. Guatelli, tag xraytel-V07-01-03 + warninw deleted; it concerned stream. + +30.11.2005 - G.Santin, tag xraytel-V07-01-02 + general update of macros and documentation + ASCII output enabled also without AIDA + +27.09.2005 - G.Santin, tag xraytel-V07-01-01 + compilation protection for non AIDA users, + obsolete GPS commands updated 3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. diff --git a/examples/advanced/xray_telescope/README b/examples/advanced/xray_telescope/README index 993a475c02..58f813f2a2 100644 --- a/examples/advanced/xray_telescope/README +++ b/examples/advanced/xray_telescope/README @@ -1,4 +1,4 @@ -$Id: README,v 1.12 2004/05/28 15:56:58 guatelli Exp $ +$Id: README,v 1.13 2005/11/30 19:58:30 santin Exp $ ------------------------------------------------------------------- ========================================================= @@ -55,7 +55,7 @@ setenv G4VRMLFILE_VIEWER vrmlview #if installed setenv G4VIS_USE_VRML 1 setenv PATH ${PATH}:"/afs/cern.ch/sw/contrib/VRML/bin/Linux" # example at CERN -#set up OpenGL or Mesa +#set up OpenGL setenv G4VIS_BUILD_OPENGLX_DRIVER 1 setenv G4VIS_USE_OPENGLX 1 @@ -69,23 +69,6 @@ NOTE: The geometry is refreshed on the viewer at the beginning of each run, -Analysis --------- -Set up for the AIDA 3.2.1, PI 1.2.1 interface: -In case the variable G4ANALYSIS_USE is set: -setenv G4ANALYSIS_USE 1 -relevant information from the simulation is processed in the XrayTelAnalysis -class and saved, through the AIDA interface, to Histograms and Tuples. -Compilation and link flags to hook any AIDA compliant system -are passed to the Geant4 GNUmakefile system by using the "aida-config" tool -that should come with any AIDA compliant system. -Specifically in the GNUmakefile you find the 2 lines: - CPPFLAGS += `aida-config --include` - LDFLAGS += `aida-config --lib` - -For more information about AIDA and PI please look at: -> http://aida.freehep.org/ -> http://www.cern.ch/PI Sources ------- @@ -93,11 +76,6 @@ GAG can be found in: geant4/environments/MOMO -OpenGL Mesa needs to be installed prior to building Geant4 and can be -downloaded from: - -http://www.mesa3d.org - DAWN can be obtained from: http://geant4.kek.jp/~tanaka/ @@ -106,7 +84,9 @@ VRMLview for Linux can be obtained from: http://www.sim.no + 2. Run + To execute a sample simulation with visualisation of proton tracks reaching the detector run: @@ -128,29 +108,51 @@ automatically open and the corresponding files will be created. A 1D histogram will display the energy distribution of the protons that reach the detector at the end of the run. + 3. Detector description The telescope and detector geometry is defined in XrayTelDetectorConstruction.cc + 4. Physics processes The physics processes are in XrayTelPhysicsList.cc The main process in this example is MultipleScattering of the protons on the mirror surfaces. + 5. Event generation This is done using the new General Particle Source. Documentation for -this can be found in +this can be found in: + +http://reat.space.qinetiq.com/gps/ -http://www.space.qinetiq.com/geant4/gspm.html 6. Analysis -Presently, the Anaphe tool (http://cern.ch/anaphe) -(version 5) provides an implementation of AIDA 3, -other packages as JAS will follow soon. +In case the variable G4ANALYSIS_USE is set: +setenv G4ANALYSIS_USE 1 +relevant information from the simulation is processed in the XrayTelAnalysis +class and saved, through the AIDA interface, to Histograms and Tuples. + +Compilation and link flags to hook any AIDA compliant system are passed +to the Geant4 GNUmakefile system by using the "aida-config" tool +that should come with any AIDA compliant system. +Specifically in the GNUmakefile you find the 2 lines: + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` + +For more information about AIDA and PI please look at: +http://aida.freehep.org/ +http://www.cern.ch/PI + +Presently, the tools +- PI (http://cern.ch/pi) +- OpenScientist (http://openscientist.lal.in2p3.fr/) +- JAS (http://jas.freehep.org/jas3/) +provide an implementation of AIDA 3.2.1 To build and execute the example on platforms where there is no implementation of the analysis system, the environment variables diff --git a/examples/advanced/xray_telescope/XrayTel.cc b/examples/advanced/xray_telescope/XrayTel.cc index 16ea20912c..5e998aa682 100644 --- a/examples/advanced/xray_telescope/XrayTel.cc +++ b/examples/advanced/xray_telescope/XrayTel.cc @@ -84,7 +84,7 @@ #include "XrayTelRunAction.hh" #include "XrayTelSteppingAction.hh" #include "XrayTelPrimaryGeneratorAction.hh" -#include +//#include #include int main( int argc, char** argv ) diff --git a/examples/advanced/xray_telescope/dawn.mac b/examples/advanced/xray_telescope/dawn.mac index 516ddde78c..97ac02daf0 100644 --- a/examples/advanced/xray_telescope/dawn.mac +++ b/examples/advanced/xray_telescope/dawn.mac @@ -105,17 +105,17 @@ # Set General Particle Source options /gps/particle proton -/gps/type Plane -/gps/shape Annulus -/gps/posrot1 0. 0. 1. -/gps/posrot2 0. 1. 0. -/gps/radius 35.5 cm -/gps/radius0 30.5 cm -/gps/centre 780.1 0. 0. cm -/gps/angtype cos -/gps/maxtheta 1. deg -/gps/energytype Mono -/gps/monoenergy 0.5 MeV +/gps/pos/type Plane +/gps/pos/shape Annulus +/gps/pos/rot1 0. 0. 1. +/gps/pos/rot2 0. 1. 0. +/gps/pos/radius 35.5 cm +/gps/pos/inner_radius 30.5 cm +/gps/pos/centre 780.1 0. 0. cm +/gps/ang/type cos +/gps/ang/maxtheta 1. deg +/gps/ene/type Mono +/gps/ene/mono 0.5 MeV # Set number of particles and start /run/beamOn 30000 diff --git a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh index b8ee5c6a1c..a8c780682b 100644 --- a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh +++ b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: XrayTelAnalysis.hh,v 1.8 2004/05/28 15:56:58 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: XrayTelAnalysis.hh,v 1.9 2005/09/27 12:01:32 santin Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copy of his UserAnalyser class) @@ -135,11 +135,14 @@ private: G4String asciiFileName; G4String histFileName; G4String histFileType; + +#ifdef G4ANALYSIS_USE AIDA::IHistogram1D *h1; AIDA::IHistogram2D *h2; AIDA::IHistogram1D *h3; AIDA::IHistogram2D *h4; AIDA::ITuple * ntuple; +#endif // std::ofstream asciiFile; }; diff --git a/examples/advanced/xray_telescope/opengl.mac b/examples/advanced/xray_telescope/opengl.mac index d27fced4cd..41f18e0b47 100644 --- a/examples/advanced/xray_telescope/opengl.mac +++ b/examples/advanced/xray_telescope/opengl.mac @@ -77,17 +77,17 @@ # Set General Particle Source options /gps/particle proton -/gps/type Plane -/gps/shape Annulus -/gps/posrot1 0. 0. 1. -/gps/posrot2 0. 1. 0. -/gps/radius 35.5 cm -/gps/radius0 30.5 cm -/gps/centre 780.1 0. 0. cm -/gps/angtype cos -/gps/maxtheta 1. deg -/gps/energytype Mono -/gps/monoenergy 0.5 MeV +/gps/pos/type Plane +/gps/pos/shape Annulus +/gps/pos/rot1 0. 0. 1. +/gps/pos/rot2 0. 1. 0. +/gps/pos/radius 35.5 cm +/gps/pos/inner_radius 30.5 cm +/gps/pos/centre 780.1 0. 0. cm +/gps/ang/type cos +/gps/ang/maxtheta 1. deg +/gps/ene/type Mono +/gps/ene/mono 0.5 MeV # Set number of particles and start /run/beamOn 30000 diff --git a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc index d6fd619c30..2068d41f84 100644 --- a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc +++ b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc @@ -22,7 +22,7 @@ // // // $Id: XrayTelAnalysis.cc,v 1.11 2004/05/28 15:56:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copied from his UserAnalyser class) diff --git a/examples/advanced/xray_telescope/src/XrayTelSteppingAction.cc b/examples/advanced/xray_telescope/src/XrayTelSteppingAction.cc index 8ec8466e8a..681afe0084 100644 --- a/examples/advanced/xray_telescope/src/XrayTelSteppingAction.cc +++ b/examples/advanced/xray_telescope/src/XrayTelSteppingAction.cc @@ -103,11 +103,11 @@ void XrayTelSteppingAction::UserSteppingAction(const G4Step* step) XrayTelRunAction* runAction = (XrayTelRunAction*) runManager->GetUserRunAction(); runAction->Update(track->GetKineticEnergy()); } -#ifdef G4ANALYSIS_USE + // Do the analysis related to this step XrayTelAnalysis* analysis = XrayTelAnalysis::getInstance(); analysis->analyseStepping(*track,entering); -#endif + } diff --git a/examples/advanced/xray_telescope/test.mac b/examples/advanced/xray_telescope/test.mac index 315192cff2..ad0c622883 100644 --- a/examples/advanced/xray_telescope/test.mac +++ b/examples/advanced/xray_telescope/test.mac @@ -1,17 +1,17 @@ /run/verbose 1 /tracking/storeTrajectory 1 /gps/particle proton -/gps/type Plane -/gps/shape Annulus -/gps/posrot1 0. 0. 1. -/gps/posrot2 0. 1. 0. -/gps/radius 35.5 cm -/gps/radius0 30.5 cm -/gps/centre 780.1 0. 0. cm -/gps/angtype cos -/gps/maxtheta 1. deg -/gps/energytype Mono -/gps/monoenergy 0.5 MeV +/gps/pos/type Plane +/gps/pos/shape Annulus +/gps/pos/rot1 0. 0. 1. +/gps/pos/rot2 0. 1. 0. +/gps/pos/radius 35.5 cm +/gps/pos/inner_radius 30.5 cm +/gps/pos/centre 780.1 0. 0. cm +/gps/ang/type cos +/gps/ang/maxtheta 1. deg +/gps/ene/type Mono +/gps/ene/mono 0.5 MeV /run/beamOn 1000 diff --git a/examples/advanced/xray_telescope/test.out b/examples/advanced/xray_telescope/test.out index f92cd3117a..03b0ef9ec5 100644 --- a/examples/advanced/xray_telescope/test.out +++ b/examples/advanced/xray_telescope/test.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (19-May-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/advanced/xray_telescope/vrml.mac b/examples/advanced/xray_telescope/vrml.mac index 9f87807da6..85a3d4b912 100644 --- a/examples/advanced/xray_telescope/vrml.mac +++ b/examples/advanced/xray_telescope/vrml.mac @@ -120,19 +120,19 @@ # Set General Particle Source options /gps/particle proton -/gps/type Plane -/gps/shape Annulus -/gps/posrot1 0. 0. 1. -/gps/posrot2 0. 1. 0. -/gps/radius 35.5 cm -/gps/radius0 30.5 cm -/gps/centre 780.1 0. 0. cm -/gps/angtype cos -/gps/angrot1 0. 0. 1. -/gps/angrot2 0. 1. 0. -/gps/maxtheta 1. deg -/gps/energytype Mono -/gps/monoenergy 0.5 MeV +/gps/pos/type Plane +/gps/pos/shape Annulus +/gps/pos/rot1 0. 0. 1. +/gps/pos/rot2 0. 1. 0. +/gps/pos/radius 35.5 cm +/gps/pos/inner_radius 30.5 cm +/gps/pos/centre 780.1 0. 0. cm +/gps/ang/type cos +/gps/ang/rot1 0. 0. 1. +/gps/ang/rot2 0. 1. 0. +/gps/ang/maxtheta 1. deg +/gps/ene/type Mono +/gps/ene/mono 0.5 MeV # Set number of particles and start /run/beamOn 10000 diff --git a/examples/advanced/xray_telescope/xraytel.out b/examples/advanced/xray_telescope/xraytel.out index 45fedc9682..ddb579cf0a 100644 --- a/examples/advanced/xray_telescope/xraytel.out +++ b/examples/advanced/xray_telescope/xraytel.out @@ -1,10 +1,6 @@ Energy (keV) x (mm) y (mm) z (mm) - 485.727 599.484 15.243 23.253 - 371.466 599.484 -16.460 -15.268 - 36.365 599.484 18.159 -18.523 - 470.381 599.484 3.447 5.493 - 451.996 599.484 -19.986 -1.455 + 482.474 0.000 2.946 -28.835 Energy (keV) x (mm) y (mm) z (mm) 1000.000 0.000 0.000 -32.500 @@ -29,117 +25,3 @@ Energy (keV) x (mm) y (mm) z (mm) 1000.000 0.000 0.000 -32.500 1000.000 0.000 0.000 -32.500 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 - 1000.000 0.000 0.000 -32.500 -Energy (keV) x (mm) y (mm) z (mm) - -Energy (keV) x (mm) y (mm) z (mm) - -Energy (keV) x (mm) y (mm) z (mm) - -Energy (keV) x (mm) y (mm) z (mm) - -Energy (keV) x (mm) y (mm) z (mm) - - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 - 1000.00020267143300.719 0.000 -32.500 -Energy (keV) x (mm) y (mm) z (mm) - -Energy (keV) x (mm) y (mm) z (mm) - diff --git a/examples/advanced/xray_telescope/xraytel_ref.hbook b/examples/advanced/xray_telescope/xraytel_ref.hbook index 2711573318..afc7bf5a71 100644 Binary files a/examples/advanced/xray_telescope/xraytel_ref.hbook and b/examples/advanced/xray_telescope/xraytel_ref.hbook differ diff --git a/examples/advanced/xray_telescope/xraytel_ref.out b/examples/advanced/xray_telescope/xraytel_ref.out index 9613c096be..74fca4b96e 100644 --- a/examples/advanced/xray_telescope/xraytel_ref.out +++ b/examples/advanced/xray_telescope/xraytel_ref.out @@ -1,12 +1,3 @@ Energy (keV) x (mm) y (mm) z (mm) - 350.027 0.000 -16.963 27.520 - 292.781 0.000 -23.553 -2.691 - 363.827 0.000 11.863 -26.777 - 271.803 0.000 -29.070 8.563 - 430.076 0.000 16.300 -16.432 - 310.581 0.000 26.055 10.980 - 354.546 0.000 10.077 6.967 - 439.404 0.000 8.090 14.062 - 23.139 0.000 -18.247 22.987 - 255.990 0.000 -22.044 -9.484 + 482.474 0.000 2.946 -28.835 diff --git a/examples/extended/analysis/A01/test.out b/examples/extended/analysis/A01/test.out index b2bd34459f..edd3dd5977 100644 --- a/examples/extended/analysis/A01/test.out +++ b/examples/extended/analysis/A01/test.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (25-June-2004) + Geant4 version $Name: geant4-08-00 $ (25-June-2004) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.cc b/examples/extended/analysis/AnaEx01/AnaEx01.cc index f9108d2d38..499bfcd8b0 100644 --- a/examples/extended/analysis/AnaEx01/AnaEx01.cc +++ b/examples/extended/analysis/AnaEx01/AnaEx01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01.cc,v 1.9 2003/12/03 10:33:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: AnaEx01.cc,v 1.13 2005/12/06 11:07:17 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,14 +37,19 @@ // See the README file within the same directory to have more infos. // -------------------------------------------------------------- +// Geant4 : #include "G4RunManager.hh" #include "G4UImanager.hh" -#include "G4UIterminal.hh" #include "Randomize.hh" -#include "AnaEx01AnalysisManager.hh" +// AIDA : +#ifdef G4ANALYSIS_USE +#include +#endif +// AnaEx01 : +#include "AnaEx01AnalysisManager.hh" #include "AnaEx01DetectorConstruction.hh" #include "AnaEx01PhysicsList.hh" #include "AnaEx01PrimaryGeneratorAction.hh" @@ -56,7 +61,7 @@ int main(int,char**) { // choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new AnaEx01SteppingVerbose); @@ -71,16 +76,14 @@ int main(int,char**) { runManager->SetUserAction(new AnaEx01PrimaryGeneratorAction(detector)); + AnaEx01AnalysisManager* analysisManager = 0; #ifdef G4ANALYSIS_USE - AnaEx01AnalysisManager* analysisManager = new AnaEx01AnalysisManager(); + AIDA::IAnalysisFactory* aida = AIDA_createAnalysisFactory(); + analysisManager = new AnaEx01AnalysisManager(aida); +#endif runManager->SetUserAction(new AnaEx01RunAction(analysisManager)); runManager->SetUserAction(new AnaEx01EventAction(analysisManager)); runManager->SetUserAction(new AnaEx01SteppingAction(analysisManager)); -#else - runManager->SetUserAction(new AnaEx01RunAction()); - runManager->SetUserAction(new AnaEx01EventAction()); - runManager->SetUserAction(new AnaEx01SteppingAction()); -#endif //Initialize G4 kernel runManager->Initialize(); @@ -97,6 +100,10 @@ int main(int,char**) { #endif delete runManager; +#ifdef G4ANALYSIS_USE + delete aida; +#endif + return 0; } diff --git a/examples/extended/analysis/AnaEx01/History b/examples/extended/analysis/AnaEx01/History index 2dc7555d1b..ac1e689df7 100644 --- a/examples/extended/analysis/AnaEx01/History +++ b/examples/extended/analysis/AnaEx01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2005/05/03 10:05:48 allison Exp $ +$Id: History,v 1.14 2005/12/06 11:07:17 gcosmo Exp $ -------------------------------------------------- ========================================================= @@ -15,6 +15,22 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +6th December 2005 Gabriele Cosmo +- Trivial change in main() for support of CLHEP-2.0.X series. + +15th November 2005 Guy Barrand (AnaEx01-V07-01-01) +- Tagged all changes. + +25th October 2005 Guy Barrand +- Have .aida as a default file format. + +24th October 2005 Guy Barrand +- Put AIDA_createAnalysisFactory() in the main in order + to be able to instrumenet easily this example with G4Lab::UIOnX. + +31th August 2005 Guy Barrand +- Update README, analyis/Lab/AnaEx01.py to work with OpenScientist-v14r0. + 3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. diff --git a/examples/extended/analysis/AnaEx01/README b/examples/extended/analysis/AnaEx01/README index 644a03e51c..d73e7b310a 100644 --- a/examples/extended/analysis/AnaEx01/README +++ b/examples/extended/analysis/AnaEx01/README @@ -1,4 +1,4 @@ -$Id: README,v 1.12 2003/06/20 14:55:44 gbarrand Exp $ +$Id: README,v 1.14 2005/10/25 13:45:42 gbarrand Exp $ ------------------------------------------------------------------- ========================================================= @@ -37,6 +37,66 @@ $Id: README,v 1.12 2003/06/20 14:55:44 gbarrand Exp $ For info, the CPP macros G4ANALYSIS_*_AIDA_* are used in the config/analysis.gmk file of the Geant4 GNUmakefile system. + Working with the OpenScientist/Lab package : + ------------------------------------------ + To reconstruct this example by using the OpenScientist/Lab + package (assuming that OpenScientist is installed ! ) you have + first to "setup" the environment of the Lab package and Geant4. + The Lab package (and all OpenScientist packages) being handled + by the CMT tools, you may have to setup the environment + variable "CMTSITE" to execute site specific things in the chain + of setup files of the OpenScientist packages. Then for example at CERN : + csh> setenv CMTSITE CERN + (DOS> set CMTSITE=CERN_WIN32 (for Windows)) + When done then do : + csh> source /Lab//cmt/setup.csh + csh> source .csh + csh> setenv G4ANALYSIS_USE 1 + csh> setenv G4ANALYSIS_AIDA_CONFIG_CFLAGS `aida-config --cflags` + csh> setenv G4ANALYSIS_AIDA_CONFIG_LIBS `aida-config --libs` + csh> cd $G4INSTALL/examples/extended/analysis/AnaEx01 + csh> gmake + + To run : + csh> cd analyis/Lab + csh> $G4WORKDIR/bin/$G4SYSTEM/AnaEx01 + + It must produce an AnaEx01.aida file that contains some histograms + and a tuple. + + To plot some histograms, spawn the Lab interactive tool with : + csh> onx + (DOS> onx (for Windows)) + click in 'File/Open AIDA file...' to map a file chooser, + then choose AnaEx01.aida. The file name should appear in the left + tree widget beside the plotting area. Use the tree widget to browse + the file. You can visualize histos by selecting them with the mouse. + + If the OpenScientist/OnX and Lab Python drivers had been + reconstructed at installation of OpenScientist, then + you can also work with the OpenScientist/Lab/AIDA Python API. + You can execute AnaEx01.py by doing : + OS> python AnaEx01.py + or : + OS> python + (>>> import AIDA) + >>> import AnaEx01 + The AnaEx01 file contains a Python script that + does some analysis over the AnaEx01.aida file by using the AIDA interfaces. + This script gets an histo (EAbs) and plots it in a first drawing region. + Then it gets the 'AnaEx01' tuple, books and fills another histo + from the tuple colum 'EAbs' and plots it a secon drawing region. + + If exporting a AnaEx01.root file (see src/AnaEx01AnalysisManager.cc), + the AnaEx01.C file could also be used, within the ROOT tool. + To see a projection of the first column of the tuple contained + in the AnaEx01.root file. For example : + csh> root + root[0] .X AnaEx01.C + + The OpenScientist URL is : http://OpenScientist.lal.in2p3.fr. + OpenScientist is installed at CERN under /afs/cern.ch/sw/contrib. + Working with the Falsetto package : --------------------------------- Falsetto is a little package containing a dummy @@ -63,54 +123,3 @@ $Id: README,v 1.12 2003/06/20 14:55:44 gbarrand Exp $ The Falsetto URL is : http://www.lal.in2p3.fr/SI/Falsetto Falsetto is installed at CERN under /afs/cern.ch/sw/contrib. - Working with the OpenScientist/Lab package : - ------------------------------------------ - To reconstruct this example by using the OpenScientist/Lab - package (assuming that OpenScientist is installed ! ) you have - first to "setup" the environment of the Lab package and Geant4. - The Lab package (and all OpenScientist packages) being handled - by the CMT tools, you may have to setup the environment - variable "CMTSITE" to execute site specific things in the chain - of setup files of the OpenScientist packages. Then for example at CERN : - csh> setenv CMTSITE CERN - (DOS> set CMTSITE=CERN_WIN32 (for Windows)) - When done then do : - csh> source /Lab//cmt/setup.csh - csh> source .csh - csh> setenv G4ANALYSIS_USE 1 - csh> setenv G4ANALYSIS_AIDA_CONFIG_CFLAGS `aida-config --cflags` - csh> setenv G4ANALYSIS_AIDA_CONFIG_LIBS `aida-config --libs` - csh> cd $G4INSTALL/examples/extended/analysis/AnaEx01 - csh> gmake - - To run : - csh> cd analyis/Lab - csh> $G4WORKDIR/bin/$G4SYSTEM/AnaEx01 - - It must produce an AnaEx01.root file that contains - some HCL histograms and a Lab tuple (stored as a ROOT/TTree). - - To plot some histograms, spawn the Lab interactive tool with : - csh> onx - (DOS> onx (for Windows)) - click in 'File/File/import' to map a file chooser, choose AnaEx01.py - to execute the AnaEx01.py. You can also execute this script by issuing an : - import AnaEx01 - in the command prompt. - This file contains a Python script that - do some analysis over the AnaEx01.root file by using the AIDA interfaces. - This script gets an histo (EAbs) and plots it in a first drawing region. - Then it gets the 'AnaEx01' tuple, books and fills another histo - from the tuple colum 'EAbs' and plots it a secon drawing region. - - The AnaEx01.C file could also be used, within the ROOT tool, - to see a projection of the first column of the tuple contained - in the AnaEx01.root file. For example : - csh> root - root[0] .X AnaEx01.C - Note that the HCL 'EAbs' histogram could not be seen with ROOT. - - The OpenScientist URL is : http://www.lal.in2p3.fr/OpenScientist - OpenScientist is installed at CERN under /afs/cern.ch/sw/contrib. - - diff --git a/examples/extended/analysis/AnaEx01/analysis/Lab/AnaEx01.C b/examples/extended/analysis/AnaEx01/analysis/Lab/AnaEx01.C index e1c9586f1e..32b997c04c 100644 --- a/examples/extended/analysis/AnaEx01/analysis/Lab/AnaEx01.C +++ b/examples/extended/analysis/AnaEx01/analysis/Lab/AnaEx01.C @@ -1,5 +1,10 @@ // // To do some analysis over the AnaEx01.root file with the ROOT tool. +// +// Note that .root is not the default file format and that someone has +// to ask for an export of a ROOT file in the AnaEx01AnalysisManager.cc +// constructor. +// // Usage : // UNIX> root // root[0] .X AnaEx01.C diff --git a/examples/extended/analysis/AnaEx01/analysis/Lab/AnaEx01.py b/examples/extended/analysis/AnaEx01/analysis/Lab/AnaEx01.py index 4ef16e0822..58eb778dd0 100644 --- a/examples/extended/analysis/AnaEx01/analysis/Lab/AnaEx01.py +++ b/examples/extended/analysis/AnaEx01/analysis/Lab/AnaEx01.py @@ -24,17 +24,27 @@ #///////////////////////////////////////////////////////////////////////////// #///////////////////////////////////////////////////////////////////////////// # -# Example of a Python script using the AnaEx01.root file. +# Example of a Python script using the AnaEx01.aida file. # #///////////////////////////////////////////////////////////////////////////// -from Lab import * +# +# To be executed from the Python shell : +# OS> +# OS> python +# (>>> import AIDA) +# >>> import AnaEx01 +# + +from AIDA import AIDA_createAnalysisFactory + +aida = AIDA_createAnalysisFactory() # Get some AIDA factories : plotterFactory = aida.createPlotterFactory() treeFactory = aida.createTreeFactory() +memoryTree = treeFactory.createDefault() histogramFactory = aida.createHistogramFactory(memoryTree) -functionFactory = aida.createFunctionFactory(memoryTree) # Attach the current plotter : plotter = plotterFactory.create('') @@ -42,50 +52,50 @@ plotter = plotterFactory.create('') plotter.createRegions(1,2,0) plotter.setParameter('title','AnaEx01 analysis') -# If already loaded close (not delete) the file : -fileName='AnaEx01.root' -session.destroyManager(fileName) - -rioTree = treeFactory.create(fileName,'ROOT',1,0) -rioTree.ls() +tree = treeFactory.create('AnaEx01.aida','xml',1,0) +tree.ls() #///////////////////////////////////////////////////////////////////////////// # In first region, get and plot the EAbs histo : #///////////////////////////////////////////////////////////////////////////// -rioTree.cd('histograms') -rioTree.ls() +tree.cd('histograms') +tree.ls() -# Get some histograms with the H1Get -# builtin Python procedure (defined in Lab/scripts/Python/Lab_init.py). - -EAbs = IManagedObject_to_IHistogram1D(rioTree.find('EAbs')) +# From an AIDA tree we retreive IManagedObjects, we have to cast. +#FIXME : IManagedObject_to_IHistogram1D is not AIDA, it is OSC specific. +from AIDA import IManagedObject_to_IHistogram1D +EAbs = IManagedObject_to_IHistogram1D(tree.find('EAbs')) if EAbs == None: - print 'EAbs not found or is not an AIDA::IHistogram1D.' + print 'EAbs not found or is not an AIDA::IHistogram1D.' else : - # Plot the histo : - region = plotter.currentRegion() - region.plot(EAbs) + # Plot the histo : + region = plotter.currentRegion() + region.plot(EAbs) #///////////////////////////////////////////////////////////////////////////// # In second region plot the EAbs histo built from the tuple : #///////////////////////////////////////////////////////////////////////////// -rioTree.cd('..') -rioTree.cd('tuples') -rioTree.ls() +tree.cd('..') +tree.cd('tuples') +tree.ls() -rioTupleFactory = aida.createTupleFactory(rioTree) -# Get a tuple from the rioTree : -tuple = rioTupleFactory.create('AnaEx01','AnaEx01','') +tupleFactory = aida.createTupleFactory(tree) +# Get a tuple from the tree : +#tuple = tupleFactory.create('AnaEx01','AnaEx01','') +from AIDA import IManagedObject_to_ITuple +tuple = IManagedObject_to_ITuple(tree.find('AnaEx01')) +if tuple == None: + print 'Tuple AnaEx01 not found or is not an AIDA::ITuple.' # Create an histo in the default memory tree : tuple_EAbs = histogramFactory.createHistogram1D('tuple_EAbs','AnaEx01/EAbs',100,0,100) # Create an Evaluator and a Filter object : -evaluator = rioTupleFactory.createEvaluator('EAbs') +evaluator = tupleFactory.createEvaluator('EAbs') evaluator.initialize(tuple) -filter = rioTupleFactory.createFilter('') +filter = tupleFactory.createFilter('') filter.initialize(tuple) # Project tuple AnaEx01/EAbs column on the tuple_EAbs histo : @@ -94,19 +104,20 @@ tuple.project(tuple_EAbs,evaluator,filter) plotter.next() region = plotter.currentRegion() region.plot(tuple_EAbs) -region.setParameter('histogramContext','color red modeling solid') + +plotter.show() +plotter.interact() del evaluator del filter print 'The two histos must give the same information !' -del rioTupleFactory +del tupleFactory -del rioTree +del tree del plotter del region del plotterFactory del treeFactory del histogramFactory -del functionFactory diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh index 6f53ff475c..27e41953bf 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01AnalysisManager.hh,v 1.6 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: AnaEx01AnalysisManager.hh,v 1.8 2005/10/25 13:46:11 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -44,7 +44,7 @@ namespace AIDA { class AnaEx01AnalysisManager { public: - AnaEx01AnalysisManager(); + AnaEx01AnalysisManager(AIDA::IAnalysisFactory*); virtual ~AnaEx01AnalysisManager(); public: virtual void BeginOfRun(const G4Run*); @@ -54,7 +54,7 @@ public: virtual void Step(const G4Step*); private: int fCalorimeterCollID; - AIDA::IAnalysisFactory* fAnalysisFactory; + AIDA::IAnalysisFactory* fAIDA; AIDA::ITree* fTree; AIDA::IHistogram1D* fEAbs; AIDA::IHistogram1D* fLAbs; @@ -63,6 +63,10 @@ private: AIDA::ITuple* fTuple; }; +#else + +class AnaEx01AnalysisManager; + #endif #endif diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh index 2d8370455a..8717319342 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01CalorHit.hh,v 1.3 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh index 6f8170e4a6..50863c1a7c 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01CalorimeterSD.hh,v 1.3 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh index 27a19d5c85..2bb6438094 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorConstruction.hh,v 1.3 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh index d8069f34bc..862fcaaf9c 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorMessenger.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh index fa84e1abae..37d6a0e928 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01EventAction.hh,v 1.5 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh index 14d894776e..0434a863e3 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PhysicsList.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh index 22df6433cb..67c6170be1 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorAction.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh index 6594650454..030b0f26a5 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorMessenger.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh index 5b474c8c7c..0c88e0bd5a 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01RunAction.hh,v 1.5 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh index 1158ca2305..9b8b424ecd 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01SteppingAction.hh,v 1.5 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh index 7864f9a339..f4769fe23b 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01SteppingVerbose.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc index 053dbb7be7..c28a0ea539 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01AnalysisManager.cc,v 1.12 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: AnaEx01AnalysisManager.cc,v 1.15 2005/10/25 18:19:56 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Guy Barrand 14th Septembre 2000. @@ -46,9 +46,9 @@ #include "AnaEx01CalorHit.hh" #include "AnaEx01AnalysisManager.hh" -AnaEx01AnalysisManager::AnaEx01AnalysisManager() +AnaEx01AnalysisManager::AnaEx01AnalysisManager(AIDA::IAnalysisFactory* aAIDA) :fCalorimeterCollID(-1) -,fAnalysisFactory(0) +,fAIDA(aAIDA) ,fTree(0) ,fEAbs(0) ,fLAbs(0) @@ -56,41 +56,35 @@ AnaEx01AnalysisManager::AnaEx01AnalysisManager() ,fLGap(0) ,fTuple(0) { - fAnalysisFactory = AIDA_createAnalysisFactory(); - // Could fail if no AIDA implementation found : - if(!fAnalysisFactory) { + if(!fAIDA) { G4cout << "AIDA analysis factory not found." << G4endl; return; } - AIDA::ITreeFactory* treeFactory = fAnalysisFactory->createTreeFactory(); - if(!treeFactory) { - delete fAnalysisFactory; - fAnalysisFactory = 0; - return; - } + AIDA::ITreeFactory* treeFactory = fAIDA->createTreeFactory(); + if(!treeFactory) return; - // Create a "tree" to handle histograms. - // This tree is associated to a writable ROOT "store". - fTree = treeFactory->create("AnaEx01.root","ROOT",0,1); + // Create a tree-like container to handle histograms. + // This tree is associated to a AnaEx01.aida file. + //std::string opts = "compress=yes"; + std::string opts = "compress=no"; + fTree = treeFactory->create("AnaEx01.aida","xml",false,true,opts); + //std::string opts = "export=root"; + //fTree = treeFactory->create("AnaEx01.root","ROOT",false,true,opts); // Factories are not "managed" by an AIDA analysis system. // They must be deleted by the AIDA user code. delete treeFactory; - if(!fTree) { - delete fAnalysisFactory; - fAnalysisFactory = 0; - return; - } + if(!fTree) return; fTree->mkdir("histograms"); fTree->cd("histograms"); // Create an histo factory that will create histo in the tree : AIDA::IHistogramFactory* histoFactory = - fAnalysisFactory->createHistogramFactory(*fTree); + fAIDA->createHistogramFactory(*fTree); if(histoFactory) { fEAbs = histoFactory->createHistogram1D("EAbs",100,0,100); fLAbs = histoFactory->createHistogram1D("LAbs",100,0,100); @@ -104,19 +98,18 @@ AnaEx01AnalysisManager::AnaEx01AnalysisManager() fTree->cd("tuples"); // Get a tuple factory : - AIDA::ITupleFactory* tupleFactory = - fAnalysisFactory->createTupleFactory(*fTree); + AIDA::ITupleFactory* tupleFactory = fAIDA->createTupleFactory(*fTree); if(tupleFactory) { // Create a tuple : - fTuple = tupleFactory->create("AnaEx01","AnaEx01","EAbs LAbs EGap LGap"); + fTuple = tupleFactory->create("AnaEx01","AnaEx01", + "double EAbs,double LAbs,double EGap,double LGap"); delete tupleFactory; } } AnaEx01AnalysisManager::~AnaEx01AnalysisManager() { - delete fAnalysisFactory; } void AnaEx01AnalysisManager::BeginOfRun(const G4Run* aRun){ diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc index 8adc5c5897..aa47a3f146 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01CalorHit.cc,v 1.5 2003/12/03 10:33:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc index c8d0c39f8d..17bf96896e 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01CalorimeterSD.cc,v 1.4 2003/12/03 10:33:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc index fb511130a0..63576aefce 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorConstruction.cc,v 1.4 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc index f8f45f53c4..00949d3946 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01DetectorMessenger.cc,v 1.4 2002/12/05 00:24:22 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc index 6e03dbd6dc..daebd5e022 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01EventAction.cc,v 1.5 2001/11/16 14:31:12 barrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc index 2976167d2d..694f348dcb 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PhysicsList.cc,v 1.4 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc index f548d54bb1..9e5f908ef4 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorAction.cc,v 1.4 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc index 37900821f5..14f91c38af 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 00:24:22 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc index f4ff4ec2d7..1f27711244 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01RunAction.cc,v 1.6 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc index c658ce3c1c..3d5db6be50 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01SteppingAction.cc,v 1.6 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc index d2c1db82c0..0f2d1b8d64 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01SteppingVerbose.cc,v 1.6 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/biasing/B01/exampleB01.cc b/examples/extended/biasing/B01/exampleB01.cc index 9c1b91c796..2b7ccbb563 100644 --- a/examples/extended/biasing/B01/exampleB01.cc +++ b/examples/extended/biasing/B01/exampleB01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleB01.cc,v 1.20 2004/03/24 10:11:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: exampleB01.cc,v 1.22 2005/12/09 16:28:37 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -75,7 +75,7 @@ int main(int argc, char **argv) std::ostream *myout = &G4cout; G4int numberOfEvent = 100; G4long myseed = 345354; - HepRandom::setTheSeed(myseed); + CLHEP::HepRandom::setTheSeed(myseed); G4RunManager *runManager = new G4RunManager; @@ -151,5 +151,9 @@ int main(int argc, char **argv) delete wwAlg; } + mgs.ClearSampling(); + + delete runManager; + return 0; } diff --git a/examples/extended/biasing/B01/exampleB01.out b/examples/extended/biasing/B01/exampleB01.out index b2cc60bc30..01751f14ec 100644 --- a/examples/extended/biasing/B01/exampleB01.out +++ b/examples/extended/biasing/B01/exampleB01.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -114,13 +114,13 @@ phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -132,7 +132,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -146,7 +146,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -159,7 +159,7 @@ msc: Model variant of multiple scattering for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -197,28 +197,28 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 Volume name | Importance| Tr.Entering| Population| Collisions| Coll*WGT| NumWGTedE| FluxWGTedE| Av.Tr.WGT| -cell_01_rep:0............ | 1 | 109 | 128 | 116 | 116 | 9.0844649 | 9.5448707 | 1 | -cell_02_rep:0............ | 2 | 69 | 152 | 142 | 71 | 8.514088 | 9.1338343 | 1 | -cell_03_rep:0............ | 4 | 87 | 175 | 195 | 48.75 | 7.0706267 | 8.4721018 | 1 | -cell_04_rep:0............ | 8 | 106 | 205 | 197 | 24.625 | 6.4781545 | 8.009855 | 1 | -cell_05_rep:0............ | 16 | 125 | 265 | 325 | 20.3125 | 6.5346594 | 7.8737813 | 1 | -cell_06_rep:0............ | 32 | 147 | 300 | 382 | 11.9375 | 4.8149962 | 7.5593459 | 1 | -cell_07_rep:0............ | 64 | 151 | 322 | 410 | 6.40625 | 3.4013848 | 7.2868181 | 1 | -cell_08_rep:0............ | 128 | 174 | 376 | 499 | 3.8984375 | 4.0138152 | 7.1811682 | 1 | -cell_09_rep:0............ | 256 | 184 | 375 | 537 | 2.0976562 | 4.7452287 | 6.7490821 | 1 | -cell_10_rep:0............ | 512 | 199 | 413 | 598 | 1.1679688 | 0.12715559 | 6.6545894 | 1 | -cell_11_rep:0............ | 1024 | 209 | 427 | 670 | 0.65429688 | 3.8229542 | 5.9721558 | 1 | -cell_12_rep:0............ | 2048 | 217 | 437 | 713 | 0.34814453 | 3.6997829 | 6.0543108 | 1 | -cell_13_rep:0............ | 4096 | 232 | 475 | 720 | 0.17578125 | 3.8285283 | 5.9110234 | 1 | -cell_14_rep:0............ | 8192 | 269 | 540 | 990 | 0.12084961 | 3.4219729 | 5.4792145 | 1 | -cell_15_rep:0............ | 16384 | 291 | 584 | 1041 | 0.063537598 | 3.1097494 | 5.191823 | 1 | -cell_16_rep:0............ | 32768 | 322 | 638 | 1155 | 0.035247803 | 3.2779116 | 5.0155103 | 1 | -cell_17_rep:0............ | 65536 | 313 | 624 | 1178 | 0.017974854 | 2.8946874 | 4.807036 | 1 | -cell_18_rep:0............ | 131072 | 279 | 646 | 1252 | 0.009552002 | 0.041089375 | 4.9343901 | 1 | -rest_rep:0............... | 131072 | 301 | 301 | 0 | 0 | 0 | 0 | 0 | -shieldWorld_rep:0........ | 1 | 12 | 111 | 0 | 0 | 10 | 10 | 1 | +cell_01_rep:0............ | 1 | 111 | 134 | 131 | 131 | 7.7860235 | 9.1470607 | 1 | +cell_02_rep:0............ | 2 | 89 | 173 | 191 | 95.5 | 6.5725833 | 8.4009087 | 1 | +cell_03_rep:0............ | 4 | 94 | 198 | 195 | 48.75 | 8.1266652 | 8.7051742 | 1 | +cell_04_rep:0............ | 8 | 121 | 249 | 258 | 32.25 | 6.2161377 | 8.2818871 | 1 | +cell_05_rep:0............ | 16 | 158 | 327 | 404 | 25.25 | 5.7902782 | 7.8825536 | 1 | +cell_06_rep:0............ | 32 | 172 | 381 | 422 | 13.1875 | 5.7466488 | 7.8354734 | 1 | +cell_07_rep:0............ | 64 | 192 | 394 | 578 | 9.03125 | 0.27715221 | 6.8450076 | 1 | +cell_08_rep:0............ | 128 | 216 | 445 | 649 | 5.0703125 | 5.0240389 | 6.7365735 | 1 | +cell_09_rep:0............ | 256 | 246 | 521 | 825 | 3.2226562 | 4.6137525 | 6.3768025 | 1 | +cell_10_rep:0............ | 512 | 244 | 548 | 781 | 1.5253906 | 5.1560281 | 6.6650097 | 1 | +cell_11_rep:0............ | 1024 | 277 | 555 | 770 | 0.75195312 | 0.63315862 | 6.4423602 | 1 | +cell_12_rep:0............ | 2048 | 319 | 653 | 952 | 0.46484375 | 4.6419804 | 6.6177668 | 1 | +cell_13_rep:0............ | 4096 | 326 | 688 | 1044 | 0.25488281 | 3.8347969 | 6.3132198 | 1 | +cell_14_rep:0............ | 8192 | 315 | 654 | 998 | 0.12182617 | 0.23732449 | 6.1765661 | 1 | +cell_15_rep:0............ | 16384 | 307 | 623 | 1032 | 0.062988281 | 3.2698756 | 5.8998212 | 1 | +cell_16_rep:0............ | 32768 | 313 | 644 | 1035 | 0.031585693 | 0.13643685 | 5.8093517 | 1 | +cell_17_rep:0............ | 65536 | 345 | 722 | 1123 | 0.01713562 | 0.08543507 | 5.8104435 | 1 | +cell_18_rep:0............ | 131072 | 304 | 723 | 1168 |0.0089111328 | 0.82062282 | 5.6784205 | 1 | +rest_rep:0............... | 131072 | 346 | 346 | 0 | 0 | 0 | 0 | 0 | +shieldWorld_rep:0........ | 1 | 4 | 104 | 0 | 0 | 10 | 10 | 1 | === G4ProcessPlacer::RemoveProcess: for: neutron ProcessName: MassImportanceProcess, will be removed! The initial Vectors: diff --git a/examples/extended/biasing/B01/include/B01DetectorConstruction.hh b/examples/extended/biasing/B01/include/B01DetectorConstruction.hh index 10d0d8b6a5..ac6b28d79d 100644 --- a/examples/extended/biasing/B01/include/B01DetectorConstruction.hh +++ b/examples/extended/biasing/B01/include/B01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B01DetectorConstruction.hh,v 1.6 2003/08/25 12:32:29 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef B01DetectorConstruction_hh diff --git a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc index 09657e173f..2956289079 100644 --- a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc +++ b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: B01DetectorConstruction.cc,v 1.14 2004/12/08 17:39:07 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: B01DetectorConstruction.cc,v 1.16 2005/12/06 16:35:59 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Types.hh" -#include +#include #include #include "globals.hh" @@ -327,15 +327,13 @@ G4VWeightWindowStore *B01DetectorConstruction::CreateWeightWindowStore() G4String B01DetectorConstruction::GetCellName(G4int i) { - char st[200]; - std::ostrstream os(st,200); + std::ostringstream os; os << "cell_"; if (i<10) { os << "0"; } - os << i - << '\0'; - G4String name(st); + os << i ; + G4String name = os.str(); return name; } diff --git a/examples/extended/biasing/B01/src/B01PhysicsList.cc b/examples/extended/biasing/B01/src/B01PhysicsList.cc index d90d0d0d27..03dcc9c149 100644 --- a/examples/extended/biasing/B01/src/B01PhysicsList.cc +++ b/examples/extended/biasing/B01/src/B01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: B01PhysicsList.cc,v 1.5 2003/06/16 16:47:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc index aa9de5186a..ad84696044 100644 --- a/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: B01PrimaryGeneratorAction.cc,v 1.7 2002/11/07 13:48:02 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/exampleB02.cc b/examples/extended/biasing/B02/exampleB02.cc index d3bcdb8d88..04a06d6f17 100644 --- a/examples/extended/biasing/B02/exampleB02.cc +++ b/examples/extended/biasing/B02/exampleB02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleB02.cc,v 1.17 2004/12/08 19:18:45 daquinog Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: exampleB02.cc,v 1.19 2005/12/09 16:38:18 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -93,7 +93,7 @@ int main(int , char **) G4long myseed = 345354; - HepRandom::setTheSeed(myseed); + CLHEP::HepRandom::setTheSeed(myseed); G4RunManager *runManager = new G4RunManager; @@ -163,11 +163,11 @@ int main(int , char **) G4CellStoreScorer scorer(b02store); - G4ParallelGeometrySampler mgs(pdet->GetWorldVolume(), + G4ParallelGeometrySampler pgs(pdet->GetWorldVolume(), "neutron"); - mgs.PrepareScoring(&scorer); - mgs.PrepareImportanceSampling(&aIstore, 0); - mgs.Configure(); + pgs.PrepareScoring(&scorer); + pgs.PrepareImportanceSampling(&aIstore, 0); + pgs.Configure(); runManager->BeamOn(numberOfEvent); @@ -183,6 +183,9 @@ int main(int , char **) delete tf; delete tree; + pgs.ClearSampling(); + + delete runManager; return 0; } diff --git a/examples/extended/biasing/B02/exampleB02.out b/examples/extended/biasing/B02/exampleB02.out index 852a558351..7120969fde 100644 --- a/examples/extended/biasing/B02/exampleB02.out +++ b/examples/extended/biasing/B02/exampleB02.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/biasing/B02/include/B02CellScorer.hh b/examples/extended/biasing/B02/include/B02CellScorer.hh index 2aaeee6f9e..3e7fbe9edc 100644 --- a/examples/extended/biasing/B02/include/B02CellScorer.hh +++ b/examples/extended/biasing/B02/include/B02CellScorer.hh @@ -22,7 +22,7 @@ // // // $Id: B02CellScorer.hh,v 1.2 2003/06/16 16:47:12 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class B02CellScorer diff --git a/examples/extended/biasing/B02/include/B02CellScorerStore.hh b/examples/extended/biasing/B02/include/B02CellScorerStore.hh index 18cc128b1c..b39ede7eb2 100644 --- a/examples/extended/biasing/B02/include/B02CellScorerStore.hh +++ b/examples/extended/biasing/B02/include/B02CellScorerStore.hh @@ -22,7 +22,7 @@ // // // $Id: B02CellScorerStore.hh,v 1.2 2003/06/16 16:47:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class B02CellScorerStore diff --git a/examples/extended/biasing/B02/include/B02DetectorConstruction.hh b/examples/extended/biasing/B02/include/B02DetectorConstruction.hh index 159cdcd5f6..c1616b9ee6 100644 --- a/examples/extended/biasing/B02/include/B02DetectorConstruction.hh +++ b/examples/extended/biasing/B02/include/B02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B02DetectorConstruction.hh,v 1.3 2002/11/08 14:47:42 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef B02DetectorConstruction_hh diff --git a/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh index 5d3cb2e585..8b4b25cea7 100644 --- a/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh +++ b/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B02ImportanceDetectorConstruction.hh,v 1.3 2003/06/16 16:47:15 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: B02ImportanceDetectorConstruction.hh,v 1.4 2005/12/07 18:05:55 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef B02ImportanceDetectorConstruction_hh @@ -51,7 +51,7 @@ public: private: void Construct(); - B02PVolumeStore fPVolumeStore;; + B02PVolumeStore fPVolumeStore; G4VPhysicalVolume *fWorldVolume; }; diff --git a/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh index 5eb53f0d76..ee2c8ff33f 100644 --- a/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh +++ b/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B02ScoringDetectorConstruction.hh,v 1.2 2002/04/19 10:54:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef B02ScoringDetectorConstruction_hh diff --git a/examples/extended/biasing/B02/src/B02CellScorer.cc b/examples/extended/biasing/B02/src/B02CellScorer.cc index 308efbda07..929d5efa1d 100644 --- a/examples/extended/biasing/B02/src/B02CellScorer.cc +++ b/examples/extended/biasing/B02/src/B02CellScorer.cc @@ -22,7 +22,7 @@ // // // $Id: B02CellScorer.cc,v 1.1 2002/11/08 14:52:17 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/extended/biasing/B02/src/B02CellScorerStore.cc b/examples/extended/biasing/B02/src/B02CellScorerStore.cc index eaa975a6af..1a96a121ee 100644 --- a/examples/extended/biasing/B02/src/B02CellScorerStore.cc +++ b/examples/extended/biasing/B02/src/B02CellScorerStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B02CellScorerStore.cc,v 1.1 2002/11/08 14:52:17 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: B02CellScorerStore.cc,v 1.2 2005/12/07 18:07:31 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -44,13 +44,13 @@ G4CellScorer *B02CellScorerStore:: AddG4CellScorer(const G4GeometryCell &g) { return fMapGeometryCellCellScorer[g] = new G4CellScorer; -}; +} void B02CellScorerStore:: AddB02CellScorer(B02CellScorer *b02scorer, const G4GeometryCell &g) { fMapGeometryCellB02CellScorer[g] = b02scorer; -}; +} const G4MapGeometryCellCellScorer &B02CellScorerStore::GetMapGeometryCellCellScorer() { diff --git a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc index 1b2aa262c3..e6c7804216 100644 --- a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc @@ -21,11 +21,10 @@ // ******************************************************************** // // -// $Id: B02DetectorConstruction.cc,v 1.10 2003/07/31 11:59:40 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: B02DetectorConstruction.cc,v 1.11 2005/11/15 14:10:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Types.hh" -#include #include "globals.hh" #include "B02DetectorConstruction.hh" diff --git a/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc index 3417ccf42f..062eba9e75 100644 --- a/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: B02ImportanceDetectorConstruction.cc,v 1.6 2003/07/31 08:28:16 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: B02ImportanceDetectorConstruction.cc,v 1.8 2005/12/09 17:17:10 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" -#include +#include #include "B02ImportanceDetectorConstruction.hh" @@ -187,15 +187,13 @@ G4String B02ImportanceDetectorConstruction::ListPhysNamesAsG4String(){ G4String B02ImportanceDetectorConstruction::GetCellName(G4int i) { - char st[200]; - std::ostrstream os(st,200); + std::ostringstream os; os << "cell_"; if (i<10) { os << "0"; } - os << i - << '\0'; - G4String name(st); + os << i; + G4String name = os.str(); return name; } diff --git a/examples/extended/biasing/B02/src/B02PVolumeStore.cc b/examples/extended/biasing/B02/src/B02PVolumeStore.cc index e9c9fb3c37..f4f5802fff 100644 --- a/examples/extended/biasing/B02/src/B02PVolumeStore.cc +++ b/examples/extended/biasing/B02/src/B02PVolumeStore.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: B02PVolumeStore.cc,v 1.2 2003/06/16 16:47:19 gunter Exp $ +// $Id: B02PVolumeStore.cc,v 1.4 2005/12/09 17:17:05 ahoward Exp $ // GEANT4 tag // // ---------------------------------------------------------------------- @@ -32,7 +32,7 @@ // ---------------------------------------------------------------------- #include "B02PVolumeStore.hh" -#include +#include #include "G4VPhysicalVolume.hh" @@ -77,11 +77,10 @@ G4String B02PVolumeStore::GetPNames() const { for (B02SetGeometryCell::const_iterator it = fSetGeometryCell.begin(); it != fSetGeometryCell.end(); ++it) { const G4VPhysicalVolume &vol = it->GetPhysicalVolume(); - char st[200]; - std::ostrstream os(st,200); + std::ostringstream os; os << vol.GetName() << "_" << it->GetReplicaNumber() - << "\n" << '\0'; - G4String cellname(st); + << "\n"; + G4String cellname = os.str(); // G4String cellname(vol.GetName()); // cellname += G4String("_"); diff --git a/examples/extended/biasing/B02/src/B02PhysicsList.cc b/examples/extended/biasing/B02/src/B02PhysicsList.cc index 0ce15dfc99..b8e86d856e 100644 --- a/examples/extended/biasing/B02/src/B02PhysicsList.cc +++ b/examples/extended/biasing/B02/src/B02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: B02PhysicsList.cc,v 1.4 2003/06/16 16:47:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc index 06ed13cec4..0d077d9fc0 100644 --- a/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: B02PrimaryGeneratorAction.cc,v 1.5 2002/11/08 14:47:48 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc index 965e69133b..95cd237f0f 100644 --- a/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: B02ScoringDetectorConstruction.cc,v 1.6 2003/02/19 08:24:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B03/exampleB03.cc b/examples/extended/biasing/B03/exampleB03.cc index 5987bf0c63..6735bb3e9d 100644 --- a/examples/extended/biasing/B03/exampleB03.cc +++ b/examples/extended/biasing/B03/exampleB03.cc @@ -22,7 +22,7 @@ // // // $Id: exampleB03.cc,v 1.11 2003/06/30 16:17:02 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/biasing/B03/exampleB03.out b/examples/extended/biasing/B03/exampleB03.out index 4c0eedda02..98763d548e 100644 --- a/examples/extended/biasing/B03/exampleB03.out +++ b/examples/extended/biasing/B03/exampleB03.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/biasing/B03/include/B03App.i b/examples/extended/biasing/B03/include/B03App.i index fabc6c0f80..0d8434a8df 100644 --- a/examples/extended/biasing/B03/include/B03App.i +++ b/examples/extended/biasing/B03/include/B03App.i @@ -16,7 +16,7 @@ #include "G4ScoreTable.hh" #include "G4VIStore.hh" #include -#include +#include #include #include "G4VPhysicalVolume.hh" #include "B03ImportanceDetectorConstruction.hh" @@ -141,7 +141,7 @@ public: std::ostream *out = 0); %extend { const char *Write(const G4MapGeometryCellCellScorer &cs){ - std::ostrstream tmpout; + std::ostringstream tmpout; self->Print(cs, &tmpout); std::string *value = new std::string(tmpout.str()); return value->c_str(); diff --git a/examples/extended/biasing/B03/include/B03AppBase.hh b/examples/extended/biasing/B03/include/B03AppBase.hh index f96b033e1d..d8bbe75c90 100644 --- a/examples/extended/biasing/B03/include/B03AppBase.hh +++ b/examples/extended/biasing/B03/include/B03AppBase.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: B03AppBase.hh,v 1.1 2003/06/30 16:17:03 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- #ifndef B03AppBase_hh diff --git a/examples/extended/biasing/B03/include/B03DetectorConstruction.hh b/examples/extended/biasing/B03/include/B03DetectorConstruction.hh index b1780fff54..304a5310b1 100644 --- a/examples/extended/biasing/B03/include/B03DetectorConstruction.hh +++ b/examples/extended/biasing/B03/include/B03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B03DetectorConstruction.hh,v 1.4 2002/11/08 17:35:18 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef B03DetectorConstruction_hh diff --git a/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh b/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh index b73cfa05a6..5affabaf42 100644 --- a/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh +++ b/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B03ImportanceDetectorConstruction.hh,v 1.2 2003/06/16 16:47:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef B03ImportanceDetectorConstruction_hh diff --git a/examples/extended/biasing/B03/include/B03PhysicsList.hh b/examples/extended/biasing/B03/include/B03PhysicsList.hh index 266d69ee29..29a7502fd1 100644 --- a/examples/extended/biasing/B03/include/B03PhysicsList.hh +++ b/examples/extended/biasing/B03/include/B03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: B03PhysicsList.hh,v 1.3 2002/11/08 17:35:18 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef B03PhysicsList_h diff --git a/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh index 02eb127f05..bb39557c6d 100644 --- a/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh +++ b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: B03PrimaryGeneratorAction.hh,v 1.3 2002/11/08 17:35:18 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef B03PrimaryGeneratorAction_hh diff --git a/examples/extended/biasing/B03/setupPI.csh b/examples/extended/biasing/B03/setupPI.csh index 3f90dacb94..53af3bf1c3 100644 --- a/examples/extended/biasing/B03/setupPI.csh +++ b/examples/extended/biasing/B03/setupPI.csh @@ -1,6 +1,6 @@ # #Id: setupPI.csh,v 1.6 2004/06/19 17:22:46 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # ------------------------------------------------------------------- # before sourcing this script make sure you have set the diff --git a/examples/extended/biasing/B03/src/B03AppBase.cc b/examples/extended/biasing/B03/src/B03AppBase.cc index 0cee04d88b..7c1e565cef 100644 --- a/examples/extended/biasing/B03/src/B03AppBase.cc +++ b/examples/extended/biasing/B03/src/B03AppBase.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: B03AppBase.cc,v 1.1 2003/06/30 16:17:03 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: B03AppBase.cc,v 1.2 2005/12/06 11:18:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- #include "B03AppBase.hh" @@ -48,7 +48,7 @@ B03AppBase &B03AppBase::GetB03AppBase() { B03AppBase::B03AppBase(){ G4long myseed = 345354; - HepRandom::setTheSeed(myseed); + CLHEP::HepRandom::setTheSeed(myseed); frunMgr = new G4RunManager; diff --git a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc index 905dbec9e9..3adea7b306 100644 --- a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc +++ b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc @@ -21,12 +21,11 @@ // ******************************************************************** // // -// $Id: B03DetectorConstruction.cc,v 1.13 2003/07/31 11:59:41 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: B03DetectorConstruction.cc,v 1.14 2005/11/15 14:10:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Types.hh" -#include #include "globals.hh" #include "B03DetectorConstruction.hh" diff --git a/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc b/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc index 3321648455..6c36657699 100644 --- a/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc +++ b/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: B03ImportanceDetectorConstruction.cc,v 1.6 2003/07/31 11:59:41 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: B03ImportanceDetectorConstruction.cc,v 1.7 2005/11/15 14:10:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "G4Types.hh" -#include +#include #include "B03ImportanceDetectorConstruction.hh" @@ -184,15 +184,14 @@ G4String B03ImportanceDetectorConstruction::ListPhysNamesAsG4String(){ G4String B03ImportanceDetectorConstruction::GetCellName(G4int i) { - char st[200]; - std::ostrstream os(st,200); + std::ostringstream os; os << "cell_"; if (i<10) { os << "0"; } os << i << '\0'; - G4String name(st); + G4String name = os.str(); return name; } diff --git a/examples/extended/biasing/B03/src/B03PVolumeStore.cc b/examples/extended/biasing/B03/src/B03PVolumeStore.cc index 08304aa028..198282114e 100644 --- a/examples/extended/biasing/B03/src/B03PVolumeStore.cc +++ b/examples/extended/biasing/B03/src/B03PVolumeStore.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: B03PVolumeStore.cc,v 1.2 2003/06/16 16:47:28 gunter Exp $ +// $Id: B03PVolumeStore.cc,v 1.3 2005/11/15 14:10:56 gcosmo Exp $ // GEANT4 tag // // ---------------------------------------------------------------------- @@ -32,7 +32,7 @@ // ---------------------------------------------------------------------- #include "B03PVolumeStore.hh" -#include +#include #include "G4VPhysicalVolume.hh" @@ -77,11 +77,10 @@ G4String B03PVolumeStore::GetPNames() const { for (B03SetGeometryCell::const_iterator it = fSetGeometryCell.begin(); it != fSetGeometryCell.end(); ++it) { const G4VPhysicalVolume &vol = it->GetPhysicalVolume(); - char st[200]; - std::ostrstream os(st,200); + std::ostringstream os; os << vol.GetName() << "_" << it->GetReplicaNumber() << "\n" << '\0'; - G4String cellname(st); + G4String cellname = os.str(); // G4String cellname(vol.GetName()); // cellname += G4String("_"); diff --git a/examples/extended/biasing/B03/src/B03PhysicsList.cc b/examples/extended/biasing/B03/src/B03PhysicsList.cc index 3aaf09ac61..0a6c006d4d 100644 --- a/examples/extended/biasing/B03/src/B03PhysicsList.cc +++ b/examples/extended/biasing/B03/src/B03PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: B03PhysicsList.cc,v 1.4 2003/06/16 16:47:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc index 94c41c0a4f..7fd48fd55c 100644 --- a/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc +++ b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: B03PrimaryGeneratorAction.cc,v 1.5 2002/11/08 17:35:19 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/History b/examples/extended/biasing/History index 1c6ffe8ce7..a9741ed371 100644 --- a/examples/extended/biasing/History +++ b/examples/extended/biasing/History @@ -1,4 +1,4 @@ -$Id: History,v 1.30 2005/05/03 10:05:48 allison Exp $ +$Id: History,v 1.32 2005/12/06 11:15:28 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,8 +17,14 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) -- Replaced vis manager with G4VisExecutive. +Dec 6, 2005 G. Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +Nov 15th, 2005 G. Cosmo - exbiasing-V07-01-00 +- migration to from deprecated . + +May 3rd, 2005 J. Allison +- replaced vis manager with G4VisExecutive. Dec 8th, 2004 G. Daquino - exbiasing-V06-02-00 - B01, B02 and B03 migrated to . diff --git a/examples/extended/electromagnetic/MuonProcesses/History b/examples/extended/electromagnetic/MuonProcesses/History index 23f6fa4779..2124bcf8b0 100644 --- a/examples/extended/electromagnetic/MuonProcesses/History +++ b/examples/extended/electromagnetic/MuonProcesses/History @@ -1,4 +1,4 @@ -$Id: History,v 1.16 2005/06/01 13:58:22 maire Exp $ +$Id: History,v 1.19 2005/12/06 11:22:03 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,15 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06-12-05 G.Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +22-11-05 mma (muonprocesses-V07-01-01) +- update README for OpenScientist + +14-11-05 Gabriele Cosmo (muonprocesses-V07-01-00) +- Migration to for HistoMessenger. + 01-06-05 mma (muonprocesses-V07-00-01) - HistoManager : option "--noErrors" for hbook diff --git a/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.cc b/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.cc index b202b3782b..83458b9ec1 100644 --- a/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.cc +++ b/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: MuonProcesses.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: MuonProcesses.cc,v 1.4 2005/12/06 11:22:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,7 +53,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.out b/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.out index 790d27edf3..a27e78546c 100644 --- a/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.out +++ b/examples/extended/electromagnetic/MuonProcesses/MuonProcesses.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (27-July-2004) + Geant4 version Name: geant4-07-01-ref-01 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -9,26 +9,26 @@ ***** Table : Nb of materials = 6 ***** - Material: galactic density: 0.000 kg/m3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc - ---> Element: galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc + ---> Element: galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % - Material: Air density: 1.290 kg/m3 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: 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: CaCO3 density: 2.800 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.581 cm - ---> Element: Calcium Ca Z = 20.0 N = 40.1 A = 40.08 g/mole fractionMass: 40.04 % Abundance 20.00 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 12.00 % Abundance 20.00 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 47.96 % Abundance 60.00 % + ---> Element: Calcium (Ca) Z = 20.0 N = 40.1 A = 40.08 g/mole fractionMass: 40.04 % Abundance 20.00 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 12.00 % Abundance 20.00 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 47.96 % Abundance 60.00 % Material: Carbon density: 2.265 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.850 cm - ---> Element: Carbon Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Carbon ( ) Z = 6.0 N = 12.0 A = 12.01 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 % + ---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Tin density: 7.310 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.206 cm - ---> Element: Tin Z = 50.0 N = 118.7 A = 118.70 g/mole fractionMass: 100.00 % Abundance 100.00 % + ---> Element: Tin ( ) Z = 50.0 N = 118.7 A = 118.70 g/mole fractionMass: 100.00 % Abundance 100.00 % Visualization Manager instantiating... @@ -40,16 +40,11 @@ Current available graphics systems are: ASCIITree (ATree) DAWNFILE (DAWNFILE) GAGTree (GAGTree) - G4HepRepFile (HepRepFile) G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) - FukuiRenderer (DAWN) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - VRML1 (VRML1) - VRML2 (VRML2) /run/verbose 2 # /testem/det/setMat Iron @@ -64,6 +59,7 @@ userDetector->Construct() start. The Box is 1 m of Iron Iron is registered to the default region. physicsList->Construct() start. +physicsList->ConstructParticle() start. physicsList->Construct() start. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm @@ -75,31 +71,6 @@ PhysicsList::SetCuts:CutLength : 1 mm # /run/beamOn 10000 -muIoni: tables are built for mu+ - dE/dx and range tables from 100 eV to 1000 PeV in 220 bins. - Lambda tables from threshold to 1000 PeV in 220 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - -muBrems: tables are built for mu+ - dE/dx and range tables from 100 eV to 1000 PeV in 220 bins. - Lambda tables from threshold to 1000 PeV in 220 bins. - Parametrised model - -muPairProd: tables are built for mu+ - dE/dx and range tables from 100 eV to 1000 PeV in 220 bins. - Lambda tables from threshold to 1000 PeV in 220 bins. - Parametrised model -### All dEdx and Range tables are built ##### - -muIoni: tables are built for mu- - dE/dx and range tables from 100 eV to 1000 PeV in 220 bins. - Lambda tables from threshold to 1000 PeV in 220 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 - Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, - radiative corrections for E > 1 GeV - Region DefaultRegionForTheWorld Materials : Iron Production cuts : gamma 1 mm e- 1 mm e+ 1 mm @@ -150,18 +121,18 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10000 - User=9.08s Real=10.07s Sys=0.99s + User=157.19s Real=295.93s Sys=7.74s The run consists of 10000 mu+ of 10 TeV through 1 m of Iron (density: 7.9 g/cm3 ) - Number of process calls ---> muIoni : 468098 muPairProd : 63605 muBrems : 651 + Number of process calls ---> muIoni : 469718 muPairProd : 63465 muBrems : 659 - Simulation: total CrossSection = 0.53235 /cm MeanFreePath = 1.8784 cm massicCrossSection = 0.067643 cm2/g + Simulation: total CrossSection = 0.53384 /cm MeanFreePath = 1.8732 cm massicCrossSection = 0.067833 cm2/g Theory: total CrossSection = 0.53938 /cm MeanFreePath = 1.854 cm massicCrossSection = 0.068536 cm2/g --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1120087086, 1146531186 + Current couple of seeds = 876554893, 585859518 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/MuonProcesses/README b/examples/extended/electromagnetic/MuonProcesses/README index 0662f5980e..d780fd4465 100644 --- a/examples/extended/electromagnetic/MuonProcesses/README +++ b/examples/extended/electromagnetic/MuonProcesses/README @@ -1,4 +1,4 @@ -$Id: README,v 1.3 2005/03/03 16:50:35 maire Exp $ +$Id: README,v 1.4 2005/11/22 16:44:28 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -140,32 +140,28 @@ $Id: README,v 1.3 2005/03/03 16:50:35 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/MuonProcesses/include/DetectorConstruction.hh b/examples/extended/electromagnetic/MuonProcesses/include/DetectorConstruction.hh index e3ff4c3cd1..7e0d45d34f 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/DetectorMessenger.hh b/examples/extended/electromagnetic/MuonProcesses/include/DetectorMessenger.hh index e0bc000f7a..a84e7ce2b2 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/MuonProcesses/include/EventAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/EventAction.hh index c4c1806568..a8007ccc12 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/EventAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/EventActionMessenger.hh b/examples/extended/electromagnetic/MuonProcesses/include/EventActionMessenger.hh index c0c5256b4b..0145ce807a 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/HistoManager.hh b/examples/extended/electromagnetic/MuonProcesses/include/HistoManager.hh index 23c0ee613f..aa81b51fc3 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/HistoManager.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/HistoManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.hh,v 1.4 2005/03/03 16:50:35 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/HistoMessenger.hh b/examples/extended/electromagnetic/MuonProcesses/include/HistoMessenger.hh index 27606a0925..70abe5c6b2 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/HistoMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoMessenger.hh,v 1.3 2005/03/03 16:50:35 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/MuCrossSections.hh b/examples/extended/electromagnetic/MuonProcesses/include/MuCrossSections.hh index f441308994..9428ec4868 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/MuCrossSections.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/MuCrossSections.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: MuCrossSections.hh,v 1.2 2004/08/27 11:06:23 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/MuNuclearBuilder.hh b/examples/extended/electromagnetic/MuonProcesses/include/MuNuclearBuilder.hh index 3822c90bc2..9541797a92 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/MuNuclearBuilder.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/MuNuclearBuilder.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: MuNuclearBuilder.hh,v 1.1 2004/08/17 18:07:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmG4v52.hh index b00f2a1ed8..6ffc71c1e8 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmG4v52.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmG4v52.hh,v 1.1 2004/06/14 10:09:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmStandard.hh index 51d0a571e7..a21257cd70 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PhysListEmStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PhysicsList.hh b/examples/extended/electromagnetic/MuonProcesses/include/PhysicsList.hh index e66fe02f85..b70ccdd713 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.2 2004/08/17 18:07:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/MuonProcesses/include/PhysicsListMessenger.hh index a3e1c69d58..827d7b3f7b 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/PrimaryGeneratorAction.hh index 39c81fc188..58bb406f6c 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/ProcessesCount.hh b/examples/extended/electromagnetic/MuonProcesses/include/ProcessesCount.hh index 52162040a3..2cb09211bd 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/ProcessesCount.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/ProcessesCount.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ProcessesCount.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/RunAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/RunAction.hh index 5644a5fffc..8db8860457 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/RunAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/StackingAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/StackingAction.hh index 127059c0ca..dea3ed8cc9 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/StackingAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/StackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingAction.hh,v 1.2 2004/12/15 15:41:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/SteppingAction.hh b/examples/extended/electromagnetic/MuonProcesses/include/SteppingAction.hh index 3832c7e890..5339bedb41 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.1 2004/06/14 10:09:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/include/SteppingVerbose.hh b/examples/extended/electromagnetic/MuonProcesses/include/SteppingVerbose.hh index b16dda00b8..297ec1ce92 100644 --- a/examples/extended/electromagnetic/MuonProcesses/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/MuonProcesses/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.1 2004/06/14 10:09:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/MuonProcesses/src/DetectorConstruction.cc b/examples/extended/electromagnetic/MuonProcesses/src/DetectorConstruction.cc index 9d56fe5722..5b696cd39d 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.cc,v 1.1 2004/06/14 10:09:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/DetectorMessenger.cc b/examples/extended/electromagnetic/MuonProcesses/src/DetectorMessenger.cc index 1b5033e8f5..50abb1335a 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.cc,v 1.1 2004/06/14 10:09:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/MuonProcesses/src/EventAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/EventAction.cc index b9920cc9ae..7185e09030 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/EventAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.1 2004/06/14 10:09:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/EventActionMessenger.cc b/examples/extended/electromagnetic/MuonProcesses/src/EventActionMessenger.cc index d2c012aeb1..68f60ac0cb 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.1 2004/06/14 10:09:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/HistoManager.cc b/examples/extended/electromagnetic/MuonProcesses/src/HistoManager.cc index 2466da23ad..3450a845c5 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/HistoManager.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/HistoManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.cc,v 1.5 2005/06/01 13:58:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/HistoMessenger.cc b/examples/extended/electromagnetic/MuonProcesses/src/HistoMessenger.cc index ba37bb4841..589444b0b1 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/HistoMessenger.cc @@ -20,14 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.3 2005/03/03 16:50:35 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HistoMessenger.cc,v 1.4 2005/11/14 13:53:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "HistoMessenger.hh" +#include + #include "HistoManager.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -114,7 +116,7 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> ih >> nbBins >> vmin >> vmax >> unts; G4String unit = unts; G4double vUnit = 1. ; diff --git a/examples/extended/electromagnetic/MuonProcesses/src/MuCrossSections.cc b/examples/extended/electromagnetic/MuonProcesses/src/MuCrossSections.cc index 50020d0a2d..7468ee6041 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/MuCrossSections.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/MuCrossSections.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: MuCrossSections.cc,v 1.6 2004/12/06 12:02:42 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/MuNuclearBuilder.cc b/examples/extended/electromagnetic/MuonProcesses/src/MuNuclearBuilder.cc index 0515f0cc0c..fd3edc5cd1 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/MuNuclearBuilder.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/MuNuclearBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: MuNuclearBuilder.cc,v 1.2 2004/11/03 12:43:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmG4v52.cc index 10dde9bb15..bff7ef2d90 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmG4v52.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.cc,v 1.1 2004/06/14 10:09:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmStandard.cc index b003be6df5..16d488f657 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PhysListEmStandard.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.cc,v 1.7 2004/12/06 16:06:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PhysicsList.cc b/examples/extended/electromagnetic/MuonProcesses/src/PhysicsList.cc index 00ccd39b55..0d9421bc43 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.cc,v 1.4 2005/03/16 13:50:56 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/MuonProcesses/src/PhysicsListMessenger.cc index fec8c0b29a..0612d5fc6c 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/PrimaryGeneratorAction.cc index 8e062977d4..952f90dd7d 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/RunAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/RunAction.cc index 28e221709f..6adce957b5 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/RunAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.7 2004/12/03 09:38:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.8 2005/12/06 11:22:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -63,7 +63,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); ProcCounter = new ProcessesCount; @@ -166,7 +166,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) histoManager->save(); // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/StackingAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/StackingAction.cc index 91b608dc74..3543ef81c2 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/StackingAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/StackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingAction.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/SteppingAction.cc b/examples/extended/electromagnetic/MuonProcesses/src/SteppingAction.cc index 847f9bf3f6..afe40fdc40 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.4 2004/12/03 09:38:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/MuonProcesses/src/SteppingVerbose.cc b/examples/extended/electromagnetic/MuonProcesses/src/SteppingVerbose.cc index c821540190..bbe7c5cfe9 100644 --- a/examples/extended/electromagnetic/MuonProcesses/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/MuonProcesses/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.1 2004/06/14 10:09:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/History b/examples/extended/electromagnetic/PhotonProcesses/History index dc3c8b80be..5fec09047e 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/History +++ b/examples/extended/electromagnetic/PhotonProcesses/History @@ -1,4 +1,4 @@ -$Id: History,v 1.12 2005/06/01 13:44:06 maire Exp $ +$Id: History,v 1.15 2005/12/06 11:25:01 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,15 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +22-11-05 mma (photonprocesses-V07-01-01) +- update README for OpenScientist + +14-11-05 Gabriele Cosmo (photonprocesses-V07-01-00) +- Migration to for HistoMessenger. + 01-06-05 mma (photonprocesses-V07-00-02) - HistoManager : option "--noErrors" for hbook diff --git a/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.cc b/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.cc index a18db5c6de..d85f2bea0b 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhotonProcesses.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhotonProcesses.cc,v 1.7 2005/12/06 11:25:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -51,7 +51,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.out b/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.out new file mode 100644 index 0000000000..3d4406a2f2 --- /dev/null +++ b/examples/extended/electromagnetic/PhotonProcesses/PhotonProcesses.out @@ -0,0 +1,221 @@ + +************************************************************* + Geant4 version Name: geant4-07-01-ref-01 (30-June-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + + +***** Table : Nb of materials = 14 ***** + + 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 H_2O 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: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm + ---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm + ---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: NaI density: 3.670 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.586 cm + ---> Element: Sodium (Na) Z = 11.0 N = 23.0 A = 22.99 g/mole fractionMass: 15.34 % Abundance 50.00 % + ---> Element: Iodine (I) Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 84.66 % Abundance 50.00 % + + Material: Iodine density: 4.930 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.720 cm + ---> Element: Iodine (I) Z = 53.0 N = 126.9 A = 126.90 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: 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: 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 % + + +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) +/run/verbose 2 +# +/testem/det/setMat Water +/testem/det/setSize 100 m +# +/run/initialize +userDetector->Construct() start. + + The Box is 100 m of Water +Water is registered to the default region. +physicsList->Construct() start. +physicsList->ConstructParticle() start. +physicsList->Construct() start. +physicsList->setCut() start. +# +/gun/energy 100 keV +# +/testem/event/printModulo 10000 +# +/run/beamOn 100000 + +phot: Total cross sections from Sandia parametrisation. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +GammaToMuPair: gamma->mu+mu- Bethe Heitler process. + good cross section parametrization from 422.634 MeV to 1e+12 GeV for all Z. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +Region DefaultRegionForTheWorld + Materials : Water + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Water + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.90186 keV e- 347.138 keV e+ 338.695 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 0 kByte + Total CPU time elapsed for geometry optimisation: 0 seconds +### Run 0 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 9876, 54321 +---------------------------------------- +Start Run processing. + +---> Begin of Event: 0 + +---> Begin of Event: 10000 + +---> Begin of Event: 20000 + +---> Begin of Event: 30000 + +---> Begin of Event: 40000 + +---> Begin of Event: 50000 + +---> Begin of Event: 60000 + +---> Begin of Event: 70000 + +---> Begin of Event: 80000 + +---> Begin of Event: 90000 +Run terminated. +Run Summary + Number of events processed : 100000 + User=46s Real=9.5e+02s Sys=63s + + The run consists of 100000 gamma of 100.00 keV through 100.00 m of Water (density: 1.00 g/cm3 ) + + Frequency of process calls ---> compt : 98355 phot : 1645 + + MeanFreePath: 6.08436 cm +- 6.07180 cm massic: 6.08436 g/cm2 + AttenuationCoef: 0.16436 cm^-1 massic: 0.16436 cm2/g + + Mass AttenuationCoef for compt from G4EmCalculator: 0.16230 cm2/g + Mass AttenuationCoef for phot from G4EmCalculator: 0.00269 cm2/g + + Sum of mass AttenuationCoef from G4EmCalculator: 0.16498 cm2/g + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 1388766644, 882092427 +---------------------------------------- +Graphics systems deleted. +Visualization Manager deleting... +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. +RunManager is deleting. diff --git a/examples/extended/electromagnetic/PhotonProcesses/README b/examples/extended/electromagnetic/PhotonProcesses/README index 35dae46513..671cdc3d38 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/README +++ b/examples/extended/electromagnetic/PhotonProcesses/README @@ -1,4 +1,4 @@ -$Id: README,v 1.5 2005/03/03 15:03:04 maire Exp $ +$Id: README,v 1.6 2005/11/22 16:40:07 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -133,32 +133,28 @@ $Id: README,v 1.5 2005/03/03 15:03:04 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/PhotonProcesses/conv.mac b/examples/extended/electromagnetic/PhotonProcesses/conv.mac index 582c04e9f8..503e97f3fd 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/conv.mac +++ b/examples/extended/electromagnetic/PhotonProcesses/conv.mac @@ -1,4 +1,4 @@ -# $Id: conv.mac,v 1.5 2005/05/09 16:10:42 maire Exp $ +# $Id: conv.mac,v 1.6 2005/11/22 16:40:07 maire Exp $ # # Macro file for "PhotonProcesses.cc" # (can be run in batch, without graphic) @@ -18,11 +18,11 @@ /process/inactivate compt /process/inactivate GammaToMuPair # -/gun/energy 100 MeV +/gun/energy 20 MeV # /testem/histo/setFileName conv.std /testem/histo/setFileType hbook -/testem/histo/setHisto 3 200 0. 100. MeV #energy of ch. secondaries +/testem/histo/setHisto 3 200 0. 20. MeV #energy of ch. secondaries /testem/histo/setHisto 4 200 0. +1. none #costeta of ch. secondaries # /testem/event/printModulo 10000 diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/DetectorConstruction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/DetectorConstruction.hh index 8ddd5280bc..9157ca26c8 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.2 2004/09/29 10:37:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/DetectorMessenger.hh b/examples/extended/electromagnetic/PhotonProcesses/include/DetectorMessenger.hh index c7b8a7e442..869ad41448 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.2 2004/09/29 10:37:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/EventAction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/EventAction.hh index 9bcdbcc5bc..50f0640177 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/EventAction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.2 2004/09/29 10:37:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/EventActionMessenger.hh b/examples/extended/electromagnetic/PhotonProcesses/include/EventActionMessenger.hh index 51e5ce7439..2e292f9304 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/HistoManager.hh b/examples/extended/electromagnetic/PhotonProcesses/include/HistoManager.hh index 7de5281764..51d1ccb83b 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/HistoManager.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/HistoManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.hh,v 1.5 2005/03/03 15:03:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/HistoMessenger.hh b/examples/extended/electromagnetic/PhotonProcesses/include/HistoMessenger.hh index 0171639dd1..52054eb6a0 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/HistoMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoMessenger.hh,v 1.4 2005/03/03 15:03:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmG4v52.hh index c60fa0e78a..631d79cfae 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.1 2005/05/09 16:11:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmStandard.hh index 6ca00055cc..cd1b6691f1 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PhysListEmStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsList.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsList.hh index 9282e93e1c..4180d24d1d 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsListMessenger.hh index 43f69ccc83..88862f1d65 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/PrimaryGeneratorAction.hh index 0857de0d53..82cbdc0166 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/09/29 10:37:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/ProcessesCount.hh b/examples/extended/electromagnetic/PhotonProcesses/include/ProcessesCount.hh index abfa84e5ca..801fe52227 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/ProcessesCount.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/ProcessesCount.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ProcessesCount.hh,v 1.2 2004/09/29 10:37:55 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/RunAction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/RunAction.hh index 3fe1b10eb5..5a346a37ff 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/RunAction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.3 2004/09/29 10:37:55 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/SteppingAction.hh b/examples/extended/electromagnetic/PhotonProcesses/include/SteppingAction.hh index 8856781b39..42e8c801ba 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.2 2004/09/29 10:37:55 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/include/SteppingVerbose.hh b/examples/extended/electromagnetic/PhotonProcesses/include/SteppingVerbose.hh index f1a64be9be..d920f1d975 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/PhotonProcesses/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.2 2004/09/29 10:37:57 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/DetectorConstruction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/DetectorConstruction.cc index e6c24f16c3..4c39d8218e 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/DetectorConstruction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: DetectorConstruction.cc,v 1.3 2005/05/09 16:10:42 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: DetectorConstruction.cc,v 1.4 2005/11/22 16:40:07 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -136,7 +136,6 @@ void DetectorConstruction::DefineMaterials() new G4Material("Uranium" , z=92., a=238.03*g/mole, density= 18.95*g/cm3); - G4cout << *(G4Material::GetMaterialTable()) << G4endl; } diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/DetectorMessenger.cc b/examples/extended/electromagnetic/PhotonProcesses/src/DetectorMessenger.cc index 8c98cad554..ec8ac5067a 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.2 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/EventAction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/EventAction.cc index 9fe343b00b..dc4b698ea7 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/EventAction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.2 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/EventActionMessenger.cc b/examples/extended/electromagnetic/PhotonProcesses/src/EventActionMessenger.cc index 5a0e5cad49..257f698aca 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.2 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/HistoManager.cc b/examples/extended/electromagnetic/PhotonProcesses/src/HistoManager.cc index 7e60cfc85c..2459c7d16c 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/HistoManager.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/HistoManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.cc,v 1.6 2005/06/01 13:44:06 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/HistoMessenger.cc b/examples/extended/electromagnetic/PhotonProcesses/src/HistoMessenger.cc index ee06ced8dc..5a08ac1ad1 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/HistoMessenger.cc @@ -20,14 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.4 2005/03/03 15:03:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HistoMessenger.cc,v 1.5 2005/11/14 14:11:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "HistoMessenger.hh" +#include + #include "HistoManager.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -114,7 +116,7 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> ih >> nbBins >> vmin >> vmax >> unts; G4String unit = unts; G4double vUnit = 1. ; diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmG4v52.cc index 2b906f7c3a..b77aa1c6e7 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmG4v52.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.cc,v 1.1 2005/05/09 16:11:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmStandard.cc index 90d98be4db..fbb13d69c0 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PhysListEmStandard.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.cc,v 1.2 2004/09/29 10:38:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsList.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsList.cc index 6be51e7b5f..13b41c89e5 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsList.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.cc,v 1.4 2005/05/09 16:10:42 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsListMessenger.cc index 135b8be692..e0b25bf72b 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/09/29 10:38:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/PrimaryGeneratorAction.cc index 9fdee49c9e..efff6594cc 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/09/29 10:38:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/RunAction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/RunAction.cc index 54c73459d2..127644feae 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/RunAction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.9 2005/06/01 13:44:06 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.10 2005/12/06 11:25:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -60,7 +60,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); ProcCounter = new ProcessesCount; totalCount = 0; @@ -171,7 +171,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) histoManager->save(); // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/SteppingAction.cc b/examples/extended/electromagnetic/PhotonProcesses/src/SteppingAction.cc index c3314812b5..4075ecf3b4 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.6 2005/05/10 15:24:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/PhotonProcesses/src/SteppingVerbose.cc b/examples/extended/electromagnetic/PhotonProcesses/src/SteppingVerbose.cc index 0645ff3a75..f0dc6666ab 100644 --- a/examples/extended/electromagnetic/PhotonProcesses/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/PhotonProcesses/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.2 2004/09/29 10:38:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/History b/examples/extended/electromagnetic/TestEm1/History index 5ca3973054..9bbca3a0e8 100644 --- a/examples/extended/electromagnetic/TestEm1/History +++ b/examples/extended/electromagnetic/TestEm1/History @@ -1,4 +1,4 @@ -$Id: History,v 1.60 2005/06/01 10:20:12 maire Exp $ +$Id: History,v 1.64 2005/12/06 11:25:21 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,18 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +22-11-05 mma (testem1-V07-01-02) +- update README for OpenScientist + +14-11-05 Gabriele Cosmo (testem1-V07-01-01) +- Migration to for HistoMessenger. + +04-10-05 mma (testem1-V07-01-00) +- create PhysListEmG4v71 (g4v71) for G4MultipleScattering71 01-06-05 mma (testem1-V07-00-02) - PhysListEmG4v52 : old photon processes marked as 52 (and eplusAnnihilation) diff --git a/examples/extended/electromagnetic/TestEm1/README b/examples/extended/electromagnetic/TestEm1/README index 3e01e5d662..eb9837f69e 100644 --- a/examples/extended/electromagnetic/TestEm1/README +++ b/examples/extended/electromagnetic/TestEm1/README @@ -1,4 +1,4 @@ -$Id: README,v 1.16 2005/02/01 11:34:00 maire Exp $ +$Id: README,v 1.17 2005/11/22 17:14:07 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -118,32 +118,28 @@ $Id: README,v 1.16 2005/02/01 11:34:00 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.cc b/examples/extended/electromagnetic/TestEm1/TestEm1.cc index d03e03d711..cf7dbef212 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.cc +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm1.cc,v 1.12 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm1.cc,v 1.13 2005/12/06 11:25:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,7 +53,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out index 1d28ad9281..c3f66c0450 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.out +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out @@ -1,12 +1,11 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; ***** Table : Nb of materials = 12 ***** @@ -17,7 +16,7 @@ G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 7 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 H_2O density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm + 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 % @@ -54,6 +53,19 @@ G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 7 Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +Registering model factories... /tracking/verbose 0 # /testem/phys/setGCut 2.20 mm @@ -63,8 +75,6 @@ Registering graphics systems... /run/initialize The Box is 10 m of Aluminium - -phot: Total cross sections from Sandia parametrisation. PhysicsList::SetCuts:CutLength : 1 mm # /process/eLoss/StepFunction 0.183 1.70 micrometer @@ -87,19 +97,22 @@ PhysicsList::SetCuts:CutLength : 1 mm # /testem/histo/setFileName run0 /run/beamOn 200 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -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.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -125,13 +138,13 @@ brem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -151,7 +164,7 @@ ionIoni: tables are built for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -189,9 +202,9 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Aluminium Production cuts : gamma 2.2 mm e- 6.05 mum e+ 6.05 mum @@ -223,7 +236,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 200 - User=57.93s Real=89.08s Sys=22.52s + User=143.37s Real=168.97s Sys=23.87s ======================== run summary ====================== @@ -231,47 +244,50 @@ Run Summary ============================================================ - total energy deposit: 99.795 MeV + total energy deposit: 99.809 MeV - nb tracks/event neutral: 27.890 charged: 696.070 - nb steps/event neutral: 144.765 charged: 3551.890 + nb tracks/event neutral: 27.575 charged: 693.310 + nb steps/event neutral: 138.115 charged: 3828.275 nb of process calls per event: - eIoni brem compt phot conv annihilTransportation - 3524.220 26.220 116.875 25.390 1.445 1.445 1.060 + eIoni brem msc phot compt conv annihilTransportation + 3144.490 25.910 656.495 25.180 110.540 1.380 1.380 1.015 --------------------------------------------------------- Primary particle : - CSDA Range = 10.931 cm rms = 3.737 cm - proj Range = 9.336 cm rms = 3.427 cm - proj/CSDA = 0.854 - transverse dispersion at end = 1.736 cm - - mass CSDA Range from simulation = 29.513 g/cm2 - from PhysicsTable = 85.395 g/cm2 ---------------------------------------------------------- + CSDA Range = 10.761 cm rms = 3.879 cm + proj Range = 9.255 cm rms = 3.650 cm + proj/CSDA = 0.860 + transverse dispersion at end = 1.741 cm --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1645379266, 900793937 + Current couple of seeds = 1674441358, 1865268964 ---------------------------------------- + + mass CSDA Range from simulation = 29.055 g/cm2 + from PhysicsTable = 85.395 g/cm2 +--------------------------------------------------------- # /testem/phys/setCuts 1 mm /testem/histo/setFileName run1 /run/beamOn 200 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -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.0219981 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.0219981 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -297,13 +313,13 @@ brem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -323,7 +339,7 @@ ionIoni: tables are built for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -361,9 +377,9 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Aluminium Production cuts : gamma 1 mm e- 1 mm e+ 1 mm @@ -382,7 +398,7 @@ Index : 0 used in the geometry : Yes recalculation needed : No --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1645379266, 900793937 + Current couple of seeds = 1674441358, 1865268964 ---------------------------------------- Start Run processing. @@ -390,7 +406,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 200 - User=20.13s Real=32.71s Sys=10.86s + User=45.28s Real=58.43s Sys=11.47s ======================== run summary ====================== @@ -398,30 +414,30 @@ Run Summary ============================================================ - total energy deposit: 99.792 MeV + total energy deposit: 99.789 MeV - nb tracks/event neutral: 28.325 charged: 151.015 - nb steps/event neutral: 144.100 charged: 1127.410 + nb tracks/event neutral: 27.115 charged: 143.160 + nb steps/event neutral: 136.270 charged: 1161.905 nb of process calls per event: - brem eIoni phot compt conv annihilTransportation - 26.780 1099.265 25.910 115.775 1.365 1.365 1.050 + brem eIoni compt phot msc conv annihilTransportation + 25.585 1022.685 109.155 24.920 112.355 1.280 1.280 0.915 --------------------------------------------------------- Primary particle : - CSDA Range = 10.607 cm rms = 3.783 cm - proj Range = 9.158 cm rms = 3.553 cm - proj/CSDA = 0.863 - transverse dispersion at end = 1.603 cm - - mass CSDA Range from simulation = 28.639 g/cm2 - from PhysicsTable = 67.818 g/cm2 ---------------------------------------------------------- + CSDA Range = 11.292 cm rms = 3.464 cm + proj Range = 9.702 cm rms = 3.120 cm + proj/CSDA = 0.859 + transverse dispersion at end = 1.774 cm --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 917965385, 895770852 + Current couple of seeds = 1519444746, 431167489 ---------------------------------------- + + mass CSDA Range from simulation = 30.488 g/cm2 + from PhysicsTable = 67.818 g/cm2 +--------------------------------------------------------- Graphics systems deleted. Visualization Manager deleting... UserDetectorConstruction deleted. diff --git a/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh index 2994cfa8c2..be377fa339 100644 --- a/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.1 2003/10/06 10:02:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh index b22d385bf1..ad4001f1ef 100644 --- a/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/EventAction.hh b/examples/extended/electromagnetic/TestEm1/include/EventAction.hh index fb8161fc6d..d6b89d10c4 100644 --- a/examples/extended/electromagnetic/TestEm1/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: EventAction.hh,v 1.2 2003/10/28 10:27:25 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh index 4b3532040b..ddba832702 100644 --- a/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm1/include/HistoManager.hh index 2bb6c37f28..692a518d85 100644 --- a/examples/extended/electromagnetic/TestEm1/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm1/include/HistoManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.hh,v 1.4 2005/02/01 11:34:03 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/HistoMessenger.hh index c9cfa17690..3a03cadea4 100644 --- a/examples/extended/electromagnetic/TestEm1/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/HistoMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoMessenger.hh,v 1.2 2005/02/01 11:34:03 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh index 53be971825..b1edf70d67 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.1 2003/10/06 10:02:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v71.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v71.hh new file mode 100644 index 0000000000..da0458bdf7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.hh,v 1.2 2005/10/05 12:05:13 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmG4v71_h +#define PhysListEmG4v71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmG4v71 : public G4VPhysicsConstructor +{ + public: + PhysListEmG4v71(const G4String& name = "g4v71"); + ~PhysListEmG4v71(); + + public: + // This method is dummy for physics + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh index 443cb8c30b..bfe739a983 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.3 2003/10/24 12:06:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh index df22bdc6b8..8daf0b52f4 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.2 2004/06/09 15:29:43 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh index 46a38cf9a8..df98dff4c5 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh index 1d2d01229b..98ea1cd0ee 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/07/23 15:39:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh index 210054a200..7a87966c69 100644 --- a/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.2 2004/09/15 13:17:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh b/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh index 47bfa86348..dd17f0bc53 100644 --- a/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh +++ b/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh @@ -22,7 +22,7 @@ // // // $Id: ProcessesCount.hh,v 1.9 2003/10/06 10:02:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/RunAction.hh b/examples/extended/electromagnetic/TestEm1/include/RunAction.hh index d899cc2275..c5b8b9e4da 100644 --- a/examples/extended/electromagnetic/TestEm1/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.6 2004/08/03 11:31:43 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh index 62efbdf7ec..3a7743199f 100644 --- a/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.3 2004/07/23 15:39:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh index 5617d047d7..d1e45f3f06 100644 --- a/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh index 028efb9d09..41da24df48 100644 --- a/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.3 2004/07/23 15:39:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc index 60a4803f37..067c21ff71 100644 --- a/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc @@ -23,7 +23,7 @@ // // $Id: DetectorConstruction.cc,v 1.5 2005/06/01 10:20:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc index e1906d5e5a..82d7e80ed8 100644 --- a/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.2 2004/09/15 13:17:19 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/EventAction.cc b/examples/extended/electromagnetic/TestEm1/src/EventAction.cc index 6a88887c33..8c97e0abc1 100644 --- a/examples/extended/electromagnetic/TestEm1/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: EventAction.cc,v 1.3 2004/03/15 11:09:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc index e0fdd52b59..d89984efc1 100644 --- a/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.2 2004/09/15 13:17:19 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm1/src/HistoManager.cc index f8c9f4741d..361e18ee25 100644 --- a/examples/extended/electromagnetic/TestEm1/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm1/src/HistoManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.cc,v 1.6 2005/06/01 10:20:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/HistoMessenger.cc index 282e81f5a0..12634c4a5a 100644 --- a/examples/extended/electromagnetic/TestEm1/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/HistoMessenger.cc @@ -20,14 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.3 2005/02/01 11:34:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HistoMessenger.cc,v 1.4 2005/11/14 14:14:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "HistoMessenger.hh" +#include + #include "HistoManager.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -114,7 +116,7 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> ih >> nbBins >> vmin >> vmax >> unts; G4String unit = unts; G4double vUnit = 1. ; diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc index 2d83a2132b..1a3628037d 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.cc,v 1.2 2005/06/01 10:20:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v71.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v71.cc new file mode 100644 index 0000000000..a8ec14ddc5 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v71.cc @@ -0,0 +1,116 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.cc,v 1.1 2005/10/04 16:16:15 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::PhysListEmG4v71(const G4String& name) + : G4VPhysicsConstructor(name) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::~PhysListEmG4v71() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v71::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung("brem", 10*GeV),-1,3,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung("brem", 10*GeV),-1,3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering71,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if( particleName == "alpha" || particleName == "GenericIon" ) { + pmanager->AddProcess(new G4MultipleScattering71,-1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering71,-1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc index ab8453ae83..ca6e6626bb 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.cc,v 1.9 2005/03/18 14:45:59 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc index 9a0fb2e42e..7aabe5e224 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsList.cc,v 1.4 2005/03/15 17:45:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.5 2005/10/04 16:16:15 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -32,6 +32,7 @@ #include "PhysListEmStandard.hh" #include "PhysListEmG4v52.hh" +#include "PhysListEmG4v71.hh" #include "DetectorConstruction.hh" #include "G4LossTableManager.hh" @@ -220,7 +221,13 @@ void PhysicsList::AddPhysicsList(const G4String& name) emName = name; delete emPhysicsList; emPhysicsList = new PhysListEmG4v52(name); + + } else if (name == "g4v71") { + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v71(name); + } else { G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc index 4ddb7cfb9f..c049ae6682 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/09/15 13:17:20 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc index 7c9dc3e81d..65073b36cf 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.cc,v 1.3 2004/08/03 11:31:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc index 3ce2e5200e..24a19962b0 100644 --- a/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.3 2004/09/15 13:17:20 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/RunAction.cc b/examples/extended/electromagnetic/TestEm1/src/RunAction.cc index ac94450330..fd22a50516 100644 --- a/examples/extended/electromagnetic/TestEm1/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.12 2004/12/02 14:53:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.13 2005/12/06 11:25:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,7 +59,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); NbOfTraks0 = NbOfTraks1 = NbOfSteps0 = NbOfSteps1 = 0; edep = 0.; @@ -199,7 +199,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) histoManager->save(); // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc index e8f2cede5e..dea6a1b178 100644 --- a/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.6 2004/07/23 15:39:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc index 6e42294d8c..23d46308f2 100644 --- a/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.cc,v 1.1 2003/10/06 10:02:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc index 30bfe832c2..a17d295fa2 100644 --- a/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.cc,v 1.8 2004/07/23 15:39:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm10/History b/examples/extended/electromagnetic/TestEm10/History index 511f49c6dd..8ddc890442 100644 --- a/examples/extended/electromagnetic/TestEm10/History +++ b/examples/extended/electromagnetic/TestEm10/History @@ -1,4 +1,4 @@ -$Id: History,v 1.14 2005/05/03 10:05:48 allison Exp $ +$Id: History,v 1.17 2005/12/06 11:27:37 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,7 +15,18 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +06 Dec 05: Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +29 Oct 05: V.Ivant (testem10-V07-01-01) +- V.Grichine:Production cuts were moved to Physics list providing + independent gamma, electron and positron cuts in radiator + and detector regions. + +15 Oct 05: V.Ivant (testem10-V07-01-00) +- Updated PhysicsList + +03 May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. 02 Dec 04: V.Ivant (testem10-V06-02-01) diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.cc b/examples/extended/electromagnetic/TestEm10/TestEm10.cc index 6ccbe63f98..7a698801cf 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.cc +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm10.cc,v 1.4 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm10.cc,v 1.5 2005/12/06 11:27:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -57,7 +57,7 @@ int main(int argc,char** argv) //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out index 0de8c06398..de428d4b83 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out index 1f537f603d..e3ae286e97 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -21,7 +21,9 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) -***** Table : Nb of materials = 32 ***** +Registering model factories... + +***** Table : Nb of materials = 34 ***** 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 % @@ -48,10 +50,11 @@ Current available graphics systems are: ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % - Material: Kapton density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.743 cm - ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 % - ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 % - ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 % + Material: Kapton density: 1.413 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.717 cm + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 20.92 % Abundance 12.82 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 69.11 % Abundance 56.41 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 7.33 % Abundance 5.13 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 2.64 % Abundance 25.64 % Material: CH2 density: 910.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 49.214 cm ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % @@ -88,7 +91,7 @@ Current available graphics systems are: ---> 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: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m + Material: CO2 density: 1.842 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 196.496 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 % @@ -103,17 +106,27 @@ Current available graphics systems are: ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % + Material: Xe15CO2 density: 4.900 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 17.592 m + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 97.90 % Abundance 83.89 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.57 % Abundance 5.37 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 1.53 % Abundance 10.74 % + Material: Xe20CO2 density: 5.082 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 17.750 m ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 56.91 % ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.13 % Abundance 14.36 % ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 5.67 % Abundance 28.73 % + Material: Xe27CO23O2 density: 4.358 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 21.487 m + ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 87.67 % Abundance 44.43 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.11 % Abundance 17.25 % + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 9.21 % Abundance 38.32 % + Material: Kr20CO2 density: 3.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 34.158 m ---> Element: Kr ( ) Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 58.62 % ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 3.00 % Abundance 13.79 % ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % - Material: Xe55He15CH4 density: 1.963 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 47.504 m + Material: Xe55He15CH4 density: 1.829 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 50.984 m ---> Element: Xenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 89.50 % Abundance 18.71 % ---> Element: He ( ) Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 5.00 % Abundance 34.28 % ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 4.12 % Abundance 9.40 % @@ -150,109 +163,127 @@ Current available graphics systems are: ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.29 % Abundance 18.87 % ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 22.72 % Abundance 37.84 % - Material: radiatorMat density: 24.058 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 16.527 m - ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 32.77 % Abundance 18.27 % - ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 59.19 % Abundance 43.98 % - ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 3.98 % Abundance 35.18 % - ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 3.99 % Abundance 2.54 % - ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 0.07 % Abundance 0.02 % + Material: radiatorMat density: 104.160 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.832 m + ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.19 % Abundance 18.20 % + ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 61.78 % Abundance 45.14 % + ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.16 % Abundance 36.11 % + ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 0.87 % Abundance 0.54 % + ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 0.01 % Abundance 0.00 % - The WORLD is made of 2000mm of Air, the transverse size (R) of the world is 200 mm. - The ABSORBER is made of 15mm of Ar7CH4, the transverse size (R) is 100 mm. - Z position of the (middle of the) absorber 360 mm. + The WORLD is made of 4000mm of Air, the transverse size (R) of the world is 200 mm. + The ABSORBER is made of 38.3mm of Xe15CO2, the transverse size (R) is 1 mm. + Z position of the (middle of the) absorber 1360 mm. -zRad = 138.359 mm -radThick = 76.718 mm -fFoilNumber = 100 +zRad = 129.58 mm +radThick = 59.16 mm +fFoilNumber = 220 fRadiatorMat = radiatorMat WorldMaterial = Air zModule = 100 mm -zAbsorber = 200.309 mm -the number of TR radiator plates = 100 -total radiator thickness = 7.747 cm +zAbsorber = 194.401 mm +the number of TR radiator plates = 220 +total radiator thickness = 5.94 cm plate material = Mylar gas material = Air plate plasma energy = 24.5068 eV gas plasma energy = 0.731967 eV -Regular X-ray TR radiator EM process is called -fAlphaPlate = 10000 ; fAlphaGas = 1000 -0 fGamma = 107.6 sumN = -NaN -1 fGamma = 123.4 sumN = -NaN -2 fGamma = 141.5 sumN = -NaN -3 fGamma = 162.3 sumN = -NaN -4 fGamma = 186.2 sumN = -NaN -5 fGamma = 213.7 sumN = -NaN -6 fGamma = 245.2 sumN = -NaN -7 fGamma = 281.3 sumN = -NaN -8 fGamma = 322.9 sumN = -NaN -9 fGamma = 370.5 sumN = -NaN -10 fGamma = 425.3 sumN = -NaN -11 fGamma = 488.2 sumN = -NaN -12 fGamma = 560.3 sumN = -NaN -13 fGamma = 643.2 sumN = -NaN -14 fGamma = 738.3 sumN = -NaN -15 fGamma = 847.6 sumN = -NaN -16 fGamma = 973 sumN = -NaN -17 fGamma = 1117 sumN = -NaN -18 fGamma = 1282 sumN = -NaN -19 fGamma = 1472 sumN = -NaN -20 fGamma = 1690 sumN = -NaN -21 fGamma = 1940 sumN = -NaN -22 fGamma = 2228 sumN = -NaN -23 fGamma = 2558 sumN = -NaN -24 fGamma = 2936 sumN = -NaN -25 fGamma = 3371 sumN = -NaN -26 fGamma = 3871 sumN = -NaN -27 fGamma = 4444 sumN = -NaN -28 fGamma = 5102 sumN = -NaN -29 fGamma = 5858 sumN = -NaN -30 fGamma = 6726 sumN = -NaN -31 fGamma = 7722 sumN = -NaN -32 fGamma = 8866 sumN = -NaN -33 fGamma = 1.018e+04 sumN = -NaN -34 fGamma = 1.169e+04 sumN = -NaN -35 fGamma = 1.342e+04 sumN = -NaN -36 fGamma = 1.541e+04 sumN = -NaN -37 fGamma = 1.769e+04 sumN = -NaN -38 fGamma = 2.031e+04 sumN = -NaN -39 fGamma = 2.332e+04 sumN = -NaN -40 fGamma = 2.677e+04 sumN = -NaN -41 fGamma = 3.074e+04 sumN = -NaN -42 fGamma = 3.529e+04 sumN = -NaN -43 fGamma = 4.052e+04 sumN = -NaN -44 fGamma = 4.652e+04 sumN = -NaN -45 fGamma = 5.342e+04 sumN = -NaN -46 fGamma = 6.133e+04 sumN = -NaN -47 fGamma = 7.042e+04 sumN = -NaN -48 fGamma = 8.085e+04 sumN = -NaN -49 fGamma = 9.283e+04 sumN = -NaN +Regular transparent X-ray TR radiator EM process is called -total time for build X-ray TR energy loss tables = 235.1 s -Em10PhysicsList::SetCuts:CutLength : 1 mm +Lorentz Factor XTR photon number + +107.6 0.0007452 +123.4 0.001275 +141.5 0.001982 +162.3 0.003046 +186.2 0.005026 +213.7 0.007482 +245.2 0.01052 +281.3 0.0164 +322.9 0.02706 +370.5 0.04102 +425.3 0.05536 +488.2 0.06845 +560.3 0.08596 +643.2 0.1142 +738.3 0.162 +847.6 0.2389 +973 0.3585 +1117 0.5073 +1282 0.6604 +1472 0.8048 +1690 1.179 +1940 1.606 +2228 1.988 +2558 2.304 +2936 2.557 +3371 2.755 +3871 2.907 +4444 3.022 +5102 3.11 +5858 3.176 +6726 3.227 +7722 3.265 +8866 3.294 +1.018e+04 3.316 +1.169e+04 3.333 +1.342e+04 3.345 +1.541e+04 3.355 +1.769e+04 3.362 +2.031e+04 3.368 +2.332e+04 3.372 +2.677e+04 3.375 +3.074e+04 3.378 +3.529e+04 3.379 +4.052e+04 3.381 +4.652e+04 3.382 +5.342e+04 3.383 +6.133e+04 3.383 +7.042e+04 3.384 +8.085e+04 3.384 +9.283e+04 3.384 + +total time for build X-ray TR energy loss tables = 0.86 s phot: Total cross sections from Sandia parametrisation. +Em10PhysicsList::SetCuts:CutLength for e-, e+ and gamma is: 1 mm +Radiator gamma cut = 1 mm +Radiator electron cut = 1 mm +Radiator positron cut = 1 mm +Radiator cuts are set +Detector gamma cut = 1 mm +Detector electron cut = 1 mm +Detector positron cut = 1 mm +Detector cuts are set +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV +PAIModel DeltaCutInKineticEnergyNow = 1.50609 keV -compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV - Sampling according Klein-Nishina model - tables are built for gamma - Lambda tables from 100 eV to 100 GeV in 90 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 1 keV to 100 GeV in 80 bins. conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; sampling secondary e+e- according to the Bethe-Heitler model tables are built for gamma Lambda tables from 1.022 MeV to 100 GeV in 100 bins. -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -264,7 +295,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -278,7 +309,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -289,7 +320,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -327,7 +358,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -341,23 +372,30 @@ Index : 0 used in the geometry : Yes recalculation needed : No Index : 1 used in the geometry : Yes recalculation needed : No Material : radiatorMat Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 35.598 keV e+ 35.1625 keV + Energy thresholds : gamma 1.05919 keV e- 83.2385 keV e+ 81.2141 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes recalculation needed : No + Material : Air + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + XTRradiator + +Index : 3 used in the geometry : Yes recalculation needed : No Material : Mylar Range cuts : gamma 1 mm e- 1 mm e+ 1 mm Energy thresholds : gamma 2.97898 keV e- 417.539 keV e+ 402.4 keV Region(s) which use this couple : - DefaultRegionForTheWorld + XTRradiator -Index : 3 used in the geometry : Yes recalculation needed : No - Material : Ar7CH4 +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Xe15CO2 Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Energy thresholds : gamma 990 eV e- 1.50609 keV e+ 1.48766 keV Region(s) which use this couple : - DefaultRegionForTheWorld + XTRdEdxDetector ==================================================================== @@ -365,36 +403,48 @@ Index : 3 used in the geometry : Yes recalculation needed : No --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 9876, 54321 + Current couple of seeds = 805317675, 1677695139 ---------------------------------------- +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 +Tkin of secondary e- <= 0. +G4PAIModel::SampleSecondary::deltaTkin = 0 +Set G4PAIModel::SampleSecondary::deltaTkin = 1e-05 +Tkin of secondary e- <= 0. +G4PAIModel::SampleSecondary::deltaTkin = 0 +Set G4PAIModel::SampleSecondary::deltaTkin = 1e-05 +Tkin of secondary e- <= 0. +G4PAIModel::SampleSecondary::deltaTkin = 0 +Set G4PAIModel::SampleSecondary::deltaTkin = 1e-05 Run terminated. Run Summary Number of events processed : 1000 - User=12.31s Real=12.7s Sys=0.28s + User=188.81s Real=238.02s Sys=49.17s ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=16.0495 +- 0.173853 mm + mean charged track length in absorber=40.6977 +- 0.0916085 mm - mean energy deposit in absorber=0.00501075 +- 0.000160406 MeV + mean energy deposit in absorber=0.0536852 +- 0.000713399 MeV - mean number of steps in absorber (charged) =1.627 +- 0.0669766 - mean number of steps in absorber (neutral) =0.114 +- 0.0105358 + mean number of steps in absorber (charged) =19.767 +- 0.458383 + mean number of steps in absorber (neutral) =3.622 +- 0.0603748 - mean number of charged secondaries = 0.226 +- 0.0205164 + mean number of charged secondaries = 5.471 +- 0.0923859 - mean number of neutral secondaries = 0.002 +- 0.0014128 + mean number of neutral secondaries = 0.054 +- 0.00714731 - mean number of e-s =0.226 and e+s =0 + mean number of e-s =5.471 and e+s =0 -(number) transmission coeff=0.507 reflection coeff=0.008 +(number) transmission coeff=0.563 reflection coeff=0.055 +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1654029929, 1433274685 + Current couple of seeds = 1131156326, 996018461 ---------------------------------------- ========= Table of registered couples ============================== @@ -409,23 +459,30 @@ Index : 0 used in the geometry : Yes recalculation needed : No Index : 1 used in the geometry : Yes recalculation needed : No Material : radiatorMat Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 35.598002 keV e+ 35.162461 keV + Energy thresholds : gamma 1.0591879 keV e- 83.238528 keV e+ 81.214144 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes recalculation needed : No + Material : Air + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + XTRradiator + +Index : 3 used in the geometry : Yes recalculation needed : No Material : Mylar Range cuts : gamma 1 mm e- 1 mm e+ 1 mm Energy thresholds : gamma 2.978977 keV e- 417.53934 keV e+ 402.40033 keV Region(s) which use this couple : - DefaultRegionForTheWorld + XTRradiator -Index : 3 used in the geometry : Yes recalculation needed : No - Material : Ar7CH4 +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Xe15CO2 Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Energy thresholds : gamma 990 eV e- 1.5060904 keV e+ 1.4876634 keV Region(s) which use this couple : - DefaultRegionForTheWorld + XTRdEdxDetector ==================================================================== diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh index a3ca0133b7..9893dc993d 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: Em10CalorHit.hh,v 1.3 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh index 0780e903d8..7f8465a4b6 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: Em10CalorimeterSD.hh,v 1.2 2001/07/11 09:57:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh index fee7df4c2b..b70b5b4c98 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10DetectorConstruction.hh,v 1.5 2002/02/05 11:06:37 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em10DetectorConstruction.hh,v 1.8 2005/11/29 14:42:22 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -38,10 +38,11 @@ class G4Tubs; class G4LogicalVolume; class G4VPhysicalVolume; class G4Material; +class G4Region; class G4UniformMagField; class Em10DetectorMessenger; class Em10CalorimeterSD; -class G4VXrayTRmodel; +class G4Region; class Em10DetectorConstruction : public G4VUserDetectorConstruction @@ -52,8 +53,7 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction ~Em10DetectorConstruction(); public: - void SetParametrisationModel (G4int i){fModelNumber=i;}; - void ParametrisationModel (); + void SetAbsorberMaterial (G4String); void SetAbsorberThickness(G4double); @@ -73,6 +73,12 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction void SetWorldSizeZ(G4double); void SetWorldSizeR(G4double); + // void SetGammaCut(G4double cut){fGammaCut = cut;}; + // void SetElectronCut(G4double cut){fElectronCut = cut;}; + // void SetPositronCut(G4double cut){fPositronCut = cut;}; + + + void SetMagField(G4double); G4VPhysicalVolume* Construct(); @@ -176,16 +182,23 @@ class Em10DetectorConstruction : public G4VUserDetectorConstruction G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber G4UniformMagField* magField; //pointer to the magnetic field - + + // G4double fElectronCut, fGammaCut, fPositronCut; + Em10DetectorMessenger* detectorMessenger; //pointer to the Messenger Em10CalorimeterSD* calorimeterSD; //pointer to the sensitive detector - G4VXrayTRmodel* fXTRModel ; + G4Region* fRegGasDet; + G4Region* fRadRegion; + + + private: void DefineMaterials(); void ComputeCalorParameters(); G4VPhysicalVolume* ConstructCalorimeter(); + }; //////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh index d1187a87de..6cf2f10646 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10DetectorMessenger.hh,v 1.3 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em10DetectorMessenger.hh,v 1.5 2005/11/29 14:42:22 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -78,6 +78,11 @@ class Em10DetectorMessenger: public G4UImessenger G4UIcmdWithADoubleAndUnit* MagFieldCmd; G4UIcmdWithoutParameter* UpdateCmd; + // G4UIcmdWithADoubleAndUnit* ElectronCutCmd; + // G4UIcmdWithADoubleAndUnit* PositronCutCmd; + // G4UIcmdWithADoubleAndUnit* GammaCutCmd; + + }; #endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh index 39f6783254..445a58a320 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10EventAction.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh index 527f6f6310..2477b6fc66 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10EventActionMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh index 1c3d9729ad..292ad1e71a 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10PhysicsList.hh,v 1.5 2004/08/30 15:47:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em10PhysicsList.hh,v 1.8 2005/11/29 14:42:22 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef Em10PhysicsList_h @@ -52,13 +52,16 @@ class G4hIonisation; class Em10StepCut; class Em10DetectorConstruction; +// class ALICEDetectorConstruction; class Em10PhysicsListMessenger; +class G4ProductionCuts; class Em10PhysicsList: public G4VUserPhysicsList { public: Em10PhysicsList( Em10DetectorConstruction*); + // Em10PhysicsList( ALICEDetectorConstruction*); ~Em10PhysicsList(); protected: @@ -88,7 +91,16 @@ class Em10PhysicsList: public G4VUserPhysicsList void SetGammaCut(G4double); void SetElectronCut(G4double); + void SetRegGammaCut(G4double cut){fGammaCut = cut;}; + void SetRegElectronCut(G4double cut){fElectronCut = cut;}; + void SetRegPositronCut(G4double cut){fPositronCut = cut;}; + + void SetRadiatorCuts(); + void SetDetectorCuts(); + void SetMaxStep(G4double); + void SetMinElectronEnergy(G4double E){fMinElectronEnergy=E;}; + void SetMinGammaEnergy(G4double E) {fMinGammaEnergy=E;}; public: @@ -115,10 +127,18 @@ class Em10PhysicsList: public G4VUserPhysicsList Em10StepCut* theeplusStepCut ; G4double cutForGamma; - G4double cutForElectron; + G4double cutForElectron, cutForPositron; Em10DetectorConstruction* pDet; + // ALICEDetectorConstruction* apDet; Em10PhysicsListMessenger* physicsListMessenger; + + G4double fMinElectronEnergy; // minimalEnergy of produced electrons + G4double fMinGammaEnergy; + // minimalEnergy of scattered photons + G4ProductionCuts* fRadiatorCuts; + G4ProductionCuts* fDetectorCuts; + G4double fElectronCut, fGammaCut, fPositronCut; }; #endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh index f8c879715c..3daed5607e 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10PhysicsListMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em10PhysicsListMessenger.hh,v 1.4 2005/11/29 14:42:22 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -59,7 +59,16 @@ class Em10PhysicsListMessenger: public G4UImessenger G4UIcmdWithADoubleAndUnit* cutPCmd; G4UIcmdWithADoubleAndUnit* rCmd; G4UIcmdWithADoubleAndUnit* eCmd; - + G4UIcmdWithADoubleAndUnit* eMinEnergyCmd; + G4UIcmdWithADoubleAndUnit* gMinEnergyCmd; + + G4UIcmdWithADoubleAndUnit* ElectronCutCmd; + G4UIcmdWithADoubleAndUnit* PositronCutCmd; + G4UIcmdWithADoubleAndUnit* GammaCutCmd; + + G4UIcmdWithADoubleAndUnit* RadiatorCutCmd; + G4UIcmdWithADoubleAndUnit* DetectorCutCmd; + }; #endif diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh index 77aa90bd5a..c77c064dc7 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh index 51716a266e..967aa47e83 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh index 01c571b3c9..90487b520c 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10RunAction.hh,v 1.4 2004/12/03 09:12:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh index b6bca7a2d4..1c8ba7d4a9 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: Em10RunMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh b/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh index 5cfd6500a1..9bdfdba707 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: Em10StepCut.hh,v 1.3 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh index 48ecfadb79..af97ecfecf 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingAction.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh index c140b13fc4..9894267a9b 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingMessenger.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh index b04b6b591d..e4900f43dc 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingVerbose.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/parameterisations/trd_clusters/src/G4IrregularXTRdEdx.cc b/examples/extended/electromagnetic/TestEm10/include/StepMax.hh similarity index 53% rename from source/parameterisations/trd_clusters/src/G4IrregularXTRdEdx.cc rename to examples/extended/electromagnetic/TestEm10/include/StepMax.hh index 1e45ad4cda..2df1cb30c9 100644 --- a/source/parameterisations/trd_clusters/src/G4IrregularXTRdEdx.cc +++ b/examples/extended/electromagnetic/TestEm10/include/StepMax.hh @@ -20,74 +20,64 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: StepMax.hh,v 1.1 2005/04/19 15:01:39 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +/////////////////////////////////////////////////////////////////////////////////. + +#ifndef StepMax_h +#define StepMax_h 1 + +#include "globals.hh" +#include "G4VDiscreteProcess.hh" +#include "G4ParticleDefinition.hh" +#include "G4Step.hh" + +class Histo; +// class G4VPhysicalVolume; +// class StepMaxMessenger; + +//////////////////////////////////////////////////////////////////////////////// // -// $Id: G4IrregularXTRdEdx.cc,v 1.1 2004/11/09 09:20:34 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ // - - -#include "G4IrregularXTRdEdx.hh" -#include "Randomize.hh" - -#include "G4Gamma.hh" - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4IrregularXTRdEdx::G4IrregularXTRdEdx(G4Envelope *anEnvelope, - G4double a, G4double b) : - G4VXTRdEdx(anEnvelope,a,b) +class StepMax : public G4VDiscreteProcess { - G4cout<<"Irregular X-ray TR dE/dx model is called"<AddElement(elO,2); Mylar->AddElement(elC,5); Mylar->AddElement(elH,4); + +// Kapton Dupont de Nemur (density: 1.396-1.430, get middle ) + + density = 1.413*g/cm3; + G4Material* Kapton = new G4Material(name="Kapton", density, nel=4); + Kapton->AddElement(elO,5); + Kapton->AddElement(elC,22); + Kapton->AddElement(elN,2); + Kapton->AddElement(elH,10); + // Kapton (polyimide) ??? since = Mylar C5H4O2 - density = 1.39*g/cm3; - G4Material* Kapton = new G4Material(name="Kapton", density, nel=3); - Kapton->AddElement(elO,2); - Kapton->AddElement(elC,5); - Kapton->AddElement(elH,4); + // density = 1.39*g/cm3; + // G4Material* Kapton = new G4Material(name="Kapton", density, nel=3); + // Kapton->AddElement(elO,2); + // Kapton->AddElement(elC,5); + // Kapton->AddElement(elH,4); // Polypropelene @@ -332,7 +342,7 @@ void Em10DetectorConstruction::DefineMaterials() // Carbon dioxide, STP - density = 1.977*mg/cm3; + density = 1.977*273.*mg/cm3/293.; G4Material* CarbonDioxide = new G4Material(name="CO2", density, nel=2); CarbonDioxide->AddElement(elC,1); CarbonDioxide->AddElement(elO,2); @@ -380,6 +390,13 @@ void Em10DetectorConstruction::DefineMaterials() //////////////////////////////////////////////////////////////////////////// // // MWPC mixtures + + // 85% Xe + 15% CO2, STP + + density = 4.9*mg/cm3; + G4Material* Xe15CO2 = new G4Material(name="Xe15CO2" , density, ncomponents=2); + Xe15CO2->AddMaterial( Xe, fractionmass = 0.979); + Xe15CO2->AddMaterial( CarbonDioxide, fractionmass = 0.021); // 80% Xe + 20% CO2, STP @@ -388,6 +405,15 @@ void Em10DetectorConstruction::DefineMaterials() Xe20CO2->AddMaterial( Xe, fractionmass = 0.922 ) ; Xe20CO2->AddMaterial( CarbonDioxide, fractionmass = 0.078 ) ; + // 70% Xe + 27% CO2 + 3% O2, 20 1 atm ATLAS straw tube mixture + + density = 4.358*mg/cm3; + G4Material* Xe27CO23O2 = new G4Material(name="Xe27CO23O2" , density, ncomponents=3); + Xe27CO23O2->AddMaterial( Xe, fractionmass = 0.87671); + Xe27CO23O2->AddMaterial( CarbonDioxide, fractionmass = 0.11412); + Xe27CO23O2->AddMaterial( Oxygen, fractionmass = 0.00917); + + // 80% Kr + 20% CO2, STP density = 3.601*mg/cm3 ; @@ -398,7 +424,7 @@ void Em10DetectorConstruction::DefineMaterials() // Xe + 55% He + 15% CH4 ; NIM A294 (1990) 465-472; STP - density = 1.963*mg/cm3; + density = 1.963*273.*mg/cm3/293.; G4Material* Xe55He15CH4 = new G4Material(name="Xe55He15CH4",density, ncomponents=3); Xe55He15CH4->AddMaterial(Xe, 0.895); @@ -456,8 +482,8 @@ void Em10DetectorConstruction::DefineMaterials() // Preparation of mixed radiator material - foilDensity = 1.39*g/cm3; // Mylar 0.534*g/cm3; //Li 0.91*g/cm3 ;// CH2 - gasDensity = 1.2928*mg/cm3 ; // Air 0.178*mg/cm3 ; // He 1.977*mg/cm3; // CO2 + foilDensity = 1.39*g/cm3; // Mylar // 0.91*g/cm3; // CH2 0.534*g/cm3; //Li + gasDensity = 1.2928*mg/cm3; // Air // 1.977*mg/cm3; // CO2 0.178*mg/cm3; // He totDensity = foilDensity*foilGasRatio + gasDensity*(1.0-foilGasRatio) ; fractionFoil = foilDensity*foilGasRatio/totDensity ; @@ -472,19 +498,19 @@ void Em10DetectorConstruction::DefineMaterials() // default materials of the calorimeter and TR radiator - fRadiatorMat = radiatorMat ; // CH2 Mylar ; - fFoilMat = Mylar ; // Li ; // CH2 ; - fGasMat = Air ; // He ;// CO2 ; + fRadiatorMat = radiatorMat; // CH2; // Mylar ; + fFoilMat = Mylar; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ; + fGasMat = Air; // CO2; // He; // - fWindowMat = Mylar ; + fWindowMat = Mylar ; fElectrodeMat = Al ; - AbsorberMaterial = Ar7CH4; // Xe10CH4; // Xe55He15CH4; + AbsorberMaterial = Xe15CO2; // Xe55He15CH4; // Xe10CH4; // Xe27CO23O2; // Ar7CH4; // - fGapMat = Xe10CH4 ; + fGapMat = Xe15CO2; // Xe55He15CH4; - WorldMaterial = Air ; // CO2 ; + WorldMaterial = Air; // CO2 ; } @@ -494,10 +520,22 @@ void Em10DetectorConstruction::DefineMaterials() G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter() { + + // Cleanup old geometry + + G4GeometryManager::GetInstance()->OpenGeometry(); + G4PhysicalVolumeStore::GetInstance()->Clean(); + G4LogicalVolumeStore::GetInstance()->Clean(); + G4SolidStore::GetInstance()->Clean(); + + + + + // G4int i, j ; - G4int j ; + // G4int j ; // G4double zModule, zRadiator, rModule, rRadiator ; - G4double zModule, zRadiator ; + G4double zModule; // zRadiator ; // complete the Calor parameters definition and Print @@ -506,9 +544,9 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter() // World - if(solidWorld) delete solidWorld ; - if(logicWorld) delete logicWorld ; - if(physiWorld) delete physiWorld ; + // if(solidWorld) delete solidWorld ; + // if(logicWorld) delete logicWorld ; + // if(physiWorld) delete physiWorld ; solidWorld = new G4Box("World", //its name WorldSizeR,WorldSizeR,WorldSizeZ/2.) ;//its size @@ -539,9 +577,9 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter() G4cout<<"fRadiatorMat = "<GetName()<RemoveRootLogicalVolume(logicWindowR); + delete fRadRegion; + } + // G4ProductionCuts* cutsR = 0; + + if( fRadRegion == 0 ) // First time - instantiate a region and a cut objects + { + fRadRegion = new G4Region("XTRradiator"); + // cutsR = new G4ProductionCuts(); + // fRadRegion->SetProductionCuts(cutsR); + } + else // Second time - get a cut object from region + { + // cutsR = fRadRegion->GetProductionCuts(); + } + fRadRegion->AddRootLogicalVolume(logicWindowR); + + // cutsR->SetProductionCut(fGammaCut,"gamma"); + // cutsR->SetProductionCut(fElectronCut,"e-"); + // cutsR->SetProductionCut(fPositronCut,"e+"); + + + G4Box* solidGap = new G4Box("Gap",AbsorberRadius, AbsorberRadius, @@ -627,9 +703,9 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter() G4cout<<"zAbsorber = "< 0.) { - if(solidAbsorber) delete solidAbsorber ; - if(logicAbsorber) delete logicAbsorber ; - if(physiAbsorber) delete physiAbsorber ; + // if(solidAbsorber) delete solidAbsorber ; + // if(logicAbsorber) delete logicAbsorber ; + // if(physiAbsorber) delete physiAbsorber ; solidAbsorber = new G4Box("Absorber",AbsorberRadius, AbsorberRadius, @@ -648,6 +724,31 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter() 0); } + + + if( fRegGasDet != 0 ) // remove obsolete root logical volume + { + // fRegGasDet->RemoveRootLogicalVolume(logicAbsorber); + delete fRegGasDet; + } + // G4ProductionCuts* cuts = 0; + + if( fRegGasDet == 0 ) // First time - instantiate a region and a cut objects + { + fRegGasDet = new G4Region("XTRdEdxDetector"); + // cuts = new G4ProductionCuts(); + // fRegGasDet->SetProductionCuts(cuts); + } + else // Second time - get a cut object from region + { + // cuts = fRegGasDet->GetProductionCuts(); + } + fRegGasDet->AddRootLogicalVolume(logicAbsorber); + + // cuts->SetProductionCut(fGammaCut,"gamma"); + // cuts->SetProductionCut(fElectronCut,"e-"); + // cuts->SetProductionCut(fPositronCut,"e+"); + // Sensitive Detectors: Absorber @@ -660,85 +761,11 @@ G4VPhysicalVolume* Em10DetectorConstruction::ConstructCalorimeter() } if (logicAbsorber) logicAbsorber->SetSensitiveDetector(calorimeterSD); - // Parameterisation - - // ParametrisationModel(); - // always return physics world return physiWorld; } -//////////////////////////////////////////////////////////////////////////// -// -// Construct parametrisation model depending on the current value of fModelNumber - -void Em10DetectorConstruction::ParametrisationModel() -{ - G4cout<<"Em10DetectorConstruction::ParametrisationModel() is called"<SetParameterName("Bz",false,false); MagFieldCmd->SetDefaultUnit("tesla"); - MagFieldCmd->AvailableForStates(G4State_Idle); + MagFieldCmd->AvailableForStates(G4State_Idle); + /* + ElectronCutCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setElectronCut",this); + ElectronCutCmd->SetGuidance("Set electron cut in mm for vertex region"); + ElectronCutCmd->SetParameterName("ElectronCut",false,false); + ElectronCutCmd->SetDefaultUnit("mm"); + ElectronCutCmd->SetRange("ElectronCut>0."); + ElectronCutCmd->AvailableForStates(G4State_Idle); + + + PositronCutCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setPositronCut",this); + PositronCutCmd->SetGuidance("Set positron cut in mm for vertex region"); + PositronCutCmd->SetParameterName("PositronCut",false,false); + PositronCutCmd->SetDefaultUnit("mm"); + PositronCutCmd->SetRange("PositronCut>0."); + PositronCutCmd->AvailableForStates(G4State_Idle); + + + GammaCutCmd = new G4UIcmdWithADoubleAndUnit("/XTRdetector/setGammaCut",this); + GammaCutCmd->SetGuidance("Set gamma cut in mm for vertex region"); + GammaCutCmd->SetParameterName("GammaCut",false,false); + GammaCutCmd->SetDefaultUnit("mm"); + GammaCutCmd->SetRange("GammaCut>0."); + GammaCutCmd->AvailableForStates(G4State_Idle); + */ } @@ -162,9 +186,9 @@ Em10DetectorMessenger::~Em10DetectorMessenger() void Em10DetectorMessenger::SetNewValue(G4UIcommand* command,G4int newValue) { - if( command == ModelCmd ) + if( command == ModelCmd && newValue == 0 ) { - Em10Detector->SetParametrisationModel(newValue); + // Em10Detector->SetParametrisationModel(newValue); Em10Detector->Construct(); } } @@ -176,8 +200,8 @@ void Em10DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if( command == ModelCmd ) { - Em10Detector->SetParametrisationModel(ModelCmd->GetNewIntValue(newValue)); - Em10Detector->ParametrisationModel(); + // Em10Detector->SetParametrisationModel(ModelCmd->GetNewIntValue(newValue)); + // Em10Detector->ParametrisationModel(); } if( command == FoilNumCmd ) { @@ -220,7 +244,20 @@ void Em10DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) if( command == MagFieldCmd ) { Em10Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} - + /* + if( command == ElectronCutCmd ) + { + Em10Detector->SetElectronCut(WorldRCmd->GetNewDoubleValue(newValue)); + } + if( command == PositronCutCmd ) + { + Em10Detector->SetPositronCut(WorldRCmd->GetNewDoubleValue(newValue)); + } + if( command == GammaCutCmd ) + { + Em10Detector->SetGammaCut(WorldRCmd->GetNewDoubleValue(newValue)); + } + */ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc index f181900ca8..e190124989 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10EventAction.cc,v 1.4 2003/06/16 16:47:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em10EventAction.cc,v 1.5 2005/12/06 11:31:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -161,12 +161,12 @@ void Em10EventAction::EndOfEventAction(const G4Event* evt) //save rndm status if (runaction->GetRndmFreq() == 2) { - HepRandom::saveEngineStatus("endOfEvent.rndm"); + CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); G4int evtNb = evt->GetEventID(); if (evtNb%printModulo == 0) { G4cout << "\n---> End of Event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } } } diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc index dc2ba90b30..6a8bf95d66 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10EventActionMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc index 85f54a4552..dddecd3918 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: Em10PhysicsList.cc,v 1.9 2004/08/30 15:47:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em10PhysicsList.cc,v 1.14 2005/11/29 14:42:22 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Timer.hh" #include "Em10PhysicsList.hh" #include "Em10DetectorConstruction.hh" +// #include "ALICEDetectorConstruction.hh" #include "Em10PhysicsListMessenger.hh" #include "G4ParticleDefinition.hh" @@ -44,6 +45,14 @@ #include "G4FastSimulationManagerProcess.hh" +#include "G4Region.hh" +#include "G4RegionStore.hh" + + +#include "G4ProductionCuts.hh" + + + ///////////////////////////////////////////////////////////// // @@ -59,19 +68,56 @@ Em10PhysicsList::Em10PhysicsList(Em10DetectorConstruction* p) theeplusMultipleScattering(0), theeplusIonisation(0), theeplusBremsstrahlung(0), theeplusAnnihilation(0), - theeminusStepCut(0), theeplusStepCut(0) + theeminusStepCut(0), theeplusStepCut(0), + fMinElectronEnergy(1.0*keV),fMinGammaEnergy(1.0*keV), + fRadiatorCuts(0),fDetectorCuts(0) { pDet = p; - defaultCutValue = 1.000*mm ; + // world cuts - cutForGamma = defaultCutValue ; - cutForElectron = defaultCutValue ; + defaultCutValue = 1.000*mm; + cutForGamma = defaultCutValue; + cutForElectron = defaultCutValue; + cutForPositron = defaultCutValue; + + // Region cuts + + fGammaCut = defaultCutValue; + fElectronCut = defaultCutValue; + fPositronCut = defaultCutValue; SetVerboseLevel(1); physicsListMessenger = new Em10PhysicsListMessenger(this); } +///////////////////////////////////////////////////////////// +// +// +/* +Em10PhysicsList::Em10PhysicsList(ALICEDetectorConstruction* p) + : G4VUserPhysicsList(), + MaxChargedStep(DBL_MAX), + thePhotoElectricEffect(0), theComptonScattering(0), + theGammaConversion(0), + theeminusMultipleScattering(0), theeminusIonisation(0), + theeminusBremsstrahlung(0), + theeplusMultipleScattering(0), theeplusIonisation(0), + theeplusBremsstrahlung(0), + theeplusAnnihilation(0), + theeminusStepCut(0), theeplusStepCut(0), + fMinElectronEnergy(1.0*keV),fMinGammaEnergy(1.0*keV) +{ + apDet = p; + + defaultCutValue = 1.000*mm ; + cutForGamma = defaultCutValue ; + cutForElectron = defaultCutValue ; + + SetVerboseLevel(1); + physicsListMessenger = new Em10PhysicsListMessenger(this); +} +*/ ///////////////////////////////////////////////////////////////////////// // // @@ -151,7 +197,8 @@ void Em10PhysicsList::ConstructBarions() void Em10PhysicsList::ConstructProcess() { AddTransportation(); - // AddParameterisation(); + +// AddParameterisation(); ConstructEM(); ConstructGeneral(); @@ -162,14 +209,19 @@ void Em10PhysicsList::ConstructProcess() // #include "G4ComptonScattering.hh" +#include "XTRComptonScattering.hh" #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" +#include "XTRPhotoElectricEffect.hh" #include "G4MultipleScattering.hh" #include "G4eIonisation.hh" #include "G4eBremsstrahlung.hh" #include "G4eplusAnnihilation.hh" +#include "G4PAIModel.hh" +#include "G4PAIPhotonModel.hh" +// #include "G4PAIwithPhotons.hh" #include "G4MuIonisation.hh" #include "G4MuBremsstrahlung.hh" @@ -177,16 +229,113 @@ void Em10PhysicsList::ConstructProcess() #include "G4hIonisation.hh" -#include "G4ForwardXrayTR.hh" +// #include "G4ForwardXrayTR.hh" #include "G4RegularXTRadiator.hh" +#include "G4TransparentRegXTRadiator.hh" +#include "G4GammaXTRadiator.hh" +#include "G4StrawTubeXTRadiator.hh" + +#include "G4XTRGammaRadModel.hh" +#include "G4XTRRegularRadModel.hh" +#include "G4XTRTransparentRegRadModel.hh" #include "Em10StepCut.hh" -#include "G4PAIModel.hh" - void Em10PhysicsList::ConstructEM() { + + // G4cout<<"fMinElectronEnergy = "<GetRegion("XTRdEdxDetector"); + + + /* + + G4GammaXTRadiator* processXTR = + new G4GammaXTRadiator(pDet->GetLogicalRadiator(), + 1000., + 100., + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "GammaXTRadiator"); + + + + G4XTRGammaRadModel* processXTR = + new G4XTRGammaRadModel(pDet->GetLogicalRadiator(), + 1000., + 100., + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "GammaXTRadiator"); + + + G4StrawTubeXTRadiator* processXTR = + new G4StrawTubeXTRadiator(pDet->GetLogicalRadiator(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + 0.53, // pDet->GetFoilThick(), + 3.14159, // pDet->GetGasThick(), + pDet->GetAbsorberMaterial(), + true, + "strawXTRadiator"); + + G4RegularXTRadiator* processXTR = + new G4RegularXTRadiator(pDet->GetLogicalRadiator(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "RegularXTRadiator"); + + + + G4TransparentRegXTRadiator* processXTR = + new G4TransparentRegXTRadiator(pDet->GetLogicalRadiator(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "RegularXTRadiator"); + + + + + G4XTRRegularRadModel* processXTR = + new G4XTRRegularRadModel(pDet->GetLogicalRadiator(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "RegularXTRadiator"); + + */ + + G4XTRTransparentRegRadModel* processXTR = + new G4XTRTransparentRegRadModel(pDet->GetLogicalRadiator(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "RegularXTRadiator"); + + + + + theParticleIterator->reset(); while( (*theParticleIterator)() ) @@ -199,12 +348,22 @@ void Em10PhysicsList::ConstructEM() { // Construct processes for gamma - thePhotoElectricEffect = new G4PhotoElectricEffect(); - theComptonScattering = new G4ComptonScattering(); - theGammaConversion = new G4GammaConversion(); + // thePhotoElectricEffect = new G4PhotoElectricEffect(); + // theComptonScattering = new G4ComptonScattering(); + // pmanager->AddDiscreteProcess(thePhotoElectricEffect); + // pmanager->AddDiscreteProcess(theComptonScattering); - pmanager->AddDiscreteProcess(thePhotoElectricEffect); - pmanager->AddDiscreteProcess(theComptonScattering); + XTRPhotoElectricEffect* xtrPhotoElectricEffect = new XTRPhotoElectricEffect(); + // xtrPhotoElectricEffect->SetMinElectronEnergy(fMinElectronEnergy); + + XTRComptonScattering* xtrComptonScattering = new XTRComptonScattering(); + xtrComptonScattering->SetMinElectronEnergy(fMinElectronEnergy); + xtrComptonScattering->SetMinGammaEnergy(fMinGammaEnergy); + + theGammaConversion = new G4GammaConversion(); + + pmanager->AddDiscreteProcess(xtrPhotoElectricEffect); + pmanager->AddDiscreteProcess(xtrComptonScattering); pmanager->AddDiscreteProcess(theGammaConversion); } @@ -213,32 +372,47 @@ void Em10PhysicsList::ConstructEM() // Construct processes for electron theeminusMultipleScattering = new G4MultipleScattering(); - theeminusIonisation = new G4eIonisation(); theeminusBremsstrahlung = new G4eBremsstrahlung(); - // fPAIonisation = new G4PAIonisation("Xenon") ; - // fForwardXrayTR = new G4ForwardXrayTR("Air","Polypropelene","XrayTR") ; - theeminusStepCut = new Em10StepCut(); + + theeminusIonisation = new G4eIonisation(); + G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); + theeminusIonisation->AddEmModel(0,pai,pai,gas); - pmanager->AddProcess(theeminusMultipleScattering,-1,1,1); pmanager->AddProcess(theeminusIonisation,-1,2,2); + + pmanager->AddProcess(theeminusMultipleScattering,-1,1,1); pmanager->AddProcess(theeminusBremsstrahlung,-1,-1,3); - - //G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); - //eion->AddEmModel(0,pai,pai,gas); - + /* pmanager->AddContinuousProcess( new G4RegularXTRadiator(pDet->GetLogicalRadiator(), - pDet->GetFoilMaterial(), - pDet->GetGasMaterial(), - pDet->GetFoilThick(), - pDet->GetGasThick(), - pDet->GetFoilNumber(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), "RegularXTRadiator")); // ,-1,1,-1); + + pmanager->AddContinuousProcess( + new G4GammaXTRadiator(pDet->GetLogicalRadiator(), + 2., + 10., + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "GammaXTRadiator")); + // ,-1,1,-1); + */ + // pmanager->AddContinuousProcess(processXTR); + + // pmanager->AddContinuousProcess(strawXTRprocess); + // pmanager->AddProcess(new G4ForwardXrayTR("Air","Mylar","fXTR"),-1,-1,1); - // pmanager->AddProcess(fForwardXrayTR,-1,-1,2); + pmanager->AddDiscreteProcess(processXTR); pmanager->AddProcess(theeminusStepCut,-1,-1,4); theeminusStepCut->SetMaxStep(MaxChargedStep) ; @@ -253,16 +427,17 @@ void Em10PhysicsList::ConstructEM() theeplusBremsstrahlung = new G4eBremsstrahlung(); theeplusAnnihilation = new G4eplusAnnihilation(); - // fForwardXrayTR = new G4ForwardXrayTR("Air","Polypropelene","XrayTR") ; theeplusStepCut = new Em10StepCut(); + G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); + theeplusIonisation->AddEmModel(0,pai,pai,gas); + pmanager->AddProcess(theeplusMultipleScattering,-1,1,1); pmanager->AddProcess(theeplusIonisation,-1,2,2); pmanager->AddProcess(theeplusBremsstrahlung,-1,-1,3); pmanager->AddProcess(theeplusAnnihilation,0,-1,4); - // pmanager->AddProcess(fForwardXrayTR,-1,-1,2); pmanager->AddProcess(theeplusStepCut,-1,-1,5); theeplusStepCut->SetMaxStep(MaxChargedStep) ; @@ -276,11 +451,37 @@ void Em10PhysicsList::ConstructEM() Em10StepCut* muonStepCut = new Em10StepCut(); G4MuIonisation* themuIonisation = new G4MuIonisation() ; + + G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); + themuIonisation->AddEmModel(0,pai,pai,gas); + pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); pmanager->AddProcess(themuIonisation,-1,2,2); pmanager->AddProcess(new G4MuBremsstrahlung(),-1,-1,3); pmanager->AddProcess(new G4MuPairProduction(),-1,-1,4); - + /* + pmanager->AddContinuousProcess( + new G4RegularXTRadiator(pDet->GetLogicalRadiator(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "RegularXTRadiator")); + // ,-1,1,-1); + + pmanager->AddContinuousProcess( + new G4GammaXTRadiator(pDet->GetLogicalRadiator(), + 2., + 10., + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "GammaXTRadiator")); + // ,-1,1,-1); + */ pmanager->AddProcess( muonStepCut,-1,-1,5); muonStepCut->SetMaxStep(MaxChargedStep) ; @@ -296,14 +497,31 @@ void Em10PhysicsList::ConstructEM() { Em10StepCut* thehadronStepCut = new Em10StepCut(); - G4hIonisation* thehIonisation = new G4hIonisation() ; + G4hIonisation* thehIonisation = new G4hIonisation(); G4MultipleScattering* thehMultipleScattering = new G4MultipleScattering() ; + G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); + thehIonisation->AddEmModel(0,pai,pai,gas); + pmanager->AddProcess(thehMultipleScattering,-1,1,1); pmanager->AddProcess(thehIonisation,-1,2,2); - + /* + pmanager->AddContinuousProcess( + new G4RegularXTRadiator(pDet->GetLogicalRadiator(), + pDet->GetFoilMaterial(), + pDet->GetGasMaterial(), + pDet->GetFoilThick(), + pDet->GetGasThick(), + pDet->GetFoilNumber(), + "RegularXTRadiator")); + // ,-1,1,-1); + */ + // pmanager->AddContinuousProcess(gammaXTRprocess); + // pmanager->AddContinuousProcess(regXTRprocess); + // ,-1,1,-1); + pmanager->AddProcess( thehadronStepCut,-1,-1,3); thehadronStepCut->SetMaxStep(MaxChargedStep) ; @@ -364,20 +582,32 @@ void Em10PhysicsList::AddParameterisation() void Em10PhysicsList::SetCuts() { - if (verboseLevel >0) - { - G4cout << "Em10PhysicsList::SetCuts:"; - G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; - } // set cut values for gamma at first and for e- second and next for e+, // because some processes for e+/e- need cut values for gamma - SetCutValue(cutForGamma,"gamma"); + SetCutValue(cutForGamma, "gamma", "DefaultRegionForTheWorld"); + SetCutValue(cutForElectron, "e-", "DefaultRegionForTheWorld"); + SetCutValue(cutForPositron, "e+", "DefaultRegionForTheWorld"); - SetCutValue(cutForElectron,"e-"); - SetCutValue(cutForElectron,"e+"); + if (verboseLevel > 0) + { + G4cout << "Em10PhysicsList::SetCuts:"; + G4cout << "CutLength for e-, e+ and gamma is: " + << G4BestUnit(defaultCutValue,"Length") << G4endl; + } + + if( !fRadiatorCuts ) SetRadiatorCuts(); - if (verboseLevel>1) DumpCutValuesTable(); + G4Region* region = (G4RegionStore::GetInstance())->GetRegion("XTRradiator"); + region->SetProductionCuts(fRadiatorCuts); + G4cout << "Radiator cuts are set" << G4endl; + +if( !fDetectorCuts ) SetDetectorCuts(); + region = (G4RegionStore::GetInstance())->GetRegion("XTRdEdxDetector"); + region->SetProductionCuts(fDetectorCuts); + G4cout << "Detector cuts are set" << G4endl; + + if (verboseLevel > 1) DumpCutValuesTable(); } /////////////////////////////////////////////////////////////////////////// @@ -403,3 +633,33 @@ void Em10PhysicsList::SetMaxStep(G4double step) G4cout << G4endl; } +///////////////////////////////////////////////////// + +void Em10PhysicsList::SetRadiatorCuts() +{ + if( !fRadiatorCuts ) fRadiatorCuts = new G4ProductionCuts(); + + fRadiatorCuts->SetProductionCut(fGammaCut, idxG4GammaCut); + fRadiatorCuts->SetProductionCut(fElectronCut, idxG4ElectronCut); + fRadiatorCuts->SetProductionCut(fPositronCut, idxG4PositronCut); + + G4cout<<"Radiator gamma cut = "<SetProductionCut(fGammaCut, idxG4GammaCut); + fDetectorCuts->SetProductionCut(fElectronCut, idxG4ElectronCut); + fDetectorCuts->SetProductionCut(fPositronCut, idxG4PositronCut); + + G4cout<<"Detector gamma cut = "<SetDefaultUnit("mm"); cutECmd->AvailableForStates(G4State_Idle); + eMinEnergyCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/eMinEnergy",this); + eMinEnergyCmd->SetGuidance("Set cut values by energy in Photo-Comp for e-"); + eMinEnergyCmd->SetParameterName("range",true); + eMinEnergyCmd->SetDefaultValue(1.); + eMinEnergyCmd->SetDefaultUnit("keV"); + eMinEnergyCmd->AvailableForStates(G4State_Idle); + + gMinEnergyCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/gMinEnergy",this); + gMinEnergyCmd->SetGuidance("Set cut values by energy in Compton for gamma"); + gMinEnergyCmd->SetParameterName("range",true); + gMinEnergyCmd->SetDefaultValue(1.); + gMinEnergyCmd->SetDefaultUnit("keV"); + gMinEnergyCmd->AvailableForStates(G4State_Idle); + setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); setMaxStepCmd->SetParameterName("mxStep",true); setMaxStepCmd->SetDefaultUnit("mm"); + + ElectronCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setElectronCut",this); + ElectronCutCmd->SetGuidance("Set electron cut in mm for vertex region"); + ElectronCutCmd->SetParameterName("ElectronCut",false,false); + ElectronCutCmd->SetDefaultUnit("mm"); + ElectronCutCmd->SetRange("ElectronCut>0."); + ElectronCutCmd->AvailableForStates(G4State_Idle); + + + PositronCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setPositronCut",this); + PositronCutCmd->SetGuidance("Set positron cut in mm for vertex region"); + PositronCutCmd->SetParameterName("PositronCut",false,false); + PositronCutCmd->SetDefaultUnit("mm"); + PositronCutCmd->SetRange("PositronCut>0."); + PositronCutCmd->AvailableForStates(G4State_Idle); + + + GammaCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setGammaCut",this); + GammaCutCmd->SetGuidance("Set gamma cut in mm for vertex region"); + GammaCutCmd->SetParameterName("GammaCut",false,false); + GammaCutCmd->SetDefaultUnit("mm"); + GammaCutCmd->SetRange("GammaCut>0."); + GammaCutCmd->AvailableForStates(G4State_Idle); + + RadiatorCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setRadiatorCuts",this); + RadiatorCutCmd->SetGuidance("Set radiator cut in mm for vertex region"); + RadiatorCutCmd->SetParameterName("RadiatorCuts",false,false); + RadiatorCutCmd->SetDefaultUnit("mm"); + RadiatorCutCmd->SetRange("RadiatorCuts > 0."); + RadiatorCutCmd->AvailableForStates(G4State_Idle); + + DetectorCutCmd = new G4UIcmdWithADoubleAndUnit("/emphyslist/setDetectorCuts",this); + DetectorCutCmd->SetGuidance("Set radiator cut in mm for vertex region"); + DetectorCutCmd->SetParameterName("DetectorCuts",false,false); + DetectorCutCmd->SetDefaultUnit("mm"); + DetectorCutCmd->SetRange("DetectorCuts > 0."); + DetectorCutCmd->AvailableForStates(G4State_Idle); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... Em10PhysicsListMessenger::~Em10PhysicsListMessenger() { - - delete setMaxStepCmd; - delete cutGCmd; delete cutECmd; + delete eMinEnergyCmd; + delete gMinEnergyCmd; + + delete setMaxStepCmd; + + delete ElectronCutCmd; + delete PositronCutCmd; + delete GammaCutCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -84,6 +141,31 @@ void Em10PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValu { Em10List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} if(command == setMaxStepCmd) { Em10List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));} + if(command == eMinEnergyCmd) + { Em10List->SetMinElectronEnergy(eMinEnergyCmd->GetNewDoubleValue(newValue));} + if(command == gMinEnergyCmd) + { Em10List->SetMinGammaEnergy(gMinEnergyCmd->GetNewDoubleValue(newValue));} + + if( command == ElectronCutCmd ) + { + Em10List->SetRegElectronCut(ElectronCutCmd->GetNewDoubleValue(newValue)); + } + if( command == PositronCutCmd ) + { + Em10List->SetRegPositronCut(PositronCutCmd->GetNewDoubleValue(newValue)); + } + if( command == GammaCutCmd ) + { + Em10List->SetRegGammaCut(GammaCutCmd->GetNewDoubleValue(newValue)); + } + if( command == RadiatorCutCmd ) + { + Em10List->SetRadiatorCuts(); + } + if( command == DetectorCutCmd ) + { + Em10List->SetDetectorCuts(); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc index de57b258ef..816c7008e0 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorAction.cc,v 1.5 2004/12/03 09:12:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc index 93224217de..826ab87cc9 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10PrimaryGeneratorMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc index 585b31a0cf..054650faf2 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10RunAction.cc,v 1.6 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em10RunAction.cc,v 1.8 2005/12/06 11:27:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -141,8 +141,8 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status if (saveRndm > 0) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("beginOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); } G4UImanager* UI = G4UImanager::GetUIpointer(); @@ -733,8 +733,8 @@ void Em10RunAction::EndOfRunAction(const G4Run*) if (saveRndm == 1) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("endOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); } } @@ -816,13 +816,17 @@ void Em10RunAction::FillNbOfSteps(G4double)// ns) ////////////////////////////////////////////////////////////////////////////// -void Em10RunAction::FillEn(G4double) // En) +void Em10RunAction::FillEn(G4double En) { - /* + + // #ifndef G4NOHIST + + + G4double bin ; G4int ibin; - if(histo2) + // if(histo2) { entryEn += 1. ; @@ -834,9 +838,13 @@ void Em10RunAction::FillEn(G4double) // En) ibin= (G4int)bin ; distEn[ibin] += 1. ; } - histo2->accumulate(En/keV) ; // was /MeV + // histo2->accumulate(En/keV) ; // was /MeV } - */ + + // #endif + + + } //////////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc index 9924ef33aa..d96f6be44a 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10RunMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em10RunMessenger.cc,v 1.4 2005/12/06 11:31:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -380,8 +380,8 @@ void Em10RunMessenger::SetNewValue(G4UIcommand* command,G4String newValues) if (command == RndmReadCmd) { G4cout << "\n---> rndm status restored from file: " << newValues << G4endl; - HepRandom::restoreEngineStatus(newValues); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::restoreEngineStatus(newValues); + CLHEP::HepRandom::showEngineStatus(); } } diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc b/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc index 7f8de8ba59..ffa47e1b1a 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: Em10StepCut.cc,v 1.2 2001/07/11 09:57:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "Em10StepCut.hh" diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc index 8ed51a4d94..8d3b61e994 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingAction.cc,v 1.5 2004/12/03 09:12:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc index 2a5640489e..8277693e38 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingMessenger.cc,v 1.3 2004/12/03 09:33:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc index af7afcb945..e346287c32 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em10SteppingVerbose.cc,v 1.5 2003/06/16 16:47:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/electromagnetic/TestEm10/src/StepMax.cc b/examples/extended/electromagnetic/TestEm10/src/StepMax.cc new file mode 100644 index 0000000000..8748c35f86 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/StepMax.cc @@ -0,0 +1,113 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: StepMax.cc,v 1.1 2005/04/19 15:01:39 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +/////////////////////////////////////////////////////////////////////////// + +#include "StepMax.hh" +// #include "StepMaxMessenger.hh" +// #include "Histo.hh" +#include "G4VPhysicalVolume.hh" + +/////////////////////////////////////////////////////////////////////////// + +StepMax::StepMax(const G4String& processName) + : G4VDiscreteProcess(processName), + MaxChargedStep(DBL_MAX), + thDensity(0.1*gram/cm3), + first(true) +{ + // pMess = new StepMaxMessenger(this); + // histo = Histo::GetPointer(); +} + +////////////////////////////////////////////////////////////////////////////// + +StepMax::~StepMax() +{ + // delete pMess; +} + +//////////////////////////////////////////////////////////////////////////// + +G4bool StepMax::IsApplicable(const G4ParticleDefinition& particle) +{ + return ( particle.GetPDGCharge() != 0. ); +} + +///////////////////////////////////////////////////////////////////////////// + +void StepMax::SetMaxStep(G4double step) {MaxChargedStep = step;} + +///////////////////////////////////////////////////////////////////////////// + +G4double StepMax::PostStepGetPhysicalInteractionLength( + const G4Track& aTrack, + G4double, + G4ForceCondition* condition ) +{ + // condition is set to "Not Forced" + *condition = NotForced; + ProposedStep = DBL_MAX; + + if(first) + { + // checkVolume = histo->CheckVolume(); + // gasVolume = histo->GasVolume(); + first = false; + } + + G4VPhysicalVolume* pv = aTrack.GetVolume(); + + if( pv == gasVolume || pv == checkVolume ) ProposedStep = 0.0; + + else if( (aTrack.GetMaterial())->GetDensity() > thDensity && + aTrack.GetPosition().z() < 0.0 ) ProposedStep = MaxChargedStep; + + return ProposedStep; +} + +//////////////////////////////////////////////////////////////////////////////////// + +G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) +{ + aParticleChange.Initialize(aTrack); + + if ( ProposedStep == 0.0 ) + { + aParticleChange.ProposeTrackStatus(fStopAndKill); + /* + if(1 < (Histo::GetPointer())->GetVerbose()) + { + G4cout << "StepMax: " << aTrack.GetDefinition()->GetParticleName() + << " with energy = " << aTrack.GetKineticEnergy()/MeV + << " MeV is killed in Check volume at " << aTrack.GetPosition() + << G4endl; + } + */ + } + return &aParticleChange; +} + +//////////////////////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm10/src/XTRComptonScattering.cc b/examples/extended/electromagnetic/TestEm10/src/XTRComptonScattering.cc new file mode 100644 index 0000000000..c699a2e457 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/XTRComptonScattering.cc @@ -0,0 +1,516 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: XTRComptonScattering.cc,v 1.1 2005/02/01 09:20:54 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//------------ XTRComptonScattering physics process ----------------------------- +// by Michel Maire, April 1996 +// +// 28-05-96, DoIt() small change in ElecDirection, by M.Maire +// 10-06-96, simplification in ComputeMicroscopicCrossSection(), by M.Maire +// 21-06-96, SetCuts implementation, M.Maire +// 13-09-96, small changes in DoIt for better efficiency. Thanks to P.Urban +// 06-01-97, crossection table + meanfreepath table, M.Maire +// 05-03-97, new Physics scheme, M.Maire +// 28-03-97, protection in BuildPhysicsTable, M.Maire +// 07-04-98, remove 'tracking cut' of the scattered gamma, MMa +// 04-06-98, in DoIt, secondary production condition: +// range>std::min(threshold,safety) +// 13-08-98, new methods SetBining() PrintInfo() +// 15-12-98, cross section=0 below 10 keV +// 28-05-01, V.Ivanchenko minor changes to provide ANSI -wall compilation +// 13-07-01, DoIt: suppression of production cut for the electron (mma) +// 03-08-01, new methods Store/Retrieve PhysicsTable (mma) +// 06-08-01, BuildThePhysicsTable() called from constructor (mma) +// 17-09-01, migration of Materials to pure STL (mma) +// 20-09-01, DoIt: fMinimalEnergy = 1*eV (mma) +// 01-10-01, come back to BuildPhysicsTable(const G4ParticleDefinition&) +// 17-04-02, LowestEnergyLimit = 1*keV +// 26-05-04, cross section parametrization improved for low energy : +// Egamma <~ 15 keV (Laszlo) +// 08-11-04, Remove Store/Retrieve tables (V.Ivantchenko) +// 01-02-05, electron cuts in PostStepDoItfrom G4MaterialCutsCouple +// (V. Grichine) +// ----------------------------------------------------------------------------- + +#include "XTRComptonScattering.hh" +#include "G4UnitsTable.hh" +#include "G4PhysicsTableHelper.hh" +#include "G4ProductionCutsTable.hh" +#include "G4MaterialCutsCouple.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +using namespace std; + +XTRComptonScattering::XTRComptonScattering(const G4String& processName, + G4ProcessType type):G4VDiscreteProcess (processName, type), + theCrossSectionTable(NULL), + theMeanFreePathTable(NULL), + LowestEnergyLimit ( 1*keV), + HighestEnergyLimit(100*GeV), + NumbBinTable(80), + fMinElectronEnergy(1*eV),fMinGammaEnergy(1*eV) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// destructor + +XTRComptonScattering::~XTRComptonScattering() +{ + if (theCrossSectionTable) { + theCrossSectionTable->clearAndDestroy(); + delete theCrossSectionTable; + } + + if (theMeanFreePathTable) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool XTRComptonScattering::IsApplicable( const G4ParticleDefinition& particle) +{ + return ( &particle == G4Gamma::Gamma() ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void XTRComptonScattering::SetPhysicsTableBining( + G4double lowE, G4double highE, G4int nBins) +{ + LowestEnergyLimit = lowE; HighestEnergyLimit = highE; NumbBinTable = nBins; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void XTRComptonScattering::BuildPhysicsTable(const G4ParticleDefinition&) +// Build cross section and mean free path tables +{ + G4double LowEdgeEnergy, Value; + G4PhysicsLogVector* ptrVector; + +// Build cross section per atom tables for the Compton Scattering process + + if (theCrossSectionTable) { + theCrossSectionTable->clearAndDestroy(); delete theCrossSectionTable;} + + theCrossSectionTable = new G4PhysicsTable(G4Element::GetNumberOfElements()); + const G4ElementTable* theElementTable = G4Element::GetElementTable(); + G4double AtomicNumber; + size_t J; + + for ( J=0 ; J < G4Element::GetNumberOfElements(); J++ ) + { + //create physics vector then fill it .... + ptrVector = new G4PhysicsLogVector(LowestEnergyLimit,HighestEnergyLimit, + NumbBinTable ); + AtomicNumber = (*theElementTable)[J]->GetZ(); + + for ( G4int i = 0 ; i < NumbBinTable ; i++ ) + { + LowEdgeEnergy = ptrVector->GetLowEdgeEnergy(i); + Value = ComputeCrossSectionPerAtom(LowEdgeEnergy, AtomicNumber); + ptrVector->PutValue(i,Value); + } + + theCrossSectionTable->insertAt( J , ptrVector ) ; + + } + +// Build mean free path table for the Compton Scattering process + + if (theMeanFreePathTable) { + theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} + + theMeanFreePathTable= new G4PhysicsTable(G4Material::GetNumberOfMaterials()); + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + G4Material* material; + + for ( J=0 ; J < G4Material::GetNumberOfMaterials(); J++ ) + { + //create physics vector then fill it .... + ptrVector = new G4PhysicsLogVector(LowestEnergyLimit,HighestEnergyLimit, + NumbBinTable ) ; + material = (*theMaterialTable)[J]; + + for ( G4int i = 0 ; i < NumbBinTable ; i++ ) + { + LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; + Value = ComputeMeanFreePath( LowEdgeEnergy, material); + ptrVector->PutValue( i , Value ) ; + } + + theMeanFreePathTable->insertAt( J , ptrVector ) ; + } + + PrintInfoDefinition(); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double XTRComptonScattering::ComputeCrossSectionPerAtom + (G4double GammaEnergy, G4double Z) + +// Calculates the cross section per atom in GEANT4 internal units. +// A parametrized formula from L. Urban is used to estimate +// the total cross section. +// It gives a good description of the data from 10 keV to 100/Z GeV. +// lower limit 1 keV now with a correction for low energy + +{ + G4double CrossSection = 0.0 ; + if ( Z < 1. ) return CrossSection; + if ( GammaEnergy < 1.*keV ) return CrossSection; + if ( GammaEnergy > (100.*GeV/Z) ) return CrossSection; + + static const G4double a = 20.0 , b = 230.0 , c = 440.0; + + static const G4double + d1= 2.7965e-1*barn, d2=-1.8300e-1*barn, d3= 6.7527 *barn, d4=-1.9798e+1*barn, + e1= 1.9756e-5*barn, e2=-1.0205e-2*barn, e3=-7.3913e-2*barn, e4= 2.7079e-2*barn, + f1=-3.9178e-7*barn, f2= 6.8241e-5*barn, f3= 6.0480e-5*barn, f4= 3.0274e-4*barn; + + G4double p1Z = Z*(d1 + e1*Z + f1*Z*Z), p2Z = Z*(d2 + e2*Z + f2*Z*Z), + p3Z = Z*(d3 + e3*Z + f3*Z*Z), p4Z = Z*(d4 + e4*Z + f4*Z*Z); + + G4double T0 = 15*keV; if (Z == 1.) T0 = 40*keV; + + G4double X = max(GammaEnergy, T0) / electron_mass_c2; + CrossSection = p1Z*log(1.+2*X)/X + + (p2Z + p3Z*X + p4Z*X*X)/(1. + a*X + b*X*X + c*X*X*X); + + // modification for low energy. (special case for Hydrogen) + if (GammaEnergy < T0) { + G4double dT0 = 1.*keV; + X = (T0+dT0) / electron_mass_c2 ; + G4double sigma = p1Z*log(1.+2*X)/X + + (p2Z + p3Z*X + p4Z*X*X)/(1. + a*X + b*X*X + c*X*X*X); + G4double c1 = -T0*(sigma-CrossSection)/(CrossSection*dT0); + G4double c2 = 0.150; if (Z > 1.) c2 = 0.375-0.0556*log(Z); + G4double y = log(GammaEnergy/T0); + CrossSection *= exp(-y*(c1+c2*y)); + } + + return CrossSection; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double XTRComptonScattering::ComputeMeanFreePath(G4double GammaEnergy, + G4Material* aMaterial) + +// returns the gamma mean free path in GEANT4 internal units + +{ + const G4ElementVector* theElementVector = aMaterial->GetElementVector() ; + const G4double* NbOfAtomsPerVolume = aMaterial->GetVecNbOfAtomsPerVolume(); + + G4double SIGMA = 0.; + + for ( size_t elm=0 ; elm < aMaterial->GetNumberOfElements() ; elm++ ) + { + SIGMA += NbOfAtomsPerVolume[elm] * + ComputeCrossSectionPerAtom(GammaEnergy, + (*theElementVector)[elm]->GetZ()); + } + return SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; +} + + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double XTRComptonScattering::GetCrossSectionPerAtom( + G4DynamicParticle* aDynamicGamma, + G4Element* anElement) + +// gives the microscopic total cross section in GEANT4 internal units + +{ + G4double crossSection; + G4double GammaEnergy = aDynamicGamma->GetKineticEnergy(); + G4bool isOutRange ; + if (GammaEnergy < LowestEnergyLimit || GammaEnergy > HighestEnergyLimit) + crossSection = 0.; + else + crossSection = (*theCrossSectionTable)(anElement->GetIndex())-> + GetValue(GammaEnergy, isOutRange); + + return crossSection; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +G4double XTRComptonScattering::GetMeanFreePath(const G4Track& aTrack, + G4double, + G4ForceCondition*) + +// returns the gamma mean free path in GEANT4 internal units + +{ + const G4DynamicParticle* aDynamicGamma = aTrack.GetDynamicParticle(); + G4double GammaEnergy = aDynamicGamma->GetKineticEnergy(); + G4Material* aMaterial = aTrack.GetMaterial(); + + G4double MeanFreePath; + G4bool isOutRange; + + if (GammaEnergy > HighestEnergyLimit || GammaEnergy < LowestEnergyLimit) + MeanFreePath = DBL_MAX; + else + MeanFreePath = (*theMeanFreePathTable)(aMaterial->GetIndex())-> + GetValue(GammaEnergy, isOutRange); + return MeanFreePath; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* XTRComptonScattering::PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep) +// +// The scattered gamma energy is sampled according to Klein - Nishina formula. +// The random number techniques of Butcher & Messel are used +// (Nuc Phys 20(1960),15). +// GEANT4 internal units +// +// Note : Effects due to binding of atomic electrons are negliged. + +{ + aParticleChange.Initialize(aTrack); + G4Material* aMaterial = aTrack.GetMaterial(); + + const G4DynamicParticle* aDynamicGamma = aTrack.GetDynamicParticle(); + G4double GammaEnergy0 = aDynamicGamma->GetKineticEnergy(); + G4double E0_m = GammaEnergy0 / electron_mass_c2 ; + + G4ParticleMomentum GammaDirection0 = aDynamicGamma->GetMomentumDirection(); + + // + // sample the energy rate of the scattered gamma + // + + G4double epsilon, epsilonsq, onecost, sint2, greject ; + + G4double epsilon0 = 1./(1. + 2*E0_m) , epsilon0sq = epsilon0*epsilon0; + G4double alpha1 = - log(epsilon0) , alpha2 = 0.5*(1.- epsilon0sq); + + do { + if ( alpha1/(alpha1+alpha2) > G4UniformRand() ) + { epsilon = exp(-alpha1*G4UniformRand()); // epsilon0**r + epsilonsq = epsilon*epsilon; } + else { + epsilonsq = epsilon0sq + (1.- epsilon0sq)*G4UniformRand(); + epsilon = sqrt(epsilonsq); + }; + onecost = (1.- epsilon)/(epsilon*E0_m); + sint2 = onecost*(2.-onecost); + greject = 1. - epsilon*sint2/(1.+ epsilonsq); + } while (greject < G4UniformRand()); + + // + // scattered gamma angles. ( Z - axis along the parent gamma) + // + + G4double cosTeta = 1. - onecost , sinTeta = sqrt (sint2); + G4double Phi = twopi * G4UniformRand(); + G4double dirx = sinTeta*cos(Phi), diry = sinTeta*sin(Phi), dirz = cosTeta; + + // + // update G4VParticleChange for the scattered gamma + // + + G4ThreeVector GammaDirection1 ( dirx,diry,dirz ); + GammaDirection1.rotateUz(GammaDirection0); + aParticleChange.ProposeMomentumDirection( GammaDirection1 ); + G4double GammaEnergy1 = epsilon*GammaEnergy0; + G4double localEnergyDeposit = 0.; + + + // Get electron/gamma cut in energy from track->materialcutscouple: + + const G4MaterialCutsCouple* matCutsCouple = aTrack.GetMaterialCutsCouple(); + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + + size_t numOfCouples = theCoupleTable->GetTableSize(), jMatCC; + + for (jMatCC = 0 ; jMatCC < numOfCouples ; jMatCC++ ) + { + if( matCutsCouple == theCoupleTable->GetMaterialCutsCouple(jMatCC) ) break; + } + if( jMatCC == numOfCouples && jMatCC > 0 ) jMatCC--; + + const vector* deltaCutInKineticEnergy = theCoupleTable-> + GetEnergyCutsVector(idxG4ElectronCut); + fMinElectronEnergy = (*deltaCutInKineticEnergy)[jMatCC]; + + // G4cout<<"XTRComptonScattering::PostStepDoIt::fMinElectronEnergy = " + // <GetName()<* deltaCutEnergyGamma = theCoupleTable-> + GetEnergyCutsVector(idxG4GammaCut); + fMinGammaEnergy = (*deltaCutEnergyGamma)[jMatCC]; + + // G4cout<<"XTRComptonScattering::PostStepDoIt::fMinGammaEnergy = " + // <GetName()< fMinGammaEnergy) + { + aParticleChange.ProposeEnergy( GammaEnergy1 ); + } + else + { + localEnergyDeposit += GammaEnergy1; + aParticleChange.ProposeEnergy(0.) ; + aParticleChange.ProposeTrackStatus(fStopAndKill); + } + + // + // kinematic of the scattered electron + // + + G4double ElecKineEnergy = GammaEnergy0 - GammaEnergy1; + + if (ElecKineEnergy > fMinElectronEnergy) + { + G4double ElecMomentum = sqrt(ElecKineEnergy* + (ElecKineEnergy+2.*electron_mass_c2)); + G4ThreeVector ElecDirection ( + (GammaEnergy0*GammaDirection0 - GammaEnergy1*GammaDirection1) + *(1./ElecMomentum) ); + + // create G4DynamicParticle object for the electron. + G4DynamicParticle* aElectron= new G4DynamicParticle( + G4Electron::Electron(),ElecDirection,ElecKineEnergy); + + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary( aElectron ); + } + else + { + aParticleChange.SetNumberOfSecondaries(0); + localEnergyDeposit += ElecKineEnergy; + } + aParticleChange.ProposeLocalEnergyDeposit (localEnergyDeposit); + + // Reset NbOfInteractionLengthLeft and return aParticleChange + return G4VDiscreteProcess::PostStepDoIt( aTrack, aStep); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool XTRComptonScattering::StorePhysicsTable(const G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + + // store cross section table + filename = GetPhysicsTableFileName(particle,directory,"CrossSection",ascii); + if ( !theCrossSectionTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theCrossSectionTable->StorePhysicsTable in " << filename + << G4endl; + return false; + } + + // store mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + if ( !theMeanFreePathTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theMeanFreePathTable->StorePhysicsTable in " << filename + << G4endl; + return false; + } + + G4cout << GetProcessName() << " for " << particle->GetParticleName() + << ": Success to store the PhysicsTables in " + << directory << G4endl; + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +/* +G4bool XTRComptonScattering::RetrievePhysicsTable(const G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + // delete theCrossSectionTable and theMeanFreePathTable + if (theCrossSectionTable != 0) { + theCrossSectionTable->clearAndDestroy(); + delete theCrossSectionTable; + } + if (theMeanFreePathTable != 0) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + + G4String filename; + + // retreive cross section table + filename = GetPhysicsTableFileName(particle,directory,"CrossSection",ascii); + theCrossSectionTable = new G4PhysicsTable(G4Element::GetNumberOfElements()); + if ( !G4PhysicsTableHelper::RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theCrossSectionTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theMeanFreePathTable = new G4PhysicsTable(G4Material::GetNumberOfMaterials()); + if ( !G4PhysicsTableHelper::RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + G4cout << GetProcessName() << " for " << particle->GetParticleName() + << ": Success to retrieve the PhysicsTables from " + << directory << G4endl; + return true; +} +*/ +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void XTRComptonScattering::PrintInfoDefinition() +{ + G4String comments = "Total cross sections from a parametrisation. "; + comments += "Good description from 10 KeV to (100/Z) GeV. \n"; + comments += " Scattered gamma energy according Klein-Nishina."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " + << G4BestUnit(LowestEnergyLimit,"Energy") + << " to " << G4BestUnit(HighestEnergyLimit,"Energy") + << " in " << NumbBinTable << " bins. \n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm10/src/XTRPhotoElectricEffect.cc b/examples/extended/electromagnetic/TestEm10/src/XTRPhotoElectricEffect.cc new file mode 100644 index 0000000000..a8ff4de60c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm10/src/XTRPhotoElectricEffect.cc @@ -0,0 +1,307 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: XTRPhotoElectricEffect.cc,v 1.1 2005/02/01 09:20:54 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// 12-06-96, Added SelectRandomAtom() method, by M.Maire +// 21-06-96, SetCuts implementation, M.Maire +// 17-09-96, PartialSumSigma(i) +// split of ComputeBindingEnergy, M.Maire +// 08-01-97, crossection table + meanfreepath table, M.Maire +// 13-03-97, adapted for the new physics scheme, M.Maire +// 28-03-97, protection in BuildPhysicsTable, M.Maire +// 04-06-98, in DoIt, secondary production condition: +// range > std::min(threshold,safety) +// 13-08-98, new methods SetBining() PrintInfo() +// 17-11-98, use table of Atomic shells in PostStepDoIt +// 06-01-99, use Sandia crossSection below 50 keV, V.Grichine mma +// 20-05-99, protection against very low energy photons ,L.Urban +// 08-06-99, removed this above protection from the DoIt. mma +// 21-06-00, in DoIt, killing photon: aParticleChange.SetEnergyChange(0.); mma +// 22-06-00, in DoIt, absorbe very low energy photon (back to 20-05-99); mma +// 22-02-01, back to 08-06-99 after correc in SandiaTable (materials-V03-00-05) +// 28-05-01, V.Ivanchenko minor changes to provide ANSI -wall compilation +// 13-07-01, DoIt: suppression of production cut of the electron (mma) +// 06-08-01, new methods Store/Retrieve PhysicsTable (mma) +// 06-08-01, BuildThePhysicsTable() called from constructor (mma) +// 17-09-01, migration of Materials to pure STL (mma) +// 20-09-01, DoIt: fMinimalEnergy of generated electron = 1*eV (mma) +// 01-10-01, come back to BuildPhysicsTable(const G4ParticleDefinition&) +// 10-01-02, moved few function from icc to cc +// 17-04-02, Keep only Sandia crossSections. Remove BuildPhysicsTables. +// Simplify public interface (mma) +// 29-04-02, Generate theta angle of the photoelectron from Sauter-Gavrila +// distribution (mma) +// 15-01-03, photoelectron theta ditribution : return costeta=1 if gamma>5 +// (helmut burkhardt) +// 01-02-05, electron cuts in PostStepDoItfrom G4MaterialCutsCouple +// (V. Grichine) +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "XTRPhotoElectricEffect.hh" +#include "G4UnitsTable.hh" +#include "G4ProductionCutsTable.hh" +#include "G4MaterialCutsCouple.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +using namespace std; + +XTRPhotoElectricEffect::XTRPhotoElectricEffect(const G4String& processName, + G4ProcessType type):G4VDiscreteProcess (processName, type), + fMinElectronEnergy(1*eV) + +{ PrintInfoDefinition();} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// destructor + +XTRPhotoElectricEffect::~XTRPhotoElectricEffect() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4bool XTRPhotoElectricEffect::IsApplicable(const G4ParticleDefinition& + particle) +{ + return ( &particle == G4Gamma::Gamma() ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double XTRPhotoElectricEffect::ComputeCrossSectionPerAtom(G4double GammaEnergy, + G4double AtomicNumber) + +// returns the photoElectric cross Section in GEANT4 internal units +{ + G4double* SandiaCof + = G4SandiaTable::GetSandiaCofPerAtom((int)AtomicNumber,GammaEnergy); + + G4double energy2 = GammaEnergy*GammaEnergy, energy3 = GammaEnergy*energy2, + energy4 = energy2*energy2; + + return SandiaCof[0]/GammaEnergy + SandiaCof[1]/energy2 + + SandiaCof[2]/energy3 + SandiaCof[3]/energy4; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double XTRPhotoElectricEffect::ComputeMeanFreePath(G4double GammaEnergy, + G4Material* aMaterial) + +// returns the gamma mean free path in GEANT4 internal units +{ + G4double* SandiaCof = aMaterial->GetSandiaTable() + ->GetSandiaCofForMaterial(GammaEnergy); + + G4double energy2 = GammaEnergy*GammaEnergy, energy3 = GammaEnergy*energy2, + energy4 = energy2*energy2; + + + G4double SIGMA = SandiaCof[0]/GammaEnergy + SandiaCof[1]/energy2 + + SandiaCof[2]/energy3 + SandiaCof[3]/energy4; + + return SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline G4double XTRPhotoElectricEffect::GetMeanFreePath(const G4Track& aTrack, + G4double, + G4ForceCondition*) + +// returns the gamma mean free path in GEANT4 internal units +{ + G4double GammaEnergy = aTrack.GetDynamicParticle()->GetKineticEnergy(); + G4double* SandiaCof = aTrack.GetMaterial()->GetSandiaTable() + ->GetSandiaCofForMaterial(GammaEnergy); + + G4double energy2 = GammaEnergy*GammaEnergy, energy3 = GammaEnergy*energy2, + energy4 = energy2*energy2; + + + G4double SIGMA = SandiaCof[0]/GammaEnergy + SandiaCof[1]/energy2 + + SandiaCof[2]/energy3 + SandiaCof[3]/energy4; + + MeanFreePath = SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; + return MeanFreePath; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* XTRPhotoElectricEffect::PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep) +// +// Generate an electron resulting of a photo electric effect. +// The incident photon disappear. +// GEANT4 internal units +// + +{ aParticleChange.Initialize(aTrack); + G4Material* aMaterial = aTrack.GetMaterial(); + const G4DynamicParticle* aDynamicPhoton = aTrack.GetDynamicParticle(); + + G4double PhotonEnergy = aDynamicPhoton->GetKineticEnergy(); + G4ParticleMomentum PhotonDirection = aDynamicPhoton->GetMomentumDirection(); + + // select randomly one element constituing the material. + G4Element* anElement = SelectRandomAtom(aDynamicPhoton, aMaterial); + + // + // Photo electron + // + + G4int NbOfShells = anElement->GetNbOfAtomicShells(); + G4int i=0; + while ((iGetAtomicShell(i))) i++; + + if (i == NbOfShells) return G4VDiscreteProcess::PostStepDoIt(aTrack,aStep); + + G4double ElecKineEnergy = PhotonEnergy - anElement->GetAtomicShell(i); + + // Get electron cut in energy from track->materialcutscouple: + + const G4MaterialCutsCouple* matCutsCouple = aTrack.GetMaterialCutsCouple(); + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + + size_t numOfCouples = theCoupleTable->GetTableSize(), jMatCC; + + for (jMatCC = 0 ; jMatCC < numOfCouples ; jMatCC++ ) + { + if( matCutsCouple == theCoupleTable->GetMaterialCutsCouple(jMatCC) ) break; + } + if( jMatCC == numOfCouples && jMatCC > 0 ) jMatCC--; + + const vector* deltaCutInKineticEnergy = theCoupleTable-> + GetEnergyCutsVector(idxG4ElectronCut); + fMinElectronEnergy = (*deltaCutInKineticEnergy)[jMatCC]; + + // G4cout<<"XTRPhotoElectricEffect::PostStepDoIt::fMinElectronEnergy = " + // <GetName()< fMinElectronEnergy) + { + // direction of the photo electron + // + G4double cosTeta = ElecThetaDistribution(ElecKineEnergy); + G4double sinTeta = sqrt(1.-cosTeta*cosTeta); + G4double Phi = twopi * G4UniformRand(); + G4double dirx = sinTeta*cos(Phi),diry = sinTeta*sin(Phi),dirz = cosTeta; + G4ThreeVector ElecDirection(dirx,diry,dirz); + ElecDirection.rotateUz(PhotonDirection); + // + G4DynamicParticle* aElectron = new G4DynamicParticle ( + G4Electron::Electron(),ElecDirection, ElecKineEnergy); + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(aElectron); + } + else + { + ElecKineEnergy = 0.; + aParticleChange.SetNumberOfSecondaries(0); + } + + // + // Kill the incident photon + // + aParticleChange.ProposeLocalEnergyDeposit(PhotonEnergy-ElecKineEnergy); + aParticleChange.ProposeEnergy(0.); + aParticleChange.ProposeTrackStatus(fStopAndKill); + + // Reset NbOfInteractionLengthLeft and return aParticleChange + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4Element* XTRPhotoElectricEffect::SelectRandomAtom( + const G4DynamicParticle* aDynamicPhoton, + G4Material* aMaterial) +{ + // select randomly 1 element within the material + + const G4int NumberOfElements = aMaterial->GetNumberOfElements(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + if (NumberOfElements == 1) return (*theElementVector)[0]; + + G4double GammaEnergy = aDynamicPhoton->GetKineticEnergy(); + const G4double* NbOfAtomsPerVolume = aMaterial->GetVecNbOfAtomsPerVolume(); + + G4double PartialSumSigma = 0. ; + G4double rval = G4UniformRand(); + + for ( G4int elm=0 ; elm < NumberOfElements ; elm++ ) + {PartialSumSigma += NbOfAtomsPerVolume[elm] * + ComputeCrossSectionPerAtom(GammaEnergy, + (*theElementVector)[elm]->GetZ()); + if (rval<=PartialSumSigma*MeanFreePath) return ((*theElementVector)[elm]); + } + return ((*theElementVector)[NumberOfElements-1]); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double XTRPhotoElectricEffect::ElecThetaDistribution(G4double kineEnergy) +{ + // Compute Theta distribution of the emitted electron, with respect to the + // incident Gamma. + // The Sauter-Gavrila distribution for the K-shell is used. + // + G4double costeta = 1.; + G4double gamma = 1. + kineEnergy/electron_mass_c2; + if (gamma > 5.) return costeta; + G4double beta = sqrt(gamma*gamma-1.)/gamma; + G4double b = 0.5*gamma*(gamma-1.)*(gamma-2); + + G4double rndm,term,greject,grejsup; + if (gamma < 2.) grejsup = gamma*gamma*(1.+b-beta*b); + else grejsup = gamma*gamma*(1.+b+beta*b); + + do { rndm = 1.-2*G4UniformRand(); + costeta = (rndm+beta)/(rndm*beta+1.); + term = 1.-beta*costeta; + greject = (1.-costeta*costeta)*(1.+b*term)/(term*term); + } while(greject < G4UniformRand()*grejsup); + + return costeta; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void XTRPhotoElectricEffect::PrintInfoDefinition() +{ + G4String comments = "Total cross sections from Sandia parametrisation. "; + + G4cout << G4endl << GetProcessName() << ": " << comments << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/History b/examples/extended/electromagnetic/TestEm11/History index edef14dfb6..2cecfd5b4a 100644 --- a/examples/extended/electromagnetic/TestEm11/History +++ b/examples/extended/electromagnetic/TestEm11/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2005/06/03 15:18:43 maire Exp $ +$Id: History,v 1.6 2005/12/06 11:32:03 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,5 +15,17 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +22-11-05 mma (testem11-V07-01-03) +- update README for OpenScientist + +14-11-05 Gabriele Cosmo (testem11-V07-01-02) +- Migration to for HistoMessenger. + +05-10-05 mma (testem11-V07-01-00) +- create PhysListEmG4v71 (g4v71) for G4MultipleScattering71 + 03-06-05 michel maire (testem11-V07-00-00) - created, from TestEm1 diff --git a/examples/extended/electromagnetic/TestEm11/README b/examples/extended/electromagnetic/TestEm11/README index 6555f07f29..ae2dcb60c5 100644 --- a/examples/extended/electromagnetic/TestEm11/README +++ b/examples/extended/electromagnetic/TestEm11/README @@ -1,4 +1,4 @@ -$Id: README,v 1.1 2005/06/03 15:18:43 maire Exp $ +$Id: README,v 1.3 2005/11/22 16:52:37 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -105,8 +105,8 @@ $Id: README,v 1.1 2005/06/03 15:18:43 maire Exp $ 1 : longitudinal energy profile (in MeV/mm and per event) 2 : total energy deposited in the absorber 3 : total track length of the primary track - 4 : projected range of the primary track - 5 : step size of the primary track + 4 : step size of the primary track + 5 : projected range of the primary track 6 : total track length of charged secondary tracks 7 : step size of charged secondary tracks @@ -145,32 +145,28 @@ $Id: README,v 1.1 2005/06/03 15:18:43 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.cc b/examples/extended/electromagnetic/TestEm11/TestEm11.cc index 073cadaff8..7e8b38a2ce 100644 --- a/examples/extended/electromagnetic/TestEm11/TestEm11.cc +++ b/examples/extended/electromagnetic/TestEm11/TestEm11.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TestEm11.cc,v 1.1 2005/06/03 15:18:43 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm11.cc,v 1.2 2005/12/06 11:32:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -52,7 +52,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/TestEm11/TestEm11.out b/examples/extended/electromagnetic/TestEm11/TestEm11.out new file mode 100644 index 0000000000..dea698afc7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/TestEm11.out @@ -0,0 +1,290 @@ + +************************************************************* + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + + +***** Table : Nb of materials = 8 ***** + + Material: G4_Al density: 2.699 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.896 cm + ---> Element: Al (Al) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Si density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.366 cm + ---> Element: Si (Si) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Fe density: 7.874 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.757 cm + ---> Element: Fe (Fe) Z = 26.0 N = 55.8 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Ge density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm + ---> Element: Ge (Ge) Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_W density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm + ---> Element: W (W) Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Pb density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.613 mm + ---> Element: Pb (Pb) Z = 82.0 N = 207.2 A = 207.22 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_AIR density: 1.205 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.921 m + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.01 % Abundance 0.02 % + ---> Element: N (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.53 % Abundance 78.44 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.18 % Abundance 21.07 % + ---> Element: Ar (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % + + Material: G4_WATER H_2O density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.083 cm + ---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.19 % Abundance 66.67 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.81 % Abundance 33.33 % + + +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +Registering model factories... +/run/verbose 2 +# +/testem/det/setMat G4_Si +/testem/det/setSizeX 1 mm +/testem/det/setSizeYZ 1 mm +# +/testem/phys/addPhysics standard # em physics +PhysicsList::AddPhysicsList: +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +userDetector->Construct() start. + +--------------------------------------------------------- +---> The Absorber is 1 mm of G4_Si divided in 1 slices of 1 mm + +--------------------------------------------------------- +Absorber is registered to the default region. +physicsList->Construct() start. +physicsList->Construct() start. +physicsList->setCut() start. +PhysicsList::SetCuts:CutLength : 1 mm +# +/gun/particle e- +/gun/energy 500 keV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName testem11 +/testem/histo/setHisto 1 100 0. 1. mm #edep profile +----> SetHisto 1: Edep (MeV/mm) along absorber (mm); 100 bins from 0 mm to 1 mm +/testem/histo/setHisto 2 102 0. 510. keV #total Edep +----> SetHisto 2: total Energy deposited in absorber (keV); 102 bins from 0 keV to 510 keV +/testem/histo/setHisto 3 100 0. 2. mm #true track length +----> SetHisto 3: true track length of the primary particle (mm); 100 bins from 0 mm to 2 mm +/testem/histo/setHisto 4 100 0. 2. mm #true step length +----> SetHisto 4: true step size of the primary particle (mm); 100 bins from 0 mm to 2 mm +/testem/histo/setHisto 5 100 0. 1. mm #proj range +----> SetHisto 5: projected range of the primary particle (mm); 100 bins from 0 mm to 1 mm +# +/testem/event/printModulo 10000 +# +/run/beamOn 100000 + +phot: Total cross sections from Sandia parametrisation. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for GenericIon + +ionIoni: tables are built for GenericIon + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +Region -- appears in world volume + Materials : G4_Si + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : G4_Si + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 6.88731 keV e- 540.718 keV e+ 521.113 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 0 kByte + Total CPU time elapsed for geometry optimisation: 0 seconds +### Run 0 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 9876, 54321 +---------------------------------------- +Start Run processing. + +---> Begin of Event: 0 + +---> Begin of Event: 10000 + +---> Begin of Event: 20000 + +---> Begin of Event: 30000 + +---> Begin of Event: 40000 + +---> Begin of Event: 50000 + +---> Begin of Event: 60000 + +---> Begin of Event: 70000 + +---> Begin of Event: 80000 + +---> Begin of Event: 90000 +Run terminated. +Run Summary + Number of events processed : 100000 + User=687.81s Real=1888.39s Sys=359.13s + + ======================== run summary ====================== + + The run consists of 100000 e- of 500.00 keV through 1.00 mm of G4_Si (density: 2.33 g/cm3 ) + + ============================================================ + + Total Energy deposited = 449.614 keV +- 102.911 keV + + Track length of primary track = 870.360 mum +- 185.843 mum + Range from EmCalculator = 941.718 mum (from restricted dE/dx) + + Projected range = 321.454 mum +- 201.939 mum + + Nb of steps of primary track = 43.43 +- 9.84 Step size= 20.185 mum +- 2.370 mum + + absorbed = 78.48 % transmit = 4.99 % reflected = 16.53 % + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 301553650, 509080554 +---------------------------------------- +Graphics systems deleted. +Visualization Manager deleting... +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. +RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm11/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm11/include/DetectorConstruction.hh index 6a0c69c757..68ef48550e 100644 --- a/examples/extended/electromagnetic/TestEm11/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm11/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/DetectorMessenger.hh index 1dd4fcd261..8efd7deb55 100644 --- a/examples/extended/electromagnetic/TestEm11/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm11/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/EventAction.hh b/examples/extended/electromagnetic/TestEm11/include/EventAction.hh index c568c86b42..2a06cd80ac 100644 --- a/examples/extended/electromagnetic/TestEm11/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm11/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/EventActionMessenger.hh index a979145708..9caa6a7336 100644 --- a/examples/extended/electromagnetic/TestEm11/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm11/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm11/include/HistoManager.hh index e65d231b08..cee907dbdf 100644 --- a/examples/extended/electromagnetic/TestEm11/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm11/include/HistoManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/HistoMessenger.hh index 04934780be..411b170989 100644 --- a/examples/extended/electromagnetic/TestEm11/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm11/include/HistoMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v52.hh index 03ae8ae272..107f249cc7 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v71.hh b/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v71.hh new file mode 100644 index 0000000000..4c8741f85e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/include/PhysListEmG4v71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.hh,v 1.1 2005/10/05 11:57:57 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmG4v71_h +#define PhysListEmG4v71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmG4v71 : public G4VPhysicsConstructor +{ + public: + PhysListEmG4v71(const G4String& name = "g4v71"); + ~PhysListEmG4v71(); + + public: + // This method is dummy for physics. + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandard.hh index 275baa4ab1..fea92c8a27 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh index 1716d4e4bb..a9d2e49e3b 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh index 3e095e4f37..f2f926120d 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh index af14a8b5c9..1b93de5b25 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh index 7416fc4396..8738f27565 100644 --- a/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm11/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/RunAction.hh b/examples/extended/electromagnetic/TestEm11/include/RunAction.hh index cd011826f2..180f510f21 100644 --- a/examples/extended/electromagnetic/TestEm11/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm11/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/StepMax.hh b/examples/extended/electromagnetic/TestEm11/include/StepMax.hh index 0badd529ae..1661bda514 100644 --- a/examples/extended/electromagnetic/TestEm11/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm11/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm11/include/StepMaxMessenger.hh index 1a2f416ee4..b393e39b1b 100644 --- a/examples/extended/electromagnetic/TestEm11/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm11/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm11/include/SteppingAction.hh index 04c80143f1..ffd6fbdccd 100644 --- a/examples/extended/electromagnetic/TestEm11/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm11/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm11/include/SteppingVerbose.hh index 204ae40b1e..b0d280567b 100644 --- a/examples/extended/electromagnetic/TestEm11/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm11/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm11/include/TrackingAction.hh index 980f6df1ca..bfe88da7d0 100644 --- a/examples/extended/electromagnetic/TestEm11/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm11/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.1 2005/06/03 15:19:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm11/src/DetectorConstruction.cc index 62ee88db53..e890bcc8ca 100644 --- a/examples/extended/electromagnetic/TestEm11/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/DetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/DetectorMessenger.cc index 1e087c134d..e38a40dc10 100644 --- a/examples/extended/electromagnetic/TestEm11/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm11/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/EventAction.cc b/examples/extended/electromagnetic/TestEm11/src/EventAction.cc index 7b52fda99a..6a9ed67bc3 100644 --- a/examples/extended/electromagnetic/TestEm11/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/EventActionMessenger.cc index cc472b6be4..db00e80f7a 100644 --- a/examples/extended/electromagnetic/TestEm11/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm11/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc index e551b7da60..86fe9d67d5 100644 --- a/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm11/src/HistoManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/HistoMessenger.cc index b21595401f..79cb7623a8 100644 --- a/examples/extended/electromagnetic/TestEm11/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/TestEm11/src/HistoMessenger.cc @@ -20,14 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HistoMessenger.cc,v 1.2 2005/11/14 14:32:14 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "HistoMessenger.hh" +#include + #include "HistoManager.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -107,7 +109,7 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> ih >> nbBins >> vmin >> vmax >> unts; G4String unit = unts; G4double vUnit = 1. ; diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v52.cc index a6718e46d8..7be5697e73 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v52.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v71.cc b/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v71.cc new file mode 100644 index 0000000000..97d88bbb98 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/src/PhysListEmG4v71.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.cc,v 1.1 2005/10/05 11:57:57 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::PhysListEmG4v71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::~PhysListEmG4v71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v71::ConstructProcess() +{ + // Add EM processes realised on base of prototype of model approach design + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering71,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1,4); + + } else if( particleName == "GenericIon" ) { + + pmanager->AddProcess(new G4MultipleScattering71,-1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering71,-1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc index f723dd4988..f3db035d8a 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PhysListEmStandard.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmStandard.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysListEmStandard.cc,v 1.2 2005/11/22 16:52:37 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -64,7 +64,7 @@ PhysListEmStandard::~PhysListEmStandard() void PhysListEmStandard::ConstructProcess() { // Add standard EM Processes - + theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); @@ -82,14 +82,14 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); - + } else if (particleName == "e+") { //positron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - + } else if( particleName == "mu+" || particleName == "mu-" ) { //muon diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc index 90f703e843..8210ea631f 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.2 2005/10/05 11:57:57 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,6 +31,7 @@ #include "PhysListEmStandard.hh" #include "PhysListEmG4v52.hh" +#include "PhysListEmG4v71.hh" #include "G4LossTableManager.hh" #include "G4UnitsTable.hh" @@ -223,7 +224,13 @@ void PhysicsList::AddPhysicsList(const G4String& name) emName = name; delete emPhysicsList; emPhysicsList = new PhysListEmG4v52(name); + + } else if (name == "g4v71") { + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v71(name); + } else { G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" diff --git a/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc index 27d6e120b2..08e7837523 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc index ecf9fd4359..1b540aedbc 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc index 9c719fa70e..c698e0ab91 100644 --- a/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm11/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/RunAction.cc b/examples/extended/electromagnetic/TestEm11/src/RunAction.cc index eafa04c609..41c9471d39 100644 --- a/examples/extended/electromagnetic/TestEm11/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.3 2005/12/06 11:32:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,7 +61,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); //initialize total energy deposit // @@ -151,8 +151,8 @@ void RunAction::EndOfRunAction(const G4Run* aRun) if (particle->GetPDGCharge() != 0.) csdaRange = emCalculator.GetRange(energy,particle,material); G4cout - << "\n csda Range from EmCalculator = " << G4BestUnit(csdaRange,"Length") - << G4endl; + << "\n Range from EmCalculator = " << G4BestUnit(csdaRange,"Length") + << " (from restricted dE/dx)" << G4endl; //compute projected range of primary track // @@ -211,7 +211,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) histoManager->save(); // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/StepMax.cc b/examples/extended/electromagnetic/TestEm11/src/StepMax.cc index 426830d8ba..7ed20f79ae 100644 --- a/examples/extended/electromagnetic/TestEm11/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm11/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm11/src/StepMaxMessenger.cc index 4d27a3b753..a28c836dc5 100644 --- a/examples/extended/electromagnetic/TestEm11/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm11/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc index cc91125200..35db55b9e4 100644 --- a/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm11/src/SteppingVerbose.cc index b2a0318bfe..c4ab930d5d 100644 --- a/examples/extended/electromagnetic/TestEm11/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm11/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm11/src/TrackingAction.cc index 83a2cbe235..29ee552a2e 100644 --- a/examples/extended/electromagnetic/TestEm11/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm11/src/TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.cc,v 1.1 2005/06/03 15:20:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm11/water.mac b/examples/extended/electromagnetic/TestEm11/water.mac new file mode 100644 index 0000000000..c0491b9469 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm11/water.mac @@ -0,0 +1,32 @@ +# $Id: water.mac,v 1.2 2005/10/05 11:57:57 maire Exp $ +# +# no constraint on tracking step +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setMat G4_WATER +/testem/det/setSizeX 3 cm +/testem/det/setSizeYZ 3 cm +# +/testem/phys/addPhysics standard # em physics +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +# +/testem/phys/setCuts 10 mum +# +/gun/particle e- +/gun/energy 4 MeV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName water.1mum +/testem/histo/setHisto 1 120 0. 24. mm #edep profile +/testem/histo/setHisto 3 100 0. 24. mm #track length primary +/testem/histo/setHisto 4 100 0. 2. mm #step length primary +/testem/histo/setHisto 5 100 0. 20. mm #proj range +/testem/histo/setHisto 6 100 0. 24. mm #track length secondaries +# +/testem/event/printModulo 10000 +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm12/GNUmakefile b/examples/extended/electromagnetic/TestEm12/GNUmakefile new file mode 100644 index 0000000000..efb2e2fb79 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/GNUmakefile @@ -0,0 +1,38 @@ +# $Id: GNUmakefile,v 1.1 2005/07/22 11:08:48 maire Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := TestEm12 +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin + +#### G4ANALYSIS_USE := true + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + +include $(G4INSTALL)/config/architecture.gmk + +ifdef G4ANALYSIS_USE + # for the aida-config command see the README file + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` +endif + +include $(G4INSTALL)/config/binmake.gmk + +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* + +histclean: + rm ${G4WORKDIR}/tmp/${G4SYSTEM}/${G4TARGET}/HistoManager.o diff --git a/examples/extended/electromagnetic/TestEm12/History b/examples/extended/electromagnetic/TestEm12/History new file mode 100644 index 0000000000..4d0cd9d89f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/History @@ -0,0 +1,31 @@ +$Id: History,v 1.6 2005/12/06 11:34:42 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + TestEm12 History file + --------------------- +This file should be used by the G4 example coordinator to briefly +summarize all major modifications introduced in the code and keep +track of all tags. + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +22-11-05 mma (testem12-V07-01-04) +- update README for OpenScientist + +14-11-05 Gabriele Cosmo (testem12-V07-01-03) +- Migration to for HistoMessenger. + +05-10-05 mma (testem12-V07-01-02) +- create PhysListEmG4v71 (g4v71) for G4MultipleScattering71 + +22-07-05 michel maire (testem12-V07-01-00) +- created, from TestEm11 diff --git a/examples/extended/electromagnetic/TestEm12/README b/examples/extended/electromagnetic/TestEm12/README new file mode 100644 index 0000000000..42164deabf --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/README @@ -0,0 +1,173 @@ +$Id: README,v 1.3 2005/11/22 16:48:28 maire Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + TestEm12 + -------- + + This example is devoted to the energy deposited by particles which + across a given material. + + In addition, it illustrates how to use the concept of 'process' in order + to implement a constraint on the step size of the particle trajectories. + + 1- GEOMETRY DEFINITION + + The geometry consists of a single sphere of an homogenous material. + Optionally, the sphere can be divided in thin shells. + + 3 parameters define the geometry : + - the material of the sphere, + - the radius of the sphere (absorRadius), + - the number of shells (nbOfLayers) + + In addition a transverse uniform magnetic field can be applied. + + The default geometry is constructed in DetectorConstruction class, + but all of the above parameters can be changed interactively via + the commands defined in the DetectorMessenger class. + + 2- PHYSICS LIST + + The particle list is the one of novice/exampleN02. + The physics list contains the 'standard' electromagnetic processes, + and decay. + + Few commands have been added to PhysicsList, in order to set the + production threshold for secondaries either in range for gamma, e-/e+. + + 3- AN EVENT : THE PRIMARY GENERATOR + + The primary kinematic consists of a single particle randomly shooted at + the centre of the sphere. The type of the particle and its energy are set + in the PrimaryGeneratorAction class, and can be changed via the G4 + build-in commands of ParticleGun class (see the macros provided with + this example). + + In addition one can desactivate the randomness of the direction of the + incident particle. The corresponding interactive command is built in + PrimaryGeneratorMessenger class. + + A RUN is a set of events. + + + 4- VISUALIZATION + + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via the commands + /vis/... in the macro vis.mac. To get visualisation: + > /control/execute vis.mac + + The detector has a default view which is a longitudinal view of the + box. + + The tracks are drawn at the end of event, and erased at the end of run. + Optionaly one can choose to draw all particles, only the charged one, + or none. This command is defined in EventActionMessenger class. + + + 5- HOW TO START ? + + - compile and link to generate an executable + % cd geant4/examples/extended/electromagnetic/TestEm1 + % gmake + + - execute TestEm12 in 'batch' mode from macro files + % TestEm12 run01.mac + + - execute TestEm12 in 'interactive mode' with visualization + % TestEm12 + .... + Idle> type your commands + .... + Idle> exit + + 6- TRACKING + + Testem12 computes the total energy deposited along the trajectory of + the incident particle : the so-called longitudinal energy profile, + or depth dose distribution + + In order to control the accuracy of the deposition, the user can limit + 'by hand' the maximum step size of charged particles. + As an example, this limitation is implemented as a 'full' process : + see StepMax class and its Messenger. The 'StepMax process' is registered + in the Physics List. + + 7- HISTOGRAMS + + Testem12 has several predefined 1D histograms : + + 1 : energy profile dE/dr (in MeV/mm per event) + 2 : total energy deposited in the absorber + 3 : total track length of the primary track + 4 : step size of the primary track + 5 : projected range of the primary track + 6 : total track length of charged secondary tracks + 7 : step size of charged secondary tracks + 8 : normalized energy profile d(E/E0)/d(r/r0), where r0 is the range of + the primary particle of energy E0 + + The histograms are managed by the HistoManager class and its Messenger. + The histos can be individually activated with the command : + /testem/histo/setHisto id nbBins valMin valMax unit + where unit is the desired unit for the histo (MeV or keV, deg or mrad, etc..) + + One can control the name of the histograms file with the command: + /testem/histo/setFileName name (default testem12) + + It is possible to choose the format of the histogram file (hbook, root, XML) + with the command /testem/histo/setFileType (hbook by default) + + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. + + + 8- USING HISTOGRAMS + + To use histograms, at least one of the AIDA implementations should be + available (see http://aida.freehep.org). + + 8a - PI + + A package including AIDA and extended interfaces also using Python is PI, + available from: http://cern.ch/pi + + Once installed PI or PI-Lite in a specified local area $MYPY, it is required + to add the installation path to $PATH, i.e. for example, for release 1.2.1 of + PI: + setenv PATH ${PATH}:$MYPI/1.2.1/app/releases/PI/PI_1_2_1/rh73_gcc32/bin + + CERN users can use the PATH to the LCG area on AFS. + Before running the example the command should be issued: + eval `aida-config --runtime csh` + + 8b - OpenScientist + + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. + + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : + OS> opaw + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) + opaw> zone 2 2 + opaw> h/plot 1 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm12/TestEm12.cc b/examples/extended/electromagnetic/TestEm12/TestEm12.cc new file mode 100644 index 0000000000..f746d6919e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/TestEm12.cc @@ -0,0 +1,119 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: TestEm12.cc,v 1.2 2005/12/06 11:34:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" +#include "Randomize.hh" + +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "PrimaryGeneratorAction.hh" + +#include "RunAction.hh" +#include "EventAction.hh" +#include "TrackingAction.hh" +#include "SteppingAction.hh" +#include "SteppingVerbose.hh" +#include "HistoManager.hh" + +#ifdef G4VIS_USE + #include "G4VisExecutive.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) { + + //choose the Random engine + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new SteppingVerbose); + + //Construct the default run manager + G4RunManager * runManager = new G4RunManager; + + //set mandatory initialization classes + DetectorConstruction* det; + PhysicsList* phys; + PrimaryGeneratorAction* kin; + runManager->SetUserInitialization(det = new DetectorConstruction); + runManager->SetUserInitialization(phys = new PhysicsList); + runManager->SetUserAction(kin = new PrimaryGeneratorAction(det)); + +#ifdef G4VIS_USE + //visualization manager + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize(); +#endif + + //set user action classes + HistoManager* histo = new HistoManager(); + RunAction* run; + EventAction* event; + + runManager->SetUserAction(run = new RunAction(det,phys,kin,histo)); + runManager->SetUserAction(event = new EventAction(run,histo)); + runManager->SetUserAction(new TrackingAction(det,run,kin,histo)); + runManager->SetUserAction(new SteppingAction(det,run,event,histo)); + + //get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + + if (argc==1) // Define UI terminal for interactive mode + { + G4UIsession* session = 0; +#ifdef G4UI_USE_TCSH + session = new G4UIterminal(new G4UItcsh); +#else + session = new G4UIterminal(); +#endif + session->SessionStart(); + delete session; + } + else // Batch mode + { + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } + + //job termination +#ifdef G4VIS_USE + delete visManager; +#endif + + delete histo; + delete runManager; + + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/TestEm12.in b/examples/extended/electromagnetic/TestEm12/TestEm12.in new file mode 100644 index 0000000000..b60d167d17 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/TestEm12.in @@ -0,0 +1,35 @@ +# $Id: TestEm12.in,v 1.2 2005/07/22 11:48:23 maire Exp $ +# +# no constraint on tracking step +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setMat G4_WATER +/testem/det/setRadius 3 cm +/testem/det/setNbOfLayers 1 +# +/testem/phys/addPhysics standard # em physics +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +# +/process/eLoss/integral 0 +/testem/phys/setCuts 1 mum +# +/gun/particle e- +/gun/energy 4 MeV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName noint.v71 +/testem/histo/setHisto 1 120 0. 2.4 cm #edep profile +/testem/histo/setHisto 2 180 0. 4.5 MeV #total Edep +/testem/histo/setHisto 3 100 0. 3. cm #true track length +/testem/histo/setHisto 4 100 0. 500. mum #true step length +/testem/histo/setHisto 5 200 -3. 3. cm #proj range +/testem/histo/setcsdaRange 2.037 cm +/testem/histo/setHisto 8 120 0. 1.2 none #normalized edep profile +# +/testem/event/printModulo 1000 +# +/run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm12/TestEm12.out b/examples/extended/electromagnetic/TestEm12/TestEm12.out new file mode 100644 index 0000000000..9878ba89bf --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/TestEm12.out @@ -0,0 +1,294 @@ + +************************************************************* + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + + +***** Table : Nb of materials = 8 ***** + + Material: G4_Al density: 2.699 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.896 cm + ---> Element: Al (Al) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Si density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.366 cm + ---> Element: Si (Si) Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Fe density: 7.874 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.757 cm + ---> Element: Fe (Fe) Z = 26.0 N = 55.8 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Ge density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm + ---> Element: Ge (Ge) Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_W density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm + ---> Element: W (W) Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_Pb density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.613 mm + ---> Element: Pb (Pb) Z = 82.0 N = 207.2 A = 207.22 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: G4_AIR density: 1.205 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.921 m + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.01 % Abundance 0.02 % + ---> Element: N (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.53 % Abundance 78.44 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.18 % Abundance 21.07 % + ---> Element: Ar (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % + + Material: G4_WATER H_2O density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.083 cm + ---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.19 % Abundance 66.67 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.81 % Abundance 33.33 % + + +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +Registering model factories... +/run/verbose 2 +# +/testem/det/setMat G4_WATER +/testem/det/setRadius 3 cm +/testem/det/setNbOfLayers 1 +# +/testem/phys/addPhysics standard # em physics +PhysicsList::AddPhysicsList: +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +userDetector->Construct() start. + +--------------------------------------------------------- +---> The Absorber is a sphere of 3 cm radius of G4_WATER divided in 1 slices of 3 cm + +--------------------------------------------------------- +Absorber is registered to the default region. +physicsList->Construct() start. +physicsList->Construct() start. +physicsList->setCut() start. +PhysicsList::SetCuts:CutLength : 1 mm +# +/process/eLoss/integral 0 +/testem/phys/setCuts 1 mum +# +/gun/particle e- +/gun/energy 4 MeV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName noint.v71 +/testem/histo/setHisto 1 120 0. 2.4 cm #edep profile +----> SetHisto 1: dE/dr (MeV/mm) along radius (cm); 120 bins from 0 cm to 2.4 cm +/testem/histo/setHisto 2 180 0. 4.5 MeV #total Edep +----> SetHisto 2: total Energy deposited in absorber (MeV); 180 bins from 0 MeV to 4.5 MeV +/testem/histo/setHisto 3 100 0. 3. cm #true track length +----> SetHisto 3: true track length of the primary particle (cm); 100 bins from 0 cm to 3 cm +/testem/histo/setHisto 4 100 0. 500. mum #true step length +----> SetHisto 4: true step size of the primary particle (mum); 100 bins from 0 mum to 500 mum +/testem/histo/setHisto 5 200 -3. 3. cm #proj range +----> SetHisto 5: projected range of the primary particle (cm); 200 bins from -3 cm to 3 cm +/testem/histo/setcsdaRange 2.037 cm +/testem/histo/setHisto 8 120 0. 1.2 none #normalized edep profile +----> SetHisto 8: d(E/E0)/d(r/r0) along r/r0; 120 bins from 0 none to 1.2 none +# +/testem/event/printModulo 1000 +# +/run/beamOn 10000 + +phot: Total cross sections from Sandia parametrisation. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + +msc: Model variant of multiple scattering for GenericIon + +ionIoni: tables are built for GenericIon + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 0 + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +Region -- appears in world volume + Materials : G4_WATER + Production cuts : gamma 1 mum e- 1 mum e+ 1 mum + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : G4_WATER + Range cuts : gamma 1 mum e- 1 mum e+ 1 mum + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 0 kByte + Total CPU time elapsed for geometry optimisation: 0 seconds +### Run 0 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 9876, 54321 +---------------------------------------- +Start Run processing. + +---> Begin of Event: 0 + +---> Begin of Event: 1000 + +---> Begin of Event: 2000 + +---> Begin of Event: 3000 + +---> Begin of Event: 4000 + +---> Begin of Event: 5000 + +---> Begin of Event: 6000 + +---> Begin of Event: 7000 + +---> Begin of Event: 8000 + +---> Begin of Event: 9000 +Run terminated. +Run Summary + Number of events processed : 10000 + User=1335.25s Real=1555.5s Sys=132.61s + + ======================== run summary ====================== + + The run consists of 10000 e- of 4.00 MeV through 3.00 cm of G4_WATER (density: 1.00 g/cm3 ) + + ============================================================ + + Total Energy deposited = 3.937 MeV +- 227.298 keV + + Track length of primary track = 2.014 cm +- 2.801 mm + Range from EmCalculator = 3.091 cm (from restricted dE/dx) + + Projected range = 1.223 cm +- 4.343 mm + + Nb of steps of primary track = 210.08 +- 26.80 Step size= 95.908 mum +- 7.025 mum + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 451848601, 279672341 +---------------------------------------- +Graphics systems deleted. +Visualization Manager deleting... +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. +RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm12/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm12/include/DetectorConstruction.hh new file mode 100644 index 0000000000..f8211132da --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/DetectorConstruction.hh @@ -0,0 +1,87 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: DetectorConstruction.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +class G4VPhysicalVolume; +class G4Material; +class G4UniformMagField; +class DetectorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + + DetectorConstruction(); + ~DetectorConstruction(); + + public: + + void SetRadius (G4double); + void SetMaterial (G4String); + void SetNbOfLayers (G4int nb); + void SetMagField (G4double); + + G4VPhysicalVolume* Construct(); + void UpdateGeometry(); + + public: + + G4double GetAbsorRadius() {return absorRadius;}; + G4Material* GetAbsorMaterial() {return absorMaterial;}; + G4int GetNbOfLayers() {return nbOfLayers;}; + + void PrintParameters(); + + private: + + G4double absorRadius; + G4Material* absorMaterial; + G4int nbOfLayers; + G4double layerThickness; + G4UniformMagField* magField; + G4VPhysicalVolume* pAbsor; + + DetectorMessenger* detectorMessenger; + + private: + + void DefineMaterials(); + G4VPhysicalVolume* ConstructVolumes(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm12/include/DetectorMessenger.hh similarity index 60% rename from examples/advanced/radioprotection/include/RemSimPrimaryGeneratorMessenger.hh rename to examples/extended/electromagnetic/TestEm12/include/DetectorMessenger.hh index 9222dd1be0..f7e6a5e1f6 100644 --- a/examples/advanced/radioprotection/include/RemSimPrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm12/include/DetectorMessenger.hh @@ -20,47 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: DetectorMessenger.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// ************************************************ -// * * -// * RemSimPrimaryGeneratorMessenger.hh * -// * * -// ************************************************ -// -// $Id: RemSimPrimaryGeneratorMessenger.hh,v 1.6 2005/05/19 13:30:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -//Code developed by: S.Guatelli, guatelli@ge.infn.it -// - -#ifndef RemSimPrimaryGeneratorMessenger_h -#define RemSimPrimaryGeneratorMessenger_h 1 +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class RemSimPrimaryGeneratorAction; -class RemSimRunAction; +class DetectorConstruction; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithoutParameter; -class RemSimPrimaryGeneratorMessenger: public G4UImessenger +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorMessenger: public G4UImessenger { -public: - RemSimPrimaryGeneratorMessenger(RemSimPrimaryGeneratorAction* ); - ~RemSimPrimaryGeneratorMessenger(); - - void SetNewValue(G4UIcommand*, G4String); + public: -private: - RemSimPrimaryGeneratorAction* primary;//pointer to detector - G4UIdirectory* gunDir; - G4UIcmdWithAString* fluxCmd; //change vehicle - G4UIcmdWithAString* particleCmd; //change vehicle - G4UIcmdWithAString* dataCmd; + DetectorMessenger(DetectorConstruction* ); + ~DetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + + DetectorConstruction* Detector; + + G4UIdirectory* testemDir; + G4UIdirectory* detDir; + G4UIcmdWithAString* MaterCmd; + G4UIcmdWithADoubleAndUnit* RadiusCmd; + G4UIcmdWithAnInteger* NbLayersCmd; + G4UIcmdWithADoubleAndUnit* MagFieldCmd; + + G4UIcmdWithoutParameter* UpdateCmd; }; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif diff --git a/examples/novice/N07/include/ExN07StackingAction.hh b/examples/extended/electromagnetic/TestEm12/include/EventAction.hh similarity index 57% rename from examples/novice/N07/include/ExN07StackingAction.hh rename to examples/extended/electromagnetic/TestEm12/include/EventAction.hh index dbf122473e..7e99172efc 100644 --- a/examples/novice/N07/include/ExN07StackingAction.hh +++ b/examples/extended/electromagnetic/TestEm12/include/EventAction.hh @@ -20,41 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: EventAction.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef ExN07StackingAction_H -#define ExN07StackingAction_H 1 +#ifndef EventAction_h +#define EventAction_h 1 +#include "G4UserEventAction.hh" #include "globals.hh" -#include "G4UserStackingAction.hh" -class G4Track; +class RunAction; +class HistoManager; +class EventActionMessenger; -class ExN07StackingAction : public G4UserStackingAction +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventAction : public G4UserEventAction { public: - ExN07StackingAction(); - virtual ~ExN07StackingAction(); + EventAction(RunAction*, HistoManager*); + ~EventAction(); public: - virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); - virtual void PrepareNewEvent(); - + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + void AddEdep(G4double edep) {totalEdep += edep;}; + + void SetDrawFlag(G4String val) {drawFlag = val;}; + void SetPrintModulo(G4int val) {printModulo = val;}; + + private: - static G4int nGamma[6]; - static G4int nElectron[6]; - static G4int nPositron[6]; - static G4double eMinGamma[6]; - static G4double eMinElectron[6]; - static G4double eMinPositron[6]; - - public: - static G4int GetNGamma(G4int i) { return nGamma[i]; } - static G4int GetNElectron(G4int i) { return nElectron[i]; } - static G4int GetNPositron(G4int i) { return nPositron[i]; } - static G4double GetEMinGamma(G4int i) { return eMinGamma[i]; } - static G4double GetEMinElectron(G4int i) { return eMinElectron[i]; } - static G4double GetEMinPositron(G4int i) { return eMinPositron[i]; } + RunAction* runAct; + G4double totalEdep; + G4String drawFlag; + G4int printModulo; + HistoManager* histoManager; + EventActionMessenger* eventMessenger; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif + diff --git a/examples/extended/electromagnetic/TestEm12/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm12/include/EventActionMessenger.hh new file mode 100644 index 0000000000..e27205ad97 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/EventActionMessenger.hh @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: EventActionMessenger.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef EventActionMessenger_h +#define EventActionMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class EventAction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventActionMessenger: public G4UImessenger +{ + public: + EventActionMessenger(EventAction*); + ~EventActionMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + EventAction* eventAction; + G4UIdirectory* eventDir; + G4UIcmdWithAString* DrawCmd; + G4UIcmdWithAnInteger* PrintCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm12/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm12/include/HistoManager.hh new file mode 100644 index 0000000000..3c55c9ebec --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/HistoManager.hh @@ -0,0 +1,97 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HistoManager.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef HistoManager_h +#define HistoManager_h 1 + +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +namespace AIDA { + class IAnalysisFactory; + class ITree; + class IHistogram1D; +} + +class HistoMessenger; + +const G4int MaxHisto = 9; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HistoManager +{ + public: + + HistoManager(); + ~HistoManager(); + + void SetFileName (const G4String& name) { fileName[0] = name;}; + void SetFileType (const G4String& name) { fileType = name;}; + void SetFileOption (const G4String& name) { fileOption = name;}; + void book(); + void save(); + void SetHisto (G4int,G4int,G4double,G4double,const G4String& unit="none"); + void FillHisto(G4int id, G4double e, G4double weight = 1.0); + void RemoveHisto (G4int); + void Scale (G4int, G4double); + + G4bool HistoExist (G4int id) {return exist[id];} + G4double GetHistoUnit(G4int id) {return Unit[id];} + G4double GetBinWidth (G4int id) {return Width[id];} + + void SetcsdaRange(G4double val) {csdaRange = val;}; + G4double GetcsdaRange() {return csdaRange;}; + + private: + + G4String fileName[2]; + G4String fileType; + G4String fileOption; + AIDA::IAnalysisFactory* af; + AIDA::ITree* tree; + AIDA::IHistogram1D* histo[MaxHisto]; + G4bool exist[MaxHisto]; + G4String Label[MaxHisto]; + G4String Title[MaxHisto]; + G4int Nbins[MaxHisto]; + G4double Vmin [MaxHisto]; + G4double Vmax [MaxHisto]; + G4double Unit [MaxHisto]; + G4double Width[MaxHisto]; + G4bool factoryOn; + HistoMessenger* histoMessenger; + + G4double csdaRange; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm12/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm12/include/HistoMessenger.hh new file mode 100644 index 0000000000..202bedb1cb --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/HistoMessenger.hh @@ -0,0 +1,70 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HistoMessenger.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef HistoMessenger_h +#define HistoMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HistoManager; +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HistoMessenger: public G4UImessenger +{ + public: + + HistoMessenger(HistoManager* ); + ~HistoMessenger(); + + void SetNewValue(G4UIcommand* ,G4String ); + + private: + + HistoManager* histoManager; + + G4UIdirectory* histoDir; + G4UIcmdWithAString* factoryCmd; + G4UIcmdWithAString* typeCmd; + G4UIcommand* histoCmd; + G4UIcmdWithAnInteger* rmhistoCmd; + G4UIcmdWithADoubleAndUnit* csdaCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm12/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm12/include/PhysListEmG4v52.hh new file mode 100644 index 0000000000..4ff4710c8e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/PhysListEmG4v52.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v52.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmG4v52_h +#define PhysListEmG4v52_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmG4v52 : public G4VPhysicsConstructor +{ + public: + PhysListEmG4v52(const G4String& name = "g4v52"); + ~PhysListEmG4v52(); + + public: + // This method is dummy for physics. + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm12/include/PhysListEmG4v71.hh b/examples/extended/electromagnetic/TestEm12/include/PhysListEmG4v71.hh new file mode 100644 index 0000000000..c3c5899309 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/PhysListEmG4v71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.hh,v 1.1 2005/10/05 14:14:18 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmG4v71_h +#define PhysListEmG4v71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmG4v71 : public G4VPhysicsConstructor +{ + public: + PhysListEmG4v71(const G4String& name = "g4v71"); + ~PhysListEmG4v71(); + + public: + // This method is dummy for physics + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm12/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm12/include/PhysListEmStandard.hh new file mode 100644 index 0000000000..517500b001 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/PhysListEmStandard.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmStandard.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmStandard_h +#define PhysListEmStandard_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmStandard : public G4VPhysicsConstructor +{ + public: + PhysListEmStandard(const G4String& name = "standard"); + ~PhysListEmStandard(); + + public: + // This method is dummy for physics + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm12/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm12/include/PhysicsList.hh new file mode 100644 index 0000000000..36bf3b1ad4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/PhysicsList.hh @@ -0,0 +1,79 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysicsList.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// +// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysicsList_h +#define PhysicsList_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" + +class StepMax; +class PhysicsListMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsList: public G4VModularPhysicsList +{ + public: + PhysicsList(); + ~PhysicsList(); + + void ConstructParticle(); + + void SetCuts(); + void SetCutForGamma(G4double); + void SetCutForElectron(G4double); + void SetCutForPositron(G4double); + + void AddPhysicsList(const G4String& name); + void ConstructProcess(); + + void AddStepMax(); + StepMax* GetStepMaxProcess() {return stepMaxProcess;}; + + private: + G4double cutForGamma; + G4double cutForElectron; + G4double cutForPositron; + + G4String emName; + G4VPhysicsConstructor* emPhysicsList; + StepMax* stepMaxProcess; + + PhysicsListMessenger* pMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm12/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm12/include/PhysicsListMessenger.hh new file mode 100644 index 0000000000..94875a2729 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/PhysicsListMessenger.hh @@ -0,0 +1,67 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysicsListMessenger.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysicsListMessenger_h +#define PhysicsListMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class PhysicsList; +class G4UIdirectory; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsListMessenger: public G4UImessenger +{ + public: + + PhysicsListMessenger(PhysicsList* ); + ~PhysicsListMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + + PhysicsList* pPhysicsList; + + G4UIdirectory* physDir; + G4UIcmdWithADoubleAndUnit* gammaCutCmd; + G4UIcmdWithADoubleAndUnit* electCutCmd; + G4UIcmdWithADoubleAndUnit* protoCutCmd; + G4UIcmdWithADoubleAndUnit* allCutCmd; + G4UIcmdWithAString* pListCmd; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm12/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm12/include/PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..2013eb2fb1 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/PrimaryGeneratorAction.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PrimaryGeneratorAction.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "G4ParticleGun.hh" +#include "globals.hh" + +class G4Event; +class DetectorConstruction; +class PrimaryGeneratorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); + + public: + void SetRndmBeam(G4bool val) {rndmBeam = val;} + void GeneratePrimaries(G4Event*); + + G4ParticleGun* GetParticleGun() {return particleGun;} + + private: + G4ParticleGun* particleGun; + DetectorConstruction* detector; + G4bool rndmBeam; + PrimaryGeneratorMessenger* gunMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/electromagnetic/TestEm12/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm12/include/PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000..01a47060d8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/PrimaryGeneratorMessenger.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PrimaryGeneratorMessenger.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PrimaryGeneratorMessenger_h +#define PrimaryGeneratorMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class PrimaryGeneratorAction; +class G4UIdirectory; +class G4UIcmdWithABool; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + PrimaryGeneratorMessenger(PrimaryGeneratorAction*); + ~PrimaryGeneratorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + PrimaryGeneratorAction* Action; + G4UIdirectory* gunDir; + G4UIcmdWithABool* RndmCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm12/include/RunAction.hh b/examples/extended/electromagnetic/TestEm12/include/RunAction.hh new file mode 100644 index 0000000000..16830c16e6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/RunAction.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RunAction.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef RunAction_h +#define RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +class G4Run; +class DetectorConstruction; +class PhysicsList; +class PrimaryGeneratorAction; +class HistoManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class RunAction : public G4UserRunAction +{ + public: + RunAction(DetectorConstruction*, PhysicsList*,PrimaryGeneratorAction*, + HistoManager*); + ~RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); + + void AddEdep (G4double e) { Edeposit += e; Edeposit2 += e*e;}; + void AddTrackLength (G4double t) { trackLen += t; trackLen2 += t*t;}; + void AddProjRange (G4double x) { projRange += x; projRange2 += x*x;}; + void AddStepSize (G4int nb, G4double s) + { nbOfSteps += nb; nbOfSteps2 += nb*nb; + stepSize += s ; stepSize2 += s*s; }; + + private: + DetectorConstruction* detector; + PhysicsList* physics; + PrimaryGeneratorAction* kinematic; + HistoManager* histoManager; + + G4double Edeposit, Edeposit2; + G4double trackLen, trackLen2; + G4double projRange, projRange2; + G4int nbOfSteps, nbOfSteps2; + G4double stepSize, stepSize2; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm12/include/StepMax.hh b/examples/extended/electromagnetic/TestEm12/include/StepMax.hh new file mode 100644 index 0000000000..2defacd667 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/StepMax.hh @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: StepMax.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StepMax_h +#define StepMax_h 1 + +#include "globals.hh" +#include "G4VDiscreteProcess.hh" +#include "G4ParticleDefinition.hh" +#include "G4Step.hh" + +class StepMaxMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StepMax : public G4VDiscreteProcess +{ + public: + + StepMax(const G4String& processName = "UserMaxStep"); + ~StepMax(); + + G4bool IsApplicable(const G4ParticleDefinition&); + + void SetMaxStep(G4double); + + G4double GetMaxStep() {return MaxChargedStep;}; + + G4double PostStepGetPhysicalInteractionLength( const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); + + G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + + G4double GetMeanFreePath(const G4Track&, G4double,G4ForceCondition*) + {return DBL_MAX;}; + + private: + + G4double MaxChargedStep; + + StepMaxMessenger* pMess; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm12/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm12/include/StepMaxMessenger.hh new file mode 100644 index 0000000000..e878c62d21 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/StepMaxMessenger.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: StepMaxMessenger.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StepMaxMessenger_h +#define StepMaxMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class StepMax; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StepMaxMessenger: public G4UImessenger +{ + public: + StepMaxMessenger(StepMax*); + ~StepMaxMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + StepMax* stepMax; + G4UIcmdWithADoubleAndUnit* StepMaxCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm12/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm12/include/SteppingAction.hh new file mode 100644 index 0000000000..899a84fc79 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/SteppingAction.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: SteppingAction.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingAction_h +#define SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +class DetectorConstruction; +class RunAction; +class EventAction; +class HistoManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class SteppingAction : public G4UserSteppingAction +{ + public: + SteppingAction(DetectorConstruction*,RunAction*,EventAction*, HistoManager*); + ~SteppingAction(); + + void UserSteppingAction(const G4Step*); + + private: + DetectorConstruction* detector; + RunAction* runAction; + EventAction* eventAction; + HistoManager* histoManager; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm12/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm12/include/SteppingVerbose.hh new file mode 100644 index 0000000000..0b72f96774 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/SteppingVerbose.hh @@ -0,0 +1,50 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: SteppingVerbose.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingVerbose_h +#define SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class SteppingVerbose : public G4SteppingVerbose { + +public: + + SteppingVerbose(); + ~SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm12/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm12/include/TrackingAction.hh new file mode 100644 index 0000000000..f779e58d39 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/include/TrackingAction.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: TrackingAction.hh,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef TrackingAction_h +#define TrackingAction_h 1 + +#include "G4UserTrackingAction.hh" +#include "globals.hh" + +class DetectorConstruction; +class RunAction; +class PrimaryGeneratorAction; +class HistoManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class TrackingAction : public G4UserTrackingAction { + + public: + TrackingAction(DetectorConstruction*, RunAction*, PrimaryGeneratorAction*, + HistoManager*); + ~TrackingAction() {}; + + void PostUserTrackingAction(const G4Track*); + + private: + DetectorConstruction* detector; + RunAction* runAction; + PrimaryGeneratorAction* kinematic; + HistoManager* histoManager; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm12/run01.mac b/examples/extended/electromagnetic/TestEm12/run01.mac new file mode 100644 index 0000000000..01b7d1bb47 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/run01.mac @@ -0,0 +1,30 @@ +# $Id: run01.mac,v 1.1 2005/07/22 11:08:48 maire Exp $ +# +# limit the step size +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setMat G4_WATER +/testem/det/setRadius 3 cm +# +/testem/phys/addPhysics standard # em physics +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +# +/gun/particle e- +/gun/energy 4 MeV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName run01 +/testem/histo/setHisto 1 120 0. 2.4 cm #edep profile +/testem/histo/setHisto 3 100 0. 3. cm #true track length +/testem/histo/setcsdaRange 2.037 cm +/testem/histo/setHisto 8 120 0. 1.2 none #normalized edep profile +# +/testem/stepMax 50 mum +# +/testem/event/printModulo 2000 +# +/run/beamOn 20000 diff --git a/examples/extended/electromagnetic/TestEm12/run02.mac b/examples/extended/electromagnetic/TestEm12/run02.mac new file mode 100644 index 0000000000..48c8fcdd9d --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/run02.mac @@ -0,0 +1,29 @@ +# $Id: run02.mac,v 1.1 2005/07/22 11:08:48 maire Exp $ +# +# limit the step by geometry +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setMat G4_WATER +/testem/det/setRadius 3 cm +/testem/det/setNbOfLayers 150 +# +/testem/phys/addPhysics standard # em physics +###/testem/phys/addPhysics g4v52 # em physics +# +/run/initialize +# +/gun/particle e- +/gun/energy 4 MeV +# +/testem/histo/setFileType hbook +/testem/histo/setFileName run02 +/testem/histo/setHisto 1 120 0. 2.4 cm #edep profile +/testem/histo/setHisto 3 100 0. 3. cm #true track length +/testem/histo/setcsdaRange 2.037 cm +/testem/histo/setHisto 8 120 0. 1.2 none #normalized edep profile +# +/testem/event/printModulo 2000 +# +/run/beamOn 20000 diff --git a/examples/extended/electromagnetic/TestEm12/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm12/src/DetectorConstruction.cc new file mode 100644 index 0000000000..00ae3dcb3f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/DetectorConstruction.cc @@ -0,0 +1,229 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: DetectorConstruction.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" + +#include "G4NistManager.hh" +#include "G4Sphere.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4UniformMagField.hh" + +#include "G4GeometryManager.hh" +#include "G4PhysicalVolumeStore.hh" +#include "G4LogicalVolumeStore.hh" +#include "G4SolidStore.hh" + +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::DetectorConstruction() +{ + // default parameter values + absorRadius = 3*cm; + nbOfLayers = 1; + + absorMaterial = 0; + magField = 0; + pAbsor = 0; + + DefineMaterials(); + SetMaterial("G4_WATER"); + + // create commands for interactive definition of the detector + detectorMessenger = new DetectorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::~DetectorConstruction() +{ delete detectorMessenger;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::Construct() +{ + return ConstructVolumes(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::DefineMaterials() +{ + G4NistManager* man = G4NistManager::Instance(); + + G4bool isotopes = false; + + man->FindOrBuildMaterial("G4_Al", isotopes); + man->FindOrBuildMaterial("G4_Si", isotopes); + man->FindOrBuildMaterial("G4_Fe", isotopes); + man->FindOrBuildMaterial("G4_Ge", isotopes); + man->FindOrBuildMaterial("G4_W" , isotopes); + man->FindOrBuildMaterial("G4_Pb", isotopes); + + man->FindOrBuildMaterial("G4_AIR" , isotopes); + man->FindOrBuildMaterial("G4_WATER", isotopes); + + G4cout << *(G4Material::GetMaterialTable()) << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() +{ + G4GeometryManager::GetInstance()->OpenGeometry(); + G4PhysicalVolumeStore::GetInstance()->Clean(); + G4LogicalVolumeStore::GetInstance()->Clean(); + G4SolidStore::GetInstance()->Clean(); + + // Absorber + // + G4Sphere* + sAbsor = new G4Sphere("Absorber", //name + 0., absorRadius, 0., twopi, 0., pi); //size + + G4LogicalVolume* + lAbsor = new G4LogicalVolume(sAbsor, //solid + absorMaterial, //material + "Absorber"); //name + + pAbsor = new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + lAbsor, //logical volume + "Absorber", //name + 0, //mother volume + false, //no boolean operation + 0); //copy number + + // Layers + // + layerThickness = absorRadius/nbOfLayers; + + for (G4int i=1; i<=nbOfLayers; i++) { + G4Sphere* + sLayer = new G4Sphere("Layer", (i-1)*layerThickness, i*layerThickness, + 0., twopi, 0., pi); + + G4LogicalVolume* + lLayer = new G4LogicalVolume(sLayer, //shape + absorMaterial, //material + "Layer"); //name + + new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + lLayer, //logical volume + "Layer", //name + lAbsor, //mother volume + false, //no boolean operation + i); //copy number + + } + + PrintParameters(); + + // + //always return the root volume + // + return pAbsor; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::PrintParameters() +{ + G4cout << "\n---------------------------------------------------------\n"; + G4cout << "---> The Absorber is a sphere of " + << G4BestUnit(absorRadius,"Length") << " radius of " + << absorMaterial->GetName() << " divided in " << nbOfLayers + << " slices of " << G4BestUnit(layerThickness,"Length") << G4endl; + G4cout << "\n---------------------------------------------------------\n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetRadius(G4double value) +{ + absorRadius = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetMaterial(G4String materialChoice) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + if (pttoMaterial) absorMaterial = pttoMaterial; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetNbOfLayers(G4int value) +{ + nbOfLayers = value; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" + +void DetectorConstruction::SetMagField(G4double fieldValue) +{ + //apply a global uniform magnetic field along Z axis + G4FieldManager* fieldMgr + = G4TransportationManager::GetTransportationManager()->GetFieldManager(); + + if (magField) delete magField; //delete the existing magn field + + if (fieldValue!=0.) // create a new one if non nul + { + magField = new G4UniformMagField(G4ThreeVector(0.,0.,fieldValue)); + fieldMgr->SetDetectorField(magField); + fieldMgr->CreateChordFinder(magField); + } + else + { + magField = 0; + fieldMgr->SetDetectorField(magField); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4RunManager.hh" + +void DetectorConstruction::UpdateGeometry() +{ +G4RunManager::GetRunManager()->DefineWorldVolume(ConstructVolumes()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm12/src/DetectorMessenger.cc new file mode 100644 index 0000000000..b4f50a8555 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/DetectorMessenger.cc @@ -0,0 +1,114 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: DetectorMessenger.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorMessenger.hh" + +#include "DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithoutParameter.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) +:Detector(Det) +{ + testemDir = new G4UIdirectory("/testem/"); + testemDir->SetGuidance(" detector control."); + + detDir = new G4UIdirectory("/testem/det/"); + detDir->SetGuidance("detector construction commands"); + + MaterCmd = new G4UIcmdWithAString("/testem/det/setMat",this); + MaterCmd->SetGuidance("Select material of the box."); + MaterCmd->SetParameterName("choice",false); + MaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + RadiusCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setRadius",this); + RadiusCmd->SetGuidance("Set radius of the absorber"); + RadiusCmd->SetParameterName("Radius",false); + RadiusCmd->SetRange("Radius>0."); + RadiusCmd->SetUnitCategory("Length"); + RadiusCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + NbLayersCmd = new G4UIcmdWithAnInteger("/testem/det/setNbOfLayers",this); + NbLayersCmd->SetGuidance("Set number of layers"); + NbLayersCmd->SetParameterName("NbLayers",false); + NbLayersCmd->SetRange("NbLayers>0"); + NbLayersCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/testem/det/setField",this); + MagFieldCmd->SetGuidance("Define magnetic field."); + MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); + MagFieldCmd->SetParameterName("Bz",false); + MagFieldCmd->SetUnitCategory("Magnetic flux density"); + MagFieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + UpdateCmd = new G4UIcmdWithoutParameter("/testem/det/update",this); + UpdateCmd->SetGuidance("Update calorimeter geometry."); + UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); + UpdateCmd->SetGuidance("if you changed geometrical value(s)."); + UpdateCmd->AvailableForStates(G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::~DetectorMessenger() +{ + delete MaterCmd; + delete RadiusCmd; + delete NbLayersCmd; + delete MagFieldCmd; + delete UpdateCmd; + delete detDir; + delete testemDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == MaterCmd ) + { Detector->SetMaterial(newValue);} + + if( command == RadiusCmd ) + { Detector->SetRadius(RadiusCmd->GetNewDoubleValue(newValue));} + + if( command == NbLayersCmd ) + { Detector->SetNbOfLayers(NbLayersCmd->GetNewIntValue(newValue));} + + if( command == MagFieldCmd ) + { Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + + if( command == UpdateCmd ) + { Detector->UpdateGeometry();} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/src/EventAction.cc b/examples/extended/electromagnetic/TestEm12/src/EventAction.cc new file mode 100644 index 0000000000..a99066bf08 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/EventAction.cc @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: EventAction.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventAction.hh" + +#include "RunAction.hh" +#include "EventActionMessenger.hh" +#include "HistoManager.hh" + +#include "G4Event.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventAction::EventAction(RunAction* run, HistoManager* histo) +:runAct(run), drawFlag("none"), printModulo(10000), histoManager(histo) +{ + eventMessenger = new EventActionMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventAction::~EventAction() +{ + delete eventMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::BeginOfEventAction(const G4Event* evt) +{ + G4int evtNb = evt->GetEventID(); + + //printing survey + if (evtNb%printModulo == 0) + G4cout << "\n---> Begin of Event: " << evtNb << G4endl; + + //energy deposited per event + totalEdep = 0.; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::EndOfEventAction(const G4Event* evt) +{ + //plot energy deposited per event + // + if (totalEdep > 0.) { + runAct->AddEdep(totalEdep); + histoManager->FillHisto(2,totalEdep); + } + + //trajectories + // + if (G4VVisManager::GetConcreteInstance()) + { + G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + for(G4int i=0; iGetTrajectoryContainer()))[i]); + if (drawFlag == "all") trj->DrawTrajectory(1000); + else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) + trj->DrawTrajectory(1000); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm12/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm12/src/EventActionMessenger.cc new file mode 100644 index 0000000000..a1c7cb188c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/EventActionMessenger.cc @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: EventActionMessenger.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventActionMessenger.hh" + +#include "EventAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventActionMessenger::EventActionMessenger(EventAction* EvAct) +:eventAction(EvAct) +{ + eventDir = new G4UIdirectory("/testem/event/"); + eventDir->SetGuidance("event control"); + + DrawCmd = new G4UIcmdWithAString("/testem/event/drawTracks",this); + DrawCmd->SetGuidance("Draw the tracks in the event"); + DrawCmd->SetGuidance(" Choice : none,charged, all"); + DrawCmd->SetParameterName("choice",true); + DrawCmd->SetDefaultValue("all"); + DrawCmd->SetCandidates("none charged all"); + DrawCmd->AvailableForStates(G4State_Idle); + + PrintCmd = new G4UIcmdWithAnInteger("/testem/event/printModulo",this); + PrintCmd->SetGuidance("Print events modulo n"); + PrintCmd->SetParameterName("EventNb",false); + PrintCmd->SetRange("EventNb>0"); + PrintCmd->AvailableForStates(G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventActionMessenger::~EventActionMessenger() +{ + delete DrawCmd; + delete PrintCmd; + delete eventDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventActionMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if(command == DrawCmd) + {eventAction->SetDrawFlag(newValue);} + + if(command == PrintCmd) + {eventAction->SetPrintModulo(PrintCmd->GetNewIntValue(newValue));} + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm12/src/HistoManager.cc new file mode 100644 index 0000000000..8c8996cc21 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/HistoManager.cc @@ -0,0 +1,230 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HistoManager.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "HistoManager.hh" +#include "HistoMessenger.hh" +#include "G4UnitsTable.hh" + +#ifdef G4ANALYSIS_USE +#include "AIDA/AIDA.h" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoManager::HistoManager() +:af(0),tree(0),factoryOn(false) +{ +#ifdef G4ANALYSIS_USE + // Creating the analysis factory + af = AIDA_createAnalysisFactory(); + if(!af) { + G4cout << " HistoManager::HistoManager() :" + << " problem creating the AIDA analysis factory." + << G4endl; + } +#endif + + fileName[0] = "testem12"; + fileType = "hbook"; + fileOption = "--noErrors uncompress"; + // histograms + for (G4int k=0; kcreateTreeFactory(); + tree = tf->create(fileName[1], fileType, readOnly, createNew, fileOption); + delete tf; + if(!tree) { + G4cout << "HistoManager::book() :" + << " problem creating the AIDA tree with " + << " storeName = " << fileName[1] + << " storeType = " << fileType + << " readOnly = " << readOnly + << " createNew = " << createNew + << " options = " << fileOption + << G4endl; + return; + } + + // Creating a histogram factory, whose histograms will be handled by the tree + AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); + + // create selected histograms + for (G4int k=0; kcreateHistogram1D( Label[k], Title[k], + Nbins[k], Vmin[k], Vmax[k]); + factoryOn = true; + } + } + delete hf; + if (factoryOn) + G4cout << "\n----> Histogram Tree is opened in " << fileName[1] << G4endl; +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::save() +{ +#ifdef G4ANALYSIS_USE + if (factoryOn) { + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + G4cout << "\n----> Histogram Tree is saved in " << fileName[1] << G4endl; + + delete tree; + tree = 0; + factoryOn = false; + } +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::FillHisto(G4int ih, G4double e, G4double weight) +{ + if (ih > MaxHisto) { + G4cout << "---> warning from HistoManager::FillHisto() : histo " << ih + << "does not exist; e= " << e << " w= " << weight << G4endl; + return; + } +#ifdef G4ANALYSIS_USE + if(exist[ih]) histo[ih]->fill(e/Unit[ih], weight); +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::SetHisto(G4int ih, + G4int nbins, G4double valmin, G4double valmax, const G4String& unit) +{ + if (ih > MaxHisto) { + G4cout << "---> warning from HistoManager::SetHisto() : histo " << ih + << "does not exist" << G4endl; + return; + } + + const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8" }; + const G4String title[] = + { "dummy", //0 + "dE/dr (MeV/mm) along radius", //1 + "total Energy deposited in absorber", //2 + "true track length of the primary particle", //3 + "true step size of the primary particle", //4 + "projected range of the primary particle", //5 + "true track length of charged secondaries", //6 + "true step size of charged secondaries", //7 + "d(E/E0)/d(r/r0) along r/r0" //8 + }; + + + G4String titl = title[ih]; + G4double vmin = valmin, vmax = valmax; + Unit[ih] = 1.; + + if (unit != "none") { + titl = title[ih] + " (" + unit + ")"; + Unit[ih] = G4UnitDefinition::GetValueOf(unit); + vmin = valmin/Unit[ih]; vmax = valmax/Unit[ih]; + } + + exist[ih] = true; + Label[ih] = id[ih]; + Title[ih] = titl; + Nbins[ih] = nbins; + Vmin[ih] = vmin; + Vmax[ih] = vmax; + Width[ih] = (valmax-valmin)/nbins; + + G4cout << "----> SetHisto " << ih << ": " << titl << "; " + << nbins << " bins from " + << vmin << " " << unit << " to " << vmax << " " << unit << G4endl; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::RemoveHisto(G4int ih) +{ + if (ih > MaxHisto) { + G4cout << "---> warning from HistoManager::RemoveHisto() : histo " << ih + << "does not exist" << G4endl; + return; + } + + histo[ih] = 0; exist[ih] = false; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::Scale(G4int ih, G4double fac) +{ + if (ih > MaxHisto) { + G4cout << "---> warning from HistoManager::RemoveHisto() : histo " << ih + << "does not exist" << G4endl; + return; + } +#ifdef G4ANALYSIS_USE + if(exist[ih]) histo[ih]->scale(fac); +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm12/src/HistoMessenger.cc new file mode 100644 index 0000000000..291bb786b2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/HistoMessenger.cc @@ -0,0 +1,136 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HistoMessenger.cc,v 1.2 2005/11/14 14:37:16 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "HistoMessenger.hh" + +#include + +#include "HistoManager.hh" +#include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoMessenger::HistoMessenger(HistoManager* manager) +:histoManager (manager) +{ + histoDir = new G4UIdirectory("/testem/histo/"); + histoDir->SetGuidance("histograms control"); + + factoryCmd = new G4UIcmdWithAString("/testem/histo/setFileName",this); + factoryCmd->SetGuidance("set name for the histograms file"); + + typeCmd = new G4UIcmdWithAString("/testem/histo/setFileType",this); + typeCmd->SetGuidance("set histograms file type: hbook, root, XML"); + typeCmd->SetCandidates("hbook root XML"); + + histoCmd = new G4UIcommand("/testem/histo/setHisto",this); + histoCmd->SetGuidance("Set bining of the histo number ih :"); + histoCmd->SetGuidance(" nbBins; valMin; valMax; unit (of vmin and vmax)"); + // + G4UIparameter* ih = new G4UIparameter("ih",'i',false); + ih->SetGuidance("histo number : from 1 to MaxHisto"); + ih->SetParameterRange("ih>0"); + histoCmd->SetParameter(ih); + // + G4UIparameter* nbBins = new G4UIparameter("nbBins",'i',false); + nbBins->SetGuidance("number of bins"); + nbBins->SetParameterRange("nbBins>0"); + histoCmd->SetParameter(nbBins); + // + G4UIparameter* valMin = new G4UIparameter("valMin",'d',false); + valMin->SetGuidance("valMin, expressed in unit"); + histoCmd->SetParameter(valMin); + // + G4UIparameter* valMax = new G4UIparameter("valMax",'d',false); + valMax->SetGuidance("valMax, expressed in unit"); + histoCmd->SetParameter(valMax); + // + G4UIparameter* unit = new G4UIparameter("unit",'s',true); + unit->SetGuidance("if omitted, vmin and vmax are assumed dimensionless"); + unit->SetDefaultValue("none"); + histoCmd->SetParameter(unit); + + rmhistoCmd = new G4UIcmdWithAnInteger("/testem/histo/removeHisto",this); + rmhistoCmd->SetGuidance("desactivate histo #id"); + rmhistoCmd->SetParameterName("id",false); + rmhistoCmd->SetRange("id>0"); + + csdaCmd = new G4UIcmdWithADoubleAndUnit("/testem/histo/setcsdaRange",this); + csdaCmd->SetGuidance("Set csda range for normalisation"); + csdaCmd->SetParameterName("csda",false); + csdaCmd->SetRange("csda>0."); + csdaCmd->SetUnitCategory("Length"); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoMessenger::~HistoMessenger() +{ + delete csdaCmd; + delete rmhistoCmd; + delete histoCmd; + delete typeCmd; + delete factoryCmd; + delete histoDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) +{ + if (command == factoryCmd) + histoManager->SetFileName(newValues); + + if (command == typeCmd) + histoManager->SetFileType(newValues); + + if (command == histoCmd) + { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; + const char* t = newValues; + std::istringstream is(t); + is >> ih >> nbBins >> vmin >> vmax >> unts; + G4String unit = unts; + G4double vUnit = 1. ; + if (unit != "none") vUnit = G4UIcommand::ValueOf(unit); + histoManager->SetHisto (ih,nbBins,vmin*vUnit,vmax*vUnit,unit); + } + + if (command == rmhistoCmd) + histoManager->RemoveHisto(rmhistoCmd->GetNewIntValue(newValues)); + + if (command == csdaCmd) + histoManager->SetcsdaRange(csdaCmd->GetNewDoubleValue(newValues)); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm12/src/PhysListEmG4v52.cc new file mode 100644 index 0000000000..c26e92d47f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/PhysListEmG4v52.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v52.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v52.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering52.hh" +#include "G4GammaConversion52.hh" +#include "G4PhotoElectricEffect52.hh" + +#include "G4MultipleScattering52.hh" + +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" +#include "G4eplusAnnihilation52.hh" + +#include "G4MuIonisation52.hh" +#include "G4MuBremsstrahlung52.hh" +#include "G4MuPairProduction52.hh" + +#include "G4hIonisation52.hh" + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v52::PhysListEmG4v52(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v52::~PhysListEmG4v52() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v52::ConstructProcess() +{ + // Add EM processes realised on base of prototype of model approach design + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect52); + pmanager->AddDiscreteProcess(new G4ComptonScattering52); + pmanager->AddDiscreteProcess(new G4GammaConversion52); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering52,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation52, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4MuPairProduction52, -1,-1,4); + + } else if( particleName == "GenericIon" ) { + + pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/src/PhysListEmG4v71.cc b/examples/extended/electromagnetic/TestEm12/src/PhysListEmG4v71.cc new file mode 100644 index 0000000000..e748978a1f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/PhysListEmG4v71.cc @@ -0,0 +1,116 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.cc,v 1.1 2005/10/05 14:14:18 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::PhysListEmG4v71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::~PhysListEmG4v71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v71::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering71,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if( particleName == "GenericIon" ) { + pmanager->AddProcess(new G4MultipleScattering71,-1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering71,-1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandard.cc new file mode 100644 index 0000000000..a3464b40e0 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/PhysListEmStandard.cc @@ -0,0 +1,116 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmStandard.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmStandard.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmStandard::PhysListEmStandard(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmStandard::~PhysListEmStandard() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmStandard::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if( particleName == "GenericIon" ) { + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering,-1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm12/src/PhysicsList.cc new file mode 100644 index 0000000000..7a0c586179 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/PhysicsList.cc @@ -0,0 +1,311 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysicsList.cc,v 1.2 2005/10/05 14:14:18 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" + +#include "PhysListEmStandard.hh" +#include "PhysListEmG4v52.hh" +#include "PhysListEmG4v71.hh" + +#include "G4LossTableManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::PhysicsList() : G4VModularPhysicsList() +{ + G4LossTableManager::Instance(); + defaultCutValue = 1.*mm; + cutForGamma = defaultCutValue; + cutForElectron = defaultCutValue; + cutForPositron = defaultCutValue; + + stepMaxProcess = 0; + + pMessenger = new PhysicsListMessenger(this); + + SetVerboseLevel(1); + + // EM physics + emPhysicsList = new PhysListEmStandard(emName = "standard"); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::~PhysicsList() +{ + delete pMessenger; + delete emPhysicsList; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Bosons +#include "G4ChargedGeantino.hh" +#include "G4Geantino.hh" +#include "G4Gamma.hh" +#include "G4OpticalPhoton.hh" + +// leptons +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4NeutrinoMu.hh" +#include "G4AntiNeutrinoMu.hh" + +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4NeutrinoE.hh" +#include "G4AntiNeutrinoE.hh" + +// Mesons +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4PionZero.hh" +#include "G4Eta.hh" +#include "G4EtaPrime.hh" + +#include "G4KaonPlus.hh" +#include "G4KaonMinus.hh" +#include "G4KaonZero.hh" +#include "G4AntiKaonZero.hh" +#include "G4KaonZeroLong.hh" +#include "G4KaonZeroShort.hh" + +// Baryons +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4Neutron.hh" +#include "G4AntiNeutron.hh" + +// Nuclei +#include "G4Alpha.hh" +#include "G4Deuteron.hh" +#include "G4Triton.hh" +#include "G4He3.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructParticle() +{ +// pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + +// gamma + G4Gamma::GammaDefinition(); + +// optical photon + G4OpticalPhoton::OpticalPhotonDefinition(); + +// leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + +// mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4Eta::EtaDefinition(); + G4EtaPrime::EtaPrimeDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + G4KaonZero::KaonZeroDefinition(); + G4AntiKaonZero::AntiKaonZeroDefinition(); + G4KaonZeroLong::KaonZeroLongDefinition(); + G4KaonZeroShort::KaonZeroShortDefinition(); + +// barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); + +// ions + G4Deuteron::DeuteronDefinition(); + G4Triton::TritonDefinition(); + G4He3::He3Definition(); + G4Alpha::AlphaDefinition(); + G4GenericIon::GenericIonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4ProcessManager.hh" +#include "G4Decay.hh" + +void PhysicsList::ConstructProcess() +{ + // transportation + // + AddTransportation(); + + // electromagnetic physics list + // + emPhysicsList->ConstructProcess(); + + // decay process + // + G4Decay* fDecayProcess = new G4Decay(); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + if (fDecayProcess->IsApplicable(*particle) && !particle->IsShortLived()) { + + pmanager ->AddProcess(fDecayProcess); + + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(fDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(fDecayProcess, idxAtRest); + + } + } + + // step limitation (as a full process) + // + AddStepMax(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::AddPhysicsList(const G4String& name) +{ + if (verboseLevel>-1) { + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + } + + if (name == emName) return; + + if (name == "standard") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmStandard(name); + + } else if (name == "g4v52") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v52(name); + + } else if (name == "g4v71") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v71(name); + + } else { + + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" + << " is not defined" + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMax.hh" + +void PhysicsList::AddStepMax() +{ + // Step limitation seen as a process + stepMaxProcess = new StepMax(); + + theParticleIterator->reset(); + while ((*theParticleIterator)()){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + if (stepMaxProcess->IsApplicable(*particle)) + { + pmanager ->AddDiscreteProcess(stepMaxProcess); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +void PhysicsList::SetCuts() +{ + + if (verboseLevel >0){ + G4cout << "PhysicsList::SetCuts:"; + G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; + } + + // set cut values for gamma at first and for e- second and next for e+, + // because some processes for e+/e- need cut values for gamma + SetCutValue(cutForGamma, "gamma"); + SetCutValue(cutForElectron, "e-"); + SetCutValue(cutForPositron, "e+"); + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForGamma(G4double cut) +{ + cutForGamma = cut; + SetParticleCuts(cutForGamma, G4Gamma::Gamma()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForElectron(G4double cut) +{ + cutForElectron = cut; + SetParticleCuts(cutForElectron, G4Electron::Electron()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForPositron(G4double cut) +{ + cutForPositron = cut; + SetParticleCuts(cutForPositron, G4Positron::Positron()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm12/src/PhysicsListMessenger.cc new file mode 100644 index 0000000000..3cbfbfd1d4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/PhysicsListMessenger.cc @@ -0,0 +1,116 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysicsListMessenger.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsListMessenger.hh" + +#include "PhysicsList.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithAString.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) +:pPhysicsList(pPhys) +{ + physDir = new G4UIdirectory("/testem/phys/"); + physDir->SetGuidance("physics list commands"); + + gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this); + gammaCutCmd->SetGuidance("Set gamma cut."); + gammaCutCmd->SetParameterName("Gcut",false); + gammaCutCmd->SetUnitCategory("Length"); + gammaCutCmd->SetRange("Gcut>0.0"); + gammaCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + electCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setECut",this); + electCutCmd->SetGuidance("Set electron cut."); + electCutCmd->SetParameterName("Ecut",false); + electCutCmd->SetUnitCategory("Length"); + electCutCmd->SetRange("Ecut>0.0"); + electCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + protoCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setPCut",this); + protoCutCmd->SetGuidance("Set positron cut."); + protoCutCmd->SetParameterName("Pcut",false); + protoCutCmd->SetUnitCategory("Length"); + protoCutCmd->SetRange("Pcut>0.0"); + protoCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + allCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setCuts",this); + allCutCmd->SetGuidance("Set cut for all."); + allCutCmd->SetParameterName("cut",false); + allCutCmd->SetUnitCategory("Length"); + allCutCmd->SetRange("cut>0.0"); + allCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + pListCmd = new G4UIcmdWithAString("/testem/phys/addPhysics",this); + pListCmd->SetGuidance("Add modula physics list."); + pListCmd->SetParameterName("PList",false); + pListCmd->AvailableForStates(G4State_PreInit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::~PhysicsListMessenger() +{ + delete gammaCutCmd; + delete electCutCmd; + delete protoCutCmd; + delete allCutCmd; + delete pListCmd; + delete physDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsListMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if( command == gammaCutCmd ) + { pPhysicsList->SetCutForGamma(gammaCutCmd->GetNewDoubleValue(newValue));} + + if( command == electCutCmd ) + { pPhysicsList->SetCutForElectron(electCutCmd->GetNewDoubleValue(newValue));} + + if( command == protoCutCmd ) + { pPhysicsList->SetCutForPositron(protoCutCmd->GetNewDoubleValue(newValue));} + + if( command == allCutCmd ) + { + G4double cut = allCutCmd->GetNewDoubleValue(newValue); + pPhysicsList->SetCutForGamma(cut); + pPhysicsList->SetCutForElectron(cut); + pPhysicsList->SetCutForPositron(cut); + } + + if( command == pListCmd ) + { pPhysicsList->AddPhysicsList(newValue);} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm12/src/PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..a194415e2d --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/PrimaryGeneratorAction.cc @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PrimaryGeneratorAction.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorAction.hh" + +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorMessenger.hh" + +#include "G4Event.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "Randomize.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det) +:detector(det) +{ + particleGun = new G4ParticleGun(1); + G4ParticleDefinition* particle + = G4ParticleTable::GetParticleTable()->FindParticle("e-"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleEnergy(4*MeV); + particleGun->SetParticlePosition(G4ThreeVector()); + particleGun->SetParticleMomentumDirection(G4ThreeVector(1,0,0)); + + rndmBeam = true; + + //create a messenger for this class + gunMessenger = new PrimaryGeneratorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::~PrimaryGeneratorAction() +{ + delete particleGun; + delete gunMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + //randomize the beam, if requested. + // + if (rndmBeam) + { + //distribution uniform in solid angle + // + G4double cosTheta = 2*G4UniformRand() - 1., phi = twopi*G4UniformRand(); + G4double sinTheta = std::sqrt(1. - cosTheta*cosTheta); + G4double ux = sinTheta*std::cos(phi), + uy = sinTheta*std::sin(phi), + uz = cosTheta; + particleGun->SetParticleMomentumDirection(G4ThreeVector(ux,uy,uz)); + } + + particleGun->GeneratePrimaryVertex(anEvent); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm12/src/PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000..7b00fdf5ba --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/PrimaryGeneratorMessenger.cc @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PrimaryGeneratorMessenger.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorMessenger.hh" + +#include "PrimaryGeneratorAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithABool.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( + PrimaryGeneratorAction* Gun) +:Action(Gun) +{ + gunDir = new G4UIdirectory("/testem/gun/"); + gunDir->SetGuidance("gun control"); + + RndmCmd = new G4UIcmdWithABool("/testem/gun/rndm",this); + RndmCmd->SetGuidance("random direction on the beam"); + RndmCmd->SetParameterName("rBeam",true); + RndmCmd->SetDefaultValue(true); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() +{ + delete RndmCmd; + delete gunDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, + G4String newValue) +{ + if (command == RndmCmd) + {Action->SetRndmBeam(RndmCmd->GetNewBoolValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/src/RunAction.cc b/examples/extended/electromagnetic/TestEm12/src/RunAction.cc new file mode 100644 index 0000000000..4742995e46 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/RunAction.cc @@ -0,0 +1,208 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RunAction.cc,v 1.3 2005/12/06 11:34:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "RunAction.hh" +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "StepMax.hh" +#include "PrimaryGeneratorAction.hh" +#include "HistoManager.hh" + +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UnitsTable.hh" +#include "G4EmCalculator.hh" + +#include "Randomize.hh" +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::RunAction(DetectorConstruction* det, PhysicsList* phys, + PrimaryGeneratorAction* kin, HistoManager* histo) +:detector(det),physics(phys),kinematic(kin),histoManager(histo) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::~RunAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + // save Rndm status + G4RunManager::GetRunManager()->SetRandomNumberStore(true); + CLHEP::HepRandom::showEngineStatus(); + + //initialize total energy deposit + // + Edeposit = Edeposit2 = 0.; + + //initialize track legth of primary + // + trackLen = trackLen2 = 0.; + + //initialize projected range + // + projRange = projRange2 = 0.; + + //initialize mean step size + // + nbOfSteps = nbOfSteps2 = 0; stepSize = stepSize2 = 0.; + + //histograms + // + histoManager->book(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::EndOfRunAction(const G4Run* aRun) +{ + std::ios::fmtflags mode = G4cout.flags(); + G4cout.setf(std::ios::fixed,std::ios::floatfield); + + G4int NbofEvents = aRun->GetNumberOfEvent(); + if (NbofEvents == 0) return; + G4double fNbofEvents = double(NbofEvents); + + //run conditions + // + G4Material* material = detector->GetAbsorMaterial(); + G4double density = material->GetDensity(); + + G4ParticleDefinition* particle = kinematic->GetParticleGun() + ->GetParticleDefinition(); + G4String partName = particle->GetParticleName(); + G4double energy = kinematic->GetParticleGun()->GetParticleEnergy(); + + G4cout << "\n ======================== run summary ======================\n"; + + G4int prec = G4cout.precision(2); + + G4cout << "\n The run consists of " << NbofEvents << " "<< partName << " of " + << G4BestUnit(energy,"Energy") << " through " + << G4BestUnit(detector->GetAbsorRadius(),"Length") << " of " + << material->GetName() << " (density: " + << G4BestUnit(density,"Volumic Mass") << ")" << G4endl; + + G4cout << "\n ============================================================\n"; + + //compute total energy deposit + // + Edeposit /= NbofEvents; Edeposit2 /= NbofEvents; + G4double rms = Edeposit2 - Edeposit*Edeposit; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(3); + G4cout + << "\n Total Energy deposited = " << G4BestUnit(Edeposit,"Energy") + << " +- " << G4BestUnit( rms,"Energy") + << G4endl; + + //compute track length of primary track + // + trackLen /= NbofEvents; trackLen2 /= NbofEvents; + rms = trackLen2 - trackLen*trackLen; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(3); + G4cout + << "\n Track length of primary track = " << G4BestUnit(trackLen,"Length") + << " +- " << G4BestUnit( rms,"Length"); + + //compare with csda range + // + G4EmCalculator emCalculator; + G4double csdaRange = 0.; + if (particle->GetPDGCharge() != 0.) + csdaRange = emCalculator.GetRange(energy,particle,material); + G4cout + << "\n Range from EmCalculator = " << G4BestUnit(csdaRange,"Length") + << " (from restricted dE/dx)" << G4endl; + + //compute projected range of primary track + // + projRange /= NbofEvents; projRange2 /= NbofEvents; + rms = projRange2 - projRange*projRange; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout + << "\n Projected range = " << G4BestUnit(projRange,"Length") + << " +- " << G4BestUnit( rms,"Length") + << G4endl; + + //nb of steps and step size of primary track + // + G4double fNbSteps = nbOfSteps/fNbofEvents, fNbSteps2 = nbOfSteps2/fNbofEvents; + rms = fNbSteps2 - fNbSteps*fNbSteps; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(2); + G4cout << "\n Nb of steps of primary track = " << fNbSteps << " +- " << rms; + + stepSize /= NbofEvents; stepSize2 /= NbofEvents; + rms = stepSize2 - stepSize*stepSize; + if (rms>0.) rms = std::sqrt(rms); else rms = 0.; + + G4cout.precision(3); + G4cout + << "\t Step size= " << G4BestUnit(stepSize,"Length") + << " +- " << G4BestUnit( rms,"Length") + << G4endl; + + // normalize histogram of longitudinal energy profile + // + G4int ih = 1; + G4double binWidth = histoManager->GetBinWidth(ih); + G4double fac = (1./(NbofEvents*binWidth))*(mm/MeV); + histoManager->Scale(ih,fac); + + // normalize histogram d(E/E0)/d(r/r0) + // + ih = 8; + binWidth = histoManager->GetBinWidth(ih); + fac = 1./(NbofEvents*binWidth*energy); + histoManager->Scale(ih,fac); + + // reset default formats + G4cout.setf(mode,std::ios::floatfield); + G4cout.precision(prec); + + // save histograms + histoManager->save(); + + // show Rndm status + CLHEP::HepRandom::showEngineStatus(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/src/StepMax.cc b/examples/extended/electromagnetic/TestEm12/src/StepMax.cc new file mode 100644 index 0000000000..4770347a77 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/StepMax.cc @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: StepMax.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMax.hh" +#include "StepMaxMessenger.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMax::StepMax(const G4String& processName) + : G4VDiscreteProcess(processName),MaxChargedStep(DBL_MAX) +{ + pMess = new StepMaxMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMax::~StepMax() { delete pMess; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool StepMax::IsApplicable(const G4ParticleDefinition& particle) +{ + return (particle.GetPDGCharge() != 0. && !particle.IsShortLived()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void StepMax::SetMaxStep(G4double step) {MaxChargedStep = step;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double StepMax::PostStepGetPhysicalInteractionLength( const G4Track&, + G4double, + G4ForceCondition* condition ) +{ + // condition is set to "Not Forced" + *condition = NotForced; + + return MaxChargedStep; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) +{ + // do nothing + aParticleChange.Initialize(aTrack); + return &aParticleChange; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm12/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm12/src/StepMaxMessenger.cc new file mode 100644 index 0000000000..941f0eded0 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/StepMaxMessenger.cc @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: StepMaxMessenger.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMaxMessenger.hh" + +#include "StepMax.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMaxMessenger::StepMaxMessenger(StepMax* stepM) +:stepMax(stepM) +{ + StepMaxCmd = new G4UIcmdWithADoubleAndUnit("/testem/stepMax",this); + StepMaxCmd->SetGuidance("Set max allowed step length"); + StepMaxCmd->SetParameterName("mxStep",false); + StepMaxCmd->SetRange("mxStep>0."); + StepMaxCmd->SetUnitCategory("Length"); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StepMaxMessenger::~StepMaxMessenger() +{ + delete StepMaxCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void StepMaxMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if (command == StepMaxCmd) + { stepMax->SetMaxStep(StepMaxCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm12/src/SteppingAction.cc new file mode 100644 index 0000000000..272ceb0d1e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/SteppingAction.cc @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: SteppingAction.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingAction.hh" +#include "DetectorConstruction.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "HistoManager.hh" + +#include "G4SteppingManager.hh" +#include "G4VProcess.hh" +#include "G4ParticleTypes.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::SteppingAction(DetectorConstruction* det, RunAction* RuAct, + EventAction* event, HistoManager* histo) +:detector(det), runAction(RuAct), eventAction(event), histoManager(histo) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::~SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingAction::UserSteppingAction(const G4Step* aStep) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if (edep <= 0.) return; + + //total energy deposit in absorber + // + eventAction->AddEdep(edep); + + //longitudinal profile of deposited energy + // + const G4StepPoint* prePoint = aStep->GetPreStepPoint(); + const G4StepPoint* postPoint = aStep->GetPostStepPoint(); + + G4ThreeVector point = (prePoint->GetPosition() + postPoint->GetPosition())/2; + G4double r = point.mag(); + histoManager->FillHisto(1, r, edep); + + G4double r0 = histoManager->GetcsdaRange(); + histoManager->FillHisto(8, r/r0, edep); + + //step size of primary particle or charged secondaries + // + G4double steplen = aStep->GetStepLength(); + const G4Track* track = aStep->GetTrack(); + if (track->GetTrackID() == 1) histoManager->FillHisto(4, steplen); + else if (track->GetDefinition()->GetPDGCharge() != 0.) + histoManager->FillHisto(7, steplen); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm12/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm12/src/SteppingVerbose.cc new file mode 100644 index 0000000000..d090ef009b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/SteppingVerbose.cc @@ -0,0 +1,177 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: SteppingVerbose.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingVerbose::SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingVerbose::~SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingVerbose::StepInfo() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << std::setw( 5) << "#Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + } + + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; + + // if( fStepStatus != fWorldBoundary){ + if( fTrack->GetNextVolume() != 0 ) { + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } + + if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){ + G4cout << " " + << std::setw(10) << fStep->GetPostStepPoint() + ->GetProcessDefinedStep()->GetProcessName(); + } else { + G4cout << " UserLimit"; + } + + G4cout << G4endl; + + if( verboseLevel == 2 ){ + G4int tN2ndariesTot = fN2ndariesAtRestDoIt + + fN2ndariesAlongStepDoIt + + fN2ndariesPostStepDoIt; + if(tN2ndariesTot>0){ + G4cout << " :----- List of 2ndaries - " + << "#SpawnInStep=" << std::setw(3) << tN2ndariesTot + << "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt + << ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt + << ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt + << "), " + << "#SpawnTotal=" << std::setw(3) << (*fSecondary).size() + << " ---------------" + << G4endl; + + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); lp1++){ + G4cout << " : " + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") + << std::setw(10) + << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); + G4cout << G4endl; + } + + G4cout << " :-----------------------------" + << "----------------------------------" + << "-- EndOf2ndaries Info ---------------" + << G4endl; + } + } + + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingVerbose::TrackingStarted() +{ + + CopyState(); +G4int prec = G4cout.precision(3); + if( verboseLevel > 0 ){ + + G4cout << std::setw( 5) << "Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; + + if(fTrack->GetNextVolume()){ + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } + G4cout << " initStep" << G4endl; + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm12/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm12/src/TrackingAction.cc new file mode 100644 index 0000000000..357cdb08a0 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/src/TrackingAction.cc @@ -0,0 +1,79 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: TrackingAction.cc,v 1.1 2005/07/22 11:08:48 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TrackingAction.hh" + +#include "DetectorConstruction.hh" +#include "RunAction.hh" +#include "PrimaryGeneratorAction.hh" +#include "HistoManager.hh" + +#include "G4Track.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction(DetectorConstruction* det, RunAction* run, + PrimaryGeneratorAction* kin, HistoManager* histo) +:detector(det), runAction(run), kinematic(kin), histoManager(histo) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction(const G4Track* track) +{ + G4int trackID = track->GetTrackID(); + + //track length of primary particle or charged secondaries + // + G4double tracklen = track->GetTrackLength(); + if (trackID == 1) { + runAction->AddTrackLength(tracklen); + histoManager->FillHisto(3, tracklen); + } else if (track->GetDefinition()->GetPDGCharge() != 0.) + histoManager->FillHisto(6, tracklen); + + //extract projected range of primary particle + // + if (trackID == 1) { + G4double pr = (track->GetPosition())* + (kinematic->GetParticleGun()->GetParticleMomentumDirection()); + runAction->AddProjRange(pr); + histoManager->FillHisto(5, pr); + } + + //mean step size of primary particle + // + if (trackID == 1) { + G4int nbOfSteps = track->GetCurrentStepNumber(); + G4double stepSize = tracklen/nbOfSteps; + runAction->AddStepSize(nbOfSteps,stepSize); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm12/vis.mac b/examples/extended/electromagnetic/TestEm12/vis.mac new file mode 100644 index 0000000000..1e288c5f4c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm12/vis.mac @@ -0,0 +1,33 @@ +# +# Macro file for the initialization phase of "TestEm6.cc" +# +# Sets some default verbose +# and initializes the graphic. +# +/control/verbose 2 +/run/verbose 2 +# +/run/initialize +# +# Create empty scene ("world" is default) +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open OGLIX +# +#/vis/open DAWNFILE +# +# Draw scene +/vis/viewer/set/style surface +/vis/viewer/zoom 1.4 +/vis/viewer/flush +# +# for drawing the tracks +# if too many tracks cause core dump => storeTrajectory 0 +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate +# +/testem/event/drawTracks all + diff --git a/examples/extended/electromagnetic/TestEm2/History b/examples/extended/electromagnetic/TestEm2/History index d81ec2654f..f6fde6e549 100644 --- a/examples/extended/electromagnetic/TestEm2/History +++ b/examples/extended/electromagnetic/TestEm2/History @@ -1,4 +1,4 @@ -$Id: History,v 1.55 2005/06/08 14:26:10 maire Exp $ +$Id: History,v 1.59 2005/12/06 11:37:08 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,19 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +22-11-05 mma (testem2-V07-01-01) +- update README for OpenScientist + +08 May 05: V.Ivant (testem2-V07-01-00) +- Used updated PhysicsList with g4v71 +- Add protection for the case, when histogram tree is not created + +07-07-05 mma +- vis.mac : /vis/viewer/set/style surface 08-06-05 mma (testem2-V07-00-02) - RunAction : histo : option --noErrors for hbook files diff --git a/examples/extended/electromagnetic/TestEm2/README b/examples/extended/electromagnetic/TestEm2/README index 8620606f7c..86362d396e 100644 --- a/examples/extended/electromagnetic/TestEm2/README +++ b/examples/extended/electromagnetic/TestEm2/README @@ -1,4 +1,4 @@ -$Id: README,v 1.18 2005/03/02 18:39:52 maire Exp $ +$Id: README,v 1.19 2005/11/22 17:11:31 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -151,32 +151,28 @@ $Id: README,v 1.18 2005/03/02 18:39:52 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.cc b/examples/extended/electromagnetic/TestEm2/TestEm2.cc index f32ff56a69..3b7030cf8b 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.cc +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm2.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm2.cc,v 1.10 2005/12/06 11:37:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -51,7 +51,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.in b/examples/extended/electromagnetic/TestEm2/TestEm2.in index 2b29e053a1..311e8d2575 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.in +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.in @@ -1,4 +1,4 @@ -# $Id: TestEm2.in,v 1.17 2004/11/29 14:49:26 vnivanch Exp $ +# $Id: TestEm2.in,v 1.18 2005/11/22 17:11:31 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -24,7 +24,7 @@ /testem/phys/setCuts 5.0 mm # /run/initialize -/testem/phys/verbose -1 +/testem/phys/verbose 0 # /gun/particle e- /gun/energy 1 GeV @@ -32,5 +32,3 @@ /testem/event/printModulo 20 # /run/beamOn 100 -# - diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out index c1d9d1e615..60980a11a6 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.out +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -74,6 +74,8 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... /run/verbose 1 # /testem/det/setMat Water @@ -94,7 +96,7 @@ Absorber is 3.60564 m of Water 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 % -/testem/phys/verbose -1 +/testem/phys/verbose 0 # /gun/particle e- /gun/energy 1 GeV @@ -134,20 +136,20 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=58.13s Real=60.09s Sys=0.92s + User=75.19s Real=80.12s Sys=4.01s LATERAL PROFILE CUMULATIVE LATERAL PROFILE bin Mean rms bin Mean rms - 0.00-> 1.11 radl: 15.05% 6.99% 0-> 1.11 radl: 15.05% 6.99% - 1.11-> 2.22 radl: 25.82% 9.85% 0-> 2.22 radl: 40.87% 13.91% - 2.22-> 3.33 radl: 22.14% 8.93% 0-> 3.33 radl: 63.00% 15.88% - 3.33-> 4.44 radl: 13.84% 7.58% 0-> 4.44 radl: 76.84% 15.82% - 4.44-> 5.55 radl: 7.76% 6.82% 0-> 5.55 radl: 84.60% 12.95% - 5.55-> 6.66 radl: 4.37% 5.19% 0-> 6.66 radl: 88.97% 9.93% - 6.66-> 7.77 radl: 2.50% 4.71% 0-> 7.77 radl: 91.47% 6.97% - 7.77-> 8.88 radl: 1.54% 3.28% 0-> 8.88 radl: 93.02% 4.92% - 8.88-> 9.99 radl: 0.90% 2.14% 0-> 9.99 radl: 93.92% 4.14% + 0.00-> 1.11 radl: 13.80% 5.17% 0-> 1.11 radl: 13.80% 5.17% + 1.11-> 2.22 radl: 25.15% 9.32% 0-> 2.22 radl: 38.95% 11.64% + 2.22-> 3.33 radl: 22.41% 8.61% 0-> 3.33 radl: 61.36% 13.79% + 3.33-> 4.44 radl: 14.23% 7.09% 0-> 4.44 radl: 75.60% 13.32% + 4.44-> 5.55 radl: 8.69% 6.14% 0-> 5.55 radl: 84.29% 11.30% + 5.55-> 6.66 radl: 4.85% 5.53% 0-> 6.66 radl: 89.14% 7.59% + 6.66-> 7.77 radl: 2.95% 4.05% 0-> 7.77 radl: 92.09% 5.85% + 7.77-> 8.88 radl: 0.94% 1.48% 0-> 8.88 radl: 93.02% 5.56% + 8.88-> 9.99 radl: 0.83% 2.09% 0-> 9.99 radl: 93.85% 4.83% @@ -155,29 +157,28 @@ Run Summary bin Mean rms bin Mean rms - 0.00-> 0.11 radl: 62.23% 11.82% 0-> 0.11 radl: 62.23% 11.82% - 0.11-> 0.22 radl: 17.27% 6.51% 0-> 0.22 radl: 79.50% 9.78% - 0.22-> 0.33 radl: 6.86% 4.16% 0-> 0.33 radl: 86.36% 7.83% - 0.33-> 0.44 radl: 3.54% 2.77% 0-> 0.44 radl: 89.90% 6.68% - 0.44-> 0.56 radl: 2.53% 2.59% 0-> 0.56 radl: 92.42% 4.99% - 0.56-> 0.67 radl: 1.50% 2.10% 0-> 0.67 radl: 93.92% 4.14% + 0.00-> 0.11 radl: 61.79% 10.22% 0-> 0.11 radl: 61.79% 10.22% + 0.11-> 0.22 radl: 17.45% 6.00% 0-> 0.22 radl: 79.24% 8.55% + 0.22-> 0.33 radl: 7.11% 3.87% 0-> 0.33 radl: 86.36% 7.32% + 0.33-> 0.44 radl: 4.03% 3.07% 0-> 0.44 radl: 90.38% 6.18% + 0.44-> 0.56 radl: 2.26% 1.87% 0-> 0.56 radl: 92.65% 5.34% + 0.56-> 0.67 radl: 1.21% 1.62% 0-> 0.67 radl: 93.85% 4.83% SUMMARY - energy deposit : 93.92 % E0 +- 4.14 % E0 - charged traklen: 13.64 radl +- 0.61 radl - neutral traklen: 194.44 radl +- 22.06 radl + energy deposit : 93.85 % E0 +- 4.83 % E0 + charged traklen: 13.66 radl +- 0.70 radl + neutral traklen: 195.69 radl +- 20.60 radl --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1847571276, 486755118 + Current couple of seeds = 838615949, 391507846 ---------------------------------------- <<<>>> 100 events for Total Energy in Absorber -Edep: 0.9392035 delEdep= -0.0019965033 nrms= -0.40661981 -Erms: 0.041390078 delErms= -0.0077099222 nrms= -1.5702489 +Edep: 0.93853143 delEdep= -0.0026685677 nrms= -0.54349647 +Erms: 0.04828026 delErms= -0.00081973999 nrms= -0.16695316 <<<>>> IS ACCEPTED -# Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm2/geant3/run01.dat b/examples/extended/electromagnetic/TestEm2/geant3/run01.dat index dc55bb72c2..2187f1a196 100644 --- a/examples/extended/electromagnetic/TestEm2/geant3/run01.dat +++ b/examples/extended/electromagnetic/TestEm2/geant3/run01.dat @@ -10,8 +10,9 @@ TRIG 500 KINE 3 (Itype) 5. (Ekine) DEBUG 10 5 10 SWIT 0 (draw) 1 (save) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-03 (cutneu/had/muo) - 2*84.8e-6 (bcute/m) 2*1.13e-3 (dcute/m) +ERAN 1.e-6 (ekmin) 10.e+3 (ekmax) 100 (nekbin) +CUTS 1.0e-6 (cutgam) 1.0e-6 (cutele) 3*10.e-03 (cutneu/had/muo) + 2*84.8e-6 (bcute/m) 2*1.13e-3 (dcute/m) LOSS 1 HADR 0 ABAN 0 diff --git a/examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh index cdfade8cb6..502f3cb8a3 100644 --- a/examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/DecaysBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh index 8e9c1c2004..fadcb7a0bc 100644 --- a/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.6 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh index 34a60b20c8..ded03d87b6 100644 --- a/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.5 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/EmAcceptance.hh b/examples/extended/electromagnetic/TestEm2/include/EmAcceptance.hh index 258624c518..bb05f27db8 100644 --- a/examples/extended/electromagnetic/TestEm2/include/EmAcceptance.hh +++ b/examples/extended/electromagnetic/TestEm2/include/EmAcceptance.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmAcceptance.hh,v 1.2 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/EventAction.hh b/examples/extended/electromagnetic/TestEm2/include/EventAction.hh index 63bc8e7b64..d85a7d87d5 100644 --- a/examples/extended/electromagnetic/TestEm2/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.2 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh index 28ee4e1295..1fb6639a09 100644 --- a/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/17 10:51:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh index d3657b733d..67200a9980 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh index b2c57743c1..c958e73ab1 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.hh,v 1.1 2004/05/04 08:32:48 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder71.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder71.hh new file mode 100644 index 0000000000..61a3545cf2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmHadronBuilder71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmHadronBuilder71.hh,v 1.1 2005/10/03 01:59:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4EmHadronBuilder71_h +#define G4EmHadronBuilder71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmHadronBuilder71 : public G4VPhysicsConstructor +{ +public: + G4EmHadronBuilder71(const G4String& name = "EM_stand_had"); + virtual ~G4EmHadronBuilder71(); + +public: + // This method is dummy for physics + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + +private: + + // hide assignment operator + G4EmHadronBuilder71 & operator=(const G4EmHadronBuilder71 &right); + G4EmHadronBuilder71(const G4EmHadronBuilder71&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh index e619c38cb8..1bd3238087 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmHighEnergyBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHighEnergyBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh index 8bb132c09b..5336357606 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh index 4411e6a87c..18ab8aa4fc 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.hh,v 1.1 2004/05/04 08:32:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder71.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder71.hh new file mode 100644 index 0000000000..cd0198d463 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmMuonBuilder71.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmMuonBuilder71.hh,v 1.1 2005/10/03 01:59:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4EmMuonBuilder71_h +#define G4EmMuonBuilder71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmMuonBuilder71 : public G4VPhysicsConstructor +{ +public: + G4EmMuonBuilder71(const G4String& name = "EM_stan_muons"); + virtual ~G4EmMuonBuilder71(); + +public: + // This method is dummy for physics + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + +private: + + // hide assignment operator + G4EmMuonBuilder71 & operator=(const G4EmMuonBuilder71 &right); + G4EmMuonBuilder71(const G4EmMuonBuilder71&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh index e76806c41c..93bb7661ae 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.hh,v 1.2 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh index cb88001463..caf1be8e8b 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.hh,v 1.1 2004/05/04 08:32:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder70.hh b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder71.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder70.hh rename to examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder71.hh index f945d59a84..6b94dd2181 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder70.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4EmQEDBuilder71.hh @@ -21,25 +21,25 @@ // ******************************************************************** // // -// $Id: G4EmQEDBuilder70.hh,v 1.1 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmQEDBuilder71.hh,v 1.1 2005/10/03 01:59:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef G4EmQEDBuilder70_h -#define G4EmQEDBuilder70_h 1 +#ifndef G4EmQEDBuilder71_h +#define G4EmQEDBuilder71_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4EmQEDBuilder70 : public G4VPhysicsConstructor +class G4EmQEDBuilder71 : public G4VPhysicsConstructor { public: - G4EmQEDBuilder70(const G4String& name = "EM_stan_QED"); - virtual ~G4EmQEDBuilder70(); + G4EmQEDBuilder71(const G4String& name = "EM_stan_QED"); + virtual ~G4EmQEDBuilder71(); public: // This method is dummy for physics @@ -53,8 +53,8 @@ public: private: // hide assignment operator - G4EmQEDBuilder70 & operator=(const G4EmQEDBuilder70 &right); - G4EmQEDBuilder70(const G4EmQEDBuilder70&); + G4EmQEDBuilder71 & operator=(const G4EmQEDBuilder71 &right); + G4EmQEDBuilder71(const G4EmQEDBuilder71&); }; diff --git a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh index 1789612ac4..11c7128773 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.hh,v 1.1 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh index a74cbb03d8..0e4d3e6f4a 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.hh,v 1.1 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh index 4008fb4e29..f7ed91616b 100644 --- a/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh +++ b/examples/extended/electromagnetic/TestEm2/include/G4StepLimiterPerRegion.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.hh,v 1.1 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh b/examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh index 2a69b35776..a38b47cd7d 100644 --- a/examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh +++ b/examples/extended/electromagnetic/TestEm2/include/ParticlesBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.hh,v 1.3 2004/11/24 13:17:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh index 753edffd61..0e816f84c9 100644 --- a/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.5 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Modified: // diff --git a/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh index d834607f6c..8fbaae0c5b 100644 --- a/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.3 2004/11/29 14:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh index cf174b25aa..6db7384b2b 100644 --- a/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/RunAction.hh b/examples/extended/electromagnetic/TestEm2/include/RunAction.hh index d49349acff..e8e0658fda 100644 --- a/examples/extended/electromagnetic/TestEm2/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.7 2005/03/02 18:39:52 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/RunActionMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/RunActionMessenger.hh index c3ae289f56..5917c19fc3 100644 --- a/examples/extended/electromagnetic/TestEm2/include/RunActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/RunActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunActionMessenger.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm2/include/SteppingAction.hh index 8a4efdce54..24aa37b185 100644 --- a/examples/extended/electromagnetic/TestEm2/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm2/include/SteppingVerbose.hh index f0c9f6e84b..f34339d056 100644 --- a/examples/extended/electromagnetic/TestEm2/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm2/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.2 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm2/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm2/include/TrackingAction.hh index b4e469bdcd..e37400cd12 100644 --- a/examples/extended/electromagnetic/TestEm2/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.3 2004/09/17 10:51:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/run01.mac b/examples/extended/electromagnetic/TestEm2/run01.mac index b790c8582f..e43aff5bf9 100644 --- a/examples/extended/electromagnetic/TestEm2/run01.mac +++ b/examples/extended/electromagnetic/TestEm2/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.19 2005/06/08 14:26:10 maire Exp $ +# $Id: run01.mac,v 1.20 2005/11/22 17:11:31 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -13,7 +13,7 @@ /testem/det/setRbin 20 0.25 # /testem/phys/addPhysics standard -####/testem/phys/addPhysics g4v52 +#### /testem/phys/addPhysics g4v71 # /testem/phys/setCuts 1 mm # diff --git a/examples/extended/electromagnetic/TestEm2/run01.out b/examples/extended/electromagnetic/TestEm2/run01.out index 0ed21555c6..c36439ac51 100644 --- a/examples/extended/electromagnetic/TestEm2/run01.out +++ b/examples/extended/electromagnetic/TestEm2/run01.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (27-August-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc index 7bcf6a4db6..c743f4a9be 100644 --- a/examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/DecaysBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.cc,v 1.2 2004/11/24 13:18:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc index a8adaf28f0..4f4bc81df3 100644 --- a/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.cc,v 1.7 2004/06/18 15:43:41 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc index 433112dd68..4239f1942e 100644 --- a/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.7 2004/09/17 10:51:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/EmAcceptance.cc b/examples/extended/electromagnetic/TestEm2/src/EmAcceptance.cc index a3f0d6f23a..330d743fc1 100644 --- a/examples/extended/electromagnetic/TestEm2/src/EmAcceptance.cc +++ b/examples/extended/electromagnetic/TestEm2/src/EmAcceptance.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmAcceptance.cc,v 1.4 2004/12/02 14:57:14 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/EventAction.cc b/examples/extended/electromagnetic/TestEm2/src/EventAction.cc index 1392ae3e20..2babcf8e48 100644 --- a/examples/extended/electromagnetic/TestEm2/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.2 2004/09/17 10:51:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc index 6c322ff154..b71d7a826a 100644 --- a/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: EventActionMessenger.cc,v 1.2 2004/09/17 10:51:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc index c70a408be6..619e33fad3 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.cc,v 1.2 2004/11/24 13:18:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc index 002e12407f..46825aa028 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.cc,v 1.1 2004/05/04 08:33:32 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder71.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder71.cc new file mode 100644 index 0000000000..ab62fd4b74 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmHadronBuilder71.cc @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmHadronBuilder71.cc,v 1.1 2005/10/03 01:59:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmHadronBuilder71 +// +// Author: V.Ivanchenko 03.10.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4EmHadronBuilder71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +#include "G4Electron.hh" +#include "G4Proton.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmHadronBuilder71::G4EmHadronBuilder71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmHadronBuilder71::~G4EmHadronBuilder71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmHadronBuilder71::ConstructParticle() +{ + G4Electron::Electron(); + G4Proton::Proton(); + G4GenericIon::GenericIon(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmHadronBuilder71::ConstructProcess() +{ + // Add standard EM Processes + theParticleIterator->reset(); + + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + + if(particle->GetPDGMass() > 110.*MeV) { + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "GenericIon" || + particleName == "alpha" || + particleName == "He3") { + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); + + } else if (!particle->IsShortLived() && + particle->GetPDGCharge() != 0.0 ) { + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4hIonisation, -1, 2, 2); + } + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc index f48ac87b9a..260f3677d6 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmHighEnergyBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHighEnergyBuilder.cc,v 1.2 2004/11/24 13:18:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc index c1b9919d7f..1698f1ea1f 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.cc,v 1.4 2004/12/06 16:39:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc index a127844ef0..58cb2befed 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.cc,v 1.1 2004/05/04 08:33:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder71.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder71.cc new file mode 100644 index 0000000000..3241971fd1 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmMuonBuilder71.cc @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmMuonBuilder71.cc,v 1.1 2005/10/03 01:59:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmMuonBuilder71 +// +// Author: V.Ivanchenko 03.10.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4EmMuonBuilder71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4MultipleScattering.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmMuonBuilder71::G4EmMuonBuilder71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmMuonBuilder71::~G4EmMuonBuilder71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmMuonBuilder71::ConstructParticle() +{ + // Minimal set of particles + G4Gamma::Gamma(); + G4Electron::Electron(); + G4Positron::Positron(); + G4MuonPlus::MuonPlus(); + G4MuonMinus::MuonMinus(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmMuonBuilder71::ConstructProcess() +{ + // Add standard EM Processes for mu+ + const G4ParticleDefinition* particle = G4MuonPlus::MuonPlus(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1, 4); + + + // Add standard EM Processes for mu- + particle = G4MuonMinus::MuonMinus(); + pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1, 4); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc index ad7a5a3785..2fddb945b8 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EmQEDBuilder.cc,v 1.2 2004/11/24 13:18:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmQEDBuilder.cc,v 1.3 2005/11/22 17:11:31 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -84,17 +84,17 @@ void G4EmQEDBuilder::ConstructProcess() G4ParticleDefinition* particle = G4Gamma::Gamma(); G4ProcessManager* pmanager = particle->GetProcessManager(); - pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() ); - pmanager->AddDiscreteProcess( new G4ComptonScattering() ); - pmanager->AddDiscreteProcess( new G4GammaConversion() ); + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect() ); + pmanager->AddDiscreteProcess(new G4ComptonScattering() ); + pmanager->AddDiscreteProcess(new G4GammaConversion() ); // Add standard EM Processes for e- particle = G4Electron::Electron(); pmanager = particle->GetProcessManager(); - + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); // Add standard EM Processes for e+ particle = G4Positron::Positron(); @@ -102,9 +102,8 @@ void G4EmQEDBuilder::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc index 262541dbd6..c10cb64f9f 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.cc,v 1.2 2005/05/08 16:12:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.cc b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder71.cc similarity index 78% rename from physics_lists/electromagnetic/standard/G4EmQEDBuilder70.cc rename to examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder71.cc index 075d06266a..5a73846d36 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4EmQEDBuilder71.cc @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4EmQEDBuilder70.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmQEDBuilder71.cc,v 1.1 2005/10/03 01:59:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // -// ClassName: G4EmQEDBuilder70 +// ClassName: G4EmQEDBuilder71 // -// Author: V.Ivanchenko 03.05.2004 +// Author: V.Ivanchenko 03.10.2005 // // Modified: // @@ -38,7 +38,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4EmQEDBuilder70.hh" +#include "G4EmQEDBuilder71.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -46,11 +46,11 @@ #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" -#include "G4MultipleScattering.hh" +#include "G4MultipleScattering71.hh" #include "G4eIonisation.hh" #include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation70.hh" +#include "G4eplusAnnihilation.hh" #include "G4Gamma.hh" #include "G4Electron.hh" @@ -58,18 +58,18 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4EmQEDBuilder70::G4EmQEDBuilder70(const G4String& name) +G4EmQEDBuilder71::G4EmQEDBuilder71(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4EmQEDBuilder70::~G4EmQEDBuilder70() +G4EmQEDBuilder71::~G4EmQEDBuilder71() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4EmQEDBuilder70::ConstructParticle() +void G4EmQEDBuilder71::ConstructParticle() { G4Gamma::Gamma(); G4Electron::Electron(); @@ -78,7 +78,7 @@ void G4EmQEDBuilder70::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4EmQEDBuilder70::ConstructProcess() +void G4EmQEDBuilder71::ConstructProcess() { // Add standard EM Processes for gamma G4ParticleDefinition* particle = G4Gamma::Gamma(); @@ -92,18 +92,18 @@ void G4EmQEDBuilder70::ConstructProcess() particle = G4Electron::Electron(); pmanager = particle->GetProcessManager(); - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1, 3); // Add standard EM Processes for e+ particle = G4Positron::Positron(); pmanager = particle->GetProcessManager(); - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation70, 0,-1,4); + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); } diff --git a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc index 2784483284..ef56d6268a 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.cc,v 1.1 2004/11/29 14:49:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc index c53d649862..1bb425be38 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.cc,v 1.1 2004/11/29 14:49:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc index d702f64125..d7d65e9f15 100644 --- a/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc +++ b/examples/extended/electromagnetic/TestEm2/src/G4StepLimiterPerRegion.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.cc,v 1.1 2004/11/29 14:49:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc b/examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc index 46004332f7..d5fb7e3bb1 100644 --- a/examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc +++ b/examples/extended/electromagnetic/TestEm2/src/ParticlesBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.cc,v 1.2 2004/11/24 13:18:03 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc index 65f22e630f..34ceacc186 100644 --- a/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.7 2005/05/08 16:12:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.8 2005/10/03 01:59:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -29,7 +29,8 @@ // // Author: V.Ivanchenko 03.05.2004 // -// Modified: +// Modified: +// 03-10-05 Add Builders 71 (V.Ivanchenko) // //---------------------------------------------------------------------------- // @@ -44,6 +45,9 @@ #include "G4EmQEDBuilder.hh" #include "G4EmMuonBuilder.hh" #include "G4EmHadronBuilder.hh" +#include "G4EmQEDBuilder71.hh" +#include "G4EmMuonBuilder71.hh" +#include "G4EmHadronBuilder71.hh" #include "G4EmHighEnergyBuilder.hh" #include "G4EmQEDBuilder52.hh" #include "G4EmMuonBuilder52.hh" @@ -91,6 +95,7 @@ void PhysicsList::ConstructParticle() { if(verbose > 0) G4cout << "Construte Particles" << G4endl; + G4VModularPhysicsList::ConstructParticle(); } @@ -136,6 +141,13 @@ void PhysicsList::AddPhysicsList(const G4String& name) emBuilderIsRegisted = true; G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; + } else if (name == "g4v71" && !emBuilderIsRegisted) { + RegisterPhysics(new G4EmQEDBuilder71()); + RegisterPhysics(new G4EmMuonBuilder71()); + RegisterPhysics(new G4EmHadronBuilder71()); + emBuilderIsRegisted = true; + G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; + } else if (name == "step_limit" && !stepLimiterIsRegisted) { RegisterPhysics(new G4StepLimiterBuilder()); G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; diff --git a/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc index 924b81faa0..36bde8b49f 100644 --- a/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.3 2004/11/29 14:49:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc index c7e7cd82d4..68eac3fe03 100644 --- a/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/09/17 10:51:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/RunAction.cc b/examples/extended/electromagnetic/TestEm2/src/RunAction.cc index 8aeea5ee11..0d956508c9 100644 --- a/examples/extended/electromagnetic/TestEm2/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.15 2005/06/08 14:26:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.17 2005/12/06 11:37:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -178,12 +178,14 @@ void RunAction::bookHisto() void RunAction::cleanHisto() { #ifdef G4ANALYSIS_USE - tree->commit(); // Writing the histograms to the file - tree->close(); // and closing the tree (and the file) - G4cout << "\n----> Histogram Tree is saved in " << histoName[1] << G4endl; + if(tree) { + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + G4cout << "\n----> Histogram Tree is saved in " << histoName[1] << G4endl; - delete tree; - tree = 0; + delete tree; + tree = 0; + } #endif } @@ -195,7 +197,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); //reshape arrays if needed // @@ -276,13 +278,15 @@ void RunAction::fillPerEvent() #ifdef G4ANALYSIS_USE //fill histograms // - G4double Ekin=Kin->GetParticleGun()->GetParticleEnergy(); - G4double mass=Kin->GetParticleGun()->GetParticleDefinition()->GetPDGMass(); - G4double radl=Det->GetMaterial()->GetRadlen(); + if(tree) { + G4double Ekin=Kin->GetParticleGun()->GetParticleEnergy(); + G4double mass=Kin->GetParticleGun()->GetParticleDefinition()->GetPDGMass(); + G4double radl=Det->GetMaterial()->GetRadlen(); - histo[0]->fill(100.*dLCumul/(Ekin+mass)); - histo[1]->fill(ChargTrLength/radl); - histo[2]->fill(NeutrTrLength/radl); + histo[0]->fill(100.*dLCumul/(Ekin+mass)); + histo[1]->fill(ChargTrLength/radl); + histo[2]->fill(NeutrTrLength/radl); + } #endif } @@ -322,15 +326,17 @@ void RunAction::EndOfRunAction(const G4Run* aRun) positronFlux[i] /= NbOfEvents; #ifdef G4ANALYSIS_USE - G4double bin = i*dLradl; - histo[3]->fill(bin,MeanELongit[i]/dLradl); - bin = (i+1)*dLradl; - histo[4]->fill(bin,MeanELongitCumul[i]); - histo[5]->fill(bin, rmsELongitCumul[i]); + if(tree) { + G4double bin = i*dLradl; + histo[3]->fill(bin,MeanELongit[i]/dLradl); + bin = (i+1)*dLradl; + histo[4]->fill(bin,MeanELongitCumul[i]); + histo[5]->fill(bin, rmsELongitCumul[i]); - histo[6]->fill(bin, gammaFlux[i]); - histo[7]->fill(bin, positronFlux[i]); - histo[8]->fill(bin, electronFlux[i]); + histo[6]->fill(bin, gammaFlux[i]); + histo[7]->fill(bin, positronFlux[i]); + histo[8]->fill(bin, electronFlux[i]); + } #endif } @@ -352,11 +358,13 @@ void RunAction::EndOfRunAction(const G4Run* aRun) - sumERadialCumul[i]*sumERadialCumul[i])); #ifdef G4ANALYSIS_USE - G4double bin = i*dRradl; - histo[ 9]->fill(bin,MeanERadial[i]/dRradl); - bin = (i+1)*dRradl; - histo[10]->fill(bin,MeanERadialCumul[i]); - histo[11]->fill(bin, rmsERadialCumul[i]); + if(tree) { + G4double bin = i*dRradl; + histo[ 9]->fill(bin,MeanERadial[i]/dRradl); + bin = (i+1)*dRradl; + histo[10]->fill(bin,MeanERadialCumul[i]); + histo[11]->fill(bin, rmsERadialCumul[i]); + } #endif } @@ -440,7 +448,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) cleanHisto(); // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); // Acceptance if(limittrue < DBL_MAX) { diff --git a/examples/extended/electromagnetic/TestEm2/src/RunActionMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/RunActionMessenger.cc index 5225f640e3..3a3abbf5b0 100644 --- a/examples/extended/electromagnetic/TestEm2/src/RunActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/RunActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunActionMessenger.cc,v 1.2 2004/09/17 10:51:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc index d9b3d82942..d721398061 100644 --- a/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.3 2004/11/24 10:46:30 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc index 5c991c5569..9f738912c3 100644 --- a/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.2 2004/09/17 10:51:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc index 593cf05adb..250600142e 100644 --- a/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.cc,v 1.2 2004/09/17 10:51:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/vis.mac b/examples/extended/electromagnetic/TestEm2/vis.mac index 8f1d614d56..276c6de6c7 100644 --- a/examples/extended/electromagnetic/TestEm2/vis.mac +++ b/examples/extended/electromagnetic/TestEm2/vis.mac @@ -22,6 +22,7 @@ # Draw scene # /vis/viewer/set/viewpointThetaPhi 90 180 deg +/vis/viewer/set/style surface /vis/viewer/zoom 1.1 /vis/viewer/flush # diff --git a/examples/extended/electromagnetic/TestEm3/History b/examples/extended/electromagnetic/TestEm3/History index e86eb0a607..f248d29c64 100644 --- a/examples/extended/electromagnetic/TestEm3/History +++ b/examples/extended/electromagnetic/TestEm3/History @@ -1,4 +1,4 @@ -$Id: History,v 1.78 2005/06/01 10:48:39 maire Exp $ +$Id: History,v 1.85 2005/12/06 11:41:55 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,28 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * --------------------------------------------------------- + +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +22-11-05 mma (testem3-V07-01-04) +- correct bug in lateral leakage calculation (stepping action) +- introduce TrackingAction for energy flow initialization +- modify energy flow calculation in geant3 +- update README + +17-11-05 G.Cosmo (testem3-V07-01-03) +- corrected fixes for migration to to fix compilation + errors on SUN-CC. + +12-11-05 V.Ivant (testem3-V07-01-02) +- fix compilation problems with streams + +17-10-05 mma (testem3-V07-01-01) +- modify energy flow calculation + +07-10-05 mma (testem3-V07-01-00) +- create PhysListEmG4v71 (g4v71) for G4MultipleScattering71 01-06-05 mma (testem3-V07-00-08) - HistoManager: option "--noErrors" for hbook diff --git a/examples/extended/electromagnetic/TestEm3/README b/examples/extended/electromagnetic/TestEm3/README index e7130a4600..2625f72455 100644 --- a/examples/extended/electromagnetic/TestEm3/README +++ b/examples/extended/electromagnetic/TestEm3/README @@ -1,4 +1,4 @@ -$Id: README,v 1.24 2005/05/18 15:28:37 maire Exp $ +$Id: README,v 1.26 2005/11/22 15:29:06 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -29,10 +29,25 @@ $Id: README,v 1.24 2005/05/18 15:28:37 maire Exp $ of the above parameters can be modified interactively via the commands defined in the DetectorMessenger class. - NB. Numbering scheme (for histograms): - layer : from 1 to NbOfLayers (inclued) - absorbers : from 1 to NbOfAbsor (inclued) - planes : from 1 to NbOfLayers*NbOfAbsor + 1 (inclued) + + |<----layer 0---------->|<----layer 1---------->|<----layer 2---------->| + | | | | + ========================================================================== + || | || | || | || + || | || | || | || + || abs 1 | abs 2 || abs 1 | abs 2 || abs 1 | abs 2 || + || | || | || | || + || | || | || | || + beam || | || | || | || +======> || | || | || | || + || | || | || | || + || | || | || | || + || | || | || | || + || | || | || | || + || cell 1 | cell 2|| cell 3 | cell 4|| cell 5 | cell 6|| + ========================================================================== + ^ ^ ^ ^ ^ ^ ^ + pln1 pln2 pln3 pln4 pln5 pln6 pln7 NB. The number of absorbers and the number of layers can be set to 1. In this case we have a unique homogeneous block of matter, which looks like @@ -62,6 +77,9 @@ $Id: README,v 1.24 2005/05/18 15:28:37 maire Exp $ The corresponding interactive command is built in PrimaryGeneratorMessenger. A RUN is a set of events. + + TestEm3 computes the energy deposited per absorber and the energy flow through + the calorimeter 4- VISUALIZATION @@ -126,12 +144,18 @@ $Id: README,v 1.24 2005/05/18 15:28:37 maire Exp $ histo 12 : longitudinal profile of energy deposit in absorber 2 (MeV/event) ...etc........... - histo 21 : forward energy flow (MeV/event) - histo 22 : backward energy flow (MeV/event) + histo 21 : energy flow (MeV/event) + histo 22 : lateral energy leak (MeV/event) One can control the name of the histograms file with the command: /testem/histo/setFileName name (default testem3.hbook) + NB. Numbering scheme for histograms: + layer : from 1 to NbOfLayers (inclued) + absorbers : from 1 to NbOfAbsor (inclued) + planes : from 1 to NbOfLayers*NbOfAbsor + 1 (inclued) + + Note that, by default, histograms are disabled. To activate them, uncomment the flag G4ANALYSIS_USE in GNUmakefile. @@ -160,32 +184,28 @@ $Id: README,v 1.24 2005/05/18 15:28:37 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.cc b/examples/extended/electromagnetic/TestEm3/TestEm3.cc index d91356cb2b..ddfe5e829c 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.cc +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TestEm3.cc,v 1.17 2005/05/18 15:28:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm3.cc,v 1.19 2005/12/06 11:41:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -37,6 +37,7 @@ #include "PrimaryGeneratorAction.hh" #include "RunAction.hh" #include "EventAction.hh" +#include "TrackingAction.hh" #include "SteppingAction.hh" #include "SteppingVerbose.hh" #include "HistoManager.hh" @@ -50,7 +51,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); @@ -79,10 +80,12 @@ int main(int argc,char** argv) { // set user action classes RunAction* runAct = new RunAction(detector,primary,histo); EventAction* evtAct = new EventAction(detector,runAct,histo); + TrackingAction* trkAct = new TrackingAction(detector,runAct,evtAct,histo); SteppingAction* stpAct = new SteppingAction(detector,runAct,evtAct,histo); runManager->SetUserAction(runAct); runManager->SetUserAction(evtAct); + runManager->SetUserAction(trkAct); runManager->SetUserAction(stpAct); // get the pointer to the User Interface manager diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.in b/examples/extended/electromagnetic/TestEm3/TestEm3.in index 86261483f7..37dc791f54 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.in +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.in @@ -1,4 +1,4 @@ -# $Id: TestEm3.in,v 1.20 2005/05/18 15:28:37 maire Exp $ +# $Id: TestEm3.in,v 1.22 2005/10/17 15:47:27 maire Exp $ # # Macro file for "exampleN03.cc" # (can be run in batch, without graphic) @@ -8,7 +8,7 @@ /control/verbose 2 /run/verbose 2 # -#### /testem/phys/addPhysics g4v52 +#### /testem/phys/addPhysics g4v71 /testem/phys/addPhysics standard # /run/initialize @@ -22,8 +22,8 @@ /testem/histo/setHisto 2 100 0. 300. MeV #edep in absor2 /testem/histo/setHisto 11 52 0. 52. none #long. profile in absor1 /testem/histo/setHisto 12 52 0. 52. none #long. profile in absor2 -/testem/histo/setHisto 21 102 0. 102. none #energy flow of primary -/testem/histo/setHisto 22 102 0. 102. none #energy flow of secondaries +/testem/histo/setHisto 21 102 0. 102. none #energy flow +/testem/histo/setHisto 22 102 0. 102. none #lateral energy leakage # /testem/event/printModulo 50 # diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out index 6b4bfef7fe..2dbeb45b73 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.out +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -20,9 +20,11 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... /run/verbose 2 # -#### /testem/phys/addPhysics g4v52 +#### /testem/phys/addPhysics g4v71 /testem/phys/addPhysics standard # /run/initialize @@ -46,7 +48,6 @@ userDetector->Construct() start. ------------------------------------------------------------- World is registered to the default region. physicsList->Construct() start. -physicsList->ConstructParticle() start. physicsList->Construct() start. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm @@ -64,10 +65,10 @@ PhysicsList::SetCuts:CutLength : 1 mm ----> SetHisto 11: longit. profile of Edep (MeV/event) in absorber 1; 52 bins from 0 none to 52 none /testem/histo/setHisto 12 52 0. 52. none #long. profile in absor2 ----> SetHisto 12: longit. profile of Edep (MeV/event) in absorber 2; 52 bins from 0 none to 52 none -/testem/histo/setHisto 21 102 0. 102. none #energy flow of primary -----> SetHisto 21: Forward energy flow (MeV/event); 102 bins from 0 none to 102 none -/testem/histo/setHisto 22 102 0. 102. none #energy flow of secondaries -----> SetHisto 22: Backward energy flow (MeV/event); 102 bins from 0 none to 102 none +/testem/histo/setHisto 21 102 0. 102. none #energy flow +----> SetHisto 21: energy flow (MeV/event); 102 bins from 0 none to 102 none +/testem/histo/setHisto 22 102 0. 102. none #lateral energy leakage +----> SetHisto 22: lateral energy leak (MeV/event); 102 bins from 0 none to 102 none # /testem/event/printModulo 50 # @@ -87,13 +88,13 @@ conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV f msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.2 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -105,7 +106,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -119,7 +120,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -139,7 +140,7 @@ ionIoni: tables are built for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -177,9 +178,9 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Galactic Lead liquidArgon Production cuts : gamma 1 mm e- 1 mm e+ 1 mm @@ -212,19 +213,19 @@ Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics Total memory consumed for geometry optimisation: 1 kByte - Total CPU time elapsed for geometry optimisation: 0.01 seconds + Total CPU time elapsed for geometry optimisation: 0 seconds Voxelisation: top CPU users: Percent Total CPU System CPU Memory Volume ------- ---------- ---------- -------- ---------- - 100.00 0.01 0.00 0k Layer 0.00 0.00 0.00 2k Calorimeter + 0.00 0.00 0.00 0k Layer Voxelisation: top memory users: Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- 91.70 1k 1 50 50 0.00 Calorimeter - 8.30 0k 1 3 4 0.01 Layer + 8.30 0k 1 3 4 0.00 Layer ### Run 0 start. --------- Ranecu engine status --------- @@ -239,28 +240,28 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=108.61s Real=116.66s Sys=6.64s + User=211.69s Real=250.27s Sys=37.62s ------------------------------------------------------------ material Total Edep sqrt(E0(GeV))*rmsE/Emean total tracklen - Lead: 806.1 MeV +- 16.85 MeV 2.09 +- 0.209 % 55.8 cm +- 1.31 cm -liquidArgon: 183.68 MeV +- 15.11 MeV 8.225 +- 0.8225 % 91 cm +- 7.82 cm + Lead: 783.12 MeV +- 14.93 MeV 1.906 +- 0.1906 % 53.9 cm +- 1.18 cm +liquidArgon: 206.22 MeV +- 14.83 MeV 7.19 +- 0.719 % 1.02 m +- 7.58 cm ------------------------------------------------------------ Energy deposition from Energy flow balance : - material Total Edep Forward Edep Backward Edep + material Total Edep - Lead: 811.1 MeV 801.1 MeV 9.995 MeV -liquidArgon: 186.2 MeV 196.2 MeV -9.995 MeV + Lead: 783.128 MeV +liquidArgon: 206.221 MeV ------------------------------------------------------------ --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1565724203, 225741664 + Current couple of seeds = 1763111852, 1437958173 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm3/atlashec.mac b/examples/extended/electromagnetic/TestEm3/atlashec.mac index b138698672..ce1a4560e2 100644 --- a/examples/extended/electromagnetic/TestEm3/atlashec.mac +++ b/examples/extended/electromagnetic/TestEm3/atlashec.mac @@ -1,4 +1,4 @@ -# $Id: atlashec.mac,v 1.2 2005/03/01 17:55:19 maire Exp $ +# $Id: atlashec.mac,v 1.5 2005/11/12 00:28:55 vnivanch Exp $ # # Macro file for "TestEm3.cc" # @@ -13,9 +13,9 @@ /testem/det/setAbsor 2 Copper 2.5 cm /testem/det/setSizeYZ 17 cm # -####/testem/phys/addPhysics g4v52 +#### /testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard -/testem/phys/setCuts 0.07 mm +/testem/phys/setCuts 0.7 mm # /run/initialize # @@ -25,9 +25,10 @@ /testem/histo/setHisto 2 100 9. 10. GeV # /gun/particle e- -/gun/energy 10 GeV +/gun/particle pi+ +/gun/energy 100 GeV /gun/position -40.635 0 0 # /testem/event/printModulo 100 -/run/beamOn 1000 +/run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm3/dedx.mac b/examples/extended/electromagnetic/TestEm3/dedx.mac index 9d0e9ea744..6d6d6c93fb 100644 --- a/examples/extended/electromagnetic/TestEm3/dedx.mac +++ b/examples/extended/electromagnetic/TestEm3/dedx.mac @@ -1,4 +1,4 @@ -# $Id: dedx.mac,v 1.2 2004/10/20 14:32:27 maire Exp $ +# $Id: dedx.mac,v 1.3 2005/10/07 16:26:07 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -11,11 +11,11 @@ # /testem/det/setNbOfLayers 1 /testem/det/setNbOfAbsor 1 -/testem/det/setAbsor 1 Water 1 cm -/testem/det/setSizeYZ 1 cm +/testem/det/setAbsor 1 Air20 1 m +/testem/det/setSizeYZ 1 m # /testem/phys/addPhysics standard -/testem/phys/setCuts 1 km +/testem/phys/setCuts 1 mm # /run/initialize # @@ -23,8 +23,8 @@ /process/eLoss/fluct false # /testem/gun/setDefault -/gun/particle mu+ -/gun/energy 300 MeV +/gun/particle e- +/gun/energy 100 MeV # /tracking/verbose 1 # diff --git a/examples/extended/electromagnetic/TestEm3/geant3/README b/examples/extended/electromagnetic/TestEm3/geant3/README index 5b28cf49ae..944c662c4a 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/README +++ b/examples/extended/electromagnetic/TestEm3/geant3/README @@ -30,8 +30,8 @@ histo 12 : longitudinal profile of energy deposit in absorber 2 (MeV/event) ...etc........... - histo 21 : forward energy flow (MeV/event) - histo 22 : backward energy flow (MeV/event) + histo 21 : energy flow (MeV/event) + histo 22 : lateral energy leakage (MeV/event) One can control the binning of the histograms with the data card: *HISTO id1 nbBins valMin valMax valUnit diff --git a/examples/extended/electromagnetic/TestEm3/geant3/include/calor.inc b/examples/extended/electromagnetic/TestEm3/geant3/include/calor.inc index 788b0561bf..719af12a9e 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/include/calor.inc +++ b/examples/extended/electromagnetic/TestEm3/geant3/include/calor.inc @@ -1,5 +1,5 @@ - PARAMETER (MaxAbs = 10) + PARAMETER (MaxAbs = 10, MaxLay = 50) COMMON/CALOR/materAbs(MaxAbs),thickAbs(MaxAbs),NbAbsor,NbLayer, & calorYZ,Field,thLayer,calorX,worldX,worldYZ @@ -27,4 +27,4 @@ COMMON/STEPMAX/stepmax * -* stepmax = max allowed step length (data card STMAX) +* stepmax = max allowed step length (data card STEPMX) diff --git a/examples/extended/electromagnetic/TestEm3/geant3/include/celoss.inc b/examples/extended/electromagnetic/TestEm3/geant3/include/celoss.inc index 93c5299d14..239b6f9afc 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/include/celoss.inc +++ b/examples/extended/electromagnetic/TestEm3/geant3/include/celoss.inc @@ -3,5 +3,5 @@ & sumEdep(MaxAbs),sumTrck(MaxAbs), & su2Edep(MaxAbs),su2Trck(MaxAbs) - PARAMETER (MaxPlanes = 500) - COMMON/EFLOW/ Eforw(MaxPlanes),Eback(MaxPlanes), Idold + PARAMETER (MaxPlanes = MaxAbs*MaxLay + 1) + COMMON/EFLOW/ EnerFlow(MaxPlanes),EleakLat(MaxPlanes) diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm3/geant3/src/gustep.F index 0a35a2dfd8..7828a3a822 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/gustep.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/gustep.F @@ -34,21 +34,19 @@ if (histo(ih)) call hfill (ih,0.+layer,0.,destep/(aMeV*nevent)) ENDIF * -* *** Energy flow - IF (NUMED.LE.NbAbsor) THEN +* *** Energy flow : leaving an absorber ? + IF ((NUMED.LE.NbAbsor).and.(INWVOL.eq.2)) THEN Idnow = NbAbsor*(layer-1) + numed Eflow = gekin if (ipart.eq.2) Eflow = gekin + 2*emass -* entrance in an absorber - if (INWVOL.eq.1) THEN - if (Idnow.gt.Idold) Eforw(Idnow) = Eforw(Idnow) + Eflow - if (Idnow.lt.Idold) Eback(Idnow+1) = Eback(Idnow+1) + Eflow - Idold = Idnow +* + if (max(abs(vect(2)),abs(vect(3))).ge.(0.5*calorYZ)) then + EleakLat(Idnow) = EleakLat(Idnow) + Eflow + elseif (vect(4).ge.0.) then + EnerFlow(Idnow+1) = EnerFlow(Idnow+1) + Eflow + else + EnerFlow(Idnow) = EnerFlow(Idnow) - Eflow endif -* last plane: forward leakage - if ((INWVOL.eq.2).and.(Idnow.eq.NbAbsor*NbLayer)) THEN - Eforw(Idnow+1) = Eforw(Idnow+1) + Eflow - endif ENDIF * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/gutrak.F b/examples/extended/electromagnetic/TestEm3/geant3/src/gutrak.F index 8ba04f2975..ed4f3e423d 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/gutrak.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/gutrak.F @@ -1,21 +1,34 @@ SUBROUTINE GUTRAK * * User routine to control tracking of one track -* Called by GTREVE +* Called by GTREVE +* +#include "geant321/gckine.inc" +#include "geant321/gconst.inc" +#include "geant321/gctrak.inc" #include "geant321/gctmed.inc" #include "geant321/gcvolu.inc" - #include "calor.inc" #include "celoss.inc" * -* *** initialisation track per track -* unique Id for absorber+layer - Idold = 0 - if (numed.le.NbAbsor) then - layer = number(nlevel-1) - Idold = NbAbsor*(layer-1) + numed - endif -* +* *** initialisation of Eflow for primary track +* + if ((itra.eq.1).and.(istak.eq.0)) then +* unique Id for absorber+layer + Idnow = 1 + if (numed.le.NbAbsor) then + layer = number(nlevel-1) + Idnow = NbAbsor*(layer-1) + numed + endif +* + Eflow = gekin + if (ipart.eq.2) Eflow = gekin + 2*emass +* + do k=1,Idnow + EnerFlow(Idnow) = EnerFlow(Idnow) + Eflow + enddo + endif + CALL GTRACK * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm3/geant3/src/ugeom.F index e1fc1693ee..ccd0d45cc4 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/ugeom.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/ugeom.F @@ -136,7 +136,7 @@ PAR(1) = thickAbs(k)/2. PAR(2) = calorYZ/2. PAR(3) = calorYZ/2. - volnam(4:4) = char(ichar('0')+k-1) + volnam(4:4) = char(ichar('0')+k) CALL GSVOLU(volnam,'BOX ',k,PAR,3,IVOL) xcenter = xfront + 0.5*thickAbs(k) CALL GSPOS (volnam,1,'layr',xcenter,0.,0.,0,'ONLY') diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F index 0eb1ae4412..076dfe4b07 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F @@ -14,7 +14,7 @@ * *** Define the GEANT parameters CALL GINIT * -* *** default values +* *** default values for histo do ih = 1,MaxHist histo(ih) = .false. enddo @@ -48,10 +48,9 @@ write (6,51) NbAbsor, MaxAbs NbAbsor = MaxAbs endif - if (NbAbsor*NbLayer.ge.MaxPlanes) then - ntrunc = (MaxPlanes-1)/NbAbsor - write (6,52) NbLayer, ntrunc - NbLayer = ntrunc + if (NbLayer.gt.MaxLay) then + write (6,52) NbLayer, MaxLay + NbLayer = MaxLay endif 51 FORMAT (/,5x,'warning (uginit): NbAbsor= ',I2,' truncated to ',I2) 52 FORMAT (/,5x,'warning (uginit): NbLayer= ',I3,' truncated to ',I3) @@ -88,8 +87,8 @@ enddo * do k=1,MaxPlanes - Eforw(k) = 0. - Eback(k) = 0. + EnerFlow(k) = 0. + EleakLat(k) = 0. enddo * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F index 3932c955ee..71d7980313 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F @@ -9,10 +9,10 @@ #include "celoss.inc" #include "histo.inc" * - DIMENSION EdepForw(MaxAbs), EdepBack(MaxAbs), EdepTot(MaxAbs) + DIMENSION EdepTot(MaxAbs) * CHARACTER*20 matnam - CHARACTER*4 unit1,unit2,unit3 + CHARACTER*4 unit1, unit2 * data aMeV /1.e-3/ * @@ -23,10 +23,12 @@ fnorm = 1./IEVENT do k=1,NbAbsor call GFMATE (materAbs(k),matnam,dua,duz,dud,dur,dui,udu,idu) - aveEdep = fnorm*sumEdep(k) - rmsEdep = fnorm*sqrt(abs(IEVENT*su2Edep(k)-sumEdep(k)**2)) - aveTrck = fnorm*sumTrck(k) - rmsTrck = fnorm*sqrt(abs(IEVENT*su2Trck(k)-sumTrck(k)**2)) + aveEdep = fnorm*sumEdep(k) + aveEdep2 = fnorm*su2Edep(k) + rmsEdep = sqrt(abs(aveEdep2-aveEdep**2)) + aveTrck = fnorm*sumTrck(k) + aveTrck2 = fnorm*su2Trck(k) + rmsTrck = sqrt(abs(aveTrck2-aveTrck**2)) * CALL GEVKEV (aveEdep,Edmean,unit1) CALL GEVKEV (rmsEdep,Edrms ,unit2) @@ -38,42 +40,33 @@ Iplmax = NbAbsor*NbLayer + 1 do k=1,Iplmax fk = k - Eforw(k) = Eforw(k)*fnorm - Eback(k) = Eback(k)*fnorm + EnerFlow(k) = EnerFlow(k)*fnorm + EleakLat(k) = EleakLat(k)*fnorm ih = 2*MaxAbs + 1 - if (histo(ih)) call hfill (ih, fk, 0., Eforw(k)/aMeV) + if (histo(ih)) call hfill (ih, fk, 0., EnerFlow(k)/aMeV) ih = 2*MaxAbs + 2 - if (histo(ih)) call hfill (ih, fk, 0., Eback(k)/aMeV) + if (histo(ih)) call hfill (ih, fk, 0., EleakLat(k)/aMeV) enddo * * *** Energy deposit from energy flow balance do k=1,NbAbsor - EdepForw(k) = 0. - EdepBack(k) = 0. EdepTot(k) = 0. enddo * Idmax = NbAbsor*NbLayer do k=1,Idmax - forward = Eforw(k) - Eforw(k+1) - backward = Eback(k+1) - Eback(k) iAbsor = mod(k,NbAbsor) if (iAbsor.eq.0) iAbsor = NbAbsor - EdepForw(iAbsor) = EdepForw(iAbsor) + forward - EdepBack(iAbsor) = EdepBack(iAbsor) + backward - EdepTot (iAbsor) = EdepTot (iAbsor) + forward + backward + Ebalance = EnerFlow(k) - EnerFlow(k+1) - EleakLat(k) + EdepTot (iAbsor) = EdepTot (iAbsor) + Ebalance enddo PRINT 761 do k=1,NbAbsor call GFMATE (materAbs(k),matnam,dua,duz,dud,dur,dui,udu,idu) CALL GEVKEV (abs(EdepTot (k)),Edtot,unit1) - CALL GEVKEV (abs(EdepForw(k)),Edfor,unit2) - CALL GEVKEV (abs(EdepBack(k)),Edbak,unit3) if (EdepTot (k).lt.0.) Edtot = -Edtot - if (EdepForw(k).lt.0.) Edfor = -Edfor - if (EdepBack(k).lt.0.) Edbak = -Edbak - PRINT 762,k,matnam,Edtot,unit1,Edfor,unit2,Edbak,unit3 + PRINT 762,k,matnam,Edtot,unit1 enddo PRINT 749 * @@ -95,8 +88,7 @@ 751 FORMAT(1X,'AbsNo Material',5X,'Energy deposit',14X,'Trck length') 752 FORMAT(I5,3X,A10,F8.3,A4,' +- ',F6.2,A4,F9.3,' cm +- ',F6.2,' cm') 761 FORMAT(' Energy deposition from energy flow balance:',/,/, - & 1X,'AbsNo Material',5X, - & 'Total Edep',5X,'Forward Edep',2X,'Backward Edep') - 762 FORMAT(I5,3X,A10,F10.3,A4,1X,F10.3,A4,1X,F10.3,A4) + & 1X,'AbsNo Material',5X,'Total Edep') + 762 FORMAT(I5,3X,A10,F10.3,A4) * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F index e4ce5de656..b73e7e4548 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F @@ -18,9 +18,9 @@ + title = 'Edep long. profile in absorber ' + //char(ichar('0')+(idhist-MaxAbs))//' (MeV/event)' if (idhist.eq.(2*MaxAbs+1)) - + title = 'Forward energy flow (MeV/event)' + + title = 'energy flow (MeV/event)' if (idhist.eq.(2*MaxAbs+2)) - + title = 'Backward energy flow (MeV/event)' + + title = 'lateral energy leak (MeV/event)' * call hbook1(idhist,title,nbBins,valmin,valmax,0.) * diff --git a/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh index 695a7e8408..8d57ded945 100644 --- a/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.11 2004/11/23 14:05:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/DetectorMessenger.hh index 6f80552c29..6c6136a9ca 100644 --- a/examples/extended/electromagnetic/TestEm3/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.7 2004/11/23 14:05:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/EmAcceptance.hh b/examples/extended/electromagnetic/TestEm3/include/EmAcceptance.hh index fbf533de18..d048768c28 100644 --- a/examples/extended/electromagnetic/TestEm3/include/EmAcceptance.hh +++ b/examples/extended/electromagnetic/TestEm3/include/EmAcceptance.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmAcceptance.hh,v 1.3 2004/10/20 14:32:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/EventAction.hh b/examples/extended/electromagnetic/TestEm3/include/EventAction.hh index 950cdf8db4..5fbebca9c1 100644 --- a/examples/extended/electromagnetic/TestEm3/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.9 2004/10/22 15:53:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh index 5d60ac2bb6..a9ba23c5c2 100644 --- a/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm3/include/HistoManager.hh index 6adb36843d..d6749ab45a 100644 --- a/examples/extended/electromagnetic/TestEm3/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm3/include/HistoManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.hh,v 1.6 2005/03/01 17:55:19 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/HistoMessenger.hh index 9a25d2b48c..6437e465c0 100644 --- a/examples/extended/electromagnetic/TestEm3/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/HistoMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoMessenger.hh,v 1.3 2005/03/01 17:55:19 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh index cb309fd1f3..506520feec 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmG4v52.hh,v 1.2 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v71.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v71.hh new file mode 100644 index 0000000000..0ee5dee017 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v71.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysListEmG4v71.hh,v 1.1 2005/10/07 16:26:07 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmG4v71_h +#define PhysListEmG4v71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmG4v71 : public G4VPhysicsConstructor +{ + public: + PhysListEmG4v71(const G4String& name = "g4v71"); + ~PhysListEmG4v71(); + + public: + // This method is dummy for physics + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh index d07933a6c1..dacda1373d 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.hh,v 1.3 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh index 6514103d74..9051e030cb 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.5 2004/11/23 14:05:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh index 1bc5cfb159..f67f79547d 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh index 8c6cd37651..b71be7ccbf 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.3 2004/10/25 12:50:58 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh index c9ebfe944c..ef1e188fc5 100644 --- a/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.2 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/RunAction.hh b/examples/extended/electromagnetic/TestEm3/include/RunAction.hh index 9197694cdf..e9ed8a684c 100644 --- a/examples/extended/electromagnetic/TestEm3/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/RunAction.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.hh,v 1.15 2005/05/18 15:28:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.hh,v 1.16 2005/10/17 15:47:27 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,8 +59,10 @@ class RunAction : public G4UserRunAction void fillPerEvent(G4int,G4double,G4double); - void sumForwEflow(G4int plane, G4double Eflow) {forwEflow[plane] += Eflow;}; - void sumBackEflow(G4int plane, G4double Eflow) {backEflow[plane] += Eflow;}; + void sumEnergyFlow(G4int plane, G4double Eflow) + {EnergyFlow[plane] += Eflow;}; + void sumLateralEleak(G4int cell, G4double Eflow) + {lateralEleak[cell] += Eflow;}; void PrintDedxTables(); @@ -80,8 +82,8 @@ class RunAction : public G4UserRunAction G4double sumEAbs [MaxAbsor], sum2EAbs [MaxAbsor]; G4double sumLAbs [MaxAbsor], sum2LAbs [MaxAbsor]; - std::vector forwEflow; - std::vector backEflow; + std::vector EnergyFlow; + std::vector lateralEleak; G4double edeptrue [MaxAbsor]; G4double rmstrue [MaxAbsor]; diff --git a/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh index 63a22af4c4..557ffa5347 100644 --- a/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunActionMessenger.hh,v 1.8 2004/10/20 14:32:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/StepMax.hh b/examples/extended/electromagnetic/TestEm3/include/StepMax.hh index 92e17649d2..5b6c5270be 100644 --- a/examples/extended/electromagnetic/TestEm3/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm3/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.6 2005/03/01 17:55:19 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/StepMaxMessenger.hh index 2f72e706b8..f31d48b80d 100644 --- a/examples/extended/electromagnetic/TestEm3/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.1 2004/11/24 11:25:01 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh index 3ce2ad8eb5..992195a47e 100644 --- a/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: SteppingAction.hh,v 1.6 2005/05/18 15:28:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: SteppingAction.hh,v 1.7 2005/10/17 15:47:27 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -55,8 +55,6 @@ class SteppingAction : public G4UserSteppingAction RunAction* runAct; EventAction* eventAct; HistoManager* histoManager; - - G4int Idold; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh index a1f9ca80d0..e121b468e6 100644 --- a/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.4 2004/10/20 14:32:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm3/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm3/include/TrackingAction.hh new file mode 100644 index 0000000000..dca4d4f63a --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/include/TrackingAction.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: TrackingAction.hh,v 1.1 2005/11/22 15:29:06 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef TrackingAction_h +#define TrackingAction_h 1 + +#include "G4UserTrackingAction.hh" +#include "globals.hh" + +class DetectorConstruction; +class RunAction; +class EventAction; +class HistoManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class TrackingAction : public G4UserTrackingAction { + + public: + TrackingAction(DetectorConstruction*,RunAction*,EventAction*,HistoManager* ); + ~TrackingAction() {}; + + void PreUserTrackingAction(const G4Track*); + void PostUserTrackingAction(const G4Track*); + + private: + DetectorConstruction* detector; + RunAction* runAct; + EventAction* eventAct; + HistoManager* histoManager; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm3/ionC12.mac b/examples/extended/electromagnetic/TestEm3/ionC12.mac index bda45199d0..47094f2f12 100644 --- a/examples/extended/electromagnetic/TestEm3/ionC12.mac +++ b/examples/extended/electromagnetic/TestEm3/ionC12.mac @@ -1,4 +1,4 @@ -# $Id: ionC12.mac,v 1.8 2004/10/20 14:32:28 maire Exp $ +# $Id: ionC12.mac,v 1.9 2005/11/12 00:28:55 vnivanch Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -7,6 +7,7 @@ # /control/verbose 2 /run/verbose 2 +/tracking/verbose 1 # # select EM PhysicsList # @@ -20,11 +21,13 @@ /testem/det/setAbsor 1 CsI 1.99 cm /testem/det/setSizeYZ 3 cm # +/gun/particle ion +/gun/ion 6 12 /run/initialize # /testem/gun/setDefault -/gun/particle ion -/gun/ion 6 12 +#/gun/particle ion +#/gun/ion 6 12 /gun/energy 108 GeV # /testem/histo/setHisto 1 200 350. 550. MeV diff --git a/examples/extended/electromagnetic/TestEm3/linac.mac b/examples/extended/electromagnetic/TestEm3/linac.mac index 3ef29b28e3..ac85187250 100644 --- a/examples/extended/electromagnetic/TestEm3/linac.mac +++ b/examples/extended/electromagnetic/TestEm3/linac.mac @@ -1,40 +1,32 @@ -# $Id: linac.mac,v 1.2 2005/03/01 17:55:19 maire Exp $ +# $Id: linac.mac,v 1.3 2005/10/12 14:31:22 maire Exp $ # # Macro file for "TestEm3" # -# Linac/Ecal; +# Linac/Ecal from Graham Wilson; # /control/verbose 2 /run/verbose 1 # -/testem/det/setNbOfLayers 30 -/testem/det/setNbOfAbsor 6 -/testem/det/setAbsor 1 Tungsten 2.8 mm -/testem/det/setAbsor 2 NemaG10 2.1 mm -/testem/det/setAbsor 3 Silicon 0.525 mm -/testem/det/setAbsor 4 Tungsten 2.8 mm -/testem/det/setAbsor 5 Silicon 0.525 mm -/testem/det/setAbsor 6 NemaG10 2.1 mm +/testem/det/setNbOfLayers 42 +/testem/det/setNbOfAbsor 4 +/testem/det/setAbsor 1 Tungsten 2.50 mm +/testem/det/setAbsor 2 NemaG10 0.68 mm +/testem/det/setAbsor 3 Silicon 0.32 mm +/testem/det/setAbsor 4 Air 0.25 mm /testem/det/setSizeYZ 30 cm # /testem/phys/addPhysics standard -/testem/phys/setCuts 1 mm +/testem/phys/setCuts 10 mum # /run/initialize # /testem/histo/setFileName linac /testem/histo/setFileType hbook /testem/histo/setHisto 3 100 0. 20. MeV #edep in absor3 -/testem/histo/setHisto 5 100 0. 20. MeV #edep in absor5 -/testem/histo/setHisto 13 32 0. 32. none #long. profile in absor3 -/testem/histo/setHisto 15 32 0. 32. none #long. profile in absor5 -/testem/histo/setHisto 21 182 0. 182. none #energy flow of primary -/testem/histo/setHisto 22 182 0. 182. none #energy flow of secondaries # -/gun/particle mu+ -/gun/energy 5 GeV +/gun/particle gamma +/gun/energy 1 GeV # -/testem/event/printModulo 1000 +/testem/event/printModulo 100 # -/run/beamOn 10000 - +/run/beamOn 1000 diff --git a/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc index 6212ff1c9e..9c1c75209c 100644 --- a/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: DetectorConstruction.cc,v 1.13 2004/11/23 14:05:30 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: DetectorConstruction.cc,v 1.14 2005/10/07 16:26:07 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -224,8 +224,8 @@ void DetectorConstruction::DefineMaterials() CO2->AddElement(O, natoms=2); G4Material* steam = - new G4Material("WaterSteam", density= 0.3*mg/cm3, ncomponents=1, - kStateGas, temperature= 500.*kelvin, pressure= 2.*atmosphere); + new G4Material("WaterSteam", density= 1.0*mg/cm3, ncomponents=1, + kStateGas, temperature= 273*kelvin, pressure= 1*atmosphere); steam->AddMaterial(H2O, fractionmass=1.); // diff --git a/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc index 039dcae0ef..08df010a4f 100644 --- a/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc @@ -20,14 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: DetectorMessenger.cc,v 1.7 2004/11/23 14:05:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: DetectorMessenger.cc,v 1.10 2005/11/17 08:16:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "DetectorMessenger.hh" +#include + #include "DetectorConstruction.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -57,7 +59,7 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) NbLayersCmd = new G4UIcmdWithAnInteger("/testem/det/setNbOfLayers",this); NbLayersCmd->SetGuidance("Set number of layers."); NbLayersCmd->SetParameterName("NbLayers",false); - NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); + NbLayersCmd->SetRange("NbLayers>0"); NbLayersCmd->AvailableForStates(G4State_PreInit,G4State_Idle); NbAbsorCmd = new G4UIcmdWithAnInteger("/testem/det/setNbOfAbsor",this); @@ -138,11 +140,10 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) if (command == AbsorCmd) { G4int num; G4double tick; - char mat[30],unts[30]; - const char* t = newValue; - std::istrstream is((char*)t); - is >> num >> mat >> tick >> unts; - G4String material=mat, unt=unts; + G4String unt, mat; + std::istringstream is(newValue); + is >> num >> mat >> tick >> unt; + G4String material=mat; tick *= G4UIcommand::ValueOf(unt); Detector->SetAbsorMaterial (num,material); Detector->SetAbsorThickness(num,tick); diff --git a/examples/extended/electromagnetic/TestEm3/src/EmAcceptance.cc b/examples/extended/electromagnetic/TestEm3/src/EmAcceptance.cc index 22da9fd2f3..0cc2082539 100644 --- a/examples/extended/electromagnetic/TestEm3/src/EmAcceptance.cc +++ b/examples/extended/electromagnetic/TestEm3/src/EmAcceptance.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmAcceptance.cc,v 1.5 2004/12/02 16:13:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/EventAction.cc b/examples/extended/electromagnetic/TestEm3/src/EventAction.cc index 58734e82a2..341f75eab6 100644 --- a/examples/extended/electromagnetic/TestEm3/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.13 2005/06/01 10:48:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc index c3a853c844..7a2ff55583 100644 --- a/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.3 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm3/src/HistoManager.cc index 4de08f6597..24985c9180 100644 --- a/examples/extended/electromagnetic/TestEm3/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm3/src/HistoManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoManager.cc,v 1.10 2005/06/01 10:48:40 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HistoManager.cc,v 1.11 2005/10/17 15:47:27 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -167,8 +167,8 @@ void HistoManager::SetHisto(G4int ih, // histo 12 : longitudinal profile of energy deposit in absorber 2 (MeV) // ...etc........... // - // histo 21 : forward energy flow (MeV) - // histo 22 : backward energy flow (MeV) + // histo 21 : energy flow (MeV) + // histo 22 : lateral energy leak (MeV) const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10","11","12","13","14","15","16","17","18","19", @@ -185,9 +185,9 @@ void HistoManager::SetHisto(G4int ih, title = "longit. profile of Edep (MeV/event) in absorber " + id[ih-MaxAbsor]; } else if (ih == 2*MaxAbsor+1) { - title = "Forward energy flow (MeV/event)"; + title = "energy flow (MeV/event)"; } else if (ih == 2*MaxAbsor+2) { - title = "Backward energy flow (MeV/event)"; + title = "lateral energy leak (MeV/event)"; } else return; exist[ih] = true; diff --git a/examples/extended/electromagnetic/TestEm3/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/HistoMessenger.cc index a285598a5c..07f3b7bdbf 100644 --- a/examples/extended/electromagnetic/TestEm3/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/HistoMessenger.cc @@ -20,14 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.5 2005/03/01 17:55:19 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HistoMessenger.cc,v 1.7 2005/11/17 08:16:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "HistoMessenger.hh" +#include + #include "HistoManager.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -112,9 +114,9 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) histoManager->SetFileOption(newValues); if (command == histoCmd) - { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; - const char* t = newValues; - std::istrstream is((char*)t); + { G4int ih,nbBins; G4double vmin,vmax; + std::istringstream is(newValues); + G4String unts; is >> ih >> nbBins >> vmin >> vmax >> unts; G4String unit = unts; G4double vUnit = 1. ; diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc index 3db0377795..29504730f4 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmG4v52.cc,v 1.4 2005/05/18 15:28:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v71.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v71.cc new file mode 100644 index 0000000000..543f0543ac --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v71.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysListEmG4v71.cc,v 1.2 2005/11/12 00:28:55 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::PhysListEmG4v71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::~PhysListEmG4v71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v71::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if( particleName == "alpha" || + particleName == "He3" || + particleName == "GenericIon" ) { + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering71, -1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc index 4d8de3a9d1..a2aae22ce4 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc,v 1.8 2005/05/18 15:28:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysListEmStandard.cc,v 1.10 2005/11/12 00:28:55 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -78,41 +78,37 @@ void PhysListEmStandard::ConstructProcess() } else if (particleName == "e-") { //electron - G4MultipleScattering* emuls = new G4MultipleScattering; - pmanager->AddProcess(emuls, -1, 1,1); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); - - emuls->SetFacrange(0.2); } else if (particleName == "e+") { //positron - G4MultipleScattering* pmuls = new G4MultipleScattering; - pmanager->AddProcess(pmuls, -1, 1,1); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - - pmuls->SetFacrange(0.2); - + } else if( particleName == "mu+" || particleName == "mu-" ) { //muon - pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); - pmanager->AddProcess(new G4MuIonisation, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); - pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - } else if( particleName == "alpha" || particleName == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); - pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + } else if( particleName == "alpha" || + particleName == "He3" || + particleName == "GenericIon" ) { + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { //all others charged particles except geantino - pmanager->AddProcess(new G4MultipleScattering,-1,1,1); - pmanager->AddProcess(new G4hIonisation, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering, -1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc index dc427ee2d6..b64c1aa4a6 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.10 2005/03/15 17:57:54 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.11 2005/10/07 16:26:07 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,6 +31,7 @@ #include "PhysListEmStandard.hh" #include "PhysListEmG4v52.hh" +#include "PhysListEmG4v71.hh" #include "G4LossTableManager.hh" #include "G4UnitsTable.hh" @@ -216,6 +217,12 @@ void PhysicsList::AddPhysicsList(const G4String& name) delete emPhysicsList; emPhysicsList = new PhysListEmG4v52(name); + } else if (name == "g4v71") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v71(name); + } else { G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc index f9b1517773..40befee9fb 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc index 1dda5adf12..0378a52948 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.6 2005/05/18 15:28:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc index e865ee2794..9a6788295a 100644 --- a/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.2 2004/10/20 14:32:36 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/RunAction.cc b/examples/extended/electromagnetic/TestEm3/src/RunAction.cc index 854f08e4d7..6d6aa90655 100644 --- a/examples/extended/electromagnetic/TestEm3/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.25 2005/05/18 15:28:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.27 2005/12/06 11:41:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -68,7 +68,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status // G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); //initialize cumulative quantities // @@ -79,9 +79,9 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) //initialize Eflow // G4int nbPlanes = (Detector->GetNbOfLayers())*(Detector->GetNbOfAbsor()) + 2; - forwEflow.resize(nbPlanes); - backEflow.resize(nbPlanes); - for (G4int k=0; kGetNbOfLayers())*(Detector->GetNbOfAbsor()); for (G4int Id=1; Id<=Idmax+1; Id++) { - histoManager->FillHisto(2*MaxAbsor+1, (G4double)Id, forwEflow[Id]); - histoManager->FillHisto(2*MaxAbsor+2, (G4double)Id, backEflow[Id]); - //mormalization per event - forwEflow[Id] *= norm; - backEflow[Id] *= norm; + histoManager->FillHisto(2*MaxAbsor+1, (G4double)Id, EnergyFlow[Id]); + histoManager->FillHisto(2*MaxAbsor+2, (G4double)Id, lateralEleak[Id]); } //Energy deposit from energy flow balance // - G4double EdepForw[MaxAbsor], EdepBack[MaxAbsor], EdepTot[MaxAbsor]; - for (G4int k=0; kGetNbOfAbsor(); for (G4int Id=1; Id<=Idmax; Id++) { - G4double forward = forwEflow[Id] - forwEflow[Id+1]; - G4double backward = backEflow[Id+1] - backEflow[Id]; G4int iAbsor = Id%nbOfAbsor; if (iAbsor==0) iAbsor = nbOfAbsor; - EdepForw[iAbsor] += forward; - EdepBack[iAbsor] += backward; - EdepTot [iAbsor] += (forward + backward); + EdepTot [iAbsor] += (EnergyFlow[Id] - EnergyFlow[Id+1] - lateralEleak[Id]); } + G4cout << "\n Energy deposition from Energy flow balance : \n" - << std::setw(10) << " material" - << "\t Total Edep" - << "\t Forward Edep" - << "\t Backward Edep \n \n"; - G4cout.precision(4); + << std::setw(10) << " material \t Total Edep \n \n"; + G4cout.precision(6); for (G4int k=1; k<=nbOfAbsor; k++) { + EdepTot [k] *= norm; G4cout << std::setw(10) << Detector->GetAbsorMaterial(k)->GetName() << ":" - << "\t " << G4BestUnit(EdepTot [k],"Energy") - << "\t " << G4BestUnit(EdepForw[k],"Energy") - << "\t " << G4BestUnit(EdepBack[k],"Energy") << "\n"; + << "\t " << G4BestUnit(EdepTot [k],"Energy") << "\n"; } G4cout << "\n------------------------------------------------------------\n" @@ -234,7 +222,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) histoManager->save(); // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc index 8fe6b40d30..23e2722c7e 100644 --- a/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunActionMessenger.cc,v 1.8 2004/10/20 14:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/StepMax.cc b/examples/extended/electromagnetic/TestEm3/src/StepMax.cc index 71f6ac68b1..8566e65af8 100644 --- a/examples/extended/electromagnetic/TestEm3/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm3/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.3 2005/01/11 17:29:56 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/StepMaxMessenger.cc index 9bdc728fa8..1fc4319cff 100644 --- a/examples/extended/electromagnetic/TestEm3/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/StepMaxMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: StepMaxMessenger.cc,v 1.1 2004/11/24 11:25:02 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: StepMaxMessenger.cc,v 1.2 2005/11/12 00:28:55 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -70,9 +70,9 @@ StepMaxMessenger::~StepMaxMessenger() void StepMaxMessenger::SetNewValue(G4UIcommand* command, G4String newValues) { if (command == StepMaxCmd) - { G4int k; G4double sMax; char unts[30]; - const char* t = newValues; - std::istrstream is((char*)t); + { G4int k; G4double sMax; + G4String unts; + std::istringstream is(newValues); is >> k >> sMax >> unts; G4String unit = unts; G4double vUnit = G4UIcommand::ValueOf(unit); diff --git a/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc index c8cb491c43..9b337f6f0d 100644 --- a/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: SteppingAction.cc,v 1.20 2005/05/18 15:28:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: SteppingAction.cc,v 1.22 2005/11/22 15:29:06 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -54,27 +54,24 @@ SteppingAction::~SteppingAction() void SteppingAction::UserSteppingAction(const G4Step* aStep) { - //initialize Energy flow - if (aStep->GetTrack()->GetCurrentStepNumber() == 1) Idold = 0; - + //track informations + const G4StepPoint* prePoint = aStep->GetPreStepPoint(); + const G4StepPoint* endPoint = aStep->GetPostStepPoint(); + const G4Track* track = aStep->GetTrack(); + const G4ParticleDefinition* particle = track->GetDefinition(); + //if World, return // - const G4StepPoint* prePoint = aStep->GetPreStepPoint(); G4VPhysicalVolume* volume = prePoint->GetPhysicalVolume(); //if sum of absorbers do not fill exactly a layer: check material, not volume. G4Material* mat = volume->GetLogicalVolume()->GetMaterial(); - if (mat == detector->GetWorldMaterial()) return; + if (mat == detector->GetWorldMaterial()) return; //here we are in an absorber. Locate it // G4int absorNum = volume->GetCopyNo(); G4int layerNum = prePoint->GetTouchable()->GetReplicaNumber(1); - - //track informations - const G4StepPoint* endPoint = aStep->GetPostStepPoint(); - const G4Track* track = aStep->GetTrack(); - const G4ParticleDefinition* particle = track->GetDefinition(); - + // collect energy deposit G4double edep = aStep->GetTotalEnergyDeposit(); @@ -92,25 +89,20 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) // // unique identificator of layer+absorber G4int Idnow = (detector->GetNbOfAbsor())*layerNum + absorNum; - if (track->GetCurrentStepNumber() == 1) Idold = Idnow; // track begins + G4int plane; // - //first step in the absorber ? - G4int plane=0; - if (prePoint->GetStepStatus() == fGeomBoundary) { - G4double Eflow = prePoint->GetKineticEnergy(); - if (particle == G4Positron::Positron()) Eflow += 2*electron_mass_c2; - if (Idnow > Idold) runAct->sumForwEflow(plane=Idnow, Eflow); - else if (Idnow < Idold) runAct->sumBackEflow(plane=Idnow+1, Eflow); - Idold = Idnow; - } - - //last plane : forward leakage - G4int Idlast = (detector->GetNbOfAbsor())*(detector->GetNbOfLayers()); - if ((Idnow == Idlast) && (endPoint->GetStepStatus() == fGeomBoundary)) { + //leaving the absorber ? + if (endPoint->GetStepStatus() == fGeomBoundary) { + G4ThreeVector position = endPoint->GetPosition(); + G4ThreeVector direction = endPoint->GetMomentumDirection(); + G4double sizeYZ = 0.5*detector->GetCalorSizeYZ(); G4double Eflow = endPoint->GetKineticEnergy(); - if (particle == G4Positron::Positron()) Eflow += 2*electron_mass_c2; - runAct->sumForwEflow(plane=Idlast+1, Eflow); - } + if (particle == G4Positron::Positron()) Eflow += 2*electron_mass_c2; + if ((std::abs(position.y()) >= sizeYZ) || (std::abs(position.z()) >= sizeYZ)) + runAct->sumLateralEleak(Idnow, Eflow); + else if (direction.x() >= 0.) runAct->sumEnergyFlow(plane=Idnow+1, Eflow); + else runAct->sumEnergyFlow(plane=Idnow, -Eflow); + } //// example of Birk attenuation //// G4double destep = aStep->GetTotalEnergyDeposit(); diff --git a/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc index b4ffa901b3..d91ca6b8c4 100644 --- a/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.3 2004/10/20 14:32:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm3/src/TrackingAction.cc new file mode 100644 index 0000000000..121327ff5b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/src/TrackingAction.cc @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: TrackingAction.cc,v 1.1 2005/11/22 15:29:06 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "TrackingAction.hh" + +#include "DetectorConstruction.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "HistoManager.hh" + +#include "G4Track.hh" +#include "G4Positron.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction(DetectorConstruction* det,RunAction* run, + EventAction* evt, HistoManager* hist) +:detector(det), runAct(run), eventAct(evt), histoManager(hist) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PreUserTrackingAction(const G4Track* track ) +{ + // Energy flow initialisation for primary particle + // + if (track->GetTrackID() == 1) { + G4int Idnow = 1; + if (track->GetVolume() != detector->GetphysiWorld()) { + // unique identificator of layer+absorber + const G4VTouchable* touchable = track->GetTouchable(); + G4int absorNum = touchable->GetCopyNumber(); + G4int layerNum = touchable->GetReplicaNumber(1); + Idnow = (detector->GetNbOfAbsor())*layerNum + absorNum; + } + + G4double Eflow = track->GetKineticEnergy(); + if (track->GetDefinition() == G4Positron::Positron()) + Eflow += 2*electron_mass_c2; + + //flux artefact, if primary vertex is inside the calorimeter + for (G4int pl=1; pl<=Idnow; pl++) runAct->sumEnergyFlow(pl, Eflow); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction(const G4Track* ) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm4/History b/examples/extended/electromagnetic/TestEm4/History index 6f0ed7a667..8fb3bb49f3 100644 --- a/examples/extended/electromagnetic/TestEm4/History +++ b/examples/extended/electromagnetic/TestEm4/History @@ -1,4 +1,4 @@ -$Id: History,v 1.37 2005/06/01 11:11:26 maire Exp $ +$Id: History,v 1.39 2005/12/06 11:44:55 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,12 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +22-11-05 mma (testem4-V07-01-00) +- update README for OpenScientist 01-06-05 mma (testem4-V07-00-01) - RunAction : option "--noErrors" for hbook; diff --git a/examples/extended/electromagnetic/TestEm4/README b/examples/extended/electromagnetic/TestEm4/README index 1080745bdb..717309e30e 100644 --- a/examples/extended/electromagnetic/TestEm4/README +++ b/examples/extended/electromagnetic/TestEm4/README @@ -1,4 +1,4 @@ -$Id: README,v 1.16 2005/03/02 13:39:46 maire Exp $ +$Id: README,v 1.17 2005/11/22 17:04:49 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -96,32 +96,28 @@ $Id: README,v 1.16 2005/03/02 13:39:46 maire Exp $ eval `aida-config --runtime csh` 7b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.cc b/examples/extended/electromagnetic/TestEm4/TestEm4.cc index afa54a52ce..2fcf389959 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.cc +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm4.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm4.cc,v 1.10 2005/12/06 11:44:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -50,7 +50,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out index 54818e5a85..31fc52f59e 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.out +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -20,6 +20,8 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... Material: FluorCarbonate density: 1.610 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 22.435 cm ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 38.74 % Abundance 50.00 % ---> Element: Fluorine (N) Z = 9.0 N = 19.0 A = 18.99 g/mole fractionMass: 61.26 % Abundance 50.00 % @@ -39,13 +41,13 @@ conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV f msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -57,7 +59,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -100,11 +102,11 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 50000 - User=32.93s Real=480s Sys=41.17s + User=48.41s Real=462.73s Sys=36.57s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1633479938, 1125177724 + Current couple of seeds = 510209146, 254172231 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh index 1328773749..2b1021d011 100644 --- a/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.2 2003/10/06 14:51:16 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/include/EventAction.hh b/examples/extended/electromagnetic/TestEm4/include/EventAction.hh index 16de706ded..d580013c13 100644 --- a/examples/extended/electromagnetic/TestEm4/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: EventAction.hh,v 1.1 2003/06/23 16:16:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh index 81894b174d..2f5acad5ed 100644 --- a/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: EventActionMessenger.hh,v 1.2 2003/10/06 14:51:16 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh index bd46d62a72..4f4ef86079 100644 --- a/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh index 18f15e6795..af023cf825 100644 --- a/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/RunAction.hh b/examples/extended/electromagnetic/TestEm4/include/RunAction.hh index a6ec9f759d..b94c056d3f 100644 --- a/examples/extended/electromagnetic/TestEm4/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.6 2004/09/24 14:41:20 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh index d17c4c7af8..1b28e0225e 100644 --- a/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh index a86171035a..caa4e848ef 100644 --- a/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc index 04b40c2db7..74a754fdf7 100644 --- a/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.cc,v 1.2 2003/10/06 14:51:17 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/EventAction.cc b/examples/extended/electromagnetic/TestEm4/src/EventAction.cc index 00eeeb5003..80a4786ce7 100644 --- a/examples/extended/electromagnetic/TestEm4/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.6 2004/09/24 14:41:21 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc index 03c9daca54..487390c645 100644 --- a/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: EventActionMessenger.cc,v 1.2 2003/10/06 14:51:17 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc index 237d216a81..ef63d14640 100644 --- a/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.cc,v 1.4 2003/10/24 12:14:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc index e42dc7c41e..5dcc8c926a 100644 --- a/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/12/02 16:16:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/RunAction.cc b/examples/extended/electromagnetic/TestEm4/src/RunAction.cc index 6b9e59946a..eb79ba12d9 100644 --- a/examples/extended/electromagnetic/TestEm4/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.8 2005/06/01 11:11:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.9 2005/12/06 11:44:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -98,7 +98,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -106,7 +106,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) void RunAction::EndOfRunAction(const G4Run*) { // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc index aeac14ece3..725a4cdfb4 100644 --- a/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.cc,v 1.1 2003/06/23 16:16:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc index d86d13e5f1..7c37a3a001 100644 --- a/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.cc,v 1.1 2003/06/23 16:16:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/History b/examples/extended/electromagnetic/TestEm5/History index 2e2a06175a..7db1258999 100644 --- a/examples/extended/electromagnetic/TestEm5/History +++ b/examples/extended/electromagnetic/TestEm5/History @@ -1,4 +1,4 @@ -$Id: History,v 1.61 2005/06/01 12:37:10 maire Exp $ +$Id: History,v 1.67 2005/12/06 11:46:46 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,21 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +02-12-05: V.Ivant (testem5-V07-01-03) +- Fix crash connected with non-static hadrons + +22-11-05 mma (testem5-V07-01-02) +- update README for OpenScientist + +14-11-05 Gabriele Cosmo (testem5-V07-01-01) +- Migration to for HistoMessenger. + +07-10-05 mma (testem5-V07-01-00) +- create PhysListEmG4v71 (g4v71) for G4MultipleScattering71 01-06-05 mma (testem5-V07-00-02) - PhysListEmG4v52 : old photon processes marked as 52 (and eplusAnnihilation) diff --git a/examples/extended/electromagnetic/TestEm5/README b/examples/extended/electromagnetic/TestEm5/README index 4088422a70..e258392376 100644 --- a/examples/extended/electromagnetic/TestEm5/README +++ b/examples/extended/electromagnetic/TestEm5/README @@ -1,4 +1,4 @@ -$Id: README,v 1.13 2005/03/02 17:17:57 maire Exp $ +$Id: README,v 1.14 2005/11/22 17:01:56 maire Exp $ ----------------------------------------------------- ========================================================= @@ -167,32 +167,28 @@ $Id: README,v 1.13 2005/03/02 17:17:57 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.cc b/examples/extended/electromagnetic/TestEm5/TestEm5.cc index 44fe934c9f..2709f91d92 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.cc +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm5.cc,v 1.13 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm5.cc,v 1.14 2005/12/06 11:46:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,7 +53,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.in b/examples/extended/electromagnetic/TestEm5/TestEm5.in index 885a323b87..3831f71182 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.in +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.in @@ -1,4 +1,4 @@ -# $Id: TestEm5.in,v 1.15 2005/03/02 17:17:57 maire Exp $ +# $Id: TestEm5.in,v 1.16 2005/10/07 15:36:59 maire Exp $ # # macro file for TestEm5.cc # @@ -10,7 +10,7 @@ /testem/det/setAbsYZ 1 mm # /testem/phys/addPhysics standard -###/testem/phys/addPhysics g4v52 +### /testem/phys/addPhysics g4v71 # /testem/phys/setGCut 2.13 mm /testem/phys/setECut 7.0 mum @@ -27,5 +27,3 @@ /testem/histo/setHisto 6 100 -0.25 0.25 mrad # /run/beamOn 100000 - - diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out index 8565a84563..3dd8ade067 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -20,6 +20,8 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... /run/verbose 2 # /testem/det/setAbsMat Silicon @@ -28,7 +30,7 @@ Current available graphics systems are: # /testem/phys/addPhysics standard PhysicsList::AddPhysicsList: -###/testem/phys/addPhysics g4v52 +### /testem/phys/addPhysics g4v71 # /testem/phys/setGCut 2.13 mm /testem/phys/setECut 7.0 mum @@ -48,7 +50,6 @@ userDetector->Construct() start. X position of the middle of the absorber 0 fm World is registered to the default region. physicsList->Construct() start. -physicsList->ConstructParticle() start. physicsList->Construct() start. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm @@ -78,13 +79,13 @@ conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV f msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.2 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -96,7 +97,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -110,7 +111,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -130,7 +131,7 @@ ionIoni: tables are built for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -168,9 +169,9 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Galactic Silicon Production cuts : gamma 2.13 mm e- 7 mum e+ 7 mum @@ -227,24 +228,24 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100000 - User=93.65s Real=899.99s Sys=91.45s + User=170.9s Real=857.04s Sys=84.22s ======================== run summary ====================== The run was 100000 pi+ of 5 GeV through 20 mum of Silicon (density: 2.3 g/cm3 ) - Total energy deposit in absorber per event = 6.727 keV +- 21.94 eV + Total energy deposit in absorber per event = 6.475 keV +- 16.97 eV - Mean dE/dx = 3.281 MeV/cm stopping Power = 1.408 MeV*cm2/g + Mean dE/dx = 3.159 MeV/cm stopping Power = 1.356 MeV*cm2/g (from Table = 2.807 MeV/cm) (from Table = 1.205 MeV*cm2/g) - Total track length (charged) in absorber per event = 20.97 mum +- 15 nm - Total track length (neutral) in absorber per event = 4.903 Ang +- 4.692 Ang + Total track length (charged) in absorber per event = 20.85 mum +- 10.19 nm + Total track length (neutral) in absorber per event = 6.987 Ang +- 3.581 Ang - Number of steps (charged) in absorber per event = 1.08 +- 1.225e-05 - Number of steps (neutral) in absorber per event = 3e-05 +- 1.225e-05 + Number of steps (charged) in absorber per event = 5.212 +- 1.01e-05 + Number of steps (neutral) in absorber per event = 4e-05 +- 1.01e-05 - Number of secondaries per event : Gammas = 3e-05; electrons = 0.03745; positrons = 0 + Number of secondaries per event : Gammas = 4e-05; electrons = 0.03633; positrons = 0 Number of events with the primary particle transmitted = 100 % Number of events with at least 1 particle transmitted (same charge as primary) = 100 % @@ -252,12 +253,12 @@ Run Summary Number of events with the primary particle reflected = 0 % Number of events with at least 1 particle reflected (same charge as primary) = 0 % - MultipleScattering: rms proj angle of transmit primary particle = 0.04132 mrad + MultipleScattering: rms proj angle of transmit primary particle = 0.04448 mrad MultipleScattering: computed theta0 (Highland formula) = 0.02663 mrad --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 14803744, 1165747056 + Current couple of seeds = 1142296491, 1659550969 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh index 3753ce6b53..c91de4225a 100644 --- a/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.5 2004/06/21 10:57:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh index 22f3d37ea8..818d79fe3e 100644 --- a/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.4 2004/09/24 09:57:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/EventAction.hh b/examples/extended/electromagnetic/TestEm5/include/EventAction.hh index 60724fe5ba..544eed3dbf 100644 --- a/examples/extended/electromagnetic/TestEm5/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.2 2004/06/21 10:57:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh index 9e400f399f..5a50250174 100644 --- a/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventMessenger.hh,v 1.4 2004/09/24 09:57:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh index ef3490b591..5ae5edb153 100644 --- a/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.hh,v 1.8 2005/03/02 17:17:57 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh index 0e808b5f6f..6ee27e608c 100644 --- a/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoMessenger.hh,v 1.6 2005/03/02 17:17:57 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListBinaryCascade.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListBinaryCascade.hh index 3213f3a556..8745089234 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.hh,v 1.2 2004/04/29 13:55:09 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class Description: // This class is an derived class of G4VPhysicsConstructor diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh index 0e2f36ad62..993c933a48 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmG4v52.hh,v 1.3 2004/06/21 10:57:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v71.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v71.hh new file mode 100644 index 0000000000..f29963e3f8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v71.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysListEmG4v71.hh,v 1.1 2005/10/07 15:36:59 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmG4v71_h +#define PhysListEmG4v71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmG4v71 : public G4VPhysicsConstructor +{ + public: + PhysListEmG4v71(const G4String& name = "g4v71"); + ~PhysListEmG4v71(); + + public: + // This method is dummy for physics + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListEmPenelope.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmPenelope.hh index 2d967cee44..cd8959c566 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListEmPenelope.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListEmPenelope.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmPenelope.hh,v 1.1 2005/03/16 12:08:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh index fcfc776933..c1d31e2d40 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmStandard.hh,v 1.4 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListHadronElastic.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListHadronElastic.hh index e27bf10da9..6cb093fc4f 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListHadronElastic.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListHadronElastic.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListHadronElastic.hh,v 1.3 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class Description: // This class is an derived class of G4VPhysicsConstructor diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListIonBinaryCascade.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListIonBinaryCascade.hh index f0194b86f4..40ad5303e6 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysListIonBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListIonBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListIonBinaryCascade.hh,v 1.4 2005/03/16 12:08:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class Description: // This class is an derived class of G4VPhysicsConstructor diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh index 96d91a1e2d..e5ee9cc8ba 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.4 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh index 20c636956c..6fe31da27a 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.6 2004/09/24 09:58:00 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh index 840985a1c6..58006e08ce 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.3 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh index 83f43686c2..ff6128e510 100644 --- a/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.3 2004/09/24 09:58:00 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/RunAction.hh b/examples/extended/electromagnetic/TestEm5/include/RunAction.hh index b245413829..199b026aab 100644 --- a/examples/extended/electromagnetic/TestEm5/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.5 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh b/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh index 120ced6811..4e73539e66 100644 --- a/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingAction.hh,v 1.2 2004/06/21 10:57:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh index 5a9c40340b..ddda465eec 100644 --- a/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingMessenger.hh,v 1.4 2004/09/24 09:58:00 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StepMax.hh b/examples/extended/electromagnetic/TestEm5/include/StepMax.hh index 7c20aeb375..c25c8855fb 100644 --- a/examples/extended/electromagnetic/TestEm5/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh index 5a3bd76538..92ce00fa37 100644 --- a/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.2 2003/10/07 11:58:29 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh index 0b311c1dce..8f5ddfa857 100644 --- a/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh index 2f0baf7a3a..514337f66c 100644 --- a/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh index cf9c53b99b..c91ccff3da 100644 --- a/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.2 2004/06/21 10:57:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc index 421dd040a5..7da65e7b08 100644 --- a/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: DetectorConstruction.cc,v 1.7 2005/03/16 12:08:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: DetectorConstruction.cc,v 1.9 2005/11/22 17:01:56 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -150,6 +150,12 @@ G4Material* Air = new G4Material("Air", density= 1.290*mg/cm3, ncomponents=2); Air->AddElement(N, fractionmass=0.7); Air->AddElement(O, fractionmass=0.3); +G4Material* Air20 = +new G4Material("Air20", density= 1.205*mg/cm3, ncomponents=2, + kStateGas, 293.*kelvin, 1.*atmosphere); +Air20->AddElement(N, fractionmass=0.7); +Air20->AddElement(O, fractionmass=0.3); + //Graphite // G4Material* Graphite = @@ -175,10 +181,12 @@ Havar->AddElement(W , fractionmass=0.0631); // // examples of gas // - +new G4Material("ArgonGas", z=18, a=39.948*g/mole, density= 1.782*mg/cm3, + kStateGas, 273.15*kelvin, 1*atmosphere); + new G4Material("XenonGas", z=54, a=131.29*g/mole, density= 5.458*mg/cm3, - kStateGas,293.15*kelvin, 1*atmosphere); - + kStateGas, 293.15*kelvin, 1*atmosphere); + G4Material* CO2 = new G4Material("CarbonicGas", density= 1.977*mg/cm3, ncomponents=2); CO2->AddElement(C, natoms=1); diff --git a/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc index f1efcc6651..b6766f6cf2 100644 --- a/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.3 2004/09/24 09:58:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc index e5a83c3446..2faf0a4094 100644 --- a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.4 2004/06/21 10:57:13 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc index 83d6c664e8..125e75df88 100644 --- a/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventMessenger.cc,v 1.3 2004/09/24 09:58:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc index d1b41a11ea..3a5add7770 100644 --- a/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.cc,v 1.15 2005/06/01 12:37:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc index ed62dff46d..45403a4ff4 100644 --- a/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc @@ -20,14 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: HistoMessenger.cc,v 1.5 2005/03/02 17:17:58 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HistoMessenger.cc,v 1.6 2005/11/14 14:25:19 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "HistoMessenger.hh" +#include + #include "HistoManager.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -114,7 +116,7 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues) if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> ih >> nbBins >> vmin >> vmax >> unts; G4String unit = unts; G4double vUnit = 1. ; diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListBinaryCascade.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListBinaryCascade.cc index 31771b662e..fcd5b4afef 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.cc,v 1.2 2004/04/29 13:55:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc index 19edda9ffc..d66e3cc286 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListEmG4v52.cc,v 1.5 2005/06/01 12:37:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysListEmG4v52.cc,v 1.6 2005/10/07 15:36:59 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -78,42 +78,36 @@ void PhysListEmG4v52::ConstructProcess() } else if (particleName == "e-") { //electron - G4MultipleScattering52* emuls = new G4MultipleScattering52; - pmanager->AddProcess(emuls, -1, 1,1); + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - - emuls->SetFacrange(0.2); } else if (particleName == "e+") { - //positron - G4MultipleScattering52* pmuls = new G4MultipleScattering52; - pmanager->AddProcess(pmuls, -1, 1,1); + //positron + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); pmanager->AddProcess(new G4eIonisation52, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); - - pmuls->SetFacrange(0.2); } else if( particleName == "mu+" || particleName == "mu-" ) { //muon - pmanager->AddProcess(new G4MultipleScattering52,-1, 1,1); - pmanager->AddProcess(new G4MuIonisation52, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4MuPairProduction52, -1,-1,4); + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4MuIonisation52, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4MuPairProduction52, -1,-1,4); } else if( particleName == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); - pmanager->AddProcess(new G4hIonisation52, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering52, -1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { //all others charged particles except geantino - pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); - pmanager->AddProcess(new G4hIonisation52, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering52, -1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v71.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v71.cc new file mode 100644 index 0000000000..e32a0f9dc6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v71.cc @@ -0,0 +1,115 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: PhysListEmG4v71.cc,v 1.1 2005/10/07 15:36:59 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::PhysListEmG4v71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::~PhysListEmG4v71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v71::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if (particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if (particleName == "alpha" || particleName == "GenericIon" ) { + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering71, -1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmPenelope.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmPenelope.cc index 101e1d10aa..059c2c8b0c 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListEmPenelope.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmPenelope.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListEmPenelope.cc,v 1.1 2005/03/16 12:08:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc index 61e65a041d..e4788329ec 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListEmStandard.cc,v 1.7 2005/03/16 12:08:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysListEmStandard.cc,v 1.8 2005/10/07 15:36:59 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -78,41 +78,35 @@ void PhysListEmStandard::ConstructProcess() } else if (particleName == "e-") { //electron - G4MultipleScattering* emuls = new G4MultipleScattering; - pmanager->AddProcess(emuls, -1, 1,1); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); - - emuls->SetFacrange(0.2); } else if (particleName == "e+") { //positron - G4MultipleScattering* pmuls = new G4MultipleScattering; - pmanager->AddProcess(pmuls, -1, 1,1); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - - pmuls->SetFacrange(0.2); } else if (particleName == "mu+" || particleName == "mu-" ) { //muon - pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); - pmanager->AddProcess(new G4MuIonisation, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); - pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); } else if (particleName == "alpha" || particleName == "GenericIon" ) { - pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); - pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { //all others charged particles except geantino - pmanager->AddProcess(new G4MultipleScattering,-1,1,1); - pmanager->AddProcess(new G4hIonisation, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering, -1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListHadronElastic.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListHadronElastic.cc index 3ec4961bff..12c6a8770e 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListHadronElastic.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListHadronElastic.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListHadronElastic.cc,v 1.5 2005/02/07 16:12:17 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListIonBinaryCascade.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListIonBinaryCascade.cc index 481cea2117..80da1e7f4d 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysListIonBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListIonBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListIonBinaryCascade.cc,v 1.4 2005/03/16 13:30:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc index ad4adccc13..10e8a67182 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.10 2005/03/16 12:08:22 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.12 2005/12/02 17:23:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,6 +31,7 @@ #include "PhysListEmStandard.hh" #include "PhysListEmG4v52.hh" +#include "PhysListEmG4v71.hh" #include "PhysListEmPenelope.hh" #include "PhysListHadronElastic.hh" #include "PhysListBinaryCascade.hh" @@ -88,31 +89,10 @@ PhysicsList::~PhysicsList() #include "G4NeutrinoE.hh" #include "G4AntiNeutrinoE.hh" -// Mesons -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" -#include "G4Eta.hh" -#include "G4EtaPrime.hh" - -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4KaonZero.hh" -#include "G4AntiKaonZero.hh" -#include "G4KaonZeroLong.hh" -#include "G4KaonZeroShort.hh" - -// Baryons -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4Neutron.hh" -#include "G4AntiNeutron.hh" - -// Nuclei -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4Alpha.hh" -#include "G4GenericIon.hh" +// Hadrons +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -140,29 +120,16 @@ void PhysicsList::ConstructParticle() G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); + G4MesonConstructor mConstructor; + mConstructor.ConstructParticle(); // barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); + G4BaryonConstructor bConstructor; + bConstructor.ConstructParticle(); // ions - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); + G4IonConstructor iConstructor; + iConstructor.ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -253,6 +220,12 @@ void PhysicsList::AddPhysicsList(const G4String& name) delete emPhysicsList; emPhysicsList = new PhysListEmG4v52(name); + } else if (name == "g4v71") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v71(name); + } else if (name == "penelope") { emName = name; diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc index 0ad4a947ed..050bc34033 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.5 2004/09/24 09:58:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc index a89342367d..92f1a58659 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.3 2004/06/21 10:57:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc index a8e5799394..2b6b428a4c 100644 --- a/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.3 2004/09/24 09:58:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/RunAction.cc b/examples/extended/electromagnetic/TestEm5/src/RunAction.cc index ccaa1882e8..8d7a734a4c 100644 --- a/examples/extended/electromagnetic/TestEm5/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.19 2005/03/16 16:03:47 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.20 2005/12/06 11:46:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -73,7 +73,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -221,7 +221,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) histoManager->save(); // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc b/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc index 246d7a94f4..8576807e69 100644 --- a/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingAction.cc,v 1.4 2004/12/02 16:19:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc index 12a49880db..34af497c2c 100644 --- a/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StackingMessenger.cc,v 1.3 2004/09/24 09:58:08 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/StepMax.cc b/examples/extended/electromagnetic/TestEm5/src/StepMax.cc index 633289251d..1a3be6a44e 100644 --- a/examples/extended/electromagnetic/TestEm5/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.1 2003/08/11 10:21:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc index d3d7a1ad34..da2eeb8d99 100644 --- a/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.2 2004/09/24 09:58:08 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc index 7c040e16b9..834f12924b 100644 --- a/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.4 2004/09/24 09:58:08 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc index 295ed403e8..ff3e7fd45d 100644 --- a/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.2 2004/06/21 10:57:15 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc index a89f348067..1daa7cd0ca 100644 --- a/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: TrackingAction.cc,v 1.9 2004/12/02 16:19:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/History b/examples/extended/electromagnetic/TestEm6/History index c2b383b727..8452b45879 100644 --- a/examples/extended/electromagnetic/TestEm6/History +++ b/examples/extended/electromagnetic/TestEm6/History @@ -1,4 +1,4 @@ -$Id: History,v 1.23 2005/06/01 12:57:25 maire Exp $ +$Id: History,v 1.27 2005/12/06 11:50:01 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,7 +14,20 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- - + +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +29-11-05 V.Ivant (testem6-V07-01-02) +- Add GenericIon to the PhysicsList + +23-11-05 V.Ivant (testem6-V07-01-01) +- extend test to mu+mu- and pi+pi- pair creation processes and G4hhIonisation + in order to test all processes of the subdirectory + +22-11-05 mma (testem6-V07-01-00) +- update README for OpenScientist + 01-06-05 mma (testem6-V07-00-01) - RunAction : option "noErrors" for hbook files; diff --git a/examples/extended/electromagnetic/TestEm6/README b/examples/extended/electromagnetic/TestEm6/README index 50524ccbdf..efe6dcb0bc 100644 --- a/examples/extended/electromagnetic/TestEm6/README +++ b/examples/extended/electromagnetic/TestEm6/README @@ -1,4 +1,4 @@ -$Id: README,v 1.14 2005/03/02 15:47:03 maire Exp $ +$Id: README,v 1.15 2005/11/22 16:58:54 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -157,33 +157,28 @@ $Id: README,v 1.14 2005/03/02 15:47:03 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 - + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.cc b/examples/extended/electromagnetic/TestEm6/TestEm6.cc index 8dc4f6c5d8..add916ebe0 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.cc +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TestEm6.cc,v 1.13 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm6.cc,v 1.14 2005/12/06 11:50:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -50,7 +50,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.in b/examples/extended/electromagnetic/TestEm6/TestEm6.in index 25f355e141..56c20cb270 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.in +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.in @@ -1,4 +1,4 @@ -# $Id: TestEm6.in,v 1.6 2003/10/10 10:42:36 maire Exp $ +# $Id: TestEm6.in,v 1.7 2005/11/23 19:23:36 vnivanch Exp $ # # Macro file for "TestEm6.cc" # (can be run in batch, without graphic) @@ -18,3 +18,12 @@ /tracking/verbose 1 # /run/beamOn 5 +# +/gun/particle e+ +/gun/energy 1 TeV +/run/beamOn 5 +# +/gun/particle anti_proton +/gun/energy 1 GeV +/run/beamOn 2 +# \ No newline at end of file diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.out b/examples/extended/electromagnetic/TestEm6/TestEm6.out index b42f8052f6..524a0ddc77 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.out +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -33,6 +33,8 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... /run/verbose 2 # /testem/det/setMat Iron @@ -44,8 +46,8 @@ userDetector->Construct() start. The Box is 500 m of Iron Iron is registered to the default region. physicsList->Construct() start. -physicsList->ConstructParticle() start. physicsList->Construct() start. +The cross section for AnnihiToMuPair is artificially increased by the CrossSecFactor=10000 physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 km # @@ -64,19 +66,24 @@ The cut in energy is set1.79769e+305GeV G4VRangeToEnergyConverter::ConvertCutToKineticEnergy for e+ The cut in range [1e+06 (mm)] is too big for material idx=2 The cut in energy is set1.79769e+305GeV +G4hhIonisation is initialised: nm= 2 +### G4eeToHadronsMultiModel: The cross section for G4eeToHadronsMultiModel is increased by the Factor= 10000 +G4eeToHadronsModel::Initialise: +LabSystem: emin(GeV)= 76.2409 epeak(GeV)= 580.137 emax(GeV)= 100000 +SM System: emin(MeV)= 279.14 epeak(MeV)= 770 emax(MeV)= 10109.4 GammaToMuPair: gamma->mu+mu- Bethe Heitler process. good cross section parametrization from 422.634 MeV to 1e+12 GeV for all Z. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -87,9 +94,32 @@ eBrem: tables are built for e- AnnihiToMuPair: e+e->mu+mu- annihilation, atomic e- at rest. threshold at 43.6931 GeV good description up to 1000 TeV for all Z. +ee2hadr: e+ annihilation into hadrons active above 1e-07 GeV + Integral mode is used + tables are built for e+ + Lambda tables from 100 eV to 10 TeV in 90 bins. + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +hhIoni: tables are built for anti_proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta-ray will not be produced; Bether-Bloch model for E > 2 + ICRU49 parametrisation scaled from protons below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 + msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -125,7 +155,11 @@ muPairProd: tables are built for mu- Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -Region DefaultRegionForTheWorld +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +Region -- appears in world volume Materials : Iron Production cuts : gamma 1 km e- 1 km e+ 1 km @@ -177,8 +211,8 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 31.9 m 0 fm 0 fm 29.8 TeV 0 eV 0 fm 0 fm Iron initStep - 1 190 m -2.05 mm -2.21 cm 8.96 TeV 20.8 TeV 158 m 158 m Iron muIoni - 2 250 m 2.19 mm -2.4 cm 6.2 TeV 2.76 TeV 60.5 m 218 m OutOfWorld Transportation + 1 190 m -804 mum -8.36 mm 8.8 TeV 21 TeV 158 m 158 m Iron muIoni + 2 250 m 2.7 mm -9.89 mm 5.91 TeV 2.89 TeV 60.5 m 218 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 @@ -186,8 +220,8 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 31.9 m 0 fm 0 fm 70.2 TeV 0 eV 0 fm 0 fm Iron initStep - 1 217 m 7.59 mm 1.24 cm 17.4 TeV 52.8 TeV 185 m 185 m Iron muIoni - 2 250 m 7.94 mm 1.2 cm 11.2 TeV 6.17 TeV 33.1 m 218 m OutOfWorld Transportation + 1 217 m 2.52 mm 4.1 mm 13.5 TeV 56.7 TeV 185 m 185 m Iron muIoni + 2 250 m 2.8 mm 3.81 mm 5.83 TeV 7.65 TeV 33.1 m 218 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -203,7 +237,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 120 m 0 fm 0 fm 20 TeV 0 eV 0 fm 0 fm Iron initStep - 1 250 m 1.11 mm 1.17 mm 8.6 TeV 11.4 TeV 130 m 130 m OutOfWorld Transportation + 1 250 m 1.11 mm 1.17 mm 9.27 TeV 10.8 TeV 130 m 130 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 @@ -211,7 +245,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 120 m 0 fm 0 fm 80 TeV 0 eV 0 fm 0 fm Iron initStep - 1 250 m -277 mum -292 mum 44.7 TeV 35.3 TeV 130 m 130 m OutOfWorld Transportation + 1 250 m -277 mum -292 mum 47.6 TeV 32.4 TeV 130 m 130 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -227,15 +261,17 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 91.5 m 0 fm 0 fm 567 GeV 0 eV 0 fm 0 fm Iron initStep - 1 130 m -3.16 cm -16.8 cm 413 GeV 154 GeV 39 m 39 m Iron muIoni - 2 163 m -1.53 mm -28.6 cm 229 GeV 183 GeV 32 m 71 m Iron muIoni - 3 184 m -5.36 cm -42.7 cm 177 GeV 52.4 GeV 21.3 m 92.3 m Iron muIoni - 4 201 m -2.28 cm -47.4 cm 140 GeV 37.4 GeV 17.5 m 110 m Iron muIoni - 5 216 m -9.33 cm -59.6 cm 110 GeV 29.9 GeV 14.5 m 124 m Iron muIoni - 6 228 m -2.78 cm -59.9 cm 85.9 GeV 23.9 GeV 11.9 m 136 m Iron muIoni - 7 237 m -1.64 cm -61.1 cm 64.9 GeV 21 GeV 9.68 m 146 m Iron muIoni - 8 245 m 4.73 cm -56.7 cm 52 GeV 12.9 GeV 7.6 m 153 m Iron muIoni - 9 250 m 7.75 cm -60.3 cm 42.8 GeV 9.25 GeV 5.08 m 158 m OutOfWorld Transportation + 1 130 m -5.2 cm 5.17 mm 424 GeV 143 GeV 39 m 39 m Iron muIoni + 2 163 m -14.6 cm -3.56 cm 196 GeV 229 GeV 32.6 m 71.5 m Iron muIoni + 3 182 m -26.6 cm -8.62 cm 157 GeV 39.1 GeV 18.9 m 90.5 m Iron muIoni + 4 198 m -40.1 cm -17.3 cm 121 GeV 35.3 GeV 15.9 m 106 m Iron muIoni + 5 211 m -50.1 cm -22.8 cm 95.6 GeV 25.9 GeV 12.9 m 119 m Iron muIoni + 6 221 m -68.4 cm -23.4 cm 75.4 GeV 20.1 GeV 10.6 m 130 m Iron muIoni + 7 230 m -91.9 cm -23.8 cm 56 GeV 19.4 GeV 8.66 m 139 m Iron muIoni + 8 237 m -1.07 m -21 cm 45.4 GeV 10.6 GeV 6.68 m 145 m Iron muIoni + 9 242 m -1.24 m -19.8 cm 35.6 GeV 9.84 GeV 5.55 m 151 m Iron muIoni + 10 247 m -1.37 m -20.6 cm 28.7 GeV 6.88 GeV 4.46 m 155 m Iron muIoni + 11 250 m -1.46 m -19.9 cm 24.4 GeV 4.32 GeV 3.22 m 158 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 @@ -243,7 +279,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 91.5 m 0 fm 0 fm 99.4 TeV 0 eV 0 fm 0 fm Iron initStep - 1 250 m -40.5 mum -4.92 mum 55.3 TeV 44.2 TeV 158 m 158 m OutOfWorld Transportation + 1 250 m -40.5 mum -4.92 mum 47.5 TeV 51.9 TeV 158 m 158 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -251,37 +287,690 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 -250 m 0 fm 0 fm 100 TeV 0 eV 0 fm 0 fm Iron initStep - 1 -190 m 0 fm 0 fm 0 eV 0 eV 60.2 m 60.2 m Iron GammaToMuPair + 1 -49.4 m 0 fm 0 fm 0 eV 0 eV 201 m 201 m Iron GammaToMuPair ********************************************************************************************************* * G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -190 m 0 fm 0 fm 82.5 TeV 0 eV 0 fm 0 fm Iron initStep - 1 -57.2 cm -1.31 cm 5.58 mm 24.8 TeV 57.7 TeV 189 m 189 m Iron muIoni - 2 151 m 1.05 cm 3.21 mm 8.57 TeV 16.2 TeV 152 m 341 m Iron muIoni - 3 250 m 1.22 cm 1.76 cm 4.59 TeV 3.98 TeV 98.8 m 440 m OutOfWorld Transportation + 0 -49.4 m 0 fm 0 fm 44.9 TeV 0 eV 0 fm 0 fm Iron initStep + 1 121 m -5.52 mm -1.28 mm 10.8 TeV 34.1 TeV 171 m 171 m Iron muIoni + 2 247 m -2.24 cm -1.78 cm 5.54 TeV 5.25 TeV 125 m 296 m Iron muIoni + 3 250 m -2.27 cm -1.87 cm 5.44 TeV 96.1 GeV 3.5 m 299 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -190 m 0 fm 0 fm 17.5 TeV 0 eV 0 fm 0 fm Iron initStep - 1 -49.3 m 8.73 mm 2.67 cm 6.36 TeV 11.2 TeV 141 m 141 m Iron muIoni - 2 59.1 m -1.1 cm 7.49 cm 3.07 TeV 3.28 TeV 108 m 249 m Iron muIoni - 3 145 m 2.04 cm 15.8 cm 1.77 TeV 1.3 TeV 85.7 m 335 m Iron muIoni - 4 214 m 1.22 mm 19.4 cm 1.03 TeV 744 GeV 69.1 m 404 m Iron muIoni - 5 250 m -6.37 mm 21.1 cm 774 GeV 253 GeV 36 m 440 m OutOfWorld Transportation + 0 -49.4 m 0 fm 0 fm 55.1 TeV 0 eV 0 fm 0 fm Iron initStep + 1 128 m -2.75 mm 5.45 mm 17.4 TeV 37.7 TeV 177 m 177 m Iron muIoni + 2 250 m -1.1 cm 9.46 mm 8.38 TeV 8.98 TeV 122 m 299 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 5 - User=0.03s Real=0.18s Sys=0.02s + User=0.03s Real=0.15s Sys=0.01s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1436682984, 1663224890 + Current couple of seeds = 366846445, 1908991269 +---------------------------------------- +# +/gun/particle e+ +/gun/energy 1 TeV +/run/beamOn 5 + +Region -- appears in world volume + Materials : Iron + Production cuts : gamma 1 km e- 1 km e+ 1 km + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Iron + Range cuts : gamma 1 km e- 1 km e+ 1 km + Energy thresholds : gamma 2.8802232e+295 J e- 2.8802232e+295 J e+ 2.8802232e+295 J + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +### Run 1 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 366846445, 1908991269 +---------------------------------------- +Start Run processing. + +---> Begin of Event: 0 + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 1e+03 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -249 m 0 fm 0 fm 0 eV 0 eV 1.02 m 1.02 m Iron AnnihiToMuPair + +********************************************************************************************************* +* G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -249 m 0 fm 0 fm 763 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -203 m 3.26 cm 3.39 cm 549 GeV 214 GeV 46.2 m 46.2 m Iron muIoni + 2 -165 m 4.58 cm 9.91 cm 408 GeV 140 GeV 38.2 m 84.4 m Iron muIoni + 3 -133 m 13.5 cm 15.2 cm 297 GeV 111 GeV 31.8 m 116 m Iron muIoni + 4 -107 m 24 cm 21.2 cm 225 GeV 72.2 GeV 25.6 m 142 m Iron muIoni + 5 -86.1 m 50.4 cm 27.6 cm 159 GeV 66.4 GeV 21 m 163 m Iron muIoni + 6 -70.1 m 71.8 cm 29.9 cm 117 GeV 41.1 GeV 16.1 m 179 m Iron muIoni + 7 -57.5 m 94.6 cm 31.3 cm 93.9 GeV 23.5 GeV 12.6 m 191 m Iron muIoni + 8 -47.1 m 1.08 m 30.5 cm 73 GeV 20.8 GeV 10.4 m 202 m Iron muIoni + 9 -38.6 m 1.24 m 31.1 cm 59.8 GeV 13.2 GeV 8.42 m 210 m Iron muIoni + 10 -31.6 m 1.33 m 28.1 cm 48.6 GeV 11.2 GeV 7.08 m 217 m Iron muIoni + 11 -25.7 m 1.4 m 28.9 cm 36.1 GeV 12.5 GeV 5.9 m 223 m Iron muIoni + 12 -21.1 m 1.45 m 24.9 cm 28 GeV 8.07 GeV 4.52 m 228 m Iron muIoni + 13 -17.5 m 1.52 m 24.9 cm 22.6 GeV 5.47 GeV 3.6 m 231 m Iron muIoni + 14 -14.6 m 1.54 m 23.5 cm 18.4 GeV 4.17 GeV 2.95 m 234 m Iron muIoni + 15 -12.1 m 1.57 m 21.3 cm 14.7 GeV 3.73 GeV 2.45 m 237 m Iron muIoni + 16 -10.1 m 1.62 m 22.4 cm 11.9 GeV 2.79 GeV 1.99 m 239 m Iron muIoni + 17 -8.5 m 1.64 m 24.6 cm 9.8 GeV 2.08 GeV 1.64 m 240 m Iron muIoni + 18 -7.12 m 1.64 m 27 cm 7.48 GeV 2.31 GeV 1.38 m 242 m Iron muIoni + 19 -6.04 m 1.64 m 30.6 cm 5.94 GeV 1.55 GeV 1.08 m 243 m Iron muIoni + 20 -5.17 m 1.64 m 31.5 cm 4.7 GeV 1.24 GeV 86.9 cm 244 m Iron muIoni + 21 -4.48 m 1.74 m 27.5 cm 3.81 GeV 886 MeV 70.1 cm 245 m Iron muIoni + 22 -3.91 m 1.81 m 22.8 cm 3.07 GeV 741 MeV 57.8 cm 245 m Iron muIoni + 23 -3.44 m 1.88 m 20.1 cm 2.22 GeV 853 MeV 47.3 cm 246 m Iron muIoni + 24 -3.1 m 1.94 m 18.9 cm 1.79 GeV 433 MeV 34.9 cm 246 m Iron muIoni + 25 -2.82 m 1.98 m 17.3 cm 1.4 GeV 382 MeV 28.5 cm 246 m Iron muIoni + 26 -2.6 m 2.02 m 15.5 cm 1.12 GeV 280 MeV 22.6 cm 246 m Iron muIoni + 27 -2.42 m 2.06 m 13.9 cm 873 MeV 251 MeV 18.3 cm 247 m Iron muIoni + 28 -2.28 m 2.08 m 12.1 cm 715 MeV 158 MeV 14.2 cm 247 m Iron muIoni + 29 -2.17 m 2.11 m 10.7 cm 595 MeV 120 MeV 11.7 cm 247 m Iron muIoni + 30 -2.07 m 2.12 m 10 cm 468 MeV 126 MeV 9.67 cm 247 m Iron muIoni + 31 -2 m 2.13 m 9.6 cm 385 MeV 83.5 MeV 7.54 cm 247 m Iron muIoni + 32 -1.94 m 2.15 m 9.4 cm 306 MeV 78.8 MeV 6.11 cm 247 m Iron muIoni + 33 -1.89 m 2.16 m 9.47 cm 258 MeV 48 MeV 4.76 cm 247 m Iron muIoni + 34 -1.85 m 2.17 m 9.64 cm 212 MeV 46.3 MeV 3.92 cm 247 m Iron muIoni + 35 -1.82 m 2.17 m 10.4 cm 178 MeV 33.6 MeV 3.12 cm 247 m Iron muIoni + 36 -1.8 m 2.17 m 11.3 cm 142 MeV 36.5 MeV 2.55 cm 247 m Iron muIoni + 37 -1.78 m 2.18 m 11.9 cm 113 MeV 28.2 MeV 1.94 cm 247 m Iron muIoni + 38 -1.77 m 2.18 m 12.3 cm 97.2 MeV 16.2 MeV 1.48 cm 247 m Iron muIoni + 39 -1.75 m 2.18 m 12.5 cm 82.2 MeV 15 MeV 1.22 cm 247 m Iron muIoni + 40 -1.75 m 2.19 m 12.7 cm 68.7 MeV 13.6 MeV 9.95 mm 247 m Iron muIoni + 41 -1.74 m 2.2 m 12.9 cm 55.5 MeV 13.2 MeV 8 mm 247 m Iron muIoni + 42 -1.74 m 2.2 m 13.1 cm 45.2 MeV 10.2 MeV 6.22 mm 247 m Iron muIoni + 43 -1.74 m 2.21 m 13.2 cm 37.2 MeV 8.02 MeV 4.94 mm 247 m Iron muIoni + 44 -1.74 m 2.21 m 13.3 cm 28.5 MeV 8.76 MeV 4.01 mm 247 m Iron muIoni + 45 -1.73 m 2.21 m 13.4 cm 21.3 MeV 7.15 MeV 3.1 mm 247 m Iron muIoni + 46 -1.73 m 2.21 m 13.5 cm 14.7 MeV 6.6 MeV 2.42 mm 247 m Iron muIoni + 47 -1.73 m 2.21 m 13.6 cm 6.56 MeV 8.15 MeV 1.82 mm 247 m Iron muIoni + 48 -1.73 m 2.22 m 13.6 cm 0 eV 6.56 MeV 635 mum 247 m Iron muIoni + 49 -1.73 m 2.22 m 13.6 cm 0 eV 0 eV 0 fm 247 m Iron Decay + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.73 m 2.22 m 13.6 cm 24.2 MeV 0 eV 0 fm 0 fm Iron initStep + 1 -1.73 m 2.21 m 13.3 cm 12.6 MeV 11.7 MeV 4.53 mm 4.53 mm Iron eIoni + 2 -1.73 m 2.21 m 13.1 cm 5.15 MeV 7.42 MeV 3.34 mm 7.87 mm Iron eIoni + 3 -1.73 m 2.21 m 12.9 cm 2.85 MeV 2.3 MeV 2.27 mm 1.01 cm Iron eIoni + 4 -1.73 m 2.21 m 12.9 cm 962 keV 1.88 MeV 1.76 mm 1.19 cm Iron eIoni + 5 -1.73 m 2.21 m 12.9 cm 0 eV 962 keV 737 mum 1.26 cm Iron eIoni + +********************************************************************************************************* +* G4Track Information: Particle = anti_nu_e, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.73 m 2.22 m 13.6 cm 30.8 MeV 0 eV 0 fm 0 fm Iron initStep + 1 -51.3 m 15.3 m -250 m 30.8 MeV 0 eV 255 m 255 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = nu_mu, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.73 m 2.22 m 13.6 cm 49.6 MeV 0 eV 0 fm 0 fm Iron initStep + 1 1.4 m 78.8 m 250 m 49.6 MeV 0 eV 261 m 261 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -249 m 0 fm 0 fm 237 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -227 m 3.06 cm 2.1 cm 182 GeV 54.2 GeV 21.7 m 21.7 m Iron muIoni + 2 -209 m 4.66 cm -5.72 mm 145 GeV 37.4 GeV 17.9 m 39.6 m Iron muIoni + 3 -194 m 8.99 cm -7.09 cm 94.7 GeV 50.3 GeV 14.9 m 54.5 m Iron muIoni + 4 -184 m 11.1 cm -15.6 cm 75.6 GeV 19.2 GeV 10.5 m 65 m Iron muIoni + 5 -175 m 11.7 cm -14 cm 60.8 GeV 14.7 GeV 8.66 m 73.7 m Iron muIoni + 6 -168 m 14.6 cm -13.9 cm 48.2 GeV 12.7 GeV 7.18 m 80.9 m Iron muIoni + 7 -162 m 10.4 cm -14.8 cm 36.5 GeV 11.6 GeV 5.84 m 86.7 m Iron muIoni + 8 -158 m 2.26 cm -18.9 cm 20.2 GeV 16.4 GeV 4.56 m 91.3 m Iron muIoni + 9 -155 m 1.43 cm -21.8 cm 16.2 GeV 3.99 GeV 2.67 m 93.9 m Iron muIoni + 10 -153 m 2.5 cm -23.1 cm 12.8 GeV 3.4 GeV 2.18 m 96.1 m Iron muIoni + 11 -151 m -3.07 mm -22.9 cm 10.6 GeV 2.24 GeV 1.76 m 97.9 m Iron muIoni + 12 -150 m -1.24 cm -25 cm 8.61 GeV 1.96 GeV 1.47 m 99.3 m Iron muIoni + 13 -148 m -3.69 cm -27 cm 7.12 GeV 1.49 GeV 1.22 m 101 m Iron muIoni + 14 -147 m -8.99 cm -29.3 cm 5.7 GeV 1.41 GeV 1.03 m 102 m Iron muIoni + 15 -147 m -8.09 cm -33.8 cm 4.43 GeV 1.28 GeV 83.6 cm 102 m Iron muIoni + 16 -146 m -9.08 cm -36.9 cm 3.5 GeV 922 MeV 66.2 cm 103 m Iron muIoni + 17 -145 m -9.15 cm -37.6 cm 2.85 GeV 650 MeV 53.3 cm 104 m Iron muIoni + 18 -145 m -9.86 cm -37.3 cm 2.32 GeV 535 MeV 44.1 cm 104 m Iron muIoni + 19 -145 m -10.6 cm -38.4 cm 1.68 GeV 642 MeV 36.3 cm 104 m Iron muIoni + 20 -144 m -10.8 cm -39 cm 1.35 GeV 328 MeV 26.7 cm 105 m Iron muIoni + 21 -144 m -12.2 cm -36.8 cm 1.02 GeV 333 MeV 21.7 cm 105 m Iron muIoni + 22 -144 m -14.7 cm -35.1 cm 832 MeV 183 MeV 16.5 cm 105 m Iron muIoni + 23 -144 m -16.2 cm -34.1 cm 654 MeV 178 MeV 13.5 cm 105 m Iron muIoni + 24 -144 m -16.8 cm -32.1 cm 534 MeV 119 MeV 10.6 cm 105 m Iron muIoni + 25 -144 m -17.8 cm -29.2 cm 420 MeV 114 MeV 8.64 cm 105 m Iron muIoni + 26 -144 m -18 cm -27.1 cm 350 MeV 69.8 MeV 6.7 cm 105 m Iron muIoni + 27 -143 m -18 cm -25 cm 288 MeV 62.2 MeV 5.5 cm 106 m Iron muIoni + 28 -143 m -18.6 cm -23.6 cm 239 MeV 49.1 MeV 4.43 cm 106 m Iron muIoni + 29 -143 m -18.9 cm -22.7 cm 195 MeV 44 MeV 3.58 cm 106 m Iron muIoni + 30 -143 m -18.8 cm -21.4 cm 161 MeV 34 MeV 2.83 cm 106 m Iron muIoni + 31 -143 m -18.6 cm -20.5 cm 132 MeV 29.3 MeV 2.25 cm 106 m Iron muIoni + 32 -143 m -18.7 cm -19.8 cm 109 MeV 22.3 MeV 1.77 cm 106 m Iron muIoni + 33 -143 m -18.6 cm -19.6 cm 93.3 MeV 16 MeV 1.41 cm 106 m Iron muIoni + 34 -143 m -18.5 cm -19.3 cm 75.7 MeV 17.5 MeV 1.16 cm 106 m Iron muIoni + 35 -143 m -18.5 cm -19 cm 63.4 MeV 12.4 MeV 8.99 mm 106 m Iron muIoni + 36 -143 m -18.4 cm -18.8 cm 51.8 MeV 11.6 MeV 7.25 mm 106 m Iron muIoni + 37 -143 m -18.4 cm -18.5 cm 42 MeV 9.75 MeV 5.73 mm 106 m Iron muIoni + 38 -143 m -18.5 cm -18.3 cm 33.5 MeV 8.53 MeV 4.55 mm 106 m Iron muIoni + 39 -143 m -18.6 cm -18.2 cm 25.9 MeV 7.54 MeV 3.61 mm 106 m Iron muIoni + 40 -143 m -18.6 cm -18 cm 18.1 MeV 7.83 MeV 2.85 mm 106 m Iron muIoni + 41 -143 m -18.6 cm -17.8 cm 10.8 MeV 7.27 MeV 2.13 mm 106 m Iron muIoni + 42 -143 m -18.6 cm -17.7 cm 3.04 MeV 7.8 MeV 1.39 mm 106 m Iron muIoni + 43 -143 m -18.6 cm -17.7 cm 0 eV 3.04 MeV 166 mum 106 m Iron muIoni + 44 -143 m -18.6 cm -17.7 cm 0 eV 0 eV 0 fm 106 m Iron Decay + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -143 m -18.6 cm -17.7 cm 11.6 MeV 0 eV 0 fm 0 fm Iron initStep + 1 -250 m -16.7 m -39.7 m 11.6 MeV 0 eV 115 m 115 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = nu_e, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -143 m -18.6 cm -17.7 cm 51 MeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m -109 m -35.6 m 51 MeV 0 eV 410 m 410 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = anti_nu_mu, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -143 m -18.6 cm -17.7 cm 42 MeV 0 eV 0 fm 0 fm Iron initStep + 1 -250 m 42.1 m 23.2 m 42 MeV 0 eV 117 m 117 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 1e+03 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -242 m 0 fm 0 fm 1e+03 GeV 0 eV 7.56 m 7.56 m Iron ee2hadr + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -242 m 0 fm 0 fm 5.81 eV 0 eV 0 fm 0 fm Iron initStep + 1 250 m 0 fm 252 mum 5.81 eV 0 eV 492 m 492 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = pi-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -242 m 0 fm 0 fm 1.11 PeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m -173 mum -128 mum 1.1 PeV 750 GeV 492 m 492 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -242 m 0 fm 0 fm 872 TeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m 219 mum 162 mum 872 TeV 917 GeV 492 m 492 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 1e+03 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -248 m 0 fm 0 fm 0 eV 0 eV 1.84 m 1.84 m Iron AnnihiToMuPair + +********************************************************************************************************* +* G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -248 m 0 fm 0 fm 591 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -208 m -8.62 mm 3.17 cm 439 GeV 152 GeV 39.9 m 39.9 m Iron muIoni + 2 -175 m -3.4 cm 9.93 cm 326 GeV 112 GeV 33.3 m 73.2 m Iron muIoni + 3 -148 m -5.58 cm 11.7 cm 248 GeV 78.4 GeV 27.4 m 101 m Iron muIoni + 4 -125 m -3.07 cm 9.75 cm 191 GeV 56.5 GeV 22.6 m 123 m Iron muIoni + 5 -106 m 7.94 cm 16 cm 123 GeV 68.9 GeV 18.6 m 142 m Iron muIoni + 6 -93.4 m 18.6 cm 19.8 cm 91.8 GeV 30.8 GeV 13 m 155 m Iron muIoni + 7 -83.1 m 25.9 cm 19.4 cm 73.8 GeV 18 GeV 10.2 m 165 m Iron muIoni + 8 -74.6 m 39.7 cm 22.7 cm 57.5 GeV 16.3 GeV 8.5 m 174 m Iron muIoni + 9 -67.8 m 51.5 cm 24 cm 47.2 GeV 10.4 GeV 6.84 m 180 m Iron muIoni + 10 -62.1 m 63.6 cm 31.5 cm 38.1 GeV 9.04 GeV 5.74 m 186 m Iron muIoni + 11 -57.3 m 73.9 cm 45.2 cm 19.2 GeV 18.9 GeV 4.75 m 191 m Iron muIoni + 12 -54.8 m 77.9 cm 52.2 cm 14.3 GeV 4.9 GeV 2.55 m 193 m Iron muIoni + 13 -52.8 m 77.3 cm 57.5 cm 11.2 GeV 3.05 GeV 1.95 m 195 m Iron muIoni + 14 -51.3 m 79 cm 59.7 cm 8.95 GeV 2.27 GeV 1.56 m 197 m Iron muIoni + 15 -50 m 80.3 cm 62 cm 7.29 GeV 1.67 GeV 1.27 m 198 m Iron muIoni + 16 -49 m 83 cm 65.1 cm 5.62 GeV 1.66 GeV 1.05 m 199 m Iron muIoni + 17 -48.1 m 83.7 cm 69.4 cm 4.59 GeV 1.04 GeV 82.7 cm 200 m Iron muIoni + 18 -47.4 m 85 cm 74 cm 3.71 GeV 878 MeV 68.5 cm 201 m Iron muIoni + 19 -46.9 m 86.5 cm 79.5 cm 3.01 GeV 699 MeV 56.3 cm 201 m Iron muIoni + 20 -46.4 m 87.3 cm 87 cm 2.47 GeV 540 MeV 46.4 cm 202 m Iron muIoni + 21 -46 m 86.2 cm 92.8 cm 2 GeV 470 MeV 38.6 cm 202 m Iron muIoni + 22 -45.7 m 85.5 cm 96.6 cm 1.61 GeV 386 MeV 31.7 cm 202 m Iron muIoni + 23 -45.5 m 86.9 cm 99.4 cm 1.13 GeV 484 MeV 25.8 cm 203 m Iron muIoni + 24 -45.3 m 87.2 cm 1.01 m 881 MeV 247 MeV 18.3 cm 203 m Iron muIoni + 25 -45.1 m 88.9 cm 1.02 m 725 MeV 156 MeV 14.4 cm 203 m Iron muIoni + 26 -45 m 89.9 cm 1.02 m 588 MeV 137 MeV 11.8 cm 203 m Iron muIoni + 27 -44.9 m 92 cm 1.02 m 439 MeV 149 MeV 9.56 cm 203 m Iron muIoni + 28 -44.9 m 93.3 cm 1.03 m 361 MeV 77.3 MeV 7.04 cm 203 m Iron muIoni + 29 -44.8 m 94.7 cm 1.03 m 286 MeV 75.2 MeV 5.71 cm 203 m Iron muIoni + 30 -44.8 m 95.5 cm 1.03 m 239 MeV 47.7 MeV 4.41 cm 203 m Iron muIoni + 31 -44.7 m 96.3 cm 1.03 m 198 MeV 40.8 MeV 3.59 cm 203 m Iron muIoni + 32 -44.7 m 97.2 cm 1.03 m 165 MeV 33.2 MeV 2.88 cm 203 m Iron muIoni + 33 -44.7 m 97.5 cm 1.03 m 138 MeV 26.5 MeV 2.32 cm 204 m Iron muIoni + 34 -44.7 m 97.6 cm 1.04 m 117 MeV 21.5 MeV 1.88 cm 204 m Iron muIoni + 35 -44.7 m 97.6 cm 1.04 m 98.9 MeV 17.7 MeV 1.53 cm 204 m Iron muIoni + 36 -44.6 m 97.8 cm 1.04 m 84.6 MeV 14.2 MeV 1.25 cm 204 m Iron muIoni + 37 -44.6 m 97.8 cm 1.04 m 70.2 MeV 14.4 MeV 1.03 cm 204 m Iron muIoni + 38 -44.6 m 97.8 cm 1.04 m 58.3 MeV 11.9 MeV 8.22 mm 204 m Iron muIoni + 39 -44.6 m 97.8 cm 1.04 m 48.2 MeV 10.1 MeV 6.59 mm 204 m Iron muIoni + 40 -44.6 m 97.7 cm 1.04 m 39.3 MeV 8.9 MeV 5.3 mm 204 m Iron muIoni + 41 -44.6 m 97.7 cm 1.04 m 31.1 MeV 8.22 MeV 4.24 mm 204 m Iron muIoni + 42 -44.6 m 97.7 cm 1.04 m 23.2 MeV 7.93 MeV 3.36 mm 204 m Iron muIoni + 43 -44.6 m 97.6 cm 1.04 m 16.4 MeV 6.8 MeV 2.6 mm 204 m Iron muIoni + 44 -44.6 m 97.5 cm 1.04 m 9.21 MeV 7.18 MeV 1.97 mm 204 m Iron muIoni + 45 -44.6 m 97.5 cm 1.04 m 849 keV 8.36 MeV 1.14 mm 204 m Iron muIoni + 46 -44.6 m 97.5 cm 1.04 m 0 eV 849 keV 18.5 mum 204 m Iron muIoni + 47 -44.6 m 97.5 cm 1.04 m 0 eV 0 eV 0 fm 204 m Iron Decay + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -44.6 m 97.5 cm 1.04 m 37.7 MeV 0 eV 0 fm 0 fm Iron initStep + 1 -44.6 m 97.6 cm 1.04 m 23.3 MeV 14.3 MeV 5.55 mm 5.55 mm Iron eIoni + 2 -44.6 m 97.7 cm 1.03 m 15.7 MeV 7.64 MeV 4.45 mm 10 mm Iron eIoni + 3 -44.6 m 97.8 cm 1.03 m 9.23 MeV 6.45 MeV 3.7 mm 1.37 cm Iron eIoni + 4 -44.6 m 97.9 cm 1.03 m 4.54 MeV 4.68 MeV 2.91 mm 1.66 cm Iron eIoni + 5 -44.6 m 97.8 cm 1.03 m 1.51 MeV 3.04 MeV 2.15 mm 1.88 cm Iron eIoni + 6 -44.6 m 97.9 cm 1.03 m 350 keV 1.16 MeV 1.2 mm 2 cm Iron eIoni + 7 -44.6 m 97.9 cm 1.03 m 0 eV 350 keV 193 mum 2.02 cm Iron eIoni + +********************************************************************************************************* +* G4Track Information: Particle = anti_nu_e, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -44.6 m 97.5 cm 1.04 m 27.3 MeV 0 eV 0 fm 0 fm Iron initStep + 1 178 m 13.5 m -250 m 27.3 MeV 0 eV 336 m 336 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = nu_mu, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -44.6 m 97.5 cm 1.04 m 39.7 MeV 0 eV 0 fm 0 fm Iron initStep + 1 65.7 m -22.7 m 250 m 39.7 MeV 0 eV 273 m 273 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -248 m 0 fm 0 fm 409 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -216 m 6.2 cm -5.37 cm 309 GeV 99.6 GeV 31.8 m 31.8 m Iron muIoni + 2 -190 m 10.3 cm -16.7 cm 215 GeV 94.2 GeV 26.4 m 58.2 m Iron muIoni + 3 -170 m 19.7 cm -23 cm 166 GeV 49.4 GeV 20.3 m 78.4 m Iron muIoni + 4 -153 m 23.4 cm -24.3 cm 130 GeV 35.5 GeV 16.6 m 95 m Iron muIoni + 5 -139 m 33.1 cm -22.6 cm 101 GeV 28.8 GeV 13.7 m 109 m Iron muIoni + 6 -128 m 34.6 cm -23.8 cm 80.6 GeV 20.9 GeV 11.1 m 120 m Iron muIoni + 7 -119 m 35.6 cm -23.8 cm 64.1 GeV 16.5 GeV 9.16 m 129 m Iron muIoni + 8 -112 m 28.5 cm -28.6 cm 52.1 GeV 12 GeV 7.51 m 137 m Iron muIoni + 9 -105 m 22 cm -35.5 cm 41.7 GeV 10.4 GeV 6.26 m 143 m Iron muIoni + 10 -100 m 15.2 cm -38.2 cm 32.1 GeV 9.61 GeV 5.13 m 148 m Iron muIoni + 11 -96.2 m 5.54 cm -44.6 cm 19.5 GeV 12.6 GeV 4.06 m 152 m Iron muIoni + 12 -93.6 m 1.79 mm -47.9 cm 15.6 GeV 3.93 GeV 2.58 m 155 m Iron muIoni + 13 -91.5 m -5.25 cm -48.7 cm 12.7 GeV 2.85 GeV 2.1 m 157 m Iron muIoni + 14 -89.7 m -9.86 cm -43.2 cm 10.3 GeV 2.47 GeV 1.75 m 158 m Iron muIoni + 15 -88.3 m -13.9 cm -40.3 cm 8.21 GeV 2.05 GeV 1.43 m 160 m Iron muIoni + 16 -87.1 m -18.4 cm -39.1 cm 6.1 GeV 2.11 GeV 1.17 m 161 m Iron muIoni + 17 -86.3 m -22.6 cm -40.3 cm 5.02 GeV 1.08 GeV 89 cm 162 m Iron muIoni + 18 -85.5 m -25.1 cm -43.5 cm 4 GeV 1.03 GeV 74.5 cm 163 m Iron muIoni + 19 -84.9 m -27.5 cm -45.7 cm 3.09 GeV 906 MeV 60.3 cm 163 m Iron muIoni + 20 -84.4 m -28.8 cm -47.9 cm 2.46 GeV 635 MeV 47.5 cm 164 m Iron muIoni + 21 -84.1 m -29.4 cm -51 cm 1.96 GeV 500 MeV 38.3 cm 164 m Iron muIoni + 22 -83.7 m -30.9 cm -53 cm 1.48 GeV 473 MeV 30.9 cm 164 m Iron muIoni + 23 -83.5 m -31.2 cm -54.2 cm 1.2 GeV 282 MeV 23.8 cm 165 m Iron muIoni + 24 -83.3 m -32.1 cm -55 cm 973 MeV 228 MeV 19.4 cm 165 m Iron muIoni + 25 -83.2 m -33 cm -55.3 cm 790 MeV 183 MeV 15.8 cm 165 m Iron muIoni + 26 -83 m -32.6 cm -55.1 cm 645 MeV 144 MeV 12.9 cm 165 m Iron muIoni + 27 -82.9 m -31.8 cm -54.5 cm 527 MeV 119 MeV 10.5 cm 165 m Iron muIoni + 28 -82.8 m -30.7 cm -52.9 cm 425 MeV 102 MeV 8.51 cm 165 m Iron muIoni + 29 -82.8 m -30.7 cm -51.3 cm 330 MeV 95.1 MeV 6.79 cm 165 m Iron muIoni + 30 -82.7 m -30.9 cm -50.4 cm 275 MeV 55.4 MeV 5.16 cm 165 m Iron muIoni + 31 -82.7 m -31.2 cm -49.6 cm 228 MeV 46.8 MeV 4.2 cm 166 m Iron muIoni + 32 -82.6 m -31.8 cm -49.1 cm 190 MeV 37.8 MeV 3.4 cm 166 m Iron muIoni + 33 -82.6 m -32.3 cm -48.7 cm 154 MeV 36 MeV 2.75 cm 166 m Iron muIoni + 34 -82.6 m -33.4 cm -49 cm 129 MeV 25.5 MeV 2.14 cm 166 m Iron muIoni + 35 -82.6 m -34.4 cm -49.4 cm 106 MeV 22.9 MeV 1.72 cm 166 m Iron muIoni + 36 -82.6 m -35 cm -49.8 cm 89.8 MeV 15.9 MeV 1.35 cm 166 m Iron muIoni + 37 -82.6 m -35.6 cm -50 cm 74.7 MeV 15.1 MeV 1.11 cm 166 m Iron muIoni + 38 -82.6 m -36.1 cm -50.2 cm 62.3 MeV 12.4 MeV 8.85 mm 166 m Iron muIoni + 39 -82.6 m -36.5 cm -50.3 cm 50.3 MeV 12 MeV 7.11 mm 166 m Iron muIoni + 40 -82.6 m -36.9 cm -50.2 cm 40.5 MeV 9.86 MeV 5.54 mm 166 m Iron muIoni + 41 -82.5 m -37.3 cm -50.2 cm 32.6 MeV 7.89 MeV 4.37 mm 166 m Iron muIoni + 42 -82.5 m -37.6 cm -50.1 cm 25.5 MeV 7.11 MeV 3.51 mm 166 m Iron muIoni + 43 -82.5 m -37.8 cm -50.2 cm 18.3 MeV 7.15 MeV 2.8 mm 166 m Iron muIoni + 44 -82.5 m -38 cm -50.1 cm 11.5 MeV 6.87 MeV 2.15 mm 166 m Iron muIoni + 45 -82.5 m -38.2 cm -50.1 cm 3.8 MeV 7.66 MeV 1.47 mm 166 m Iron muIoni + 46 -82.5 m -38.2 cm -50.1 cm 0 eV 3.8 MeV 245 mum 166 m Iron muIoni + 47 -82.5 m -38.2 cm -50.1 cm 0 eV 0 eV 0 fm 166 m Iron Decay + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -82.5 m -38.2 cm -50.1 cm 21.7 MeV 0 eV 0 fm 0 fm Iron initStep + 1 32.4 m -87.5 m -250 m 21.7 MeV 0 eV 288 m 288 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = nu_e, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -82.5 m -38.2 cm -50.1 cm 46.2 MeV 0 eV 0 fm 0 fm Iron initStep + 1 -54 m 250 m 132 m 46.2 MeV 0 eV 285 m 285 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = anti_nu_mu, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -82.5 m -38.2 cm -50.1 cm 36.7 MeV 0 eV 0 fm 0 fm Iron initStep + 1 -180 m -250 m -20.5 m 36.7 MeV 0 eV 269 m 269 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 1e+03 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -247 m 0 fm 0 fm 1e+03 GeV 0 eV 2.84 m 2.84 m Iron ee2hadr + 2 -247 m 0 fm 0 fm 1e+03 GeV 0 eV 15.2 cm 2.99 m Iron ee2hadr + 3 -247 m 0 fm 0 fm 1e+03 GeV 0 eV 36.7 cm 3.35 m Iron ee2hadr + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -247 m 0 fm 0 fm 868 TeV 0 eV 0 fm 0 fm Iron initStep + 1 -124 m 0 fm 62.5 mum 0 eV 0 eV 122 m 122 m Iron GammaToMuPair + +********************************************************************************************************* +* G4Track Information: Particle = mu-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -124 m 0 fm 62.5 mum 460 TeV 0 eV 0 fm 0 fm Iron initStep + 1 64.8 m -3.14 mm -3.02 mm 414 TeV 45.4 TeV 189 m 189 m Iron muIoni + 2 250 m -2.93 mm -2.91 mm 367 TeV 47.5 TeV 185 m 374 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -124 m 0 fm 62.5 mum 408 TeV 0 eV 0 fm 0 fm Iron initStep + 1 64.8 m -3.06 mm 3.42 mm 355 TeV 53.4 TeV 189 m 189 m Iron muIoni + 2 250 m -3.02 mm 3.17 mm 308 TeV 46.6 TeV 185 m 374 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = pi-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -247 m 0 fm 0 fm 566 TeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m -45.6 mum -282 mum 565 TeV 805 GeV 497 m 497 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -247 m 0 fm 0 fm 544 TeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m 47.5 mum -112 mum 543 TeV 752 GeV 497 m 497 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 1e+03 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -249 m 0 fm 0 fm 1e+03 GeV 0 eV 1.32 m 1.32 m Iron ee2hadr + 2 -246 m 0 fm 0 fm 1e+03 GeV 0 eV 2.43 m 3.75 m Iron ee2hadr + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -246 m 0 fm 0 fm 1.96e-07 eV 0 eV 0 fm 0 fm Iron initStep + 1 250 m 0 fm 254 mum1.96e-07 eV 0 eV 496 m 496 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = pi-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -246 m 0 fm 0 fm 1.86 PeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m 48.9 mum -10.9 mum 1.86 PeV 806 GeV 496 m 496 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = pi+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -246 m 0 fm 0 fm 113 TeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m -809 mum 181 mum 112 TeV 775 GeV 496 m 496 m OutOfWorld Transportation +Run terminated. +Run Summary + Number of events processed : 5 + User=0.19s Real=0.23s Sys=0s + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 450256108, 1570705589 +---------------------------------------- +# +/gun/particle anti_proton +/gun/energy 1 GeV +/run/beamOn 2 + +Region -- appears in world volume + Materials : Iron + Production cuts : gamma 1 km e- 1 km e+ 1 km + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Iron + Range cuts : gamma 1 km e- 1 km e+ 1 km + Energy thresholds : gamma 2.8802232e+295 J e- 2.8802232e+295 J e+ 2.8802232e+295 J + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +### Run 2 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 450256108, 1570705589 +---------------------------------------- +Start Run processing. + +---> Begin of Event: 0 + +********************************************************************************************************* +* G4Track Information: Particle = anti_proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 1 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -250 m -820 mum -69.3 mum 918 MeV 82.1 MeV 5.8 cm 5.8 cm Iron hhIoni + 2 -250 m -2.53 mm -1.16 mm 851 MeV 66.9 MeV 5.16 cm 11 cm Iron hhIoni + 3 -250 m -3.97 mm -790 mum 791 MeV 60.3 MeV 4.64 cm 15.6 cm Iron hhIoni + 4 -250 m -6.34 mm -1.27 mm 734 MeV 56.2 MeV 4.17 cm 19.8 cm Iron hhIoni + 5 -250 m -7.28 mm -2.29 mm 685 MeV 49.4 MeV 3.76 cm 23.5 cm Iron hhIoni + 6 -250 m -9.77 mm -3.68 mm 633 MeV 52.4 MeV 3.4 cm 26.9 cm Iron hhIoni + 7 -250 m -1.22 cm -4.99 mm 590 MeV 42.6 MeV 3.02 cm 30 cm Iron hhIoni + 8 -250 m -1.44 cm -6.2 mm 552 MeV 38.5 MeV 2.73 cm 32.7 cm Iron hhIoni + 9 -250 m -1.74 cm -7.39 mm 515 MeV 36.2 MeV 2.47 cm 35.2 cm Iron hhIoni + 10 -250 m -1.93 cm -8.11 mm 481 MeV 33.9 MeV 2.22 cm 37.4 cm Iron hhIoni + 11 -250 m -2.21 cm -7.68 mm 450 MeV 31.6 MeV 2.01 cm 39.4 cm Iron hhIoni + 12 -250 m -2.45 cm -7.78 mm 422 MeV 27.9 MeV 1.81 cm 41.2 cm Iron hhIoni + 13 -250 m -2.7 cm -7.94 mm 396 MeV 26.2 MeV 1.64 cm 42.8 cm Iron hhIoni + 14 -250 m -2.89 cm -7.7 mm 368 MeV 27.3 MeV 1.48 cm 44.3 cm Iron hhIoni + 15 -250 m -3.07 cm -7.9 mm 343 MeV 24.9 MeV 1.33 cm 45.6 cm Iron hhIoni + 16 -250 m -3.23 cm -8.02 mm 321 MeV 22.3 MeV 1.19 cm 46.8 cm Iron hhIoni + 17 -250 m -3.36 cm -8.08 mm 301 MeV 20.6 MeV 1.06 cm 47.9 cm Iron hhIoni + 18 -250 m -3.48 cm -8.07 mm 281 MeV 20 MeV 9.6 mm 48.9 cm Iron hhIoni + 19 -250 m -3.58 cm -7.52 mm 264 MeV 16.9 MeV 8.62 mm 49.7 cm Iron hhIoni + 20 -249 m -3.67 cm -7.46 mm 248 MeV 15.5 MeV 7.78 mm 50.5 cm Iron hhIoni + 21 -249 m -3.75 cm -7.4 mm 232 MeV 15.8 MeV 7.04 mm 51.2 cm Iron hhIoni + 22 -249 m -3.8 cm -7.37 mm 218 MeV 14.9 MeV 6.35 mm 51.8 cm Iron hhIoni + 23 -249 m -3.84 cm -7.48 mm 204 MeV 13.8 MeV 5.71 mm 52.4 cm Iron hhIoni + 24 -249 m -3.86 cm -7.65 mm 192 MeV 11.7 MeV 5.12 mm 52.9 cm Iron hhIoni + 25 -249 m -3.88 cm -7.78 mm 181 MeV 11 MeV 4.65 mm 53.4 cm Iron hhIoni + 26 -249 m -3.9 cm -7.82 mm 170 MeV 11.3 MeV 4.24 mm 53.8 cm Iron hhIoni + 27 -249 m -3.92 cm -7.91 mm 159 MeV 10.8 MeV 3.82 mm 54.2 cm Iron hhIoni + 28 -249 m -3.93 cm -7.98 mm 149 MeV 10.1 MeV 3.41 mm 54.5 cm Iron hhIoni + 29 -249 m -3.93 cm -8.04 mm 139 MeV 9.47 MeV 3.08 mm 54.8 cm Iron hhIoni + 30 -249 m -3.94 cm -8.2 mm 130 MeV 9 MeV 2.78 mm 55.1 cm Iron hhIoni + 31 -249 m -3.94 cm -8.36 mm 122 MeV 8.21 MeV 2.49 mm 55.4 cm Iron hhIoni + 32 -249 m -3.93 cm -8.42 mm 114 MeV 8 MeV 2.24 mm 55.6 cm Iron hhIoni + 33 -249 m -3.93 cm -8.57 mm 107 MeV 7.26 MeV 2.02 mm 55.8 cm Iron hhIoni + 34 -249 m -3.92 cm -8.64 mm 99.7 MeV 7.32 MeV 1.82 mm 56 cm Iron hhIoni + 35 -249 m -3.91 cm -8.66 mm 94.1 MeV 5.58 MeV 1.62 mm 56.1 cm Iron hhIoni + 36 -249 m -3.91 cm -8.7 mm 87.5 MeV 6.58 MeV 1.49 mm 56.3 cm Iron hhIoni + 37 -249 m -3.9 cm -8.69 mm 81.6 MeV 5.92 MeV 1.33 mm 56.4 cm Iron hhIoni + 38 -249 m -3.9 cm -8.7 mm 75.9 MeV 5.73 MeV 1.2 mm 56.5 cm Iron hhIoni + 39 -249 m -3.89 cm -8.68 mm 70.6 MeV 5.28 MeV 1.08 mm 56.6 cm Iron hhIoni + 40 -249 m -3.9 cm -8.68 mm 65.3 MeV 5.27 MeV 971 mum 56.7 cm Iron hhIoni + 41 -249 m -3.9 cm -8.73 mm 60.8 MeV 4.54 MeV 867 mum 56.8 cm Iron hhIoni + 42 -249 m -3.9 cm -8.77 mm 56.5 MeV 4.3 MeV 785 mum 56.9 cm Iron hhIoni + 43 -249 m -3.91 cm -8.83 mm 52.2 MeV 4.27 MeV 713 mum 57 cm Iron hhIoni + 44 -249 m -3.92 cm -8.91 mm 47.9 MeV 4.31 MeV 643 mum 57 cm Iron hhIoni + 45 -249 m -3.93 cm -8.95 mm 43.8 MeV 4.05 MeV 577 mum 57.1 cm Iron hhIoni + 46 -249 m -3.94 cm -8.95 mm 39.9 MeV 3.95 MeV 520 mum 57.2 cm Iron hhIoni + 47 -249 m -3.95 cm -8.97 mm 36.2 MeV 3.71 MeV 465 mum 57.2 cm Iron hhIoni + 48 -249 m -3.96 cm -8.97 mm 32.5 MeV 3.69 MeV 421 mum 57.2 cm Iron hhIoni + 49 -249 m -3.96 cm -8.99 mm 28.7 MeV 3.77 MeV 377 mum 57.3 cm Iron hhIoni + 50 -249 m -3.97 cm -9.01 mm 24.9 MeV 3.86 MeV 338 mum 57.3 cm Iron hhIoni + 51 -249 m -3.98 cm -9.04 mm 21.1 MeV 3.74 MeV 299 mum 57.3 cm Iron hhIoni + 52 -249 m -3.98 cm -9.05 mm 17.5 MeV 3.6 MeV 266 mum 57.4 cm Iron hhIoni + 53 -249 m -3.99 cm -9.06 mm 13.5 MeV 3.98 MeV 236 mum 57.4 cm Iron hhIoni + 54 -249 m -3.99 cm -9.07 mm 9.55 MeV 3.98 MeV 204 mum 57.4 cm Iron hhIoni + 55 -249 m -4 cm -9.09 mm 4.77 MeV 4.78 MeV 167 mum 57.4 cm Iron hhIoni + 56 -249 m -4 cm -9.09 mm 0 eV 4.77 MeV 76 mum 57.4 cm Iron hhIoni + +********************************************************************************************************* +* G4Track Information: Particle = anti_proton, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 m 0 fm 0 fm 1 GeV 0 eV 0 fm 0 fm Iron initStep + 1 -250 m -349 mum 745 mum 925 MeV 75.5 MeV 5.8 cm 5.8 cm Iron hhIoni + 2 -250 m -1.16 mm 1.06 mm 861 MeV 63.7 MeV 5.21 cm 11 cm Iron hhIoni + 3 -250 m -1.01 mm 2.34 mm 800 MeV 60.6 MeV 4.72 cm 15.7 cm Iron hhIoni + 4 -250 m -2.14 mm 5.43 mm 746 MeV 54.7 MeV 4.25 cm 20 cm Iron hhIoni + 5 -250 m -2.52 mm 8.19 mm 692 MeV 53.4 MeV 3.84 cm 23.8 cm Iron hhIoni + 6 -250 m -2.24 mm 1.12 cm 647 MeV 45.5 MeV 3.45 cm 27.3 cm Iron hhIoni + 7 -250 m -2.79 mm 1.38 cm 602 MeV 44.4 MeV 3.12 cm 30.4 cm Iron hhIoni + 8 -250 m -3.52 mm 1.56 cm 562 MeV 40.7 MeV 2.81 cm 33.2 cm Iron hhIoni + 9 -250 m -4.11 mm 1.72 cm 524 MeV 37.5 MeV 2.54 cm 35.7 cm Iron hhIoni + 10 -250 m -5.21 mm 1.81 cm 491 MeV 32.8 MeV 2.28 cm 38 cm Iron hhIoni + 11 -250 m -6.34 mm 1.81 cm 459 MeV 32.5 MeV 2.07 cm 40.1 cm Iron hhIoni + 12 -250 m -7.76 mm 1.83 cm 430 MeV 29 MeV 1.87 cm 42 cm Iron hhIoni + 13 -250 m -8.41 mm 1.8 cm 403 MeV 27.2 MeV 1.69 cm 43.6 cm Iron hhIoni + 14 -250 m -8.89 mm 1.84 cm 376 MeV 26.8 MeV 1.52 cm 45.2 cm Iron hhIoni + 15 -250 m -9.4 mm 1.89 cm 353 MeV 22.3 MeV 1.37 cm 46.5 cm Iron hhIoni + 16 -250 m -1.11 cm 1.93 cm 331 MeV 22.8 MeV 1.24 cm 47.8 cm Iron hhIoni + 17 -250 m -1.22 cm 1.95 cm 310 MeV 20.5 MeV 1.12 cm 48.9 cm Iron hhIoni + 18 -250 m -1.33 cm 1.98 cm 289 MeV 21 MeV 1.01 cm 49.9 cm Iron hhIoni + 19 -249 m -1.44 cm 1.7 cm 270 MeV 18.8 MeV 9.03 mm 50.8 cm Iron hhIoni + 20 -249 m -1.54 cm 1.44 cm 252 MeV 17.9 MeV 8.1 mm 51.6 cm Iron hhIoni + 21 -249 m -1.62 cm 1.21 cm 236 MeV 16.3 MeV 7.22 mm 52.3 cm Iron hhIoni + 22 -249 m -1.67 cm 1.02 cm 221 MeV 15.2 MeV 6.51 mm 53 cm Iron hhIoni + 23 -249 m -1.71 cm 8.24 mm 206 MeV 14.5 MeV 5.85 mm 53.6 cm Iron hhIoni + 24 -249 m -1.75 cm 6.76 mm 194 MeV 12.4 MeV 5.22 mm 54.1 cm Iron hhIoni + 25 -249 m -1.79 cm 5.47 mm 181 MeV 13.3 MeV 4.72 mm 54.6 cm Iron hhIoni + 26 -249 m -1.82 cm 4.29 mm 169 MeV 11.5 MeV 4.22 mm 55 cm Iron hhIoni + 27 -249 m -1.85 cm 3.2 mm 159 MeV 10.7 MeV 3.79 mm 55.4 cm Iron hhIoni + 28 -249 m -1.88 cm 2.5 mm 149 MeV 9.72 MeV 3.39 mm 55.7 cm Iron hhIoni + 29 -249 m -1.91 cm 1.91 mm 139 MeV 9.63 MeV 3.08 mm 56 cm Iron hhIoni + 30 -249 m -1.94 cm 1.36 mm 130 MeV 8.78 MeV 2.77 mm 56.3 cm Iron hhIoni + 31 -249 m -1.96 cm 933 mum 122 MeV 8.91 MeV 2.49 mm 56.5 cm Iron hhIoni + 32 -249 m -1.98 cm 584 mum 114 MeV 7.97 MeV 2.22 mm 56.8 cm Iron hhIoni + 33 -249 m -2 cm 215 mum 106 MeV 7.29 MeV 2 mm 57 cm Iron hhIoni + 34 -249 m -2.02 cm -121 mum 99 MeV 7.3 MeV 1.8 mm 57.1 cm Iron hhIoni + 35 -249 m -2.04 cm -385 mum 91.9 MeV 7.04 MeV 1.6 mm 57.3 cm Iron hhIoni + 36 -249 m -2.06 cm -652 mum 86.1 MeV 5.84 MeV 1.44 mm 57.4 cm Iron hhIoni + 37 -249 m -2.08 cm -897 mum 80 MeV 6.05 MeV 1.3 mm 57.6 cm Iron hhIoni + 38 -249 m -2.1 cm -1.11 mm 74.4 MeV 5.63 MeV 1.16 mm 57.7 cm Iron hhIoni + 39 -249 m -2.12 cm -1.28 mm 69 MeV 5.41 MeV 1.05 mm 57.8 cm Iron hhIoni + 40 -249 m -2.13 cm -1.43 mm 64.1 MeV 4.95 MeV 940 mum 57.9 cm Iron hhIoni + 41 -249 m -2.15 cm -1.57 mm 59.7 MeV 4.4 MeV 842 mum 58 cm Iron hhIoni + 42 -249 m -2.16 cm -1.74 mm 55 MeV 4.65 MeV 766 mum 58.1 cm Iron hhIoni + 43 -249 m -2.17 cm -1.88 mm 50.5 MeV 4.45 MeV 689 mum 58.1 cm Iron hhIoni + 44 -249 m -2.19 cm -2.02 mm 46.4 MeV 4.17 MeV 615 mum 58.2 cm Iron hhIoni + 45 -249 m -2.2 cm -2.14 mm 42.3 MeV 4.13 MeV 556 mum 58.2 cm Iron hhIoni + 46 -249 m -2.21 cm -2.23 mm 38.5 MeV 3.79 MeV 498 mum 58.3 cm Iron hhIoni + 47 -249 m -2.23 cm -2.31 mm 34.5 MeV 3.91 MeV 448 mum 58.3 cm Iron hhIoni + 48 -249 m -2.24 cm -2.38 mm 30.7 MeV 3.84 MeV 402 mum 58.4 cm Iron hhIoni + 49 -249 m -2.25 cm -2.46 mm 27.1 MeV 3.61 MeV 358 mum 58.4 cm Iron hhIoni + 50 -249 m -2.26 cm -2.53 mm 23.4 MeV 3.68 MeV 321 mum 58.4 cm Iron hhIoni + 51 -249 m -2.27 cm -2.58 mm 19.7 MeV 3.71 MeV 286 mum 58.5 cm Iron hhIoni + 52 -249 m -2.28 cm -2.6 mm 16.2 MeV 3.52 MeV 253 mum 58.5 cm Iron hhIoni + 53 -249 m -2.28 cm -2.63 mm 12.3 MeV 3.92 MeV 225 mum 58.5 cm Iron hhIoni + 54 -249 m -2.29 cm -2.66 mm 7.96 MeV 4.3 MeV 193 mum 58.5 cm Iron hhIoni + 55 -249 m -2.3 cm -2.7 mm 2.49 MeV 5.47 MeV 147 mum 58.6 cm Iron hhIoni + 56 -249 m -2.3 cm -2.7 mm 0 eV 2.49 MeV 26.6 mum 58.6 cm Iron hhIoni +Run terminated. +Run Summary + Number of events processed : 2 + User=0.08s Real=0.09s Sys=0s + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 1870259818, 1503420701 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh index cd98b68586..aa8a66ba01 100644 --- a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.2 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh index ad0857a0bf..98b9d1e510 100644 --- a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.3 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh index 84c9044241..1180f40c0f 100644 --- a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.2 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh index 5d59585eb1..68b25a4769 100644 --- a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh index 4fc0896a1c..610681ae29 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.hh,v 1.4 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.hh,v 1.5 2005/11/23 19:23:36 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,7 +34,7 @@ class PhysicsListMessenger; class G4GammaConversionToMuons; -class G4AnnihiToMuPair; +class G4AnnihiToMuPair; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,19 +48,20 @@ class PhysicsList: public G4VUserPhysicsList void ConstructParticle(); void ConstructBosons(); void ConstructLeptons(); - + void ConstructHadrons(); + void SetCuts(); - + // Construct processes and register them - void ConstructProcess(); + void ConstructProcess(); void ConstructGeneral(); void ConstructEM(); - + void SetGammaToMuPairFac(G4double); void SetAnnihiToMuPairFac(G4double); - + private: - PhysicsListMessenger* pMes; + PhysicsListMessenger* pMes; G4GammaConversionToMuons* theGammaToMuPairProcess; G4AnnihiToMuPair* theAnnihiToMuPairProcess; }; diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh index 172259848b..eb9e64566f 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.3 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh index b71b9832fd..5bb3029a5e 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/09/27 09:35:33 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh index 0732093259..c1dae2ba76 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.2 2004/09/27 09:35:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh index e6c21b4133..940c5ea400 100644 --- a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.8 2004/09/27 09:35:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh index f2684326b8..6e6f0f9269 100644 --- a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.3 2004/12/02 16:28:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh index 124462f7dd..447845f944 100644 --- a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.2 2004/09/27 09:35:34 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc index 06ce3ad65d..83e2361310 100644 --- a/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.cc,v 1.9 2004/09/27 09:35:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc index 7d5c3a1922..8fcd682299 100644 --- a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.4 2004/09/27 09:35:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc index 1a56cea64a..7eb8e2cf1b 100644 --- a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.5 2004/09/27 09:35:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc index 927ae77552..55fff05d8d 100644 --- a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.5 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc index aea60eacde..f20c8914fb 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.7 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.9 2005/11/29 08:24:15 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,6 +34,33 @@ #include "G4ParticleTypes.hh" #include "G4ParticleTable.hh" +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4Neutron.hh" +#include "G4AntiNeutron.hh" +//#include "G4GenericIon.hh" + +#include "G4GammaConversionToMuons.hh" + +#include "G4MultipleScattering.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" +#include "G4AnnihiToMuPair.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4hhIonisation.hh" +#include "G4ionIonisation.hh" +#include "G4eeToHadrons.hh" + +#include "G4Decay.hh" +#include "G4EmProcessOptions.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::PhysicsList() @@ -44,12 +71,17 @@ PhysicsList::PhysicsList() theGammaToMuPairProcess = 0; theAnnihiToMuPairProcess = 0; SetVerboseLevel(1); + verboseLevel = 1; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::~PhysicsList() -{ delete pMes; } +{ + delete pMes; + delete theAnnihiToMuPairProcess; + delete theGammaToMuPairProcess; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -58,10 +90,10 @@ void PhysicsList::ConstructParticle() // In this method, static member functions should be called // for all particles which you want to use. // This ensures that objects of these particle types will be - // created in the program. - + // created in the program. ConstructBosons(); ConstructLeptons(); + ConstructHadrons(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -71,7 +103,7 @@ void PhysicsList::ConstructBosons() // pseudo-particles G4Geantino::GeantinoDefinition(); G4ChargedGeantino::ChargedGeantinoDefinition(); - + // gamma G4Gamma::GammaDefinition(); } @@ -89,7 +121,30 @@ void PhysicsList::ConstructLeptons() G4NeutrinoE::NeutrinoEDefinition(); G4AntiNeutrinoE::AntiNeutrinoEDefinition(); G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructHadrons() +{ + // mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4Eta::EtaDefinition(); + G4EtaPrime::EtaPrimeDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + G4KaonZero::KaonZeroDefinition(); + G4AntiKaonZero::AntiKaonZeroDefinition(); + G4KaonZeroLong::KaonZeroLongDefinition(); + G4KaonZeroShort::KaonZeroShortDefinition(); + + // baryons + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -103,67 +158,69 @@ void PhysicsList::ConstructProcess() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4GammaConversionToMuons.hh" - -#include "G4MultipleScattering.hh" - -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation.hh" -#include "G4AnnihiToMuPair.hh" - -#include "G4MuIonisation.hh" -#include "G4MuBremsstrahlung.hh" -#include "G4MuPairProduction.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void PhysicsList::ConstructEM() { + G4double factor = 10000.0; theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); - + // G4cout << "New Particle " << particleName << G4endl; if (particleName == "gamma") { - // gamma allow only gamma -> mu+mu- - theGammaToMuPairProcess=new G4GammaConversionToMuons; + // gamma allow only gamma -> mu+mu- + theGammaToMuPairProcess=new G4GammaConversionToMuons(); pmanager->AddDiscreteProcess(theGammaToMuPairProcess); - + } else if (particleName == "e-") { //electron pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); } else if (particleName == "e+") { //positron // to make the process of e+e- annihilation more visible, // do not enable the other standard processes: - // pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); - // pmanager->AddProcess(new G4eIonisation, -1, 2,2); + //pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + //pmanager->AddProcess(new G4eIonisation, -1, 2,2); // pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); // pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - theAnnihiToMuPairProcess=new G4AnnihiToMuPair; + theAnnihiToMuPairProcess=new G4AnnihiToMuPair(); + G4eeToHadrons* eehad = new G4eeToHadrons(); + theAnnihiToMuPairProcess->SetCrossSecFactor(factor); + eehad->SetCrossSecFactor(factor); pmanager->AddDiscreteProcess(theAnnihiToMuPairProcess); - - } else if( particleName == "mu+" || + pmanager->AddDiscreteProcess(eehad); + + } else if( particleName == "mu+" || particleName == "mu-" ) { - //muon + //muon pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); pmanager->AddProcess(new G4MuIonisation, -1, 2,2); pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); - pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - - } + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if( particleName == "anti_proton") { + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4hhIonisation, -1, 2,2); + + } else if( particleName == "GenericIon") { + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + + } else if( particle->GetPDGCharge() != 0.0 && !particle->IsShortLived() + && particleName != "chargedgeantino") { + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4hIonisation, -1, 2,2); + } } + G4EmProcessOptions opt; + opt.SetVerbose(1); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4Decay.hh" - void PhysicsList::ConstructGeneral() { // Add Decay Process @@ -172,7 +229,7 @@ void PhysicsList::ConstructGeneral() while ((*theParticleIterator)()){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { + if (theDecayProcess->IsApplicable(*particle) && !particle->IsShortLived()) { pmanager ->AddProcess(theDecayProcess); // set ordering for PostStepDoIt and AtRestDoIt pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc index 38ee251ca2..188369a7b2 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.6 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc index 6990d041dc..b27669f4d2 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc index 3e59151927..0a08b6ee2e 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.4 2004/09/27 09:35:38 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc index ef13361781..dba96fe9e6 100644 --- a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.10 2005/06/01 12:57:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.11 2005/12/06 11:50:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -103,7 +103,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -111,7 +111,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) void RunAction::EndOfRunAction(const G4Run*) { // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc index 778e756bf4..f4c169a531 100644 --- a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.8 2004/12/02 16:28:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc index a1acc6b59c..329d25f8c4 100644 --- a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.4 2004/09/27 09:35:39 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/History b/examples/extended/electromagnetic/TestEm7/History index 44c656bd9c..4ff9767dac 100644 --- a/examples/extended/electromagnetic/TestEm7/History +++ b/examples/extended/electromagnetic/TestEm7/History @@ -1,4 +1,4 @@ -$Id: History,v 1.29 2005/06/01 13:12:13 maire Exp $ +$Id: History,v 1.33 2005/12/06 11:51:31 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,19 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +02-12-05: V.Ivant (testem7-V07-01-02) +- Fix crash connected with non-static hadrons + +22-11-05 mma (testem7-V07-01-01) +- update README for OpenScientist + +06-10-05 mma (testem7-V07-01-00) +- create PhysListEmG4v71 (g4v71) for G4MultipleScattering71 + 01-06-05 mma (testem7-V07-00-03) - RunAction : option "--noErrors" for hbook diff --git a/examples/extended/electromagnetic/TestEm7/README b/examples/extended/electromagnetic/TestEm7/README index 085b764ea7..fac7b54693 100644 --- a/examples/extended/electromagnetic/TestEm7/README +++ b/examples/extended/electromagnetic/TestEm7/README @@ -1,4 +1,4 @@ -$Id: README,v 1.11 2005/03/02 12:30:36 maire Exp $ +$Id: README,v 1.12 2005/11/22 16:56:14 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -152,32 +152,28 @@ $Id: README,v 1.11 2005/03/02 12:30:36 maire Exp $ eval `aida-config --runtime csh` 8b - OpenScientist - - OpenScientist is available at http://www.lal.in2p3.fr/OpenScientist - - In OpenScientist, the AIDA implementation is the Lab package. - You have to "setup" this package before compiling (then with G4ANALYSIS_USE) - and running your Geant4 application. - - On UNIX you setup, with a csh flavoured shell : - csh> setenv CMTPATH - csh> source /Lab//cmt/setup.csh - On UNIX with a sh flavoured shell : - sh> CMTPATH=;export CMTPATH - sh> . /Lab//cmt/setup.sh - On Windows : - DOS> set CMTPATH= - DOS> call /Lab//cmt/setup.bat - You have to use the XML or root file formats ; producing hbook files is not - supported by OpenScientist/Lab. But the three formats (hbook, AIDA-XML, root) - are readable by the interactive applications ; the Lab onx interactive - program or the OpenPAW program. + OpenScientist is available at http://OpenScientist.lal.in2p3.fr. - With OpenPAW, someone can view the histograms with : + You have to "setup" the OpenScientist AIDA implementation before compiling + (then with G4ANALYSIS_USE set) and running your Geant4 application. + + On UNIX you setup, with a csh flavoured shell : + csh> source </aida-setup.csh + or with a sh flavoured shell : + sh> . </aida-setup.sh + On Windows : + DOS> call </aida-setup.bat + + You can use various file formats for writing (AIDA-XML, hbook, root). + These formats are readable by the Lab onx interactive program + or the OpenPAW application. See the web pages. + + + With OpenPAW, on a run.hbook file, one can view the histograms + with something like : OS> opaw - opaw> h/file 1 run0.aida (or opaw> h/file 1 run1.root) + opaw> h/file 1 run.hbook ( or opaw> h/file 1 run.aida or run.root) opaw> zone 2 2 opaw> h/plot 1 - opaw> h/plot 2 - opaw> h/plot 3 + opaw> h/plot 2 diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.cc b/examples/extended/electromagnetic/TestEm7/TestEm7.cc index b3bfcdcdfa..4122551dfc 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.cc +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TestEm7.cc,v 1.4 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm7.cc,v 1.5 2005/12/06 11:51:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -51,7 +51,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new SteppingVerbose); diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.in b/examples/extended/electromagnetic/TestEm7/TestEm7.in index 5edcbd9935..4eef50e6a2 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.in +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.in @@ -1,4 +1,4 @@ -# $Id: TestEm7.in,v 1.10 2005/05/13 10:54:53 maire Exp $ +# $Id: TestEm7.in,v 1.11 2005/10/06 14:13:51 maire Exp $ # # Macro file for "TestEm7.cc" # (can be run in batch, without graphic) @@ -11,7 +11,7 @@ /testem/det/setSizeX 20 cm /testem/det/setSizeYZ 20 cm # -/testem/phys/addPhysics standard # em physics +/testem/phys/addPhysics standard # em physics ###/testem/phys/addPhysics binary # hadronic physics # /run/initialize diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.out b/examples/extended/electromagnetic/TestEm7/TestEm7.out index 4e09f943e0..224d9f0d67 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.out +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -35,13 +35,15 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... /run/verbose 2 # /testem/det/setMat Water /testem/det/setSizeX 20 cm /testem/det/setSizeYZ 20 cm # -/testem/phys/addPhysics standard # em physics +/testem/phys/addPhysics standard # em physics PhysicsList::AddPhysicsList: ###/testem/phys/addPhysics binary # hadronic physics # @@ -54,7 +56,6 @@ userDetector->Construct() start. --------------------------------------------------------- World is registered to the default region. physicsList->Construct() start. -physicsList->ConstructParticle() start. physicsList->Construct() start. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm @@ -81,13 +82,13 @@ conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV f msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -99,7 +100,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -113,7 +114,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -133,7 +134,7 @@ ionIoni: tables are built for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -171,9 +172,9 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Galactic Water Production cuts : gamma 1 mm e- 1 mm e+ 1 mm @@ -230,15 +231,15 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10000 - User=314.43s Real=502.92s Sys=58.56s + User=324.79s Real=460.28s Sys=54.19s The run consists of 10000 proton of 160 MeV through 20 cm of Water (density: 1 g/cm3 ) - projected Range= 17.675 cm rms= 1.9371 mm + projected Range= 17.674 cm rms= 2.3568 mm --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 84919421, 1360973571 + Current couple of seeds = 2077348605, 481531672 ---------------------------------------- # /gun/particle ion @@ -247,7 +248,7 @@ Run Summary # /run/beamOn 1000 -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Galactic Water Production cuts : gamma 1 mm e- 1 mm e+ 1 mm @@ -273,7 +274,7 @@ Index : 1 used in the geometry : Yes recalculation needed : No --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 84919421, 1360973571 + Current couple of seeds = 2077348605, 481531672 ---------------------------------------- Start Run processing. @@ -281,15 +282,15 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 1000 - User=92.37s Real=117.7s Sys=10.78s + User=92.65s Real=113.07s Sys=11.91s The run consists of 1000 C12[0.0] of 3.5 GeV through 20 cm of Water (density: 1 g/cm3 ) - projected Range= 16.371 cm rms= 489.49 mum + projected Range= 16.371 cm rms= 461.67 mum --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 621221464, 1897520327 + Current couple of seeds = 14066575, 1986435179 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm7/hadron.mac b/examples/extended/electromagnetic/TestEm7/hadron.mac index e00514a0d0..3f40c2585f 100644 --- a/examples/extended/electromagnetic/TestEm7/hadron.mac +++ b/examples/extended/electromagnetic/TestEm7/hadron.mac @@ -1,4 +1,4 @@ -# $Id: hadron.mac,v 1.1 2004/11/26 15:30:49 maire Exp $ +# $Id: hadron.mac,v 1.2 2005/10/03 09:43:41 vnivanch Exp $ # # Macro file for "TestEm7.cc" # (can be run in batch, without graphic) @@ -17,12 +17,12 @@ /testem/phys/addPhysics binary_ion #hadronic physics /testem/phys/addPhysics elastic #hadronic physics # -/testem/phys/setCuts 1 km +/testem/phys/setCuts 0.2 mm # /run/initialize # -/gun/particle proton -/gun/energy 1 GeV +/gun/particle pi- +/gun/energy 0.2 GeV # /testem/event/printModulo 1000 # diff --git a/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh index b2c9f31206..5dd238364a 100644 --- a/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.hh,v 1.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh index 871e359f38..d0b960f877 100644 --- a/examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/DetectorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.hh,v 1.2 2004/09/27 14:42:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/EventAction.hh b/examples/extended/electromagnetic/TestEm7/include/EventAction.hh index 72c13380c0..2edb74da38 100644 --- a/examples/extended/electromagnetic/TestEm7/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.hh,v 1.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh index 1e3ab7283e..197c9bc1b4 100644 --- a/examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2004/09/27 14:42:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh index 83991257a4..d0ff64c29f 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.hh,v 1.5 2004/09/27 14:42:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // The class provides PhysicsList for Binary Cascade for // protons and neutrons with the energy E<3 GeV diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh index 1f5c2569b8..aaeaadfac3 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.1 2003/10/10 16:24:59 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v71.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v71.hh new file mode 100644 index 0000000000..6430b2e625 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.hh,v 1.1 2005/10/06 14:13:51 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmG4v71_h +#define PhysListEmG4v71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmG4v71 : public G4VPhysicsConstructor +{ + public: + PhysListEmG4v71(const G4String& name = "g4v71"); + ~PhysListEmG4v71(); + + public: + // This method is dummy for physics + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh index f676cb7341..0e25f6c53b 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.2 2003/10/10 16:21:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh index b33b987c2d..b7be5dc5e7 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListHadronElastic.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListHadronElastic.hh,v 1.2 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // The class provides PhysicsList for hadron elastic process // diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh index db57be32dc..aad46e29de 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListIonBinaryCascade.hh,v 1.3 2005/03/16 13:17:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // 18.11.03 created by V.Ivanchenko // diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh index a249fa877e..e6e999a426 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.4 2004/06/09 16:20:29 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh index b485cb5f10..4af911c346 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh index ff8a4be745..6161c1d865 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.hh,v 1.2 2004/07/08 16:15:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh index 76070cd917..c2cb33a38c 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.hh,v 1.2 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/RunAction.hh b/examples/extended/electromagnetic/TestEm7/include/RunAction.hh index 0d9eacd0d3..64f58dbedd 100644 --- a/examples/extended/electromagnetic/TestEm7/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/RunAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RunAction.hh,v 1.8 2004/09/27 14:42:25 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/StepMax.hh b/examples/extended/electromagnetic/TestEm7/include/StepMax.hh index 437f141bfd..b7119fa3bd 100644 --- a/examples/extended/electromagnetic/TestEm7/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm7/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.2 2003/06/03 09:33:21 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh index 5f87d15b87..ec37a16b84 100644 --- a/examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh index ca1dbfc4f9..eca701b61d 100644 --- a/examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh index 45db87bf2c..cb72556e45 100644 --- a/examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm7/include/SteppingVerbose.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm7/include/TrackingAction.hh index 1e3cad9f38..fc22521f7b 100644 --- a/examples/extended/electromagnetic/TestEm7/include/TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.hh,v 1.1 2004/07/08 16:15:44 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/ionC12.mac b/examples/extended/electromagnetic/TestEm7/ionC12.mac index 8927a49c86..f03fc5baf4 100644 --- a/examples/extended/electromagnetic/TestEm7/ionC12.mac +++ b/examples/extended/electromagnetic/TestEm7/ionC12.mac @@ -1,4 +1,4 @@ -# $Id: ionC12.mac,v 1.12 2004/08/13 10:07:57 maire Exp $ +# $Id: ionC12.mac,v 1.13 2005/12/02 16:54:45 vnivanch Exp $ # # Macro file for "TestEm7.cc" # (can be run in batch, without graphic) @@ -20,9 +20,9 @@ # /testem/phys/addPhysics standard #em physics # -####/testem/phys/addPhysics binary #hadronic physics -####/testem/phys/addPhysics binary_ion #hadronic physics -####/testem/phys/addPhysics elastic #hadronic physics +/testem/phys/addPhysics binary #hadronic physics +/testem/phys/addPhysics binary_ion #hadronic physics +/testem/phys/addPhysics elastic #hadronic physics # /run/initialize # diff --git a/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc index 43a8fa4c51..90b572949f 100644 --- a/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorConstruction.cc,v 1.4 2003/11/25 15:19:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc index 2c828bd59d..54dea70a3e 100644 --- a/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: DetectorMessenger.cc,v 1.2 2004/09/27 14:42:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/EventAction.cc b/examples/extended/electromagnetic/TestEm7/src/EventAction.cc index 09f7084a5d..3ecc949f16 100644 --- a/examples/extended/electromagnetic/TestEm7/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.3 2003/10/10 16:21:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc index 3c2ae8b07f..48fc2862fa 100644 --- a/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.3 2004/09/27 14:42:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc index c68f13e852..ae96f1a68e 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.cc,v 1.6 2004/09/27 14:42:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc index d82be9fffc..c53b0dd23c 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.cc,v 1.2 2005/05/13 10:54:53 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v71.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v71.cc new file mode 100644 index 0000000000..e433d5f9b5 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v71.cc @@ -0,0 +1,116 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.cc,v 1.1 2005/10/06 14:13:51 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::PhysListEmG4v71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::~PhysListEmG4v71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v71::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if( particleName == "alpha" || particleName == "GenericIon" ) { + pmanager->AddProcess(new G4MultipleScattering71, -1, 1,1); + pmanager->AddProcess(new G4ionIonisation, -1, 2,2); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering71, -1,1,1); + pmanager->AddProcess(new G4hIonisation, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc index 49053c4816..ce36929c87 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.cc,v 1.4 2005/03/16 13:10:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc index d96971a811..2c1ce5d050 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListHadronElastic.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysListHadronElastic.cc,v 1.2 2004/09/27 14:42:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysListHadronElastic.cc,v 1.3 2005/12/02 16:54:45 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -57,9 +57,11 @@ void PhysListHadronElastic::ConstructProcess() G4ProcessManager* pManager = particle->GetProcessManager(); if (particle->GetPDGMass() > 110.*MeV && theElasticProcess.IsApplicable(*particle)) { pManager->AddDiscreteProcess(&theElasticProcess); + /* G4cout << "### Elastic model are registered for " << particle->GetParticleName() << G4endl; + */ } } diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc index d0ff7d490f..5303da4f73 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListIonBinaryCascade.cc,v 1.5 2005/03/16 13:10:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc index aed4011f2f..9528781de1 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.13 2005/03/16 13:10:37 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.15 2005/12/02 16:54:45 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,6 +31,7 @@ #include "PhysListEmStandard.hh" #include "PhysListEmG4v52.hh" +#include "PhysListEmG4v71.hh" #include "PhysListHadronElastic.hh" #include "PhysListBinaryCascade.hh" #include "PhysListIonBinaryCascade.hh" @@ -87,31 +88,10 @@ PhysicsList::~PhysicsList() #include "G4NeutrinoE.hh" #include "G4AntiNeutrinoE.hh" -// Mesons -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" -#include "G4Eta.hh" -#include "G4EtaPrime.hh" - -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4KaonZero.hh" -#include "G4AntiKaonZero.hh" -#include "G4KaonZeroLong.hh" -#include "G4KaonZeroShort.hh" - -// Baryons -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4Neutron.hh" -#include "G4AntiNeutron.hh" - -// Nuclei -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4Alpha.hh" -#include "G4GenericIon.hh" +// Hadrons +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -139,29 +119,16 @@ void PhysicsList::ConstructParticle() G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); + G4MesonConstructor mConstructor; + mConstructor.ConstructParticle(); // barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); + G4BaryonConstructor bConstructor; + bConstructor.ConstructParticle(); // ions - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); + G4IonConstructor iConstructor; + iConstructor.ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -229,6 +196,12 @@ void PhysicsList::AddPhysicsList(const G4String& name) delete emPhysicsList; emPhysicsList = new PhysListEmG4v52(name); + } else if (name == "g4v71") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmG4v71(name); + } else if (name == "elastic") { hadronPhys.push_back( new PhysListHadronElastic(name)); @@ -263,7 +236,7 @@ void PhysicsList::AddStepMax() G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); - if (stepMaxProcess->IsApplicable(*particle)) + if (stepMaxProcess->IsApplicable(*particle) && pmanager) { pmanager ->AddDiscreteProcess(stepMaxProcess); } diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc index c042d53c60..faa7a7bdc4 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/09/27 14:42:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc index 0ff5fedba0..0743668f98 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorAction.cc,v 1.1 2003/04/22 16:25:07 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc index 7fcd43f584..f48f6b92d5 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PrimaryGeneratorMessenger.cc,v 1.2 2004/09/27 14:42:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/RunAction.cc b/examples/extended/electromagnetic/TestEm7/src/RunAction.cc index 68b120f843..905c75b34d 100644 --- a/examples/extended/electromagnetic/TestEm7/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/RunAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.cc,v 1.14 2005/06/01 13:12:13 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RunAction.cc,v 1.15 2005/12/06 11:51:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -147,7 +147,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); //initialize projected range, tallies, Ebeam, and book histograms // @@ -219,7 +219,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun) cleanHisto(); // show Rndm status - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/StepMax.cc b/examples/extended/electromagnetic/TestEm7/src/StepMax.cc index eeb2ab0da0..16f80a63df 100644 --- a/examples/extended/electromagnetic/TestEm7/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm7/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.4 2003/06/14 16:01:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc index 06d01182b1..fa370f6ea5 100644 --- a/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.2 2003/10/10 16:21:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc index 589f6674a7..80613b74f1 100644 --- a/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingAction.cc,v 1.6 2004/08/06 11:35:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc index 4a9b8d1a5f..fe14a0111c 100644 --- a/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: SteppingVerbose.cc,v 1.2 2003/06/16 16:47:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm7/src/TrackingAction.cc index 9cd35e494f..660aaaebcd 100644 --- a/examples/extended/electromagnetic/TestEm7/src/TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TrackingAction.cc,v 1.1 2004/07/08 16:15:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/History b/examples/extended/electromagnetic/TestEm8/History index 13defc14d4..51f423a36f 100644 --- a/examples/extended/electromagnetic/TestEm8/History +++ b/examples/extended/electromagnetic/TestEm8/History @@ -1,4 +1,4 @@ -$Id: History,v 1.19 2005/05/31 12:47:31 vnivanch Exp $ +$Id: History,v 1.20 2005/12/06 12:17:29 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,19 +15,22 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -31rd May 2005 V.Ivant (testem8-V07-00-02) +05-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +31-05-05 V.Ivant (testem8-V07-00-02) - 70 -> st -> 52 -3rd May 2005 John Allison (examples-V07-00-03) +03-05-2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. -23 April 04: V.Ivant (testem8-V07-00-01) +23-04-04: V.Ivant (testem8-V07-00-01) - Remove IonC12 class to be compatible with new particle tags -15 April 04: V.Ivant (testem8-V07-00-00) +15-04-04: V.Ivant (testem8-V07-00-00) - Remove non-used headers -02 Dec 04: V.Ivant (testem8-V06-02-01) +02-12-04: V.Ivant (testem8-V06-02-01) - Migration to cmath 27-05-04 V.Ivant (testem8-V06-01-00) diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.cc b/examples/extended/electromagnetic/TestEm8/TestEm8.cc index 6b72998138..347de1a7e0 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.cc +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm8.cc,v 1.5 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm8.cc,v 1.6 2005/12/06 12:17:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -56,7 +56,7 @@ int main(int argc,char** argv) //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out index dc93b6044e..5c10ceb088 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.out +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -20,6 +20,8 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... /run/verbose 2 #/tracking/verbose 2 # @@ -54,7 +56,6 @@ userDetector->Construct() start. World is registered to the default region. physicsList->Construct() start. -physicsList->ConstructParticle() start. physicsList->Construct() start. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm @@ -103,13 +104,13 @@ conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV f msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -121,7 +122,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -135,7 +136,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -155,7 +156,7 @@ ionIoni: tables are built for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -193,13 +194,13 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Mylar Production cuts : gamma 1 mm e- 1 mm e+ 1 mm -Region VertexDetector +Region -- appears in world volume Materials : XeCH4C3H8 Production cuts : gamma 2.3 cm e- 2.3 cm e+ 2.3 cm @@ -230,8 +231,11 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 9876, 54321 + Current couple of seeds = 752908830, 1734568202 ---------------------------------------- +/vis/scene/notifyHandlers +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -256,54 +260,56 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 1000 - User=1.01s Real=1.09s Sys=0.04s + User=10.91s Real=11.03s Sys=0.1s ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=23.4269 +- 0.282241 mm + mean charged track length in absorber=23.4958 +- 0.135687 mm - mean energy deposit in absorber=0.0169125 +- 0.000450572 MeV + mean energy deposit in absorber=0.0165436 +- 0.000357391 MeV - mean number of steps in absorber (charged) =0.005 +- 0.00223047 + mean number of steps in absorber (charged) =0.261 +- 0.0708299 mean number of steps in absorber (neutral) =0 +- 0 - mean number of charged secondaries = 0.004 +- 0.001996 + mean number of charged secondaries = 0.016 +- 0.00396787 mean number of neutral secondaries = 0 +- 0 - mean number of e-s =0.004 and e+s =0 + mean number of e-s =0.016 and e+s =0 -(number) transmission coeff=0.514 reflection coeff=0 +(number) transmission coeff=0.492 reflection coeff=0 energy deposit distribution -#entries=1000 #underflows=0 #overflows=15 +#entries=1000 #underflows=0 #overflows=17 bin nb Elow entries normalized 0 0 0 0 - 1 3 2 0.002 - 2 6 77 0.077 - 3 9 264 0.264 - 4 12 266 0.266 - 5 15 151 0.151 - 6 18 72 0.072 - 7 21 47 0.047 - 8 24 28 0.028 + 1 3 3 0.003 + 2 6 106 0.106 + 3 9 231 0.231 + 4 12 255 0.255 + 5 15 163 0.163 + 6 18 88 0.088 + 7 21 41 0.041 + 8 24 31 0.031 9 27 15 0.015 - 10 30 17 0.017 - 11 33 10 0.01 - 12 36 10 0.01 - 13 39 6 0.006 - 14 42 7 0.007 + 10 30 13 0.013 + 11 33 13 0.013 + 12 36 6 0.006 + 13 39 3 0.003 + 14 42 3 0.003 15 45 3 0.003 - 16 48 2 0.002 - 17 51 5 0.005 - 18 54 0 0 - 19 57 3 0.003 + 16 48 3 0.003 + 17 51 2 0.002 + 18 54 3 0.003 + 19 57 1 0.001 Emp = 0.012 width= 0.006 MeV +/vis/viewer/update +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1486551451, 1187403336 + Current couple of seeds = 489139027, 144897202 ---------------------------------------- # Graphics systems deleted. diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh index a36fe3c062..1d2600506d 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: Em8CalorHit.hh,v 1.3 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh index d67dbc6701..223bcfb980 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: Em8CalorimeterSD.hh,v 1.3 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh index aa8ca87517..2bc470f623 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorConstruction.hh,v 1.7 2004/05/27 08:39:05 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh index ab5c2bc399..2687ba2373 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorMessenger.hh,v 1.4 2004/05/27 08:39:05 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh index d2fe8c7f43..bee19a4aca 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8EventAction.hh,v 1.3 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh index f66207ea17..66caeb2cfe 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em8EventActionMessenger.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh index dc2a9f4e1f..f516047a03 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorAction.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh index ab2d72e5ff..82c3e64e5f 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorMessenger.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh index 66aefdf8d1..474a10d0a3 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8RunAction.hh,v 1.7 2003/11/26 13:55:49 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh index 6fac2e90e2..6a1d685d37 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: Em8RunMessenger.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh index 1c4d41cb62..81aa566df0 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingAction.hh,v 1.4 2003/11/24 17:52:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh index 002e134c74..1ca07587b2 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingVerbose.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh index 368440c0cc..a7d08b866f 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.1 2003/11/24 17:53:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh index c5eebf4caa..722f28eccc 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmModel.hh,v 1.1 2003/10/27 15:24:08 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh index c6cece67ae..0d1fcfcf6c 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelPai.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmModelPai.hh,v 1.1 2004/11/04 15:41:39 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh index b26399d9a8..da7844eda5 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmPAI.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmPAI.hh,v 1.1 2004/05/27 18:04:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh index 77829c8859..592d5ba89c 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmPaiPhoton.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmPaiPhoton.hh,v 1.1 2004/11/04 15:41:39 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh index aaf39a5ed6..6ac0547c7a 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.2 2004/05/27 18:04:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh index 76ffb9122e..d9ae2ed5a1 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListGeneral.hh,v 1.1 2003/10/27 15:24:08 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh index 7c01a72da5..bcd574ba04 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListParticles.hh,v 1.1 2003/10/27 15:24:09 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh index f8631c16c8..30d2acf09d 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.1 2003/10/27 15:24:09 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh index ba3c47c09a..e406c07c3b 100644 --- a/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.hh,v 1.1 2003/10/27 15:24:09 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/StepMax.hh b/examples/extended/electromagnetic/TestEm8/include/StepMax.hh index 7916305c03..9c9c7f1c7b 100644 --- a/examples/extended/electromagnetic/TestEm8/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm8/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.1 2003/10/27 15:29:45 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh index 2e2747cdf8..da525c3251 100644 --- a/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.1 2003/10/27 15:29:45 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh index 7b5b9559fd..c094c604c4 100644 --- a/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: TRTDetectorConstruction.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh index e11cf0dfc4..e43a8fc61d 100644 --- a/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh +++ b/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh @@ -22,7 +22,7 @@ // // // $Id: TRTMaterials.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc index ee4e484f80..fbea2222b9 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: Em8CalorHit.cc,v 1.4 2003/11/24 17:52:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc index 701696f5fa..e98730c87e 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: Em8CalorimeterSD.cc,v 1.6 2004/12/03 09:45:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc index fc554a4e38..fabd815d3e 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorConstruction.cc,v 1.17 2004/12/03 10:51:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc index e79e879015..aecd18b35b 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8DetectorMessenger.cc,v 1.6 2004/05/27 08:39:06 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc index fe92127e4f..b795e20bdd 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8EventAction.cc,v 1.7 2003/11/24 17:52:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em8EventAction.cc,v 1.8 2005/12/06 12:17:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -161,12 +161,12 @@ void Em8EventAction::EndOfEventAction(const G4Event* evt) //save rndm status if (runaction->GetRndmFreq() == 2) { - HepRandom::saveEngineStatus("endOfEvent.rndm"); + CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); G4int evtNb = evt->GetEventID(); if (evtNb%printModulo == 0) { G4cout << "\n---> End of Event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } } } diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc index daa4d595b8..fafb868def 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8EventActionMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc index 94b7a37795..9534c8239a 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorAction.cc,v 1.6 2004/12/03 09:45:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc index a84b62f1cb..8b1fa25caa 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc index 671232c237..a25da40d06 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8RunAction.cc,v 1.12 2004/12/03 09:45:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em8RunAction.cc,v 1.13 2005/12/06 12:17:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -67,8 +67,8 @@ void Em8RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status if (saveRndm > 0) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("beginOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); } G4UImanager* UI = G4UImanager::GetUIpointer(); @@ -657,8 +657,8 @@ void Em8RunAction::EndOfRunAction(const G4Run*) if (saveRndm == 1) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("endOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); } } diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc index 17c1f99848..08ab5341b1 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8RunMessenger.cc,v 1.5 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Em8RunMessenger.cc,v 1.6 2005/12/06 12:17:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -380,8 +380,8 @@ void Em8RunMessenger::SetNewValue(G4UIcommand* command,G4String newValues) if (command == RndmReadCmd) { G4cout << "\n---> rndm status restored from file: " << newValues << G4endl; - HepRandom::restoreEngineStatus(newValues); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::restoreEngineStatus(newValues); + CLHEP::HepRandom::showEngineStatus(); } } diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc index d03c4895ee..b9949f878b 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingAction.cc,v 1.8 2004/12/03 09:45:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc index 28dbce95cb..77ae03e787 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Em8SteppingVerbose.cc,v 1.7 2003/06/16 16:48:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc index 0df933a53d..35d76fa094 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.cc,v 1.2 2005/05/31 12:46:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc index b70714a148..d8b3ea8f41 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelPai.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmModelPai.cc,v 1.2 2005/04/15 15:20:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc index 0badd79e18..03560e6016 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmPAI.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmPAI.cc,v 1.1 2004/05/27 18:04:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc index d3547e4dc9..cf7519812d 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmPaiPhoton.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmPaiPhoton.cc,v 1.2 2005/04/15 15:20:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc index 542c4fda11..53601d5e79 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.cc,v 1.6 2004/06/18 09:18:12 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc index aba0a9719d..abe876053f 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListGeneral.cc,v 1.2 2004/05/24 16:56:32 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc index c20367ffa8..9bd1188a76 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListParticles.cc,v 1.2 2005/04/23 19:57:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc index 7d94d0ab8e..56e76162f7 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc @@ -23,7 +23,7 @@ // // $Id: PhysicsList.cc,v 1.6 2004/12/03 10:51:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc index 2a4b1bfa90..9726941d18 100644 --- a/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.cc,v 1.1 2003/10/27 15:24:10 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/StepMax.cc b/examples/extended/electromagnetic/TestEm8/src/StepMax.cc index 49d681998b..375358ed96 100644 --- a/examples/extended/electromagnetic/TestEm8/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm8/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.2 2003/11/26 13:55:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc index d0235282b2..dc0e4c5327 100644 --- a/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.1 2003/10/27 15:31:04 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/GNUmakefile b/examples/extended/electromagnetic/TestEm9/GNUmakefile index 31b2fcbaa5..903cf3647c 100644 --- a/examples/extended/electromagnetic/TestEm9/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm9/GNUmakefile @@ -1,5 +1,5 @@ # $Id: GNUmakefile,v 1.7 2004/05/27 13:43:17 vnivanch Exp $ -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # -------------------------------------------------------------- # GNUmakefile for examples module with AIDA interface # -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm9/History b/examples/extended/electromagnetic/TestEm9/History index 0baa92521d..600a089b14 100644 --- a/examples/extended/electromagnetic/TestEm9/History +++ b/examples/extended/electromagnetic/TestEm9/History @@ -1,4 +1,4 @@ -$Id: History,v 1.23 2005/05/31 15:57:03 vnivanch Exp $ +$Id: History,v 1.30 2005/12/06 13:34:59 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,30 @@ track of all tags. ---------------------------------------------------------- +06-12-05 G.Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +02-12-05 V.Ivant (testem9-V07-01-05) +- Fix crash connected with non-static hadrons + +01-12-05 V.Ivant (testem9-V07-01-04) +- add a command /testem/phys/mscStepLimit + +17-11-05 G.Cosmo (testem9-V07-01-03) +- corrected fixes for migration to to fix compilation + errors on SUN-CC. + +12-11-05 V.Ivant (testem9-V07-01-02) +- fix compilation problems with streams + +14-09-05 V.Ivant (testem9-V07-01-01) +- Add g4v71 builder +- Add protection for tree +- Extend printout + +14-09-05 V.Ivant (testem9-V07-01-00) +- Fix problem for changing cuts between runs + 31-05-05 V.Ivant (testem9-V07-00-02) - Remove SteppingVerbose class diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.cc b/examples/extended/electromagnetic/TestEm9/TestEm9.cc index 7b6bc92be8..810055ebde 100644 --- a/examples/extended/electromagnetic/TestEm9/TestEm9.cc +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm9.cc,v 1.5 2005/05/31 15:57:03 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: TestEm9.cc,v 1.6 2005/12/06 13:34:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -51,7 +51,7 @@ int main(int argc,char** argv) { //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //Construct the default run manager G4RunManager * runManager = new G4RunManager; diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.in b/examples/extended/electromagnetic/TestEm9/TestEm9.in index 5c2b43d63e..42d3ca34bc 100644 --- a/examples/extended/electromagnetic/TestEm9/TestEm9.in +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.in @@ -1,5 +1,5 @@ # $Id: TestEm9.in,v 1.11 2004/12/03 10:54:06 vnivanch Exp $ -# GEANT4 tag $Name: geant4-07-01 $ +# GEANT4 tag $Name: geant4-08-00 $ # # Macro file for TestEm9 - Crystal Calorimeter # V.Ivanchenko diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.out b/examples/extended/electromagnetic/TestEm9/TestEm9.out index e590ba4b6e..8a7474f950 100644 --- a/examples/extended/electromagnetic/TestEm9/TestEm9.out +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.out @@ -1,35 +1,16 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* ### NIST DataBase for Materials is used -G4NistMaterialBuilder: BuildMaterial G4_AIR -New material nComponents= 4 -G4NistElementBuilder: Build Element Z= 6 A= 12.0107 -G4NistElementBuilder: Build Element Z= 7 A= 14.0068 -G4NistElementBuilder: Build Element Z= 8 A= 15.9994 -G4NistElementBuilder: Build Element Z= 18 A= 39.9477 G4Material: Mean excitation energy is changed for G4_AIR Iold= 85.627eV; Inew= 85.7 eV; -G4NistMaterialBuilder: BuildMaterial G4_Al -New material nComponents= 1 -G4NistElementBuilder: Build Element Z= 13 A= 26.9815 G4Material: Mean excitation energy is changed for G4_Al Iold= 166.4eV; Inew= 166 eV; -G4NistMaterialBuilder: BuildMaterial G4_Si -New material nComponents= 1 -G4NistElementBuilder: Build Element Z= 14 A= 28.0854 G4Material: Mean excitation energy is changed for G4_Si Iold= 173.6eV; Inew= 173 eV; -G4NistMaterialBuilder: BuildMaterial G4_Fe -New material nComponents= 1 -G4NistElementBuilder: Build Element Z= 26 A= 55.8451 G4Material: Mean excitation energy is changed for G4_Fe Iold= 286eV; Inew= 286 eV; -G4NistMaterialBuilder: BuildMaterial G4_CESIUM_IODIDE -New material nComponents= 2 -G4NistElementBuilder: Build Element Z= 53 A= 126.904 -G4NistElementBuilder: Build Element Z= 55 A= 132.905 G4Material: Mean excitation energy is changed for G4_CESIUM_IODIDE Iold= 491.166eV; Inew= 553.1 eV; Visualization Manager instantiating... Visualization Manager initialising... @@ -45,6 +26,8 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... /run/verbose 1 #/tracking/verbose 1 # @@ -111,7 +94,8 @@ PhysicsList::AddPhysicsList: Ecal is 36 cm of G4_CESIUM_IODIDE Absorber is 2 mm of G4_Al Vertex is 3 cm of 3 layers of Si of 100 mum npads= 601 -world cuts are set +### New geometry is constructed +PhysicsList: world cuts are set cutG= 0.3 mm cutE= 0.3 mm Vertex cuts are set Muon cuts are set # @@ -135,13 +119,13 @@ conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV f msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -153,7 +137,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -167,7 +151,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -187,7 +171,7 @@ ionIoni: tables are built for GenericIon msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -225,7 +209,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -289,34 +273,39 @@ Index : 7 used in the geometry : Yes recalculation needed : No ### Run 0 start HistoManager: Histograms are booked and run has been started +/vis/scene/notifyHandlers +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=83.39s Real=87.81s Sys=3.77s + User=113.19s Real=122.87s Sys=9.65s RunAction: End of run actions are started HistoManager: End of run actions are started ======================================================== Number of events 100 -Average number of e- 1322 -Average number of gamma 698.5 -Average number of e+ 47.86 -Average number of steps 3884 -Edep 1x1 = 0.8258 +- 0.003048 -Edep 3x3 = 0.9543 +- 0.001289 -Edep 5x5 = 0.9794 +- 0.0009566 +Average number of e- 1325 +Average number of gamma 701.4 +Average number of e+ 48.36 +Average number of steps 5267 +Edep 1x1 = 0.8256 +- 0.003038 res= 3.679 % +Edep 3x3 = 0.9565 +- 0.001559 res= 1.63 % +Edep 5x5 = 0.9782 +- 0.001325 res= 1.354 % ======================================================== <<<<>>>> 100 events for Crystal Calorimeter -Edep1x1: 0.8258 delEdep1x1= -0.0001842 nrms= -0.05248 -Erms1x1: 0.03048 delErms1x1= -0.00462 nrms= -1.316 -Edep3x3: 0.9543 delEdep3x3= -0.00212 nrms= -1.325 -Erms3x3: 0.01289 delErms3x3= -0.003107 nrms= -1.942 -Edep5x5: 0.9794 delEdep5x5= 0.000367 nrms= 0.3084 -Erms5x5: 0.009566 delErms5x5= -0.002334 nrms= -1.962 +Edep1x1: 0.8256 delEdep1x1= -0.0004101 nrms= -0.1168 +Erms1x1: 0.03038 delErms1x1= -0.004723 nrms= -1.346 +Edep3x3: 0.9565 delEdep3x3= 8.504e-05 nrms= 0.05315 +Erms3x3: 0.01559 delErms3x3= -0.0004063 nrms= -0.2539 +Edep5x5: 0.9782 delEdep5x5= -0.0008222 nrms= -0.6909 +Erms5x5: 0.01325 delErms5x5= 0.001349 nrms= 1.134 <<<<>>>> IS ACCEPTED +/vis/viewer/update +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. # Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm9/cms_cal.mac b/examples/extended/electromagnetic/TestEm9/cms_cal.mac new file mode 100644 index 0000000000..8c677ce15b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/cms_cal.mac @@ -0,0 +1,38 @@ +# $Id: cms_cal.mac,v 1.1 2005/10/03 08:17:11 vnivanch Exp $ +# +# Macro file for "TestEm9.cc" +# +# CMS PbWO4 model +# +/control/verbose 2 +/run/verbose 1 +/tracking/verbose 0 +# +/testem/det/CalMat G4_PbWO4 +/testem/det/EcalLength 230 mm +/testem/det/EcalWidth 22 mm +# +#/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +# +/testem/phys/VertexCuts 0.01 mm +/testem/phys/MuonCuts 10.0 mm +/testem/stepMax 10 mm +# +#/process/eLoss/StepFunction 0.2 1 mm +#/process/eLoss/preciseRange true +# +#/testem/tracking/stepMax 1 mum +# +#/random/setSavingFlag true +#/random/resetEngineFrom first.rndm +# +/testem/phys/setCuts 0.1 mm +/run/initialize +# +/gun/particle e- +/gun/energy 10 GeV +# +/testem/event/printModulo 1000 +/run/beamOn 1000 +# diff --git a/examples/extended/electromagnetic/TestEm9/csi.mac b/examples/extended/electromagnetic/TestEm9/csi.mac index 4814a9774c..12c74484f3 100644 --- a/examples/extended/electromagnetic/TestEm9/csi.mac +++ b/examples/extended/electromagnetic/TestEm9/csi.mac @@ -1,5 +1,5 @@ -# $Id: csi.mac,v 1.2 2003/11/07 11:52:58 vnivanch Exp $ -# GEANT4 tag $Name: geant4-07-01 $ +# $Id: csi.mac,v 1.3 2005/12/02 17:17:36 vnivanch Exp $ +# GEANT4 tag $Name: geant4-08-00 $ # # Macro file for TestEm9 - Crystal Calorimeter # V.Ivanchenko @@ -14,14 +14,18 @@ #/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # +/testem/phys/addPhysics binary #hadronic physics +/testem/phys/addPhysics binary_ion #hadronic physics +/testem/phys/addPhysics elastic #hadronic physics +# /testem/det/CalMat CsI /testem/phys/setCuts 5. mm /testem/phys/VertexCuts 0.01 mm /testem/phys/MuonCuts 10.0 mm /testem/stepMax 100 mm # -/process/eLoss/preciseRange true -/process/eLoss/integral true +#/process/eLoss/preciseRange true +#/process/eLoss/integral true /run/initialize # /testem/histo/fileName csi_ma2.paw diff --git a/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh index ce04cd2907..3b4917a99b 100644 --- a/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: DetectorConstruction.hh,v 1.3 2004/05/27 13:43:17 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: DetectorConstruction.hh,v 1.4 2005/09/14 09:04:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ///////////////////////////////////////////////////////////////////////// @@ -112,7 +112,6 @@ private: G4Region* muonRegion; DetectorMessenger* detectorMessenger; //pointer to the Messenger - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh index be9853b96d..1d4adf4b86 100644 --- a/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.hh,v 1.3 2004/05/27 13:43:17 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/include/EmAcceptance.hh b/examples/extended/electromagnetic/TestEm9/include/EmAcceptance.hh index fb91932a11..00dcd096f4 100644 --- a/examples/extended/electromagnetic/TestEm9/include/EmAcceptance.hh +++ b/examples/extended/electromagnetic/TestEm9/include/EmAcceptance.hh @@ -22,7 +22,7 @@ // // // $Id: EmAcceptance.hh,v 1.1 2004/05/27 13:43:57 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm9/include/EventAction.hh b/examples/extended/electromagnetic/TestEm9/include/EventAction.hh index 5276a41813..3389a357b5 100644 --- a/examples/extended/electromagnetic/TestEm9/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/EventAction.hh @@ -24,7 +24,7 @@ #define EventAction_h 1 // $Id: EventAction.hh,v 1.2 2003/10/13 15:41:30 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh index e01fe77336..e259652b29 100644 --- a/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/Histo.hh b/examples/extended/electromagnetic/TestEm9/include/Histo.hh index 7385fa783f..2d6c0b0d1e 100644 --- a/examples/extended/electromagnetic/TestEm9/include/Histo.hh +++ b/examples/extended/electromagnetic/TestEm9/include/Histo.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: Histo.hh,v 1.3 2004/04/02 15:13:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef Histo_h #define Histo_h 1 diff --git a/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh index 985a5f95fc..ee332c9466 100644 --- a/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh +++ b/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: HistoManager.hh,v 1.6 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef HistoManager_h #define HistoManager_h 1 diff --git a/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh index deb937b67f..84f15da2ad 100644 --- a/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh @@ -23,7 +23,7 @@ // // $Id: HistoMessenger.hh,v 1.2 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh index 1e16e43d78..1de77bc2af 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.hh,v 1.5 2003/12/05 11:22:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh index 6e0b588811..283117e010 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmG4v52.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v71.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v71.hh new file mode 100644 index 0000000000..45e6673478 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.hh,v 1.1 2005/10/03 02:45:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListEmG4v71_h +#define PhysListEmG4v71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListEmG4v71 : public G4VPhysicsConstructor +{ +public: + PhysListEmG4v71(const G4String& name = "g4v71"); + ~PhysListEmG4v71(); + +public: + // This method is dummy for physics. + void ConstructParticle() {}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + void ConstructProcess(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh index d8ad695da8..ed0d7758a2 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListEmStandard.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh index 0e1617cf2a..d0ee1c5a21 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListGeneral.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh index 0d73b943fe..1bfb51b189 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListIonBinaryCascade.hh,v 1.3 2005/03/16 14:29:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh index 2507a4e5c8..71ecfa5af6 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh @@ -22,7 +22,7 @@ // // // $Id: PhysListParticles.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh index d4439fe224..6993ae730b 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsList.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.hh,v 1.3 2005/12/01 09:55:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // @@ -56,6 +56,7 @@ public: void SetCutForGamma(G4double); void SetCutForElectron(G4double); void SetCutForPositron(G4double); + void SetMscStepLimit(G4bool val); void AddPhysicsList(const G4String& name); void ConstructProcess(); @@ -87,7 +88,7 @@ private: PhysicsListMessenger* pMessenger; G4ProductionCuts* vertexDetectorCuts; G4ProductionCuts* muonDetectorCuts; - + G4bool mscStepLimit; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh index b1d228ef9d..12d4d51b46 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsListMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsListMessenger.hh,v 1.3 2005/12/01 09:55:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -38,6 +38,7 @@ class PhysicsList; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithAString; +class G4UIcmdWithABool; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,6 +62,7 @@ private: G4UIcmdWithADoubleAndUnit* mCutCmd; G4UIcmdWithADoubleAndUnit* eCutCmd; G4UIcmdWithAString* pListCmd; + G4UIcmdWithABool* mscCmd; }; diff --git a/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh index 1826315a13..b329ba1b79 100644 --- a/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/include/StepMax.hh b/examples/extended/electromagnetic/TestEm9/include/StepMax.hh index a451d56c25..ea3100326e 100644 --- a/examples/extended/electromagnetic/TestEm9/include/StepMax.hh +++ b/examples/extended/electromagnetic/TestEm9/include/StepMax.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh index ab2b9a7bb1..aed0ae2105 100644 --- a/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh index ab6acb4f12..819ba4e28a 100644 --- a/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.hh,v 1.2 2003/10/31 12:08:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc index d618b65725..4ee78c5de0 100644 --- a/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: DetectorConstruction.cc,v 1.7 2005/05/13 09:34:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: DetectorConstruction.cc,v 1.8 2005/09/14 09:04:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ///////////////////////////////////////////////////////////////////////// @@ -68,9 +68,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::DetectorConstruction() -:logicC(0), - logicA1(0), - logicA2(0) + :logicC(0),logicA1(0),logicA2(0) { detectorMessenger = new DetectorMessenger(this); @@ -110,7 +108,6 @@ void DetectorConstruction::DefineMaterials() vertMaterial = man->FindOrBuildMaterial("G4_Si"); yorkMaterial = man->FindOrBuildMaterial("G4_Fe"); calMaterial = man->FindOrBuildMaterial("G4_CESIUM_IODIDE"); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -300,7 +297,8 @@ G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() logicY->SetVisAttributes(regMcolor); // always return world - // + G4cout << "### New geometry is constructed" << G4endl; + return world; } @@ -311,11 +309,7 @@ void DetectorConstruction::SetEcalMaterial(const G4String& mat) // search the material by its name G4Material* pttoMaterial = G4NistManager::Instance()->FindOrBuildMaterial(mat, false); - if (pttoMaterial) - { - calMaterial = pttoMaterial; - if(logicC) logicC->SetMaterial(calMaterial); - } + if (pttoMaterial) calMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -325,12 +319,7 @@ void DetectorConstruction::SetAbsMaterial(const G4String& mat) // search the material by its name G4Material* pttoMaterial = G4NistManager::Instance()->FindOrBuildMaterial(mat, false); - if (pttoMaterial) - { - absMaterial = pttoMaterial; - if(logicA1) logicA1->SetMaterial(absMaterial); - if(logicA2) logicA2->SetMaterial(absMaterial); - } + if (pttoMaterial) absMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc index 3d37bfdf68..9b97e07821 100644 --- a/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.cc,v 1.2 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/src/EmAcceptance.cc b/examples/extended/electromagnetic/TestEm9/src/EmAcceptance.cc index 76a331dc1c..ed8106a54d 100644 --- a/examples/extended/electromagnetic/TestEm9/src/EmAcceptance.cc +++ b/examples/extended/electromagnetic/TestEm9/src/EmAcceptance.cc @@ -22,7 +22,7 @@ // // // $Id: EmAcceptance.cc,v 1.3 2004/12/02 19:06:05 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm9/src/EventAction.cc b/examples/extended/electromagnetic/TestEm9/src/EventAction.cc index 0b95c64b8c..a6a19aab66 100644 --- a/examples/extended/electromagnetic/TestEm9/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm9/src/EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventAction.cc,v 1.3 2003/10/31 12:08:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc index 2c1f4ebd65..cccc4f333b 100644 --- a/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.2 2005/05/13 11:46:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/Histo.cc b/examples/extended/electromagnetic/TestEm9/src/Histo.cc index bd1993ad02..b66ddc4228 100644 --- a/examples/extended/electromagnetic/TestEm9/src/Histo.cc +++ b/examples/extended/electromagnetic/TestEm9/src/Histo.cc @@ -60,6 +60,7 @@ Histo::Histo() messenger = 0; #ifdef G4ANALYSIS_USE + tree = 0; messenger = new HistoMessenger(this); #endif } @@ -90,11 +91,12 @@ void Histo::book() // Creating a tree mapped to a new hbook file. tree = tf->create(histName,histType,false,true,"uncompress"); - if(tree) + if(tree) { G4cout << "Tree store : " << tree->storeName() << G4endl; - else + } else { G4cout << "ERROR: Tree store " << histName << " is not created!" << G4endl; - + return; + } // Creating a histogram factory, whose histograms will be handled by the tree std::auto_ptr< AIDA::IHistogramFactory > hf(af->createHistogramFactory( *tree )); @@ -119,10 +121,12 @@ void Histo::save() { #ifdef G4ANALYSIS_USE // Write histogram file - tree->commit(); - G4cout << "Closing the tree..." << G4endl; - tree->close(); - G4cout << "Histograms and Ntuples are saved" << G4endl; + if(tree) { + tree->commit(); + G4cout << "Closing the tree..." << G4endl; + tree->close(); + G4cout << "Histograms and Ntuples are saved" << G4endl; + } #endif } @@ -178,8 +182,9 @@ void Histo::fill(G4int i, G4double x, G4double w) << G4endl; } #ifdef G4ANALYSIS_USE + if(!tree) return; if(i>=0 && ifill((float)(x/unit[i]), (float)w); + if(active[i]) histo[i]->fill((float)(x/unit[i]), (float)w); } else { G4cout << "Histo::fill: WARNING! wrong histogram index " << i << G4endl; } @@ -194,6 +199,7 @@ void Histo::scale(G4int i, G4double x) G4cout << "Scale histogram: #" << i << " by factor " << x << G4endl; } #ifdef G4ANALYSIS_USE + if(!tree) return; if(i>=0 && iscale(x); } else { diff --git a/examples/extended/electromagnetic/TestEm9/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm9/src/HistoManager.cc index 048c9498ae..e1b2471ef7 100644 --- a/examples/extended/electromagnetic/TestEm9/src/HistoManager.cc +++ b/examples/extended/electromagnetic/TestEm9/src/HistoManager.cc @@ -170,6 +170,8 @@ void HistoManager::EndOfRun() G4double xp = x*(G4double)n_posit; G4double xs = x*(G4double)n_step; + G4double f = 100.*std::sqrt(beamEnergy/GeV); + G4cout << "Number of events " << n_evt < 0.0) + G4cout << " res= " << f*erms[j]/edep[j] << " %"; + G4cout << G4endl; } G4cout<<"========================================================"< + #include "Histo.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -98,9 +100,9 @@ void HistoMessenger::SetNewValue(G4UIcommand* command,G4String newValues) histo->setFileType(newValues); if (command == histoCmd) - { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; - const char* t = newValues; - std::istrstream is((char*)t); + { G4int ih,nbBins; G4double vmin,vmax; + std::istringstream is(newValues); + G4String unts; is >> ih >> nbBins >> vmin >> vmax >> unts; G4String unit = unts; G4double vUnit = 1. ; diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc index 27923026da..0eda1dd7f4 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListBinaryCascade.cc,v 1.4 2003/12/05 11:22:45 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "PhysListBinaryCascade.hh" #include "G4ParticleDefinition.hh" diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc index 19f703ddf2..58af432c5b 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmG4v52.cc,v 1.4 2005/05/13 11:46:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysListEmG4v52.cc,v 1.5 2005/10/03 02:45:07 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -80,24 +80,24 @@ void PhysListEmG4v52::ConstructProcess() } else if (particleName == "e-") { //electron - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation52, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4MultipleScattering52, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation52, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1, 3); } else if (particleName == "e+") { //positron - pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); - pmanager->AddProcess(new G4eIonisation52, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1,4); + pmanager->AddProcess(new G4MultipleScattering52, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation52, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1, 3); + pmanager->AddProcess(new G4eplusAnnihilation52, 0,-1, 4); } else if( particleName == "mu+" || particleName == "mu-" ) { //muon - pmanager->AddProcess(new G4MultipleScattering52,-1, 1,1); - pmanager->AddProcess(new G4MuIonisation52, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlung52, -1,-1,3); - pmanager->AddProcess(new G4MuPairProduction52, -1,-1,4); + pmanager->AddProcess(new G4MultipleScattering52,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation52, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung52, -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction52, -1,-1, 4); } else if( particleName == "GenericIon" ) { diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v71.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v71.cc new file mode 100644 index 0000000000..eaf06a3bb9 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v71.cc @@ -0,0 +1,120 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListEmG4v71.cc,v 1.1 2005/10/03 02:45:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::PhysListEmG4v71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListEmG4v71::~PhysListEmG4v71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListEmG4v71::ConstructProcess() +{ + // Add EM processes realised on base of Geant4 version 7.1 + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1, 3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering71,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1, 4); + + } else if( particleName == "GenericIon" || + particleName == "alpha" || + particleName == "He3") { + + pmanager->AddProcess(new G4MultipleScattering71,-1, 1, 1); + pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); + + } else if (!particle->IsShortLived() && + particle->GetPDGCharge() != 0.0 && + particle->GetParticleName() != "chargedgeantino") { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering71,-1, 1, 1); + pmanager->AddProcess(new G4hIonisation, -1, 2, 2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc index 3b6a90132c..2154ff8351 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmStandard.cc,v 1.4 2005/03/16 14:29:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysListEmStandard.cc,v 1.5 2005/11/12 00:37:44 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -98,7 +98,9 @@ void PhysListEmStandard::ConstructProcess() pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); - } else if (particleName == "alpha" || particleName == "GenericIon") { + } else if (particleName == "alpha" || + particleName == "He3" || + particleName == "GenericIon") { pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4ionIonisation, -1, 2,2); diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc index b94100f3ce..33c97d010d 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListGeneral.cc,v 1.2 2003/11/20 08:18:55 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc index 2cc8e08072..8744812a07 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc @@ -55,9 +55,11 @@ void PhysListHadronElastic::ConstructProcess() if (particle->GetPDGMass() > 110.*MeV && theElasticProcess.IsApplicable(*particle) && !particle->IsShortLived()) { pManager->AddDiscreteProcess(&theElasticProcess); + /* G4cout << "### Elastic model are registered for " << particle->GetParticleName() << G4endl; + */ } } diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc index 934e65bb1e..28d2634c25 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysListIonBinaryCascade.cc,v 1.3 2005/03/16 14:29:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "PhysListIonBinaryCascade.hh" #include "G4ParticleDefinition.hh" diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc index 31e0ea6f20..825e3db35d 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListParticles.cc,v 1.2 2005/03/16 14:29:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysListParticles.cc,v 1.3 2005/12/02 17:17:36 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -46,31 +46,10 @@ #include "G4NeutrinoE.hh" #include "G4AntiNeutrinoE.hh" -// Mesons -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" -#include "G4Eta.hh" -#include "G4EtaPrime.hh" - -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4KaonZero.hh" -#include "G4AntiKaonZero.hh" -#include "G4KaonZeroLong.hh" -#include "G4KaonZeroShort.hh" - -// Baryons -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4Neutron.hh" -#include "G4AntiNeutron.hh" - -// Nuclei -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4Alpha.hh" -#include "G4GenericIon.hh" +// Hadrons +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -110,29 +89,16 @@ void PhysListParticles::ConstructParticle() G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); + G4MesonConstructor mConstructor; + mConstructor.ConstructParticle(); // barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); + G4BaryonConstructor bConstructor; + bConstructor.ConstructParticle(); // ions - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); + G4IonConstructor iConstructor; + iConstructor.ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc index 4de9475427..123de2c517 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc @@ -50,6 +50,8 @@ #include "G4LossTableManager.hh" #include "StepMax.hh" +#include "G4EmProcessOptions.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::PhysicsList() : G4VModularPhysicsList() @@ -65,6 +67,8 @@ PhysicsList::PhysicsList() : G4VModularPhysicsList() stepMaxProcess = 0; + mscStepLimit = true; + pMessenger = new PhysicsListMessenger(this); stepMaxProcess = new StepMax(); @@ -113,6 +117,10 @@ void PhysicsList::ConstructProcess() hadronPhys[i]->ConstructProcess(); } AddStepMax(); + if(!mscStepLimit) { + G4EmProcessOptions opt; + opt.SetMscStepLimitation(false); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -180,10 +188,11 @@ void PhysicsList::AddStepMax() void PhysicsList::SetCuts() { - SetCutValue(cutForGamma, "gamma"); - SetCutValue(cutForElectron, "e-"); - SetCutValue(cutForPositron, "e+"); - G4cout << "world cuts are set" << G4endl; + SetCutValue(cutForGamma, "gamma", "DefaultRegionForTheWorld"); + SetCutValue(cutForElectron, "e-", "DefaultRegionForTheWorld"); + SetCutValue(cutForPositron, "e+", "DefaultRegionForTheWorld"); + G4cout << "PhysicsList: world cuts are set cutG= " << cutForGamma/mm + << " mm cutE= " << cutForElectron/mm << " mm " << G4endl; if( !vertexDetectorCuts ) SetVertexCut(cutForElectron); G4Region* region = (G4RegionStore::GetInstance())->GetRegion("VertexDetector"); @@ -203,6 +212,7 @@ void PhysicsList::SetCuts() void PhysicsList::SetCutForGamma(G4double cut) { cutForGamma = cut; + SetParticleCuts(cutForGamma, G4Gamma::Gamma()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -210,6 +220,7 @@ void PhysicsList::SetCutForGamma(G4double cut) void PhysicsList::SetCutForElectron(G4double cut) { cutForElectron = cut; + SetParticleCuts(cutForElectron, G4Electron::Electron()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -217,6 +228,7 @@ void PhysicsList::SetCutForElectron(G4double cut) void PhysicsList::SetCutForPositron(G4double cut) { cutForPositron = cut; + SetParticleCuts(cutForPositron, G4Positron::Positron()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -243,3 +255,11 @@ void PhysicsList::SetMuonCut(G4double cut) } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetMscStepLimit(G4bool val) +{ + mscStepLimit = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc index 0cc645c163..8522294e71 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsListMessenger.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsListMessenger.cc,v 1.2 2005/12/01 09:55:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -34,6 +34,7 @@ #include "PhysicsList.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithABool.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -86,6 +87,11 @@ PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) pListCmd->SetGuidance("Add modula physics list."); pListCmd->SetParameterName("PList",false); pListCmd->AvailableForStates(G4State_PreInit); + + mscCmd = new G4UIcmdWithABool("/testem/phys/mscStepLimit",this); + mscCmd->SetGuidance("Activate Multiple Scattering step limit"); + mscCmd->SetParameterName("PList",false); + mscCmd->AvailableForStates(G4State_PreInit); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -99,6 +105,7 @@ PhysicsListMessenger::~PhysicsListMessenger() delete pListCmd; delete eCutCmd; delete mCutCmd; + delete mscCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -131,6 +138,9 @@ void PhysicsListMessenger::SetNewValue(G4UIcommand* command, if( command == pListCmd ) { pPhysicsList->AddPhysicsList(newValue);} + + if( command == mscCmd ) + { pPhysicsList->SetMscStepLimit(mscCmd->GetNewBoolValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc index ef8f1d5bfe..a5ff20855b 100644 --- a/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.cc,v 1.2 2004/05/27 13:43:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm9/src/StepMax.cc b/examples/extended/electromagnetic/TestEm9/src/StepMax.cc index ce190a6c58..e4a26708c0 100644 --- a/examples/extended/electromagnetic/TestEm9/src/StepMax.cc +++ b/examples/extended/electromagnetic/TestEm9/src/StepMax.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMax.cc,v 1.2 2003/11/26 14:44:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc index d822dc9d05..dc8f17224e 100644 --- a/examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/StepMaxMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: StepMaxMessenger.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc index a20711c046..82ae6a8add 100644 --- a/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ///////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History index 340388f681..276c1d0a99 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.7 2005/12/06 13:44:22 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,7 +15,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Dec 6th, 2005 G.Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +May 3rd, 2005 J.Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. Dec. 3rd, 2004 G.Cosmo diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc index c9d250b608..aa2aadb0ba 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc @@ -22,7 +22,7 @@ // // // $Id: hepmcEx01-clhep.cc,v 1.2 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out index bd9c258261..aff4bd2f1f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out index 5319d67e3c..e1588cce81 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_pygen.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh index f6ad1f01c7..f7e96dbaa2 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh index faf57654ae..dc5e782ff4 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh index 1314465369..8df6585a71 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN04HadronPhysics.hh,v 1.5 2003/12/03 11:19:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh index 382396954f..d422aa15b6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.hh,v 1.2 2003/12/03 11:19:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh index 68caf3be08..71c8bd78db 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.hh,v 1.2 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh index fd167b6221..3be8d22fed 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh index 171b5ff39b..005b0a7e7b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/source/event/include/G4HepMCAsciiReader.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCAsciiReader.hh similarity index 94% rename from source/event/include/G4HepMCAsciiReader.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCAsciiReader.hh index f4dd9d14c1..ce2a1662ae 100644 --- a/source/event/include/G4HepMCAsciiReader.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCAsciiReader.hh @@ -23,7 +23,7 @@ // ==================================================================== // // G4HepMCAsciiReader.hh -// $Id: G4HepMCAsciiReader.hh,v 1.3 2003/12/09 15:35:01 gunter Exp $ +// $Id: G4HepMCAsciiReader.hh,v 1.2 2005/12/06 13:44:22 gcosmo Exp $ // // ==================================================================== #ifndef G4_HEPMC_ASCII_READER_H @@ -31,11 +31,12 @@ #include #include "G4HepMCInterface.hh" -#include "CLHEP/HepMC/ReadHepMC.h" +#include class G4HepMCAsciiReaderMessenger; -class G4HepMCAsciiReader : public G4HepMCInterface { +class G4HepMCAsciiReader : public G4HepMCInterface +{ protected: G4String filename; std::ifstream from; diff --git a/source/event/include/G4HepMCAsciiReaderMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCAsciiReaderMessenger.hh similarity index 96% rename from source/event/include/G4HepMCAsciiReaderMessenger.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCAsciiReaderMessenger.hh index 53af6ee18e..fcabfd13a6 100644 --- a/source/event/include/G4HepMCAsciiReaderMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCAsciiReaderMessenger.hh @@ -23,7 +23,7 @@ // ==================================================================== // // G4HepMCAsciiReaderMessenger.hh -// $Id: G4HepMCAsciiReaderMessenger.hh,v 1.2 2003/12/09 15:35:02 gunter Exp $ +// $Id: G4HepMCAsciiReaderMessenger.hh,v 1.1 2005/11/18 21:55:26 asaim Exp $ // // ==================================================================== #ifndef G4_HEPMC_ASCII_READER_MESSENGER_H diff --git a/source/event/include/G4HepMCInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCInterface.hh similarity index 95% rename from source/event/include/G4HepMCInterface.hh rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCInterface.hh index 916ae08693..17fb400a03 100644 --- a/source/event/include/G4HepMCInterface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/G4HepMCInterface.hh @@ -23,7 +23,7 @@ // ==================================================================== // // G4HepMCInterface.hh -// $Id: G4HepMCInterface.hh,v 1.3 2003/12/09 15:35:03 gunter Exp $ +// $Id: G4HepMCInterface.hh,v 1.2 2005/12/06 13:44:22 gcosmo Exp $ // // A base class for primary generation via HepMC object. // This class is derived from G4VPrimaryGenerator. @@ -33,9 +33,10 @@ #define G4_HEPMC_INTERFACE_H #include "G4VPrimaryGenerator.hh" -#include "CLHEP/HepMC/GenEvent.h" +#include -class G4HepMCInterface : public G4VPrimaryGenerator { +class G4HepMCInterface : public G4VPrimaryGenerator +{ public: // static service method for conversion from HepMC::GenEvent to G4Event static void HepMC2G4(const HepMC::GenEvent* hepmcevt, G4Event* g4event); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc index 971a0ffbce..0a292f47be 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc index 0307f3437f..b6ff23b8ee 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.cc,v 1.2 2003/06/16 16:48:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc index a6ecc76b82..4653df4674 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.cc,v 1.5 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN04HadronPhysics.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc index 6a0b4042f2..02890bec74 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc index e774b1dcbd..c28d5e92b3 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc index da6ff64bc7..3e521f5e57 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04PhysicsList.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc index 2eae3c16f1..61f8bf8f9b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc index 24dde88c9e..536455a8f4 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/event/src/G4HepMCAsciiReader.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCAsciiReader.cc similarity index 97% rename from source/event/src/G4HepMCAsciiReader.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCAsciiReader.cc index bf050ff175..d08a01daa4 100644 --- a/source/event/src/G4HepMCAsciiReader.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCAsciiReader.cc @@ -23,7 +23,7 @@ // ==================================================================== // // G4HepMCAsciiReader.cc -// $Id: G4HepMCAsciiReader.cc,v 1.4 2003/12/09 15:35:04 gunter Exp $ +// $Id: G4HepMCAsciiReader.cc,v 1.1 2005/11/18 21:55:26 asaim Exp $ // // ==================================================================== diff --git a/source/event/src/G4HepMCAsciiReaderMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCAsciiReaderMessenger.cc similarity index 98% rename from source/event/src/G4HepMCAsciiReaderMessenger.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCAsciiReaderMessenger.cc index 08bbc137c9..3b4cf3fc61 100644 --- a/source/event/src/G4HepMCAsciiReaderMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCAsciiReaderMessenger.cc @@ -23,7 +23,7 @@ // ==================================================================== // // G4HepMCAsciiReaderMessenger.cc -// $Id: G4HepMCAsciiReaderMessenger.cc,v 1.3 2003/12/09 15:35:05 gunter Exp $ +// $Id: G4HepMCAsciiReaderMessenger.cc,v 1.1 2005/11/18 21:55:26 asaim Exp $ // // ==================================================================== diff --git a/source/event/src/G4HepMCInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCInterface.cc similarity index 98% rename from source/event/src/G4HepMCInterface.cc rename to examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCInterface.cc index 80aeb3abbe..86cc4769b4 100644 --- a/source/event/src/G4HepMCInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/G4HepMCInterface.cc @@ -23,7 +23,7 @@ // ==================================================================== // // G4HepMCInterface.cc -// $Id: G4HepMCInterface.cc,v 1.4 2003/12/09 15:35:06 gunter Exp $ +// $Id: G4HepMCInterface.cc,v 1.1 2005/11/18 21:55:26 asaim Exp $ // // ==================================================================== diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc index 28f0011e5e..e0c890c109 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc @@ -23,14 +23,14 @@ // ==================================================================== // // H01PythiaInterface.cc -// $Id: H01PythiaInterface.cc,v 1.3 2003/12/09 15:31:01 gunter Exp $ +// $Id: H01PythiaInterface.cc,v 1.4 2005/12/06 13:44:22 gcosmo Exp $ // // ==================================================================== #include "H01PythiaInterface.hh" #include "H01PythiaMessenger.hh" -#include "CLHEP/HepMC/CBhepevt.h" -#include "CLHEP/HepMC/include/PythiaWrapper6_2.h" +#include +#include // additional pythia calls #define pygive pygive_ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc index 4c9253f7db..c7344d12d6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc @@ -23,13 +23,15 @@ // ==================================================================== // // H01PythiaMessenger.cc -// $Id: H01PythiaMessenger.cc,v 1.3 2003/12/09 15:31:02 gunter Exp $ +// $Id: H01PythiaMessenger.cc,v 1.4 2005/11/15 15:02:26 gcosmo Exp $ // // ==================================================================== #include "H01PythiaMessenger.hh" #include "H01PythiaInterface.hh" +#include #include + #include "G4UIdirectory.hh" #include "G4UIcmdWithoutParameter.hh" #include "G4UIcmdWithAString.hh" @@ -147,7 +149,7 @@ void H01PythiaMessenger::SetNewValue(G4UIcommand* command, } else if (command == cpyinit) { // /pyinit ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4String sframe, sbeam, starget; G4double dwin; is >> sframe >> sbeam >> starget >> dwin; gen-> CallPyinit(sframe, sbeam, starget, dwin); @@ -169,14 +171,14 @@ void H01PythiaMessenger::SetNewValue(G4UIcommand* command, } else if (command == cpyrget) { // /pyrget ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4int lun, move; is >> lun >> move; gen-> CallPyrget(lun, move); } else if (command == cpyrset) { // /pyrset ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4int lun, move; is >> lun >> move; gen-> CallPyrset(lun, move); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc index 5fe5a6d718..7719919ddc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc @@ -22,7 +22,7 @@ // // // $Id: hepmcEx01.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out index fca04714b6..b1036d683f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out index aa509bd663..ff1b079b40 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_pygen.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh index e9397f73c9..c961cabbc0 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh index ad53d46e04..6cbe82deff 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh index 07a14b11a3..ad12e3de50 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN04HadronPhysics.hh,v 1.6 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh index b682dc7036..617fdbce21 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.hh,v 1.3 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh index d2287ac19c..6b22bb47fa 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.hh,v 1.3 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh index 16b105cad9..3145dc035b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.hh,v 1.1 2002/11/19 10:15:51 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh index 3d414f8063..fad113ccb4 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.hh,v 1.1 2002/11/19 10:15:52 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc index 3c6de94739..8a987ef136 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc index 7f0dc33aa9..cbca82a208 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.cc,v 1.3 2003/06/16 16:48:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc index 86de63a988..7faab8bb33 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.cc,v 1.6 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN04HadronPhysics.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc index 452aeee788..2c203d4ddc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc index b03349e7c7..1508bec983 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc index 31f15ca2de..1702cba3b7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04PhysicsList.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc index 79145632ee..863798b7f8 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.cc,v 1.1 2002/11/19 10:17:05 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc index 295fc981b2..ff313a69bf 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.3 2003/12/03 11:03:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc index 99d7ecde1a..11712f2d32 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc @@ -23,13 +23,15 @@ // ==================================================================== // // HepMCG4PythiaMessenger.cc -// $Id: HepMCG4PythiaMessenger.cc,v 1.3 2003/12/09 15:30:54 gunter Exp $ +// $Id: HepMCG4PythiaMessenger.cc,v 1.4 2005/11/15 15:02:26 gcosmo Exp $ // // ==================================================================== #include "HepMCG4PythiaMessenger.hh" #include "HepMCG4PythiaInterface.hh" +#include #include + #include "G4UIdirectory.hh" #include "G4UIcmdWithoutParameter.hh" #include "G4UIcmdWithAString.hh" @@ -147,7 +149,7 @@ void HepMCG4PythiaMessenger::SetNewValue(G4UIcommand* command, } else if (command == cpyinit) { // /pyinit ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4String sframe, sbeam, starget; G4double dwin; is >> sframe >> sbeam >> starget >> dwin; gen-> CallPyinit(sframe, sbeam, starget, dwin); @@ -169,14 +171,14 @@ void HepMCG4PythiaMessenger::SetNewValue(G4UIcommand* command, } else if (command == cpyrget) { // /pyrget ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4int lun, move; is >> lun >> move; gen-> CallPyrget(lun, move); } else if (command == cpyrset) { // /pyrset ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4int lun, move; is >> lun >> move; gen-> CallPyrset(lun, move); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History index 082f385c8a..1d285c7d15 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.6 2005/12/06 13:50:16 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,7 +15,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Dec. 6th, 2005 G.Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +May 3rd, 2005 J.Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. Dec, 3rd, 2004 G.Cosmo @@ -24,17 +27,17 @@ Dec, 3rd, 2004 G.Cosmo Nov 13th, 2003 J.Allison - Reconstructed Vis Manager. -Jul. 04, 2003 G.Cosmo (exHepMC-V05-02-00) +Jul. 4th, 2003 G.Cosmo (exHepMC-V05-02-00) - fixed compilation errors due to incorrect code migration from g4std wrappers. - fixed pedantic compilation warnings on Linux-g++. -Nov. 19, 2002 K.Murakami +Nov. 19th, 2002 K.Murakami - modified physics lists as is ExN04. - "std" namespace left/not cared was modified to "G4std". -May. 28, 2002 K.Murakami +May. 28th, 2002 K.Murakami - rename classes and filenames. -April 15, 02 K.Murakami +Apr. 15th, 02 K.Murakami - Created. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc index 82c6778b4b..8aca8ff403 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc @@ -22,7 +22,7 @@ // // // $Id: hepmcEx02-clhep.cc,v 1.2 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out index 4f06c10c9c..167abb7d5a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out index d0efc0fd6e..8a70059d20 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_pygen.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCAsciiReader.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCAsciiReader.hh new file mode 100644 index 0000000000..da44d2e93d --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCAsciiReader.hh @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// ==================================================================== +// +// G4HepMCAsciiReader.hh +// $Id: G4HepMCAsciiReader.hh,v 1.2 2005/12/06 13:50:16 gcosmo Exp $ +// +// ==================================================================== +#ifndef G4_HEPMC_ASCII_READER_H +#define G4_HEPMC_ASCII_READER_H + +#include +#include "G4HepMCInterface.hh" +#include + +class G4HepMCAsciiReaderMessenger; + +class G4HepMCAsciiReader : public G4HepMCInterface +{ +protected: + G4String filename; + std::ifstream from; + + G4int verbose; + G4HepMCAsciiReaderMessenger* messenger; + + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + G4HepMCAsciiReader(); + ~G4HepMCAsciiReader(); + + // set/get methods + void SetFileName(G4String name); + G4String GetFileName() const; + + void SetVerboseLevel(G4int i); + G4int GetVerboseLevel() const; + + // methods... + void Initialize(); +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline void G4HepMCAsciiReader::SetFileName(G4String name) +{ + filename= name; +} + +inline G4String G4HepMCAsciiReader::GetFileName() const +{ + return filename; +} + +inline void G4HepMCAsciiReader::SetVerboseLevel(G4int i) +{ + verbose= i; +} + +inline G4int G4HepMCAsciiReader::GetVerboseLevel() const +{ + return verbose; +} + +#endif diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.icc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCAsciiReaderMessenger.hh similarity index 66% rename from source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.icc rename to examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCAsciiReaderMessenger.hh index bc51e7bf12..fcabfd13a6 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.icc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCAsciiReaderMessenger.hh @@ -20,22 +20,37 @@ // * statement, and all its terms. * // ******************************************************************** // -// ----------------------------------------------------------------------- -// HEP Random -// --- RandGeneralTmp --- -// inlined functions implementation file -// ----------------------------------------------------------------------- - -// ======================================================================= -// Gabriele Cosmo - Created: 20th August 1998 -// ======================================================================= +// ==================================================================== +// +// G4HepMCAsciiReaderMessenger.hh +// $Id: G4HepMCAsciiReaderMessenger.hh,v 1.1 2005/11/18 21:55:26 asaim Exp $ +// +// ==================================================================== +#ifndef G4_HEPMC_ASCII_READER_MESSENGER_H +#define G4_HEPMC_ASCII_READER_MESSENGER_H -inline G4double G4RandGeneralTmp::shoot() -{ - return fire(); -} +#include "G4UImessenger.hh" -inline void G4RandGeneralTmp::shootArray( const G4int size, G4double* vect ) -{ - fireArray(size, vect); -} +class G4HepMCAsciiReader; +class G4UIdirectory; +class G4UIcmdWithoutParameter; +class G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +class G4HepMCAsciiReaderMessenger : public G4UImessenger { +private: + G4HepMCAsciiReader* gen; + + G4UIdirectory* dir; + G4UIcmdWithAnInteger* verbose; + G4UIcmdWithAString* open; + +public: + G4HepMCAsciiReaderMessenger(G4HepMCAsciiReader* agen); + ~G4HepMCAsciiReaderMessenger(); + + void SetNewValue(G4UIcommand* command, G4String newValues); + G4String GetCurrentValue(G4UIcommand* command); +}; + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCInterface.hh new file mode 100644 index 0000000000..33a58c5826 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/G4HepMCInterface.hh @@ -0,0 +1,79 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// ==================================================================== +// +// G4HepMCInterface.hh +// $Id: G4HepMCInterface.hh,v 1.2 2005/12/06 13:50:16 gcosmo Exp $ +// +// A base class for primary generation via HepMC object. +// This class is derived from G4VPrimaryGenerator. +// +// ==================================================================== +#ifndef G4_HEPMC_INTERFACE_H +#define G4_HEPMC_INTERFACE_H + +#include "G4VPrimaryGenerator.hh" +#include + +class G4HepMCInterface : public G4VPrimaryGenerator +{ +public: + // static service method for conversion from HepMC::GenEvent to G4Event + static void HepMC2G4(const HepMC::GenEvent* hepmcevt, G4Event* g4event); + + // static service method for checking a point is included in the (current) world + // static G4bool CheckVertexInsideWorld(const G4ThreeVector& pos); + // ------------> This method has been moved to the base class + +protected: + // Note that the life of HepMC event object must be handled by users. + // In the default implementation, a current HepMC event will be + // deleted at GeneratePrimaryVertex() in the next event. + HepMC::GenEvent* hepmcEvent; // (care for single event case only) + + // Implement this method in his/her own concrete class. + // An empty event will be created in default. + virtual HepMC::GenEvent* GenerateHepMCEvent(); + +public: + G4HepMCInterface(); + virtual ~G4HepMCInterface(); + + // set/get methods + HepMC::GenEvent* GetHepMCGenEvent() const; + + // The default behavior is that a single HepMC event generated by + // GenerateHepMCEvent() will be converted to G4Event through HepMC2G4(). + virtual void GeneratePrimaryVertex(G4Event* anEvent); +}; + +// ==================================================================== +// inline functions +// ==================================================================== + +inline HepMC::GenEvent* G4HepMCInterface::GetHepMCGenEvent() const +{ + return hepmcEvent; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh index 73ddeb88a7..a84f49b9d9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02EMPhysics.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh index 28fe752077..88124801c7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02GeneralPhysics.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh index 73c4b719fd..10fc5ffde9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02IonPhysics.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh index 55c4375d9e..1931ecdbd7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02MuonPhysics.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCAsciiReader.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCAsciiReader.cc new file mode 100644 index 0000000000..d08a01daa4 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCAsciiReader.cc @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// ==================================================================== +// +// G4HepMCAsciiReader.cc +// $Id: G4HepMCAsciiReader.cc,v 1.1 2005/11/18 21:55:26 asaim Exp $ +// +// ==================================================================== + +#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP + // will support the HepMC module + +#include "G4HepMCAsciiReader.hh" +#include "G4HepMCAsciiReaderMessenger.hh" + +//#include "g4std/iostream" + +//////////////////////////////////////// +G4HepMCAsciiReader::G4HepMCAsciiReader() + : filename("xxx.dat"), verbose(0) +//////////////////////////////////////// +{ + messenger= new G4HepMCAsciiReaderMessenger(this); +} + +///////////////////////////////////////// +G4HepMCAsciiReader::~G4HepMCAsciiReader() +///////////////////////////////////////// +{ + delete messenger; +} + +///////////////////////////////////// +void G4HepMCAsciiReader::Initialize() +///////////////////////////////////// +{ + from.close(); + from.open(filename.c_str(), std::ios::in); +} + +///////////////////////////////////////////////////////// +HepMC::GenEvent* G4HepMCAsciiReader::GenerateHepMCEvent() +///////////////////////////////////////////////////////// +{ + HepMC::GenEvent* evt= HepMC::readGenEvent(from); + if(evt==0) { + return 0; // no more event + from.close(); + } + + if(verbose>0) evt-> print(); + + return evt; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCAsciiReaderMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCAsciiReaderMessenger.cc new file mode 100644 index 0000000000..3b4cf3fc61 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCAsciiReaderMessenger.cc @@ -0,0 +1,102 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// ==================================================================== +// +// G4HepMCAsciiReaderMessenger.cc +// $Id: G4HepMCAsciiReaderMessenger.cc,v 1.1 2005/11/18 21:55:26 asaim Exp $ +// +// ==================================================================== + +#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP + // will support the HepMC module + +#include "G4HepMCAsciiReaderMessenger.hh" +#include "G4HepMCAsciiReader.hh" + +#include "G4UIdirectory.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//////////////////////////////////////////////////////// +G4HepMCAsciiReaderMessenger::G4HepMCAsciiReaderMessenger + (G4HepMCAsciiReader* agen) + : gen(agen) +//////////////////////////////////////////////////////// +{ + dir= new G4UIdirectory("/generator/hepmcAscii/"); + dir-> SetGuidance("Reading HepMC event from an Ascii file"); + + verbose= + new G4UIcmdWithAnInteger("/generator/hepmcAscii/verbose", this); + verbose-> SetGuidance("Set verbose level"); + verbose-> SetParameterName("verboseLevel", false, false); + verbose-> SetRange("verboseLevel>=0 && verboseLevel<=1"); + + open= new G4UIcmdWithAString("/generator/hepmcAscii/open", this); + open-> SetGuidance("(re)open data file (HepMC Ascii format)"); + open-> SetParameterName("input ascii file", true, true); +} + +/////////////////////////////////////////////////////////// +G4HepMCAsciiReaderMessenger::~G4HepMCAsciiReaderMessenger() +/////////////////////////////////////////////////////////// +{ + delete verbose; + delete open; + + delete dir; +} + +/////////////////////////////////////////////////////////////////// +void G4HepMCAsciiReaderMessenger::SetNewValue(G4UIcommand* command, + G4String newValues) +/////////////////////////////////////////////////////////////////// +{ + if (command==verbose) { + int level= verbose-> GetNewIntValue(newValues); + gen-> SetVerboseLevel(level); + } else if (command==open) { + gen-> SetFileName(newValues); + G4cout << "HepMC Ascii inputfile: " + << gen-> GetFileName() << G4endl; + gen-> Initialize(); + } +} + + +/////////////////////////////////////////////////////////////////////////// +G4String G4HepMCAsciiReaderMessenger::GetCurrentValue(G4UIcommand* command) +/////////////////////////////////////////////////////////////////////////// +{ + G4String cv; + + if (command == verbose) { + cv= verbose-> ConvertToString(gen-> GetVerboseLevel()); + } else if (command == open) { + cv= gen-> GetFileName(); + } + return cv; +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCInterface.cc new file mode 100644 index 0000000000..86cc4769b4 --- /dev/null +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/G4HepMCInterface.cc @@ -0,0 +1,128 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// ==================================================================== +// +// G4HepMCInterface.cc +// $Id: G4HepMCInterface.cc,v 1.1 2005/11/18 21:55:26 asaim Exp $ +// +// ==================================================================== + +#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP + // will support the HepMC module + +#include "G4HepMCInterface.hh" + +#include "globals.hh" +#include "G4LorentzVector.hh" +#include "G4Event.hh" +#include "G4PrimaryParticle.hh" +#include "G4PrimaryVertex.hh" + +//////////////////////////////////// +G4HepMCInterface::G4HepMCInterface() + : hepmcEvent(0) +//////////////////////////////////// +{ +} + +///////////////////////////////////// +G4HepMCInterface::~G4HepMCInterface() +///////////////////////////////////// +{ + delete hepmcEvent; +} + +//////////////////////////////////////////////////////////////// +void G4HepMCInterface::HepMC2G4(const HepMC::GenEvent* hepmcevt, + G4Event* g4event) +//////////////////////////////////////////////////////////////// +{ + for(HepMC::GenEvent::vertex_const_iterator vitr= hepmcevt->vertices_begin(); + vitr != hepmcevt->vertices_end(); ++vitr ) { // loop for vertex ... + + // real vertex? + G4bool qvtx=false; + for (HepMC::GenVertex::particle_iterator + pitr= (*vitr)->particles_begin(HepMC::children); + pitr != (*vitr)->particles_end(HepMC::children); ++pitr) { + + if (!(*pitr)->end_vertex() && (*pitr)->status()==1) { + qvtx=true; + break; + } + } + if (!qvtx) continue; + + // check world boundary + G4LorentzVector xvtx= (*vitr)-> position(); + if (! CheckVertexInsideWorld(xvtx.vect()*mm)) continue; + + // create G4PrimaryVertex and associated G4PrimaryParticles + G4PrimaryVertex* g4vtx= + new G4PrimaryVertex(xvtx.x()*mm, xvtx.y()*mm, xvtx.z()*mm, + xvtx.t()*mm/c_light); + + for (HepMC::GenVertex::particle_iterator + vpitr= (*vitr)->particles_begin(HepMC::children); + vpitr != (*vitr)->particles_end(HepMC::children); ++vpitr) { + + if( (*vpitr)->status() != 1 ) continue; + + G4int pdgcode= (*vpitr)-> pdg_id(); + G4LorentzVector p= (*vpitr)-> momentum(); + G4PrimaryParticle* g4prim= + new G4PrimaryParticle(pdgcode, p.x()*GeV, p.y()*GeV, p.z()*GeV); + + g4vtx-> SetPrimary(g4prim); + } + g4event-> AddPrimaryVertex(g4vtx); + } +} + + +/////////////////////////////////////////////////////// +HepMC::GenEvent* G4HepMCInterface::GenerateHepMCEvent() +/////////////////////////////////////////////////////// +{ + HepMC::GenEvent* aevent= new HepMC::GenEvent(); + return aevent; +} + +////////////////////////////////////////////////////////////// +void G4HepMCInterface::GeneratePrimaryVertex(G4Event* anEvent) +////////////////////////////////////////////////////////////// +{ + // delete previous event object + delete hepmcEvent; + + // generate next event + hepmcEvent= GenerateHepMCEvent(); + if(! hepmcEvent) { + G4Exception("G4HepMCInterface","GeneratePrimaryVertex",RunMustBeAborted, + "HepMCInterface: no generated particles. run terminated..." ); + return; + } + HepMC2G4(hepmcEvent, anEvent); +} + +#endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc index 3d199f69fa..8c162719b0 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02EMPhysics.cc,v 1.2 2003/06/16 16:48:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc index 46c7d9b280..e5cc160274 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02GeneralPhysics.cc,v 1.2 2003/06/16 16:48:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc index 2180d6d2f8..d6296904a1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02IonPhysics.cc,v 1.2 2003/06/16 16:48:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc index c51df7da59..dc9f05abbe 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02MuonPhysics.cc,v 1.2 2003/06/16 16:48:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc index 4098906efc..fa727ebb16 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: H02PhysicsList.cc,v 1.2 2003/06/16 16:48:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc index aa844bb55b..ef6f1fbc22 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc @@ -23,14 +23,14 @@ // ==================================================================== // // H02PythiaInterface.cc -// $Id: H02PythiaInterface.cc,v 1.3 2003/12/09 15:31:57 gunter Exp $ +// $Id: H02PythiaInterface.cc,v 1.4 2005/12/06 13:50:16 gcosmo Exp $ // // ==================================================================== #include "H02PythiaInterface.hh" #include "H02PythiaMessenger.hh" -#include "CLHEP/HepMC/CBhepevt.h" -#include "CLHEP/HepMC/include/PythiaWrapper6_2.h" +#include +#include // additional pythia calls #define pygive pygive_ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc index 885f0eb0d3..2e7d3e2908 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc @@ -23,13 +23,15 @@ // ==================================================================== // // H02PythiaMessenger.cc -// $Id: H02PythiaMessenger.cc,v 1.3 2003/12/09 15:31:58 gunter Exp $ +// $Id: H02PythiaMessenger.cc,v 1.4 2005/11/15 15:02:27 gcosmo Exp $ // // ==================================================================== #include "H02PythiaMessenger.hh" #include "H02PythiaInterface.hh" +#include #include + #include "G4UIdirectory.hh" #include "G4UIcmdWithoutParameter.hh" #include "G4UIcmdWithAString.hh" @@ -147,7 +149,7 @@ void H02PythiaMessenger::SetNewValue(G4UIcommand* command, } else if (command == cpyinit) { // /pyinit ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4String sframe, sbeam, starget; G4double dwin; is >> sframe >> sbeam >> starget >> dwin; gen-> CallPyinit(sframe, sbeam, starget, dwin); @@ -169,14 +171,14 @@ void H02PythiaMessenger::SetNewValue(G4UIcommand* command, } else if (command == cpyrget) { // /pyrget ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4int lun, move; is >> lun >> move; gen-> CallPyrget(lun, move); } else if (command == cpyrset) { // /pyrset ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4int lun, move; is >> lun >> move; gen-> CallPyrset(lun, move); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc index 81c74fe844..e4cd30ee1f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc @@ -22,7 +22,7 @@ // // // $Id: hepmcEx02.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out index 0f87273459..3e8ebedf63 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out index c33bdedb18..a726e8fc48 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_pygen.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh index feea758639..4162e0df08 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02EMPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh index 5462e0c6d6..c61a67b459 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02GeneralPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh index fa03ea5206..881d34fc2d 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02IonPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh index e73765f474..9b429ac1b1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: H02MuonPhysics.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc index 2b201687aa..757dcea3c9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02EMPhysics.cc,v 1.3 2003/06/16 16:48:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc index a101dc4e3d..af89ed5106 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02GeneralPhysics.cc,v 1.3 2003/06/16 16:48:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc index 60731791f4..e23fec7102 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02IonPhysics.cc,v 1.3 2003/06/16 16:48:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc index a4bfed4ca5..d85122448d 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: H02MuonPhysics.cc,v 1.3 2003/06/16 16:48:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc index 3595a332c9..9169dcb685 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: H02PhysicsList.cc,v 1.3 2003/06/16 16:48:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc index d9491dce28..805d1201fc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc @@ -23,13 +23,15 @@ // ==================================================================== // // HepMCG4PythiaMessenger.cc -// $Id: HepMCG4PythiaMessenger.cc,v 1.4 2003/12/09 15:31:34 gunter Exp $ +// $Id: HepMCG4PythiaMessenger.cc,v 1.5 2005/11/15 15:02:27 gcosmo Exp $ // // ==================================================================== #include "HepMCG4PythiaMessenger.hh" #include "HepMCG4PythiaInterface.hh" +#include #include + #include "G4UIdirectory.hh" #include "G4UIcmdWithoutParameter.hh" #include "G4UIcmdWithAString.hh" @@ -147,7 +149,7 @@ void HepMCG4PythiaMessenger::SetNewValue(G4UIcommand* command, } else if (command == cpyinit) { // /pyinit ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4String sframe, sbeam, starget; G4double dwin; is >> sframe >> sbeam >> starget >> dwin; gen-> CallPyinit(sframe, sbeam, starget, dwin); @@ -169,14 +171,14 @@ void HepMCG4PythiaMessenger::SetNewValue(G4UIcommand* command, } else if (command == cpyrget) { // /pyrget ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4int lun, move; is >> lun >> move; gen-> CallPyrget(lun, move); } else if (command == cpyrset) { // /pyrset ... const char* strvaluelist= newValues.c_str(); - std::istrstream is((char*)strvaluelist); + std::istringstream is(strvaluelist); G4int lun, move; is >> lun >> move; gen-> CallPyrset(lun, move); diff --git a/examples/extended/eventgenerator/HepMC/History b/examples/extended/eventgenerator/HepMC/History index 6a9ba422fd..5c061f4532 100644 --- a/examples/extended/eventgenerator/HepMC/History +++ b/examples/extended/eventgenerator/HepMC/History @@ -1,4 +1,4 @@ -$Id: History,v 1.10 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.12 2005/11/18 21:55:26 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,7 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Nov 18, 2005 M.Asai (exHepMC-V07-01-01) +- G4HepMC classes are moved from source/event. + +Nov 15, 2005 G.Cosmo (exHepMC-V07-01-00) +- Migration to from deprecated . + +May 03, 2005 J.Allison - Replaced vis manager with G4VisExecutive. Dec 03, 2004 G.Cosmo (exHepMC-V06-02-00) diff --git a/examples/extended/eventgenerator/exgps/GNUmakefile b/examples/extended/eventgenerator/exgps/GNUmakefile index a836295c9c..7c2e86b65d 100644 --- a/examples/extended/eventgenerator/exgps/GNUmakefile +++ b/examples/extended/eventgenerator/exgps/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2004/10/28 11:18:27 flei Exp $ +# $Id: GNUmakefile,v 1.3 2005/07/19 08:35:49 flei Exp $ # -------------------------------------------------------------- # GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. # -------------------------------------------------------------- @@ -22,5 +22,5 @@ include $(G4INSTALL)/config/binmake.gmk ifdef G4ANALYSIS_USE CPPFLAGS += `aida-config --include` - LOADLIBS += `aida-config --lib` + LDLIBS += `aida-config --lib` endif diff --git a/examples/extended/eventgenerator/exgps/History b/examples/extended/eventgenerator/exgps/History index 9fe056ae0a..275d4f36ca 100644 --- a/examples/extended/eventgenerator/exgps/History +++ b/examples/extended/eventgenerator/exgps/History @@ -11,6 +11,12 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +19/07/2005 F.Lei (exgps-V07-01-00) +- Changing in GNUmakefile + LOADLIBS += `aida-config --lib` + by + LDLIBS += `aida-config --lib` + Fixing link with AIDA on WIN32-VC (bug#767) 3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. diff --git a/examples/extended/eventgenerator/exgps/include/exGPSEventActionMessenger.hh b/examples/extended/eventgenerator/exgps/include/exGPSEventActionMessenger.hh index 7cc9262978..2472be37a8 100644 --- a/examples/extended/eventgenerator/exgps/include/exGPSEventActionMessenger.hh +++ b/examples/extended/eventgenerator/exgps/include/exGPSEventActionMessenger.hh @@ -28,7 +28,7 @@ // and all its terms. // // $Id: exGPSEventActionMessenger.hh,v 1.3 2004/12/15 15:41:11 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/eventgenerator/exgps/src/exGPSAnalysisManager.cc b/examples/extended/eventgenerator/exgps/src/exGPSAnalysisManager.cc index e4fc7825a3..54aa06c30b 100644 --- a/examples/extended/eventgenerator/exgps/src/exGPSAnalysisManager.cc +++ b/examples/extended/eventgenerator/exgps/src/exGPSAnalysisManager.cc @@ -68,11 +68,13 @@ ITupleFactory* exGPSAnalysisManager::getTupleFactory() IPlotter* exGPSAnalysisManager::createPlotter() { +#ifdef JAIDA_HOME if (analysisFactory) { IPlotterFactory* pf = analysisFactory->createPlotterFactory(0,0); if (pf) return pf->create("Plotter"); } +#endif return 0; } @@ -167,7 +169,7 @@ void exGPSAnalysisManager::BeginOfRun() , 100, -1, 1); anglTP = hFactory->createHistogram2D("Source phi-theta distribution",360,0,360 ,180,0,180); - +#ifdef JAIDA_HOME plotter = createPlotter(); if (plotter) @@ -181,13 +183,14 @@ void exGPSAnalysisManager::BeginOfRun() plotter->region(5)->plot(*anglTP); plotter->show(); } +#endif } // Create a Tuple if (tFactory) { - tuple = tFactory->create("MyTuple","MyTuple","string Pname, double Energy, X, Y, Z, Theta, Phi, Weight",""); + tuple = tFactory->create("MyTuple","MyTuple","std::string Pname, std::double Energy, X, Y, Z, Theta, Phi, Weight",""); } } diff --git a/examples/extended/eventgenerator/exgps/src/exGPSEventActionMessenger.cc b/examples/extended/eventgenerator/exgps/src/exGPSEventActionMessenger.cc index 2491da5858..1a70af026c 100644 --- a/examples/extended/eventgenerator/exgps/src/exGPSEventActionMessenger.cc +++ b/examples/extended/eventgenerator/exgps/src/exGPSEventActionMessenger.cc @@ -28,7 +28,7 @@ // and all its terms. // // $Id: exGPSEventActionMessenger.cc,v 1.2 2004/12/15 15:41:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/BlineTracer/include/G4BlineEquation.hh b/examples/extended/field/BlineTracer/include/G4BlineEquation.hh index 82387c75c7..a826a668fd 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineEquation.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineEquation.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineEquation.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh b/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh index 792073daf9..5735a93ab7 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineEventAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh b/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh index da270bbf0f..da524d0210 100644 --- a/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh +++ b/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlinePrimaryGeneratorAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh b/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh index 5bfffbc671..5a8bfa5046 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineSteppingAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlineTracer.hh b/examples/extended/field/BlineTracer/include/G4BlineTracer.hh index e5b9d887f5..67c8840907 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineTracer.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineTracer.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineTracer.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh b/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh index 43bb33166f..0ce8286b64 100644 --- a/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlineTracerMessenger.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineEquation.cc b/examples/extended/field/BlineTracer/src/G4BlineEquation.cc index 304c6526bc..6f71d9b364 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineEquation.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineEquation.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineEquation.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc b/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc index 756c5dc602..89f8ddf702 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineEventAction.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc b/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc index 6756664d66..bb7dd290df 100644 --- a/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc +++ b/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlinePrimaryGeneratorAction.cc,v 1.2 2004/12/03 16:07:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc b/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc index 15b200c00e..83b6cfec89 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineSteppingAction.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineTracer.cc b/examples/extended/field/BlineTracer/src/G4BlineTracer.cc index 603a42b29d..2f0429086f 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineTracer.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineTracer.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineTracer.cc,v 1.2 2004/06/03 15:28:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc b/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc index 143b271228..4f4488b766 100644 --- a/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlineTracerMessenger.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // diff --git a/examples/extended/field/field01/History b/examples/extended/field/field01/History index 092c845e97..a105d4961a 100644 --- a/examples/extended/field/field01/History +++ b/examples/extended/field/field01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.18 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.19 2005/12/06 13:58:04 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,7 +15,12 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Dec 6th, 2005 Gabriele Cosmo +----------------------------- +- Trivial changes for support of CLHEP-2.0.X series. + +May 3rd, 2005 John Allison (examples-V07-00-03) +------------------------------------------------ - Replaced vis manager with G4VisExecutive. Dec 3rd, 2004 Gabriele Cosmo diff --git a/examples/extended/field/field01/field01.cc b/examples/extended/field/field01/field01.cc index fd27e6b991..76e40adcdb 100644 --- a/examples/extended/field/field01/field01.cc +++ b/examples/extended/field/field01/field01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field01.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: field01.cc,v 1.7 2005/12/06 13:58:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -57,7 +57,7 @@ int main(int argc,char** argv) //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out index b2af2ab802..a860b35112 100644 --- a/examples/extended/field/field01/field01.out +++ b/examples/extended/field/field01/field01.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -68,6 +68,8 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) +Registering model factories... + The WORLD is made of 44000mm of Air, the transverse size (R) of the world is 22000 mm. The ABSORBER is made of 1mm of Air, the transverse size (R) is 20000 mm. Z position of the (middle of the) absorber 21990 mm. @@ -97,7 +99,7 @@ eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -109,7 +111,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -119,7 +121,7 @@ eBrem: tables are built for e+ msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -130,7 +132,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -168,7 +170,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -182,6 +184,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 0 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -192,13 +196,14 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.01183 m 21.9895 m 0 8.95106e-13 1 500 MeV0.00387485 eV 1.58938 m 1.58938 m World Transportation - 2 0 fm 1.01183 m 21.9905 m 0 -0.00197661 0.999998 500 MeV2.44427e-06 eV 1 mm 1.59038 m Absorber Transportation - 3 0 fm 1.01172 m 22 m 0 -0.0207544 0.999785 500 MeV2.31353e-05 eV 9.50075 mm 1.59988 m OutOfWorld Transportation + 1 0 fm 1.01183 m 21.9895 m 0 8.95106e-13 1 500 MeV0.00387483 eV 1.58938 m 1.58938 m World Transportation + 2 0 fm 1.01183 m 21.9905 m 0 -0.00197661 0.999998 500 MeV2.43795e-06 eV 1 mm 1.59038 m Absorber Transportation + 3 0 fm 1.01172 m 22 m 0 -0.0207544 0.999785 500 MeV2.31623e-05 eV 9.50075 mm 1.59988 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.01s Real=0.05s Sys=0s + User=0s Real=0.07s Sys=0.02s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. ========= Table of registered couples ============================== @@ -212,6 +217,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 1 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -222,13 +229,14 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 250 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 50.6432 cm 21.9895 m 0 1.17461e-09 1 250 MeV0.00183027 eV 79.5502 cm 79.5502 cm World Transportation - 2 0 fm 50.643 cm 21.9905 m 0 -0.0039492 0.999992 250 MeV2.30216e-06 eV 1 mm 79.6502 cm Absorber Transportation - 3 0 fm 50.6214 cm 22 m 0 -0.0414666 0.99914 250 MeV2.18563e-05 eV 9.50301 mm 80.6005 cm OutOfWorld Transportation + 1 0 fm 50.6432 cm 21.9895 m 0 1.17461e-09 1 250 MeV0.00183026 eV 79.5502 cm 79.5502 cm World Transportation + 2 0 fm 50.643 cm 21.9905 m 0 -0.0039492 0.999992 250 MeV2.30077e-06 eV 1 mm 79.6502 cm Absorber Transportation + 3 0 fm 50.6214 cm 22 m 0 -0.0414666 0.99914 250 MeV2.18642e-05 eV 9.50301 mm 80.6005 cm OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0s Real=0s Sys=0s + User=0.01s Real=0.01s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. ========= Table of registered couples ============================== @@ -242,6 +250,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 2 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -252,13 +262,14 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 200 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 40.5352 cm 21.9895 m 0 -2.18037e-09 1 200 MeV0.00143692 eV 63.6725 cm 63.6725 cm World Transportation - 2 0 fm 40.5349 cm 21.9905 m 0 -0.00493399 0.999988 200 MeV2.24532e-06 eV 1 mm 63.7725 cm Absorber Transportation - 3 0 fm 40.5079 cm 22 m 0 -0.0518069 0.998657 200 MeV2.14584e-05 eV 9.50471 mm 64.723 cm OutOfWorld Transportation + 1 0 fm 40.5352 cm 21.9895 m 0 -2.18037e-09 1 200 MeV0.00143691 eV 63.6725 cm 63.6725 cm World Transportation + 2 0 fm 40.5349 cm 21.9905 m 0 -0.00493399 0.999988 200 MeV2.25672e-06 eV 1 mm 63.7725 cm Absorber Transportation + 3 0 fm 40.5079 cm 22 m 0 -0.0518069 0.998657 200 MeV2.14494e-05 eV 9.50471 mm 64.723 cm OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 User=0.01s Real=0.01s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. ========= Table of registered couples ============================== @@ -272,6 +283,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 3 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -282,13 +295,14 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 100 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 20.319 cm 21.9895 m 0 9.91398e-09 1 100 MeV0.000676636 eV 31.9171 cm 31.9171 cm World Transportation - 2 0 fm 20.3185 cm 21.9905 m 0 -0.00984297 0.999952 100 MeV2.11742e-06 eV 1.00002 mm 32.0171 cm Absorber Transportation - 3 0 fm 20.2645 cm 22 m 0 -0.103352 0.994645 100 MeV2.01794e-05 eV 9.51883 mm 32.969 cm OutOfWorld Transportation + 1 0 fm 20.319 cm 21.9895 m 0 9.91398e-09 1 100 MeV0.000676634 eV 31.9171 cm 31.9171 cm World Transportation + 2 0 fm 20.3185 cm 21.9905 m 0 -0.00984297 0.999952 100 MeV2.12001e-06 eV 1.00002 mm 32.0171 cm Absorber Transportation + 3 0 fm 20.2645 cm 22 m 0 -0.103352 0.994645 100 MeV2.01797e-05 eV 9.51883 mm 32.969 cm OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.01s Real=0.01s Sys=0s + User=0s Real=0s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. ========= Table of registered couples ============================== @@ -302,6 +316,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 4 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -312,13 +328,14 @@ Start Run processing. Step# X Y Z Direction x dir y dir z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 21.9895 m 0 0 -1 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 10.2108 cm 21.9895 m 0 -7.69218e-09 1 50 MeV0.000318174 eV 16.0391 cm 16.0391 cm World Transportation - 2 0 fm 10.2098 cm 21.9905 m 0 -0.0195872 0.999808 50 MeV1.98241e-06 eV 1.00006 mm 16.1391 cm Absorber Transportation - 3 0 fm 10.1016 cm 22 m 0 -0.205667 0.978622 50 MeV1.89928e-05 eV 9.5755 mm 17.0966 cm OutOfWorld Transportation + 1 0 fm 10.2108 cm 21.9895 m 0 -7.69218e-09 1 50 MeV0.000318172 eV 16.0391 cm 16.0391 cm World Transportation + 2 0 fm 10.2098 cm 21.9905 m 0 -0.0195872 0.999808 50 MeV1.98386e-06 eV 1.00006 mm 16.1391 cm Absorber Transportation + 3 0 fm 10.1016 cm 22 m 0 -0.205667 0.978622 50 MeV1.89952e-05 eV 9.5755 mm 17.0966 cm OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 1 - User=0.01s Real=0.01s Sys=0s + User=0s Real=0s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. G4ClassicalRK4 (default) is called The minimal step is equal to 0.1 mm Setting Field strength to 1000 Gauss. Magnetic field vector is (0,0,1000) G @@ -335,6 +352,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 5 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -350,6 +369,7 @@ Run terminated. Run Summary Number of events processed : 1 User=0s Real=0s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. ========= Table of registered couples ============================== @@ -363,6 +383,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 6 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -388,6 +410,7 @@ Run terminated. Run Summary Number of events processed : 100 User=0.06s Real=0.06s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/field/field01/include/F01CalorHit.hh b/examples/extended/field/field01/include/F01CalorHit.hh index 54985a1709..0b81adf770 100644 --- a/examples/extended/field/field01/include/F01CalorHit.hh +++ b/examples/extended/field/field01/include/F01CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: F01CalorHit.hh,v 1.3 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01CalorimeterSD.hh b/examples/extended/field/field01/include/F01CalorimeterSD.hh index 403bec526f..2804b78d8b 100644 --- a/examples/extended/field/field01/include/F01CalorimeterSD.hh +++ b/examples/extended/field/field01/include/F01CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: F01CalorimeterSD.hh,v 1.3 2001/10/15 17:20:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorConstruction.hh b/examples/extended/field/field01/include/F01DetectorConstruction.hh index d7ebc67767..5f2c5fc12c 100644 --- a/examples/extended/field/field01/include/F01DetectorConstruction.hh +++ b/examples/extended/field/field01/include/F01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: F01DetectorConstruction.hh,v 1.6 2003/11/25 18:06:22 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorMessenger.hh b/examples/extended/field/field01/include/F01DetectorMessenger.hh index b8ee36dc4e..68b2bf740d 100644 --- a/examples/extended/field/field01/include/F01DetectorMessenger.hh +++ b/examples/extended/field/field01/include/F01DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01DetectorMessenger.hh,v 1.3 2001/10/25 08:10:20 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01EventAction.hh b/examples/extended/field/field01/include/F01EventAction.hh index 516b823dc1..c3241c455c 100644 --- a/examples/extended/field/field01/include/F01EventAction.hh +++ b/examples/extended/field/field01/include/F01EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: F01EventAction.hh,v 1.4 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01EventActionMessenger.hh b/examples/extended/field/field01/include/F01EventActionMessenger.hh index 49147b16e4..359ea4efff 100644 --- a/examples/extended/field/field01/include/F01EventActionMessenger.hh +++ b/examples/extended/field/field01/include/F01EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01EventActionMessenger.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01FieldMessenger.hh b/examples/extended/field/field01/include/F01FieldMessenger.hh index fb0acdb662..37b834796e 100644 --- a/examples/extended/field/field01/include/F01FieldMessenger.hh +++ b/examples/extended/field/field01/include/F01FieldMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01FieldMessenger.hh,v 1.6 2003/11/25 18:06:22 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01FieldSetup.hh b/examples/extended/field/field01/include/F01FieldSetup.hh index 098b8aa352..b9f1dfb605 100644 --- a/examples/extended/field/field01/include/F01FieldSetup.hh +++ b/examples/extended/field/field01/include/F01FieldSetup.hh @@ -22,7 +22,7 @@ // // // $Id: F01FieldSetup.hh,v 1.2 2003/12/01 15:47:52 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/extended/field/field01/include/F01PhysicsList.hh b/examples/extended/field/field01/include/F01PhysicsList.hh index ec0d490abb..e4e95f333f 100644 --- a/examples/extended/field/field01/include/F01PhysicsList.hh +++ b/examples/extended/field/field01/include/F01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsList.hh,v 1.3 2003/08/27 17:38:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef F01PhysicsList_h diff --git a/examples/extended/field/field01/include/F01PhysicsListMessenger.hh b/examples/extended/field/field01/include/F01PhysicsListMessenger.hh index 370815b342..2d693db3a1 100644 --- a/examples/extended/field/field01/include/F01PhysicsListMessenger.hh +++ b/examples/extended/field/field01/include/F01PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsListMessenger.hh,v 1.3 2001/10/15 17:20:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh index 17227425d9..c8384d1c86 100644 --- a/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh +++ b/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh index a5787be302..90dc209549 100644 --- a/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh +++ b/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01RunAction.hh b/examples/extended/field/field01/include/F01RunAction.hh index 244b515972..27162dd60c 100644 --- a/examples/extended/field/field01/include/F01RunAction.hh +++ b/examples/extended/field/field01/include/F01RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: F01RunAction.hh,v 1.5 2003/06/16 16:48:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01RunMessenger.hh b/examples/extended/field/field01/include/F01RunMessenger.hh index fc26ceba6b..ddb5f4bc5e 100644 --- a/examples/extended/field/field01/include/F01RunMessenger.hh +++ b/examples/extended/field/field01/include/F01RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: F01RunMessenger.hh,v 1.3 2001/10/15 17:20:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01StepCut.hh b/examples/extended/field/field01/include/F01StepCut.hh index 95cab3c931..3a0f4c11c2 100644 --- a/examples/extended/field/field01/include/F01StepCut.hh +++ b/examples/extended/field/field01/include/F01StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: F01StepCut.hh,v 1.4 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingAction.hh b/examples/extended/field/field01/include/F01SteppingAction.hh index ebb2460099..ec2e638592 100644 --- a/examples/extended/field/field01/include/F01SteppingAction.hh +++ b/examples/extended/field/field01/include/F01SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: F01SteppingAction.hh,v 1.3 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingMessenger.hh b/examples/extended/field/field01/include/F01SteppingMessenger.hh index 21e2174c7e..8086789bda 100644 --- a/examples/extended/field/field01/include/F01SteppingMessenger.hh +++ b/examples/extended/field/field01/include/F01SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F01SteppingMessenger.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/include/F01SteppingVerbose.hh b/examples/extended/field/field01/include/F01SteppingVerbose.hh index b66ae9bc0b..90092e4995 100644 --- a/examples/extended/field/field01/include/F01SteppingVerbose.hh +++ b/examples/extended/field/field01/include/F01SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: F01SteppingVerbose.hh,v 1.3 2001/10/15 17:20:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field01/src/F01CalorHit.cc b/examples/extended/field/field01/src/F01CalorHit.cc index e39370da97..c498e01de6 100644 --- a/examples/extended/field/field01/src/F01CalorHit.cc +++ b/examples/extended/field/field01/src/F01CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: F01CalorHit.cc,v 1.3 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01CalorimeterSD.cc b/examples/extended/field/field01/src/F01CalorimeterSD.cc index bcf279a265..c7f88cee05 100644 --- a/examples/extended/field/field01/src/F01CalorimeterSD.cc +++ b/examples/extended/field/field01/src/F01CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: F01CalorimeterSD.cc,v 1.5 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorConstruction.cc b/examples/extended/field/field01/src/F01DetectorConstruction.cc index aaa82d83eb..793e0bf77e 100644 --- a/examples/extended/field/field01/src/F01DetectorConstruction.cc +++ b/examples/extended/field/field01/src/F01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: F01DetectorConstruction.cc,v 1.14 2004/12/02 11:32:59 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorMessenger.cc b/examples/extended/field/field01/src/F01DetectorMessenger.cc index e200563254..5a3ba79fef 100644 --- a/examples/extended/field/field01/src/F01DetectorMessenger.cc +++ b/examples/extended/field/field01/src/F01DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01DetectorMessenger.cc,v 1.4 2002/12/05 01:06:56 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01EventAction.cc b/examples/extended/field/field01/src/F01EventAction.cc index e9739ea7c4..18791b2271 100644 --- a/examples/extended/field/field01/src/F01EventAction.cc +++ b/examples/extended/field/field01/src/F01EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01EventAction.cc,v 1.4 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F01EventAction.cc,v 1.5 2005/12/06 13:58:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -110,12 +110,12 @@ void F01EventAction::EndOfEventAction(const G4Event* evt) //save rndm status if (runaction->GetRndmFreq() == 2) { - HepRandom::saveEngineStatus("endOfEvent.rndm"); + CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); G4int evtNb = evt->GetEventID(); if (evtNb%printModulo == 0) { G4cout << "\n---> End of Event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } } } diff --git a/examples/extended/field/field01/src/F01EventActionMessenger.cc b/examples/extended/field/field01/src/F01EventActionMessenger.cc index 630d61699f..fcd3be34c5 100644 --- a/examples/extended/field/field01/src/F01EventActionMessenger.cc +++ b/examples/extended/field/field01/src/F01EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01EventActionMessenger.cc,v 1.3 2002/12/05 01:06:56 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01FieldMessenger.cc b/examples/extended/field/field01/src/F01FieldMessenger.cc index b226a66e25..8ec8d0e28a 100644 --- a/examples/extended/field/field01/src/F01FieldMessenger.cc +++ b/examples/extended/field/field01/src/F01FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01FieldMessenger.cc,v 1.7 2003/11/25 18:06:26 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01FieldSetup.cc b/examples/extended/field/field01/src/F01FieldSetup.cc index 4de7bbb02c..c6c5d52c46 100644 --- a/examples/extended/field/field01/src/F01FieldSetup.cc +++ b/examples/extended/field/field01/src/F01FieldSetup.cc @@ -22,7 +22,7 @@ // // // $Id: F01FieldSetup.cc,v 1.6 2004/03/23 14:51:04 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // User Field setup class implementation. // diff --git a/examples/extended/field/field01/src/F01PhysicsList.cc b/examples/extended/field/field01/src/F01PhysicsList.cc index 168d8c1cf4..93851edb9b 100644 --- a/examples/extended/field/field01/src/F01PhysicsList.cc +++ b/examples/extended/field/field01/src/F01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsList.cc,v 1.10 2004/12/03 15:22:18 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc index d1781ff09e..5ae5c22d5f 100644 --- a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc +++ b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01PhysicsListMessenger.cc,v 1.5 2003/08/27 17:38:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc index 831d756731..26a3cfa35d 100644 --- a/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc +++ b/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorAction.cc,v 1.7 2004/12/03 16:07:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc index ef681fdfd8..6b2722a06d 100644 --- a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01RunAction.cc b/examples/extended/field/field01/src/F01RunAction.cc index 7bf6b0e94e..32f8fb35ee 100644 --- a/examples/extended/field/field01/src/F01RunAction.cc +++ b/examples/extended/field/field01/src/F01RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01RunAction.cc,v 1.8 2003/06/25 17:40:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F01RunAction.cc,v 1.9 2005/12/06 13:58:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -62,8 +62,8 @@ void F01RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status if (saveRndm > 0) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("beginOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); } G4UImanager* UI = G4UImanager::GetUIpointer(); @@ -85,8 +85,8 @@ void F01RunAction::EndOfRunAction(const G4Run*) if (saveRndm == 1) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("endOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); } } diff --git a/examples/extended/field/field01/src/F01RunMessenger.cc b/examples/extended/field/field01/src/F01RunMessenger.cc index 3ed98512f6..1ce1d11eab 100644 --- a/examples/extended/field/field01/src/F01RunMessenger.cc +++ b/examples/extended/field/field01/src/F01RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01RunMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F01RunMessenger.cc,v 1.5 2005/12/06 13:58:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -80,8 +80,8 @@ void F01RunMessenger::SetNewValue(G4UIcommand* command,G4String newValues) if (command == RndmReadCmd) { G4cout << "\n---> rndm status restored from file: " << newValues << G4endl; - HepRandom::restoreEngineStatus(newValues); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::restoreEngineStatus(newValues); + CLHEP::HepRandom::showEngineStatus(); } } diff --git a/examples/extended/field/field01/src/F01StepCut.cc b/examples/extended/field/field01/src/F01StepCut.cc index d05b50904d..f5a7456514 100644 --- a/examples/extended/field/field01/src/F01StepCut.cc +++ b/examples/extended/field/field01/src/F01StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: F01StepCut.cc,v 1.2 2001/07/11 09:58:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "F01StepCut.hh" diff --git a/examples/extended/field/field01/src/F01SteppingAction.cc b/examples/extended/field/field01/src/F01SteppingAction.cc index ff72d8ff5b..bd848ff0ca 100644 --- a/examples/extended/field/field01/src/F01SteppingAction.cc +++ b/examples/extended/field/field01/src/F01SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: F01SteppingAction.cc,v 1.6 2003/06/16 16:48:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field01/src/F01SteppingMessenger.cc b/examples/extended/field/field01/src/F01SteppingMessenger.cc index 489821c54e..667220e994 100644 --- a/examples/extended/field/field01/src/F01SteppingMessenger.cc +++ b/examples/extended/field/field01/src/F01SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01SteppingMessenger.cc,v 1.3 2003/06/25 17:40:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/src/F01SteppingVerbose.cc b/examples/extended/field/field01/src/F01SteppingVerbose.cc index e8a5a5293b..2c7e80841b 100644 --- a/examples/extended/field/field01/src/F01SteppingVerbose.cc +++ b/examples/extended/field/field01/src/F01SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: F01SteppingVerbose.cc,v 1.6 2003/12/01 16:25:37 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/field/field02/History b/examples/extended/field/field02/History index 8c7d07b1f4..258421e52a 100644 --- a/examples/extended/field/field02/History +++ b/examples/extended/field/field02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.20 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.22 2005/12/06 13:58:22 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,27 +15,37 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Dec 6th, 2005 Gabriele Cosmo +----------------------------- +- Trivial changes for support of CLHEP-2.0.X series. + +Oct 13th, 2005 - V.Grichine (fieldex02-V07-01-00) +--------------------------- +- Removed cluster models from detector construction. + Coworks with gpara-V07-01-00. + +May 3rd, 2005 - J.Allison (examples-V07-00-03) +------------------------- - Replaced vis manager with G4VisExecutive. -Dec 3rd, 2004 Gabriele Cosmo ----------------------------- +Dec 3rd, 2004 - G.Cosmo +----------------------- - Implemented migration to . -Dec 3rd, 2004 Vladimir Grichine -------------------------------- +Dec 3rd, 2004 - V.Grichine +-------------------------- - Removed dependency on old PAI and XTR models in PhysicsList. -Sep 15rd, 2004 V.Ivanchenko (fieldex02-V06-02-00) -------------------------------------------------- -- Minor cleanup of PhysicsList - -Nov 25th, 2003 Gabriele Cosmo +Sep 15rd, 2004 - V.Ivanchenko (fieldex02-V06-02-00) ----------------------------- +- Minor cleanup of PhysicsList. + +Nov 25th, 2003 - G.Cosmo +------------------------ - Open geometry before clearing stores in DetectorConstruction class. -Nov 13th, 2003 - John Allison ------------------------------ +Nov 13th, 2003 - J.Allison +-------------------------- - Removed OPACS from Vis Manager. Nov 12th, 2003 - J.Apostolakis (fieldex-V05-02-01) @@ -46,17 +56,17 @@ Nov 12th, 2003 - J.Apostolakis (fieldex-V05-02-01) F02ElectroMagneticField, but not being a field. - Changed other parts to use this class. -Aug 27th, 2003 V.Ivantchenko (fieldex-V05-02-00) ------------------------------------------------- -- Removed obsolete interfaces +Aug 27th, 2003 - V.Ivantchenko (fieldex-V05-02-00) +------------------------------ +- Removed obsolete interfaces. Jun 25th, 2003 - G.Cosmo (fieldex-V05-01-00) --------------------------------------------- +------------------------ - Fixed mechanism for update of geometry in detector-construction. - Fixed pedantic warnings ... Feb 20th, 2003 - V.Ivanchenko (field-V05-00-00) -------------------------------------------------- +----------------------------- - Cut per region Dec 4th, 2001 - G.Cosmo (field02-V03-02-01) diff --git a/examples/extended/field/field02/field02.cc b/examples/extended/field/field02/field02.cc index 213429d6e8..230048e8ae 100644 --- a/examples/extended/field/field02/field02.cc +++ b/examples/extended/field/field02/field02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field02.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: field02.cc,v 1.8 2005/12/06 14:01:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -57,7 +57,7 @@ int main(int argc,char** argv) //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out index 4216e6cf1c..ab1563a681 100644 --- a/examples/extended/field/field02/field02.out +++ b/examples/extended/field/field02/field02.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -72,6 +72,8 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) +Registering model factories... + The WORLD is made of 800mm of Air, the transverse size (R) of the world is 200 mm. The ABSORBER is made of 40mm of Kr20CO2, the transverse size (R) is 100 mm. Z position of the (middle of the) absorber 360 mm. @@ -98,7 +100,7 @@ eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -110,7 +112,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -120,7 +122,7 @@ eBrem: tables are built for e+ msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -131,7 +133,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -169,7 +171,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -190,6 +192,8 @@ Index : 1 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 0 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -200,442 +204,99 @@ Start Run processing. Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.8 cm 1.54 cm 530 MeV 9.37 keV 5.28 cm 5.28 cm World eIoni - 2 -482 nm -6.76 cm 1.7 cm 726 MeV 4.45 keV 1.97 cm 7.25 cm World eIoni - 3 -2.15 mum -9.81 cm 1.87 cm 1.03 GeV 9.53 keV 3.05 cm 10.3 cm World eIoni - 4 -7.67 mum -12.9 cm 2.01 cm 1.34 GeV 7.95 keV 3.12 cm 13.4 cm World eIoni - 5 -17.3 mum -20 cm 2.22 cm 2.05 GeV 16.9 keV 7.08 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.67 mum -12.9 cm 2.01 cm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 -4.74 mum -12.9 cm 2.01 cm 903 keV 1.29 keV 82.2 mum 82.2 mum World eIoni - 2 5.64 mum -20 cm 2 cm 708 MeV 10.6 keV 7.07 cm 7.08 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.15 mum -9.81 cm 1.87 cm 52.5 keV 0 eV 0 fm 0 fm World initStep - 1 77.6 mum -10 cm 1.87 cm 22.7 MeV 1.26 keV 2.24 mm 2.24 mm World eIoni - 2 130 mum -15.7 cm 1.86 cm 591 MeV 9.72 keV 5.68 cm 5.91 cm World eIoni - 3 141 mum -20 cm 1.86 cm 1.02 GeV 7.63 keV 4.29 cm 10.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 130 mum -15.7 cm 1.86 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 125 mum -15.7 cm 1.86 cm 1.1 MeV 1.48 keV 100 mum 100 mum World eIoni - 2 108 mum -20 cm 1.86 cm 429 MeV 6.73 keV 4.28 cm 4.29 cm OutOfWorldTransportation + 1 0 fm -4.84 cm 1.54 cm 534 MeV 9.3 keV 5.32 cm 5.32 cm World eIoni + 2 6.33 mum -11.6 cm 1.95 cm 1.21 GeV 17.7 keV 6.79 cm 12.1 cm World eIoni + 3 10.6 mum -20 cm 2.22 cm 2.05 GeV 18.3 keV 8.39 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -482 nm -6.76 cm 1.7 cm 1.41 keV 0 eV 0 fm 0 fm World initStep - 1 5.39 mum -6.77 cm 1.7 cm 1.03 MeV 1.41 keV 93.3 mum 93.3 mum World eIoni - 2 26.9 mum -20 cm 1.7 cm 1.32 GeV 20.1 keV 13.2 cm 13.2 cm OutOfWorldTransportation + 0 6.33 mum -11.6 cm 1.95 cm 1.57 keV 0 eV 0 fm 0 fm World initStep + 1 5.63 mum -11.6 cm 1.95 cm 1.19 MeV 1.57 keV 108 mum 108 mum World eIoni + 2 3.41 mum -20 cm 1.95 cm 839 MeV 11.6 keV 8.38 cm 8.39 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.8 cm 1.54 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 2.33 mum -4.8 cm 1.54 cm 703 keV 1.08 keV 64.1 mum 64.1 mum World eIoni - 2 13.4 mum -20 cm 1.53 cm 1.52 GeV 20.9 keV 15.2 cm 15.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.28 cm 1.21 cm 278 MeV 6.16 keV 2.73 cm 2.73 cm World eIoni - 2 6.2 mum -10.4 cm 1.9 cm 1.09 GeV 13.3 keV 8.11 cm 10.8 cm World eIoni - 3 4.74 mum -20 cm 2.22 cm 2.05 GeV 24.9 keV 9.65 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.2 mum -10.4 cm 1.9 cm 5.12 keV 0 eV 0 fm 0 fm World initStep - 1 34.4 mum -10.4 cm 1.9 cm 8.02 MeV 5.12 keV 753 mum 753 mum World eIoni - 2 45.4 mum -10.8 cm 1.9 cm 42.2 MeV 1.1 keV 3.42 mm 4.17 mm World eIoni - 3 66.9 mum -20 cm 1.9 cm 966 MeV 19.8 keV 9.23 cm 9.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.28 cm 1.21 cm 2.02 keV 0 eV 0 fm 0 fm World initStep - 1 -10.2 mum -2.29 cm 1.21 cm 1.73 MeV 2.02 keV 158 mum 158 mum World eIoni - 2 -38.5 mum -12.5 cm 1.21 cm 1.03 GeV 12.6 keV 10.3 cm 10.3 cm World eIoni - 3 -36.4 mum -20 cm 1.21 cm 1.77 GeV 16 keV 7.45 cm 17.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -38.5 mum -12.5 cm 1.21 cm 9.51 keV 0 eV 0 fm 0 fm World initStep - 1 -82.1 mum -12.7 cm 1.21 cm 13.5 MeV 4.45 keV 1.29 mm 1.29 mm World eIoni - 2 -118 mum -20 cm 1.2 cm 746 MeV 13.3 keV 7.33 cm 7.45 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.69 cm 1.53 cm 519 MeV 9.52 keV 5.17 cm 5.17 cm World eIoni - 2 -1.16 mum -5.97 cm 1.64 cm 647 MeV 2.5 keV 1.29 cm 6.45 cm World eIoni - 3 -6.12 mum -20 cm 2.22 cm 2.05 GeV 29 keV 14 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.16 mum -5.97 cm 1.64 cm 1.41 keV 0 eV 0 fm 0 fm World initStep - 1 -2.8 mum -5.98 cm 1.64 cm 1.02 MeV 1.41 keV 93.5 mum 93.5 mum World eIoni - 2 -9.13 mum -20 cm 1.63 cm 1.4 GeV 20.1 keV 14 cm 14 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.69 cm 1.53 cm 2.67 keV 0 eV 0 fm 0 fm World initStep - 1 5.72 mum -4.69 cm 1.53 cm 349 keV 183 eV 35.1 mum 35.1 mum World eIoni - 2 38.9 mum -8.76 cm 1.53 cm 408 MeV 9.02 keV 4.07 cm 4.08 cm World eIoni - 3 43.2 mum -14 cm 1.53 cm 928 MeV 10.3 keV 5.21 cm 9.28 cm World eIoni - 4 43.7 mum -20 cm 1.53 cm 1.53 GeV 12.1 keV 6.03 cm 15.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 43.2 mum -14 cm 1.53 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 48.6 mum -14 cm 1.53 cm 933 keV 1.32 keV 84.8 mum 84.8 mum World eIoni - 2 67.7 mum -20 cm 1.52 cm 603 MeV 8.33 keV 6.02 cm 6.03 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.17 cm 1.57 cm 567 MeV 9.64 keV 5.65 cm 5.65 cm World eIoni - 2 -2.86 mum -11.8 cm 1.96 cm 1.23 GeV 13.9 keV 6.62 cm 12.3 cm World eIoni - 3 -6.58 mum -17.7 cm 2.16 cm 1.82 GeV 10.2 keV 5.92 cm 18.2 cm World eIoni - 4 -7.35 mum -20 cm 2.22 cm 2.05 GeV 4.12 keV 2.31 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.58 mum -17.7 cm 2.16 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -11.1 mum -17.7 cm 2.16 cm 671 keV 1.04 keV 61 mum 61 mum World eIoni - 2 -27.4 mum -20 cm 2.16 cm 231 MeV 3.77 keV 2.3 cm 2.31 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.86 mum -11.8 cm 1.96 cm 3.4 keV 0 eV 0 fm 0 fm World initStep - 1 15.3 mum -11.8 cm 1.96 cm 4.01 MeV 3.4 keV 372 mum 372 mum World eIoni - 2 32.5 mum -12.6 cm 1.96 cm 86.5 MeV 1.86 keV 8.25 mm 8.62 mm World eIoni - 3 45 mum -20 cm 1.96 cm 823 MeV 14.2 keV 7.36 cm 8.22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.17 cm 1.57 cm 1.38 keV 0 eV 0 fm 0 fm World initStep - 1 6.59 mum -5.18 cm 1.57 cm 993 keV 1.38 keV 90.2 mum 90.2 mum World eIoni - 2 32.2 mum -20 cm 1.57 cm 1.48 GeV 26.1 keV 14.8 cm 14.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.22 cm 9.6 mm 172 MeV 4.84 keV 1.65 cm 1.65 cm World eIoni - 2 1.79 mum -5.3 cm 1.58 cm 579 MeV 8.86 keV 4.13 cm 5.78 cm World eIoni - 3 -516 nm -7.41 cm 1.74 cm 791 MeV 7.02 keV 2.12 cm 7.9 cm World eIoni - 4 -5.66 mum -20 cm 2.22 cm 2.05 GeV 26.3 keV 12.6 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -516 nm -7.41 cm 1.74 cm 2.88 keV 0 eV 0 fm 0 fm World initStep - 1 -6.16 mum -7.44 cm 1.74 cm 3.04 MeV 2.88 keV 281 mum 281 mum World eIoni - 2 -9.96 mum -7.63 cm 1.74 cm 22.8 MeV 245 eV 1.98 mm 2.26 mm World eIoni - 3 -18 mum -20 cm 1.74 cm 1.26 GeV 19.2 keV 12.4 cm 12.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.79 mum -5.3 cm 1.58 cm 13.8 keV 0 eV 0 fm 0 fm World initStep - 1 14.5 mum -5.3 cm 1.58 cm 668 keV 81.7 eV 69.2 mum 69.2 mum World eIoni - 2 30.2 mum -5.36 cm 1.59 cm 6.02 MeV 25.2 eV 535 mum 604 mum World eIoni - 3 67.9 mum -9.57 cm 1.59 cm 428 MeV 7.79 keV 4.22 cm 4.28 cm World eIoni - 4 83.4 mum -20 cm 1.59 cm 1.47 GeV 19.4 keV 10.4 cm 14.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 67.9 mum -9.57 cm 1.59 cm 1.73 keV 0 eV 0 fm 0 fm World initStep - 1 60.3 mum -9.59 cm 1.59 cm 1.38 MeV 1.73 keV 126 mum 126 mum World eIoni - 2 36.4 mum -20 cm 1.59 cm 1.04 GeV 15.8 keV 10.4 cm 10.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.22 cm 9.6 mm 2.72 keV 0 eV 0 fm 0 fm World initStep - 1 -3.9 mum -1.25 cm 9.59 mm 2.77 MeV 2.72 keV 256 mum 256 mum World eIoni - 2 -5.6 mum -1.32 cm 9.58 mm 9.97 MeV 18.4 eV 721 mum 977 mum World eIoni - 3 -9.77 mum -2.78 cm 9.57 mm 156 MeV 3.52 keV 1.47 cm 1.56 cm World eIoni - 4 -14.9 mum -6.65 cm 9.56 mm 543 MeV 8.19 keV 3.86 cm 5.43 cm World eIoni - 5 -20.9 mum -12.1 cm 9.55 mm 1.09 GeV 12.5 keV 5.49 cm 10.9 cm World eIoni - 6 -22.3 mum -17.5 cm 9.55 mm 1.62 GeV 10.7 keV 5.33 cm 16.2 cm World eIoni - 7 -23.2 mum -20 cm 9.54 mm 1.88 GeV 4.75 keV 2.53 cm 18.8 cm OutOfWorldTransportation + 0 0 fm -4.84 cm 1.54 cm 5.82 keV 0 eV 0 fm 0 fm World initStep + 1 -14.4 mum -4.85 cm 1.54 cm 1.2 MeV 169 eV 118 mum 118 mum World eIoni + 2 -42.5 mum -7.44 cm 1.54 cm 260 MeV 5.6 keV 2.59 cm 2.6 cm World eIoni + 3 -45.6 mum -9.35 cm 1.54 cm 451 MeV 4.51 keV 1.91 cm 4.51 cm World eIoni + 4 -48.9 mum -13.8 cm 1.54 cm 894 MeV 10 keV 4.43 cm 8.94 cm World eIoni + 5 -48.9 mum -13.8 cm 1.54 cm 895 MeV 0 eV 114 mum 8.95 cm World eIoni + 6 -49.1 mum -14.5 cm 1.54 cm 963 MeV 1.4 keV 6.83 mm 9.63 cm World eIoni + 7 -49.7 mum -20 cm 1.54 cm 1.52 GeV 11 keV 5.53 cm 15.2 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -22.3 mum -17.5 cm 9.55 mm 1.96 keV 0 eV 0 fm 0 fm World initStep - 1 -15.7 mum -17.5 cm 9.54 mm 1.65 MeV 1.96 keV 151 mum 151 mum World eIoni - 2 -1.49 mum -20 cm 9.52 mm 254 MeV 5.03 keV 2.52 cm 2.53 cm OutOfWorldTransportation + 0 -49.1 mum -14.5 cm 1.54 cm 1.7 keV 0 eV 0 fm 0 fm World initStep + 1 -51.4 mum -14.5 cm 1.54 cm 1.35 MeV 1.7 keV 123 mum 123 mum World eIoni + 2 -58.2 mum -20 cm 1.53 cm 553 MeV 6.81 keV 5.52 cm 5.53 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -20.9 mum -12.1 cm 9.55 mm 2.75 keV 0 eV 0 fm 0 fm World initStep - 1 -34.9 mum -12.2 cm 9.55 mm 2.59 MeV 2.75 keV 239 mum 239 mum World eIoni - 2 -58.2 mum -14.3 cm 9.55 mm 220 MeV 2.68 keV 2.17 cm 2.2 cm World eIoni - 3 -64.9 mum -20 cm 9.55 mm 787 MeV 10.9 keV 5.67 cm 7.87 cm OutOfWorldTransportation + 0 -48.9 mum -13.8 cm 1.54 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 -55.2 mum -13.8 cm 1.54 cm 1.02 MeV 1.41 keV 93 mum 93 mum World eIoni + 2 -76.4 mum -20 cm 1.54 cm 621 MeV 8.25 keV 6.2 cm 6.21 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -14.9 mum -6.65 cm 9.56 mm 2.04 keV 0 eV 0 fm 0 fm World initStep - 1 -4.62 mum -6.66 cm 9.56 mm 1.76 MeV 2.04 keV 161 mum 161 mum World eIoni - 2 16.1 mum -8.56 cm 9.56 mm 192 MeV 2.35 keV 1.9 cm 1.92 cm World eIoni - 3 20.4 mum -11.6 cm 9.56 mm 497 MeV 6.34 keV 3.05 cm 4.97 cm World eIoni - 4 22.1 mum -20 cm 9.56 mm 1.34 GeV 21.7 keV 8.39 cm 13.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 20.4 mum -11.6 cm 9.56 mm 2.01 keV 0 eV 0 fm 0 fm World initStep - 1 26.9 mum -11.6 cm 9.55 mm 1.72 MeV 2.01 keV 157 mum 157 mum World eIoni - 2 44.3 mum -20 cm 9.53 mm 839 MeV 11.1 keV 8.37 cm 8.39 cm OutOfWorldTransportation + 0 -48.9 mum -13.8 cm 1.54 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 -46.9 mum -13.8 cm 1.54 cm 644 keV 1.01 keV 58.6 mum 58.6 mum World eIoni + 2 -39 mum -20 cm 1.54 cm 622 MeV 11 keV 6.22 cm 6.22 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.77 mum -2.78 cm 9.57 mm 2.14 keV 0 eV 0 fm 0 fm World initStep - 1 -3.53 mum -2.8 cm 9.57 mm 1.89 MeV 2.14 keV 174 mum 174 mum World eIoni - 2 3.73 mum -3.14 cm 9.59 mm 35.4 MeV 561 eV 3.35 mm 3.52 mm World eIoni - 3 12.9 mum -12.1 cm 9.6 mm 935 MeV 19.9 keV 9 cm 9.35 cm World eIoni - 4 16.5 mum -20 cm 9.6 mm 1.72 GeV 16.3 keV 7.87 cm 17.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 12.9 mum -12.1 cm 9.6 mm 1.38 keV 0 eV 0 fm 0 fm World initStep - 1 6.19 mum -12.1 cm 9.6 mm 996 keV 1.38 keV 90.6 mum 90.6 mum World eIoni - 2 -17 mum -20 cm 9.6 mm 787 MeV 10.1 keV 7.86 cm 7.87 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.68 cm 1.08 cm 218 MeV 7.34 keV 2.13 cm 2.13 cm World eIoni - 2 8.71 mum -12.9 cm 2.01 cm 1.34 GeV 22.3 keV 11.2 cm 13.4 cm World eIoni - 3 8.76 mum -13.3 cm 2.02 cm 1.38 GeV 533 eV 4.55 mm 13.8 cm World eIoni - 4 8.82 mum -20 cm 2.22 cm 2.05 GeV 13.4 keV 6.67 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.76 mum -13.3 cm 2.02 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 11.1 mum -13.3 cm 2.02 cm 837 keV 1.22 keV 76 mum 76 mum World eIoni - 2 20 mum -20 cm 2.02 cm 667 MeV 9.31 keV 6.66 cm 6.67 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.71 mum -12.9 cm 2.01 cm 1.91 keV 0 eV 0 fm 0 fm World initStep - 1 15.7 mum -12.9 cm 2.01 cm 1.6 MeV 1.91 keV 146 mum 146 mum World eIoni - 2 34.7 mum -20 cm 2.01 cm 712 MeV 10 keV 7.11 cm 7.12 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.68 cm 1.08 cm 2.39 keV 0 eV 0 fm 0 fm World initStep - 1 -11.9 mum -1.7 cm 1.08 cm 2.25 MeV 2.39 keV 207 mum 207 mum World eIoni - 2 -29.3 mum -2.67 cm 1.08 cm 98.7 MeV 2.57 keV 9.65 mm 9.86 mm World eIoni - 3 -36.5 mum -6.13 cm 1.08 cm 445 MeV 9.01 keV 3.47 cm 4.45 cm World eIoni - 4 -43.8 mum -17.1 cm 1.08 cm 1.54 GeV 23.3 keV 10.9 cm 15.4 cm World eIoni - 5 -44.2 mum -17.6 cm 1.08 cm 1.59 GeV 786 eV 5.14 mm 15.9 cm World eIoni - 6 -45.7 mum -20 cm 1.08 cm 1.83 GeV 5.48 keV 2.43 cm 18.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -44.2 mum -17.6 cm 1.08 cm 6.11 keV 0 eV 0 fm 0 fm World initStep - 1 -31.5 mum -17.7 cm 1.08 cm 10.9 MeV 6.11 keV 1.03 mm 1.03 mm World eIoni - 2 -26.4 mum -18.3 cm 1.08 cm 74.6 MeV 1.23 keV 6.36 mm 7.39 mm WorldTransportation - 3 -26.4 mum -18.3 cm 1.08 cm 74.6 MeV 0 eV 0.000871 fm 7.39 mm World eIoni - 4 -26.1 mum -18.4 cm 1.08 cm 81.7 MeV 37.8 eV 710 mum 8.1 mm World eIoni - 5 -17.8 mum -20 cm 1.08 cm 244 MeV 3.74 keV 1.62 cm 2.43 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -26.1 mum -18.4 cm 1.08 cm 2.76 keV 0 eV 0 fm 0 fm World initStep - 1 -40.7 mum -18.4 cm 1.08 cm 2.83 MeV 2.76 keV 262 mum 262 mum World eIoni - 2 -55.2 mum -18.9 cm 1.08 cm 50.7 MeV 453 eV 4.78 mm 5.05 mm World eIoni - 3 -61.3 mum -20 cm 1.08 cm 162 MeV 2.28 keV 1.11 cm 1.62 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -43.8 mum -17.1 cm 1.08 cm 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 -38.4 mum -17.1 cm 1.08 cm 842 keV 1.23 keV 76.5 mum 76.5 mum World eIoni - 2 -20.5 mum -20 cm 1.08 cm 294 MeV 3.04 keV 2.93 cm 2.94 cm OutOfWorldTransportation + 0 -45.6 mum -9.35 cm 1.54 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -47.2 mum -9.36 cm 1.54 cm 1.36 MeV 1.72 keV 124 mum 124 mum World eIoni + 2 -52.3 mum -20 cm 1.53 cm 1.07 GeV 15.7 keV 10.6 cm 10.7 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -36.5 mum -6.13 cm 1.08 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 -34.2 mum -6.14 cm 1.08 cm 1.15 MeV 1.53 keV 105 mum 105 mum World eIoni - 2 -26.4 mum -20 cm 1.09 cm 1.39 GeV 20 keV 13.9 cm 13.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.91 cm 1.63 cm 641 MeV 11.4 keV 6.39 cm 6.39 cm World eIoni - 2 2.52 mum -13.8 cm 2.04 cm 1.43 GeV 18.1 keV 7.88 cm 14.3 cm World eIoni - 3 807 nm -20 cm 2.22 cm 2.05 GeV 11.4 keV 6.23 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.52 mum -13.8 cm 2.04 cm 7.18 keV 0 eV 0 fm 0 fm World initStep - 1 24.7 mum -13.8 cm 2.04 cm 3.41 MeV 2.2 keV 329 mum 329 mum World eIoni - 2 56.6 mum -15.8 cm 2.04 cm 207 MeV 2.84 keV 2.04 cm 2.07 cm World eIoni - 3 65.2 mum -20 cm 2.04 cm 622 MeV 6.35 keV 4.15 cm 6.22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.91 cm 1.63 cm 3.34 keV 0 eV 0 fm 0 fm World initStep - 1 -9.76 mum -5.94 cm 1.63 cm 3.87 MeV 3.34 keV 360 mum 360 mum World eIoni - 2 -17.1 mum -6.35 cm 1.64 cm 44.1 MeV 717 eV 4.03 mm 4.39 mm World eIoni - 3 -23.1 mum -8.9 cm 1.64 cm 299 MeV 4.53 keV 2.55 cm 2.99 cm World eIoni - 4 -27 mum -11.2 cm 1.64 cm 534 MeV 3.91 keV 2.35 cm 5.34 cm World eIoni - 5 -27.2 mum -11.5 cm 1.64 cm 555 MeV 365 eV 2.13 mm 5.55 cm World eIoni - 6 -28.5 mum -16.7 cm 1.64 cm 1.08 GeV 9.5 keV 5.2 cm 10.8 cm World eIoni - 7 -32.3 mum -20 cm 1.64 cm 1.41 GeV 9.97 keV 3.34 cm 14.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -28.5 mum -16.7 cm 1.64 cm 19.4 keV 0 eV 0 fm 0 fm World initStep - 1 94.6 mum -17.5 cm 1.64 cm 86.4 MeV 19.4 keV 8.42 mm 8.42 mm World eIoni - 2 99.9 mum -18 cm 1.64 cm 135 MeV 634 eV 4.88 mm 1.33 cm World eIoni - 3 111 mum -20 cm 1.65 cm 337 MeV 3.44 keV 2.02 cm 3.35 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -27.2 mum -11.5 cm 1.64 cm 3.39 keV 0 eV 0 fm 0 fm World initStep - 1 -31.9 mum -11.5 cm 1.64 cm 3.97 MeV 3.39 keV 369 mum 369 mum World eIoni - 2 -34.9 mum -11.8 cm 1.64 cm 30.6 MeV 244 eV 2.67 mm 3.03 mm World eIoni - 3 -39.9 mum -20 cm 1.64 cm 855 MeV 15.9 keV 8.24 cm 8.54 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -27 mum -11.2 cm 1.64 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 -31.8 mum -11.3 cm 1.64 cm 681 keV 1.05 keV 61.9 mum 61.9 mum World eIoni - 2 -52.9 mum -20 cm 1.64 cm 876 MeV 14.5 keV 8.75 cm 8.76 cm OutOfWorldTransportation + 0 -42.5 mum -7.44 cm 1.54 cm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 -42.2 mum -7.45 cm 1.54 cm 840 keV 1.23 keV 76.4 mum 76.4 mum World eIoni + 2 -41.3 mum -20 cm 1.53 cm 1.26 GeV 22.7 keV 12.6 cm 12.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -23.1 mum -8.9 cm 1.64 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 -17.1 mum -8.91 cm 1.64 cm 860 keV 1.25 keV 78.2 mum 78.2 mum World eIoni - 2 6.76 mum -20 cm 1.64 cm 1.11 GeV 18.3 keV 11.1 cm 11.1 cm OutOfWorldTransportation + 0 -14.4 mum -4.85 cm 1.54 cm 4.41 keV 0 eV 0 fm 0 fm World initStep + 1 -22.7 mum -4.91 cm 1.54 cm 6.23 MeV 4.41 keV 583 mum 583 mum World eIoni + 2 -26.3 mum -5.17 cm 1.54 cm 32.2 MeV 259 eV 2.6 mm 3.19 mm World eIoni + 3 -34.3 mum -14.2 cm 1.55 cm 932 MeV 14.7 keV 9 cm 9.32 cm World eIoni + 4 -36.6 mum -20 cm 1.55 cm 1.52 GeV 12.3 keV 5.83 cm 15.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -34.3 mum -14.2 cm 1.55 cm 2.98 keV 0 eV 0 fm 0 fm World initStep + 1 -26.7 mum -14.2 cm 1.54 cm 3.2 MeV 2.98 keV 297 mum 297 mum World eIoni + 2 -18.4 mum -15 cm 1.54 cm 82.4 MeV 814 eV 7.92 mm 8.21 mm WorldTransportation + 3 -18.4 mum -15 cm 1.54 cm 82.4 MeV1.89e-13 eV 0.000951 fm 8.21 mm World eIoni + 4 -13.2 mum -20 cm 1.54 cm 583 MeV 9.85 keV 5.01 cm 5.83 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -643,689 +304,48 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.25 cm 1.79 cm 875 MeV 18.1 keV 8.74 cm 8.74 cm World eIoni - 2 -6.62 mum -16.2 cm 2.12 cm 1.67 GeV 19.1 keV 8 cm 16.7 cm World eIoni - 3 -8.96 mum -19.4 cm 2.21 cm 1.99 GeV 7.62 keV 3.2 cm 19.9 cm World eIoni - 4 -9.15 mum -20 cm 2.22 cm 2.05 GeV 1.63 keV 5.59 mm 20.5 cm OutOfWorldTransportation + 1 0 fm -9.84 mm 8.81 mm 148 MeV 1.49 keV 1.4 cm 1.4 cm World eIoni + 2 5.24 mum -9.07 cm 1.84 cm 957 MeV 16.6 keV 8.17 cm 9.57 cm World eIoni + 3 9.89 mum -15 cm 2.08 cm 1.55 GeV 12.3 keV 5.96 cm 15.5 cm World eIoni + 4 12 mum -20 cm 2.22 cm 2.05 GeV 10.6 keV 4.97 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.96 mum -19.4 cm 2.21 cm 4.47 keV 0 eV 0 fm 0 fm World initStep - 1 -33.2 mum -19.5 cm 2.21 cm 6.38 MeV 4.47 keV 597 mum 597 mum World eIoni - 2 -46.8 mum -20 cm 2.21 cm 56.4 MeV 834 eV 5 mm 5.6 mm OutOfWorldTransportation + 0 9.89 mum -15 cm 2.08 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 13.5 mum -15 cm 2.08 cm 870 keV 1.26 keV 79.3 mum 79.3 mum World eIoni + 2 26.2 mum -20 cm 2.08 cm 497 MeV 7.53 keV 4.96 cm 4.97 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.62 mum -16.2 cm 2.12 cm 2.37 keV 0 eV 0 fm 0 fm World initStep - 1 1.21 mum -16.3 cm 2.12 cm 2.22 MeV 2.37 keV 204 mum 204 mum World eIoni - 2 11 mum -16.8 cm 2.12 cm 59.3 MeV 621 eV 5.71 mm 5.92 mm World eIoni - 3 16.8 mum -20 cm 2.12 cm 376 MeV 5.62 keV 3.17 cm 3.76 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.25 cm 1.79 cm 27 keV 0 eV 0 fm 0 fm World initStep - 1 38.8 mum -8.34 cm 1.79 cm 9.78 MeV 254 eV 964 mum 964 mum World eIoni - 2 82.9 mum -15.8 cm 1.78 cm 753 MeV 11.6 keV 7.43 cm 7.53 cm World eIoni - 3 87.5 mum -20 cm 1.78 cm 1.18 GeV 7.95 keV 4.22 cm 11.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.47 mm 5.63 mm 84.7 MeV 2.39 keV 6.86 mm 6.86 mm World eIoni - 2 -821 nm -10.4 cm 1.9 cm 1.09 GeV 22.8 keV 10.2 cm 10.9 cm World eIoni - 3 -630 nm -11 cm 1.93 cm 1.15 GeV 3.23 keV 6.15 mm 11.5 cm World eIoni - 4 -450 nm -20 cm 2.22 cm 2.05 GeV 17.7 keV 8.96 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -630 nm -11 cm 1.93 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 4.06 mum -11 cm 1.93 cm 636 keV 1 keV 57.9 mum 57.9 mum World eIoni - 2 25.6 mum -20 cm 1.93 cm 896 MeV 14.3 keV 8.95 cm 8.96 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -821 nm -10.4 cm 1.9 cm 1.78 keV 0 eV 0 fm 0 fm World initStep - 1 -8.77 mum -10.4 cm 1.9 cm 1.44 MeV 1.78 keV 131 mum 131 mum World eIoni - 2 -32.3 mum -20 cm 1.9 cm 957 MeV 15.1 keV 9.56 cm 9.57 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.47 mm 5.63 mm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 528 nm -3.54 mm 5.63 mm 811 keV 1.15 keV 69.6 mum 69.6 mum World eIoni - 2 2.85 mum -20 cm 5.65 mm 1.97 GeV 28.8 keV 19.6 cm 19.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.64 cm 1.69 cm 714 MeV 16.3 keV 7.13 cm 7.13 cm World eIoni - 2 -3.28 mum -20 cm 2.22 cm 2.05 GeV 31.7 keV 13.4 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.64 cm 1.69 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 5.12 mum -6.65 cm 1.69 cm 819 keV 1.2 keV 74.3 mum 74.3 mum World eIoni - 2 27.1 mum -20 cm 1.69 cm 1.34 GeV 20.9 keV 13.3 cm 13.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.26 cm 1.85 cm 976 MeV 17.9 keV 9.75 cm 9.75 cm World eIoni - 2 -3.61 mum -20 cm 2.22 cm 2.05 GeV 22 keV 10.7 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.26 cm 1.85 cm 2.53 keV 0 eV 0 fm 0 fm World initStep - 1 12.6 mum -9.28 cm 1.85 cm 2.46 MeV 2.53 keV 226 mum 226 mum World eIoni - 2 26.3 mum -9.74 cm 1.85 cm 48.2 MeV 502 eV 4.57 mm 4.8 mm World eIoni - 3 40 mum -16.3 cm 1.84 cm 701 MeV 16.5 keV 6.53 cm 7.01 cm World eIoni - 4 41.1 mum -20 cm 1.84 cm 1.07 GeV 7.97 keV 3.73 cm 10.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 40 mum -16.3 cm 1.84 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 44.2 mum -16.3 cm 1.85 cm 1.2 MeV 1.58 keV 109 mum 109 mum World eIoni - 2 56.3 mum -20 cm 1.85 cm 373 MeV 4.23 keV 3.72 cm 3.73 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.88 cm 1.31 cm 338 MeV 4.7 keV 3.34 cm 3.34 cm World eIoni - 2 -378 nm -7.92 cm 1.77 cm 841 MeV 9.72 keV 5.06 cm 8.4 cm World eIoni - 3 -95.9 nm -20 cm 2.22 cm 2.05 GeV 22.8 keV 12.1 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -378 nm -7.92 cm 1.77 cm 1.45 keV 0 eV 0 fm 0 fm World initStep - 1 -1.71 mum -7.92 cm 1.77 cm 1.06 MeV 1.45 keV 96.8 mum 96.8 mum World eIoni - 2 -6.53 mum -20 cm 1.77 cm 1.21 GeV 20.3 keV 12.1 cm 12.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.88 cm 1.31 cm 1.16 keV 0 eV 0 fm 0 fm World initStep - 1 671 nm -2.88 cm 1.31 cm 788 keV 1.16 keV 71.1 mum 71.1 mum World eIoni - 2 3.7 mum -20 cm 1.31 cm 1.71 GeV 21.1 keV 17.1 cm 17.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.03 mm 8.11 mm 130 MeV 2.36 keV 1.21 cm 1.21 cm World eIoni - 2 9.26 mum -6.11 cm 1.65 cm 661 MeV 10 keV 5.39 cm 6.6 cm World eIoni - 3 18.5 mum -20 cm 2.22 cm 2.05 GeV 33.4 keV 13.9 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 9.26 mum -6.11 cm 1.65 cm 5.01 keV 0 eV 0 fm 0 fm World initStep - 1 -1.34 mum -6.18 cm 1.65 cm 7.68 MeV 5.01 keV 721 mum 721 mum World eIoni - 2 -5.42 mum -6.49 cm 1.64 cm 38.3 MeV 733 eV 3.07 mm 3.79 mm World eIoni - 3 -14.3 mum -15.2 cm 1.64 cm 911 MeV 18.5 keV 8.73 cm 9.11 cm World eIoni - 4 -14.2 mum -20 cm 1.64 cm 1.39 GeV 11 keV 4.78 cm 13.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -14.3 mum -15.2 cm 1.64 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -18.7 mum -15.2 cm 1.64 cm 644 keV 1.01 keV 58.6 mum 58.6 mum World eIoni - 2 -36.8 mum -20 cm 1.64 cm 478 MeV 7.39 keV 4.78 cm 4.78 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.03 mm 8.11 mm 4.23 keV 0 eV 0 fm 0 fm World initStep - 1 -20.4 mum -8.56 mm 8.12 mm 5.79 MeV 4.23 keV 542 mum 542 mum World eIoni - 2 -26.4 mum -9.79 mm 8.12 mm 18.1 MeV 23.8 eV 1.23 mm 1.78 mm World eIoni - 3 -47.2 mum -8.21 cm 8.13 mm 741 MeV 10.5 keV 7.23 cm 7.41 cm World eIoni - 4 -38.7 mum -9.73 cm 8.13 mm 893 MeV 4.52 keV 1.52 cm 8.93 cm World eIoni - 5 -1.62 mum -20 cm 8.1 mm 1.92 GeV 20.3 keV 10.3 cm 19.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -38.7 mum -9.73 cm 8.13 mm 8.4 keV 0 eV 0 fm 0 fm World initStep - 1 -57.8 mum -9.91 cm 8.18 mm 19.4 MeV 8.4 keV 1.83 mm 1.83 mm World eIoni - 2 -61 mum -10.3 cm 8.19 mm 54.5 MeV 634 eV 3.51 mm 5.34 mm World eIoni - 3 -70.5 mum -20 cm 8.22 mm 1.03 GeV 19 keV 9.74 cm 10.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -47.2 mum -8.21 cm 8.13 mm 361 keV 0 eV 0 fm 0 fm World initStep - 1 -326 mum -9.09 cm 8.32 mm 89 MeV 1.29 keV 8.88 mm 8.88 mm World eIoni - 2 -457 mum -20 cm 8.4 mm 1.18 GeV 23 keV 10.9 cm 11.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.68 cm 1.08 cm 218 MeV 3.79 keV 2.13 cm 2.13 cm World eIoni - 2 -3.04 mum -3.79 cm 1.43 cm 429 MeV 3.42 keV 2.14 cm 4.27 cm World eIoni - 3 -3.2 mum -3.99 cm 1.45 cm 449 MeV 276 eV 2.02 mm 4.47 cm World eIoni - 4 -8.53 mum -15.4 cm 2.09 cm 1.59 GeV 22.7 keV 11.5 cm 15.9 cm World eIoni - 5 -10.7 mum -20 cm 2.22 cm 2.05 GeV 8.77 keV 4.58 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.53 mum -15.4 cm 2.09 cm 2.05 keV 0 eV 0 fm 0 fm World initStep - 1 1.02 mum -15.4 cm 2.09 cm 1.76 MeV 2.05 keV 161 mum 161 mum World eIoni - 2 23.5 mum -20 cm 2.09 cm 458 MeV 6.09 keV 4.56 cm 4.58 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.2 mum -3.99 cm 1.45 cm 3.08 keV 0 eV 0 fm 0 fm World initStep - 1 -1.27 mum -4.02 cm 1.45 cm 3.37 MeV 3.08 keV 312 mum 312 mum World eIoni - 2 -660 nm -4.08 cm 1.45 cm 9.27 MeV 0 eV 591 mum 903 mum World eIoni - 3 1.01 mum -5.08 cm 1.45 cm 109 MeV 1.72 keV 1 cm 1.09 cm World eIoni - 4 12.6 mum -20 cm 1.45 cm 1.6 GeV 30.3 keV 14.9 cm 16 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.01 mum -5.08 cm 1.45 cm 3.17 keV 0 eV 0 fm 0 fm World initStep - 1 -9.69 mum -5.11 cm 1.45 cm 3.54 MeV 3.17 keV 328 mum 328 mum World eIoni - 2 -16.9 mum -5.37 cm 1.45 cm 29.3 MeV 205 eV 2.58 mm 2.91 mm World eIoni - 3 -31 mum -20 cm 1.45 cm 1.49 GeV 29 keV 14.6 cm 14.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.04 mum -3.79 cm 1.43 cm 3.14 keV 0 eV 0 fm 0 fm World initStep - 1 -5.68 mum -3.82 cm 1.43 cm 3.47 MeV 3.14 keV 322 mum 322 mum World eIoni - 2 -6.64 mum -3.9 cm 1.43 cm 11.1 MeV 39.7 eV 766 mum 1.09 mm World eIoni - 3 -9.31 mum -5.83 cm 1.43 cm 204 MeV 4.31 keV 1.93 cm 2.04 cm World eIoni - 4 -10.9 mum -15.5 cm 1.43 cm 1.17 GeV 19.8 keV 9.65 cm 11.7 cm World eIoni - 5 -10.8 mum -18.4 cm 1.43 cm 1.46 GeV 6.61 keV 2.88 cm 14.6 cm World eIoni - 6 -10.6 mum -20 cm 1.43 cm 1.62 GeV 2.12 keV 1.64 cm 16.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -10.8 mum -18.4 cm 1.43 cm 1.69 keV 0 eV 0 fm 0 fm World initStep - 1 -15.1 mum -18.4 cm 1.43 cm 1.32 MeV 1.69 keV 121 mum 121 mum World eIoni - 2 -24.8 mum -20 cm 1.43 cm 164 MeV 2.76 keV 1.63 cm 1.64 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -10.9 mum -15.5 cm 1.43 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 -12.9 mum -15.5 cm 1.43 cm 738 keV 1.11 keV 67.1 mum 67.1 mum World eIoni - 2 -20.5 mum -20 cm 1.43 cm 452 MeV 4.79 keV 4.51 cm 4.52 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.68 cm 1.08 cm 1.92 keV 0 eV 0 fm 0 fm World initStep - 1 9.68 mum -1.69 cm 1.08 cm 1.61 MeV 1.92 keV 147 mum 147 mum World eIoni - 2 40.2 mum -20 cm 1.08 cm 1.83 GeV 29.4 keV 18.3 cm 18.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.26 cm 1.36 cm 376 MeV 6.28 keV 3.73 cm 3.73 cm World eIoni - 2 -264 nm -3.81 cm 1.43 cm 431 MeV 2.02 keV 5.5 mm 4.28 cm World eIoni - 3 647 nm -18.3 cm 2.18 cm 1.88 GeV 27.1 keV 14.6 cm 18.8 cm World eIoni - 4 585 nm -20 cm 2.22 cm 2.05 GeV 5.04 keV 1.66 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 647 nm -18.3 cm 2.18 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 2.94 mum -18.3 cm 2.18 cm 873 keV 1.26 keV 79.4 mum 79.4 mum World eIoni - 2 9.55 mum -20 cm 2.18 cm 166 MeV 2.52 keV 1.65 cm 1.66 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -264 nm -3.81 cm 1.43 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 -4.29 mum -3.81 cm 1.43 cm 751 keV 1.13 keV 68.5 mum 68.5 mum World eIoni - 2 -23 mum -20 cm 1.43 cm 1.62 GeV 23.6 keV 16.2 cm 16.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.26 cm 1.36 cm 1.37 keV 0 eV 0 fm 0 fm World initStep - 1 3.48 mum -3.27 cm 1.36 cm 988 keV 1.37 keV 89.4 mum 89.4 mum World eIoni - 2 17.4 mum -20 cm 1.37 cm 1.67 GeV 27 keV 16.7 cm 16.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.02 cm 1.71 cm 752 MeV 15.9 keV 7.51 cm 7.51 cm World eIoni - 2 -764 nm -13 cm 2.01 cm 1.35 GeV 12.5 keV 5.96 cm 13.5 cm World eIoni - 3 -683 nm -14.9 cm 2.07 cm 1.54 GeV 3.84 keV 1.88 cm 15.4 cm World eIoni - 4 386 nm -20 cm 2.22 cm 2.05 GeV 13.5 keV 5.15 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -683 nm -14.9 cm 2.07 cm 1.14 keV 0 eV 0 fm 0 fm World initStep - 1 -5.58 mum -14.9 cm 2.07 cm 762 keV 1.14 keV 69.3 mum 69.3 mum World eIoni - 2 -24.4 mum -20 cm 2.07 cm 515 MeV 6.84 keV 5.14 cm 5.15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -764 nm -13 cm 2.01 cm 3.22 keV 0 eV 0 fm 0 fm World initStep - 1 -6.6 mum -13 cm 2.01 cm 3.63 MeV 3.22 keV 337 mum 337 mum World eIoni - 2 -12.1 mum -13.7 cm 2.01 cm 69.6 MeV 459 eV 6.6 mm 6.94 mm World eIoni - 3 -16.4 mum -20 cm 2.01 cm 703 MeV 11.6 keV 6.34 cm 7.03 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.02 cm 1.71 cm 2.43 keV 0 eV 0 fm 0 fm World initStep - 1 3.3 mum -7.04 cm 1.71 cm 2.31 MeV 2.43 keV 212 mum 212 mum World eIoni - 2 4.96 mum -7.11 cm 1.71 cm 9.45 MeV 78.1 eV 714 mum 927 mum World eIoni - 3 11 mum -16.3 cm 1.71 cm 925 MeV 14.4 keV 9.15 cm 9.24 cm World eIoni - 4 16.6 mum -19.4 cm 1.71 cm 1.24 GeV 6.54 keV 3.15 cm 12.4 cm World eIoni - 5 17 mum -20 cm 1.71 cm 1.3 GeV 2.23 keV 5.83 mm 13 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 16.6 mum -19.4 cm 1.71 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 21.5 mum -19.4 cm 1.71 cm 770 keV 1.15 keV 70 mum 70 mum World eIoni - 2 33.5 mum -20 cm 1.71 cm 58.4 MeV 1.19 keV 5.76 mm 5.83 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 11 mum -16.3 cm 1.71 cm 52.8 keV 0 eV 0 fm 0 fm World initStep - 1 -80.5 mum -16.5 cm 1.72 cm 25.7 MeV 828 eV 2.53 mm 2.53 mm World eIoni - 2 -127 mum -20 cm 1.72 cm 374 MeV 5.25 keV 3.49 cm 3.74 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -11.7 cm 1.96 cm 1.22 GeV 26.1 keV 12.2 cm 12.2 cm World eIoni - 2 1.74 mum -20 cm 2.22 cm 2.05 GeV 14.4 keV 8.26 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -11.7 cm 1.96 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 -5.86 mum -11.8 cm 1.96 cm 934 keV 1.32 keV 85 mum 85 mum World eIoni - 2 -27.3 mum -20 cm 1.96 cm 825 MeV 16.1 keV 8.25 cm 8.25 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 38.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.5 cm 1.51 cm 500 MeV 13.8 keV 4.98 cm 4.98 cm World eIoni - 2 -844 nm -5.62 cm 1.61 cm 612 MeV 4.23 keV 1.12 cm 6.1 cm World eIoni - 3 -1.69 mum -10.6 cm 1.91 cm 1.11 GeV 8.38 keV 5.01 cm 11.1 cm World eIoni - 4 -8.6 mum -15.3 cm 2.09 cm 1.58 GeV 12 keV 4.64 cm 15.7 cm World eIoni - 5 -14.9 mum -20 cm 2.22 cm 2.05 GeV 9.84 keV 4.75 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.6 mum -15.3 cm 2.09 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 -1.09 mum -15.3 cm 2.09 cm 1.16 MeV 1.55 keV 106 mum 106 mum World eIoni - 2 21.4 mum -20 cm 2.09 cm 475 MeV 5.44 keV 4.74 cm 4.75 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.69 mum -10.6 cm 1.91 cm 35.4 keV 0 eV 0 fm 0 fm World initStep - 1 154 mum -11.1 cm 1.91 cm 55 MeV 5.06 keV 5.34 mm 5.34 mm World eIoni - 2 207 mum -20 cm 1.91 cm 941 MeV 13.2 keV 8.86 cm 9.39 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -844 nm -5.62 cm 1.61 cm 1.85 keV 0 eV 0 fm 0 fm World initStep - 1 -6.74 mum -5.63 cm 1.61 cm 1.51 MeV 1.85 keV 138 mum 138 mum World eIoni - 2 -24.7 mum -20 cm 1.61 cm 1.44 GeV 20.7 keV 14.4 cm 14.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.5 cm 1.51 cm 2.55 keV 0 eV 0 fm 0 fm World initStep - 1 9.91 mum -4.52 cm 1.51 cm 1.97 MeV 1.84 keV 183 mum 183 mum World eIoni - 2 34.9 mum -13.3 cm 1.51 cm 884 MeV 11.8 keV 8.82 cm 8.84 cm World eIoni - 3 35.2 mum -13.9 cm 1.51 cm 939 MeV 2.46 keV 5.48 mm 9.39 cm World eIoni - 4 37.2 mum -17.8 cm 1.51 cm 1.33 GeV 5.99 keV 3.95 cm 13.3 cm World eIoni - 5 37.3 mum -20 cm 1.51 cm 1.55 GeV 3.14 keV 2.16 cm 15.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 37.2 mum -17.8 cm 1.51 cm 28.2 keV 0 eV 0 fm 0 fm World initStep - 1 80.2 mum -18.4 cm 1.52 cm 62.2 MeV 6.29 keV 6.04 mm 6.04 mm World eIoni - 2 86.1 mum -20 cm 1.53 cm 218 MeV 2.74 keV 1.56 cm 2.17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 35.2 mum -13.9 cm 1.51 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 31.8 mum -13.9 cm 1.51 cm 1.1 MeV 1.48 keV 100 mum 100 mum World eIoni - 2 20.9 mum -20 cm 1.51 cm 611 MeV 9.95 keV 6.1 cm 6.11 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 34.9 mum -13.3 cm 1.51 cm 2.74 keV 0 eV 0 fm 0 fm World initStep - 1 35.3 mum -13.4 cm 1.51 cm 2.81 MeV 2.74 keV 259 mum 259 mum World eIoni - 2 35.6 mum -13.5 cm 1.51 cm 20.5 MeV 57.6 eV 1.77 mm 2.03 mm World eIoni - 3 36 mum -18.5 cm 1.51 cm 515 MeV 11.1 keV 4.94 cm 5.15 cm World eIoni - 4 34.7 mum -20 cm 1.51 cm 666 MeV 3.96 keV 1.51 cm 6.66 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 36 mum -18.5 cm 1.51 cm 7.3 keV 0 eV 0 fm 0 fm World initStep - 1 77 mum -18.6 cm 1.51 cm 15.1 MeV 7.3 keV 1.42 mm 1.42 mm World eIoni - 2 81.2 mum -18.7 cm 1.51 cm 26.7 MeV 413 eV 1.16 mm 2.58 mm World eIoni - 3 94.4 mum -20 cm 1.51 cm 152 MeV 3.13 keV 1.26 cm 1.51 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.55 mm 7.44 mm 116 MeV 1.64 keV 1.04 cm 1.04 cm World eIoni - 2 -9.7 mum -20 cm 2.22 cm 2.05 GeV 40.5 keV 19.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.55 mm 7.44 mm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 5.16 mum -6.62 mm 7.44 mm 719 keV 1.09 keV 65.2 mum 65.2 mum World eIoni - 2 30.2 mum -20 cm 7.45 mm 1.93 GeV 25.7 keV 19.3 cm 19.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -11.2 cm 1.94 cm 1.17 GeV 22.7 keV 11.7 cm 11.7 cm World eIoni - 2 2.08 mum -20 cm 2.22 cm 2.05 GeV 18.8 keV 8.79 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -11.2 cm 1.94 cm 1.54 keV 0 eV 0 fm 0 fm World initStep - 1 -7.08 mum -11.2 cm 1.94 cm 1.15 MeV 1.54 keV 105 mum 105 mum World eIoni - 2 -30.4 mum -20 cm 1.94 cm 879 MeV 11.7 keV 8.78 cm 8.79 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.3 cm 1.98 cm 1.28 GeV 27.7 keV 12.8 cm 12.8 cm World eIoni - 2 -992 nm -20 cm 2.22 cm 2.05 GeV 14 keV 7.66 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12.3 cm 1.98 cm 1.53 keV 0 eV 0 fm 0 fm World initStep - 1 4.04 mum -12.4 cm 1.99 cm 1.15 MeV 1.53 keV 105 mum 105 mum World eIoni - 2 17.3 mum -20 cm 1.99 cm 765 MeV 11.5 keV 7.64 cm 7.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.9 cm 2.08 cm 1.54 GeV 28.4 keV 15.4 cm 15.4 cm World eIoni - 2 67.9 nm -15.6 cm 2.1 cm 1.61 GeV 1.56 keV 7.07 mm 16.1 cm World eIoni - 3 61.2 nm -18.1 cm 2.17 cm 1.86 GeV 5.09 keV 2.5 cm 18.6 cm World eIoni - 4 -241 nm -20 cm 2.22 cm 2.05 GeV 3.04 keV 1.91 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 61.2 nm -18.1 cm 2.17 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 4.74 mum -18.1 cm 2.17 cm 705 keV 1.08 keV 64.2 mum 64.2 mum World eIoni - 2 20.4 mum -20 cm 2.17 cm 191 MeV 2.79 keV 1.91 cm 1.91 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 67.9 nm -15.6 cm 2.1 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 2.53 mum -15.6 cm 2.1 cm 747 keV 1.12 keV 67.8 mum 67.8 mum World eIoni - 2 11.8 mum -20 cm 2.1 cm 441 MeV 4.94 keV 4.4 cm 4.41 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14.9 cm 2.08 cm 1.89 keV 0 eV 0 fm 0 fm World initStep - 1 -3.27 mum -14.9 cm 2.07 cm 1.57 MeV 1.89 keV 144 mum 144 mum World eIoni - 2 -11.7 mum -20 cm 2.07 cm 512 MeV 7.03 keV 5.1 cm 5.12 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.76 cm 1.1 cm 226 MeV 3.7 keV 2.2 cm 2.2 cm World eIoni - 2 -6.02 mum -20 cm 2.22 cm 2.05 GeV 38.6 keV 18.3 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.76 cm 1.1 cm 2.66 keV 0 eV 0 fm 0 fm World initStep - 1 7.37 mum -1.78 cm 1.1 cm 2.69 MeV 2.66 keV 247 mum 247 mum World eIoni - 2 14.4 mum -2.16 cm 1.1 cm 41.1 MeV 656 eV 3.85 mm 4.09 mm World eIoni - 3 20.2 mum -5.19 cm 1.1 cm 344 MeV 7.11 keV 3.03 cm 3.44 cm World eIoni - 4 21 mum -20 cm 1.1 cm 1.82 GeV 31.1 keV 14.8 cm 18.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 20.2 mum -5.19 cm 1.1 cm 2.54 keV 0 eV 0 fm 0 fm World initStep - 1 26.1 mum -5.22 cm 1.11 cm 2.47 MeV 2.54 keV 228 mum 228 mum World eIoni - 2 32.5 mum -5.67 cm 1.11 cm 48 MeV 799 eV 4.55 mm 4.78 mm World eIoni - 3 38.7 mum -11.8 cm 1.11 cm 657 MeV 11.2 keV 6.09 cm 6.57 cm World eIoni - 4 38.8 mum -12.6 cm 1.11 cm 745 MeV 2.36 keV 8.82 mm 7.45 cm World eIoni - 5 36.6 mum -20 cm 1.11 cm 1.48 GeV 15.3 keV 7.35 cm 14.8 cm OutOfWorldTransportation + 0 5.24 mum -9.07 cm 1.84 cm 6.45 keV 0 eV 0 fm 0 fm World initStep + 1 -27.8 mum -9.19 cm 1.83 cm 11.9 MeV 6.45 keV 1.12 mm 1.12 mm World eIoni + 2 -35.1 mum -9.42 cm 1.83 cm 35.6 MeV 29.9 eV 2.37 mm 3.49 mm World eIoni + 3 -50 mum -12.1 cm 1.83 cm 306 MeV 6.27 keV 2.71 cm 3.06 cm World eIoni + 4 -60.4 mum -20 cm 1.83 cm 1.09 GeV 16.8 keV 7.87 cm 10.9 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 38.8 mum -12.6 cm 1.11 cm 2.05 keV 0 eV 0 fm 0 fm World initStep - 1 48.1 mum -12.7 cm 1.11 cm 1.77 MeV 2.05 keV 162 mum 162 mum World eIoni - 2 64.9 mum -13.9 cm 1.11 cm 121 MeV 3.51 keV 1.2 cm 1.21 cm World eIoni - 3 72 mum -19.6 cm 1.11 cm 696 MeV 9.87 keV 5.74 cm 6.96 cm World eIoni - 4 72.2 mum -20 cm 1.11 cm 736 MeV 451 eV 4 mm 7.35 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 72 mum -19.6 cm 1.11 cm 17.3 keV 0 eV 0 fm 0 fm World initStep - 1 27.4 mum -20 cm 1.14 cm 51.5 MeV 8.33 keV 4.27 mm 4.27 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 38.7 mum -11.8 cm 1.11 cm 5.91 keV 0 eV 0 fm 0 fm World initStep - 1 45 mum -11.9 cm 1.1 cm 10.3 MeV 5.91 keV 973 mum 973 mum World eIoni - 2 47.8 mum -12.6 cm 1.1 cm 80.5 MeV 1.42 keV 7.02 mm 7.99 mm World eIoni - 3 44.3 mum -20 cm 1.1 cm 824 MeV 15.5 keV 7.44 cm 8.24 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 47.8 mum -12.6 cm 1.1 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 52.7 mum -12.6 cm 1.1 cm 868 keV 1.26 keV 79 mum 79 mum World eIoni - 2 70.6 mum -20 cm 1.1 cm 744 MeV 8.86 keV 7.43 cm 7.44 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.92 cm 1.71 cm 742 MeV 12.8 keV 7.4 cm 7.4 cm World eIoni - 2 1.34 mum -20 cm 2.22 cm 2.05 GeV 31.9 keV 13.1 cm 20.5 cm OutOfWorldTransportation + 0 -50 mum -12.1 cm 1.83 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 -47.9 mum -12.1 cm 1.83 cm 677 keV 1.05 keV 61.6 mum 61.6 mum World eIoni + 2 -38.9 mum -20 cm 1.83 cm 787 MeV 9.11 keV 7.86 cm 7.87 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.92 cm 1.71 cm 998 eV 0 eV 0 fm 0 fm World initStep - 1 -1.92 mum -6.92 cm 1.71 cm 632 keV 998 eV 57.6 mum 57.6 mum World eIoni - 2 -11.4 mum -20 cm 1.7 cm 1.31 GeV 21.7 keV 13.1 cm 13.1 cm OutOfWorldTransportation + 0 0 fm -9.84 mm 8.81 mm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 -4.32 mum -9.9 mm 8.81 mm 709 keV 1.07 keV 63.8 mum 63.8 mum World eIoni + 2 -25.2 mum -20 cm 8.83 mm 1.9 GeV 29 keV 19 cm 19 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1333,57 +353,27 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.68 cm 1.53 cm 518 MeV 9.13 keV 5.16 cm 5.16 cm World eIoni - 2 -551 nm -8.18 cm 1.79 cm 868 MeV 5.34 keV 3.51 cm 8.67 cm World eIoni - 3 -842 nm -16.5 cm 2.12 cm 1.7 GeV 15.3 keV 8.29 cm 17 cm World eIoni - 4 -3.14 mum -20 cm 2.22 cm 2.05 GeV 9.13 keV 3.54 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -842 nm -16.5 cm 2.12 cm 41.1 keV 0 eV 0 fm 0 fm World initStep - 1 97.9 mum -17.2 cm 2.14 cm 73.4 MeV 5.73 keV 7.21 mm 7.21 mm World eIoni - 2 124 mum -20 cm 2.14 cm 356 MeV 6.95 keV 2.82 cm 3.54 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 97.9 mum -17.2 cm 2.14 cm 2.22 keV 0 eV 0 fm 0 fm World initStep - 1 86.7 mum -17.2 cm 2.14 cm 2.02 MeV 2.22 keV 185 mum 185 mum World eIoni - 2 73.8 mum -17.6 cm 2.14 cm 40.5 MeV 575 eV 3.85 mm 4.04 mm World eIoni - 3 69.8 mum -18.1 cm 2.14 cm 95.1 MeV 984 eV 5.46 mm 9.49 mm World eIoni - 4 60.7 mum -20 cm 2.14 cm 283 MeV 3.69 keV 1.88 cm 2.82 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 69.8 mum -18.1 cm 2.14 cm 1.38 keV 0 eV 0 fm 0 fm World initStep - 1 76.5 mum -18.1 cm 2.14 cm 988 keV 1.38 keV 89.9 mum 89.9 mum World eIoni - 2 94.8 mum -20 cm 2.14 cm 188 MeV 2.15 keV 1.87 cm 1.88 cm OutOfWorldTransportation + 1 0 fm -1.41 cm 1.01 cm 191 MeV 5 keV 1.84 cm 1.84 cm World eIoni + 2 1.27 mum -7.85 cm 1.77 cm 835 MeV 15.9 keV 6.5 cm 8.34 cm World eIoni + 3 4.33 mum -20 cm 2.22 cm 2.05 GeV 25.9 keV 12.2 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -551 nm -8.18 cm 1.79 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 -1.61 mum -8.19 cm 1.79 cm 859 keV 1.25 keV 78.3 mum 78.3 mum World eIoni - 2 -5.85 mum -20 cm 1.78 cm 1.18 GeV 15.5 keV 11.8 cm 11.8 cm OutOfWorldTransportation + 0 1.27 mum -7.85 cm 1.77 cm 1.14 keV 0 eV 0 fm 0 fm World initStep + 1 -2.78 mum -7.86 cm 1.77 cm 761 keV 1.14 keV 69.3 mum 69.3 mum World eIoni + 2 -20.1 mum -20 cm 1.77 cm 1.21 GeV 17.5 keV 12.1 cm 12.1 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.68 cm 1.53 cm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 1.84 mum -4.69 cm 1.53 cm 902 keV 1.29 keV 81.8 mum 81.8 mum World eIoni - 2 9.45 mum -20 cm 1.53 cm 1.53 GeV 22.3 keV 15.3 cm 15.3 cm OutOfWorldTransportation + 0 0 fm -1.41 cm 1.01 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 -1.46 mum -1.42 cm 1.01 cm 929 keV 1.32 keV 85.1 mum 85.1 mum World eIoni + 2 -7.7 mum -20 cm 1.01 cm 1.86 GeV 30.7 keV 18.6 cm 18.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1391,47 +381,57 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.14 cm 1.72 cm 764 MeV 17.2 keV 7.63 cm 7.63 cm World eIoni - 2 1.51 mum -10 cm 1.88 cm 1.05 GeV 7.94 keV 2.87 cm 10.5 cm World eIoni - 3 2.53 mum -20 cm 2.22 cm 2.05 GeV 19 keV 10 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.51 mum -10 cm 1.88 cm 1.33 keV 0 eV 0 fm 0 fm World initStep - 1 7.11 mum -10 cm 1.88 cm 945 keV 1.33 keV 86.1 mum 86.1 mum World eIoni - 2 28.3 mum -20 cm 1.88 cm 999 MeV 12.7 keV 9.98 cm 9.99 cm OutOfWorldTransportation + 1 0 fm -19.8 cm 2.22 cm 2.03 GeV 40 keV 20.3 cm 20.3 cm World eIoni + 2 5.98 nm -20 cm 2.22 cm 2.05 GeV 327 eV 2.18 mm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.14 cm 1.72 cm 2.2 keV 0 eV 0 fm 0 fm World initStep - 1 -11.3 mum -7.16 cm 1.72 cm 1.98 MeV 2.2 keV 181 mum 181 mum World eIoni - 2 -22.5 mum -7.4 cm 1.72 cm 25.7 MeV 727 eV 2.37 mm 2.55 mm World eIoni - 3 -33.7 mum -17.9 cm 1.72 cm 1.08 GeV 18.1 keV 10.5 cm 10.8 cm World eIoni - 4 -34.7 mum -20 cm 1.72 cm 1.29 GeV 4.68 keV 2.08 cm 12.9 cm OutOfWorldTransportation + 0 0 fm -19.8 cm 2.22 cm 3.34 keV 0 eV 0 fm 0 fm World initStep + 1 -1.75 mum -19.8 cm 2.22 cm 3.88 MeV 3.34 keV 360 mum 360 mum World eIoni + 2 -2.6 mum -20 cm 2.22 cm 22.1 MeV 272 eV 1.82 mm 2.18 mm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -33.7 mum -17.9 cm 1.72 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 -28.4 mum -17.9 cm 1.72 cm 833 keV 1.22 keV 75.7 mum 75.7 mum World eIoni - 2 -12.2 mum -20 cm 1.72 cm 208 MeV 3.17 keV 2.07 cm 2.08 cm OutOfWorldTransportation + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.9 cm 1.55 cm 540 MeV 10.3 keV 5.38 cm 5.38 cm World eIoni + 2 12.1 mum -20 cm 2.22 cm 2.05 GeV 27.1 keV 15.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.9 cm 1.55 cm 14.7 keV 0 eV 0 fm 0 fm World initStep + 1 -58.2 mum -5.14 cm 1.55 cm 25.7 MeV 5.09 keV 2.46 mm 2.46 mm World eIoni + 2 -72.9 mum -6.21 cm 1.55 cm 132 MeV 2.01 keV 1.07 cm 1.31 cm World eIoni + 3 -92.8 mum -16.3 cm 1.55 cm 1.14 GeV 17.7 keV 10 cm 11.4 cm World eIoni + 4 -93.7 mum -17.7 cm 1.55 cm 1.28 GeV 3.03 keV 1.47 cm 12.8 cm World eIoni + 5 -96.3 mum -20 cm 1.56 cm 1.51 GeV 4.52 keV 2.28 cm 15.1 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -22.5 mum -7.4 cm 1.72 cm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 -25.3 mum -7.4 cm 1.72 cm 701 keV 1.07 keV 63.7 mum 63.7 mum World eIoni - 2 -38.2 mum -20 cm 1.72 cm 1.26 GeV 20.3 keV 12.6 cm 12.6 cm OutOfWorldTransportation + 0 -93.7 mum -17.7 cm 1.55 cm 13.3 keV 0 eV 0 fm 0 fm World initStep + 1 -33 mum -17.9 cm 1.55 cm 23.5 MeV 4.97 keV 2.25 mm 2.25 mm World eIoni + 2 -21.2 mum -18.5 cm 1.55 cm 79.9 MeV 1.13 keV 5.64 mm 7.89 mm World eIoni + 3 -11.2 mum -20 cm 1.55 cm 229 MeV 3.67 keV 1.49 cm 2.28 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -92.8 mum -16.3 cm 1.55 cm 1.34 keV 0 eV 0 fm 0 fm World initStep + 1 -95.8 mum -16.3 cm 1.56 cm 953 keV 1.34 keV 86.7 mum 86.7 mum World eIoni + 2 -105 mum -20 cm 1.56 cm 375 MeV 4.79 keV 3.74 cm 3.75 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1439,277 +439,157 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.99 mm 6.62 mm 99.9 MeV 2.09 keV 8.68 mm 8.68 mm World eIoni - 2 -9.87 mum -3.25 cm 1.36 cm 375 MeV 5.21 keV 2.86 cm 3.72 cm World eIoni - 3 -11.5 mum -4.06 cm 1.46 cm 456 MeV 1.1 keV 8.14 mm 4.54 cm World eIoni - 4 -19 mum -16 cm 2.11 cm 1.65 GeV 25.2 keV 11.9 cm 16.5 cm World eIoni - 5 -19.5 mum -16.9 cm 2.13 cm 1.74 GeV 2.23 keV 9.01 mm 17.4 cm World eIoni - 6 -20.5 mum -20 cm 2.22 cm 2.05 GeV 5.76 keV 3.14 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -1.67 cm 1.08 cm 217 MeV 6.75 keV 2.12 cm 2.12 cm World eIoni + 2 4.53 mum -20 cm 2.22 cm 2.05 GeV 37.9 keV 18.4 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.67 cm 1.08 cm 2.88 keV 0 eV 0 fm 0 fm World initStep + 1 -5.61 mum -1.7 cm 1.08 cm 3.04 MeV 2.88 keV 281 mum 281 mum World eIoni + 2 -9.58 mum -1.92 cm 1.08 cm 24.9 MeV 311 eV 2.19 mm 2.47 mm World eIoni + 3 -16.5 mum -7.86 cm 1.08 cm 619 MeV 12.9 keV 5.94 cm 6.19 cm World eIoni + 4 -16.8 mum -8.09 cm 1.08 cm 642 MeV 183 eV 2.28 mm 6.42 cm World eIoni + 5 -19.9 mum -11.2 cm 1.08 cm 950 MeV 6.65 keV 3.08 cm 9.5 cm World eIoni + 6 -22.3 mum -20 cm 1.08 cm 1.83 GeV 16 keV 8.83 cm 18.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -19.9 mum -11.2 cm 1.08 cm 1.73 keV 0 eV 0 fm 0 fm World initStep + 1 -27.5 mum -11.2 cm 1.08 cm 1.38 MeV 1.73 keV 126 mum 126 mum World eIoni + 2 -49.9 mum -20 cm 1.08 cm 883 MeV 12 keV 8.82 cm 8.83 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -16.8 mum -8.09 cm 1.08 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 -15 mum -8.09 cm 1.08 cm 715 keV 1.09 keV 65 mum 65 mum World eIoni + 2 -7.15 mum -20 cm 1.07 cm 1.19 GeV 17.6 keV 11.9 cm 11.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -16.5 mum -7.86 cm 1.08 cm 3.96 keV 0 eV 0 fm 0 fm World initStep + 1 -267 nm -7.91 cm 1.08 cm 5.14 MeV 3.96 keV 480 mum 480 mum World eIoni + 2 7.77 mum -8.16 cm 1.08 cm 30.5 MeV 373 eV 2.54 mm 3.02 mm World eIoni + 3 24.8 mum -20 cm 1.07 cm 1.21 GeV 26 keV 11.8 cm 12.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.55 mm 5.69 mm 85.5 MeV 2.69 keV 6.96 mm 6.96 mm World eIoni + 2 7.54 mum -6.35 cm 1.67 cm 685 MeV 14 keV 6.14 cm 6.84 cm World eIoni + 3 7.8 mum -8.65 cm 1.81 cm 915 MeV 5.38 keV 2.3 cm 9.14 cm World eIoni + 4 8.81 mum -10.1 cm 1.88 cm 1.06 GeV 3.2 keV 1.43 cm 10.6 cm World eIoni + 5 10.4 mum -13.3 cm 2.02 cm 1.38 GeV 6.67 keV 3.26 cm 13.8 cm World eIoni + 6 11.6 mum -20 cm 2.22 cm 2.05 GeV 11.1 keV 6.66 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -19.5 mum -16.9 cm 2.13 cm 2.85 keV 0 eV 0 fm 0 fm World initStep - 1 -31.6 mum -16.9 cm 2.13 cm 2.99 MeV 2.85 keV 277 mum 277 mum World eIoni - 2 -41.7 mum -17.2 cm 2.13 cm 35.8 MeV 738 eV 3.28 mm 3.56 mm WorldTransportation - 3 -41.7 mum -17.2 cm 2.13 cm 35.8 MeV 0 eV 0 fm 3.56 mm World eIoni - 4 -51.2 mum -20 cm 2.13 cm 314 MeV 6.39 keV 2.78 cm 3.14 cm OutOfWorldTransportation + 0 10.4 mum -13.3 cm 2.02 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 15.9 mum -13.4 cm 2.02 cm 1.29 MeV 1.65 keV 117 mum 117 mum World eIoni + 2 32.3 mum -20 cm 2.02 cm 666 MeV 10.7 keV 6.65 cm 6.66 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -19 mum -16 cm 2.11 cm 4.98 keV 0 eV 0 fm 0 fm World initStep - 1 -771 nm -16 cm 2.1 cm 7.62 MeV 4.98 keV 715 mum 715 mum World eIoni - 2 6.37 mum -16.3 cm 2.1 cm 39 MeV 374 eV 3.14 mm 3.86 mm World eIoni - 3 17.1 mum -20 cm 2.1 cm 405 MeV 5.54 keV 3.66 cm 4.04 cm OutOfWorldTransportation + 0 8.81 mum -10.1 cm 1.88 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 10.8 mum -10.1 cm 1.89 cm 932 keV 1.32 keV 84.6 mum 84.6 mum World eIoni + 2 18.3 mum -20 cm 1.89 cm 992 MeV 16.2 keV 9.91 cm 9.92 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11.5 mum -4.06 cm 1.46 cm 1.67 keV 0 eV 0 fm 0 fm World initStep - 1 -17.1 mum -4.07 cm 1.46 cm 1.31 MeV 1.67 keV 119 mum 119 mum World eIoni - 2 -36.2 mum -20 cm 1.46 cm 1.59 GeV 21 keV 15.9 cm 15.9 cm OutOfWorldTransportation + 0 7.8 mum -8.65 cm 1.81 cm 3.86 keV 0 eV 0 fm 0 fm World initStep + 1 -11.6 mum -8.69 cm 1.81 cm 4.2 MeV 2.91 keV 392 mum 392 mum World eIoni + 2 -42.7 mum -15.6 cm 1.81 cm 695 MeV 8.49 keV 6.91 cm 6.95 cm World eIoni + 3 -43.4 mum -16.2 cm 1.81 cm 752 MeV 1.15 keV 5.7 mm 7.52 cm World eIoni + 4 -44.8 mum -19 cm 1.81 cm 1.03 GeV 7.17 keV 2.81 cm 10.3 cm World eIoni + 5 -45.4 mum -20 cm 1.81 cm 1.14 GeV 3.24 keV 1.02 cm 11.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -44.8 mum -19 cm 1.81 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 -42 mum -19 cm 1.81 cm 644 keV 1.01 keV 58.6 mum 58.6 mum World eIoni + 2 -33.8 mum -20 cm 1.81 cm 102 MeV 1.79 keV 1.01 cm 1.02 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -43.4 mum -16.2 cm 1.81 cm 1.94 keV 0 eV 0 fm 0 fm World initStep + 1 -52.8 mum -16.2 cm 1.81 cm 1.63 MeV 1.94 keV 149 mum 149 mum World eIoni + 2 -75.3 mum -20 cm 1.81 cm 383 MeV 5.53 keV 3.81 cm 3.83 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -42.7 mum -15.6 cm 1.81 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -38.2 mum -15.6 cm 1.81 cm 859 keV 1.25 keV 78.2 mum 78.2 mum World eIoni + 2 -22.4 mum -20 cm 1.81 cm 440 MeV 6.72 keV 4.39 cm 4.4 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.87 mum -3.25 cm 1.36 cm 1.74 keV 0 eV 0 fm 0 fm World initStep - 1 -7 mum -3.27 cm 1.36 cm 1.38 MeV 1.74 keV 127 mum 127 mum World eIoni - 2 2.42 mum -20 cm 1.36 cm 1.67 GeV 22 keV 16.7 cm 16.7 cm OutOfWorldTransportation + 0 7.54 mum -6.35 cm 1.67 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 12 mum -6.36 cm 1.67 cm 903 keV 1.29 keV 82 mum 82 mum World eIoni + 2 30.1 mum -20 cm 1.67 cm 1.36 GeV 19.9 keV 13.6 cm 13.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.99 mm 6.62 mm 15.9 keV 0 eV 0 fm 0 fm World initStep - 1 41.5 mum -7.04 mm 6.67 mm 21.8 MeV 2.85 keV 2.11 mm 2.11 mm World eIoni - 2 67 mum -7.93 cm 6.71 mm 745 MeV 12.1 keV 7.23 cm 7.44 cm World eIoni - 3 68.4 mum -11.8 cm 6.71 mm 1.13 GeV 5.77 keV 3.86 cm 11.3 cm World eIoni - 4 67.9 mum -17.2 cm 6.72 mm 1.67 GeV 10.5 keV 5.41 cm 16.7 cm World eIoni - 5 67.4 mum -20 cm 6.72 mm 1.95 GeV 7.25 keV 2.8 cm 19.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 67.9 mum -17.2 cm 6.72 mm 1.16 keV 0 eV 0 fm 0 fm World initStep - 1 73.5 mum -17.2 cm 6.72 mm 780 keV 1.16 keV 70.9 mum 70.9 mum World eIoni - 2 92.3 mum -20 cm 6.72 mm 280 MeV 6.69 keV 2.79 cm 2.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 68.4 mum -11.8 cm 6.71 mm 2.48 keV 0 eV 0 fm 0 fm World initStep - 1 79.8 mum -11.8 cm 6.72 mm 2.38 MeV 2.48 keV 219 mum 219 mum World eIoni - 2 89.7 mum -12 cm 6.72 mm 25.4 MeV 391 eV 2.3 mm 2.52 mm World eIoni - 3 104 mum -20 cm 6.73 mm 821 MeV 17.4 keV 7.95 cm 8.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 67 mum -7.93 cm 6.71 mm 1.61 keV 0 eV 0 fm 0 fm World initStep - 1 74.6 mum -7.95 cm 6.71 mm 1.23 MeV 1.61 keV 112 mum 112 mum World eIoni - 2 99.8 mum -20 cm 6.72 mm 1.21 GeV 15.8 keV 12.1 cm 12.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.59 cm 1.06 cm 209 MeV 4.07 keV 2.03 cm 2.03 cm World eIoni - 2 1.22 mum -5.31 cm 1.58 cm 581 MeV 9.77 keV 3.76 cm 5.79 cm World eIoni - 3 5.09 mum -13.6 cm 2.03 cm 1.41 GeV 20.5 keV 8.32 cm 14.1 cm World eIoni - 4 7.71 mum -20 cm 2.22 cm 2.05 GeV 12 keV 6.39 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.09 mum -13.6 cm 2.03 cm 1.4 keV 0 eV 0 fm 0 fm World initStep - 1 251 nm -13.6 cm 2.03 cm 1.01 MeV 1.4 keV 91.9 mum 91.9 mum World eIoni - 2 -16.2 mum -20 cm 2.03 cm 639 MeV 9.91 keV 6.38 cm 6.39 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.22 mum -5.31 cm 1.58 cm 1.89 keV 0 eV 0 fm 0 fm World initStep - 1 -5.62 mum -5.32 cm 1.58 cm 1.56 MeV 1.89 keV 143 mum 143 mum World eIoni - 2 -26.2 mum -20 cm 1.58 cm 1.47 GeV 20 keV 14.7 cm 14.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.59 cm 1.06 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 -2 mum -1.59 cm 1.06 cm 859 keV 1.24 keV 77.2 mum 77.2 mum World eIoni - 2 -10.7 mum -20 cm 1.06 cm 1.84 GeV 25.8 keV 18.4 cm 18.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -18 cm 2.17 cm 1.85 GeV 32.1 keV 18.5 cm 18.5 cm World eIoni - 2 420 nm -19.4 cm 2.2 cm 1.99 GeV 3.48 keV 1.35 cm 19.9 cm World eIoni - 3 457 nm -20 cm 2.22 cm 2.05 GeV 2.62 keV 6.3 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 420 nm -19.4 cm 2.2 cm 2.25 keV 0 eV 0 fm 0 fm World initStep - 1 12 mum -19.4 cm 2.2 cm 2.06 MeV 2.25 keV 189 mum 189 mum World eIoni - 2 27.5 mum -20 cm 2.2 cm 63.2 MeV 898 eV 6.11 mm 6.3 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -18 cm 2.17 cm 4.29 keV 0 eV 0 fm 0 fm World initStep - 1 -11.7 mum -18 cm 2.17 cm 1.33 MeV 388 eV 129 mum 129 mum World eIoni - 2 -40 mum -19.9 cm 2.17 cm 188 MeV 3.7 keV 1.87 cm 1.88 cm World eIoni - 3 -40.1 mum -20 cm 2.17 cm 198 MeV 45.2 eV 992 mum 1.98 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 43 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.91 mm 5.94 mm 89.1 MeV 1.56 keV 7.4 mm 7.4 mm World eIoni - 2 -9.35 mum -8.02 cm 1.78 cm 852 MeV 16.9 keV 7.77 cm 8.51 cm World eIoni - 3 -15.5 mum -15.7 cm 2.1 cm 1.62 GeV 15.5 keV 7.67 cm 16.2 cm World eIoni - 4 -18.1 mum -19.2 cm 2.2 cm 1.97 GeV 7.13 keV 3.55 cm 19.7 cm World eIoni - 5 -18.9 mum -20 cm 2.22 cm 2.05 GeV 1.17 keV 7.68 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -18.1 mum -19.2 cm 2.2 cm 3.66 keV 0 eV 0 fm 0 fm World initStep - 1 830 nm -19.3 cm 2.2 cm 4.53 MeV 3.66 keV 421 mum 421 mum World eIoni - 2 16.3 mum -20 cm 2.2 cm 73.3 MeV 886 eV 6.88 mm 7.3 mm World eIoni - 3 16.4 mum -20 cm 2.2 cm 77.2 MeV 52.6 eV 387 mum 7.69 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -15.5 mum -15.7 cm 2.1 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 -7.9 mum -15.7 cm 2.1 cm 1.16 MeV 1.55 keV 106 mum 106 mum World eIoni - 2 14.3 mum -20 cm 2.1 cm 432 MeV 4.48 keV 4.3 cm 4.31 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.35 mum -8.02 cm 1.78 cm 7.3 keV 0 eV 0 fm 0 fm World initStep - 1 17.6 mum -8.14 cm 1.77 cm 12.6 MeV 5.87 keV 1.19 mm 1.19 mm World eIoni - 2 34.2 mum -10.6 cm 1.77 cm 257 MeV 5.02 keV 2.45 cm 2.57 cm World eIoni - 3 40 mum -12.9 cm 1.77 cm 487 MeV 5.51 keV 2.3 cm 4.86 cm World eIoni - 4 42.8 mum -14.3 cm 1.77 cm 632 MeV 2.72 keV 1.45 cm 6.31 cm World eIoni - 5 53.2 mum -20 cm 1.77 cm 1.2 GeV 10.2 keV 5.67 cm 12 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 42.8 mum -14.3 cm 1.77 cm 3.47 keV 0 eV 0 fm 0 fm World initStep - 1 25.2 mum -14.4 cm 1.77 cm 4.13 MeV 3.47 keV 384 mum 384 mum World eIoni - 2 11.4 mum -14.9 cm 1.77 cm 55.6 MeV 1.28 keV 5.15 mm 5.53 mm World eIoni - 3 -1.84 mum -19.9 cm 1.77 cm 561 MeV 10.7 keV 5.05 cm 5.61 cm World eIoni - 4 -1.85 mum -20 cm 1.77 cm 568 MeV 104 eV 657 mum 5.67 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.84 mum -19.9 cm 1.77 cm 2.21 keV 0 eV 0 fm 0 fm World initStep - 1 -12.9 mum -20 cm 1.77 cm 1.99 MeV 2.21 keV 183 mum 183 mum World eIoni - 2 -17.9 mum -20 cm 1.77 cm 6.76 MeV 709 eV 477 mum 660 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 40 mum -12.9 cm 1.77 cm 1.33 keV 0 eV 0 fm 0 fm World initStep - 1 37.2 mum -12.9 cm 1.77 cm 941 keV 1.33 keV 85.6 mum 85.6 mum World eIoni - 2 27.1 mum -20 cm 1.77 cm 712 MeV 11.1 keV 7.11 cm 7.12 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 34.2 mum -10.6 cm 1.77 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 28.2 mum -10.6 cm 1.77 cm 865 keV 1.26 keV 78.7 mum 78.7 mum World eIoni - 2 4.42 mum -20 cm 1.77 cm 942 MeV 14.6 keV 9.41 cm 9.42 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.91 mm 5.94 mm 2.24 keV 0 eV 0 fm 0 fm World initStep - 1 9.43 mum -4.1 mm 5.93 mm 2.02 MeV 2.24 keV 187 mum 187 mum World eIoni - 2 10 mum -4.14 mm 5.93 mm 2.42 MeV 5.68 eV 39.2 mum 226 mum World eIoni - 3 26.6 mum -1.78 cm 5.92 mm 139 MeV 1.46 keV 1.37 cm 1.39 cm World eIoni - 4 47.6 mum -20 cm 5.92 mm 1.96 GeV 38.7 keV 18.2 cm 19.6 cm World eIoni - 5 47.6 mum -20 cm 5.92 mm 1.96 GeV 0 eV 292 mum 19.6 cm OutOfWorldTransportation + 0 0 fm -3.55 mm 5.69 mm 5.4 keV 0 eV 0 fm 0 fm World initStep + 1 -15.1 mum -4.36 mm 5.71 mm 8.82 MeV 5.4 keV 830 mum 830 mum World eIoni + 2 -18.4 mum -5.85 mm 5.72 mm 23.7 MeV 593 eV 1.49 mm 2.32 mm World eIoni + 3 -31.2 mum -9.51 cm 5.74 mm 916 MeV 18.3 keV 8.93 cm 9.16 cm World eIoni + 4 -31.1 mum -19.1 cm 5.74 mm 1.87 GeV 19.9 keV 9.58 cm 18.7 cm World eIoni + 5 -30.4 mum -20 cm 5.74 mm 1.97 GeV 1.09 keV 9.09 mm 19.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 11, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 47.6 mum -20 cm 5.92 mm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 44.6 mum -20 cm 5.93 mm 721 keV 1.1 keV 65.6 mum 65.6 mum World eIoni - 2 42.6 mum -20 cm 5.93 mm 3 MeV 0 eV 228 mum 294 mumOutOfWorldTransportation + 0 -31.1 mum -19.1 cm 5.74 mm 54.9 keV 0 eV 0 fm 0 fm World initStep + 1 -207 mum -20 cm 5.67 mm 92.8 MeV 7.76 keV 9.18 mm 9.18 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 26.6 mum -1.78 cm 5.92 mm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 21 mum -1.79 cm 5.92 mm 828 keV 1.21 keV 75.3 mum 75.3 mum World eIoni - 2 -4.2 mum -20 cm 5.92 mm 1.82 GeV 27.2 keV 18.2 cm 18.2 cm OutOfWorldTransportation + 0 -31.2 mum -9.51 cm 5.74 mm 1.86 keV 0 eV 0 fm 0 fm World initStep + 1 -39 mum -9.52 cm 5.73 mm 1.53 MeV 1.86 keV 140 mum 140 mum World eIoni + 2 -61.9 mum -20 cm 5.72 mm 1.05 GeV 12.7 keV 10.5 cm 10.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1717,141 +597,66 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.88 cm 1.63 cm 638 MeV 11.2 keV 6.37 cm 6.37 cm World eIoni - 2 51.3 nm -6.27 cm 1.66 cm 677 MeV 840 eV 3.9 mm 6.76 cm World eIoni - 3 -1.34 mum -12.1 cm 1.97 cm 1.26 GeV 11.5 keV 5.81 cm 12.6 cm World eIoni - 4 -3.39 mum -18.3 cm 2.18 cm 1.88 GeV 10.1 keV 6.19 cm 18.8 cm World eIoni - 5 -4.12 mum -20 cm 2.22 cm 2.05 GeV 3.8 keV 1.74 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -10.3 cm 1.9 cm 1.08 GeV 25 keV 10.8 cm 10.8 cm World eIoni + 2 2.14 mum -20 cm 2.22 cm 2.05 GeV 22.7 keV 9.69 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.39 mum -18.3 cm 2.18 cm 2.64 keV 0 eV 0 fm 0 fm World initStep - 1 4.97 mum -18.3 cm 2.18 cm 2.63 MeV 2.64 keV 243 mum 243 mum World eIoni - 2 15.7 mum -19.2 cm 2.18 cm 92.1 MeV 833 eV 8.94 mm 9.19 mm World eIoni - 3 17.7 mum -20 cm 2.18 cm 174 MeV 1.88 keV 8.18 mm 1.74 cm OutOfWorldTransportation + 0 0 fm -10.3 cm 1.9 cm 1.4 keV 0 eV 0 fm 0 fm World initStep + 1 -6.02 mum -10.3 cm 1.9 cm 1.01 MeV 1.4 keV 92.4 mum 92.4 mum World eIoni + 2 -28 mum -20 cm 1.9 cm 969 MeV 12.8 keV 9.68 cm 9.69 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.34 cm 1.49 cm 484 MeV 9.28 keV 4.82 cm 4.82 cm World eIoni + 2 -2.19 mum -10.4 cm 1.9 cm 1.09 GeV 13.7 keV 6.03 cm 10.9 cm World eIoni + 3 -5.29 mum -17.8 cm 2.16 cm 1.83 GeV 14.4 keV 7.42 cm 18.3 cm World eIoni + 4 -6.25 mum -20 cm 2.22 cm 2.05 GeV 6.33 keV 2.22 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.34 mum -12.1 cm 1.97 cm 1.34 keV 0 eV 0 fm 0 fm World initStep - 1 3.67 mum -12.1 cm 1.97 cm 953 keV 1.34 keV 86.8 mum 86.8 mum World eIoni - 2 21.6 mum -20 cm 1.97 cm 793 MeV 14.3 keV 7.92 cm 7.92 cm OutOfWorldTransportation + 0 -5.29 mum -17.8 cm 2.16 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 -1.13 mum -17.8 cm 2.16 cm 895 keV 1.29 keV 81.5 mum 81.5 mum World eIoni + 2 11.4 mum -20 cm 2.16 cm 222 MeV 3.28 keV 2.22 cm 2.22 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 51.3 nm -6.27 cm 1.66 cm 6.53 keV 0 eV 0 fm 0 fm World initStep - 1 15.4 mum -6.39 cm 1.66 cm 12.3 MeV 6.53 keV 1.16 mm 1.16 mm World eIoni - 2 15.7 mum -6.4 cm 1.66 cm 14 MeV 0 eV 164 mum 1.33 mm World eIoni - 3 29.8 mum -19.1 cm 1.65 cm 1.28 GeV 24.9 keV 12.7 cm 12.8 cm World eIoni - 4 29.7 mum -19.5 cm 1.65 cm 1.32 GeV 474 eV 4.41 mm 13.2 cm World eIoni - 5 29.8 mum -20 cm 1.65 cm 1.37 GeV 1.51 keV 4.95 mm 13.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 29.7 mum -19.5 cm 1.65 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 24.4 mum -19.5 cm 1.65 cm 738 keV 1.11 keV 67.1 mum 67.1 mum World eIoni - 2 11.7 mum -20 cm 1.65 cm 49.6 MeV 683 eV 4.89 mm 4.96 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 29.8 mum -19.1 cm 1.65 cm 3.06 keV 0 eV 0 fm 0 fm World initStep - 1 42.8 mum -19.1 cm 1.65 cm 3.34 MeV 3.06 keV 310 mum 310 mum World eIoni - 2 55.4 mum -19.7 cm 1.66 cm 64.6 MeV 355 eV 6.12 mm 6.43 mm World eIoni - 3 56.3 mum -20 cm 1.66 cm 93.9 MeV 1.51 keV 2.94 mm 9.37 mm OutOfWorldTransportation + 0 -2.19 mum -10.4 cm 1.9 cm 1.28 keV 0 eV 0 fm 0 fm World initStep + 1 3.33 mum -10.4 cm 1.9 cm 892 keV 1.28 keV 81.2 mum 81.2 mum World eIoni + 2 24.8 mum -20 cm 1.9 cm 964 MeV 16.2 keV 9.63 cm 9.64 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.88 cm 1.63 cm 2.73 keV 0 eV 0 fm 0 fm World initStep - 1 -2.37 mum -5.91 cm 1.63 cm 2.8 MeV 2.73 keV 258 mum 258 mum World eIoni - 2 -4.83 mum -6.44 cm 1.63 cm 55.4 MeV 733 eV 5.26 mm 5.52 mm WorldTransportation - 3 -4.83 mum -6.44 cm 1.63 cm 55.4 MeV 0 eV 0.00108 fm 5.52 mm World eIoni - 4 -7.55 mum -17.3 cm 1.64 cm 1.14 GeV 20.7 keV 10.8 cm 11.4 cm World eIoni - 5 -8.67 mum -20 cm 1.64 cm 1.41 GeV 3.87 keV 2.73 cm 14.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.55 mum -17.3 cm 1.64 cm 2.26 keV 0 eV 0 fm 0 fm World initStep - 1 4.05 mum -17.3 cm 1.64 cm 2.07 MeV 2.26 keV 190 mum 190 mum World eIoni - 2 16.6 mum -17.6 cm 1.64 cm 34.4 MeV 71.2 eV 3.24 mm 3.43 mm World eIoni - 3 28.3 mum -20 cm 1.64 cm 273 MeV 5.53 keV 2.39 cm 2.73 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 16.6 mum -17.6 cm 1.64 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 15.4 mum -17.6 cm 1.64 cm 676 keV 1.05 keV 61.5 mum 61.5 mum World eIoni - 2 11.2 mum -20 cm 1.63 cm 239 MeV 3.29 keV 2.38 cm 2.39 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.55 cm 1.86 cm 1 GeV 19.7 keV 10 cm 10 cm World eIoni - 2 6.11 mum -12.9 cm 2 cm 1.34 GeV 5.34 keV 3.32 cm 13.4 cm World eIoni - 3 13.4 mum -20 cm 2.22 cm 2.05 GeV 13.4 keV 7.13 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.11 mum -12.9 cm 2 cm 1.83 keV 0 eV 0 fm 0 fm World initStep - 1 15.3 mum -12.9 cm 2 cm 1.5 MeV 1.83 keV 137 mum 137 mum World eIoni - 2 40.9 mum -20 cm 2 cm 713 MeV 12.9 keV 7.12 cm 7.13 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.55 cm 1.86 cm 52.2 keV 0 eV 0 fm 0 fm World initStep - 1 -180 mum -11.3 cm 1.87 cm 179 MeV 11.6 keV 1.78 cm 1.78 cm World eIoni - 2 -214 mum -18.3 cm 1.87 cm 877 MeV 15.8 keV 6.97 cm 8.76 cm World eIoni - 3 -216 mum -19.3 cm 1.87 cm 976 MeV 2.56 keV 9.94 mm 9.75 cm World eIoni - 4 -218 mum -20 cm 1.87 cm 1.05 GeV 1.88 keV 7.07 mm 10.5 cm OutOfWorldTransportation + 0 0 fm -4.34 cm 1.49 cm 6.11 keV 0 eV 0 fm 0 fm World initStep + 1 6.84 mum -4.37 cm 1.49 cm 2.58 MeV 1.34 keV 248 mum 248 mum World eIoni + 2 23.7 mum -19.1 cm 1.48 cm 1.48 GeV 22.4 keV 14.7 cm 14.8 cm World eIoni + 3 23.9 mum -20 cm 1.48 cm 1.57 GeV 1.57 keV 8.9 mm 15.7 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -216 mum -19.3 cm 1.87 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 -214 mum -19.3 cm 1.87 cm 1.83 MeV 2.09 keV 168 mum 168 mum World eIoni - 2 -211 mum -20 cm 1.87 cm 70.9 MeV 1.27 keV 6.91 mm 7.08 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -214 mum -18.3 cm 1.87 cm 2.28 keV 0 eV 0 fm 0 fm World initStep - 1 -212 mum -18.3 cm 1.87 cm 2.09 MeV 2.28 keV 192 mum 192 mum World eIoni - 2 -209 mum -19.3 cm 1.87 cm 105 MeV 1.09 keV 1.03 cm 1.05 cm World eIoni - 3 -209 mum -20 cm 1.87 cm 170 MeV 1.73 keV 6.55 mm 1.7 cm OutOfWorldTransportation + 0 23.7 mum -19.1 cm 1.48 cm 2.63 keV 0 eV 0 fm 0 fm World initStep + 1 19.2 mum -19.1 cm 1.49 cm 2.62 MeV 2.63 keV 242 mum 242 mum World eIoni + 2 14.2 mum -19.7 cm 1.49 cm 58.8 MeV 578 eV 5.62 mm 5.86 mm World eIoni + 3 13.5 mum -20 cm 1.49 cm 89.3 MeV 988 eV 3.05 mm 8.91 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1859,70 +664,66 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.25 cm 1.73 cm 775 MeV 13.5 keV 7.74 cm 7.74 cm World eIoni - 2 -695 nm -8.84 cm 1.82 cm 933 MeV 1.85 keV 1.58 cm 9.33 cm World eIoni - 3 -4.26 mum -20 cm 2.22 cm 2.05 GeV 21.5 keV 11.2 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -8.04 cm 1.78 cm 854 MeV 20.7 keV 8.53 cm 8.53 cm World eIoni + 2 -1.16 mum -20 cm 2.22 cm 2.05 GeV 28.3 keV 12 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.04 cm 1.78 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 2.29 mum -8.05 cm 1.78 cm 930 keV 1.32 keV 84.8 mum 84.8 mum World eIoni + 2 10.7 mum -15.2 cm 1.78 cm 716 MeV 9.28 keV 7.16 cm 7.17 cm World eBrem + 3 11.1 mum -20 cm 1.78 cm 1.2 GeV 11.4 keV 4.79 cm 12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 10.7 mum -15.2 cm 1.78 cm 555 keV 0 eV 0 fm 0 fm World initStep + 1 -7.62 mum -20 cm 1.78 cm 555 keV 0 eV 4.79 cm 4.79 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.12 cm 1.18 cm 262 MeV 3.93 keV 2.58 cm 2.58 cm World eIoni + 2 -1.84 mum -14 cm 2.05 cm 1.45 GeV 25.2 keV 11.9 cm 14.5 cm World eIoni + 3 -412 nm -20 cm 2.22 cm 2.05 GeV 12.7 keV 5.98 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -695 nm -8.84 cm 1.82 cm 4.68 keV 0 eV 0 fm 0 fm World initStep - 1 2.4 mum -8.9 cm 1.83 cm 6.88 MeV 4.68 keV 645 mum 645 mum World eIoni - 2 3.56 mum -9.14 cm 1.83 cm 31.1 MeV 78.5 eV 2.42 mm 3.06 mm World eIoni - 3 4.85 mum -10.4 cm 1.83 cm 159 MeV 4.56 keV 1.28 cm 1.59 cm World eIoni - 4 13.2 mum -17.5 cm 1.83 cm 867 MeV 12.1 keV 7.08 cm 8.67 cm World eIoni - 5 14.7 mum -20 cm 1.83 cm 1.12 GeV 4.86 keV 2.5 cm 11.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 13.2 mum -17.5 cm 1.83 cm 1.59 keV 0 eV 0 fm 0 fm World initStep - 1 11.2 mum -17.5 cm 1.83 cm 1.21 MeV 1.59 keV 110 mum 110 mum World eIoni - 2 5.87 mum -20 cm 1.83 cm 250 MeV 3.82 keV 2.48 cm 2.5 cm OutOfWorldTransportation + 0 -1.84 mum -14 cm 2.05 cm 2.68 keV 0 eV 0 fm 0 fm World initStep + 1 -15.9 mum -14 cm 2.05 cm 2.7 MeV 2.68 keV 249 mum 249 mum World eIoni + 2 -26.4 mum -14.3 cm 2.05 cm 23.4 MeV 322 eV 2.07 mm 2.32 mm World eIoni + 3 -34.8 mum -15.2 cm 2.05 cm 118 MeV 1.82 keV 9.5 mm 1.18 cm World eIoni + 4 -62.9 mum -20 cm 2.05 cm 598 MeV 13.1 keV 4.79 cm 5.98 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.85 mum -10.4 cm 1.83 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 -3.29 mum -10.4 cm 1.83 cm 1.28 MeV 1.65 keV 117 mum 117 mum World eIoni - 2 -29.2 mum -20 cm 1.83 cm 958 MeV 12.7 keV 9.57 cm 9.58 cm OutOfWorldTransportation + 0 -34.8 mum -15.2 cm 2.05 cm 19.4 keV 0 eV 0 fm 0 fm World initStep + 1 50.2 mum -15.5 cm 2.05 cm 33.1 MeV 4.39 keV 3.19 mm 3.19 mm World eIoni + 2 74.9 mum -17.8 cm 2.05 cm 260 MeV 5.17 keV 2.27 cm 2.59 cm World eIoni + 3 82.3 mum -20 cm 2.05 cm 481 MeV 5.27 keV 2.21 cm 4.8 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.25 cm 1.73 cm 3.01 keV 0 eV 0 fm 0 fm World initStep - 1 10.8 mum -7.28 cm 1.73 cm 3.25 MeV 3.01 keV 301 mum 301 mum World eIoni - 2 15.1 mum -7.36 cm 1.73 cm 11.3 MeV 6.46 eV 808 mum 1.11 mm World eIoni - 3 27.9 mum -10.4 cm 1.73 cm 312 MeV 4.58 keV 3.01 cm 3.12 cm World eIoni - 4 26.9 mum -18.4 cm 1.73 cm 1.11 GeV 16.5 keV 7.99 cm 11.1 cm World eIoni - 5 27.2 mum -20 cm 1.73 cm 1.27 GeV 2.79 keV 1.64 cm 12.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 26.9 mum -18.4 cm 1.73 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 23.5 mum -18.4 cm 1.73 cm 639 keV 1 keV 58.1 mum 58.1 mum World eIoni - 2 11.8 mum -20 cm 1.73 cm 164 MeV 2.91 keV 1.63 cm 1.64 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 27.9 mum -10.4 cm 1.73 cm 5.24 keV 0 eV 0 fm 0 fm World initStep - 1 46.6 mum -10.4 cm 1.72 cm 8.37 MeV 5.24 keV 786 mum 786 mum World eIoni - 2 53.9 mum -10.8 cm 1.72 cm 45.8 MeV 214 eV 3.75 mm 4.53 mm World eIoni - 3 67.2 mum -20 cm 1.72 cm 964 MeV 17.2 keV 9.18 cm 9.63 cm OutOfWorldTransportation + 0 0 fm -2.12 cm 1.18 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 1.56 mum -2.13 cm 1.18 cm 641 keV 1.01 keV 58.7 mum 58.7 mum World eIoni + 2 9.63 mum -20 cm 1.18 cm 1.79 GeV 31.9 keV 17.9 cm 17.9 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1930,428 +731,56 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.11 cm 9.24 mm 161 MeV 4.3 keV 1.53 cm 1.53 cm World eIoni - 2 7.72 mum -20 cm 2.22 cm 2.05 GeV 33.6 keV 19 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.11 cm 9.24 mm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 -5.04 mum -1.11 cm 9.24 mm 839 keV 1.22 keV 75.7 mum 75.7 mum World eIoni - 2 -27.3 mum -20 cm 9.25 mm 1.89 GeV 26.5 keV 18.9 cm 18.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -23.8 mum 491 mum 50.2 MeV 27.2 eV 491 mum 491 mum World eIoni - 2 -4.28 mum -1.21 cm 9.55 mm 171 MeV 2.76 keV 1.59 cm 1.64 cm World eIoni - 3 -15.7 mum -8.72 cm 1.82 cm 922 MeV 13.9 keV 7.58 cm 9.21 cm World eIoni - 4 -21.6 mum -14.6 cm 2.07 cm 1.51 GeV 11.8 keV 5.84 cm 15.1 cm World eIoni - 5 -24.1 mum -18.5 cm 2.18 cm 1.87 GeV 6.42 keV 3.93 cm 19 cm World eIoni - 6 -33.8 mum -20 cm 2.23 cm 2.02 GeV 3.02 keV 1.52 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -24.1 mum -18.5 cm 2.18 cm 26.6 MeV 0 eV 0 fm 0 fm World initStep - 1 191 mum -20 cm 2.1 cm 178 MeV 3.8 keV 1.52 cm 1.52 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -21.6 mum -14.6 cm 2.07 cm 3.06 keV 0 eV 0 fm 0 fm World initStep - 1 -24.3 mum -14.6 cm 2.07 cm 3.35 MeV 3.06 keV 310 mum 310 mum World eIoni - 2 -24.8 mum -14.6 cm 2.07 cm 6.6 MeV 12.8 eV 325 mum 636 mum World eIoni - 3 -28.9 mum -20 cm 2.07 cm 545 MeV 10.4 keV 5.38 cm 5.45 cm OutOfWorldTransportation + 1 0 fm -9.52 cm 1.86 cm 1 GeV 20 keV 10 cm 10 cm World eIoni + 2 -503 nm -11.1 cm 1.93 cm 1.16 GeV 3.87 keV 1.53 cm 11.5 cm World eIoni + 3 -1.5 mum -19.1 cm 2.2 cm 1.96 GeV 17.2 keV 8.1 cm 19.6 cm World eIoni + 4 -2.02 mum -20 cm 2.22 cm 2.05 GeV 2.84 keV 8.56 mm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -15.7 mum -8.72 cm 1.82 cm 4.25 keV 0 eV 0 fm 0 fm World initStep - 1 -3.62 mum -8.74 cm 1.82 cm 1.99 MeV 323 eV 189 mum 189 mum World eIoni - 2 6.57 mum -8.89 cm 1.82 cm 16.8 MeV 47.6 eV 1.48 mm 1.67 mm World eIoni - 3 27.5 mum -18 cm 1.81 cm 929 MeV 15.8 keV 9.12 cm 9.29 cm World eIoni - 4 27.7 mum -20 cm 1.81 cm 1.13 GeV 5.8 keV 1.99 cm 11.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 27.5 mum -18 cm 1.81 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 32 mum -18 cm 1.82 cm 861 keV 1.25 keV 78.3 mum 78.3 mum World eIoni - 2 45.5 mum -20 cm 1.82 cm 199 MeV 1.86 keV 1.98 cm 1.99 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.28 mum -1.21 cm 9.55 mm 4.71 keV 0 eV 0 fm 0 fm World initStep - 1 12.4 mum -1.27 cm 9.53 mm 6.96 MeV 4.71 keV 652 mum 652 mum World eIoni - 2 18.2 mum -1.48 cm 9.53 mm 28.2 MeV 202 eV 2.12 mm 2.78 mm World eIoni - 3 31.7 mum -6.13 cm 9.51 mm 492 MeV 8.89 keV 4.64 cm 4.92 cm World eIoni - 4 30.7 mum -17.4 cm 9.51 mm 1.61 GeV 24.3 keV 11.2 cm 16.1 cm World eIoni - 5 30.5 mum -20 cm 9.51 mm 1.88 GeV 4.97 keV 2.65 cm 18.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 30.7 mum -17.4 cm 9.51 mm 1.87 keV 0 eV 0 fm 0 fm World initStep - 1 31.1 mum -17.4 cm 9.5 mm 1.54 MeV 1.87 keV 141 mum 141 mum World eIoni - 2 32 mum -20 cm 9.48 mm 265 MeV 4.09 keV 2.63 cm 2.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 31.7 mum -6.13 cm 9.51 mm 3.65 keV 0 eV 0 fm 0 fm World initStep - 1 48.8 mum -6.17 cm 9.5 mm 4.51 MeV 3.65 keV 420 mum 420 mum World eIoni - 2 61.6 mum -6.7 cm 9.49 mm 58 MeV 808 eV 5.35 mm 5.77 mm World eIoni - 3 62.5 mum -6.8 cm 9.49 mm 68.1 MeV 529 eV 1.01 mm 6.78 mm World eIoni - 4 58.8 mum -9.84 cm 9.49 mm 372 MeV 6.34 keV 3.04 cm 3.72 cm World eIoni - 5 58.6 mum -20 cm 9.5 mm 1.39 GeV 24.6 keV 10.2 cm 13.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 58.8 mum -9.84 cm 9.49 mm 2.35 keV 0 eV 0 fm 0 fm World initStep - 1 53.8 mum -9.86 cm 9.48 mm 2.19 MeV 2.35 keV 202 mum 202 mum World eIoni - 2 46.9 mum -10.7 cm 9.47 mm 81.9 MeV 564 eV 7.97 mm 8.18 mm World eIoni - 3 38.7 mum -20 cm 9.46 mm 1.02 GeV 20.8 keV 9.34 cm 10.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 11 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 46.9 mum -10.7 cm 9.47 mm 1.19 keV 0 eV 0 fm 0 fm World initStep - 1 49 mum -10.7 cm 9.46 mm 803 keV 1.19 keV 73 mum 73 mum World eIoni - 2 57.6 mum -20 cm 9.44 mm 934 MeV 12 keV 9.33 cm 9.34 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 62.5 mum -6.8 cm 9.49 mm 6.1 keV 0 eV 0 fm 0 fm World initStep - 1 96.9 mum -6.9 cm 9.48 mm 10.9 MeV 6.1 keV 1.03 mm 1.03 mm World eIoni - 2 104 mum -7.07 cm 9.48 mm 27.6 MeV 993 eV 1.67 mm 2.7 mm World eIoni - 3 130 mum -15.8 cm 9.47 mm 896 MeV 17.4 keV 8.69 cm 8.96 cm World eIoni - 4 131 mum -18.8 cm 9.46 mm 1.2 GeV 7.08 keV 3.08 cm 12 cm World eIoni - 5 132 mum -20 cm 9.46 mm 1.32 GeV 3.19 keV 1.16 cm 13.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 10 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 131 mum -18.8 cm 9.46 mm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 131 mum -18.9 cm 9.47 mm 1.2 MeV 1.58 keV 109 mum 109 mum World eIoni - 2 129 mum -20 cm 9.49 mm 116 MeV 2.56 keV 1.15 cm 1.16 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 10 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 130 mum -15.8 cm 9.47 mm 2.62 keV 0 eV 0 fm 0 fm World initStep - 1 134 mum -15.8 cm 9.48 mm 2.61 MeV 2.62 keV 241 mum 241 mum World eIoni - 2 138 mum -16.3 cm 9.49 mm 57.6 MeV 392 eV 5.5 mm 5.74 mm World eIoni - 3 141 mum -18.1 cm 9.5 mm 232 MeV 2.31 keV 1.75 cm 2.32 cm World eIoni - 4 144 mum -20 cm 9.5 mm 424 MeV 2.57 keV 1.92 cm 4.24 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 13 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 141 mum -18.1 cm 9.5 mm 2.1 keV 0 eV 0 fm 0 fm World initStep - 1 130 mum -18.1 cm 9.5 mm 1.84 MeV 2.1 keV 169 mum 169 mum World eIoni - 2 109 mum -20 cm 9.5 mm 192 MeV 2.07 keV 1.9 cm 1.92 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -23.8 mum 491 mum 1.14 keV 0 eV 0 fm 0 fm World initStep - 1 3.65 mum -92.3 mum 490 mum 748 keV 1.14 keV 68.9 mum 68.9 mum World eIoni - 2 21.1 mum -20 cm 489 mum 2 GeV 31.8 keV 20 cm 20 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.93 cm 1.77 cm 843 MeV 15.5 keV 8.42 cm 8.42 cm World eIoni - 2 462 nm -8.94 cm 1.83 cm 944 MeV 1.72 keV 1.01 cm 9.43 cm World eIoni - 3 9.34 mum -18.6 cm 2.18 cm 1.91 GeV 21.8 keV 9.69 cm 19.1 cm World eIoni - 4 10.1 mum -20 cm 2.22 cm 2.05 GeV 2.01 keV 1.38 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 9.34 mum -18.6 cm 2.18 cm 1.75 keV 0 eV 0 fm 0 fm World initStep - 1 13.8 mum -18.6 cm 2.19 cm 1.4 MeV 1.75 keV 128 mum 128 mum World eIoni - 2 22.7 mum -20 cm 2.19 cm 138 MeV 1.21 keV 1.37 cm 1.38 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 462 nm -8.94 cm 1.83 cm 12.8 keV 0 eV 0 fm 0 fm World initStep - 1 -31.2 mum -9.01 cm 1.83 cm 7.7 MeV 2.12 keV 748 mum 748 mum World eIoni - 2 -72.9 mum -20 cm 1.84 cm 1.11 GeV 21.5 keV 11 cm 11.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.93 cm 1.77 cm 2.87 keV 0 eV 0 fm 0 fm World initStep - 1 -11.5 mum -7.95 cm 1.77 cm 3.03 MeV 2.87 keV 280 mum 280 mum World eIoni - 2 -26.3 mum -9.19 cm 1.77 cm 126 MeV 2.65 keV 1.23 cm 1.26 cm World eIoni - 3 -34 mum -16.1 cm 1.77 cm 820 MeV 13.2 keV 6.94 cm 8.2 cm World eIoni - 4 -33.7 mum -20 cm 1.77 cm 1.21 GeV 8.54 keV 3.87 cm 12.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -34 mum -16.1 cm 1.77 cm 5.08 keV 0 eV 0 fm 0 fm World initStep - 1 -54.4 mum -16.2 cm 1.77 cm 7.88 MeV 5.08 keV 739 mum 739 mum World eIoni - 2 -61.8 mum -16.5 cm 1.77 cm 36.4 MeV 279 eV 2.86 mm 3.59 mm World eIoni - 3 -74 mum -20 cm 1.77 cm 388 MeV 6.79 keV 3.51 cm 3.87 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.02 cm 1.78 cm 852 MeV 19.1 keV 8.51 cm 8.51 cm World eIoni - 2 507 nm -10.5 cm 1.91 cm 1.1 GeV 6.04 keV 2.5 cm 11 cm World eIoni - 3 223 nm -17 cm 2.14 cm 1.75 GeV 13 keV 6.47 cm 17.5 cm World eIoni - 4 544 nm -18.9 cm 2.19 cm 1.94 GeV 3.87 keV 1.94 cm 19.4 cm World eIoni - 5 869 nm -20 cm 2.22 cm 2.05 GeV 1.96 keV 1.08 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 544 nm -18.9 cm 2.19 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 -4.68 mum -18.9 cm 2.19 cm 957 keV 1.35 keV 87.1 mum 87.1 mum World eIoni - 2 -17.4 mum -20 cm 2.19 cm 108 MeV 1.32 keV 1.07 cm 1.08 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 223 nm -17 cm 2.14 cm 34.5 keV 0 eV 0 fm 0 fm World initStep - 1 -4.89 mum -17 cm 2.14 cm 732 keV 0 eV 76.6 mum 76.6 mum World eIoni - 2 -16.5 mum -17.3 cm 2.13 cm 26.9 MeV 569 eV 2.62 mm 2.7 mm World eIoni - 3 -25.3 mum -20 cm 2.13 cm 301 MeV 4.05 keV 2.74 cm 3.01 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 507 nm -10.5 cm 1.91 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 4.87 mum -10.5 cm 1.91 cm 872 keV 1.26 keV 79.4 mum 79.4 mum World eIoni - 2 22 mum -20 cm 1.91 cm 948 MeV 12 keV 9.47 cm 9.48 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.02 cm 1.78 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 -3.46 mum -8.03 cm 1.78 cm 962 keV 1.35 keV 87.7 mum 87.7 mum World eIoni - 2 -16.6 mum -20 cm 1.77 cm 1.2 GeV 18.9 keV 12 cm 12 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.58 cm 1.68 cm 708 MeV 11.4 keV 7.07 cm 7.07 cm World eIoni - 2 1.26 mum -9.96 cm 1.88 cm 1.05 GeV 7.56 keV 3.38 cm 10.5 cm World eIoni - 3 4.65 mum -16.2 cm 2.12 cm 1.67 GeV 16.6 keV 6.25 cm 16.7 cm World eIoni - 4 6.38 mum -20 cm 2.22 cm 2.05 GeV 8.64 keV 3.8 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.65 mum -16.2 cm 2.12 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 2.66 mum -16.2 cm 2.12 cm 837 keV 1.22 keV 76 mum 76 mum World eIoni - 2 -4.21 mum -20 cm 2.12 cm 380 MeV 4.22 keV 3.79 cm 3.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.26 mum -9.96 cm 1.88 cm 1.8 keV 0 eV 0 fm 0 fm World initStep - 1 -7.19 mum -9.97 cm 1.88 cm 1.46 MeV 1.8 keV 133 mum 133 mum World eIoni - 2 -32.4 mum -20 cm 1.88 cm 1 GeV 14.9 keV 10 cm 10 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.58 cm 1.68 cm 1.94 keV 0 eV 0 fm 0 fm World initStep - 1 -7.06 mum -6.6 cm 1.68 cm 1.62 MeV 1.94 keV 149 mum 149 mum World eIoni - 2 -27.8 mum -20 cm 1.68 cm 1.34 GeV 15.9 keV 13.4 cm 13.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.71 cm 1.76 cm 821 MeV 13.6 keV 8.2 cm 8.2 cm World eIoni - 2 -4.32 mum -20 cm 2.22 cm 2.05 GeV 26.6 keV 12.3 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.71 cm 1.76 cm 2.58 keV 0 eV 0 fm 0 fm World initStep - 1 12.4 mum -7.74 cm 1.76 cm 2.54 MeV 2.58 keV 234 mum 234 mum World eIoni - 2 31.8 mum -9.33 cm 1.76 cm 162 MeV 1.83 keV 1.59 cm 1.62 cm World eIoni - 3 36.3 mum -11.9 cm 1.76 cm 422 MeV 5.15 keV 2.6 cm 4.22 cm World eIoni - 4 39.2 mum -20 cm 1.76 cm 1.23 GeV 17.1 keV 8.07 cm 12.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 36.3 mum -11.9 cm 1.76 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 39.6 mum -11.9 cm 1.76 cm 847 keV 1.24 keV 77 mum 77 mum World eIoni - 2 52.3 mum -20 cm 1.76 cm 807 MeV 10.7 keV 8.06 cm 8.07 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.75 mm 4.1 mm 67.5 MeV 804 eV 4.56 mm 4.56 mm World eIoni - 2 13.4 mum -3.05 cm 1.33 cm 355 MeV 5.56 keV 3.06 cm 3.52 cm World eIoni - 3 20.7 mum -11 cm 1.93 cm 1.15 GeV 14.8 keV 7.94 cm 11.5 cm World eIoni - 4 26.6 mum -20 cm 2.22 cm 2.05 GeV 21.8 keV 9.04 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 20.7 mum -11 cm 1.93 cm 2.98 keV 0 eV 0 fm 0 fm World initStep - 1 9.01 mum -11 cm 1.93 cm 3.21 MeV 2.98 keV 297 mum 297 mum World eIoni - 2 -2.17 mum -11.5 cm 1.93 cm 57.8 MeV 518 eV 5.46 mm 5.75 mm World eIoni - 3 -8.31 mum -13.6 cm 1.92 cm 264 MeV 4.42 keV 2.06 cm 2.63 cm World eIoni - 4 -15.1 mum -20 cm 1.92 cm 904 MeV 12.6 keV 6.41 cm 9.04 cm OutOfWorldTransportation + 0 -1.5 mum -19.1 cm 2.2 cm 27 keV 0 eV 0 fm 0 fm World initStep + 1 83.6 mum -19.6 cm 2.19 cm 48.1 MeV 5.61 keV 4.65 mm 4.65 mm World eIoni + 2 88.6 mum -19.9 cm 2.19 cm 79.5 MeV 1.19 keV 3.13 mm 7.79 mm World eIoni + 3 89.7 mum -20 cm 2.19 cm 87.9 MeV 90.1 eV 846 mum 8.63 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.31 mum -13.6 cm 1.92 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 -5.83 mum -13.6 cm 1.92 cm 927 keV 1.32 keV 84.4 mum 84.4 mum World eIoni - 2 3.05 mum -20 cm 1.92 cm 641 MeV 9.9 keV 6.4 cm 6.41 cm OutOfWorldTransportation + 0 88.6 mum -19.9 cm 2.19 cm 2 keV 0 eV 0 fm 0 fm World initStep + 1 88.2 mum -19.9 cm 2.19 cm 1.7 MeV 2 keV 155 mum 155 mum World eIoni + 2 88 mum -20 cm 2.19 cm 8.64 MeV 74.3 eV 694 mum 849 mumOutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 13.4 mum -3.05 cm 1.33 cm 2.13 keV 0 eV 0 fm 0 fm World initStep - 1 16 mum -3.07 cm 1.33 cm 1.9 MeV 2.13 keV 173 mum 173 mum World eIoni - 2 20.8 mum -4.54 cm 1.34 cm 149 MeV 1.41 keV 1.47 cm 1.49 cm World eIoni - 3 21 mum -4.82 cm 1.34 cm 177 MeV 141 eV 2.75 mm 1.77 cm World eIoni - 4 37.9 mum -16.3 cm 1.35 cm 1.32 GeV 26.2 keV 11.5 cm 13.2 cm World eIoni - 5 38.6 mum -17.2 cm 1.35 cm 1.42 GeV 1.6 keV 9.2 mm 14.2 cm World eIoni - 6 40.8 mum -20 cm 1.35 cm 1.7 GeV 7.9 keV 2.8 cm 17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 38.6 mum -17.2 cm 1.35 cm 1.92 keV 0 eV 0 fm 0 fm World initStep - 1 35.7 mum -17.2 cm 1.34 cm 1.6 MeV 1.92 keV 147 mum 147 mum World eIoni - 2 29.1 mum -20 cm 1.34 cm 280 MeV 3.33 keV 2.78 cm 2.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 37.9 mum -16.3 cm 1.35 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 33.9 mum -16.3 cm 1.35 cm 659 keV 1.03 keV 59.9 mum 59.9 mum World eIoni - 2 18.1 mum -20 cm 1.35 cm 372 MeV 5.34 keV 3.71 cm 3.72 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 21 mum -4.82 cm 1.34 cm 141 keV 0 eV 0 fm 0 fm World initStep - 1 -11.1 mum -5.08 cm 1.32 cm 26.8 MeV 1.19 keV 2.67 mm 2.67 mm World eIoni - 2 -39.7 mum -20 cm 1.31 cm 1.52 GeV 28.9 keV 14.9 cm 15.2 cm OutOfWorldTransportation + 0 -503 nm -11.1 cm 1.93 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 -2.95 mum -11.1 cm 1.93 cm 647 keV 1.01 keV 59 mum 59 mum World eIoni + 2 -14.1 mum -20 cm 1.93 cm 895 MeV 14.8 keV 8.94 cm 8.95 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.75 mm 4.1 mm 7.2 keV 0 eV 0 fm 0 fm World initStep - 1 -38.6 mum -3.13 mm 4.08 mm 14.7 MeV 7.2 keV 1.39 mm 1.39 mm World eIoni - 2 -45.7 mum -5.59 mm 4.08 mm 39.3 MeV 349 eV 2.46 mm 3.85 mm World eIoni - 3 -69.9 mum -9.86 cm 4.07 mm 969 MeV 14.6 keV 9.3 cm 9.68 cm World eIoni - 4 -78.9 mum -20 cm 4.07 mm 1.98 GeV 17.1 keV 10.1 cm 19.8 cm OutOfWorldTransportation + 0 0 fm -9.52 cm 1.86 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 5.98 mum -9.53 cm 1.86 cm 877 keV 1.27 keV 79.8 mum 79.8 mum World eIoni + 2 27.1 mum -14.3 cm 1.86 cm 473 MeV 6.2 keV 4.73 cm 4.74 cm World eBrem + 3 30.4 mum -20 cm 1.86 cm 1.05 GeV 10.5 keV 5.74 cm 10.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -69.9 mum -9.86 cm 4.07 mm 4.71 keV 0 eV 0 fm 0 fm World initStep - 1 -49 mum -9.92 cm 4.06 mm 6.94 MeV 4.71 keV 651 mum 651 mum World eIoni - 2 -37.4 mum -10.5 cm 4.05 mm 64.4 MeV 1.21 keV 5.75 mm 6.4 mm World eIoni - 3 -22.3 mum -20 cm 4.03 mm 1.01 GeV 19.1 keV 9.5 cm 10.1 cm OutOfWorldTransportation + 0 27.1 mum -14.3 cm 1.86 cm 871 keV 0 eV 0 fm 0 fm World initStep + 1 -312 mum -20 cm 1.85 cm 871 keV 0 eV 5.74 cm 5.74 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2359,27 +788,39 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.73 cm 1.87 cm 1.02 GeV 19.2 keV 10.2 cm 10.2 cm World eIoni - 2 -840 nm -13.1 cm 2.01 cm 1.36 GeV 7.6 keV 3.35 cm 13.6 cm World eIoni - 3 -2.72 mum -20 cm 2.22 cm 2.05 GeV 16 keV 6.92 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -7.9 cm 1.77 cm 840 MeV 15.7 keV 8.39 cm 8.39 cm World eIoni + 2 374 nm -11.1 cm 1.93 cm 1.16 GeV 8.4 keV 3.21 cm 11.6 cm World eIoni + 3 3.69 mum -20 cm 2.22 cm 2.05 GeV 21.4 keV 8.89 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -840 nm -13.1 cm 2.01 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 1.64 mum -13.1 cm 2.01 cm 714 keV 1.09 keV 64.8 mum 64.8 mum World eIoni - 2 11.7 mum -20 cm 2.02 cm 692 MeV 7.81 keV 6.91 cm 6.92 cm OutOfWorldTransportation + 0 374 nm -11.1 cm 1.93 cm 7.36 keV 0 eV 0 fm 0 fm World initStep + 1 -24 mum -11.2 cm 1.94 cm 14.1 MeV 5.34 keV 1.33 mm 1.33 mm World eIoni + 2 -30.1 mum -11.6 cm 1.94 cm 53.7 MeV 1.26 keV 3.96 mm 5.3 mm World eIoni + 3 -34.9 mum -12.6 cm 1.94 cm 151 MeV 3.83 keV 9.71 mm 1.5 cm World eIoni + 4 -53.9 mum -20 cm 1.94 cm 890 MeV 13 keV 7.39 cm 8.89 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -34.9 mum -12.6 cm 1.94 cm 5.03 keV 0 eV 0 fm 0 fm World initStep + 1 -10.8 mum -12.7 cm 1.94 cm 7.73 MeV 5.03 keV 726 mum 726 mum World eIoni + 2 2.32 mum -13.3 cm 1.94 cm 74 MeV 861 eV 6.62 mm 7.35 mm World eIoni + 3 15.7 mum -20 cm 1.94 cm 739 MeV 14.3 keV 6.65 cm 7.39 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.73 cm 1.87 cm 1.44 keV 0 eV 0 fm 0 fm World initStep - 1 5.44 mum -9.74 cm 1.87 cm 1.05 MeV 1.44 keV 95.8 mum 95.8 mum World eIoni - 2 24.9 mum -20 cm 1.87 cm 1.03 GeV 16.4 keV 10.3 cm 10.3 cm OutOfWorldTransportation + 0 0 fm -7.9 cm 1.77 cm 1.63 keV 0 eV 0 fm 0 fm World initStep + 1 -2.29 mum -7.91 cm 1.77 cm 1.26 MeV 1.63 keV 115 mum 115 mum World eIoni + 2 -9.82 mum -20 cm 1.77 cm 1.21 GeV 16.5 keV 12.1 cm 12.1 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2387,219 +828,1815 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -17.6 cm 2.16 cm 1.81 GeV 34.2 keV 18.1 cm 18.1 cm World eIoni - 2 442 nm -20 cm 2.22 cm 2.05 GeV 3.25 keV 2.37 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -6.27 cm 1.66 cm 677 MeV 13.7 keV 6.76 cm 6.76 cm World eIoni + 2 814 nm -20 cm 2.22 cm 2.05 GeV 27.1 keV 13.7 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -17.6 cm 2.16 cm 1.79 keV 0 eV 0 fm 0 fm World initStep - 1 -7.53 mum -17.6 cm 2.16 cm 1.44 MeV 1.79 keV 132 mum 132 mum World eIoni - 2 -25 mum -20 cm 2.16 cm 237 MeV 2.92 keV 2.35 cm 2.37 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.9 cm 1.83 cm 940 MeV 18.7 keV 9.39 cm 9.39 cm World eIoni - 2 -1.73 mum -20 cm 2.22 cm 2.05 GeV 18.4 keV 11.1 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.9 cm 1.83 cm 1.46 keV 0 eV 0 fm 0 fm World initStep - 1 4.09 mum -8.91 cm 1.83 cm 1.07 MeV 1.46 keV 97.9 mum 97.9 mum World eIoni - 2 18.7 mum -20 cm 1.82 cm 1.11 GeV 13.9 keV 11.1 cm 11.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 40.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.51 cm 1.75 cm 801 MeV 16.9 keV 8 cm 8 cm World eIoni - 2 1.04 mum -10.9 cm 1.93 cm 1.14 GeV 5.09 keV 3.42 cm 11.4 cm World eIoni - 3 1.81 mum -12.4 cm 1.98 cm 1.29 GeV 1.33 keV 1.43 cm 12.8 cm World eIoni - 4 3.33 mum -15.3 cm 2.09 cm 1.58 GeV 4.68 keV 2.96 cm 15.8 cm World eIoni - 5 2.89 mum -20 cm 2.22 cm 2.05 GeV 10.4 keV 4.69 cm 20.5 cm World eIoni - 6 2.89 mum -20 cm 2.22 cm 2.05 GeV 0 eV 53.7 mum 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.89 mum -20 cm 2.22 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 6.28 mum -20 cm 2.22 cm 1.04 MeV 1.04 keV 58 mum 58 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.33 mum -15.3 cm 2.09 cm 8.81 keV 0 eV 0 fm 0 fm World initStep - 1 60.1 mum -15.5 cm 2.09 cm 21.2 MeV 8.81 keV 2 mm 2 mm World eIoni - 2 70.8 mum -16 cm 2.09 cm 70.3 MeV 309 eV 4.92 mm 6.92 mm World eIoni - 3 88.1 mum -20 cm 2.09 cm 470 MeV 7.13 keV 4 cm 4.69 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.81 mum -12.4 cm 1.98 cm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 520 nm -12.4 cm 1.99 cm 689 keV 1.06 keV 62.5 mum 62.5 mum World eIoni - 2 -5 mum -20 cm 1.99 cm 765 MeV 9.24 keV 7.64 cm 7.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.04 mum -10.9 cm 1.93 cm 1.41 keV 0 eV 0 fm 0 fm World initStep - 1 -5.43 mum -10.9 cm 1.93 cm 1.03 MeV 1.41 keV 93.3 mum 93.3 mum World eIoni - 2 -28.6 mum -20 cm 1.92 cm 907 MeV 11.8 keV 9.06 cm 9.07 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.51 cm 1.75 cm 1.47 keV 0 eV 0 fm 0 fm World initStep - 1 -5.41 mum -7.52 cm 1.75 cm 1.08 MeV 1.47 keV 98.6 mum 98.6 mum World eIoni - 2 -24.8 mum -20 cm 1.74 cm 1.25 GeV 18.9 keV 12.5 cm 12.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -11.4 cm 1.94 cm 1.19 GeV 21 keV 11.9 cm 11.9 cm World eIoni - 2 -715 nm -16.1 cm 2.11 cm 1.66 GeV 7.92 keV 4.74 cm 16.6 cm World eIoni - 3 -1.12 mum -17.4 cm 2.15 cm 1.79 GeV 1.61 keV 1.31 cm 17.9 cm World eIoni - 4 -1.25 mum -18.3 cm 2.18 cm 1.88 GeV 3.2 keV 9.32 mm 18.8 cm World eIoni - 5 -1.85 mum -20 cm 2.22 cm 2.05 GeV 4.11 keV 1.66 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.25 mum -18.3 cm 2.18 cm 1.94 keV 0 eV 0 fm 0 fm World initStep - 1 8.41 mum -18.4 cm 2.18 cm 1.63 MeV 1.94 keV 149 mum 149 mum World eIoni - 2 26.9 mum -20 cm 2.18 cm 167 MeV 1.79 keV 1.65 cm 1.66 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.12 mum -17.4 cm 2.15 cm 1.57 keV 0 eV 0 fm 0 fm World initStep - 1 -6.42 mum -17.4 cm 2.15 cm 1.19 MeV 1.57 keV 109 mum 109 mum World eIoni - 2 -20.4 mum -20 cm 2.15 cm 260 MeV 4.42 keV 2.58 cm 2.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -715 nm -16.1 cm 2.11 cm 25.7 keV 0 eV 0 fm 0 fm World initStep - 1 11 mum -16.2 cm 2.11 cm 8.31 MeV 1.03 keV 820 mum 820 mum World eIoni - 2 23.2 mum -20 cm 2.1 cm 390 MeV 3.47 keV 3.82 cm 3.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -11.4 cm 1.94 cm 5.4 keV 0 eV 0 fm 0 fm World initStep - 1 9.11 mum -11.4 cm 1.94 cm 8.85 MeV 5.4 keV 832 mum 832 mum World eIoni - 2 10.9 mum -11.6 cm 1.94 cm 21.6 MeV 53.7 eV 1.28 mm 2.11 mm World eIoni - 3 18.8 mum -20 cm 1.94 cm 865 MeV 13.6 keV 8.43 cm 8.64 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -13.1 cm 2.01 cm 1.36 GeV 29.3 keV 13.5 cm 13.5 cm World eIoni - 2 396 nm -19.5 cm 2.21 cm 2 GeV 13.5 keV 6.47 cm 20 cm World eIoni - 3 525 nm -20 cm 2.22 cm 2.05 GeV 1.11 keV 4.83 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 396 nm -19.5 cm 2.21 cm 5.35 keV 0 eV 0 fm 0 fm World initStep - 1 -18.2 mum -19.6 cm 2.21 cm 8.68 MeV 5.35 keV 816 mum 816 mum World eIoni - 2 -19.4 mum -19.6 cm 2.21 cm 11.8 MeV 0 eV 311 mum 1.13 mm World eIoni - 3 -25.5 mum -20 cm 2.2 cm 49 MeV 1.03 keV 3.72 mm 4.84 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13.1 cm 2.01 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 -1.9 mum -13.1 cm 2.01 cm 1.11 MeV 1.49 keV 100 mum 100 mum World eIoni - 2 -8.16 mum -20 cm 2.01 cm 695 MeV 13.8 keV 6.94 cm 6.95 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.33 cm 1.37 cm 383 MeV 9.35 keV 3.8 cm 3.8 cm World eIoni - 2 -649 nm -7.12 cm 1.72 cm 762 MeV 9.62 keV 3.81 cm 7.61 cm World eIoni - 3 -4.25 mum -20 cm 2.22 cm 2.05 GeV 22.3 keV 12.9 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -649 nm -7.12 cm 1.72 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 4.55 mum -7.13 cm 1.72 cm 1.2 MeV 1.58 keV 109 mum 109 mum World eIoni - 2 22.3 mum -20 cm 1.72 cm 1.29 GeV 21.5 keV 12.9 cm 12.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.33 cm 1.37 cm 7.02 keV 0 eV 0 fm 0 fm World initStep - 1 4.92 mum -3.46 cm 1.38 cm 14.1 MeV 7.02 keV 1.33 mm 1.33 mm World eIoni - 2 6.05 mum -3.8 cm 1.38 cm 48.3 MeV 495 eV 3.42 mm 4.75 mm World eIoni - 3 8.66 mum -9.87 cm 1.38 cm 655 MeV 8.35 keV 6.07 cm 6.55 cm World eIoni - 4 8.28 mum -20 cm 1.38 cm 1.67 GeV 21.2 keV 10.1 cm 16.7 cm OutOfWorldTransportation + 0 0 fm -6.27 cm 1.66 cm 5.68 keV 0 eV 0 fm 0 fm World initStep + 1 -3.27 mum -6.36 cm 1.66 cm 9.65 MeV 5.68 keV 908 mum 908 mum World eIoni + 2 -4.43 mum -6.76 cm 1.67 cm 49.2 MeV 997 eV 3.96 mm 4.86 mm World eIoni + 3 -5.83 mum -9.51 cm 1.67 cm 324 MeV 4.25 keV 2.75 cm 3.24 cm World eIoni + 4 -6.25 mum -12.2 cm 1.67 cm 598 MeV 4.95 keV 2.74 cm 5.97 cm World eIoni + 5 -9.04 mum -20 cm 1.67 cm 1.37 GeV 15.7 keV 7.76 cm 13.7 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.66 mum -9.87 cm 1.38 cm 2.74 keV 0 eV 0 fm 0 fm World initStep - 1 12.3 mum -9.9 cm 1.38 cm 2.81 MeV 2.74 keV 259 mum 259 mum World eIoni - 2 14.8 mum -10.1 cm 1.38 cm 19.3 MeV 190 eV 1.65 mm 1.91 mm World eIoni - 3 20 mum -20 cm 1.37 cm 1.01 GeV 15.6 keV 9.94 cm 10.1 cm OutOfWorldTransportation + 0 -6.25 mum -12.2 cm 1.67 cm 3.42 keV 0 eV 0 fm 0 fm World initStep + 1 2.5 mum -12.3 cm 1.67 cm 4.04 MeV 3.42 keV 375 mum 375 mum World eIoni + 2 6.35 mum -12.4 cm 1.67 cm 17.6 MeV 327 eV 1.36 mm 1.73 mm World eIoni + 3 16.7 mum -20 cm 1.67 cm 776 MeV 13.8 keV 7.59 cm 7.76 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -5.83 mum -9.51 cm 1.67 cm 1.18 keV 0 eV 0 fm 0 fm World initStep + 1 -5.89 mum -9.51 cm 1.67 cm 796 keV 1.18 keV 72.3 mum 72.3 mum World eIoni + 2 -6.16 mum -20 cm 1.66 cm 1.05 GeV 15.5 keV 10.5 cm 10.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -16.7 cm 2.13 cm 1.72 GeV 30 keV 17.2 cm 17.2 cm World eIoni + 2 -657 nm -20 cm 2.22 cm 2.05 GeV 4.97 keV 3.32 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -16.7 cm 2.13 cm 1.39 keV 0 eV 0 fm 0 fm World initStep + 1 6.67 mum -16.7 cm 2.13 cm 1e+03 keV 1.39 keV 91 mum 91 mum World eIoni + 2 27 mum -20 cm 2.13 cm 332 MeV 3.85 keV 3.31 cm 3.32 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -15 cm 2.08 cm 1.55 GeV 29.1 keV 15.5 cm 15.5 cm World eIoni + 2 -672 nm -20 cm 2.22 cm 2.05 GeV 11.2 keV 4.98 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -15 cm 2.08 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 3.74 mum -15 cm 2.08 cm 717 keV 1.09 keV 65.2 mum 65.2 mum World eIoni + 2 18.5 mum -20 cm 2.08 cm 498 MeV 5.14 keV 4.97 cm 4.98 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.44 cm 1.74 cm 794 MeV 14.8 keV 7.93 cm 7.93 cm World eIoni + 2 -777 nm -20 cm 2.22 cm 2.05 GeV 24.6 keV 12.6 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.44 cm 1.74 cm 1.64 keV 0 eV 0 fm 0 fm World initStep + 1 1.63 mum -7.46 cm 1.74 cm 1.28 MeV 1.64 keV 116 mum 116 mum World eIoni + 2 6.99 mum -20 cm 1.75 cm 1.26 GeV 16.2 keV 12.5 cm 12.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.49 mm 6.31 mm 94.9 MeV 895 eV 8.09 mm 8.09 mm World eIoni + 2 -11.3 mum -2.36 cm 1.22 cm 286 MeV 5.26 keV 2.01 cm 2.82 cm World eIoni + 3 -13.8 mum -2.98 cm 1.32 cm 348 MeV 1.63 keV 6.24 mm 3.45 cm World eIoni + 4 -20.3 mum -3.98 cm 1.45 cm 448 MeV 1.51 keV 1.01 cm 4.45 cm World eIoni + 5 -36.4 mum -7.64 cm 1.75 cm 814 MeV 7.49 keV 3.68 cm 8.13 cm World eIoni + 6 -47 mum -11.2 cm 1.94 cm 1.17 GeV 6.84 keV 3.52 cm 11.7 cm World eIoni + 7 -67 mum -20 cm 2.22 cm 2.05 GeV 17.6 keV 8.85 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -47 mum -11.2 cm 1.94 cm 3.42 keV 0 eV 0 fm 0 fm World initStep + 1 -28.4 mum -11.2 cm 1.94 cm 4.05 MeV 3.42 keV 376 mum 376 mum World eIoni + 2 -18.6 mum -11.4 cm 1.94 cm 23.2 MeV 225 eV 1.92 mm 2.29 mm World eIoni + 3 2.83 mum -20 cm 1.94 cm 885 MeV 15.4 keV 8.62 cm 8.84 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -36.4 mum -7.64 cm 1.75 cm 1.43 keV 0 eV 0 fm 0 fm World initStep + 1 -31.9 mum -7.65 cm 1.75 cm 1.04 MeV 1.43 keV 95.1 mum 95.1 mum World eIoni + 2 -15 mum -20 cm 1.75 cm 1.24 GeV 14.9 keV 12.3 cm 12.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -20.3 mum -3.98 cm 1.45 cm 1.77 keV 0 eV 0 fm 0 fm World initStep + 1 -16.9 mum -3.99 cm 1.45 cm 1.42 MeV 1.77 keV 130 mum 130 mum World eIoni + 2 -5.83 mum -20 cm 1.46 cm 1.6 GeV 19.2 keV 16 cm 16 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -13.8 mum -2.98 cm 1.32 cm 15.5 keV 0 eV 0 fm 0 fm World initStep + 1 31.6 mum -3.05 cm 1.32 cm 7.6 MeV 1.27 keV 742 mum 742 mum World eIoni + 2 98 mum -20 cm 1.32 cm 1.7 GeV 34.9 keV 17 cm 17 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -11.3 mum -2.36 cm 1.22 cm 6.77 keV 0 eV 0 fm 0 fm World initStep + 1 4.65 mum -2.48 cm 1.22 cm 12.8 MeV 4.72 keV 1.2 mm 1.2 mm World eIoni + 2 8.18 mum -2.75 cm 1.22 cm 39.4 MeV 161 eV 2.66 mm 3.87 mm World eIoni + 3 15.1 mum -5.62 cm 1.22 cm 327 MeV 5.4 keV 2.87 cm 3.26 cm World eIoni + 4 19.2 mum -7.8 cm 1.22 cm 545 MeV 4.76 keV 2.18 cm 5.44 cm World eIoni + 5 21.7 mum -20 cm 1.22 cm 1.76 GeV 23.2 keV 12.2 cm 17.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 19.2 mum -7.8 cm 1.22 cm 4.05 keV 0 eV 0 fm 0 fm World initStep + 1 39.7 mum -7.85 cm 1.22 cm 5.33 MeV 4.05 keV 498 mum 498 mum World eIoni + 2 53.3 mum -8.38 cm 1.22 cm 58.8 MeV 1.29 keV 5.35 mm 5.85 mm World eIoni + 3 71.2 mum -20 cm 1.22 cm 1.22 GeV 23.1 keV 11.6 cm 12.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 15.1 mum -5.62 cm 1.22 cm 2.26 keV 0 eV 0 fm 0 fm World initStep + 1 3.46 mum -5.64 cm 1.22 cm 2.06 MeV 2.26 keV 189 mum 189 mum World eIoni + 2 -14.1 mum -6.56 cm 1.22 cm 93.9 MeV 1.77 keV 9.19 mm 9.38 mm World eIoni + 3 -26.7 mum -17.6 cm 1.22 cm 1.2 GeV 21.9 keV 11 cm 12 cm World eIoni + 4 -27 mum -18.7 cm 1.22 cm 1.31 GeV 3.04 keV 1.14 cm 13.1 cm World eIoni + 5 -27.2 mum -20 cm 1.22 cm 1.44 GeV 2.86 keV 1.28 cm 14.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -27 mum -18.7 cm 1.22 cm 2.02 keV 0 eV 0 fm 0 fm World initStep + 1 -28.4 mum -18.7 cm 1.22 cm 1.73 MeV 2.02 keV 158 mum 158 mum World eIoni + 2 -31.1 mum -20 cm 1.21 cm 128 MeV 2.65 keV 1.27 cm 1.28 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -26.7 mum -17.6 cm 1.22 cm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 -29.2 mum -17.6 cm 1.22 cm 838 keV 1.23 keV 76.2 mum 76.2 mum World eIoni + 2 -37.3 mum -20 cm 1.22 cm 242 MeV 2.44 keV 2.42 cm 2.42 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.49 mm 6.31 mm 9.13 keV 0 eV 0 fm 0 fm World initStep + 1 54 mum -6.11 mm 6.31 mm 17.4 MeV 4.97 keV 1.65 mm 1.65 mm World eIoni + 2 63.9 mum -9.29 mm 6.31 mm 49.2 MeV 458 eV 3.18 mm 4.83 mm World eIoni + 3 90.9 mum -7.26 cm 6.31 mm 683 MeV 12.6 keV 6.33 cm 6.82 cm World eIoni + 4 104 mum -19.4 cm 6.31 mm 1.89 GeV 26.5 keV 12.1 cm 18.9 cm World eIoni + 5 104 mum -20 cm 6.31 mm 1.96 GeV 1.91 keV 6.34 mm 19.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 104 mum -19.4 cm 6.31 mm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 106 mum -19.4 cm 6.3 mm 713 keV 1.09 keV 64.9 mum 64.9 mum World eIoni + 2 112 mum -20 cm 6.29 mm 63.4 MeV 502 eV 6.27 mm 6.34 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 90.9 mum -7.26 cm 6.31 mm 2.66 keV 0 eV 0 fm 0 fm World initStep + 1 82.2 mum -7.29 cm 6.32 mm 2.66 MeV 2.66 keV 246 mum 246 mum World eIoni + 2 76.7 mum -7.43 cm 6.33 mm 16.6 MeV 28.7 eV 1.39 mm 1.64 mm World eIoni + 3 63.6 mum -17 cm 6.35 mm 970 MeV 20.7 keV 9.54 cm 9.7 cm World eIoni + 4 62.1 mum -20 cm 6.35 mm 1.27 GeV 5.77 keV 3.04 cm 12.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 63.6 mum -17 cm 6.35 mm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 68.5 mum -17 cm 6.35 mm 681 keV 1.05 keV 61.9 mum 61.9 mum World eIoni + 2 86.6 mum -20 cm 6.34 mm 304 MeV 5.91 keV 3.03 cm 3.04 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.27 cm 9.75 mm 177 MeV 2.55 keV 1.7 cm 1.7 cm World eIoni + 2 -6.53 mum -9.12 cm 1.84 cm 962 MeV 14 keV 7.91 cm 9.61 cm World eIoni + 3 -11.7 mum -20 cm 2.22 cm 2.05 GeV 24.4 keV 10.9 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -6.53 mum -9.12 cm 1.84 cm 1 keV 0 eV 0 fm 0 fm World initStep + 1 -2.02 mum -9.12 cm 1.84 cm 638 keV 1 keV 58.1 mum 58.1 mum World eIoni + 2 18.9 mum -20 cm 1.84 cm 1.09 GeV 20 keV 10.9 cm 10.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.27 cm 9.75 mm 1.86 keV 0 eV 0 fm 0 fm World initStep + 1 8.13 mum -1.28 cm 9.74 mm 1.53 MeV 1.86 keV 140 mum 140 mum World eIoni + 2 34.6 mum -20 cm 9.73 mm 1.87 GeV 29.2 keV 18.7 cm 18.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.62 mm 8.73 mm 146 MeV 4.03 keV 1.38 cm 1.38 cm World eIoni + 2 -6.33 mum -20 cm 2.22 cm 2.05 GeV 38.8 keV 19.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.62 mm 8.73 mm 1.61 keV 0 eV 0 fm 0 fm World initStep + 1 4.75 mum -9.73 mm 8.74 mm 1.25 MeV 1.61 keV 112 mum 112 mum World eIoni + 2 21.7 mum -20 cm 8.76 mm 1.9 GeV 28.5 keV 19 cm 19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 37.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.93 mm 6.58 mm 99.3 MeV 2.13 keV 8.61 mm 8.61 mm World eIoni + 2 6.12 mum -13.2 cm 2.01 cm 1.37 GeV 24.8 keV 12.8 cm 13.7 cm World eIoni + 3 5.44 mum -20 cm 2.22 cm 2.05 GeV 13 keV 6.84 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.12 mum -13.2 cm 2.01 cm 1.55 keV 0 eV 0 fm 0 fm World initStep + 1 13.7 mum -13.2 cm 2.01 cm 1.17 MeV 1.55 keV 106 mum 106 mum World eIoni + 2 38 mum -20 cm 2.01 cm 684 MeV 10.1 keV 6.83 cm 6.84 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.93 mm 6.58 mm 1.87 keV 0 eV 0 fm 0 fm World initStep + 1 -5.08 mum -5.06 mm 6.59 mm 1.58 MeV 1.87 keV 141 mum 141 mum World eIoni + 2 -21 mum -20 cm 6.61 mm 1.95 GeV 29.8 keV 19.5 cm 19.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.34 cm 1.37 cm 384 MeV 5.67 keV 3.82 cm 3.82 cm World eIoni + 2 543 nm -11.8 cm 1.96 cm 1.23 GeV 19 keV 8.5 cm 12.3 cm World eIoni + 3 1.21 mum -13.4 cm 2.02 cm 1.39 GeV 3.65 keV 1.57 cm 13.9 cm World eIoni + 4 -852 nm -17.1 cm 2.14 cm 1.76 GeV 8.95 keV 3.67 cm 17.6 cm World eIoni + 5 -2.26 mum -20 cm 2.22 cm 2.05 GeV 6 keV 2.94 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -852 nm -17.1 cm 2.14 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 -355 nm -17.1 cm 2.14 cm 826 keV 1.21 keV 75.2 mum 75.2 mum World eIoni + 2 1.3 mum -20 cm 2.14 cm 294 MeV 6.95 keV 2.93 cm 2.94 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.21 mum -13.4 cm 2.02 cm 20.3 keV 0 eV 0 fm 0 fm World initStep + 1 40.7 mum -13.4 cm 2.02 cm 3.63 MeV 320 eV 362 mum 362 mum World eIoni + 2 81.8 mum -14.1 cm 2.02 cm 70.4 MeV 1.1 keV 6.67 mm 7.04 mm World eIoni + 3 83.7 mum -19.6 cm 2.02 cm 621 MeV 9.21 keV 5.51 cm 6.21 cm World eIoni + 4 83.8 mum -19.9 cm 2.02 cm 654 MeV 607 eV 3.26 mm 6.54 cm World eIoni + 5 83.9 mum -20 cm 2.02 cm 661 MeV 35.7 eV 694 mum 6.61 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 83.8 mum -19.9 cm 2.02 cm 1.62 keV 0 eV 0 fm 0 fm World initStep + 1 76.5 mum -19.9 cm 2.02 cm 1.24 MeV 1.62 keV 113 mum 113 mum World eIoni + 2 71.5 mum -20 cm 2.02 cm 7.07 MeV 78.9 eV 583 mum 696 mumOutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 83.7 mum -19.6 cm 2.02 cm 1.35 keV 0 eV 0 fm 0 fm World initStep + 1 79.1 mum -19.6 cm 2.02 cm 959 keV 1.35 keV 87.3 mum 87.3 mum World eIoni + 2 70.5 mum -20 cm 2.02 cm 39.6 MeV 523 eV 3.86 mm 3.95 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 81.8 mum -14.1 cm 2.02 cm 18.2 keV 0 eV 0 fm 0 fm World initStep + 1 175 mum -14.4 cm 2.02 cm 31.1 MeV 5.24 keV 3 mm 3 mm World eIoni + 2 189 mum -14.9 cm 2.02 cm 84.6 MeV 628 eV 5.34 mm 8.34 mm World eIoni + 3 215 mum -20 cm 2.02 cm 592 MeV 9.13 keV 5.07 cm 5.91 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 543 nm -11.8 cm 1.96 cm 3.46 keV 0 eV 0 fm 0 fm World initStep + 1 -15.7 mum -11.9 cm 1.96 cm 4.12 MeV 3.46 keV 384 mum 384 mum World eIoni + 2 -23.7 mum -12 cm 1.96 cm 21.4 MeV 158 eV 1.72 mm 2.11 mm World eIoni + 3 -42.3 mum -20 cm 1.97 cm 818 MeV 15.8 keV 7.97 cm 8.18 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.34 cm 1.37 cm 5.29 keV 0 eV 0 fm 0 fm World initStep + 1 -1.97 mum -3.42 cm 1.38 cm 8.5 MeV 5.29 keV 799 mum 799 mum World eIoni + 2 -2.3 mum -3.52 cm 1.38 cm 17.8 MeV 77.5 eV 929 mum 1.73 mm World eIoni + 3 -4.26 mum -15.6 cm 1.38 cm 1.22 GeV 25.3 keV 12 cm 12.2 cm World eBrem + 4 -4.4 mum -20 cm 1.38 cm 1.67 GeV 10.6 keV 4.44 cm 16.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -10.1 cm 1.89 cm 1.05 GeV 18.7 keV 10.5 cm 10.5 cm World eIoni + 2 1.77 mum -20 cm 2.22 cm 2.05 GeV 19.3 keV 9.96 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -10.1 cm 1.89 cm 18.8 keV 0 eV 0 fm 0 fm World initStep + 1 -14.8 mum -10.3 cm 1.88 cm 21.2 MeV 2.7 keV 2.05 mm 2.05 mm World eIoni + 2 -21.7 mum -12.9 cm 1.87 cm 284 MeV 4.08 keV 2.63 cm 2.83 cm World eIoni + 3 -31.9 mum -20 cm 1.87 cm 996 MeV 15.4 keV 7.12 cm 9.95 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -21.7 mum -12.9 cm 1.87 cm 4.07 keV 0 eV 0 fm 0 fm World initStep + 1 -2.28 mum -12.9 cm 1.87 cm 5.39 MeV 4.07 keV 503 mum 503 mum World eIoni + 2 6 mum -13.1 cm 1.87 cm 26 MeV 690 eV 2.06 mm 2.56 mm World eIoni + 3 24.2 mum -20 cm 1.87 cm 713 MeV 12.5 keV 6.87 cm 7.12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.4 cm 1.5 cm 490 MeV 9.69 keV 4.88 cm 4.88 cm World eIoni + 2 -1.3 mum -6.16 cm 1.65 cm 666 MeV 4.01 keV 1.77 cm 6.65 cm World eIoni + 3 -1.67 mum -10.2 cm 1.89 cm 1.07 GeV 8.16 keV 4.04 cm 10.7 cm World eIoni + 4 -897 nm -20 cm 2.22 cm 2.05 GeV 17.9 keV 9.81 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.67 mum -10.2 cm 1.89 cm 1.76 keV 0 eV 0 fm 0 fm World initStep + 1 -5.74 mum -10.2 cm 1.89 cm 1.41 MeV 1.76 keV 129 mum 129 mum World eIoni + 2 -18.1 mum -20 cm 1.89 cm 980 MeV 12 keV 9.79 cm 9.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.3 mum -6.16 cm 1.65 cm 1.7 keV 0 eV 0 fm 0 fm World initStep + 1 -8.21 mum -6.18 cm 1.65 cm 1.34 MeV 1.7 keV 122 mum 122 mum World eIoni + 2 -30.6 mum -20 cm 1.65 cm 1.38 GeV 19.8 keV 13.8 cm 13.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.4 cm 1.5 cm 2.37 keV 0 eV 0 fm 0 fm World initStep + 1 10.4 mum -4.42 cm 1.5 cm 2.22 MeV 2.37 keV 204 mum 204 mum World eIoni + 2 17.3 mum -4.53 cm 1.5 cm 13.1 MeV 20.7 eV 1.09 mm 1.3 mm World eIoni + 3 36.5 mum -20 cm 1.49 cm 1.56 GeV 28.4 keV 15.5 cm 15.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -16.7 cm 2.13 cm 1.72 GeV 33.3 keV 17.2 cm 17.2 cm World eIoni + 2 -1.5 mum -20 cm 2.22 cm 2.05 GeV 5.73 keV 3.26 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -16.7 cm 2.13 cm 17.2 keV 0 eV 0 fm 0 fm World initStep + 1 58.5 mum -17 cm 2.14 cm 29.5 MeV 4.55 keV 2.83 mm 2.83 mm World eIoni + 2 61.5 mum -17.1 cm 2.14 cm 41.6 MeV 348 eV 1.21 mm 4.05 mm World eIoni + 3 79.7 mum -20 cm 2.14 cm 328 MeV 5.12 keV 2.86 cm 3.27 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.23 cm 1.2 cm 273 MeV 3.67 keV 2.68 cm 2.68 cm World eIoni + 2 -6.72 mum -20 cm 2.22 cm 2.05 GeV 38 keV 17.8 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.23 cm 1.2 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 5.15 mum -2.23 cm 1.2 cm 718 keV 1.09 keV 65.2 mum 65.2 mum World eIoni + 2 29.9 mum -20 cm 1.2 cm 1.78 GeV 23.1 keV 17.8 cm 17.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.04 cm 1.33 cm 354 MeV 7.83 keV 3.5 cm 3.5 cm World eIoni + 2 2.43 mum -6.74 cm 1.69 cm 724 MeV 8.53 keV 3.72 cm 7.23 cm World eIoni + 3 7.19 mum -11.1 cm 1.93 cm 1.16 GeV 10.1 keV 4.37 cm 11.6 cm World eIoni + 4 15 mum -20 cm 2.22 cm 2.05 GeV 21.3 keV 8.9 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 7.19 mum -11.1 cm 1.93 cm 4.09 keV 0 eV 0 fm 0 fm World initStep + 1 -5.54 mum -11.2 cm 1.93 cm 5.45 MeV 4.09 keV 509 mum 509 mum World eIoni + 2 -13.7 mum -11.7 cm 1.93 cm 56.7 MeV 698 eV 5.13 mm 5.64 mm World eIoni + 3 -24 mum -19.8 cm 1.93 cm 867 MeV 16.3 keV 8.1 cm 8.66 cm World eIoni + 4 -24.1 mum -20 cm 1.93 cm 890 MeV 422 eV 2.29 mm 8.89 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -24 mum -19.8 cm 1.93 cm 1.5 keV 0 eV 0 fm 0 fm World initStep + 1 -22.2 mum -19.8 cm 1.93 cm 1.12 MeV 1.5 keV 102 mum 102 mum World eIoni + 2 -19.7 mum -20 cm 1.93 cm 23.1 MeV 589 eV 2.19 mm 2.3 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.43 mum -6.74 cm 1.69 cm 7.69 keV 0 eV 0 fm 0 fm World initStep + 1 -25.9 mum -6.83 cm 1.69 cm 9.35 MeV 2.03 keV 890 mum 890 mum World eIoni + 2 -53.3 mum -12.1 cm 1.69 cm 541 MeV 10.4 keV 5.31 cm 5.4 cm World eIoni + 3 -56.4 mum -14.6 cm 1.69 cm 790 MeV 4.86 keV 2.5 cm 7.9 cm World eIoni + 4 -58.9 mum -20 cm 1.69 cm 1.33 GeV 10.7 keV 5.36 cm 13.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -56.4 mum -14.6 cm 1.69 cm 3.22 keV 0 eV 0 fm 0 fm World initStep + 1 -65.8 mum -14.7 cm 1.69 cm 3.64 MeV 3.22 keV 338 mum 338 mum World eIoni + 2 -69.4 mum -14.8 cm 1.69 cm 12.8 MeV 0 eV 912 mum 1.25 mm World eIoni + 3 -80.2 mum -18.4 cm 1.69 cm 381 MeV 5.89 keV 3.68 cm 3.8 cm World eIoni + 4 -80.5 mum -20 cm 1.69 cm 536 MeV 3.49 keV 1.56 cm 5.36 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -80.2 mum -18.4 cm 1.69 cm 1.63 keV 0 eV 0 fm 0 fm World initStep + 1 -84.5 mum -18.5 cm 1.69 cm 1.26 MeV 1.63 keV 115 mum 115 mum World eIoni + 2 -94.3 mum -20 cm 1.69 cm 156 MeV 1.99 keV 1.54 cm 1.56 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -53.3 mum -12.1 cm 1.69 cm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 -50.8 mum -12.1 cm 1.69 cm 746 keV 1.12 keV 67.8 mum 67.8 mum World eIoni + 2 -40.7 mum -20 cm 1.69 cm 786 MeV 13.1 keV 7.85 cm 7.86 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.04 cm 1.33 cm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 -5.45 mum -3.04 cm 1.33 cm 783 keV 1.16 keV 71.1 mum 71.1 mum World eIoni + 2 -30.3 mum -20 cm 1.33 cm 1.7 GeV 19.4 keV 17 cm 17 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 41.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.54 cm 1.51 cm 504 MeV 10.3 keV 5.02 cm 5.02 cm World eIoni + 2 -2.27 mum -8.06 cm 1.78 cm 856 MeV 6.62 keV 3.53 cm 8.55 cm World eIoni + 3 -1.62 mum -19.3 cm 2.2 cm 1.98 GeV 22.2 keV 11.3 cm 19.8 cm World eIoni + 4 -2.33 mum -20 cm 2.22 cm 2.05 GeV 1.92 keV 6.92 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.62 mum -19.3 cm 2.2 cm 45.9 keV 0 eV 0 fm 0 fm World initStep + 1 176 mum -20 cm 2.21 cm 71.4 MeV 4.14 keV 7.01 mm 7.01 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.27 mum -8.06 cm 1.78 cm 4.76 keV 0 eV 0 fm 0 fm World initStep + 1 -22 mum -8.12 cm 1.78 cm 7.07 MeV 4.76 keV 663 mum 663 mum World eIoni + 2 -29.8 mum -8.41 cm 1.78 cm 35.4 MeV 327 eV 2.83 mm 3.5 mm World eIoni + 3 -38.8 mum -10.1 cm 1.78 cm 208 MeV 3.75 keV 1.73 cm 2.08 cm World eIoni + 4 -41.5 mum -17.4 cm 1.78 cm 937 MeV 14.3 keV 7.28 cm 9.36 cm World eIoni + 5 -41.6 mum -20 cm 1.78 cm 1.19 GeV 4.56 keV 2.58 cm 11.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -41.5 mum -17.4 cm 1.78 cm 1.37 keV 0 eV 0 fm 0 fm World initStep + 1 -42.9 mum -17.4 cm 1.77 cm 986 keV 1.37 keV 89.7 mum 89.7 mum World eIoni + 2 -46.9 mum -20 cm 1.77 cm 258 MeV 3.35 keV 2.57 cm 2.58 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -38.8 mum -10.1 cm 1.78 cm 1.19 keV 0 eV 0 fm 0 fm World initStep + 1 -44.1 mum -10.1 cm 1.78 cm 809 keV 1.19 keV 73.6 mum 73.6 mum World eIoni + 2 -65.7 mum -20 cm 1.78 cm 986 MeV 13 keV 9.86 cm 9.86 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.54 cm 1.51 cm 3.92 keV 0 eV 0 fm 0 fm World initStep + 1 14.6 mum -4.59 cm 1.51 cm 5.06 MeV 3.92 keV 472 mum 472 mum World eIoni + 2 18.9 mum -4.68 cm 1.51 cm 14.6 MeV 93.5 eV 955 mum 1.43 mm World eIoni + 3 38.8 mum -20 cm 1.51 cm 1.55 GeV 26.6 keV 15.3 cm 15.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -18.5 cm 2.18 cm 1.9 GeV 37.8 keV 19 cm 19 cm World eIoni + 2 -121 nm -19.6 cm 2.21 cm 2.01 GeV 1.09 keV 1.04 cm 20.1 cm World eIoni + 3 -112 nm -20 cm 2.22 cm 2.05 GeV 945 eV 4.42 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -121 nm -19.6 cm 2.21 cm 2.09 keV 0 eV 0 fm 0 fm World initStep + 1 -6.32 mum -19.6 cm 2.21 cm 1.83 MeV 2.09 keV 167 mum 167 mum World eIoni + 2 -11.3 mum -19.7 cm 2.21 cm 14.3 MeV 66.3 eV 1.25 mm 1.42 mm World eIoni + 3 -13.9 mum -20 cm 2.21 cm 44.3 MeV 2.05 keV 3 mm 4.42 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -18.5 cm 2.18 cm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 3.8 mum -18.5 cm 2.18 cm 847 keV 1.24 keV 76.9 mum 76.9 mum World eIoni + 2 14.7 mum -20 cm 2.18 cm 148 MeV 2.46 keV 1.47 cm 1.48 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.35 mm 6.23 mm 93.5 MeV 1.13 keV 7.93 mm 7.93 mm World eIoni + 2 1.96 mum -8.49 mm 8.3 mm 135 MeV 884 eV 4.63 mm 1.26 cm World eIoni + 3 20.9 mum -13.8 cm 2.04 cm 1.43 GeV 27.8 keV 13 cm 14.3 cm World eIoni + 4 25.9 mum -20 cm 2.22 cm 2.05 GeV 12.7 keV 6.22 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 20.9 mum -13.8 cm 2.04 cm 3.48 keV 0 eV 0 fm 0 fm World initStep + 1 2.83 mum -13.8 cm 2.04 cm 4.17 MeV 3.48 keV 388 mum 388 mum World eIoni + 2 -10.2 mum -14.2 cm 2.04 cm 45.5 MeV 975 eV 4.13 mm 4.52 mm World eIoni + 3 -23.2 mum -18 cm 2.04 cm 426 MeV 6.95 keV 3.81 cm 4.26 cm World eIoni + 4 -22.1 mum -20 cm 2.04 cm 622 MeV 3.28 keV 1.96 cm 6.22 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -23.2 mum -18 cm 2.04 cm 15.3 keV 0 eV 0 fm 0 fm World initStep + 1 -74.1 mum -18.3 cm 2.03 cm 22.2 MeV 1.88 keV 2.14 mm 2.14 mm World eIoni + 2 -82.5 mum -18.6 cm 2.03 cm 59.8 MeV 713 eV 3.75 mm 5.89 mm World eIoni + 3 -97.8 mum -20 cm 2.03 cm 197 MeV 2.04 keV 1.37 cm 1.96 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -82.5 mum -18.6 cm 2.03 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -74 mum -18.6 cm 2.03 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni + 2 -56.5 mum -20 cm 2.03 cm 137 MeV 2.29 keV 1.36 cm 1.37 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.96 mum -8.49 mm 8.3 mm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 -2.95 mum -8.56 mm 8.3 mm 736 keV 1.12 keV 67.2 mum 67.2 mum World eIoni + 2 -26.6 mum -20 cm 8.29 mm 1.92 GeV 29.9 keV 19.1 cm 19.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.35 mm 6.23 mm 2.55 keV 0 eV 0 fm 0 fm World initStep + 1 -12.3 mum -4.58 mm 6.22 mm 2.48 MeV 2.55 keV 229 mum 229 mum World eIoni + 2 -20.6 mum -5.93 mm 6.22 mm 16 MeV 237 eV 1.35 mm 1.58 mm World eIoni + 3 -36.1 mum -3.46 cm 6.22 mm 302 MeV 5.37 keV 2.86 cm 3.02 cm World eIoni + 4 -50.2 mum -15.9 cm 6.21 mm 1.55 GeV 25.1 keV 12.4 cm 15.5 cm World eIoni + 5 -51.8 mum -20 cm 6.21 mm 1.96 GeV 9.61 keV 4.11 cm 19.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -50.2 mum -15.9 cm 6.21 mm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 -51.9 mum -15.9 cm 6.21 mm 824 keV 1.21 keV 74.9 mum 74.9 mum World eIoni + 2 -57.8 mum -20 cm 6.19 mm 411 MeV 6.1 keV 4.1 cm 4.11 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -36.1 mum -3.46 cm 6.22 mm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -28.3 mum -3.47 cm 6.22 mm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni + 2 -1.84 mum -20 cm 6.23 mm 1.65 GeV 25.5 keV 16.5 cm 16.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.23 cm 1.2 cm 273 MeV 5.94 keV 2.68 cm 2.68 cm World eIoni + 2 -81.8 nm -2.78 cm 1.29 cm 328 MeV 977 eV 5.59 mm 3.24 cm World eIoni + 3 823 nm -4.4 cm 1.5 cm 490 MeV 3.89 keV 1.64 cm 4.88 cm World eIoni + 4 2.94 mum -11.5 cm 1.95 cm 1.2 GeV 13.4 keV 7.1 cm 12 cm World eIoni + 5 4.7 mum -12.3 cm 1.98 cm 1.28 GeV 2.06 keV 8.04 mm 12.8 cm World eIoni + 6 18.9 mum -17.6 cm 2.16 cm 1.81 GeV 11.4 keV 5.35 cm 18.1 cm World eIoni + 7 23.3 mum -20 cm 2.22 cm 2.05 GeV 3.71 keV 2.37 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 18.9 mum -17.6 cm 2.16 cm 2 keV 0 eV 0 fm 0 fm World initStep + 1 28.3 mum -17.7 cm 2.16 cm 1.7 MeV 2 keV 155 mum 155 mum World eIoni + 2 48.4 mum -20 cm 2.16 cm 237 MeV 2.97 keV 2.35 cm 2.37 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.7 mum -12.3 cm 1.98 cm 17.5 keV 0 eV 0 fm 0 fm World initStep + 1 -86 mum -12.6 cm 1.98 cm 30 MeV 4.29 keV 2.89 mm 2.89 mm World eIoni + 2 -94.9 mum -12.9 cm 1.98 cm 59 MeV 455 eV 2.9 mm 5.78 mm World eIoni + 3 -113 mum -14.5 cm 1.98 cm 224 MeV 3.78 keV 1.65 cm 2.23 cm World eIoni + 4 -129 mum -17.4 cm 1.98 cm 511 MeV 5.87 keV 2.86 cm 5.09 cm World eIoni + 5 -137 mum -20 cm 1.98 cm 773 MeV 3.5 keV 2.62 cm 7.72 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -129 mum -17.4 cm 1.98 cm 4.5 keV 0 eV 0 fm 0 fm World initStep + 1 -142 mum -17.4 cm 1.98 cm 6.43 MeV 4.5 keV 602 mum 602 mum World eIoni + 2 -147 mum -17.8 cm 1.98 cm 41.5 MeV 663 eV 3.51 mm 4.11 mm World eIoni + 3 -153 mum -20 cm 1.98 cm 263 MeV 3.1 keV 2.21 cm 2.62 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -113 mum -14.5 cm 1.98 cm 15.9 keV 0 eV 0 fm 0 fm World initStep + 1 -66 mum -14.8 cm 1.99 cm 27.4 MeV 5.03 keV 2.63 mm 2.63 mm World eIoni + 2 -52.6 mum -16.3 cm 1.99 cm 183 MeV 4.09 keV 1.56 cm 1.82 cm World eIoni + 3 -44.7 mum -20 cm 1.99 cm 550 MeV 8.42 keV 3.67 cm 5.49 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.94 mum -11.5 cm 1.95 cm 217 keV 0 eV 0 fm 0 fm World initStep + 1 -188 mum -20 cm 1.98 cm 852 MeV 20.1 keV 8.52 cm 8.52 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 823 nm -4.4 cm 1.5 cm 8.46 keV 0 eV 0 fm 0 fm World initStep + 1 127 nm -4.55 cm 1.49 cm 16.3 MeV 6.46 keV 1.54 mm 1.54 mm World eIoni + 2 -119 nm -5.54 cm 1.49 cm 115 MeV 2.34 keV 9.87 mm 1.14 cm World eIoni + 3 -24.2 mum -17 cm 1.49 cm 1.26 GeV 23.7 keV 11.4 cm 12.6 cm World eIoni + 4 -26.4 mum -20 cm 1.49 cm 1.56 GeV 6.03 keV 3.01 cm 15.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -24.2 mum -17 cm 1.49 cm 3.65 keV 0 eV 0 fm 0 fm World initStep + 1 -22.2 mum -17 cm 1.49 cm 803 keV 293 eV 78.7 mum 78.7 mum World eIoni + 2 -15.4 mum -20 cm 1.49 cm 301 MeV 6.48 keV 3 cm 3.01 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -119 nm -5.54 cm 1.49 cm 17.6 keV 0 eV 0 fm 0 fm World initStep + 1 46.2 mum -5.69 cm 1.49 cm 15.8 MeV 1.57 keV 1.54 mm 1.54 mm World eIoni + 2 89 mum -20 cm 1.5 cm 1.45 GeV 21.1 keV 14.3 cm 14.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -81.8 nm -2.78 cm 1.29 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 -4.24 mum -2.78 cm 1.29 cm 732 keV 1.11 keV 66.7 mum 66.7 mum World eIoni + 2 -24 mum -20 cm 1.29 cm 1.72 GeV 24.9 keV 17.2 cm 17.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.23 cm 1.2 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 745 nm -2.23 cm 1.2 cm 864 keV 1.25 keV 77.9 mum 77.9 mum World eIoni + 2 3.96 mum -20 cm 1.2 cm 1.78 GeV 24.3 keV 17.8 cm 17.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.13 mm 7.72 mm 121 MeV 1.69 keV 1.11 cm 1.11 cm World eIoni + 2 3.24 mum -4.15 cm 1.47 cm 465 MeV 7.69 keV 3.51 cm 4.62 cm World eIoni + 3 -281 nm -13.4 cm 2.02 cm 1.39 GeV 19.6 keV 9.29 cm 13.9 cm World eIoni + 4 -237 nm -18.1 cm 2.17 cm 1.86 GeV 12.4 keV 4.73 cm 18.6 cm World eIoni + 5 -74.2 nm -19.1 cm 2.2 cm 1.96 GeV 1.5 keV 9.53 mm 19.6 cm World eIoni + 6 115 nm -20 cm 2.22 cm 2.05 GeV 2.58 keV 9.04 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -74.2 nm -19.1 cm 2.2 cm 1.56 keV 0 eV 0 fm 0 fm World initStep + 1 -1.89 mum -19.1 cm 2.2 cm 1.18 MeV 1.56 keV 107 mum 107 mum World eIoni + 2 -5.77 mum -20 cm 2.19 cm 90.5 MeV 2 keV 8.93 mm 9.04 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -237 nm -18.1 cm 2.17 cm 1.18 keV 0 eV 0 fm 0 fm World initStep + 1 -5.28 mum -18.2 cm 2.17 cm 799 keV 1.18 keV 72.7 mum 72.7 mum World eIoni + 2 -21 mum -20 cm 2.17 cm 186 MeV 2.92 keV 1.85 cm 1.86 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -281 nm -13.4 cm 2.02 cm 1.54 keV 0 eV 0 fm 0 fm World initStep + 1 -6.66 mum -13.4 cm 2.02 cm 1.16 MeV 1.54 keV 105 mum 105 mum World eIoni + 2 -27 mum -20 cm 2.02 cm 658 MeV 9.93 keV 6.57 cm 6.58 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.24 mum -4.15 cm 1.47 cm 3.01 keV 0 eV 0 fm 0 fm World initStep + 1 19.3 mum -4.18 cm 1.47 cm 3.26 MeV 3.01 keV 302 mum 302 mum World eIoni + 2 28.3 mum -4.33 cm 1.47 cm 18.6 MeV 312 eV 1.53 mm 1.83 mm World eIoni + 3 52.1 mum -18.1 cm 1.47 cm 1.39 GeV 26 keV 13.7 cm 13.9 cm World eIoni + 4 51.9 mum -20 cm 1.47 cm 1.59 GeV 3.98 keV 1.94 cm 15.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 52.1 mum -18.1 cm 1.47 cm 13.7 keV 0 eV 0 fm 0 fm World initStep + 1 68.5 mum -18.1 cm 1.47 cm 1.71 MeV 309 eV 171 mum 171 mum World eIoni + 2 106 mum -20 cm 1.47 cm 194 MeV 2.3 keV 1.93 cm 1.94 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 68.5 mum -18.1 cm 1.47 cm 1.66 keV 0 eV 0 fm 0 fm World initStep + 1 67.6 mum -18.1 cm 1.47 cm 1.29 MeV 1.66 keV 118 mum 118 mum World eIoni + 2 65.6 mum -20 cm 1.47 cm 193 MeV 2.82 keV 1.92 cm 1.93 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.13 mm 7.72 mm 1.7 keV 0 eV 0 fm 0 fm World initStep + 1 -4.89 mum -7.25 mm 7.72 mm 1.36 MeV 1.7 keV 122 mum 122 mum World eIoni + 2 -21.4 mum -20 cm 7.75 mm 1.93 GeV 26.4 keV 19.3 cm 19.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.99 cm 1.55 cm 549 MeV 9.9 keV 5.47 cm 5.47 cm World eIoni + 2 15.7 mum -20 cm 2.22 cm 2.05 GeV 33.1 keV 15 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.99 cm 1.55 cm 14.6 keV 0 eV 0 fm 0 fm World initStep + 1 -75.9 mum -5.23 cm 1.55 cm 25.5 MeV 3.3 keV 2.45 mm 2.45 mm World eIoni + 2 -88.7 mum -5.74 cm 1.55 cm 76.4 MeV 778 eV 5.09 mm 7.54 mm World eIoni + 3 -118 mum -13.3 cm 1.55 cm 831 MeV 12.7 keV 7.54 cm 8.3 cm World eIoni + 4 -120 mum -14 cm 1.55 cm 898 MeV 2.39 keV 6.75 mm 8.97 cm World eIoni + 5 -127 mum -20 cm 1.55 cm 1.5 GeV 14.4 keV 6.05 cm 15 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -120 mum -14 cm 1.55 cm 1.5 keV 0 eV 0 fm 0 fm World initStep + 1 -125 mum -14 cm 1.55 cm 1.12 MeV 1.5 keV 102 mum 102 mum World eIoni + 2 -142 mum -20 cm 1.55 cm 605 MeV 7.67 keV 6.04 cm 6.05 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -118 mum -13.3 cm 1.55 cm 2.25 keV 0 eV 0 fm 0 fm World initStep + 1 -107 mum -13.3 cm 1.55 cm 2.06 MeV 2.25 keV 189 mum 189 mum World eIoni + 2 -86.6 mum -14.7 cm 1.55 cm 146 MeV 1.14 keV 1.44 cm 1.46 cm World eIoni + 3 -79.5 mum -20 cm 1.55 cm 672 MeV 11.6 keV 5.27 cm 6.72 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.95 mm 5.22 mm 79.5 MeV 890 eV 6.2 mm 6.2 mm World eIoni + 2 -7.31 mum -1.22 cm 9.6 mm 172 MeV 2.14 keV 1.03 cm 1.65 cm World eIoni + 3 -10.7 mum -3.01 cm 1.33 cm 351 MeV 3.74 keV 1.83 cm 3.48 cm World eIoni + 4 -15.9 mum -7.39 cm 1.74 cm 789 MeV 8.95 keV 4.4 cm 7.88 cm World eIoni + 5 -17.1 mum -20 cm 2.22 cm 2.05 GeV 28.9 keV 12.6 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -15.9 mum -7.39 cm 1.74 cm 3.59 keV 0 eV 0 fm 0 fm World initStep + 1 -32.8 mum -7.43 cm 1.74 cm 4.39 MeV 3.59 keV 409 mum 409 mum World eIoni + 2 -39.3 mum -7.55 cm 1.74 cm 16.7 MeV 17.9 eV 1.23 mm 1.64 mm World eIoni + 3 -52.5 mum -9.31 cm 1.74 cm 193 MeV 4.59 keV 1.76 cm 1.92 cm World eIoni + 4 -53.7 mum -10.6 cm 1.74 cm 322 MeV 2.48 keV 1.29 cm 3.22 cm World eIoni + 5 -55.7 mum -11.5 cm 1.74 cm 409 MeV 2.68 keV 8.7 mm 4.09 cm World eIoni + 6 -58.2 mum -14.5 cm 1.74 cm 712 MeV 8.51 keV 3.03 cm 7.12 cm World eIoni + 7 -57.2 mum -17.3 cm 1.74 cm 989 MeV 5.45 keV 2.77 cm 9.89 cm World eIoni + 8 -55.1 mum -20 cm 1.74 cm 1.26 GeV 4.78 keV 2.72 cm 12.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -57.2 mum -17.3 cm 1.74 cm 20.2 keV 0 eV 0 fm 0 fm World initStep + 1 -97.5 mum -17.6 cm 1.73 cm 34.4 MeV 3.4 keV 3.32 mm 3.32 mm World eIoni + 2 -105 mum -18.6 cm 1.73 cm 138 MeV 3.05 keV 1.04 cm 1.37 cm World eIoni + 3 -109 mum -20 cm 1.72 cm 274 MeV 3.44 keV 1.36 cm 2.72 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -58.2 mum -14.5 cm 1.74 cm 5.8 keV 0 eV 0 fm 0 fm World initStep + 1 -92.8 mum -14.6 cm 1.74 cm 10 MeV 5.8 keV 942 mum 942 mum World eIoni + 2 -106 mum -15.1 cm 1.74 cm 55.7 MeV 607 eV 4.57 mm 5.51 mm World eIoni + 3 -123 mum -20 cm 1.74 cm 550 MeV 11.9 keV 4.94 cm 5.49 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -55.7 mum -11.5 cm 1.74 cm 4.02 keV 0 eV 0 fm 0 fm World initStep + 1 -68 mum -11.5 cm 1.73 cm 5.28 MeV 4.02 keV 493 mum 493 mum World eIoni + 2 -70.1 mum -11.6 cm 1.73 cm 9.82 MeV 146 eV 454 mum 947 mum World eIoni + 3 -86 mum -20 cm 1.73 cm 853 MeV 14.7 keV 8.43 cm 8.52 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -53.7 mum -10.6 cm 1.74 cm 13.7 keV 0 eV 0 fm 0 fm World initStep + 1 -18 mum -10.8 cm 1.73 cm 24.2 MeV 3.64 keV 2.32 mm 2.32 mm World eIoni + 2 -17 mum -10.9 cm 1.73 cm 29.1 MeV 93.9 eV 488 mum 2.81 mm World eIoni + 3 -2.6 mum -13.9 cm 1.73 cm 329 MeV 8.99 keV 3 cm 3.28 cm World eIoni + 4 -1.3 mum -15.7 cm 1.73 cm 514 MeV 2.86 keV 1.85 cm 5.13 cm World eIoni + 5 -647 nm -16.7 cm 1.73 cm 615 MeV 1.46 keV 1.01 cm 6.14 cm World eIoni + 6 1.46 mum -19 cm 1.73 cm 844 MeV 5.82 keV 2.29 cm 8.43 cm World eIoni + 7 2.06 mum -20 cm 1.73 cm 941 MeV 1.47 keV 9.64 mm 9.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.46 mum -19 cm 1.73 cm 2.64 keV 0 eV 0 fm 0 fm World initStep + 1 916 nm -19.1 cm 1.73 cm 2.63 MeV 2.64 keV 243 mum 243 mum World eIoni + 2 565 nm -19.2 cm 1.73 cm 16.5 MeV 196 eV 1.39 mm 1.63 mm World eIoni + 3 204 nm -20 cm 1.73 cm 96.7 MeV 1.03 keV 8.01 mm 9.65 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -647 nm -16.7 cm 1.73 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 -5.24 mum -16.8 cm 1.73 cm 677 keV 1.05 keV 61.6 mum 61.6 mum World eIoni + 2 -22.6 mum -20 cm 1.73 cm 325 MeV 5.77 keV 3.25 cm 3.25 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.3 mum -15.7 cm 1.73 cm 1.79 keV 0 eV 0 fm 0 fm World initStep + 1 -2.83 mum -15.7 cm 1.73 cm 1.45 MeV 1.79 keV 132 mum 132 mum World eIoni + 2 -6.79 mum -20 cm 1.73 cm 427 MeV 5.22 keV 4.25 cm 4.26 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.6 mum -13.9 cm 1.73 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 1.59 mum -13.9 cm 1.73 cm 680 keV 1.05 keV 61.9 mum 61.9 mum World eIoni + 2 19.3 mum -20 cm 1.72 cm 612 MeV 7.76 keV 6.11 cm 6.12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -52.5 mum -9.31 cm 1.74 cm 1.33 keV 0 eV 0 fm 0 fm World initStep + 1 -57.2 mum -9.32 cm 1.74 cm 941 keV 1.33 keV 85.6 mum 85.6 mum World eIoni + 2 -75.4 mum -20 cm 1.74 cm 1.07 GeV 14.9 keV 10.7 cm 10.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.7 mum -3.01 cm 1.33 cm 1.47 keV 0 eV 0 fm 0 fm World initStep + 1 -7.45 mum -3.02 cm 1.33 cm 1.08 MeV 1.47 keV 98.8 mum 98.8 mum World eIoni + 2 5.12 mum -20 cm 1.32 cm 1.7 GeV 23.4 keV 17 cm 17 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -7.31 mum -1.22 cm 9.6 mm 8.21 keV 0 eV 0 fm 0 fm World initStep + 1 -27.8 mum -1.37 cm 9.65 mm 15.7 MeV 5.89 keV 1.49 mm 1.49 mm World eIoni + 2 -30.2 mum -1.52 cm 9.65 mm 30.8 MeV 168 eV 1.51 mm 3 mm World eIoni + 3 -42.4 mum -8.11 cm 9.68 mm 690 MeV 14.9 keV 6.6 cm 6.9 cm World eIoni + 4 -40.6 mum -15.4 cm 9.68 mm 1.42 GeV 15.2 keV 7.27 cm 14.2 cm World eIoni + 5 -40.8 mum -20 cm 9.69 mm 1.88 GeV 10.8 keV 4.62 cm 18.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -40.6 mum -15.4 cm 9.68 mm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 -35.4 mum -15.4 cm 9.69 mm 839 keV 1.23 keV 76.3 mum 76.3 mum World eIoni + 2 -16.6 mum -20 cm 9.7 mm 462 MeV 6.81 keV 4.61 cm 4.62 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -42.4 mum -8.11 cm 9.68 mm 3.86 keV 0 eV 0 fm 0 fm World initStep + 1 -63.4 mum -8.16 cm 9.68 mm 4.93 MeV 3.86 keV 460 mum 460 mum World eIoni + 2 -78.3 mum -8.71 cm 9.69 mm 60.1 MeV 296 eV 5.51 mm 5.97 mm World eIoni + 3 -83.2 mum -9.43 cm 9.69 mm 132 MeV 972 eV 7.24 mm 1.32 cm World eIoni + 4 -85.9 mum -9.89 cm 9.69 mm 178 MeV 492 eV 4.51 mm 1.77 cm World eIoni + 5 -90.2 mum -11.9 cm 9.68 mm 379 MeV 3.56 keV 2.02 cm 3.79 cm World eIoni + 6 -93.9 mum -20 cm 9.68 mm 1.19 GeV 13.5 keV 8.1 cm 11.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -90.2 mum -11.9 cm 9.68 mm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 -93.8 mum -11.9 cm 9.68 mm 711 keV 1.08 keV 64.6 mum 64.6 mum World eIoni + 2 -109 mum -20 cm 9.66 mm 810 MeV 12.2 keV 8.09 cm 8.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -85.9 mum -9.89 cm 9.69 mm 2.95 keV 0 eV 0 fm 0 fm World initStep + 1 -94.2 mum -9.9 cm 9.7 mm 1.8 MeV 1.42 keV 168 mum 168 mum World eIoni + 2 -112 mum -12.7 cm 9.72 mm 286 MeV 4.04 keV 2.84 cm 2.86 cm World eIoni + 3 -115 mum -17.6 cm 9.72 mm 776 MeV 8.33 keV 4.9 cm 7.76 cm World eIoni + 4 -116 mum -19.5 cm 9.72 mm 957 MeV 5.35 keV 1.81 cm 9.57 cm World eIoni + 5 -116 mum -20 cm 9.72 mm 1.01 GeV 562 eV 5.44 mm 10.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -116 mum -19.5 cm 9.72 mm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 -116 mum -19.5 cm 9.73 mm 993 keV 1.38 keV 90.4 mum 90.4 mum World eIoni + 2 -115 mum -20 cm 9.74 mm 54.5 MeV 573 eV 5.35 mm 5.44 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -115 mum -17.6 cm 9.72 mm 2.91 keV 0 eV 0 fm 0 fm World initStep + 1 -110 mum -17.7 cm 9.74 mm 3.1 MeV 2.91 keV 287 mum 287 mum World eIoni + 2 -108 mum -17.8 cm 9.75 mm 15 MeV 121 eV 1.19 mm 1.48 mm World eIoni + 3 -103 mum -20 cm 9.76 mm 236 MeV 5.22 keV 2.21 cm 2.36 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -112 mum -12.7 cm 9.72 mm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 -114 mum -12.8 cm 9.71 mm 839 keV 1.23 keV 76.3 mum 76.3 mum World eIoni + 2 -122 mum -20 cm 9.69 mm 726 MeV 11.4 keV 7.25 cm 7.26 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -83.2 mum -9.43 cm 9.69 mm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -78.2 mum -9.44 cm 9.69 mm 786 keV 1.17 keV 71.5 mum 71.5 mum World eIoni + 2 -57.3 mum -20 cm 9.7 mm 1.06 GeV 17 keV 10.6 cm 10.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.95 mm 5.22 mm 9.09 keV 0 eV 0 fm 0 fm World initStep + 1 46.9 mum -4.57 mm 5.2 mm 17.4 MeV 5.99 keV 1.65 mm 1.65 mm World eIoni + 2 53.5 mum -6.68 mm 5.2 mm 38.4 MeV 345 eV 2.1 mm 3.75 mm World eIoni + 3 73.2 mum -4.04 cm 5.19 mm 375 MeV 8.72 keV 3.37 cm 3.75 cm World eIoni + 4 82.8 mum -7.16 cm 5.21 mm 687 MeV 7.15 keV 3.12 cm 6.86 cm World eIoni + 5 92.3 mum -15.5 cm 5.22 mm 1.53 GeV 17.9 keV 8.39 cm 15.2 cm World eIoni + 6 94.4 mum -20 cm 5.23 mm 1.97 GeV 9.92 keV 4.46 cm 19.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 92.3 mum -15.5 cm 5.22 mm 2.41 keV 0 eV 0 fm 0 fm World initStep + 1 102 mum -15.6 cm 5.21 mm 2.28 MeV 2.41 keV 209 mum 209 mum World eIoni + 2 118 mum -17.5 cm 5.2 mm 197 MeV 1.48 keV 1.95 cm 1.97 cm World eIoni + 3 121 mum -20 cm 5.2 mm 446 MeV 5.04 keV 2.49 cm 4.46 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 82.8 mum -7.16 cm 5.21 mm 1.67 keV 0 eV 0 fm 0 fm World initStep + 1 90.5 mum -7.17 cm 5.21 mm 1.3 MeV 1.67 keV 119 mum 119 mum World eIoni + 2 116 mum -20 cm 5.22 mm 1.28 GeV 16.9 keV 12.8 cm 12.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 73.2 mum -4.04 cm 5.19 mm 63 keV 0 eV 0 fm 0 fm World initStep + 1 20.9 mum -4.52 cm 5.02 mm 49.4 MeV 2.65 keV 4.86 mm 4.86 mm World eIoni + 2 6.08 mum -7.73 cm 4.97 mm 371 MeV 7.82 keV 3.21 cm 3.7 cm World eIoni + 3 -3.55 mum -16.5 cm 4.95 mm 1.25 GeV 17.5 keV 8.78 cm 12.5 cm World eIoni + 4 -6.11 mum -20 cm 4.94 mm 1.6 GeV 9.29 keV 3.5 cm 16 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 23 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.55 mum -16.5 cm 4.95 mm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 81.3 nm -16.5 cm 4.95 mm 665 keV 1.03 keV 60.5 mum 60.5 mum World eIoni + 2 14.1 mum -20 cm 4.96 mm 350 MeV 3.83 keV 3.49 cm 3.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 23 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.08 mum -7.73 cm 4.97 mm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 6.95 mum -7.74 cm 4.97 mm 851 keV 1.24 keV 77.4 mum 77.4 mum World eIoni + 2 10.5 mum -20 cm 4.94 mm 1.23 GeV 18.2 keV 12.3 cm 12.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.49 cm 1.86 cm 999 MeV 18.2 keV 9.98 cm 9.98 cm World eIoni + 2 -1.02 mum -20 cm 2.22 cm 2.05 GeV 19.5 keV 10.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.49 cm 1.86 cm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 2.38 mum -9.5 cm 1.86 cm 853 keV 1.24 keV 77.7 mum 77.7 mum World eIoni + 2 11.9 mum -20 cm 1.85 cm 1.05 GeV 16.9 keV 10.5 cm 10.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -16.6 cm 2.13 cm 1.71 GeV 38.3 keV 17.1 cm 17.1 cm World eIoni + 2 -277 nm -20 cm 2.22 cm 2.05 GeV 6.32 keV 3.37 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -16.6 cm 2.13 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 2.41 mum -16.6 cm 2.13 cm 728 keV 1.1 keV 66.1 mum 66.1 mum World eIoni + 2 11.2 mum -20 cm 2.13 cm 337 MeV 6.84 keV 3.36 cm 3.37 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -924 mum 3.01 mm 59.2 MeV 342 eV 3.19 mm 3.19 mm World eIoni + 2 1.25 mum -1.95 cm 1.14 cm 245 MeV 4.26 keV 2.08 cm 2.4 cm World eIoni + 3 -200 nm -20 cm 2.22 cm 2.05 GeV 37.2 keV 18.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.25 mum -1.95 cm 1.14 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 3.54 mum -1.96 cm 1.14 cm 785 keV 1.17 keV 71.8 mum 71.8 mum World eIoni + 2 14.2 mum -20 cm 1.14 cm 1.81 GeV 24.2 keV 18 cm 18.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -924 mum 3.01 mm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 -1.11 mum -989 mum 3.01 mm 705 keV 1.09 keV 65 mum 65 mum World eIoni + 2 -6.84 mum -20 cm 3 mm 1.99 GeV 26.5 keV 19.9 cm 19.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.14 mm 3.34 mm 61.4 MeV 205 eV 3.58 mm 3.58 mm World eIoni + 2 11.5 mum -6.36 cm 1.67 cm 686 MeV 11.2 keV 6.48 cm 6.84 cm World eIoni + 3 27.4 mum -15.9 cm 2.11 cm 1.64 GeV 20.3 keV 9.51 cm 16.4 cm World eIoni + 4 32.6 mum -20 cm 2.22 cm 2.05 GeV 8.84 keV 4.14 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 27.4 mum -15.9 cm 2.11 cm 2.8 keV 0 eV 0 fm 0 fm World initStep + 1 14 mum -15.9 cm 2.11 cm 2.9 MeV 2.8 keV 268 mum 268 mum World eIoni + 2 -5.21 mum -17.4 cm 2.11 cm 158 MeV 2.74 keV 1.55 cm 1.58 cm World eIoni + 3 -9.89 mum -20 cm 2.11 cm 415 MeV 6.19 keV 2.57 cm 4.14 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 11.5 mum -6.36 cm 1.67 cm 24.8 keV 0 eV 0 fm 0 fm World initStep + 1 -11.3 mum -6.37 cm 1.67 cm 973 keV 43.9 eV 101 mum 101 mum World eIoni + 2 -107 mum -20 cm 1.67 cm 1.36 GeV 18.5 keV 13.6 cm 13.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.14 mm 3.34 mm 1.88 keV 0 eV 0 fm 0 fm World initStep + 1 -9.49 mum -1.28 mm 3.34 mm 1.56 MeV 1.88 keV 143 mum 143 mum World eIoni + 2 -40 mum -20 cm 3.34 mm 1.99 GeV 24.4 keV 19.9 cm 19.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.41 cm 1.01 cm 191 MeV 2.12 keV 1.85 cm 1.85 cm World eIoni + 2 -2.17 mum -1.99 cm 1.15 cm 249 MeV 1.53 keV 5.91 mm 2.44 cm World eIoni + 3 -10.4 mum -16.6 cm 2.13 cm 1.71 GeV 24.5 keV 14.6 cm 17.1 cm World eIoni + 4 -10.5 mum -19 cm 2.2 cm 1.95 GeV 5.27 keV 2.43 cm 19.5 cm World eIoni + 5 -10.9 mum -20 cm 2.23 cm 2.05 GeV 1.24 keV 1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.5 mum -19 cm 2.2 cm 5.2 keV 0 eV 0 fm 0 fm World initStep + 1 18.8 mum -19.1 cm 2.2 cm 8.24 MeV 5.2 keV 774 mum 774 mum World eIoni + 2 33.7 mum -19.7 cm 2.2 cm 72.1 MeV 696 eV 6.39 mm 7.16 mm World eIoni + 3 36 mum -20 cm 2.2 cm 101 MeV 152 eV 2.85 mm 1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.4 mum -16.6 cm 2.13 cm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 -17.8 mum -16.6 cm 2.13 cm 1.22 MeV 1.6 keV 112 mum 112 mum World eIoni + 2 -37.9 mum -20 cm 2.13 cm 343 MeV 5.75 keV 3.42 cm 3.43 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.17 mum -1.99 cm 1.15 cm 1.47 keV 0 eV 0 fm 0 fm World initStep + 1 -9.18 mum -2 cm 1.15 cm 1.08 MeV 1.47 keV 98.6 mum 98.6 mum World eIoni + 2 -36.2 mum -20 cm 1.15 cm 1.8 GeV 22.3 keV 18 cm 18 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.41 cm 1.01 cm 68.2 keV 0 eV 0 fm 0 fm World initStep + 1 68.5 mum -3.23 cm 9.96 mm 183 MeV 7.22 keV 1.82 cm 1.82 cm World eIoni + 2 68.9 mum -3.31 cm 9.96 mm 192 MeV 626 eV 848 mum 1.91 cm World eIoni + 3 69.5 mum -3.47 cm 9.95 mm 207 MeV 408 eV 1.53 mm 2.06 cm World eIoni + 4 78.6 mum -12.2 cm 9.91 mm 1.08 GeV 18.2 keV 8.71 cm 10.8 cm World eIoni + 5 75.8 mum -20 cm 9.9 mm 1.86 GeV 15.5 keV 7.82 cm 18.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 78.6 mum -12.2 cm 9.91 mm 12.7 keV 0 eV 0 fm 0 fm World initStep + 1 144 mum -12.4 cm 9.89 mm 22.6 MeV 5.18 keV 2.16 mm 2.16 mm World eIoni + 2 145 mum -12.4 cm 9.89 mm 25.4 MeV 0 eV 275 mum 2.44 mm World eIoni + 3 181 mum -20 cm 9.87 mm 784 MeV 14.6 keV 7.58 cm 7.83 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 69.5 mum -3.47 cm 9.95 mm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 73.4 mum -3.47 cm 9.96 mm 687 keV 1.06 keV 62.5 mum 62.5 mum World eIoni + 2 92.3 mum -20 cm 9.97 mm 1.65 GeV 29.1 keV 16.5 cm 16.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -12.1 cm 1.98 cm 1.26 GeV 25.3 keV 12.6 cm 12.6 cm World eIoni + 2 -286 nm -13 cm 2.01 cm 1.35 GeV 1.92 keV 8.89 mm 13.5 cm World eIoni + 3 -910 nm -20 cm 2.22 cm 2.05 GeV 17.1 keV 7.01 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -286 nm -13 cm 2.01 cm 5.41 keV 0 eV 0 fm 0 fm World initStep + 1 -11.9 mum -13.1 cm 2.01 cm 8.86 MeV 5.41 keV 833 mum 833 mum World eIoni + 2 -13 mum -13.1 cm 2.01 cm 13.8 MeV 38.1 eV 490 mum 1.32 mm World eIoni + 3 -23.6 mum -20 cm 2.02 cm 701 MeV 10.6 keV 6.87 cm 7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.1 cm 1.98 cm 7.32 keV 0 eV 0 fm 0 fm World initStep + 1 21.7 mum -12.2 cm 1.97 cm 14 MeV 4.56 keV 1.33 mm 1.33 mm World eIoni + 2 23.2 mum -12.3 cm 1.97 cm 20.4 MeV 142 eV 636 mum 1.96 mm World eIoni + 3 38.5 mum -20 cm 1.97 cm 790 MeV 14.5 keV 7.7 cm 7.89 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.71 cm 1.42 cm 421 MeV 7.33 keV 4.18 cm 4.18 cm World eIoni + 2 -79.3 nm -3.95 cm 1.45 cm 445 MeV 921 eV 2.46 mm 4.43 cm World eIoni + 3 4.06 mum -11 cm 1.93 cm 1.15 GeV 15.9 keV 7.05 cm 11.5 cm World eIoni + 4 5.35 mum -20 cm 2.22 cm 2.05 GeV 16.8 keV 9.02 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.06 mum -11 cm 1.93 cm 1.75 keV 0 eV 0 fm 0 fm World initStep + 1 8.48 mum -11 cm 1.93 cm 1.4 MeV 1.75 keV 128 mum 128 mum World eIoni + 2 21.5 mum -20 cm 1.93 cm 902 MeV 15.3 keV 9.01 cm 9.02 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -79.3 nm -3.95 cm 1.45 cm 3.28 keV 0 eV 0 fm 0 fm World initStep + 1 -17.7 mum -3.99 cm 1.45 cm 3.76 MeV 3.28 keV 349 mum 349 mum World eIoni + 2 -36.3 mum -4.99 cm 1.45 cm 104 MeV 538 eV 1 cm 1.04 cm World eIoni + 3 -52.1 mum -20 cm 1.45 cm 1.6 GeV 30.8 keV 15 cm 16 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.71 cm 1.42 cm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 2.26 mum -3.72 cm 1.42 cm 779 keV 1.16 keV 70.5 mum 70.5 mum World eIoni + 2 12.5 mum -20 cm 1.42 cm 1.63 GeV 24.5 keV 16.3 cm 16.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 39.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.47 cm 1.86 cm 997 MeV 19.3 keV 9.97 cm 9.97 cm World eIoni + 2 -11.2 mum -20 cm 2.22 cm 2.05 GeV 21.1 keV 10.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.47 cm 1.86 cm 26.7 keV 0 eV 0 fm 0 fm World initStep + 1 103 mum -9.79 cm 1.86 cm 32.9 MeV 2.83 keV 3.19 mm 3.19 mm World eIoni + 2 117 mum -10.3 cm 1.86 cm 81 MeV 1.08 keV 4.82 mm 8.01 mm World eIoni + 3 159 mum -16.4 cm 1.86 cm 690 MeV 12.6 keV 6.09 cm 6.89 cm World eIoni + 4 166 mum -18.8 cm 1.86 cm 935 MeV 3.73 keV 2.45 cm 9.34 cm World eIoni + 5 167 mum -20 cm 1.86 cm 1.05 GeV 1.8 keV 1.19 cm 10.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 166 mum -18.8 cm 1.86 cm 2.65 keV 0 eV 0 fm 0 fm World initStep + 1 177 mum -18.8 cm 1.86 cm 2.65 MeV 2.65 keV 244 mum 244 mum World eIoni + 2 182 mum -18.9 cm 1.86 cm 10.1 MeV 43 eV 750 mum 994 mum World eIoni + 3 192 mum -20 cm 1.86 cm 119 MeV 1.18 keV 1.09 cm 1.19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 159 mum -16.4 cm 1.86 cm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 154 mum -16.4 cm 1.86 cm 675 keV 1.04 keV 61.4 mum 61.4 mum World eIoni + 2 135 mum -20 cm 1.86 cm 364 MeV 6.22 keV 3.63 cm 3.64 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 117 mum -10.3 cm 1.86 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 111 mum -10.3 cm 1.86 cm 880 keV 1.27 keV 80.1 mum 80.1 mum World eIoni + 2 88.3 mum -20 cm 1.86 cm 973 MeV 16.4 keV 9.72 cm 9.73 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.05 mm 3.2 mm 60.5 MeV 507 eV 3.42 mm 3.42 mm World eIoni + 2 -9.17 mum -3.32 cm 1.37 cm 382 MeV 7.53 keV 3.45 cm 3.79 cm World eIoni + 3 -18.4 mum -20 cm 2.22 cm 2.05 GeV 31.8 keV 16.7 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -9.17 mum -3.32 cm 1.37 cm 1.3 keV 0 eV 0 fm 0 fm World initStep + 1 -7.33 mum -3.33 cm 1.37 cm 910 keV 1.3 keV 83.1 mum 83.1 mum World eIoni + 2 457 nm -20 cm 1.37 cm 1.67 GeV 27 keV 16.7 cm 16.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.05 mm 3.2 mm 2 keV 0 eV 0 fm 0 fm World initStep + 1 10 mum -1.2 mm 3.2 mm 1.71 MeV 2 keV 156 mum 156 mum World eIoni + 2 37.2 mum -9.45 cm 3.21 mm 934 MeV 10.6 keV 9.33 cm 9.34 cm World eIoni + 3 37.4 mum -20 cm 3.21 mm 1.99 GeV 23.7 keV 10.6 cm 19.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 37.2 mum -9.45 cm 3.21 mm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 45.1 mum -9.46 cm 3.21 mm 1.23 MeV 1.6 keV 112 mum 112 mum World eIoni + 2 71.3 mum -20 cm 3.2 mm 1.06 GeV 14.8 keV 10.5 cm 10.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.39 mm 8.64 mm 144 MeV 3.67 keV 1.35 cm 1.35 cm World eIoni + 2 -8.36 mum -12.6 cm 2 cm 1.31 GeV 24 keV 11.8 cm 13.1 cm World eIoni + 3 -10.9 mum -16.7 cm 2.13 cm 1.72 GeV 7.15 keV 4.01 cm 17.2 cm World eIoni + 4 -12.9 mum -20 cm 2.22 cm 2.05 GeV 8.83 keV 3.34 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -10.9 mum -16.7 cm 2.13 cm 1.78 keV 0 eV 0 fm 0 fm World initStep + 1 -7.58 mum -16.7 cm 2.13 cm 1.44 MeV 1.78 keV 131 mum 131 mum World eIoni + 2 756 nm -20 cm 2.13 cm 334 MeV 5.08 keV 3.33 cm 3.34 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -8.36 mum -12.6 cm 2 cm 14.3 keV 0 eV 0 fm 0 fm World initStep + 1 19.6 mum -12.8 cm 1.99 cm 14.4 MeV 2.8 keV 1.39 mm 1.39 mm World eIoni + 2 39.3 mum -16.6 cm 1.99 cm 397 MeV 5.21 keV 3.83 cm 3.97 cm World eIoni + 3 42.4 mum -20 cm 1.99 cm 736 MeV 8.39 keV 3.39 cm 7.35 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 39.3 mum -16.6 cm 1.99 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 40.5 mum -16.6 cm 1.99 cm 640 keV 1.01 keV 58.2 mum 58.2 mum World eIoni + 2 45.2 mum -20 cm 1.99 cm 339 MeV 5.08 keV 3.38 cm 3.39 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.39 mm 8.64 mm 3.52 keV 0 eV 0 fm 0 fm World initStep + 1 12.1 mum -9.77 mm 8.66 mm 4.25 MeV 3.52 keV 395 mum 395 mum World eIoni + 2 19.8 mum -1.3 cm 8.67 mm 36.2 MeV 459 eV 3.2 mm 3.59 mm World eIoni + 3 31.2 mum -7.35 cm 8.68 mm 642 MeV 8.52 keV 6.06 cm 6.42 cm World eIoni + 4 34.2 mum -20 cm 8.69 mm 1.91 GeV 29.9 keV 12.6 cm 19.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 31.2 mum -7.35 cm 8.68 mm 3.49 keV 0 eV 0 fm 0 fm World initStep + 1 34.3 mum -7.39 cm 8.66 mm 4.19 MeV 3.49 keV 389 mum 389 mum World eIoni + 2 35.5 mum -7.5 cm 8.65 mm 15.3 MeV 69.6 eV 1.12 mm 1.5 mm World eIoni + 3 39.6 mum -20 cm 8.63 mm 1.26 GeV 17.7 keV 12.5 cm 12.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.9 cm 1.88 cm 1.04 GeV 18.3 keV 10.4 cm 10.4 cm World eIoni + 2 2.75 mum -20 cm 2.22 cm 2.05 GeV 24 keV 10.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.9 cm 1.88 cm 2.98 keV 0 eV 0 fm 0 fm World initStep + 1 -6.05 mum -9.91 cm 1.88 cm 693 keV 671 eV 67.7 mum 67.7 mum World eIoni + 2 -31.7 mum -15.8 cm 1.88 cm 592 MeV 11.7 keV 5.91 cm 5.92 cm World eIoni + 3 -37.2 mum -17.4 cm 1.87 cm 746 MeV 4.46 keV 1.54 cm 7.46 cm World eIoni + 4 -44.4 mum -20 cm 1.88 cm 1.01 GeV 6 keV 2.64 cm 10.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -37.2 mum -17.4 cm 1.87 cm 21.3 keV 0 eV 0 fm 0 fm World initStep + 1 -36 mum -17.7 cm 1.86 cm 36.6 MeV 3.55 keV 3.53 mm 3.53 mm World eIoni + 2 -35.9 mum -18.2 cm 1.86 cm 84.1 MeV 1.45 keV 4.75 mm 8.28 mm World eIoni + 3 -40 mum -18.6 cm 1.86 cm 130 MeV 1.83 keV 4.58 mm 1.29 cm World eIoni + 4 -41.8 mum -20 cm 1.86 cm 265 MeV 3.93 keV 1.36 cm 2.64 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -40 mum -18.6 cm 1.86 cm 141 keV 0 eV 0 fm 0 fm World initStep + 1 -86.6 mum -20 cm 1.84 cm 136 MeV 5.16 keV 1.36 cm 1.36 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -35.9 mum -18.2 cm 1.86 cm 13.2 keV 0 eV 0 fm 0 fm World initStep + 1 24.7 mum -18.4 cm 1.87 cm 23.4 MeV 5 keV 2.23 mm 2.23 mm World eIoni + 2 40.6 mum -19.4 cm 1.87 cm 121 MeV 1.35 keV 9.78 mm 1.2 cm World eIoni + 3 42.8 mum -20 cm 1.87 cm 183 MeV 1.33 keV 6.16 mm 1.82 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 40.6 mum -19.4 cm 1.87 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 45.9 mum -19.4 cm 1.87 cm 734 keV 1.11 keV 66.8 mum 66.8 mum World eIoni + 2 59.4 mum -20 cm 1.87 cm 61.7 MeV 881 eV 6.1 mm 6.16 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -31.7 mum -15.8 cm 1.88 cm 40.5 keV 0 eV 0 fm 0 fm World initStep + 1 137 mum -16.6 cm 1.88 cm 81.7 MeV 4.16 keV 8.03 mm 8.03 mm World eIoni + 2 146 mum -17.1 cm 1.88 cm 133 MeV 1.01 keV 5.08 mm 1.31 cm World eIoni + 3 168 mum -20 cm 1.88 cm 420 MeV 6.02 keV 2.88 cm 4.19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -6.5 cm 1.68 cm 700 MeV 13.8 keV 6.99 cm 6.99 cm World eIoni + 2 10.3 nm -6.84 cm 1.7 cm 734 MeV 466 eV 3.41 mm 7.33 cm World eIoni + 3 -4.63 mum -15 cm 2.08 cm 1.55 GeV 16 keV 8.13 cm 15.5 cm World eIoni + 4 -7.91 mum -20 cm 2.22 cm 2.05 GeV 8.27 keV 5.04 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -4.63 mum -15 cm 2.08 cm 4.71 keV 0 eV 0 fm 0 fm World initStep + 1 16.2 mum -15 cm 2.08 cm 6.94 MeV 4.71 keV 651 mum 651 mum World eIoni + 2 31.2 mum -16.1 cm 2.08 cm 119 MeV 1.26 keV 1.13 cm 1.19 cm World eIoni + 3 34.6 mum -17.2 cm 2.07 cm 227 MeV 2.8 keV 1.07 cm 2.26 cm World eIoni + 4 44 mum -20 cm 2.07 cm 504 MeV 6.72 keV 2.78 cm 5.04 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 34.6 mum -17.2 cm 2.07 cm 4.16 keV 0 eV 0 fm 0 fm World initStep + 1 11.6 mum -17.3 cm 2.08 cm 5.61 MeV 4.16 keV 524 mum 524 mum World eIoni + 2 -4.4 mum -17.9 cm 2.08 cm 72.4 MeV 1.08 keV 6.68 mm 7.2 mm World eIoni + 3 -12.9 mum -20 cm 2.08 cm 274 MeV 2.85 keV 2.02 cm 2.74 cm World eIoni + 4 -13 mum -20 cm 2.08 cm 278 MeV 117 eV 392 mum 2.78 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -12.9 mum -20 cm 2.08 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 -14.4 mum -20 cm 2.08 cm 734 keV 1.11 keV 66.8 mum 66.8 mum World eIoni + 2 -15.3 mum -20 cm 2.07 cm 4 MeV 42.8 eV 327 mum 394 mumOutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 10.3 nm -6.84 cm 1.7 cm 6.28 keV 0 eV 0 fm 0 fm World initStep + 1 30.7 mum -6.95 cm 1.7 cm 11.4 MeV 6.28 keV 1.07 mm 1.07 mm World eIoni + 2 33.9 mum -7.03 cm 1.7 cm 19.1 MeV 333 eV 767 mum 1.84 mm World eIoni + 3 61.1 mum -20 cm 1.7 cm 1.32 GeV 24.5 keV 13 cm 13.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.5 cm 1.68 cm 2.64 keV 0 eV 0 fm 0 fm World initStep + 1 -580 nm -6.53 cm 1.68 cm 2.64 MeV 2.64 keV 243 mum 243 mum World eIoni + 2 -1.11 mum -6.85 cm 1.68 cm 34.9 MeV 153 eV 3.23 mm 3.47 mm World eIoni + 3 -1.87 mum -20 cm 1.68 cm 1.35 GeV 20.8 keV 13.2 cm 13.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -11.3 cm 1.94 cm 1.18 GeV 22.9 keV 11.8 cm 11.8 cm World eIoni + 2 2.05 mum -20 cm 2.22 cm 2.05 GeV 24 keV 8.72 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -11.3 cm 1.94 cm 1.35 keV 0 eV 0 fm 0 fm World initStep + 1 -6.53 mum -11.3 cm 1.94 cm 960 keV 1.35 keV 87.3 mum 87.3 mum World eIoni + 2 -30.5 mum -20 cm 1.94 cm 871 MeV 13.3 keV 8.7 cm 8.71 cm OutOfWorldTransportation ---> Begin of Event: 50 @@ -2609,27 +2646,17 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.01 cm 1.56 cm 551 MeV 10.3 keV 5.49 cm 5.49 cm World eIoni - 2 -2.21 mum -13.1 cm 2.01 cm 1.36 GeV 18.5 keV 8.08 cm 13.6 cm World eIoni - 3 -1.52 mum -20 cm 2.22 cm 2.05 GeV 11.4 keV 6.92 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.21 mum -13.1 cm 2.01 cm 1.69 keV 0 eV 0 fm 0 fm World initStep - 1 -10.6 mum -13.1 cm 2.01 cm 1.34 MeV 1.69 keV 122 mum 122 mum World eIoni - 2 -35.5 mum -20 cm 2.01 cm 692 MeV 14 keV 6.91 cm 6.92 cm OutOfWorldTransportation + 1 0 fm -4.52 cm 1.51 cm 502 MeV 9.38 keV 5 cm 5 cm World eIoni + 2 -1.8 mum -20 cm 2.22 cm 2.05 GeV 29.5 keV 15.5 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.01 cm 1.56 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 3.68 mum -5.02 cm 1.56 cm 663 keV 1.03 keV 60.1 mum 60.1 mum World eIoni - 2 21.6 mum -20 cm 1.56 cm 1.5 GeV 25.7 keV 15 cm 15 cm OutOfWorldTransportation + 0 0 fm -4.52 cm 1.51 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 2.56 mum -4.53 cm 1.51 cm 1.29 MeV 1.65 keV 117 mum 117 mum World eIoni + 2 11.3 mum -20 cm 1.51 cm 1.55 GeV 23.3 keV 15.5 cm 15.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2637,27 +2664,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -8.25 cm 1.79 cm 875 MeV 18.8 keV 8.74 cm 8.74 cm World eIoni - 2 66.9 nm -11.7 cm 1.96 cm 1.22 GeV 8.16 keV 3.45 cm 12.2 cm World eIoni - 3 1.27 mum -20 cm 2.22 cm 2.05 GeV 15.8 keV 8.3 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 66.9 nm -11.7 cm 1.96 cm 1.19 keV 0 eV 0 fm 0 fm World initStep - 1 -3.41 mum -11.7 cm 1.96 cm 807 keV 1.19 keV 73.3 mum 73.3 mum World eIoni - 2 -17.3 mum -20 cm 1.96 cm 830 MeV 13.4 keV 8.29 cm 8.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.25 cm 1.79 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -324 nm -8.26 cm 1.79 cm 790 keV 1.17 keV 72 mum 72 mum World eIoni - 2 -1.68 mum -20 cm 1.79 cm 1.17 GeV 17.5 keV 11.7 cm 11.7 cm OutOfWorldTransportation + 1 0 fm -20 cm 2.22 cm 2.05 GeV 40.3 keV 20.5 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2665,17 +2672,28 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.72 cm 1.09 cm 222 MeV 5.08 keV 2.17 cm 2.17 cm World eIoni - 2 63.9 nm -20 cm 2.22 cm 2.05 GeV 42 keV 18.3 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -4.42 cm 1.5 cm 492 MeV 8.56 keV 4.9 cm 4.9 cm World eIoni + 2 1.95 mum -20 cm 2.22 cm 2.05 GeV 34.1 keV 15.6 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.72 cm 1.09 cm 2.01 keV 0 eV 0 fm 0 fm World initStep - 1 -63.3 nm -1.73 cm 1.09 cm 1.71 MeV 2.01 keV 157 mum 157 mum World eIoni - 2 -257 nm -20 cm 1.09 cm 1.83 GeV 23.9 keV 18.3 cm 18.3 cm OutOfWorldTransportation + 0 0 fm -4.42 cm 1.5 cm 23.7 keV 0 eV 0 fm 0 fm World initStep + 1 -10.5 mum -4.81 cm 1.49 cm 41.1 MeV 3.77 keV 3.97 mm 3.97 mm World eIoni + 2 -11.1 mum -5.03 cm 1.49 cm 63.5 MeV 250 eV 2.24 mm 6.21 mm World eIoni + 3 -15.3 mum -16.8 cm 1.48 cm 1.24 GeV 26.2 keV 11.8 cm 12.4 cm World eIoni + 4 -16.2 mum -20 cm 1.48 cm 1.56 GeV 7.65 keV 3.16 cm 15.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -15.3 mum -16.8 cm 1.48 cm 1.91 keV 0 eV 0 fm 0 fm World initStep + 1 -9.02 mum -16.9 cm 1.48 cm 1.59 MeV 1.91 keV 145 mum 145 mum World eIoni + 2 5.51 mum -20 cm 1.48 cm 316 MeV 5.11 keV 3.14 cm 3.16 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2683,38 +2701,7 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.38 cm 1.74 cm 788 MeV 16.8 keV 7.86 cm 7.86 cm World eIoni - 2 1.19 mum -10.8 cm 1.92 cm 1.13 GeV 4.6 keV 3.41 cm 11.3 cm World eIoni - 3 2.07 mum -17.3 cm 2.15 cm 1.78 GeV 13.3 keV 6.53 cm 17.8 cm World eIoni - 4 3.12 mum -20 cm 2.22 cm 2.05 GeV 7.66 keV 2.69 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.07 mum -17.3 cm 2.15 cm 3.55 keV 0 eV 0 fm 0 fm World initStep - 1 -15.8 mum -17.4 cm 2.15 cm 4.3 MeV 3.55 keV 400 mum 400 mum World eIoni - 2 -28.9 mum -17.8 cm 2.15 cm 50.2 MeV 1.18 keV 4.59 mm 4.99 mm World eIoni - 3 -38.3 mum -20 cm 2.15 cm 269 MeV 3.46 keV 2.19 cm 2.69 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.19 mum -10.8 cm 1.92 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 3.29 mum -10.8 cm 1.92 cm 672 keV 1.04 keV 61 mum 61 mum World eIoni - 2 12.6 mum -20 cm 1.92 cm 922 MeV 13.7 keV 9.21 cm 9.22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.38 cm 1.74 cm 1.16 keV 0 eV 0 fm 0 fm World initStep - 1 -5.32 mum -7.38 cm 1.74 cm 777 keV 1.16 keV 70.7 mum 70.7 mum World eIoni - 2 -27.8 mum -20 cm 1.74 cm 1.26 GeV 19.8 keV 12.6 cm 12.6 cm OutOfWorldTransportation + 1 0 fm -20 cm 2.22 cm 2.05 GeV 42.9 keV 20.5 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2722,321 +2709,315 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -10.9 cm 1.92 cm 1.14 GeV 21.9 keV 11.4 cm 11.4 cm World eIoni - 2 1.1 mum -17.2 cm 2.15 cm 1.77 GeV 14.8 keV 6.3 cm 17.7 cm World eIoni - 3 2.27 mum -20 cm 2.22 cm 2.05 GeV 6.6 keV 2.84 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -3 cm 1.33 cm 350 MeV 7.57 keV 3.47 cm 3.47 cm World eIoni + 2 5.18 mum -13.4 cm 2.03 cm 1.39 GeV 20.6 keV 10.5 cm 13.9 cm World eIoni + 3 8.36 mum -20 cm 2.22 cm 2.05 GeV 11.5 keV 6.56 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.1 mum -17.2 cm 2.15 cm 4.19 keV 0 eV 0 fm 0 fm World initStep - 1 -18.1 mum -17.2 cm 2.14 cm 5.69 MeV 4.19 keV 532 mum 532 mum World eIoni - 2 -21.2 mum -17.3 cm 2.14 cm 10.5 MeV 487 eV 481 mum 1.01 mm World eIoni - 3 -36.6 mum -18.7 cm 2.14 cm 158 MeV 3.22 keV 1.48 cm 1.58 cm World eIoni - 4 -36.4 mum -20 cm 2.14 cm 285 MeV 1.94 keV 1.26 cm 2.84 cm OutOfWorldTransportation + 0 5.18 mum -13.4 cm 2.03 cm 2.05 keV 0 eV 0 fm 0 fm World initStep + 1 -5.06 mum -13.5 cm 2.03 cm 1.77 MeV 2.05 keV 163 mum 163 mum World eIoni + 2 -27.8 mum -16.5 cm 2.03 cm 308 MeV 3.26 keV 3.07 cm 3.08 cm World eIoni + 3 -26.8 mum -19.9 cm 2.03 cm 644 MeV 6.75 keV 3.36 cm 6.44 cm World eIoni + 4 -26.7 mum -20 cm 2.03 cm 656 MeV 219 eV 1.18 mm 6.56 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -26.8 mum -19.9 cm 2.03 cm 5.35 keV 0 eV 0 fm 0 fm World initStep + 1 -52.2 mum -20 cm 2.03 cm 8.69 MeV 5.35 keV 816 mum 816 mum World eIoni + 2 -53.7 mum -20 cm 2.03 cm 12.4 MeV 39.7 eV 372 mum 1.19 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -36.6 mum -18.7 cm 2.14 cm 12 keV 0 eV 0 fm 0 fm World initStep - 1 -83.1 mum -19.1 cm 2.13 cm 36.6 MeV 12 keV 3.48 mm 3.48 mm World eIoni - 2 -88.7 mum -19.7 cm 2.13 cm 102 MeV 2.17 keV 6.5 mm 9.98 mm World eIoni - 3 -90.1 mum -20 cm 2.13 cm 129 MeV 515 eV 2.69 mm 1.27 cm OutOfWorldTransportation + 0 -27.8 mum -16.5 cm 2.03 cm 3.36 keV 0 eV 0 fm 0 fm World initStep + 1 -46 mum -16.6 cm 2.03 cm 3.93 MeV 3.36 keV 365 mum 365 mum World eIoni + 2 -53.6 mum -16.7 cm 2.03 cm 15.4 MeV 151 eV 1.15 mm 1.51 mm World eIoni + 3 -71.7 mum -20 cm 2.03 cm 348 MeV 4.34 keV 3.33 cm 3.48 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.9 cm 1.92 cm 1.74 keV 0 eV 0 fm 0 fm World initStep - 1 -5.16 mum -10.9 cm 1.92 cm 1.4 MeV 1.74 keV 127 mum 127 mum World eIoni - 2 -20.5 mum -20 cm 1.93 cm 914 MeV 15.8 keV 9.13 cm 9.14 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.01 cm 1.16 cm 251 MeV 4.05 keV 2.47 cm 2.47 cm World eIoni - 2 -7.76 mum -18.5 cm 2.18 cm 1.9 GeV 31.7 keV 16.6 cm 19 cm World eIoni - 3 -8.21 mum -20 cm 2.22 cm 2.05 GeV 4.94 keV 1.48 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -7.76 mum -18.5 cm 2.18 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 -4.29 mum -18.5 cm 2.18 cm 749 keV 1.13 keV 68 mum 68 mum World eIoni - 2 6.38 mum -20 cm 2.18 cm 148 MeV 3.71 keV 1.47 cm 1.48 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.01 cm 1.16 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 7.34 mum -2.02 cm 1.16 cm 1.17 MeV 1.55 keV 106 mum 106 mum World eIoni - 2 34.5 mum -20 cm 1.16 cm 1.8 GeV 27.6 keV 18 cm 18 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.83 cm 1.54 cm 533 MeV 8.09 keV 5.31 cm 5.31 cm World eIoni - 2 993 nm -15.6 cm 2.1 cm 1.61 GeV 20.5 keV 10.8 cm 16.1 cm World eIoni - 3 1.82 mum -20 cm 2.22 cm 2.05 GeV 9.28 keV 4.43 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 993 nm -15.6 cm 2.1 cm 1.72 keV 0 eV 0 fm 0 fm World initStep - 1 -4.12 mum -15.6 cm 2.1 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni - 2 -17.9 mum -20 cm 2.1 cm 443 MeV 6.2 keV 4.42 cm 4.43 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.83 cm 1.54 cm 2.24 keV 0 eV 0 fm 0 fm World initStep - 1 -2.18 mum -4.85 cm 1.54 cm 2.05 MeV 2.24 keV 187 mum 187 mum World eIoni - 2 -4.84 mum -5.3 cm 1.54 cm 47.9 MeV 377 eV 4.59 mm 4.78 mm World eIoni - 3 -8.05 mum -20 cm 1.54 cm 1.52 GeV 23.5 keV 14.7 cm 15.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.53 cm 1.05 cm 203 MeV 5.24 keV 1.97 cm 1.97 cm World eIoni - 2 3.78 mum -4.65 cm 1.52 cm 515 MeV 7.09 keV 3.16 cm 5.13 cm World eIoni - 3 5.35 mum -5.79 cm 1.62 cm 629 MeV 1.82 keV 1.14 cm 6.27 cm World eIoni - 4 7.88 mum -11.1 cm 1.93 cm 1.16 GeV 8.95 keV 5.29 cm 11.6 cm World eIoni - 5 10.5 mum -20 cm 2.22 cm 2.05 GeV 15.6 keV 8.93 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 7.88 mum -11.1 cm 1.93 cm 1.34 keV 0 eV 0 fm 0 fm World initStep - 1 7.11 mum -11.1 cm 1.93 cm 951 keV 1.34 keV 86.6 mum 86.6 mum World eIoni - 2 4.22 mum -20 cm 1.93 cm 893 MeV 14.3 keV 8.92 cm 8.93 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.35 mum -5.79 cm 1.62 cm 14 keV 0 eV 0 fm 0 fm World initStep - 1 41.7 mum -6.25 cm 1.63 cm 49 MeV 14 keV 4.66 mm 4.66 mm World eIoni - 2 42.3 mum -6.33 cm 1.63 cm 57 MeV 785 eV 796 mum 5.46 mm World eIoni - 3 53.2 mum -14.9 cm 1.64 cm 919 MeV 13.9 keV 8.62 cm 9.16 cm World eIoni - 4 53.2 mum -20 cm 1.64 cm 1.42 GeV 9.33 keV 5.06 cm 14.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 53.2 mum -14.9 cm 1.64 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 60.4 mum -15 cm 1.64 cm 1.29 MeV 1.65 keV 117 mum 117 mum World eIoni - 2 81.1 mum -20 cm 1.64 cm 506 MeV 6.24 keV 5.05 cm 5.06 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.78 mum -4.65 cm 1.52 cm 3.56 keV 0 eV 0 fm 0 fm World initStep - 1 -8.69 mum -4.69 cm 1.52 cm 4.31 MeV 3.56 keV 401 mum 401 mum World eIoni - 2 -12.4 mum -4.77 cm 1.52 cm 12.2 MeV 101 eV 787 mum 1.19 mm World eIoni - 3 -30 mum -16.5 cm 1.53 cm 1.19 GeV 22.8 keV 11.7 cm 11.9 cm World eIoni - 4 -30.6 mum -20 cm 1.53 cm 1.54 GeV 5.29 keV 3.49 cm 15.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -30 mum -16.5 cm 1.53 cm 1.27 keV 0 eV 0 fm 0 fm World initStep - 1 -31.1 mum -16.5 cm 1.53 cm 878 keV 1.27 keV 79.8 mum 79.8 mum World eIoni - 2 -34.5 mum -20 cm 1.52 cm 349 MeV 4.07 keV 3.48 cm 3.49 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.53 cm 1.05 cm 2.49 keV 0 eV 0 fm 0 fm World initStep - 1 -10.4 mum -1.55 cm 1.05 cm 2.39 MeV 2.49 keV 219 mum 219 mum World eIoni - 2 -24.3 mum -2.43 cm 1.05 cm 90.5 MeV 2.16 keV 8.81 mm 9.03 mm World eIoni - 3 -36 mum -17 cm 1.05 cm 1.55 GeV 32.2 keV 14.6 cm 15.5 cm World eIoni - 4 -36.8 mum -20 cm 1.05 cm 1.85 GeV 7.01 keV 2.96 cm 18.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -36 mum -17 cm 1.05 cm 6.42 keV 0 eV 0 fm 0 fm World initStep - 1 -15.2 mum -17.1 cm 1.05 cm 11.9 MeV 6.42 keV 1.12 mm 1.12 mm World eIoni - 2 -9.47 mum -17.5 cm 1.05 cm 46.4 MeV 614 eV 3.45 mm 4.57 mm World eIoni - 3 -1.93 mum -20 cm 1.05 cm 297 MeV 7.52 keV 2.51 cm 2.96 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.47 cm 1.68 cm 697 MeV 12.9 keV 6.96 cm 6.96 cm World eIoni - 2 2.81 mum -11.1 cm 1.94 cm 1.16 GeV 11.2 keV 4.68 cm 11.6 cm World eIoni - 3 7.8 mum -20 cm 2.22 cm 2.05 GeV 16.5 keV 8.86 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.81 mum -11.1 cm 1.94 cm 1.51 keV 0 eV 0 fm 0 fm World initStep - 1 -3.49 mum -11.2 cm 1.94 cm 1.12 MeV 1.51 keV 102 mum 102 mum World eIoni - 2 -24.6 mum -20 cm 1.94 cm 885 MeV 12.1 keV 8.84 cm 8.85 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.47 cm 1.68 cm 3.16 keV 0 eV 0 fm 0 fm World initStep - 1 -16.3 mum -6.5 cm 1.68 cm 3.51 MeV 3.16 keV 325 mum 325 mum World eIoni - 2 -28.7 mum -6.85 cm 1.67 cm 38.2 MeV 575 eV 3.47 mm 3.8 mm World eIoni - 3 -31.4 mum -15 cm 1.67 cm 854 MeV 13.9 keV 8.15 cm 8.53 cm World eIoni - 4 -30.8 mum -16.2 cm 1.67 cm 974 MeV 1.33 keV 1.2 cm 9.73 cm World eIoni - 5 -31.3 mum -19.9 cm 1.67 cm 1.34 GeV 6.77 keV 3.71 cm 13.4 cm World eIoni - 6 -31.3 mum -20 cm 1.67 cm 1.35 GeV 175 eV 906 mum 13.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -31.3 mum -19.9 cm 1.67 cm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 -27.7 mum -19.9 cm 1.67 cm 903 keV 1.29 keV 82.2 mum 82.2 mum World eIoni - 2 -24.1 mum -20 cm 1.67 cm 9.16 MeV 626 eV 825 mum 908 mumOutOfWorldTransportation + 0 0 fm -3 cm 1.33 cm 2.14 keV 0 eV 0 fm 0 fm World initStep + 1 -8.68 mum -3.02 cm 1.33 cm 1.89 MeV 2.14 keV 173 mum 173 mum World eIoni + 2 -18.6 mum -3.33 cm 1.32 cm 32.7 MeV 57.9 eV 3.08 mm 3.26 mm World eIoni + 3 -27.5 mum -6.31 cm 1.32 cm 331 MeV 7.75 keV 2.98 cm 3.31 cm World eIoni + 4 -40.8 mum -20 cm 1.32 cm 1.7 GeV 28.1 keV 13.7 cm 17 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -30.8 mum -16.2 cm 1.67 cm 4.17 keV 0 eV 0 fm 0 fm World initStep - 1 -7.61 mum -16.3 cm 1.68 cm 5.65 MeV 4.17 keV 528 mum 528 mum World eIoni - 2 407 nm -16.4 cm 1.68 cm 20.7 MeV 424 eV 1.51 mm 2.03 mm World eIoni - 3 19.2 mum -20 cm 1.68 cm 380 MeV 8.25 keV 3.59 cm 3.8 cm OutOfWorldTransportation + 0 -27.5 mum -6.31 cm 1.32 cm 1.94 keV 0 eV 0 fm 0 fm World initStep + 1 -17.8 mum -6.32 cm 1.32 cm 1.63 MeV 1.94 keV 149 mum 149 mum World eIoni + 2 10.5 mum -20 cm 1.32 cm 1.37 GeV 17.8 keV 13.7 cm 13.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 39.3 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.79 cm 1.29 cm 329 MeV 3.76 keV 3.25 cm 3.25 cm World eIoni + 2 2.99 mum -5.99 cm 1.64 cm 649 MeV 5.72 keV 3.23 cm 6.48 cm World eIoni + 3 10.7 mum -17.1 cm 2.14 cm 1.76 GeV 22.2 keV 11.1 cm 17.6 cm World eIoni + 4 12.3 mum -20 cm 2.22 cm 2.05 GeV 6.14 keV 2.93 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 10.7 mum -17.1 cm 2.14 cm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 6.91 mum -17.1 cm 2.14 cm 992 keV 1.38 keV 90.3 mum 90.3 mum World eIoni + 2 -4.56 mum -20 cm 2.14 cm 293 MeV 5 keV 2.92 cm 2.93 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.99 mum -5.99 cm 1.64 cm 3.31 keV 0 eV 0 fm 0 fm World initStep + 1 -7.56 mum -6.03 cm 1.64 cm 3.82 MeV 3.31 keV 355 mum 355 mum World eIoni + 2 -7.75 mum -6.03 cm 1.64 cm 4.07 MeV 3.75 eV 24.7 mum 380 mum World eIoni + 3 -27.6 mum -20 cm 1.64 cm 1.4 GeV 24.4 keV 14 cm 14 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.79 cm 1.29 cm 7.84 keV 0 eV 0 fm 0 fm World initStep + 1 -22.7 mum -2.92 cm 1.3 cm 14.3 MeV 6.75 keV 1.36 mm 1.36 mm World eIoni + 2 -39.9 mum -9.77 cm 1.3 cm 699 MeV 14 keV 6.85 cm 6.99 cm World eIoni + 3 -40.9 mum -13.7 cm 1.3 cm 1.09 GeV 7.38 keV 3.94 cm 10.9 cm World eIoni + 4 -42.1 mum -20 cm 1.3 cm 1.72 GeV 14.9 keV 6.3 cm 17.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -40.9 mum -13.7 cm 1.3 cm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 -40 mum -13.7 cm 1.3 cm 1.23 MeV 1.6 keV 112 mum 112 mum World eIoni + 2 -37.3 mum -20 cm 1.3 cm 630 MeV 9.33 keV 6.28 cm 6.3 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -31.4 mum -15 cm 1.67 cm 3.35 keV 0 eV 0 fm 0 fm World initStep - 1 -49.3 mum -15 cm 1.68 cm 3.89 MeV 3.35 keV 361 mum 361 mum World eIoni - 2 -61.1 mum -15.3 cm 1.68 cm 33.9 MeV 219 eV 3 mm 3.36 mm World eIoni - 3 -71.9 mum -17.2 cm 1.68 cm 218 MeV 3.42 keV 1.84 cm 2.18 cm World eIoni - 4 -72 mum -17.3 cm 1.68 cm 231 MeV 151 eV 1.28 mm 2.3 cm World eIoni - 5 -72.3 mum -19.2 cm 1.68 cm 424 MeV 3.07 keV 1.94 cm 4.24 cm World eIoni - 6 -72.7 mum -20 cm 1.68 cm 500 MeV 993 eV 7.55 mm 5 cm OutOfWorldTransportation + 0 -39.9 mum -9.77 cm 1.3 cm 1.19 keV 0 eV 0 fm 0 fm World initStep + 1 -43.3 mum -9.78 cm 1.3 cm 808 keV 1.19 keV 73.5 mum 73.5 mum World eIoni + 2 -57.3 mum -20 cm 1.3 cm 1.02 GeV 15.2 keV 10.2 cm 10.2 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -72.3 mum -19.2 cm 1.68 cm 2.7 keV 0 eV 0 fm 0 fm World initStep - 1 -64.3 mum -19.3 cm 1.68 cm 2.73 MeV 2.7 keV 252 mum 252 mum World eIoni - 2 -54.7 mum -20 cm 1.68 cm 75.8 MeV 1.73 keV 7.31 mm 7.56 mm OutOfWorldTransportation + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.03 cm 8.98 mm 153 MeV 3.38 keV 1.45 cm 1.45 cm World eIoni + 2 -3.26 mum -16.3 cm 2.12 cm 1.68 GeV 31.8 keV 15.4 cm 16.8 cm World eIoni + 3 -2.19 mum -20 cm 2.22 cm 2.05 GeV 7.29 keV 3.7 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -72 mum -17.3 cm 1.68 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 -74.8 mum -17.3 cm 1.68 cm 743 keV 1.12 keV 67.5 mum 67.5 mum World eIoni - 2 -84.6 mum -20 cm 1.67 cm 269 MeV 3.71 keV 2.69 cm 2.69 cm OutOfWorldTransportation + 0 -3.26 mum -16.3 cm 2.12 cm 4.79 keV 0 eV 0 fm 0 fm World initStep + 1 -29.7 mum -16.4 cm 2.12 cm 7.15 MeV 4.79 keV 670 mum 670 mum World eIoni + 2 -43.1 mum -16.9 cm 2.12 cm 55.9 MeV 558 eV 4.88 mm 5.55 mm World eIoni + 3 -55.9 mum -20 cm 2.12 cm 370 MeV 6.31 keV 3.14 cm 3.7 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -71.9 mum -17.2 cm 1.68 cm 1.14 keV 0 eV 0 fm 0 fm World initStep - 1 -77.2 mum -17.2 cm 1.68 cm 758 keV 1.14 keV 68.9 mum 68.9 mum World eIoni - 2 -95.9 mum -20 cm 1.68 cm 282 MeV 7.82 keV 2.81 cm 2.82 cm OutOfWorldTransportation + 0 0 fm -1.03 cm 8.98 mm 2.74 keV 0 eV 0 fm 0 fm World initStep + 1 3.62 mum -1.06 cm 8.97 mm 2.8 MeV 2.74 keV 259 mum 259 mum World eIoni + 2 6.59 mum -1.32 cm 8.96 mm 29.1 MeV 396 eV 2.63 mm 2.89 mm World eIoni + 3 12.2 mum -20 cm 8.94 mm 1.9 GeV 34.3 keV 18.7 cm 19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.24 cm 1.73 cm 774 MeV 17.2 keV 7.73 cm 7.73 cm World eIoni + 2 2.89 mum -15.1 cm 2.08 cm 1.56 GeV 13 keV 7.83 cm 15.6 cm World eIoni + 3 4.88 mum -20 cm 2.22 cm 2.05 GeV 12.5 keV 4.93 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.89 mum -15.1 cm 2.08 cm 1 keV 0 eV 0 fm 0 fm World initStep + 1 -1.61 mum -15.1 cm 2.08 cm 636 keV 1 keV 57.8 mum 57.8 mum World eIoni + 2 -20.5 mum -20 cm 2.08 cm 493 MeV 7.87 keV 4.93 cm 4.93 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.24 cm 1.73 cm 1.69 keV 0 eV 0 fm 0 fm World initStep + 1 -8.38 mum -7.26 cm 1.73 cm 1.33 MeV 1.69 keV 122 mum 122 mum World eIoni + 2 -35.4 mum -20 cm 1.73 cm 1.28 GeV 22.9 keV 12.7 cm 12.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -434 mum 2.08 mm 54.3 MeV 869 eV 2.14 mm 2.14 mm World eIoni + 2 8.14 mum -7.83 cm 1.77 cm 833 MeV 18.4 keV 8.11 cm 8.32 cm World eIoni + 3 9.66 mum -10 cm 1.88 cm 1.05 GeV 3.41 keV 2.19 cm 10.5 cm World eIoni + 4 16.2 mum -20 cm 2.22 cm 2.05 GeV 19.9 keV 9.99 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 9.66 mum -10 cm 1.88 cm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 3.46 mum -10 cm 1.88 cm 1.22 MeV 1.6 keV 111 mum 111 mum World eIoni + 2 -17.2 mum -20 cm 1.88 cm 998 MeV 18 keV 9.97 cm 9.98 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 8.14 mum -7.83 cm 1.77 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 369 nm -7.85 cm 1.77 cm 1.28 MeV 1.65 keV 117 mum 117 mum World eIoni + 2 -25.1 mum -20 cm 1.76 cm 1.22 GeV 15.4 keV 12.2 cm 12.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -434 mum 2.08 mm 992 eV 0 eV 0 fm 0 fm World initStep + 1 -4.08 mum -489 mum 2.08 mm 662 keV 992 eV 57.3 mum 57.3 mum World eIoni + 2 -24.2 mum -20 cm 2.09 mm 2 GeV 29.1 keV 20 cm 20 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -15.6 cm 2.1 cm 1.61 GeV 32.3 keV 16.1 cm 16.1 cm World eIoni + 2 -609 nm -20 cm 2.22 cm 2.05 GeV 8.43 keV 4.42 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -15.6 cm 2.1 cm 1.31 keV 0 eV 0 fm 0 fm World initStep + 1 4.33 mum -15.6 cm 2.1 cm 917 keV 1.31 keV 83.3 mum 83.3 mum World eIoni + 2 18.9 mum -20 cm 2.1 cm 442 MeV 6.69 keV 4.41 cm 4.42 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.32 cm 1.58 cm 582 MeV 10.7 keV 5.8 cm 5.8 cm World eIoni + 2 7 mum -20 cm 2.22 cm 2.05 GeV 34.8 keV 14.7 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.32 cm 1.58 cm 3.55 keV 0 eV 0 fm 0 fm World initStep + 1 -17.9 mum -5.36 cm 1.58 cm 4.3 MeV 3.55 keV 400 mum 400 mum World eIoni + 2 -22.4 mum -5.42 cm 1.58 cm 10.3 MeV 44.9 eV 603 mum 1 mm World eIoni + 3 -50.2 mum -20 cm 1.58 cm 1.47 GeV 24.2 keV 14.6 cm 14.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -12.1 cm 1.97 cm 1.26 GeV 20.8 keV 12.6 cm 12.6 cm World eIoni + 2 -1.63 mum -20 cm 2.22 cm 2.05 GeV 17.6 keV 7.93 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.1 cm 1.97 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 5.22 mum -12.1 cm 1.97 cm 737 keV 1.11 keV 67.1 mum 67.1 mum World eIoni + 2 27 mum -20 cm 1.97 cm 793 MeV 10.8 keV 7.92 cm 7.93 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.07 cm 9.12 mm 157 MeV 1.93 keV 1.5 cm 1.5 cm World eIoni + 2 12.1 mum -14.3 cm 2.06 cm 1.48 GeV 30.1 keV 13.3 cm 14.8 cm World eBrem + 3 13.9 mum -20 cm 2.22 cm 2.05 GeV 8.8 keV 5.71 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 12.1 mum -14.3 cm 2.06 cm 8.72 keV 0 eV 0 fm 0 fm World initStep + 1 12.7 mum -20 cm 2.25 cm 8.72 keV 0 eV 5.71 cm 5.71 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.07 cm 9.12 mm 4.19 keV 0 eV 0 fm 0 fm World initStep + 1 -19.1 mum -1.13 cm 9.11 mm 5.69 MeV 4.19 keV 531 mum 531 mum World eIoni + 2 -26 mum -1.29 cm 9.11 mm 21.8 MeV 178 eV 1.61 mm 2.14 mm World eIoni + 3 -48.8 mum -16.6 cm 9.09 mm 1.55 GeV 24.1 keV 15.3 cm 15.5 cm World eIoni + 4 -50.4 mum -20 cm 9.09 mm 1.89 GeV 6.89 keV 3.44 cm 18.9 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -28.7 mum -6.85 cm 1.67 cm 2.35 keV 0 eV 0 fm 0 fm World initStep - 1 -40.3 mum -6.87 cm 1.67 cm 2.2 MeV 2.35 keV 202 mum 202 mum World eIoni - 2 -53.4 mum -7.3 cm 1.67 cm 44.8 MeV 1.13 keV 4.26 mm 4.46 mm World eIoni - 3 -61.5 mum -9.39 cm 1.67 cm 254 MeV 2.67 keV 2.09 cm 2.54 cm World eIoni - 4 -64.9 mum -11.1 cm 1.67 cm 429 MeV 2.47 keV 1.75 cm 4.29 cm World eIoni - 5 -65 mum -18.7 cm 1.67 cm 1.19 GeV 14 keV 7.6 cm 11.9 cm World eIoni - 6 -65.1 mum -18.9 cm 1.67 cm 1.21 GeV 550 eV 1.99 mm 12.1 cm World eIoni - 7 -65.4 mum -20 cm 1.67 cm 1.32 GeV 1.89 keV 1.06 cm 13.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -65.1 mum -18.9 cm 1.67 cm 7.47 keV 0 eV 0 fm 0 fm World initStep - 1 -62.6 mum -18.9 cm 1.68 cm 732 keV 447 eV 74.2 mum 74.2 mum World eIoni - 2 -55.2 mum -20 cm 1.68 cm 106 MeV 2.18 keV 1.05 cm 1.06 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -65 mum -18.7 cm 1.67 cm 4.74 keV 0 eV 0 fm 0 fm World initStep - 1 -56.3 mum -18.8 cm 1.68 cm 7.02 MeV 4.74 keV 658 mum 658 mum World eIoni - 2 -53.5 mum -19 cm 1.68 cm 26.1 MeV 203 eV 1.91 mm 2.56 mm World eIoni - 3 -49.9 mum -20 cm 1.68 cm 126 MeV 2.13 keV 1 cm 1.26 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -64.9 mum -11.1 cm 1.67 cm 4.35 keV 0 eV 0 fm 0 fm World initStep - 1 -88.5 mum -11.2 cm 1.67 cm 6.08 MeV 4.35 keV 569 mum 569 mum World eIoni - 2 -99.1 mum -11.5 cm 1.67 cm 34.5 MeV 349 eV 2.85 mm 3.41 mm World eIoni - 3 -120 mum -20 cm 1.67 cm 886 MeV 15.3 keV 8.52 cm 8.86 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -61.5 mum -9.39 cm 1.67 cm 1.95 keV 0 eV 0 fm 0 fm World initStep - 1 -57.4 mum -9.4 cm 1.67 cm 1.64 MeV 1.95 keV 150 mum 150 mum World eIoni - 2 -45.6 mum -20 cm 1.67 cm 1.06 GeV 14.1 keV 10.6 cm 10.6 cm OutOfWorldTransportation + 0 -48.8 mum -16.6 cm 9.09 mm 1.97 keV 0 eV 0 fm 0 fm World initStep + 1 -38.9 mum -16.6 cm 9.09 mm 1.66 MeV 1.97 keV 152 mum 152 mum World eIoni + 2 -16 mum -20 cm 9.09 mm 344 MeV 3.86 keV 3.43 cm 3.44 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3044,310 +3025,154 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -13 cm 2.01 cm 1.35 GeV 24.7 keV 13.5 cm 13.5 cm World eIoni - 2 474 nm -14 cm 2.05 cm 1.45 GeV 2.13 keV 9.51 mm 14.5 cm World eIoni - 3 638 nm -14.5 cm 2.06 cm 1.5 GeV 644 eV 5.04 mm 15 cm World eIoni - 4 3.28 mum -20 cm 2.22 cm 2.05 GeV 13.7 keV 5.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -16.1 cm 2.11 cm 1.66 GeV 29.9 keV 16.6 cm 16.6 cm World eIoni + 2 2.85 mum -20 cm 2.22 cm 2.05 GeV 7.29 keV 3.94 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 638 nm -14.5 cm 2.06 cm 1.42 keV 0 eV 0 fm 0 fm World initStep - 1 -6.01 mum -14.5 cm 2.06 cm 1.03 MeV 1.42 keV 93.7 mum 93.7 mum World eIoni - 2 -27.9 mum -20 cm 2.06 cm 550 MeV 6.36 keV 5.49 cm 5.5 cm OutOfWorldTransportation + 0 0 fm -16.1 cm 2.11 cm 19.5 keV 0 eV 0 fm 0 fm World initStep + 1 -94.4 mum -16.4 cm 2.12 cm 33.2 MeV 4.21 keV 3.2 mm 3.2 mm World eIoni + 2 -102 mum -16.6 cm 2.12 cm 60.4 MeV 1.46 keV 2.72 mm 5.92 mm World eIoni + 3 -113 mum -17.4 cm 2.12 cm 138 MeV 2.15 keV 7.76 mm 1.37 cm World eIoni + 4 -126 mum -20 cm 2.12 cm 396 MeV 5.38 keV 2.58 cm 3.94 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -113 mum -17.4 cm 2.12 cm 3.86 keV 0 eV 0 fm 0 fm World initStep + 1 -116 mum -17.5 cm 2.12 cm 4.93 MeV 3.86 keV 460 mum 460 mum World eIoni + 2 -117 mum -17.6 cm 2.12 cm 13.5 MeV 311 eV 858 mum 1.32 mm World eIoni + 3 -119 mum -20 cm 2.12 cm 258 MeV 3.54 keV 2.44 cm 2.58 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -16.6 cm 2.13 cm 1.71 GeV 34.5 keV 17.1 cm 17.1 cm World eIoni + 2 452 nm -20 cm 2.22 cm 2.05 GeV 7.16 keV 3.4 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -16.6 cm 2.13 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -5.12 mum -16.6 cm 2.13 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni + 2 -18.2 mum -20 cm 2.13 cm 340 MeV 4.13 keV 3.38 cm 3.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 38.9 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.48 cm 1.24 cm 298 MeV 6.69 keV 2.95 cm 2.95 cm World eIoni + 2 9.21 mum -20 cm 2.22 cm 2.05 GeV 32.7 keV 17.6 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.48 cm 1.24 cm 2.3 keV 0 eV 0 fm 0 fm World initStep + 1 -11.7 mum -2.5 cm 1.24 cm 2.13 MeV 2.3 keV 195 mum 195 mum World eIoni + 2 -26.5 mum -3.06 cm 1.24 cm 57.3 MeV 691 eV 5.52 mm 5.72 mm World eIoni + 3 -35.6 mum -6.31 cm 1.25 cm 382 MeV 5.98 keV 3.25 cm 3.82 cm World eIoni + 4 -38.9 mum -20 cm 1.24 cm 1.75 GeV 32.3 keV 13.7 cm 17.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -35.6 mum -6.31 cm 1.25 cm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 -40.7 mum -6.32 cm 1.25 cm 1.22 MeV 1.6 keV 111 mum 111 mum World eIoni + 2 -58 mum -20 cm 1.25 cm 1.37 GeV 19.9 keV 13.7 cm 13.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.48 cm 1.74 cm 798 MeV 14.4 keV 7.97 cm 7.97 cm World eIoni + 2 -2.46 mum -12.2 cm 1.98 cm 1.27 GeV 11.8 keV 4.77 cm 12.7 cm World eIoni + 3 -6.78 mum -18.8 cm 2.19 cm 1.93 GeV 12.5 keV 6.58 cm 19.3 cm World eBrem + 4 -7.4 mum -20 cm 2.22 cm 2.05 GeV 2.66 keV 1.18 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -6.78 mum -18.8 cm 2.19 cm 2.59 MeV 0 eV 0 fm 0 fm World initStep + 1 -5.21 mum -20 cm 2.22 cm 2.59 MeV 0 eV 1.18 cm 1.18 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 474 nm -14 cm 2.05 cm 5.43 keV 0 eV 0 fm 0 fm World initStep - 1 10 mum -14.1 cm 2.05 cm 8.92 MeV 5.43 keV 839 mum 839 mum World eIoni - 2 10.8 mum -14.1 cm 2.05 cm 12.6 MeV 25.2 eV 366 mum 1.2 mm World eIoni - 3 14.8 mum -14.8 cm 2.05 cm 79.6 MeV 1.06 keV 6.71 mm 7.91 mm World eIoni - 4 8.35 mum -20 cm 2.05 cm 601 MeV 12 keV 5.22 cm 6.01 cm OutOfWorldTransportation + 0 -2.46 mum -12.2 cm 1.98 cm 5.3 keV 0 eV 0 fm 0 fm World initStep + 1 19.3 mum -12.3 cm 1.98 cm 8.55 MeV 5.3 keV 803 mum 803 mum World eIoni + 2 26.6 mum -12.6 cm 1.98 cm 37.4 MeV 352 eV 2.89 mm 3.69 mm World eIoni + 3 32.3 mum -13.4 cm 1.98 cm 114 MeV 2.54 keV 7.7 mm 1.14 cm World eIoni + 4 34.9 mum -13.7 cm 1.98 cm 149 MeV 1 keV 3.45 mm 1.48 cm World eIoni + 5 52.4 mum -20 cm 1.99 cm 776 MeV 9.88 keV 6.27 cm 7.76 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 34.9 mum -13.7 cm 1.98 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 33.9 mum -13.7 cm 1.98 cm 877 keV 1.27 keV 79.8 mum 79.8 mum World eIoni + 2 30 mum -20 cm 1.98 cm 627 MeV 7.65 keV 6.27 cm 6.27 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 14.8 mum -14.8 cm 2.05 cm 2.91 keV 0 eV 0 fm 0 fm World initStep - 1 30 mum -14.8 cm 2.05 cm 3.08 MeV 2.91 keV 285 mum 285 mum World eIoni - 2 45.4 mum -15.4 cm 2.05 cm 61.6 MeV 1.82 keV 5.85 mm 6.14 mm World eIoni - 3 57 mum -20 cm 2.05 cm 522 MeV 10.8 keV 4.6 cm 5.22 cm OutOfWorldTransportation + 0 32.3 mum -13.4 cm 1.98 cm 3.18 keV 0 eV 0 fm 0 fm World initStep + 1 18 mum -13.4 cm 1.98 cm 3.55 MeV 3.18 keV 330 mum 330 mum World eIoni + 2 9.14 mum -13.6 cm 1.98 cm 25.4 MeV 295 eV 2.19 mm 2.52 mm World eIoni + 3 -5.89 mum -20 cm 1.98 cm 662 MeV 9.75 keV 6.37 cm 6.62 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13 cm 2.01 cm 4.84 keV 0 eV 0 fm 0 fm World initStep - 1 -27.7 mum -13.1 cm 2.01 cm 7.26 MeV 4.84 keV 681 mum 681 mum World eIoni - 2 -33.2 mum -13.2 cm 2.01 cm 16.6 MeV 65.2 eV 929 mum 1.61 mm World eIoni - 3 -48 mum -14.4 cm 2.01 cm 135 MeV 1.98 keV 1.19 cm 1.35 cm World eIoni - 4 -50 mum -20 cm 2.01 cm 696 MeV 11.2 keV 5.61 cm 6.96 cm OutOfWorldTransportation + 0 0 fm -7.48 cm 1.74 cm 2.92 keV 0 eV 0 fm 0 fm World initStep + 1 14.9 mum -7.51 cm 1.74 cm 3.11 MeV 2.92 keV 287 mum 287 mum World eIoni + 2 20.1 mum -7.57 cm 1.74 cm 9.09 MeV 53.9 eV 598 mum 885 mum World eIoni + 3 44.3 mum -16.1 cm 1.75 cm 861 MeV 14.2 keV 8.52 cm 8.61 cm World eIoni + 4 45.5 mum -20 cm 1.75 cm 1.25 GeV 10.3 keV 3.91 cm 12.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -48 mum -14.4 cm 2.01 cm 7.98 keV 0 eV 0 fm 0 fm World initStep - 1 -81.1 mum -14.6 cm 2.01 cm 17.5 MeV 7.98 keV 1.66 mm 1.66 mm World eIoni - 2 -85.5 mum -14.8 cm 2.01 cm 38.4 MeV 266 eV 2.09 mm 3.75 mm World eIoni - 3 -100 mum -18.7 cm 2.01 cm 431 MeV 9.13 keV 3.93 cm 4.3 cm World eIoni - 4 -101 mum -19.2 cm 2.01 cm 483 MeV 1.58 keV 5.18 mm 4.82 cm World eIoni - 5 -102 mum -20 cm 2.01 cm 562 MeV 1.86 keV 7.9 mm 5.61 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -101 mum -19.2 cm 2.01 cm 9.22 keV 0 eV 0 fm 0 fm World initStep - 1 -96.9 mum -19.3 cm 2 cm 9.74 MeV 2.15 keV 933 mum 933 mum World eIoni - 2 -95.1 mum -20 cm 2 cm 79.5 MeV 2.12 keV 6.98 mm 7.91 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -100 mum -18.7 cm 2.01 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 -98.7 mum -18.7 cm 2 cm 790 keV 1.17 keV 71.8 mum 71.8 mum World eIoni - 2 -95.4 mum -20 cm 2 cm 131 MeV 1.55 keV 1.3 cm 1.31 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 42.3 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 34.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.55 cm 1.68 cm 705 MeV 17 keV 7.04 cm 7.04 cm World eIoni - 2 1.63 mum -9.82 cm 1.87 cm 1.03 GeV 7.28 keV 3.28 cm 10.3 cm World eIoni - 3 1.66 mum -10.3 cm 1.9 cm 1.08 GeV 1.01 keV 4.52 mm 10.8 cm World eIoni - 4 376 nm -16.3 cm 2.12 cm 1.68 GeV 14.3 keV 6.03 cm 16.8 cm World eIoni - 5 559 nm -20 cm 2.22 cm 2.05 GeV 5.52 keV 3.71 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 376 nm -16.3 cm 2.12 cm 2.03 keV 0 eV 0 fm 0 fm World initStep - 1 -8.26 mum -16.3 cm 2.12 cm 1.74 MeV 2.03 keV 160 mum 160 mum World eIoni - 2 -28.2 mum -20 cm 2.12 cm 371 MeV 5.76 keV 3.69 cm 3.71 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.66 mum -10.3 cm 1.9 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 9 mum -10.3 cm 1.9 cm 1.17 MeV 1.55 keV 107 mum 107 mum World eIoni - 2 33.8 mum -20 cm 1.9 cm 973 MeV 12.1 keV 9.72 cm 9.73 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.63 mum -9.82 cm 1.87 cm 2.19 keV 0 eV 0 fm 0 fm World initStep - 1 9.57 mum -9.84 cm 1.87 cm 1.97 MeV 2.19 keV 181 mum 181 mum World eIoni - 2 26.9 mum -13.7 cm 1.88 cm 390 MeV 6.12 keV 3.88 cm 3.9 cm World eIoni - 3 30.1 mum -20 cm 1.88 cm 1.02 GeV 13.3 keV 6.28 cm 10.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.55 cm 1.68 cm 1.82 keV 0 eV 0 fm 0 fm World initStep - 1 -9.02 mum -6.56 cm 1.68 cm 1.49 MeV 1.82 keV 136 mum 136 mum World eIoni - 2 -36.7 mum -20 cm 1.68 cm 1.35 GeV 20.6 keV 13.4 cm 13.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -6.78 cm 1.7 cm 728 MeV 13.5 keV 7.27 cm 7.27 cm World eIoni - 2 -2.44 mum -19.5 cm 2.21 cm 2 GeV 29 keV 12.7 cm 20 cm World eIoni - 3 -2.42 mum -20 cm 2.22 cm 2.05 GeV 718 eV 5.07 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.44 mum -19.5 cm 2.21 cm 1.87 keV 0 eV 0 fm 0 fm World initStep - 1 -8.91 mum -19.5 cm 2.21 cm 1.54 MeV 1.87 keV 141 mum 141 mum World eIoni - 2 -18.7 mum -20 cm 2.21 cm 50.9 MeV 919 eV 4.93 mm 5.07 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.78 cm 1.7 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 3.98 mum -6.79 cm 1.7 cm 824 keV 1.21 keV 74.7 mum 74.7 mum World eIoni - 2 21 mum -20 cm 1.7 cm 1.32 GeV 20.3 keV 13.2 cm 13.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 40.9 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 36.9 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.55 cm 1.4 cm 405 MeV 6.93 keV 4.02 cm 4.02 cm World eIoni - 2 1.16 mum -5.72 cm 1.62 cm 622 MeV 4.16 keV 2.18 cm 6.21 cm World eIoni - 3 6.38 mum -20 cm 2.22 cm 2.05 GeV 26.6 keV 14.3 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.16 mum -5.72 cm 1.62 cm 11.2 keV 0 eV 0 fm 0 fm World initStep - 1 -12 mum -6.03 cm 1.61 cm 32.6 MeV 11.2 keV 3.09 mm 3.09 mm World eIoni - 2 -12.2 mum -6.06 cm 1.61 cm 35.8 MeV 11.4 eV 319 mum 3.41 mm World eIoni - 3 -18.4 mum -20 cm 1.61 cm 1.43 GeV 26.5 keV 13.9 cm 14.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.55 cm 1.4 cm 1.83 keV 0 eV 0 fm 0 fm World initStep - 1 -5.68 mum -3.56 cm 1.4 cm 1.49 MeV 1.83 keV 137 mum 137 mum World eIoni - 2 -24.1 mum -20 cm 1.4 cm 1.65 GeV 20.5 keV 16.4 cm 16.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.2 cm 9.53 mm 170 MeV 4.57 keV 1.63 cm 1.63 cm World eIoni - 2 82.6 nm -13.2 cm 2.02 cm 1.37 GeV 22.3 keV 12 cm 13.7 cm World eIoni - 3 -73.5 nm -20 cm 2.22 cm 2.05 GeV 16.2 keV 6.83 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 82.6 nm -13.2 cm 2.02 cm 1.51 keV 0 eV 0 fm 0 fm World initStep - 1 883 nm -13.2 cm 2.02 cm 1.12 MeV 1.51 keV 102 mum 102 mum World eIoni - 2 3.49 mum -20 cm 2.02 cm 683 MeV 12.6 keV 6.81 cm 6.82 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.2 cm 9.53 mm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 -70 nm -1.21 cm 9.54 mm 951 keV 1.32 keV 85.1 mum 85.1 mum World eIoni - 2 -357 nm -20 cm 9.57 mm 1.88 GeV 31.2 keV 18.8 cm 18.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -10.4 cm 1.9 cm 1.09 GeV 20.9 keV 10.8 cm 10.8 cm World eIoni - 2 571 nm -11.6 cm 1.95 cm 1.21 GeV 2.93 keV 1.2 cm 12.1 cm World eIoni - 3 6.89 mum -20 cm 2.22 cm 2.05 GeV 16.1 keV 8.45 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 571 nm -11.6 cm 1.95 cm 17.2 keV 0 eV 0 fm 0 fm World initStep - 1 -66 mum -12.2 cm 1.96 cm 70.3 MeV 17.2 keV 6.79 mm 6.79 mm World eIoni - 2 -66.3 mum -12.3 cm 1.96 cm 73.9 MeV 0 eV 368 mum 7.16 mm World eIoni - 3 -74.9 mum -14.3 cm 1.97 cm 280 MeV 3.01 keV 2.06 cm 2.78 cm World eIoni - 4 -75 mum -14.4 cm 1.97 cm 283 MeV 0 eV 297 mum 2.8 cm World eIoni - 5 -90.5 mum -20 cm 1.97 cm 848 MeV 12.3 keV 5.65 cm 8.45 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -75 mum -14.4 cm 1.97 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 -70.7 mum -14.4 cm 1.97 cm 755 keV 1.13 keV 68.7 mum 68.7 mum World eIoni - 2 -53.6 mum -20 cm 1.97 cm 565 MeV 8.4 keV 5.64 cm 5.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -74.9 mum -14.3 cm 1.97 cm 4.72 keV 0 eV 0 fm 0 fm World initStep - 1 -55.7 mum -14.4 cm 1.96 cm 6.98 MeV 4.72 keV 654 mum 654 mum World eIoni - 2 -54.3 mum -14.4 cm 1.96 cm 9.49 MeV 0 eV 251 mum 905 mum World eIoni - 3 -34.7 mum -19.6 cm 1.96 cm 525 MeV 7 keV 5.16 cm 5.25 cm World eBrem - 4 -34.4 mum -20 cm 1.96 cm 568 MeV 616 eV 4.32 mm 5.68 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.4 cm 1.9 cm 3.53 keV 0 eV 0 fm 0 fm World initStep - 1 -17.5 mum -10.4 cm 1.9 cm 4.26 MeV 3.53 keV 396 mum 396 mum World eIoni - 2 -23.9 mum -10.5 cm 1.9 cm 14.8 MeV 938 eV 1.06 mm 1.45 mm World eIoni - 3 -41.1 mum -13.5 cm 1.9 cm 319 MeV 4.95 keV 3.04 cm 3.19 cm World eIoni - 4 -42.6 mum -20 cm 1.9 cm 965 MeV 13.3 keV 6.46 cm 9.65 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -41.1 mum -13.5 cm 1.9 cm 2.49 keV 0 eV 0 fm 0 fm World initStep - 1 -50.9 mum -13.6 cm 1.9 cm 2.39 MeV 2.49 keV 220 mum 220 mum World eIoni - 2 -60.3 mum -13.9 cm 1.9 cm 32.8 MeV 293 eV 3.04 mm 3.26 mm World eIoni - 3 -72 mum -20 cm 1.9 cm 646 MeV 11.3 keV 6.13 cm 6.46 cm OutOfWorldTransportation + 0 44.3 mum -16.1 cm 1.75 cm 1.93 keV 0 eV 0 fm 0 fm World initStep + 1 46.6 mum -16.1 cm 1.75 cm 1.61 MeV 1.93 keV 148 mum 148 mum World eIoni + 2 52.3 mum -20 cm 1.75 cm 391 MeV 7.42 keV 3.89 cm 3.91 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3356,327 +3181,108 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep 1 0 fm -12.6 cm 1.99 cm 1.31 GeV 23.6 keV 13.1 cm 13.1 cm World eIoni - 2 1.03 mum -18.1 cm 2.17 cm 1.86 GeV 13.3 keV 5.53 cm 18.6 cm World eIoni - 3 977 nm -19.3 cm 2.2 cm 1.98 GeV 3.25 keV 1.18 cm 19.8 cm World eIoni - 4 1.07 mum -20 cm 2.22 cm 2.05 GeV 753 eV 6.8 mm 20.5 cm OutOfWorldTransportation + 2 1.68 mum -17.3 cm 2.15 cm 1.78 GeV 11.8 keV 4.68 cm 17.8 cm World eIoni + 3 2.94 mum -20 cm 2.22 cm 2.05 GeV 4.68 keV 2.74 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.68 mum -17.3 cm 2.15 cm 1.51 keV 0 eV 0 fm 0 fm World initStep + 1 -4.62 mum -17.3 cm 2.15 cm 1.12 MeV 1.51 keV 102 mum 102 mum World eIoni + 2 -22 mum -20 cm 2.15 cm 274 MeV 2.84 keV 2.73 cm 2.74 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.6 cm 1.99 cm 3.16 keV 0 eV 0 fm 0 fm World initStep + 1 -16.3 mum -12.6 cm 1.99 cm 3.51 MeV 3.16 keV 325 mum 325 mum World eIoni + 2 -18.5 mum -12.6 cm 1.99 cm 5.5 MeV 0 eV 199 mum 525 mum World eIoni + 3 -45.3 mum -20 cm 1.99 cm 743 MeV 8.77 keV 7.37 cm 7.42 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -10 cm 1.88 cm 1.05 GeV 24.6 keV 10.5 cm 10.5 cm World eIoni + 2 -1.04 mum -13.3 cm 2.02 cm 1.38 GeV 5.71 keV 3.28 cm 13.8 cm World eIoni + 3 -3.5 mum -17 cm 2.14 cm 1.75 GeV 7.11 keV 3.71 cm 17.5 cm World eIoni + 4 -5.45 mum -20 cm 2.22 cm 2.05 GeV 6.95 keV 2.98 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 977 nm -19.3 cm 2.2 cm 1.98 keV 0 eV 0 fm 0 fm World initStep - 1 -6.94 mum -19.3 cm 2.2 cm 1.67 MeV 1.98 keV 153 mum 153 mum World eIoni - 2 -19.3 mum -20 cm 2.21 cm 68.1 MeV 1.48 keV 6.65 mm 6.8 mm OutOfWorldTransportation + 0 -3.5 mum -17 cm 2.14 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 94 nm -17 cm 2.14 cm 903 keV 1.29 keV 82.2 mum 82.2 mum World eIoni + 2 11.5 mum -20 cm 2.14 cm 298 MeV 4.82 keV 2.97 cm 2.98 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.03 mum -18.1 cm 2.17 cm 1.38 keV 0 eV 0 fm 0 fm World initStep - 1 7.71 mum -18.1 cm 2.17 cm 994 keV 1.38 keV 90.4 mum 90.4 mum World eIoni - 2 26 mum -20 cm 2.17 cm 187 MeV 2.91 keV 1.86 cm 1.86 cm OutOfWorldTransportation + 0 -1.04 mum -13.3 cm 2.02 cm 4.17 keV 0 eV 0 fm 0 fm World initStep + 1 22.1 mum -13.4 cm 2.02 cm 5.65 MeV 4.17 keV 528 mum 528 mum World eIoni + 2 41.8 mum -14.6 cm 2.02 cm 126 MeV 2.94 keV 1.2 cm 1.25 cm World eIoni + 3 52.6 mum -20 cm 2.02 cm 669 MeV 10.3 keV 5.43 cm 6.69 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12.6 cm 1.99 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 -4.83 mum -12.6 cm 1.99 cm 834 keV 1.22 keV 75.9 mum 75.9 mum World eIoni - 2 -23 mum -20 cm 1.99 cm 739 MeV 9.79 keV 7.38 cm 7.39 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.58 mm 8.71 mm 146 MeV 1.1 keV 1.37 cm 1.37 cm World eIoni - 2 -4.31 mum -4.15 cm 1.47 cm 465 MeV 7.03 keV 3.26 cm 4.63 cm World eIoni - 3 9.59 mum -20 cm 2.22 cm 2.05 GeV 29.2 keV 15.9 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.31 mum -4.15 cm 1.47 cm 21.2 keV 0 eV 0 fm 0 fm World initStep - 1 -47.2 mum -4.21 cm 1.47 cm 6.11 MeV 802 eV 603 mum 603 mum World eIoni - 2 -116 mum -16.9 cm 1.48 cm 1.27 GeV 17.8 keV 12.7 cm 12.7 cm World eIoni - 3 -119 mum -20 cm 1.48 cm 1.59 GeV 7.02 keV 3.13 cm 15.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.58 mm 8.71 mm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 6.35 mum -9.66 mm 8.72 mm 935 keV 1.32 keV 84.9 mum 84.9 mum World eIoni - 2 33 mum -20 cm 8.72 mm 1.9 GeV 28.7 keV 19 cm 19 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -20 cm 2.22 cm 2.05 GeV 42.5 keV 20.5 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.93 mm 7.13 mm 109 MeV 1.57 keV 9.75 mm 9.75 mm World eIoni - 2 -10.6 mum -5.66 cm 1.61 cm 616 MeV 9.7 keV 5.17 cm 6.15 cm World eIoni - 3 -16.2 mum -13.8 cm 2.04 cm 1.43 GeV 18 keV 8.13 cm 14.3 cm World eIoni - 4 -16.4 mum -14.8 cm 2.08 cm 1.53 GeV 1.86 keV 1.06 cm 15.3 cm World eIoni - 5 -16.7 mum -16.5 cm 2.13 cm 1.7 GeV 3.22 keV 1.64 cm 17 cm World eIoni - 6 -16.8 mum -20 cm 2.22 cm 2.05 GeV 6.5 keV 3.53 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -16.7 mum -16.5 cm 2.13 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 -21.7 mum -16.5 cm 2.13 cm 1.11 MeV 1.49 keV 101 mum 101 mum World eIoni - 2 -36.3 mum -20 cm 2.13 cm 353 MeV 6.02 keV 3.52 cm 3.53 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -16.4 mum -14.8 cm 2.08 cm 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 -18 mum -14.8 cm 2.08 cm 843 keV 1.23 keV 76.6 mum 76.6 mum World eIoni - 2 -23.8 mum -20 cm 2.08 cm 516 MeV 7.26 keV 5.15 cm 5.16 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -16.2 mum -13.8 cm 2.04 cm 1.72 keV 0 eV 0 fm 0 fm World initStep - 1 -22 mum -13.8 cm 2.04 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni - 2 -38.8 mum -20 cm 2.04 cm 622 MeV 9.94 keV 6.21 cm 6.22 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -10.6 mum -5.66 cm 1.61 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 -9.41 mum -5.67 cm 1.61 cm 814 keV 1.2 keV 74.3 mum 74.3 mum World eIoni - 2 -4.29 mum -20 cm 1.61 cm 1.43 GeV 20.7 keV 14.3 cm 14.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.93 mm 7.13 mm 4.04 keV 0 eV 0 fm 0 fm World initStep - 1 20.6 mum -6.42 mm 7.12 mm 5.32 MeV 4.04 keV 497 mum 497 mum World eIoni - 2 25.1 mum -7.07 mm 7.12 mm 11.8 MeV 46.6 eV 653 mum 1.15 mm World eIoni - 3 53.2 mum -14.2 cm 7.11 mm 1.36 GeV 20.1 keV 13.5 cm 13.6 cm World eIoni - 4 56.3 mum -20 cm 7.11 mm 1.94 GeV 11.1 keV 5.76 cm 19.4 cm OutOfWorldTransportation + 0 0 fm -10 cm 1.88 cm 3.32 keV 0 eV 0 fm 0 fm World initStep + 1 11.9 mum -10.1 cm 1.88 cm 3.83 MeV 3.32 keV 356 mum 356 mum World eIoni + 2 15.7 mum -10.1 cm 1.88 cm 11 MeV 83.9 eV 721 mum 1.08 mm World eIoni + 3 28.1 mum -12.5 cm 1.88 cm 248 MeV 4.28 keV 2.37 cm 2.48 cm World eIoni + 4 34.9 mum -16.1 cm 1.88 cm 605 MeV 7.3 keV 3.57 cm 6.05 cm World eIoni + 5 38.8 mum -18.7 cm 1.88 cm 864 MeV 4.48 keV 2.59 cm 8.64 cm World eIoni + 6 42.8 mum -20 cm 1.88 cm 996 MeV 1.16 keV 1.32 cm 9.96 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 53.2 mum -14.2 cm 7.11 mm 1.54 keV 0 eV 0 fm 0 fm World initStep - 1 47.3 mum -14.2 cm 7.12 mm 1.16 MeV 1.54 keV 106 mum 106 mum World eIoni - 2 29 mum -20 cm 7.13 mm 577 MeV 7.21 keV 5.75 cm 5.77 cm OutOfWorldTransportation + 0 38.8 mum -18.7 cm 1.88 cm 26.8 keV 0 eV 0 fm 0 fm World initStep + 1 -95.2 mum -19.1 cm 1.88 cm 45.9 MeV 4.95 keV 4.44 mm 4.44 mm World eIoni + 2 -113 mum -20 cm 1.88 cm 135 MeV 2.5 keV 8.87 mm 1.33 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14.9 cm 2.08 cm 1.54 GeV 31.3 keV 15.4 cm 15.4 cm World eIoni - 2 974 nm -20 cm 2.22 cm 2.05 GeV 8.92 keV 5.11 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14.9 cm 2.08 cm 3.18 keV 0 eV 0 fm 0 fm World initStep - 1 -10.2 mum -14.9 cm 2.07 cm 3.56 MeV 3.18 keV 330 mum 330 mum World eIoni - 2 -19.1 mum -15.4 cm 2.07 cm 54.6 MeV 706 eV 5.11 mm 5.44 mm World eIoni - 3 -26.9 mum -20 cm 2.07 cm 511 MeV 6.93 keV 4.56 cm 5.11 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.03 mm 6.02 mm 90.3 MeV 895 eV 7.55 mm 7.55 mm World eIoni - 2 -2.54 mum -8.59 cm 1.81 cm 909 MeV 12.9 keV 8.33 cm 9.09 cm World eIoni - 3 -3.41 mum -10.5 cm 1.91 cm 1.1 GeV 4.8 keV 1.92 cm 11 cm World eIoni - 4 -5.12 mum -20 cm 2.22 cm 2.05 GeV 19.2 keV 9.49 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.41 mum -10.5 cm 1.91 cm 4.75 keV 0 eV 0 fm 0 fm World initStep - 1 -9.36 mum -10.6 cm 1.91 cm 4.78 MeV 2.03 keV 450 mum 450 mum World eIoni - 2 -16.4 mum -12.8 cm 1.9 cm 234 MeV 5.38 keV 2.29 cm 2.33 cm World eIoni - 3 -23.8 mum -20 cm 1.9 cm 949 MeV 15.6 keV 7.15 cm 9.49 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -16.4 mum -12.8 cm 1.9 cm 4.35 keV 0 eV 0 fm 0 fm World initStep - 1 -3.94 mum -12.9 cm 1.9 cm 5.68 MeV 4.35 keV 532 mum 532 mum World eIoni - 2 5.73 mum -13.8 cm 1.9 cm 98.8 MeV 2.36 keV 9.31 mm 9.85 mm World eIoni - 3 10.9 mum -20 cm 1.9 cm 716 MeV 11.7 keV 6.17 cm 7.15 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.73 mum -13.8 cm 1.9 cm 1.56 keV 0 eV 0 fm 0 fm World initStep - 1 7.4 mum -13.8 cm 1.9 cm 1.18 MeV 1.56 keV 108 mum 108 mum World eIoni - 2 12.6 mum -20 cm 1.9 cm 617 MeV 6.09 keV 6.16 cm 6.17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.54 mum -8.59 cm 1.81 cm 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 3.17 mum -8.6 cm 1.81 cm 818 keV 1.2 keV 74.4 mum 74.4 mum World eIoni - 2 26.6 mum -20 cm 1.81 cm 1.14 GeV 15.4 keV 11.4 cm 11.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.03 mm 6.02 mm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 1.61 mum -4.1 mm 6.01 mm 718 keV 1.1 keV 66.1 mum 66.1 mum World eIoni - 2 9.67 mum -20 cm 5.99 mm 1.96 GeV 31.1 keV 19.6 cm 19.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.64 cm 1.52 cm 514 MeV 11.4 keV 5.12 cm 5.12 cm World eIoni - 2 2.82 mum -16.8 cm 2.13 cm 1.73 GeV 21.6 keV 12.1 cm 17.3 cm World eIoni - 3 3.62 mum -18.5 cm 2.18 cm 1.9 GeV 3.39 keV 1.71 cm 19 cm World eIoni - 4 4.39 mum -19.7 cm 2.21 cm 2.02 GeV 1.89 keV 1.21 cm 20.2 cm World eIoni - 5 4.79 mum -20 cm 2.22 cm 2.05 GeV 1.27 keV 3.12 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.39 mum -19.7 cm 2.21 cm 18.5 keV 0 eV 0 fm 0 fm World initStep - 1 -49.3 mum -19.8 cm 2.21 cm 9.73 MeV 1.76 keV 951 mum 951 mum World eIoni - 2 -64.8 mum -20 cm 2.21 cm 31.6 MeV 148 eV 2.18 mm 3.13 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.62 mum -18.5 cm 2.18 cm 1.82 keV 0 eV 0 fm 0 fm World initStep - 1 -4.79 mum -18.5 cm 2.18 cm 1.48 MeV 1.82 keV 135 mum 135 mum World eIoni - 2 -21.6 mum -20 cm 2.18 cm 152 MeV 2.76 keV 1.5 cm 1.52 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.82 mum -16.8 cm 2.13 cm 7.98 keV 0 eV 0 fm 0 fm World initStep - 1 -32.6 mum -16.9 cm 2.13 cm 17.6 MeV 7.98 keV 1.66 mm 1.66 mm World eIoni - 2 -43.6 mum -17.8 cm 2.13 cm 107 MeV 1.32 keV 8.97 mm 1.06 cm World eIoni - 3 -50.4 mum -20 cm 2.13 cm 324 MeV 5.22 keV 2.17 cm 3.23 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.64 cm 1.52 cm 1.25 keV 0 eV 0 fm 0 fm World initStep - 1 -3.87 mum -4.65 cm 1.52 cm 854 keV 1.25 keV 77.8 mum 77.8 mum World eIoni - 2 -20.6 mum -20 cm 1.52 cm 1.54 GeV 21.2 keV 15.4 cm 15.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.09 mm 4.45 mm 70.9 MeV 1.36 keV 5.05 mm 5.05 mm World eIoni - 2 2.56 mum -20 cm 2.22 cm 2.05 GeV 35.2 keV 20 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.09 mm 4.45 mm 3.18 keV 0 eV 0 fm 0 fm World initStep - 1 -2.12 mum -2.42 mm 4.44 mm 3.55 MeV 3.18 keV 329 mum 329 mum World eIoni - 2 -3.4 mum -4.35 mm 4.44 mm 22.8 MeV 306 eV 1.93 mm 2.26 mm World eIoni - 3 -5.98 mum -5.22 cm 4.42 mm 502 MeV 9.59 keV 4.79 cm 5.01 cm World eIoni - 4 -10.1 mum -15.5 cm 4.42 mm 1.53 GeV 20.5 keV 10.3 cm 15.3 cm World eIoni - 5 -8.92 mum -16.4 cm 4.41 mm 1.62 GeV 2.6 keV 8.84 mm 16.2 cm World eIoni - 6 -8.23 mum -16.9 cm 4.41 mm 1.67 GeV 1.53 keV 4.76 mm 16.7 cm World eBrem - 7 -4.12 mum -20 cm 4.4 mm 1.98 GeV 6.92 keV 3.11 cm 19.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.23 mum -16.9 cm 4.41 mm 2.59 MeV 0 eV 0 fm 0 fm World initStep - 1 -4.36 mum -20 cm 4.4 mm 2.59 MeV 0 eV 3.11 cm 3.11 cm OutOfWorldTransportation + 0 34.9 mum -16.1 cm 1.88 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 29.8 mum -16.1 cm 1.88 cm 714 keV 1.09 keV 64.9 mum 64.9 mum World eIoni + 2 10.2 mum -20 cm 1.88 cm 391 MeV 7.58 keV 3.91 cm 3.91 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.92 mum -16.4 cm 4.41 mm 2.06 keV 0 eV 0 fm 0 fm World initStep - 1 -14.5 mum -16.4 cm 4.42 mm 1.79 MeV 2.06 keV 164 mum 164 mum World eIoni - 2 -27.2 mum -20 cm 4.44 mm 359 MeV 5.09 keV 3.57 cm 3.59 cm OutOfWorldTransportation + 0 28.1 mum -12.5 cm 1.88 cm 6.98 keV 0 eV 0 fm 0 fm World initStep + 1 8.95 mum -12.6 cm 1.88 cm 13.3 MeV 4.3 keV 1.25 mm 1.25 mm World eIoni + 2 170 nm -13.9 cm 1.88 cm 140 MeV 2.6 keV 1.26 cm 1.39 cm World eIoni + 3 -5.09 mum -18.1 cm 1.87 cm 560 MeV 7.46 keV 4.21 cm 5.6 cm World eIoni + 4 -1.83 mum -20 cm 1.87 cm 749 MeV 3.13 keV 1.89 cm 7.48 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -10.1 mum -15.5 cm 4.42 mm 202 keV 0 eV 0 fm 0 fm World initStep - 1 -89.3 mum -15.6 cm 4.53 mm 10.1 MeV 292 eV 1.01 mm 1.01 mm World eIoni - 2 -174 mum -18.5 cm 4.66 mm 293 MeV 5.62 keV 2.83 cm 2.93 cm World eBrem - 3 -184 mum -20 cm 4.68 mm 448 MeV 3.75 keV 1.55 cm 4.48 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.98 mum -5.22 cm 4.42 mm 1.47 keV 0 eV 0 fm 0 fm World initStep - 1 -432 nm -5.23 cm 4.43 mm 1.09 MeV 1.47 keV 99 mum 99 mum World eIoni - 2 20.4 mum -20 cm 4.44 mm 1.48 GeV 22.1 keV 14.8 cm 14.8 cm OutOfWorldTransportation + 0 -5.09 mum -18.1 cm 1.87 cm 51.1 keV 0 eV 0 fm 0 fm World initStep + 1 -135 mum -19.2 cm 1.89 cm 115 MeV 9.66 keV 1.14 cm 1.14 cm World eIoni + 2 -143 mum -20 cm 1.89 cm 191 MeV 1.3 keV 7.51 mm 1.89 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3684,28 +3290,17 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.73 cm 1.87 cm 1.02 GeV 16.8 keV 10.2 cm 10.2 cm World eIoni - 2 -3.01 mum -14.9 cm 2.08 cm 1.54 GeV 10.9 keV 5.18 cm 15.4 cm World eIoni - 3 -6.08 mum -20 cm 2.22 cm 2.05 GeV 11.7 keV 5.09 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.01 mum -14.9 cm 2.08 cm 1.73 keV 0 eV 0 fm 0 fm World initStep - 1 3.98 mum -14.9 cm 2.08 cm 1.37 MeV 1.73 keV 125 mum 125 mum World eIoni - 2 23.3 mum -20 cm 2.07 cm 509 MeV 7.17 keV 5.08 cm 5.09 cm OutOfWorldTransportation + 1 0 fm -19.7 cm 2.21 cm 2.02 GeV 46.7 keV 20.2 cm 20.2 cm World eIoni + 2 53.9 nm -20 cm 2.22 cm 2.05 GeV 1.25 keV 3.4 mm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.73 cm 1.87 cm 6.57 keV 0 eV 0 fm 0 fm World initStep - 1 36.3 mum -9.84 cm 1.87 cm 12.5 MeV 6.57 keV 1.17 mm 1.17 mm World eIoni - 2 50.1 mum -10.6 cm 1.87 cm 84.5 MeV 752 eV 7.21 mm 8.38 mm World eIoni - 3 69.3 mum -20 cm 1.87 cm 1.03 GeV 22.7 keV 9.43 cm 10.3 cm OutOfWorldTransportation + 0 0 fm -19.7 cm 2.21 cm 1.9 keV 0 eV 0 fm 0 fm World initStep + 1 -7 mum -19.7 cm 2.21 cm 1.58 MeV 1.9 keV 145 mum 145 mum World eIoni + 2 -16.1 mum -20 cm 2.21 cm 34.1 MeV 393 eV 3.25 mm 3.4 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3713,91 +3308,163 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.71 cm 1.62 cm 621 MeV 11 keV 6.19 cm 6.19 cm World eIoni - 2 2.05 mum -12.7 cm 2 cm 1.32 GeV 16.2 keV 7.05 cm 13.2 cm World eIoni - 3 120 nm -17.1 cm 2.14 cm 1.76 GeV 8.51 keV 4.33 cm 17.6 cm World eIoni - 4 -958 nm -19.2 cm 2.2 cm 1.97 GeV 3.82 keV 2.13 cm 19.7 cm World eIoni - 5 -1.41 mum -20 cm 2.22 cm 2.05 GeV 2.25 keV 7.98 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -958 nm -19.2 cm 2.2 cm 2.86 keV 0 eV 0 fm 0 fm World initStep - 1 4.42 mum -19.2 cm 2.2 cm 3 MeV 2.86 keV 277 mum 277 mum World eIoni - 2 8.66 mum -19.5 cm 2.2 cm 31.3 MeV 697 eV 2.83 mm 3.1 mm World eIoni - 3 10.4 mum -20 cm 2.2 cm 80.1 MeV 656 eV 4.88 mm 7.98 mm OutOfWorldTransportation + 1 0 fm -6.32 cm 1.66 cm 682 MeV 13.1 keV 6.81 cm 6.81 cm World eIoni + 2 -680 nm -17 cm 2.14 cm 1.75 GeV 24.4 keV 10.7 cm 17.5 cm World eIoni + 3 -821 nm -19.7 cm 2.21 cm 2.02 GeV 4.24 keV 2.71 cm 20.2 cm World eIoni + 4 -816 nm -20 cm 2.22 cm 2.05 GeV 639 eV 3.2 mm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 120 nm -17.1 cm 2.14 cm 2.53 keV 0 eV 0 fm 0 fm World initStep - 1 6.92 mum -17.1 cm 2.14 cm 2.45 MeV 2.53 keV 226 mum 226 mum World eIoni - 2 15.6 mum -17.8 cm 2.14 cm 76.6 MeV 815 eV 7.41 mm 7.64 mm World eIoni - 3 19.1 mum -20 cm 2.14 cm 293 MeV 5.21 keV 2.16 cm 2.92 cm OutOfWorldTransportation + 0 -821 nm -19.7 cm 2.21 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -2.9 mum -19.7 cm 2.21 cm 787 keV 1.17 keV 71.5 mum 71.5 mum World eIoni + 2 -7.1 mum -20 cm 2.21 cm 32.1 MeV 249 eV 3.13 mm 3.2 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.05 mum -12.7 cm 2 cm 12.7 keV 0 eV 0 fm 0 fm World initStep - 1 86 mum -13.1 cm 2.01 cm 40.8 MeV 12.7 keV 3.88 mm 3.88 mm World eIoni - 2 94.8 mum -13.8 cm 2.01 cm 104 MeV 1.77 keV 6.29 mm 1.02 cm World eIoni - 3 102 mum -15 cm 2.01 cm 230 MeV 3.14 keV 1.26 cm 2.28 cm World eIoni - 4 117 mum -20 cm 2.01 cm 728 MeV 11.3 keV 4.98 cm 7.26 cm OutOfWorldTransportation + 0 -680 nm -17 cm 2.14 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 -295 nm -17 cm 2.14 cm 701 keV 1.07 keV 63.8 mum 63.8 mum World eIoni + 2 1.12 mum -20 cm 2.14 cm 303 MeV 4.35 keV 3.03 cm 3.03 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.32 cm 1.66 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 1.21 mum -6.33 cm 1.66 cm 858 keV 1.25 keV 78.3 mum 78.3 mum World eIoni + 2 6.32 mum -20 cm 1.66 cm 1.37 GeV 19.2 keV 13.7 cm 13.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.66 cm 1.52 cm 516 MeV 8.87 keV 5.14 cm 5.14 cm World eIoni + 2 3.42 mum -16.8 cm 2.13 cm 1.73 GeV 23 keV 12.1 cm 17.3 cm World eIoni + 3 3.74 mum -20 cm 2.22 cm 2.05 GeV 8.07 keV 3.2 cm 20.5 cm World eIoni + 4 3.74 mum -20 cm 2.22 cm 2.05 GeV 36.7 eV 412 mum 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.74 mum -20 cm 2.22 cm 3.59 keV 0 eV 0 fm 0 fm World initStep + 1 4.16 mum -20 cm 2.22 cm 771 keV 502 eV 75.7 mum 75.7 mum World eIoni + 2 4.52 mum -20 cm 2.22 cm 4.16 MeV 15.9 eV 339 mum 414 mumOutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.42 mum -16.8 cm 2.13 cm 1.79 keV 0 eV 0 fm 0 fm World initStep + 1 5.44 mum -16.8 cm 2.13 cm 1.44 MeV 1.79 keV 132 mum 132 mum World eIoni + 2 10.5 mum -20 cm 2.13 cm 325 MeV 5.13 keV 3.23 cm 3.25 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.66 cm 1.52 cm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 -4.32 mum -4.67 cm 1.52 cm 688 keV 1.06 keV 62.4 mum 62.4 mum World eIoni + 2 -25.1 mum -20 cm 1.53 cm 1.53 GeV 22.5 keV 15.3 cm 15.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -9.21 mm 8.58 mm 142 MeV 2.47 keV 1.33 cm 1.33 cm World eIoni + 2 5.05 mum -20 cm 2.22 cm 2.05 GeV 37.9 keV 19.2 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.21 mm 8.58 mm 1.63 keV 0 eV 0 fm 0 fm World initStep + 1 -3.8 mum -9.32 mm 8.58 mm 1.28 MeV 1.63 keV 115 mum 115 mum World eIoni + 2 -17.1 mum -20 cm 8.61 mm 1.91 GeV 27.2 keV 19.1 cm 19.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.24 cm 9.65 mm 174 MeV 5.07 keV 1.67 cm 1.67 cm World eIoni + 2 -198 nm -1.74 cm 1.1 cm 224 MeV 1.71 keV 5.18 mm 2.19 cm World eIoni + 3 -1.27 mum -3.74 cm 1.42 cm 424 MeV 4.2 keV 2.03 cm 4.21 cm World eIoni + 4 245 nm -8.01 cm 1.78 cm 851 MeV 7.64 keV 4.29 cm 8.5 cm World eIoni + 5 5.91 mum -20 cm 2.22 cm 2.05 GeV 26.2 keV 12 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 245 nm -8.01 cm 1.78 cm 1.8 keV 0 eV 0 fm 0 fm World initStep + 1 -8.74 mum -8.02 cm 1.78 cm 1.46 MeV 1.8 keV 133 mum 133 mum World eIoni + 2 -36.3 mum -20 cm 1.78 cm 1.2 GeV 16.6 keV 12 cm 12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.27 mum -3.74 cm 1.42 cm 1.5 keV 0 eV 0 fm 0 fm World initStep + 1 -8.45 mum -3.75 cm 1.42 cm 1.12 MeV 1.5 keV 101 mum 101 mum World eIoni + 2 -35.4 mum -20 cm 1.42 cm 1.63 GeV 22.8 keV 16.3 cm 16.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -198 nm -1.74 cm 1.1 cm 9.22 keV 0 eV 0 fm 0 fm World initStep + 1 4.82 mum -1.9 cm 1.09 cm 17.5 MeV 5.93 keV 1.66 mm 1.66 mm World eIoni + 2 5.43 mum -2.08 cm 1.09 cm 35 MeV 488 eV 1.74 mm 3.41 mm World eIoni + 3 7.27 mum -4.39 cm 1.09 cm 266 MeV 4.94 keV 2.31 cm 2.65 cm World eIoni + 4 14.3 mum -18.2 cm 1.09 cm 1.65 GeV 28.8 keV 13.8 cm 16.5 cm World eIoni + 5 15.1 mum -20 cm 1.09 cm 1.83 GeV 2.86 keV 1.77 cm 18.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 14.3 mum -18.2 cm 1.09 cm 2.23 keV 0 eV 0 fm 0 fm World initStep + 1 2.95 mum -18.3 cm 1.09 cm 2.02 MeV 2.23 keV 186 mum 186 mum World eIoni + 2 -7.91 mum -18.5 cm 1.09 cm 24.1 MeV 318 eV 2.21 mm 2.39 mm World eIoni + 3 -17.4 mum -20 cm 1.09 cm 177 MeV 3.24 keV 1.53 cm 1.77 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 102 mum -15 cm 2.01 cm 3.49 keV 0 eV 0 fm 0 fm World initStep - 1 92.2 mum -15.1 cm 2.01 cm 4.17 MeV 3.49 keV 388 mum 388 mum World eIoni - 2 85.1 mum -15.4 cm 2.01 cm 42 MeV 491 eV 3.78 mm 4.17 mm World eIoni - 3 77.1 mum -20 cm 2.01 cm 498 MeV 6.83 keV 4.56 cm 4.98 cm OutOfWorldTransportation + 0 7.27 mum -4.39 cm 1.09 cm 1.15 keV 0 eV 0 fm 0 fm World initStep + 1 2.55 mum -4.39 cm 1.09 cm 773 keV 1.15 keV 70.2 mum 70.2 mum World eIoni + 2 -18.8 mum -20 cm 1.09 cm 1.56 GeV 21.4 keV 15.6 cm 15.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.71 cm 1.62 cm 4.43 keV 0 eV 0 fm 0 fm World initStep - 1 -10.1 mum -5.77 cm 1.62 cm 6.26 MeV 4.43 keV 586 mum 586 mum World eIoni - 2 -17 mum -6.58 cm 1.62 cm 87.1 MeV 1.24 keV 8.08 mm 8.67 mm World eIoni - 3 -28.2 mum -10.3 cm 1.62 cm 460 MeV 5.82 keV 3.73 cm 4.6 cm World eIoni - 4 -41.6 mum -20 cm 1.62 cm 1.43 GeV 21.5 keV 9.7 cm 14.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -28.2 mum -10.3 cm 1.62 cm 2.58 keV 0 eV 0 fm 0 fm World initStep - 1 -14.8 mum -10.3 cm 1.62 cm 2.54 MeV 2.58 keV 234 mum 234 mum World eIoni - 2 5.15 mum -11.7 cm 1.62 cm 139 MeV 1.1 keV 1.36 cm 1.38 cm World eIoni - 3 21.7 mum -20 cm 1.62 cm 970 MeV 17 keV 8.31 cm 9.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.15 mum -11.7 cm 1.62 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 -15.3 nm -11.7 cm 1.62 cm 724 keV 1.1 keV 65.9 mum 65.9 mum World eIoni - 2 -22.2 mum -20 cm 1.62 cm 831 MeV 12.4 keV 8.31 cm 8.31 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -17 mum -6.58 cm 1.62 cm 2.01 keV 0 eV 0 fm 0 fm World initStep - 1 -8.06 mum -6.59 cm 1.62 cm 1.71 MeV 2.01 keV 156 mum 156 mum World eIoni - 2 17.9 mum -20 cm 1.62 cm 1.34 GeV 19.6 keV 13.4 cm 13.4 cm OutOfWorldTransportation + 0 0 fm -1.24 cm 9.65 mm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 1.21 mum -1.24 cm 9.64 mm 783 keV 1.17 keV 71.8 mum 71.8 mum World eIoni + 2 6.86 mum -20 cm 9.62 mm 1.88 GeV 26.9 keV 18.8 cm 18.8 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3805,299 +3472,27 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -400 mum 2 mm 54 MeV 217 eV 2.05 mm 2.05 mm World eIoni - 2 13.7 mum -10.5 cm 1.91 cm 1.1 GeV 22.1 keV 10.8 cm 11 cm World eIoni - 3 13.8 mum -13.3 cm 2.02 cm 1.38 GeV 7.24 keV 2.8 cm 13.8 cm World eIoni - 4 15 mum -20 cm 2.22 cm 2.05 GeV 14.2 keV 6.72 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 13.8 mum -13.3 cm 2.02 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 9.6 mum -13.3 cm 2.02 cm 920 keV 1.31 keV 83.6 mum 83.6 mum World eIoni - 2 -5.71 mum -20 cm 2.02 cm 672 MeV 9.81 keV 6.71 cm 6.72 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 13.7 mum -10.5 cm 1.91 cm 1.62 keV 0 eV 0 fm 0 fm World initStep - 1 20.9 mum -10.5 cm 1.9 cm 1.25 MeV 1.62 keV 114 mum 114 mum World eIoni - 2 44 mum -20 cm 1.9 cm 952 MeV 11.4 keV 9.51 cm 9.52 cm OutOfWorldTransportation + 1 0 fm -6.21 cm 1.66 cm 671 MeV 12.8 keV 6.7 cm 6.7 cm World eIoni + 2 9.09 mum -20 cm 2.22 cm 2.05 GeV 28.5 keV 13.8 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -400 mum 2 mm 1.75 keV 0 eV 0 fm 0 fm World initStep - 1 -8.28 mum -525 mum 2 mm 1.39 MeV 1.75 keV 128 mum 128 mum World eIoni - 2 -37.1 mum -20 cm 1.99 mm 2 GeV 28.6 keV 19.9 cm 20 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.34 cm 9.95 mm 184 MeV 3.35 keV 1.78 cm 1.78 cm World eIoni - 2 -8.42 mum -20 cm 2.22 cm 2.05 GeV 44 keV 18.7 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.34 cm 9.95 mm 1.43 keV 0 eV 0 fm 0 fm World initStep - 1 6.38 mum -1.35 cm 9.95 mm 1.05 MeV 1.43 keV 94.8 mum 94.8 mum World eIoni - 2 31.5 mum -20 cm 9.96 mm 1.87 GeV 29.6 keV 18.7 cm 18.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.25 cm 1.36 cm 375 MeV 8.33 keV 3.72 cm 3.72 cm World eIoni - 2 2.47 mum -20 cm 2.22 cm 2.05 GeV 38.4 keV 16.8 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.25 cm 1.36 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 -2.26 mum -3.25 cm 1.36 cm 718 keV 1.09 keV 64.9 mum 64.9 mum World eIoni - 2 -13 mum -20 cm 1.36 cm 1.68 GeV 23.6 keV 16.7 cm 16.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.53 cm 1.75 cm 803 MeV 12.8 keV 8.02 cm 8.02 cm World eIoni - 2 -2.23 mum -10 cm 1.88 cm 1.05 GeV 5.6 keV 2.49 cm 10.5 cm World eIoni - 3 -5.38 mum -20 cm 2.22 cm 2.05 GeV 20.4 keV 10 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.23 mum -10 cm 1.88 cm 1.6 keV 0 eV 0 fm 0 fm World initStep - 1 -9.13 mum -10 cm 1.88 cm 1.22 MeV 1.6 keV 111 mum 111 mum World eIoni - 2 -32.2 mum -20 cm 1.88 cm 999 MeV 17.4 keV 9.98 cm 9.99 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.53 cm 1.75 cm 6.79 keV 0 eV 0 fm 0 fm World initStep - 1 42 mum -7.65 cm 1.75 cm 13.3 MeV 6.79 keV 1.25 mm 1.25 mm World eIoni - 2 47.8 mum -7.79 cm 1.75 cm 27.4 MeV 199 eV 1.42 mm 2.67 mm World eIoni - 3 76.2 mum -15.1 cm 1.75 cm 755 MeV 14.6 keV 7.27 cm 7.54 cm World eBrem - 4 80.4 mum -20 cm 1.75 cm 1.25 GeV 12.5 keV 4.93 cm 12.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.56 mm 6.94 mm 106 MeV 2.34 keV 9.34 mm 9.34 mm World eIoni - 2 529 nm -7.66 cm 1.76 cm 816 MeV 13.1 keV 7.21 cm 8.15 cm World eIoni - 3 5.09 mum -20 cm 2.22 cm 2.05 GeV 25.1 keV 12.4 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 529 nm -7.66 cm 1.76 cm 2.3 keV 0 eV 0 fm 0 fm World initStep - 1 -11 mum -7.68 cm 1.76 cm 2.12 MeV 2.3 keV 195 mum 195 mum World eIoni - 2 -21.5 mum -7.89 cm 1.76 cm 23.7 MeV 767 eV 2.16 mm 2.36 mm World eIoni - 3 -37.3 mum -13.1 cm 1.75 cm 546 MeV 10.7 keV 5.22 cm 5.46 cm World eIoni - 4 -36.8 mum -15.3 cm 1.75 cm 764 MeV 5.31 keV 2.18 cm 7.64 cm World eIoni - 5 -35.8 mum -20 cm 1.75 cm 1.23 GeV 9.17 keV 4.7 cm 12.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -36.8 mum -15.3 cm 1.75 cm 1.68 keV 0 eV 0 fm 0 fm World initStep - 1 -40.4 mum -15.3 cm 1.76 cm 1.32 MeV 1.68 keV 121 mum 121 mum World eIoni - 2 -50.4 mum -20 cm 1.76 cm 471 MeV 5.15 keV 4.69 cm 4.71 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -37.3 mum -13.1 cm 1.75 cm 3.67 keV 0 eV 0 fm 0 fm World initStep - 1 -44.6 mum -13.1 cm 1.75 cm 431 keV 425 eV 43.6 mum 43.6 mum World eIoni - 2 -77 mum -14.8 cm 1.75 cm 171 MeV 3.49 keV 1.7 cm 1.71 cm World eIoni - 3 -85.5 mum -20 cm 1.75 cm 688 MeV 13.3 keV 5.18 cm 6.88 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.56 mm 6.94 mm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -368 nm -5.63 mm 6.93 mm 663 keV 1.04 keV 61 mum 61 mum World eIoni - 2 -2.28 mum -20 cm 6.91 mm 1.94 GeV 32.2 keV 19.4 cm 19.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -3.92 cm 1.44 cm 441 MeV 7.61 keV 4.39 cm 4.39 cm World eIoni - 2 9.74 mum -20 cm 2.22 cm 2.05 GeV 30.1 keV 16.1 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.92 cm 1.44 cm 4.17 keV 0 eV 0 fm 0 fm World initStep - 1 -22.7 mum -3.97 cm 1.44 cm 5.63 MeV 4.17 keV 526 mum 526 mum World eIoni - 2 -34.3 mum -4.29 cm 1.44 cm 38.1 MeV 1.18 keV 3.25 mm 3.77 mm World eIoni - 3 -57.8 mum -20 cm 1.44 cm 1.61 GeV 30.7 keV 15.7 cm 16.1 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -2.55 cm 1.26 cm 305 MeV 8.08 keV 3.02 cm 3.02 cm World eIoni - 2 1.2 mum -3.37 cm 1.38 cm 387 MeV 2.58 keV 8.26 mm 3.84 cm World eIoni - 3 2.17 mum -4.61 cm 1.52 cm 511 MeV 2.66 keV 1.25 cm 5.09 cm World eIoni - 4 1.87 mum -20 cm 2.22 cm 2.05 GeV 28.4 keV 15.4 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.17 mum -4.61 cm 1.52 cm 1.48 keV 0 eV 0 fm 0 fm World initStep - 1 9.06 mum -4.62 cm 1.52 cm 1.1 MeV 1.48 keV 100 mum 100 mum World eIoni - 2 34.9 mum -20 cm 1.52 cm 1.54 GeV 21.2 keV 15.4 cm 15.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.2 mum -3.37 cm 1.38 cm 1.85 keV 0 eV 0 fm 0 fm World initStep - 1 4.4 mum -3.38 cm 1.38 cm 1.52 MeV 1.85 keV 139 mum 139 mum World eIoni - 2 14.7 mum -20 cm 1.37 cm 1.66 GeV 22.1 keV 16.6 cm 16.6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.55 cm 1.26 cm 2.98 keV 0 eV 0 fm 0 fm World initStep - 1 -14.3 mum -2.58 cm 1.26 cm 3.2 MeV 2.98 keV 296 mum 296 mum World eIoni - 2 -34.2 mum -4.3 cm 1.25 cm 175 MeV 2.97 keV 1.72 cm 1.75 cm World eIoni - 3 -38 mum -6.3 cm 1.25 cm 375 MeV 3.63 keV 2 cm 3.75 cm World eIoni - 4 -42.9 mum -9.68 cm 1.25 cm 713 MeV 5.13 keV 3.38 cm 7.12 cm World eIoni - 5 -48.3 mum -15.2 cm 1.25 cm 1.27 GeV 10.6 keV 5.56 cm 12.7 cm World eIoni - 6 -53.2 mum -20 cm 1.25 cm 1.74 GeV 11.5 keV 4.76 cm 17.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -48.3 mum -15.2 cm 1.25 cm 5.39 keV 0 eV 0 fm 0 fm World initStep - 1 -16.6 mum -15.3 cm 1.25 cm 8.82 MeV 5.39 keV 829 mum 829 mum World eIoni - 2 -6.01 mum -15.6 cm 1.25 cm 38.6 MeV 1.1 keV 2.98 mm 3.81 mm World eIoni - 3 4.72 mum -16.9 cm 1.25 cm 166 MeV 1.67 keV 1.28 cm 1.66 cm World eIoni - 4 16.2 mum -18.2 cm 1.25 cm 299 MeV 3.22 keV 1.32 cm 2.98 cm World eIoni - 5 26.1 mum -20 cm 1.25 cm 477 MeV 4.44 keV 1.78 cm 4.76 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 16.2 mum -18.2 cm 1.25 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 13.5 mum -18.2 cm 1.25 cm 681 keV 1.05 keV 61.9 mum 61.9 mum World eIoni - 2 4.44 mum -20 cm 1.25 cm 178 MeV 2.96 keV 1.78 cm 1.78 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.72 mum -16.9 cm 1.25 cm 18.4 keV 0 eV 0 fm 0 fm World initStep - 1 -87.3 mum -17.2 cm 1.25 cm 36.3 MeV 3.95 keV 3.49 mm 3.49 mm World eIoni - 2 -113 mum -20 cm 1.25 cm 313 MeV 5.83 keV 2.76 cm 3.11 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -42.9 mum -9.68 cm 1.25 cm 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 -40 mum -9.68 cm 1.26 cm 843 keV 1.23 keV 76.6 mum 76.6 mum World eIoni - 2 -28.4 mum -20 cm 1.26 cm 1.03 GeV 16.8 keV 10.3 cm 10.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -38 mum -6.3 cm 1.25 cm 1.72 keV 0 eV 0 fm 0 fm World initStep - 1 -32.6 mum -6.31 cm 1.25 cm 1.36 MeV 1.72 keV 124 mum 124 mum World eIoni - 2 -15.9 mum -15.2 cm 1.25 cm 889 MeV 11.5 keV 8.88 cm 8.9 cm World eBrem - 3 -14.7 mum -20 cm 1.25 cm 1.37 GeV 10.4 keV 4.8 cm 13.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -15.9 mum -15.2 cm 1.25 cm 646 keV 0 eV 0 fm 0 fm World initStep - 1 -36.7 mum -20 cm 1.25 cm 646 keV 0 eV 4.8 cm 4.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -10 cm 1.88 cm 1.05 GeV 22.7 keV 10.5 cm 10.5 cm World eIoni - 2 2.47 mum -20 cm 2.22 cm 2.05 GeV 26 keV 9.97 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10 cm 1.88 cm 2.01 keV 0 eV 0 fm 0 fm World initStep - 1 -8.31 mum -10 cm 1.88 cm 1.71 MeV 2.01 keV 156 mum 156 mum World eIoni - 2 -29.8 mum -16.6 cm 1.89 cm 659 MeV 7.7 keV 6.57 cm 6.59 cm World eIoni - 3 -32.4 mum -20 cm 1.89 cm 997 MeV 6.36 keV 3.38 cm 9.97 cm OutOfWorldTransportation + 0 0 fm -6.21 cm 1.66 cm 8.23 keV 0 eV 0 fm 0 fm World initStep + 1 -38.1 mum -6.33 cm 1.66 cm 11.8 MeV 3.03 keV 1.13 mm 1.13 mm World eIoni + 2 -43.5 mum -6.44 cm 1.66 cm 23.5 MeV 519 eV 1.17 mm 2.29 mm World eIoni + 3 -81.5 mum -20 cm 1.66 cm 1.38 GeV 30.1 keV 13.6 cm 13.8 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -29.8 mum -16.6 cm 1.89 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 -25.5 mum -16.6 cm 1.89 cm 706 keV 1.08 keV 64.2 mum 64.2 mum World eIoni - 2 -9.5 mum -20 cm 1.89 cm 338 MeV 5.2 keV 3.37 cm 3.38 cm OutOfWorldTransportation + 0 -43.5 mum -6.44 cm 1.66 cm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 -41.7 mum -6.45 cm 1.66 cm 689 keV 1.06 keV 62.6 mum 62.6 mum World eIoni + 2 -32.9 mum -20 cm 1.66 cm 1.36 GeV 18.9 keV 13.6 cm 13.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -4105,27 +3500,28 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.27 cm 1.48 cm 477 MeV 8.93 keV 4.75 cm 4.75 cm World eIoni - 2 1.52 mum -11.8 cm 1.96 cm 1.23 GeV 17.9 keV 7.55 cm 12.3 cm World eIoni - 3 1.96 mum -20 cm 2.22 cm 2.05 GeV 18.2 keV 8.2 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -3.7 cm 1.42 cm 420 MeV 9.02 keV 4.18 cm 4.18 cm World eIoni + 2 2.34 mum -18.9 cm 2.19 cm 1.94 GeV 27.9 keV 15.2 cm 19.4 cm World eIoni + 3 1.77 mum -20 cm 2.22 cm 2.05 GeV 2.73 keV 1.14 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.52 mum -11.8 cm 1.96 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 2.84 mum -11.8 cm 1.96 cm 915 keV 1.31 keV 83.4 mum 83.4 mum World eIoni - 2 7.69 mum -20 cm 1.96 cm 819 MeV 11.2 keV 8.18 cm 8.19 cm OutOfWorldTransportation + 0 2.34 mum -18.9 cm 2.19 cm 17.2 keV 0 eV 0 fm 0 fm World initStep + 1 79.7 mum -19.1 cm 2.2 cm 29.6 MeV 4.37 keV 2.85 mm 2.85 mm World eIoni + 2 86.2 mum -19.4 cm 2.2 cm 52.6 MeV 315 eV 2.3 mm 5.15 mm World eIoni + 3 95.2 mum -20 cm 2.2 cm 116 MeV 1.41 keV 6.33 mm 1.15 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.27 cm 1.48 cm 1.07 keV 0 eV 0 fm 0 fm World initStep - 1 -2.45 mum -4.28 cm 1.48 cm 699 keV 1.07 keV 63.8 mum 63.8 mum World eIoni - 2 -14.3 mum -20 cm 1.48 cm 1.57 GeV 24.3 keV 15.7 cm 15.7 cm OutOfWorldTransportation + 0 0 fm -3.7 cm 1.42 cm 1.2 keV 0 eV 0 fm 0 fm World initStep + 1 -2.49 mum -3.71 cm 1.42 cm 811 keV 1.2 keV 74 mum 74 mum World eIoni + 2 -13.6 mum -20 cm 1.42 cm 1.63 GeV 27.2 keV 16.3 cm 16.3 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -4133,301 +3529,68 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.97 cm 1.15 cm 247 MeV 6.12 keV 2.42 cm 2.42 cm World eIoni - 2 -6.56 mum -7.6 cm 1.75 cm 810 MeV 11.9 keV 5.67 cm 8.09 cm World eIoni - 3 -12.6 mum -20 cm 2.22 cm 2.05 GeV 31.6 keV 12.4 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -6.56 mum -7.6 cm 1.75 cm 1.54 keV 0 eV 0 fm 0 fm World initStep - 1 -4.69 mum -7.61 cm 1.75 cm 1.16 MeV 1.54 keV 106 mum 106 mum World eIoni - 2 1.8 mum -20 cm 1.75 cm 1.24 GeV 20.6 keV 12.4 cm 12.4 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.97 cm 1.15 cm 2.95 keV 0 eV 0 fm 0 fm World initStep - 1 15.7 mum -1.99 cm 1.15 cm 3.17 MeV 2.95 keV 293 mum 293 mum World eIoni - 2 34.5 mum -3.06 cm 1.15 cm 110 MeV 4.19 keV 1.06 cm 1.09 cm World eIoni - 3 48.9 mum -16.2 cm 1.15 cm 1.43 GeV 28.7 keV 13.2 cm 14.2 cm World eIoni - 4 50.7 mum -20 cm 1.15 cm 1.8 GeV 6.42 keV 3.79 cm 18 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 48.9 mum -16.2 cm 1.15 cm 8.23 keV 0 eV 0 fm 0 fm World initStep - 1 32.7 mum -16.4 cm 1.15 cm 18.6 MeV 8.23 keV 1.76 mm 1.76 mm World eIoni - 2 30.2 mum -16.7 cm 1.15 cm 48.2 MeV 444 eV 2.96 mm 4.72 mm World eIoni - 3 24.5 mum -20 cm 1.15 cm 380 MeV 4.51 keV 3.32 cm 3.79 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -5.75 cm 1.62 cm 625 MeV 11.5 keV 6.23 cm 6.23 cm World eIoni - 2 5.76 mum -12.7 cm 2 cm 1.32 GeV 17.7 keV 6.95 cm 13.2 cm World eIoni - 3 5.86 mum -13 cm 2.01 cm 1.35 GeV 207 eV 3.11 mm 13.5 cm World eIoni - 4 6.01 mum -18.5 cm 2.18 cm 1.9 GeV 13 keV 5.53 cm 19 cm World eIoni - 5 6.3 mum -20 cm 2.22 cm 2.05 GeV 2.44 keV 1.47 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.01 mum -18.5 cm 2.18 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 -862 nm -18.5 cm 2.18 cm 1.28 MeV 1.65 keV 116 mum 116 mum World eIoni - 2 -15.6 mum -20 cm 2.18 cm 147 MeV 2.54 keV 1.46 cm 1.47 cm OutOfWorldTransportation + 1 0 fm -7.82 cm 1.76 cm 832 MeV 14.1 keV 8.31 cm 8.31 cm World eIoni + 2 11.2 mum -19.4 cm 2.21 cm 1.99 GeV 24.5 keV 11.6 cm 19.9 cm World eIoni + 3 11.4 mum -19.6 cm 2.21 cm 2.01 GeV 176 eV 2.02 mm 20.1 cm World eIoni + 4 11.6 mum -20 cm 2.22 cm 2.05 GeV 1.29 keV 3.71 mm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.86 mum -13 cm 2.01 cm 1.4 keV 0 eV 0 fm 0 fm World initStep - 1 12.7 mum -13 cm 2.01 cm 1.02 MeV 1.4 keV 92.6 mum 92.6 mum World eIoni - 2 36.3 mum -20 cm 2.01 cm 700 MeV 9.67 keV 6.99 cm 7 cm OutOfWorldTransportation + 0 11.4 mum -19.6 cm 2.21 cm 2.78 keV 0 eV 0 fm 0 fm World initStep + 1 16.7 mum -19.7 cm 2.21 cm 2.87 MeV 2.78 keV 265 mum 265 mum World eIoni + 2 20 mum -19.8 cm 2.21 cm 17.2 MeV 221 eV 1.43 mm 1.69 mm World eIoni + 3 21.4 mum -20 cm 2.21 cm 37.3 MeV 258 eV 2.02 mm 3.71 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.76 mum -12.7 cm 2 cm 1.29 keV 0 eV 0 fm 0 fm World initStep - 1 11.7 mum -12.7 cm 2 cm 903 keV 1.29 keV 82.1 mum 82.1 mum World eIoni - 2 33.1 mum -20 cm 2 cm 732 MeV 9.42 keV 7.31 cm 7.31 cm OutOfWorldTransportation + 0 11.2 mum -19.4 cm 2.21 cm 1.99 keV 0 eV 0 fm 0 fm World initStep + 1 9.01 mum -19.4 cm 2.21 cm 1.69 MeV 1.99 keV 155 mum 155 mum World eIoni + 2 5.71 mum -20 cm 2.21 cm 57.4 MeV 952 eV 5.57 mm 5.73 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.75 cm 1.62 cm 10.4 keV 0 eV 0 fm 0 fm World initStep - 1 -42.6 mum -5.91 cm 1.62 cm 17.6 MeV 3 keV 1.68 mm 1.68 mm World eIoni - 2 -68.2 mum -10.4 cm 1.63 cm 463 MeV 8.13 keV 4.46 cm 4.62 cm World eIoni - 3 -80.4 mum -20 cm 1.63 cm 1.43 GeV 20.1 keV 9.63 cm 14.3 cm OutOfWorldTransportation + 0 0 fm -7.82 cm 1.76 cm 21.1 keV 0 eV 0 fm 0 fm World initStep + 1 -10.8 mum -7.82 cm 1.77 cm 234 keV 136 eV 25.6 mum 25.6 mum World eIoni + 2 -92.2 mum -11.3 cm 1.77 cm 348 MeV 6.37 keV 3.48 cm 3.48 cm World eIoni + 3 -109 mum -17.2 cm 1.77 cm 939 MeV 14.9 keV 5.91 cm 9.39 cm World eIoni + 4 -110 mum -18.2 cm 1.77 cm 1.04 GeV 2.16 keV 9.89 mm 10.4 cm World eIoni + 5 -113 mum -20 cm 1.77 cm 1.22 GeV 4.72 keV 1.81 cm 12.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -110 mum -18.2 cm 1.77 cm 5.15 keV 0 eV 0 fm 0 fm World initStep + 1 -102 mum -18.2 cm 1.77 cm 1.24 MeV 976 eV 121 mum 121 mum World eIoni + 2 -80.6 mum -20 cm 1.77 cm 181 MeV 1.81 keV 1.79 cm 1.81 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -68.2 mum -10.4 cm 1.63 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 -63.3 mum -10.4 cm 1.63 cm 715 keV 1.09 keV 65 mum 65 mum World eIoni - 2 -42.1 mum -20 cm 1.63 cm 963 MeV 15.3 keV 9.62 cm 9.63 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -9.34 cm 1.85 cm 984 MeV 20 keV 9.83 cm 9.83 cm World eIoni - 2 -1.02 mum -12.7 cm 2 cm 1.32 GeV 7.14 keV 3.33 cm 13.2 cm World eIoni - 3 -1.03 mum -13.2 cm 2.02 cm 1.37 GeV 874 eV 5.3 mm 13.7 cm World eIoni - 4 -1.12 mum -13.8 cm 2.04 cm 1.43 GeV 959 eV 6 mm 14.3 cm World eIoni - 5 -2.53 mum -20 cm 2.22 cm 2.05 GeV 11.3 keV 6.21 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.12 mum -13.8 cm 2.04 cm 2.53 keV 0 eV 0 fm 0 fm World initStep - 1 3.15 mum -13.8 cm 2.04 cm 2.44 MeV 2.53 keV 225 mum 225 mum World eIoni - 2 5.28 mum -13.9 cm 2.04 cm 10.1 MeV 67.5 eV 764 mum 989 mum World eIoni - 3 12 mum -20 cm 2.03 cm 621 MeV 10.3 keV 6.11 cm 6.21 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.03 mum -13.2 cm 2.02 cm 2.57 keV 0 eV 0 fm 0 fm World initStep - 1 4.52 mum -13.2 cm 2.02 cm 2.51 MeV 2.57 keV 231 mum 231 mum World eIoni - 2 8.58 mum -13.4 cm 2.01 cm 19.6 MeV 95.3 eV 1.71 mm 1.94 mm World eIoni - 3 16.6 mum -19.7 cm 2.01 cm 653 MeV 8.31 keV 6.33 cm 6.53 cm World eIoni - 4 16.6 mum -20 cm 2.01 cm 681 MeV 670 eV 2.81 mm 6.81 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 16.6 mum -19.7 cm 2.01 cm 3.35 keV 0 eV 0 fm 0 fm World initStep - 1 20 mum -19.8 cm 2.01 cm 3.9 MeV 3.35 keV 362 mum 362 mum World eIoni - 2 22 mum -20 cm 2.01 cm 28.4 MeV 885 eV 2.45 mm 2.81 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.02 mum -12.7 cm 2 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 -6.63 mum -12.7 cm 2 cm 835 keV 1.22 keV 76 mum 76 mum World eIoni - 2 -27.7 mum -20 cm 2 cm 734 MeV 14.8 keV 7.33 cm 7.34 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -9.34 cm 1.85 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 5.77 mum -9.35 cm 1.85 cm 820 keV 1.21 keV 74.6 mum 74.6 mum World eIoni - 2 29.3 mum -20 cm 1.85 cm 1.07 GeV 19.4 keV 10.7 cm 10.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -1.27 cm 9.74 mm 177 MeV 2.83 keV 1.7 cm 1.7 cm World eIoni - 2 510 nm -2.25 cm 1.2 cm 275 MeV 1.69 keV 1 cm 2.7 cm World eIoni - 3 1.14 mum -10.9 cm 1.92 cm 1.14 GeV 23 keV 8.73 cm 11.4 cm World eIoni - 4 2.3 mum -20 cm 2.22 cm 2.05 GeV 18.4 keV 9.07 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.14 mum -10.9 cm 1.92 cm 1.49 keV 0 eV 0 fm 0 fm World initStep - 1 -1.77 mum -10.9 cm 1.92 cm 1.11 MeV 1.49 keV 101 mum 101 mum World eIoni - 2 -11.7 mum -20 cm 1.92 cm 906 MeV 13.5 keV 9.05 cm 9.06 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 510 nm -2.25 cm 1.2 cm 1.52 keV 0 eV 0 fm 0 fm World initStep - 1 1.84 mum -2.26 cm 1.2 cm 1.14 MeV 1.52 keV 103 mum 103 mum World eIoni - 2 6.78 mum -20 cm 1.21 cm 1.78 GeV 22.3 keV 17.7 cm 17.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.27 cm 9.74 mm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -1.73 mum -1.28 cm 9.75 mm 670 keV 1.03 keV 60 mum 60 mum World eIoni - 2 -10.3 mum -20 cm 9.77 mm 1.87 GeV 24.7 keV 18.7 cm 18.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -19.5 cm 2.21 cm 2 GeV 37.3 keV 20 cm 20 cm World eIoni - 2 -106 nm -20 cm 2.22 cm 2.05 GeV 1.22 keV 5.41 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -19.5 cm 2.21 cm 1.6 keV 0 eV 0 fm 0 fm World initStep - 1 7.74 mum -19.5 cm 2.21 cm 1.22 MeV 1.6 keV 111 mum 111 mum World eIoni - 2 21.6 mum -20 cm 2.21 cm 54.2 MeV 332 eV 5.3 mm 5.41 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -10.7 cm 1.92 cm 1.12 GeV 21.1 keV 11.2 cm 11.2 cm World eIoni - 2 -2.39 mum -20 cm 2.22 cm 2.05 GeV 18.8 keV 9.28 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.7 cm 1.92 cm 1.63 keV 0 eV 0 fm 0 fm World initStep - 1 7.82 mum -10.7 cm 1.92 cm 1.25 MeV 1.63 keV 114 mum 114 mum World eIoni - 2 32.7 mum -20 cm 1.92 cm 928 MeV 15.5 keV 9.27 cm 9.28 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -4.59 cm 1.52 cm 509 MeV 9.9 keV 5.07 cm 5.07 cm World eIoni - 2 -5.97 mum -16.8 cm 2.14 cm 1.73 GeV 19.4 keV 12.3 cm 17.3 cm World eIoni - 3 -7.3 mum -20 cm 2.22 cm 2.05 GeV 5.78 keV 3.18 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.97 mum -16.8 cm 2.14 cm 2.97 keV 0 eV 0 fm 0 fm World initStep - 1 2.68 mum -16.9 cm 2.14 cm 3.19 MeV 2.97 keV 295 mum 295 mum World eIoni - 2 12.3 mum -17.7 cm 2.14 cm 87.1 MeV 2.22 keV 8.4 mm 8.69 mm World eIoni - 3 16.1 mum -20 cm 2.14 cm 318 MeV 4.82 keV 2.31 cm 3.17 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.59 cm 1.52 cm 2.93 keV 0 eV 0 fm 0 fm World initStep - 1 13.9 mum -4.62 cm 1.52 cm 3.12 MeV 2.93 keV 289 mum 289 mum World eIoni - 2 25.5 mum -4.97 cm 1.52 cm 38.7 MeV 1.48 keV 3.56 mm 3.85 mm World eIoni - 3 42.7 mum -15.9 cm 1.52 cm 1.13 GeV 21.9 keV 10.9 cm 11.3 cm World eIoni - 4 44.8 mum -18.6 cm 1.52 cm 1.4 GeV 7.19 keV 2.65 cm 14 cm World eIoni - 5 46.7 mum -20 cm 1.52 cm 1.54 GeV 4.46 keV 1.43 cm 15.4 cm OutOfWorldTransportation + 0 -109 mum -17.2 cm 1.77 cm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 -112 mum -17.2 cm 1.77 cm 688 keV 1.06 keV 62.5 mum 62.5 mum World eIoni + 2 -126 mum -20 cm 1.77 cm 279 MeV 5.43 keV 2.79 cm 2.79 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 44.8 mum -18.6 cm 1.52 cm 25.9 keV 0 eV 0 fm 0 fm World initStep - 1 -51.7 mum -18.9 cm 1.51 cm 33.1 MeV 2.77 keV 3.21 mm 3.21 mm World eIoni - 2 -72.9 mum -20 cm 1.51 cm 145 MeV 1.55 keV 1.12 cm 1.44 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 42.7 mum -15.9 cm 1.52 cm 3.38 keV 0 eV 0 fm 0 fm World initStep - 1 29.3 mum -15.9 cm 1.52 cm 3 MeV 1.81 keV 279 mum 279 mum World eIoni - 2 14 mum -16.7 cm 1.52 cm 79.4 MeV 1.28 keV 7.64 mm 7.92 mm World eIoni - 3 -1.72 mum -19.9 cm 1.52 cm 403 MeV 5.83 keV 3.24 cm 4.03 cm World eIoni - 4 -1.75 mum -20 cm 1.52 cm 409 MeV 146 eV 549 mum 4.09 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.72 mum -19.9 cm 1.52 cm 4.93 keV 0 eV 0 fm 0 fm World initStep - 1 -19.7 mum -20 cm 1.52 cm 8.19 MeV 3.89 keV 590 mum 590 mumOutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 14 mum -16.7 cm 1.52 cm 2.61 keV 0 eV 0 fm 0 fm World initStep - 1 26.8 mum -16.7 cm 1.52 cm 2.59 MeV 2.61 keV 239 mum 239 mum World eIoni - 2 48.1 mum -18.9 cm 1.52 cm 223 MeV 4.07 keV 2.2 cm 2.23 cm World eIoni - 3 49.9 mum -20 cm 1.52 cm 330 MeV 1.88 keV 1.07 cm 3.29 cm OutOfWorldTransportation + 0 -92.2 mum -11.3 cm 1.77 cm 1.72 keV 0 eV 0 fm 0 fm World initStep + 1 -84.7 mum -11.3 cm 1.77 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni + 2 -62.4 mum -20 cm 1.77 cm 870 MeV 13.7 keV 8.69 cm 8.7 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -4435,179 +3598,954 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Ne Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -14 cm 2.05 cm 1.45 GeV 25.2 keV 14.5 cm 14.5 cm World eIoni - 2 970 nm -20 cm 2.22 cm 2.05 GeV 14.3 keV 6.01 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -1.87 cm 1.13 cm 237 MeV 3.62 keV 2.33 cm 2.33 cm World eIoni + 2 2.61 mum -7.01 cm 1.71 cm 751 MeV 9.22 keV 5.18 cm 7.5 cm World eIoni + 3 3.24 mum -8.37 cm 1.8 cm 887 MeV 2.64 keV 1.35 cm 8.86 cm World eIoni + 4 3.35 mum -12.8 cm 2 cm 1.33 GeV 12.3 keV 4.49 cm 13.3 cm World eIoni + 5 4.14 mum -20 cm 2.22 cm 2.05 GeV 12.8 keV 7.15 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -14 cm 2.05 cm 1.69 keV 0 eV 0 fm 0 fm World initStep - 1 -5.66 mum -14 cm 2.05 cm 1.33 MeV 1.69 keV 121 mum 121 mum World eIoni - 2 -22.1 mum -20 cm 2.05 cm 600 MeV 9.88 keV 5.99 cm 6 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -7.78 cm 1.76 cm 828 MeV 15.9 keV 8.27 cm 8.27 cm World eIoni - 2 7.86 mum -20 cm 2.22 cm 2.05 GeV 23.8 keV 12.2 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.78 cm 1.76 cm 9.55 keV 0 eV 0 fm 0 fm World initStep - 1 -20.8 mum -7.81 cm 1.76 cm 2.32 MeV 1.23 keV 228 mum 228 mum World eIoni - 2 -73.3 mum -20 cm 1.77 cm 1.22 GeV 18.9 keV 12.2 cm 12.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.9 cm 2.01 cm 1.34 GeV 29.2 keV 13.4 cm 13.4 cm World eIoni - 2 1.57 mum -16.7 cm 2.13 cm 1.72 GeV 7.58 keV 3.81 cm 17.2 cm World eIoni - 3 2.12 mum -20 cm 2.22 cm 2.05 GeV 7.37 keV 3.26 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.57 mum -16.7 cm 2.13 cm 1.85 keV 0 eV 0 fm 0 fm World initStep - 1 8.21 mum -16.8 cm 2.13 cm 1.52 MeV 1.85 keV 139 mum 139 mum World eIoni - 2 24.1 mum -20 cm 2.14 cm 326 MeV 6.77 keV 3.24 cm 3.26 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12.9 cm 2.01 cm 3.86 keV 0 eV 0 fm 0 fm World initStep - 1 -21.4 mum -13 cm 2.01 cm 4.93 MeV 3.86 keV 460 mum 460 mum World eIoni - 2 -36.6 mum -13.5 cm 2.01 cm 61.1 MeV 1.1 keV 5.62 mm 6.08 mm World eIoni - 3 -46.2 mum -15.7 cm 2.01 cm 281 MeV 3.47 keV 2.2 cm 2.81 cm World eIoni - 4 -52.5 mum -20 cm 2.01 cm 707 MeV 8.1 keV 4.26 cm 7.07 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -46.2 mum -15.7 cm 2.01 cm 1.28 keV 0 eV 0 fm 0 fm World initStep - 1 -45.2 mum -15.7 cm 2.01 cm 888 keV 1.28 keV 80.8 mum 80.8 mum World eIoni - 2 -41.7 mum -20 cm 2 cm 426 MeV 4.77 keV 4.25 cm 4.26 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -957 mum 3.06 mm 59.6 MeV 776 eV 3.25 mm 3.25 mm World eIoni - 2 -9.07 mum -6.07 cm 1.65 cm 657 MeV 12.5 keV 6.23 cm 6.56 cm World eIoni - 3 -9.28 mum -20 cm 2.22 cm 2.05 GeV 32.7 keV 13.9 cm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.07 mum -6.07 cm 1.65 cm 3.42 keV 0 eV 0 fm 0 fm World initStep - 1 -19.2 mum -6.11 cm 1.64 cm 4.03 MeV 3.42 keV 374 mum 374 mum World eIoni - 2 -22.3 mum -6.18 cm 1.64 cm 11.1 MeV 174 eV 709 mum 1.08 mm World eIoni - 3 -36.9 mum -16.4 cm 1.64 cm 1.03 GeV 19.6 keV 10.2 cm 10.3 cm World eIoni - 4 -38.1 mum -17.9 cm 1.64 cm 1.19 GeV 3.11 keV 1.56 cm 11.9 cm World eIoni - 5 -38.6 mum -20 cm 1.64 cm 1.39 GeV 2.85 keV 2.06 cm 13.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -38.1 mum -17.9 cm 1.64 cm 1.64 keV 0 eV 0 fm 0 fm World initStep - 1 -45.4 mum -18 cm 1.64 cm 1.28 MeV 1.64 keV 116 mum 116 mum World eIoni - 2 -63.2 mum -20 cm 1.64 cm 206 MeV 2.33 keV 2.05 cm 2.06 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -36.9 mum -16.4 cm 1.64 cm 2.59 keV 0 eV 0 fm 0 fm World initStep - 1 -23.5 mum -16.4 cm 1.64 cm 2.55 MeV 2.59 keV 235 mum 235 mum World eIoni - 2 -14.2 mum -16.6 cm 1.64 cm 18.5 MeV 145 eV 1.59 mm 1.83 mm World eIoni - 3 576 nm -20 cm 1.64 cm 363 MeV 6.12 keV 3.44 cm 3.62 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -957 mum 3.06 mm 1.16 keV 0 eV 0 fm 0 fm World initStep - 1 5.56 mum -1.03 mm 3.06 mm 786 keV 1.16 keV 71.1 mum 71.1 mum World eIoni - 2 31.2 mum -20 cm 3.07 mm 1.99 GeV 39.1 keV 19.9 cm 19.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm -12.7 cm 2 cm 1.32 GeV 26.7 keV 13.2 cm 13.2 cm World eIoni - 2 409 nm -16.6 cm 2.13 cm 1.71 GeV 6.36 keV 3.86 cm 17.1 cm World eIoni - 3 327 nm -16.9 cm 2.14 cm 1.74 GeV 312 eV 3.63 mm 17.4 cm World eIoni - 4 -262 nm -20 cm 2.22 cm 2.05 GeV 7.94 keV 3.06 cm 20.5 cm OutOfWorldTransportation + 0 3.35 mum -12.8 cm 2 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 682 nm -12.9 cm 2 cm 858 keV 1.25 keV 77.9 mum 77.9 mum World eIoni + 2 -9.07 mum -20 cm 2.01 cm 715 MeV 11.9 keV 7.14 cm 7.15 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 327 nm -16.9 cm 2.14 cm 2.07 keV 0 eV 0 fm 0 fm World initStep - 1 -184 nm -17 cm 2.14 cm 1.79 MeV 2.07 keV 164 mum 164 mum World eIoni - 2 -814 nm -17.3 cm 2.14 cm 37.5 MeV 1.4 keV 3.57 mm 3.74 mm WorldTransportation - 3 -814 nm -17.3 cm 2.14 cm 37.5 MeV 0 eV 0.000429 fm 3.74 mm World eIoni - 4 -1.29 mum -20 cm 2.14 cm 306 MeV 4.6 keV 2.69 cm 3.06 cm OutOfWorldTransportation + 0 3.24 mum -8.37 cm 1.8 cm 1.62 keV 0 eV 0 fm 0 fm World initStep + 1 10.2 mum -8.38 cm 1.8 cm 1.25 MeV 1.62 keV 114 mum 114 mum World eIoni + 2 33.1 mum -20 cm 1.8 cm 1.16 GeV 15 keV 11.6 cm 11.6 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 409 nm -16.6 cm 2.13 cm 7.76 keV 0 eV 0 fm 0 fm World initStep - 1 31.1 mum -16.7 cm 2.12 cm 16.7 MeV 7.76 keV 1.58 mm 1.58 mm World eIoni - 2 37.9 mum -17.2 cm 2.12 cm 59 MeV 680 eV 4.22 mm 5.8 mm World eIoni - 3 46.7 mum -19.5 cm 2.12 cm 294 MeV 3.15 keV 2.35 cm 2.93 cm World eIoni - 4 47.2 mum -20 cm 2.12 cm 344 MeV 470 eV 4.97 mm 3.43 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 46.7 mum -19.5 cm 2.12 cm 1.47 keV 0 eV 0 fm 0 fm World initStep - 1 49 mum -19.5 cm 2.12 cm 1.09 MeV 1.47 keV 99.2 mum 99.2 mum World eIoni - 2 53.3 mum -20 cm 2.12 cm 49.8 MeV 283 eV 4.87 mm 4.97 mm OutOfWorldTransportation + 0 2.61 mum -7.01 cm 1.71 cm 993 eV 0 eV 0 fm 0 fm World initStep + 1 343 nm -7.02 cm 1.71 cm 631 keV 993 eV 57.3 mum 57.3 mum World eIoni + 2 -10.3 mum -20 cm 1.72 cm 1.3 GeV 20.4 keV 13 cm 13 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -12.7 cm 2 cm 1.72 keV 0 eV 0 fm 0 fm World initStep - 1 -3.26 mum -12.7 cm 2 cm 1.37 MeV 1.72 keV 125 mum 125 mum World eIoni - 2 -12.9 mum -20 cm 2 cm 728 MeV 9.69 keV 7.27 cm 7.28 cm OutOfWorldTransportation + 0 0 fm -1.87 cm 1.13 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -3.76 mum -1.88 cm 1.13 cm 837 keV 1.22 keV 75.5 mum 75.5 mum World eIoni + 2 -20.3 mum -20 cm 1.13 cm 1.81 GeV 25.7 keV 18.1 cm 18.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.26 cm 1.2 cm 276 MeV 3.9 keV 2.72 cm 2.72 cm World eIoni + 2 2.74 mum -17.8 cm 2.16 cm 1.83 GeV 31.8 keV 15.6 cm 18.3 cm World eIoni + 3 3.17 mum -20 cm 2.22 cm 2.05 GeV 5.08 keV 2.22 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 2.74 mum -17.8 cm 2.16 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 -1.19 mum -17.8 cm 2.16 cm 867 keV 1.26 keV 78.8 mum 78.8 mum World eIoni + 2 -13.2 mum -20 cm 2.17 cm 222 MeV 2.57 keV 2.21 cm 2.22 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.26 cm 1.2 cm 1.4 keV 0 eV 0 fm 0 fm World initStep + 1 -2.57 mum -2.27 cm 1.2 cm 1.01 MeV 1.4 keV 92.3 mum 92.3 mum World eIoni + 2 -13 mum -20 cm 1.2 cm 1.77 GeV 25 keV 17.7 cm 17.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -4.42 cm 1.5 cm 492 MeV 8.99 keV 4.9 cm 4.9 cm World eIoni + 2 3.47 mum -15.5 cm 2.1 cm 1.6 GeV 20.9 keV 11.1 cm 16 cm World eIoni + 3 3.34 mum -18.8 cm 2.19 cm 1.93 GeV 7.09 keV 3.26 cm 19.3 cm World eIoni + 4 4.09 mum -20 cm 2.22 cm 2.05 GeV 1.7 keV 1.21 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.34 mum -18.8 cm 2.19 cm 21.2 keV 0 eV 0 fm 0 fm World initStep + 1 -92.1 mum -19.1 cm 2.2 cm 36.4 MeV 4.99 keV 3.51 mm 3.51 mm World eIoni + 2 -107 mum -19.9 cm 2.2 cm 118 MeV 1.04 keV 8.14 mm 1.16 cm World eIoni + 3 -107 mum -20 cm 2.2 cm 123 MeV 121 eV 538 mum 1.22 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.47 mum -15.5 cm 2.1 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 9.8 mum -15.5 cm 2.1 cm 933 keV 1.32 keV 84.9 mum 84.9 mum World eIoni + 2 31 mum -20 cm 2.1 cm 447 MeV 6.72 keV 4.46 cm 4.47 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.42 cm 1.5 cm 1.4 keV 0 eV 0 fm 0 fm World initStep + 1 -5.27 mum -4.43 cm 1.5 cm 1.01 MeV 1.4 keV 92.4 mum 92.4 mum World eIoni + 2 -26 mum -20 cm 1.5 cm 1.56 GeV 20.3 keV 15.6 cm 15.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -8.92 cm 1.83 cm 942 MeV 25.3 keV 9.41 cm 9.41 cm World eIoni + 2 1.62 mum -20 cm 2.22 cm 2.05 GeV 25 keV 11.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -8.92 cm 1.83 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 -3.43 mum -8.93 cm 1.83 cm 824 keV 1.21 keV 75 mum 75 mum World eIoni + 2 -17.5 mum -20 cm 1.83 cm 1.11 GeV 17.2 keV 11.1 cm 11.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -16.2 cm 2.12 cm 1.67 GeV 34.9 keV 16.7 cm 16.7 cm World eIoni + 2 2.32 mum -20 cm 2.22 cm 2.05 GeV 9.14 keV 3.76 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -16.2 cm 2.12 cm 30.2 keV 0 eV 0 fm 0 fm World initStep + 1 -101 mum -16.8 cm 2.11 cm 55.3 MeV 4.7 keV 5.36 mm 5.36 mm World eIoni + 2 -102 mum -16.8 cm 2.11 cm 60.6 MeV 57.5 eV 533 mum 5.89 mm World eIoni + 3 -117 mum -18.5 cm 2.11 cm 224 MeV 3.43 keV 1.63 cm 2.22 cm World eIoni + 4 -121 mum -20 cm 2.1 cm 378 MeV 2.76 keV 1.54 cm 3.76 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -117 mum -18.5 cm 2.11 cm 1.49 keV 0 eV 0 fm 0 fm World initStep + 1 -122 mum -18.5 cm 2.11 cm 1.11 MeV 1.49 keV 101 mum 101 mum World eIoni + 2 -134 mum -20 cm 2.11 cm 154 MeV 1.67 keV 1.53 cm 1.54 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -2.89 cm 1.31 cm 339 MeV 5.01 keV 3.36 cm 3.36 cm World eIoni + 2 -931 nm -4.3 cm 1.49 cm 480 MeV 2.53 keV 1.41 cm 4.78 cm World eIoni + 3 -5.18 mum -20 cm 2.22 cm 2.05 GeV 32.8 keV 15.7 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -931 nm -4.3 cm 1.49 cm 1.15 keV 0 eV 0 fm 0 fm World initStep + 1 -534 nm -4.3 cm 1.49 cm 765 keV 1.15 keV 69.8 mum 69.8 mum World eIoni + 2 1.29 mum -20 cm 1.48 cm 1.57 GeV 23.9 keV 15.7 cm 15.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.89 cm 1.31 cm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 4.19 mum -2.9 cm 1.31 cm 744 keV 1.12 keV 67.9 mum 67.9 mum World eIoni + 2 23.9 mum -20 cm 1.31 cm 1.71 GeV 29.5 keV 17.1 cm 17.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -12.6 cm 2 cm 1.31 GeV 23.6 keV 13.1 cm 13.1 cm World eIoni + 2 1.27 mum -19.3 cm 2.2 cm 1.98 GeV 11.7 keV 6.64 cm 19.8 cm World eIoni + 3 1.51 mum -20 cm 2.22 cm 2.05 GeV 2.84 keV 7.17 mm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.27 mum -19.3 cm 2.2 cm 5.1 keV 0 eV 0 fm 0 fm World initStep + 1 -13.8 mum -19.4 cm 2.21 cm 7.96 MeV 5.1 keV 748 mum 748 mum World eIoni + 2 -18.2 mum -19.6 cm 2.21 cm 27.9 MeV 227 eV 1.99 mm 2.74 mm World eIoni + 3 -21.6 mum -20 cm 2.21 cm 72.3 MeV 1.23 keV 4.44 mm 7.18 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.6 cm 2 cm 1.54 keV 0 eV 0 fm 0 fm World initStep + 1 -5.92 mum -12.7 cm 2 cm 1.16 MeV 1.54 keV 106 mum 106 mum World eIoni + 2 -25.1 mum -20 cm 2 cm 735 MeV 11.6 keV 7.34 cm 7.35 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 38.5 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -15.5 cm 2.1 cm 1.6 GeV 31.9 keV 16 cm 16 cm World eIoni + 2 1.4 mum -20 cm 2.22 cm 2.05 GeV 8.93 keV 4.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -15.5 cm 2.1 cm 4.75 keV 0 eV 0 fm 0 fm World initStep + 1 -22.2 mum -15.6 cm 2.1 cm 7.05 MeV 4.75 keV 661 mum 661 mum World eIoni + 2 -31.6 mum -15.9 cm 2.1 cm 39.7 MeV 328 eV 3.26 mm 3.92 mm World eIoni + 3 -41.7 mum -17.8 cm 2.1 cm 232 MeV 4.8 keV 1.92 cm 2.31 cm World eIoni + 4 -46 mum -20 cm 2.1 cm 450 MeV 4.97 keV 2.18 cm 4.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -41.7 mum -17.8 cm 2.1 cm 11.8 keV 0 eV 0 fm 0 fm World initStep + 1 -33.8 mum -18 cm 2.09 cm 21.4 MeV 5.1 keV 2.04 mm 2.04 mm World eIoni + 2 -31.9 mum -18.7 cm 2.09 cm 93.8 MeV 1.54 keV 7.24 mm 9.29 mm World eIoni + 3 -30.8 mum -20 cm 2.09 cm 220 MeV 1.66 keV 1.26 cm 2.19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -6.72 cm 1.69 cm 722 MeV 14.8 keV 7.21 cm 7.21 cm World eIoni + 2 761 nm -8.23 cm 1.79 cm 873 MeV 3.88 keV 1.51 cm 8.72 cm World eIoni + 3 3.05 mum -11.7 cm 1.96 cm 1.22 GeV 8.75 keV 3.43 cm 12.2 cm World eIoni + 4 3.14 mum -11.9 cm 1.97 cm 1.24 GeV 269 eV 2.47 mm 12.4 cm World eIoni + 5 6.65 mum -20 cm 2.22 cm 2.05 GeV 15.6 keV 8.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.14 mum -11.9 cm 1.97 cm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 -496 nm -11.9 cm 1.97 cm 670 keV 1.04 keV 60.8 mum 60.8 mum World eIoni + 2 -16.7 mum -20 cm 1.97 cm 809 MeV 11.8 keV 8.09 cm 8.09 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.05 mum -11.7 cm 1.96 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 6.59 mum -11.7 cm 1.96 cm 665 keV 1.03 keV 60.5 mum 60.5 mum World eIoni + 2 22.5 mum -20 cm 1.95 cm 834 MeV 15.1 keV 8.33 cm 8.34 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 761 nm -8.23 cm 1.79 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -3.96 mum -8.24 cm 1.79 cm 793 keV 1.17 keV 72 mum 72 mum World eIoni + 2 -23.6 mum -20 cm 1.79 cm 1.18 GeV 17.5 keV 11.8 cm 11.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.72 cm 1.69 cm 1.57 keV 0 eV 0 fm 0 fm World initStep + 1 -7.73 mum -6.73 cm 1.69 cm 1.19 MeV 1.57 keV 109 mum 109 mum World eIoni + 2 -34.1 mum -20 cm 1.69 cm 1.33 GeV 17.1 keV 13.3 cm 13.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -11.7 cm 1.96 cm 1.22 GeV 20.2 keV 12.1 cm 12.1 cm World eIoni + 2 451 nm -20 cm 2.22 cm 2.05 GeV 15.5 keV 8.35 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -11.7 cm 1.96 cm 2.74 keV 0 eV 0 fm 0 fm World initStep + 1 -2.35 mum -11.7 cm 1.96 cm 2.8 MeV 2.74 keV 258 mum 258 mum World eIoni + 2 -4.14 mum -11.9 cm 1.95 cm 25.4 MeV 448 eV 2.26 mm 2.52 mm World eIoni + 3 -7.15 mum -20 cm 1.95 cm 835 MeV 12.9 keV 8.09 cm 8.35 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.78 cm 1.62 cm 628 MeV 12 keV 6.26 cm 6.26 cm World eIoni + 2 -882 nm -7.52 cm 1.75 cm 802 MeV 3.29 keV 1.75 cm 8.01 cm World eIoni + 3 -4.93 mum -14.1 cm 2.05 cm 1.46 GeV 14.7 keV 6.58 cm 14.6 cm World eIoni + 4 -6.43 mum -20 cm 2.22 cm 2.05 GeV 11.4 keV 5.91 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -4.93 mum -14.1 cm 2.05 cm 2.32 keV 0 eV 0 fm 0 fm World initStep + 1 -10.6 mum -14.1 cm 2.05 cm 2.15 MeV 2.32 keV 198 mum 198 mum World eIoni + 2 -12.2 mum -14.1 cm 2.05 cm 4.76 MeV 0 eV 261 mum 459 mum World eIoni + 3 -23.2 mum -20 cm 2.05 cm 591 MeV 8.09 keV 5.86 cm 5.91 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -882 nm -7.52 cm 1.75 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 4.44 mum -7.53 cm 1.75 cm 865 keV 1.26 keV 78.8 mum 78.8 mum World eIoni + 2 25.7 mum -20 cm 1.75 cm 1.25 GeV 19.4 keV 12.5 cm 12.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.78 cm 1.62 cm 1.55 keV 0 eV 0 fm 0 fm World initStep + 1 6.84 mum -5.79 cm 1.62 cm 1.16 MeV 1.55 keV 106 mum 106 mum World eIoni + 2 31.4 mum -20 cm 1.62 cm 1.42 GeV 17 keV 14.2 cm 14.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -20 cm 2.22 cm 2.05 GeV 37.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -5.36 cm 1.59 cm 586 MeV 11.5 keV 5.85 cm 5.85 cm World eIoni + 2 -3.7 mum -14.5 cm 2.06 cm 1.5 GeV 20.2 keV 9.11 cm 15 cm World eIoni + 3 -4.8 mum -20 cm 2.22 cm 2.05 GeV 9.62 keV 5.55 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.7 mum -14.5 cm 2.06 cm 1.65 keV 0 eV 0 fm 0 fm World initStep + 1 -4.62 mum -14.5 cm 2.06 cm 1.28 MeV 1.65 keV 117 mum 117 mum World eIoni + 2 -7.3 mum -20 cm 2.06 cm 554 MeV 8.82 keV 5.53 cm 5.54 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.36 cm 1.59 cm 2.48 keV 0 eV 0 fm 0 fm World initStep + 1 10.1 mum -5.38 cm 1.59 cm 2.38 MeV 2.48 keV 219 mum 219 mum World eIoni + 2 12.9 mum -5.41 cm 1.59 cm 5.28 MeV 0 eV 290 mum 509 mum World eIoni + 3 28.5 mum -7.74 cm 1.59 cm 238 MeV 4.05 keV 2.32 cm 2.37 cm World eIoni + 4 11 mum -20 cm 1.59 cm 1.46 GeV 29 keV 12.3 cm 14.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 28.5 mum -7.74 cm 1.59 cm 20.3 keV 0 eV 0 fm 0 fm World initStep + 1 116 mum -8.01 cm 1.59 cm 28.5 MeV 2.85 keV 2.75 mm 2.75 mm World eIoni + 2 122 mum -8.18 cm 1.59 cm 45.9 MeV 418 eV 1.73 mm 4.49 mm World eIoni + 3 140 mum -10.3 cm 1.59 cm 255 MeV 6.82 keV 2.09 cm 2.54 cm World eIoni + 4 143 mum -20 cm 1.59 cm 1.23 GeV 17.9 keV 9.73 cm 12.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 140 mum -10.3 cm 1.59 cm 6.59 keV 0 eV 0 fm 0 fm World initStep + 1 180 mum -10.4 cm 1.59 cm 12.3 MeV 4.77 keV 1.16 mm 1.16 mm World eIoni + 2 193 mum -10.9 cm 1.59 cm 61.7 MeV 598 eV 4.94 mm 6.1 mm World eIoni + 3 212 mum -16.1 cm 1.59 cm 580 MeV 9.26 keV 5.18 cm 5.79 cm World eIoni + 4 214 mum -20 cm 1.59 cm 974 MeV 8.64 keV 3.94 cm 9.73 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 212 mum -16.1 cm 1.59 cm 1.73 keV 0 eV 0 fm 0 fm World initStep + 1 219 mum -16.1 cm 1.59 cm 1.37 MeV 1.73 keV 125 mum 125 mum World eIoni + 2 237 mum -20 cm 1.59 cm 394 MeV 6.76 keV 3.93 cm 3.94 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 122 mum -8.18 cm 1.59 cm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 128 mum -8.19 cm 1.59 cm 990 keV 1.38 keV 90.1 mum 90.1 mum World eIoni + 2 151 mum -20 cm 1.59 cm 1.18 GeV 16 keV 11.8 cm 11.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.86 cm 1.77 cm 836 MeV 16.2 keV 8.35 cm 8.35 cm World eIoni + 2 -771 nm -10.3 cm 1.9 cm 1.08 GeV 3.33 keV 2.45 cm 10.8 cm World eIoni + 3 -1.67 mum -20 cm 2.22 cm 2.05 GeV 22.8 keV 9.7 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -771 nm -10.3 cm 1.9 cm 5.63 keV 0 eV 0 fm 0 fm World initStep + 1 -7.8 mum -10.4 cm 1.9 cm 9.51 MeV 5.63 keV 895 mum 895 mum World eIoni + 2 -12 mum -11.7 cm 1.9 cm 136 MeV 2.19 keV 1.27 cm 1.36 cm World eIoni + 3 -15.1 mum -20 cm 1.9 cm 970 MeV 16 keV 8.34 cm 9.69 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.86 cm 1.77 cm 3.08 keV 0 eV 0 fm 0 fm World initStep + 1 8.78 mum -7.89 cm 1.77 cm 3.38 MeV 3.08 keV 313 mum 313 mum World eIoni + 2 11.5 mum -7.95 cm 1.77 cm 9.21 MeV 13 eV 583 mum 896 mum World eIoni + 3 11.8 mum -7.96 cm 1.77 cm 10.2 MeV 0 eV 97.3 mum 994 mum World eIoni + 4 16.3 mum -20 cm 1.77 cm 1.21 GeV 20.4 keV 12 cm 12.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 11.8 mum -7.96 cm 1.77 cm 2.85 keV 0 eV 0 fm 0 fm World initStep + 1 17.2 mum -7.98 cm 1.76 cm 3 MeV 2.85 keV 277 mum 277 mum World eIoni + 2 21.3 mum -8.25 cm 1.76 cm 29.4 MeV 297 eV 2.64 mm 2.92 mm World eIoni + 3 24.3 mum -9.33 cm 1.76 cm 138 MeV 1.28 keV 1.09 cm 1.38 cm World eIoni + 4 21.8 mum -12.4 cm 1.76 cm 443 MeV 7.69 keV 3.05 cm 4.43 cm World eIoni + 5 21 mum -13.4 cm 1.76 cm 549 MeV 1.36 keV 1.06 cm 5.49 cm World eIoni + 6 22.1 mum -20 cm 1.76 cm 1.2 GeV 16.1 keV 6.56 cm 12 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 21 mum -13.4 cm 1.76 cm 2.51 keV 0 eV 0 fm 0 fm World initStep + 1 8.38 mum -13.5 cm 1.76 cm 2.42 MeV 2.51 keV 223 mum 223 mum World eIoni + 2 -9.48 mum -14.5 cm 1.76 cm 104 MeV 1.09 keV 1.02 cm 1.04 cm World eIoni + 3 -18.6 mum -20 cm 1.76 cm 656 MeV 9.79 keV 5.51 cm 6.56 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 21.8 mum -12.4 cm 1.76 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 24.1 mum -12.4 cm 1.76 cm 882 keV 1.27 keV 80.2 mum 80.2 mum World eIoni + 2 32.4 mum -20 cm 1.76 cm 761 MeV 9.49 keV 7.61 cm 7.61 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 24.3 mum -9.33 cm 1.76 cm 2.82 keV 0 eV 0 fm 0 fm World initStep + 1 35.6 mum -9.36 cm 1.76 cm 2.95 MeV 2.82 keV 272 mum 272 mum World eIoni + 2 49.5 mum -10.4 cm 1.76 cm 103 MeV 1.72 keV 9.98 mm 1.02 cm World eIoni + 3 59.2 mum -20 cm 1.76 cm 1.07 GeV 19.7 keV 9.64 cm 10.7 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -16.1 cm 2.11 cm 1.66 GeV 34.5 keV 16.6 cm 16.6 cm World eIoni + 2 -245 nm -17.2 cm 2.15 cm 1.77 GeV 2.39 keV 1.04 cm 17.7 cm World eIoni + 3 -243 nm -20 cm 2.22 cm 2.05 GeV 8.4 keV 2.84 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -245 nm -17.2 cm 2.15 cm 3.47 keV 0 eV 0 fm 0 fm World initStep + 1 -13.1 mum -17.2 cm 2.15 cm 4.14 MeV 3.47 keV 385 mum 385 mum World eIoni + 2 -25.9 mum -18.2 cm 2.15 cm 107 MeV 1.2 keV 1.03 cm 1.07 cm World eIoni + 3 -29.8 mum -20 cm 2.15 cm 285 MeV 2.98 keV 1.78 cm 2.84 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -16.1 cm 2.11 cm 14.9 keV 0 eV 0 fm 0 fm World initStep + 1 22.6 mum -16.3 cm 2.11 cm 20.3 MeV 4.91 keV 1.95 mm 1.95 mm World eIoni + 2 34.5 mum -20 cm 2.1 cm 390 MeV 7.8 keV 3.7 cm 3.89 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -7.01 cm 1.71 cm 751 MeV 17.1 keV 7.5 cm 7.5 cm World eIoni + 2 2.17 mum -20 cm 2.22 cm 2.05 GeV 27.4 keV 13 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.01 cm 1.71 cm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 -3.42 mum -7.02 cm 1.71 cm 745 keV 1.12 keV 67.6 mum 67.6 mum World eIoni + 2 -18.2 mum -20 cm 1.72 cm 1.3 GeV 22.4 keV 13 cm 13 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -13.7 cm 2.03 cm 1.42 GeV 30.9 keV 14.2 cm 14.2 cm World eIoni + 2 1.2 mum -20 cm 2.22 cm 2.05 GeV 12.4 keV 6.31 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -13.7 cm 2.03 cm 1.13 keV 0 eV 0 fm 0 fm World initStep + 1 -5.16 mum -13.7 cm 2.03 cm 749 keV 1.13 keV 68 mum 68 mum World eIoni + 2 -25.9 mum -20 cm 2.04 cm 631 MeV 8.17 keV 6.31 cm 6.31 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.68 cm 1.42 cm 418 MeV 5.19 keV 4.16 cm 4.16 cm World eIoni + 2 -1.38 mum -6.13 cm 1.65 cm 663 MeV 5.13 keV 2.45 cm 6.61 cm World eIoni + 3 -248 nm -10.8 cm 1.92 cm 1.13 GeV 12.5 keV 4.7 cm 11.3 cm World eIoni + 4 1.09 mum -14.8 cm 2.07 cm 1.53 GeV 9.1 keV 4.01 cm 15.3 cm World eIoni + 5 3.39 mum -20 cm 2.22 cm 2.05 GeV 8.14 keV 5.18 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.09 mum -14.8 cm 2.07 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 -5.23 mum -14.8 cm 2.07 cm 1.02 MeV 1.41 keV 92.7 mum 92.7 mum World eIoni + 2 -25.9 mum -20 cm 2.07 cm 518 MeV 8.34 keV 5.17 cm 5.18 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -248 nm -10.8 cm 1.92 cm 3.6 keV 0 eV 0 fm 0 fm World initStep + 1 -7.72 mum -10.9 cm 1.92 cm 4.39 MeV 3.6 keV 409 mum 409 mum World eIoni + 2 -11 mum -11 cm 1.92 cm 20.1 MeV 106 eV 1.57 mm 1.98 mm World eIoni + 3 -19.8 mum -20 cm 1.93 cm 919 MeV 17.6 keV 8.99 cm 9.19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.38 mum -6.13 cm 1.65 cm 3.11 keV 0 eV 0 fm 0 fm World initStep + 1 -16.4 mum -6.16 cm 1.65 cm 3.42 MeV 3.11 keV 317 mum 317 mum World eIoni + 2 -37.3 mum -8.18 cm 1.65 cm 206 MeV 2.55 keV 2.03 cm 2.06 cm World eIoni + 3 -45.7 mum -16.8 cm 1.65 cm 1.07 GeV 17.8 keV 8.63 cm 10.7 cm World eIoni + 4 -46 mum -20 cm 1.65 cm 1.39 GeV 6.11 keV 3.19 cm 13.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -45.7 mum -16.8 cm 1.65 cm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 -52.7 mum -16.8 cm 1.65 cm 1.22 MeV 1.6 keV 111 mum 111 mum World eIoni + 2 -71.4 mum -20 cm 1.65 cm 319 MeV 2.5 keV 3.18 cm 3.19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.68 cm 1.42 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 4.71 mum -3.69 cm 1.42 cm 740 keV 1.11 keV 67.1 mum 67.1 mum World eIoni + 2 26.7 mum -20 cm 1.42 cm 1.63 GeV 25.4 keV 16.3 cm 16.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -1.05 cm 9.04 mm 155 MeV 3.1 keV 1.47 cm 1.47 cm World eIoni + 2 3.13 mum -2.16 cm 1.18 cm 266 MeV 2.35 keV 1.14 cm 2.61 cm World eIoni + 3 6.42 mum -3.79 cm 1.43 cm 428 MeV 3.32 keV 1.66 cm 4.27 cm World eIoni + 4 -14.5 mum -4.73 cm 1.53 cm 522 MeV 2.58 keV 9.42 mm 5.21 cm World eIoni + 5 -86 mum -10.2 cm 1.89 cm 1.07 GeV 11.1 keV 5.48 cm 10.7 cm World eIoni + 6 -156 mum -20 cm 2.22 cm 2.05 GeV 23.3 keV 9.81 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -86 mum -10.2 cm 1.89 cm 7.06 keV 0 eV 0 fm 0 fm World initStep + 1 -43.5 mum -10.3 cm 1.9 cm 13.5 MeV 6.88 keV 1.27 mm 1.27 mm World eIoni + 2 -36.6 mum -10.5 cm 1.9 cm 31.6 MeV 265 eV 1.82 mm 3.09 mm World eIoni + 3 -7.84 mum -20 cm 1.9 cm 981 MeV 17 keV 9.49 cm 9.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -14.5 mum -4.73 cm 1.53 cm 3.73 keV 0 eV 0 fm 0 fm World initStep + 1 -34.7 mum -4.77 cm 1.53 cm 4.66 MeV 3.73 keV 434 mum 434 mum World eIoni + 2 -51.8 mum -5.59 cm 1.53 cm 86.4 MeV 2.41 keV 8.18 mm 8.61 mm World eIoni + 3 -69.5 mum -19.3 cm 1.53 cm 1.46 GeV 25.8 keV 13.7 cm 14.6 cm World eIoni + 4 -69.7 mum -20 cm 1.53 cm 1.53 GeV 794 eV 6.76 mm 15.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -69.5 mum -19.3 cm 1.53 cm 2.48 keV 0 eV 0 fm 0 fm World initStep + 1 -66.5 mum -19.3 cm 1.53 cm 2.38 MeV 2.48 keV 219 mum 219 mum World eIoni + 2 -63.8 mum -19.6 cm 1.53 cm 31.1 MeV 1.71 keV 2.88 mm 3.1 mm World eIoni + 3 -62.9 mum -20 cm 1.53 cm 67.8 MeV 744 eV 3.67 mm 6.76 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.42 mum -3.79 cm 1.43 cm 1.37 MeV 0 eV 0 fm 0 fm World initStep + 1 784 mum -20 cm 1.42 cm 1.62 GeV 25 keV 16.2 cm 16.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.13 mum -2.16 cm 1.18 cm 994 eV 0 eV 0 fm 0 fm World initStep + 1 1.46 mum -2.16 cm 1.19 cm 637 keV 994 eV 57.4 mum 57.4 mum World eIoni + 2 -7.01 mum -20 cm 1.19 cm 1.78 GeV 28.2 keV 17.8 cm 17.8 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.05 cm 9.04 mm 3.12 keV 0 eV 0 fm 0 fm World initStep + 1 -16.7 mum -1.08 cm 9.04 mm 3.45 MeV 3.12 keV 320 mum 320 mum World eIoni + 2 -23.4 mum -1.17 cm 9.04 mm 12.5 MeV 63.4 eV 908 mum 1.23 mm World eIoni + 3 -45.7 mum -7.66 cm 9.04 mm 662 MeV 11.2 keV 6.49 cm 6.61 cm World eIoni + 4 -53 mum -13.7 cm 9.04 mm 1.27 GeV 14.2 keV 6.06 cm 12.7 cm World eIoni + 5 -55 mum -20 cm 9.04 mm 1.9 GeV 11.7 keV 6.27 cm 19 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -53 mum -13.7 cm 9.04 mm 2.9 keV 0 eV 0 fm 0 fm World initStep + 1 -68.2 mum -13.8 cm 9.04 mm 3.07 MeV 2.9 keV 284 mum 284 mum World eIoni + 2 -79.9 mum -14 cm 9.04 mm 31.1 MeV 1.23 keV 2.81 mm 3.09 mm World eIoni + 3 -82.1 mum -14.2 cm 9.04 mm 47.1 MeV 97.9 eV 1.6 mm 4.69 mm World eIoni + 4 -104 mum -20 cm 9.04 mm 628 MeV 9.59 keV 5.8 cm 6.27 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 9 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -82.1 mum -14.2 cm 9.04 mm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -77.7 mum -14.2 cm 9.03 mm 859 keV 1.25 keV 78.2 mum 78.2 mum World eIoni + 2 -61.4 mum -20 cm 9.02 mm 581 MeV 11.6 keV 5.8 cm 5.81 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -45.7 mum -7.66 cm 9.04 mm 3.17 keV 0 eV 0 fm 0 fm World initStep + 1 -28.8 mum -7.7 cm 9.04 mm 3.53 MeV 3.17 keV 327 mum 327 mum World eIoni + 2 -14.9 mum -8.12 cm 9.04 mm 46.1 MeV 355 eV 4.26 mm 4.59 mm World eIoni + 3 -11.3 mum -8.54 cm 9.04 mm 88.2 MeV 839 eV 4.21 mm 8.8 mm World eIoni + 4 -7.63 mum -9.79 cm 9.04 mm 213 MeV 1.98 keV 1.25 cm 2.13 cm World eIoni + 5 -3.8 mum -11.1 cm 9.04 mm 344 MeV 2.29 keV 1.31 cm 3.44 cm World eIoni + 6 8.55 mum -14.5 cm 9.04 mm 685 MeV 6.04 keV 3.41 cm 6.85 cm World eIoni + 7 16.3 mum -20 cm 9.04 mm 1.23 GeV 12.4 keV 5.48 cm 12.3 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 8.55 mum -14.5 cm 9.04 mm 1.35 keV 0 eV 0 fm 0 fm World initStep + 1 15 mum -14.5 cm 9.04 mm 960 keV 1.35 keV 87.4 mum 87.4 mum World eIoni + 2 36.8 mum -20 cm 9.05 mm 549 MeV 6.04 keV 5.48 cm 5.48 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.8 mum -11.1 cm 9.04 mm 9.86 keV 0 eV 0 fm 0 fm World initStep + 1 -39.1 mum -11.2 cm 9.03 mm 6.57 MeV 1.58 keV 634 mum 634 mum World eIoni + 2 -72.9 mum -13.1 cm 9.03 mm 205 MeV 2.58 keV 1.99 cm 2.05 cm World eIoni + 3 -89.4 mum -17.5 cm 9.03 mm 637 MeV 9.22 keV 4.32 cm 6.37 cm World eIoni + 4 -93.6 mum -20 cm 9.03 mm 890 MeV 4.7 keV 2.53 cm 8.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 13 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -89.4 mum -17.5 cm 9.03 mm 3.12 keV 0 eV 0 fm 0 fm World initStep + 1 -94.7 mum -17.5 cm 9.01 mm 3.44 MeV 3.12 keV 319 mum 319 mum World eIoni + 2 -101 mum -18.7 cm 8.99 mm 126 MeV 2.2 keV 1.23 cm 1.26 cm World eIoni + 3 -102 mum -20 cm 8.99 mm 253 MeV 2.67 keV 1.27 cm 2.53 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 13 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -72.9 mum -13.1 cm 9.03 mm 2.09 keV 0 eV 0 fm 0 fm World initStep + 1 -62.3 mum -13.2 cm 9.03 mm 1.83 MeV 2.09 keV 167 mum 167 mum World eIoni + 2 -46.1 mum -13.9 cm 9.03 mm 75.1 MeV 338 eV 7.33 mm 7.5 mm World eIoni + 3 -36.5 mum -19 cm 9.03 mm 583 MeV 9.81 keV 5.07 cm 5.82 cm World eIoni + 4 -36.1 mum -20 cm 9.03 mm 685 MeV 1.64 keV 1.03 cm 6.85 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 17, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -36.5 mum -19 cm 9.03 mm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 -33.3 mum -19 cm 9.03 mm 743 keV 1.12 keV 67.6 mum 67.6 mum World eIoni + 2 -24.5 mum -20 cm 9.04 mm 103 MeV 1.35 keV 1.02 cm 1.03 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -7.63 mum -9.79 cm 9.04 mm 3.35 keV 0 eV 0 fm 0 fm World initStep + 1 -19.7 mum -9.83 cm 9.05 mm 3.89 MeV 3.35 keV 361 mum 361 mum World eIoni + 2 -23.3 mum -9.9 cm 9.06 mm 10.5 MeV 81.4 eV 657 mum 1.02 mm World eIoni + 3 -40.8 mum -20 cm 9.08 mm 1.02 GeV 17.3 keV 10.1 cm 10.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -11.3 mum -8.54 cm 9.04 mm 1.85 keV 0 eV 0 fm 0 fm World initStep + 1 -8.04 mum -8.56 cm 9.03 mm 1.52 MeV 1.85 keV 139 mum 139 mum World eIoni + 2 1.65 mum -20 cm 9 mm 1.15 GeV 15.9 keV 11.4 cm 11.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -3.31 cm 1.37 cm 381 MeV 7.07 keV 3.78 cm 3.78 cm World eIoni + 2 -2.56 mum -6.36 cm 1.67 cm 686 MeV 5.78 keV 3.06 cm 6.84 cm World eIoni + 3 -2.44 mum -7.55 cm 1.75 cm 805 MeV 1.64 keV 1.2 cm 8.04 cm World eIoni + 4 -2.12 mum -8.9 cm 1.83 cm 940 MeV 3.98 keV 1.36 cm 9.4 cm World eIoni + 5 -2.13 mum -8.94 cm 1.83 cm 944 MeV 93.5 eV 363 mum 9.43 cm World eIoni + 6 -1.62 mum -20 cm 2.22 cm 2.05 GeV 17.4 keV 11.1 cm 20.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.13 mum -8.94 cm 1.83 cm 3.43 keV 0 eV 0 fm 0 fm World initStep + 1 -13.1 mum -8.98 cm 1.83 cm 4.05 MeV 3.43 keV 376 mum 376 mum World eIoni + 2 -23.6 mum -9.86 cm 1.83 cm 91.8 MeV 1.96 keV 8.78 mm 9.16 mm World eIoni + 3 -23.7 mum -9.88 cm 1.83 cm 94.2 MeV 47.6 eV 233 mum 9.39 mm World eIoni + 4 -23.1 mum -20 cm 1.83 cm 1.11 GeV 24.2 keV 10.1 cm 11.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -23.7 mum -9.88 cm 1.83 cm 2.01 keV 0 eV 0 fm 0 fm World initStep + 1 -31.9 mum -9.89 cm 1.83 cm 1.71 MeV 2.01 keV 156 mum 156 mum World eIoni + 2 -54.5 mum -20 cm 1.83 cm 1.01 GeV 15.8 keV 10.1 cm 10.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.12 mum -8.9 cm 1.83 cm 5.52 keV 0 eV 0 fm 0 fm World initStep + 1 19.1 mum -8.99 cm 1.82 cm 9.2 MeV 5.52 keV 865 mum 865 mum World eIoni + 2 26 mum -9.29 cm 1.82 cm 39.6 MeV 140 eV 3.04 mm 3.91 mm World eIoni + 3 42.3 mum -20 cm 1.82 cm 1.11 GeV 22 keV 10.7 cm 11.1 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.44 mum -7.55 cm 1.75 cm 9.34 keV 0 eV 0 fm 0 fm World initStep + 1 -9.99 mum -7.72 cm 1.75 cm 17.7 MeV 5.23 keV 1.68 mm 1.68 mm World eIoni + 2 -10.5 mum -7.79 cm 1.75 cm 25.4 MeV 55.3 eV 768 mum 2.45 mm World eIoni + 3 -14.4 mum -11.7 cm 1.76 cm 412 MeV 8.56 keV 3.86 cm 4.11 cm World eIoni + 4 -14.1 mum -19.2 cm 1.76 cm 1.17 GeV 18.9 keV 7.55 cm 11.7 cm World eIoni + 5 -13.4 mum -20 cm 1.76 cm 1.25 GeV 1.97 keV 7.93 mm 12.5 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -14.1 mum -19.2 cm 1.76 cm 10.9 keV 0 eV 0 fm 0 fm World initStep + 1 -73.3 mum -19.4 cm 1.76 cm 20.1 MeV 4.41 keV 1.91 mm 1.91 mm World eIoni + 2 -83.7 mum -19.8 cm 1.76 cm 57.5 MeV 400 eV 3.74 mm 5.65 mm World eIoni + 3 -85.2 mum -19.9 cm 1.76 cm 66.2 MeV 1.12 keV 870 mum 6.52 mm World eIoni + 4 -85.2 mum -19.9 cm 1.76 cm 66.4 MeV 5.54 eV 28.1 mum 6.55 mm World eIoni + 5 -85.6 mum -20 cm 1.76 cm 80.5 MeV 187 eV 1.41 mm 7.96 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 9 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -85.2 mum -19.9 cm 1.76 cm 6.37 keV 0 eV 0 fm 0 fm World initStep + 1 -101 mum -20 cm 1.76 cm 11.6 MeV 4.94 keV 1.1 mm 1.1 mm World eIoni + 2 -102 mum -20 cm 1.76 cm 14.9 MeV 0 eV 327 mum 1.43 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 9 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -85.2 mum -19.9 cm 1.76 cm 1.39 keV 0 eV 0 fm 0 fm World initStep + 1 -88.7 mum -19.9 cm 1.76 cm 1 MeV 1.39 keV 91.1 mum 91.1 mum World eIoni + 2 -93.2 mum -20 cm 1.75 cm 14.5 MeV 88.4 eV 1.35 mm 1.44 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -14.4 mum -11.7 cm 1.76 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 -16.8 mum -11.7 cm 1.76 cm 701 keV 1.07 keV 63.8 mum 63.8 mum World eIoni + 2 -27.6 mum -20 cm 1.75 cm 835 MeV 14.2 keV 8.34 cm 8.34 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.56 mum -6.36 cm 1.67 cm 3.6 keV 0 eV 0 fm 0 fm World initStep + 1 -19.1 mum -6.4 cm 1.67 cm 4.41 MeV 3.6 keV 411 mum 411 mum World eIoni + 2 -29.7 mum -6.75 cm 1.67 cm 39.3 MeV 780 eV 3.49 mm 3.9 mm World eIoni + 3 -48.1 mum -19.1 cm 1.67 cm 1.28 GeV 22.4 keV 12.4 cm 12.8 cm WorldTransportation + 4 -48.1 mum -19.1 cm 1.67 cm 1.28 GeV 0 eV 0 fm 12.8 cm World eIoni + 5 -48.2 mum -19.9 cm 1.67 cm 1.35 GeV 1.25 keV 7.22 mm 13.5 cm World eIoni + 6 -48.3 mum -20 cm 1.67 cm 1.36 GeV 431 eV 1.47 mm 13.6 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -48.2 mum -19.9 cm 1.67 cm 2.71 keV 0 eV 0 fm 0 fm World initStep + 1 -50.6 mum -19.9 cm 1.67 cm 2.75 MeV 2.71 keV 254 mum 254 mum World eIoni + 2 -52 mum -20 cm 1.67 cm 15 MeV 227 eV 1.22 mm 1.48 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -48.1 mum -19.1 cm 1.67 cm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 -53.5 mum -19.1 cm 1.67 cm 780 keV 1.16 keV 70.9 mum 70.9 mum World eIoni + 2 -67.8 mum -20 cm 1.67 cm 87.1 MeV 618 eV 8.63 mm 8.7 mm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.31 cm 1.37 cm 2.76 keV 0 eV 0 fm 0 fm World initStep + 1 11.9 mum -3.34 cm 1.37 cm 2.84 MeV 2.76 keV 262 mum 262 mum World eIoni + 2 22.1 mum -3.65 cm 1.37 cm 34.6 MeV 508 eV 3.17 mm 3.43 mm World eIoni + 3 39.1 mum -20 cm 1.37 cm 1.67 GeV 34.9 keV 16.3 cm 16.7 cm OutOfWorldTransportation Run terminated. Run Summary Number of events processed : 100 - User=1.51s Real=2.05s Sys=0.48s + User=1.46s Real=1.63s Sys=0.09s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/field/field02/include/F02CalorHit.hh b/examples/extended/field/field02/include/F02CalorHit.hh index c06b604455..80007802c8 100644 --- a/examples/extended/field/field02/include/F02CalorHit.hh +++ b/examples/extended/field/field02/include/F02CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: F02CalorHit.hh,v 1.3 2003/06/25 17:33:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02CalorimeterSD.hh b/examples/extended/field/field02/include/F02CalorimeterSD.hh index 6ab7698533..994a1d3541 100644 --- a/examples/extended/field/field02/include/F02CalorimeterSD.hh +++ b/examples/extended/field/field02/include/F02CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: F02CalorimeterSD.hh,v 1.3 2001/10/15 17:20:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorConstruction.hh b/examples/extended/field/field02/include/F02DetectorConstruction.hh index 6e09a9b101..598ce4c01a 100644 --- a/examples/extended/field/field02/include/F02DetectorConstruction.hh +++ b/examples/extended/field/field02/include/F02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: F02DetectorConstruction.hh,v 1.5 2003/11/12 16:35:03 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorMessenger.hh b/examples/extended/field/field02/include/F02DetectorMessenger.hh index 8a7123444b..bdfa53c416 100644 --- a/examples/extended/field/field02/include/F02DetectorMessenger.hh +++ b/examples/extended/field/field02/include/F02DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02DetectorMessenger.hh,v 1.3 2001/10/25 09:30:13 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02ElectricFieldSetup.hh b/examples/extended/field/field02/include/F02ElectricFieldSetup.hh index 19f10072b3..8f60630d07 100644 --- a/examples/extended/field/field02/include/F02ElectricFieldSetup.hh +++ b/examples/extended/field/field02/include/F02ElectricFieldSetup.hh @@ -22,7 +22,7 @@ // // // $Id: F02ElectricFieldSetup.hh,v 1.1 2003/11/12 16:36:14 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // A class for control of the Electric Field of the detector. // The field for this case is uniform. diff --git a/examples/extended/field/field02/include/F02EventAction.hh b/examples/extended/field/field02/include/F02EventAction.hh index f3df0bfd0d..51694048c9 100644 --- a/examples/extended/field/field02/include/F02EventAction.hh +++ b/examples/extended/field/field02/include/F02EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: F02EventAction.hh,v 1.3 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02EventActionMessenger.hh b/examples/extended/field/field02/include/F02EventActionMessenger.hh index 862ba3bcfe..a3a509591b 100644 --- a/examples/extended/field/field02/include/F02EventActionMessenger.hh +++ b/examples/extended/field/field02/include/F02EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02EventActionMessenger.hh,v 1.2 2001/07/11 09:58:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02FieldMessenger.hh b/examples/extended/field/field02/include/F02FieldMessenger.hh index 7f6ca31425..538d721751 100644 --- a/examples/extended/field/field02/include/F02FieldMessenger.hh +++ b/examples/extended/field/field02/include/F02FieldMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02FieldMessenger.hh,v 1.3 2003/11/12 16:35:03 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02PhysicsList.hh b/examples/extended/field/field02/include/F02PhysicsList.hh index 1a2a7be805..f2418fccf2 100644 --- a/examples/extended/field/field02/include/F02PhysicsList.hh +++ b/examples/extended/field/field02/include/F02PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsList.hh,v 1.3 2003/08/27 17:44:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef F02PhysicsList_h diff --git a/examples/extended/field/field02/include/F02PhysicsListMessenger.hh b/examples/extended/field/field02/include/F02PhysicsListMessenger.hh index 62a127b35d..7a314474a5 100644 --- a/examples/extended/field/field02/include/F02PhysicsListMessenger.hh +++ b/examples/extended/field/field02/include/F02PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsListMessenger.hh,v 1.3 2001/10/15 17:20:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh index 366aa56a0c..24a78ff1f2 100644 --- a/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh +++ b/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorAction.hh,v 1.3 2001/10/15 17:20:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh index 6604dc9232..931f15c509 100644 --- a/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh +++ b/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:58:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02RunAction.hh b/examples/extended/field/field02/include/F02RunAction.hh index 454af42353..daa278a7d5 100644 --- a/examples/extended/field/field02/include/F02RunAction.hh +++ b/examples/extended/field/field02/include/F02RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: F02RunAction.hh,v 1.5 2003/06/16 16:49:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02RunMessenger.hh b/examples/extended/field/field02/include/F02RunMessenger.hh index e0d37bfabb..0ba3e7c446 100644 --- a/examples/extended/field/field02/include/F02RunMessenger.hh +++ b/examples/extended/field/field02/include/F02RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: F02RunMessenger.hh,v 1.3 2001/10/15 17:20:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02StepCut.hh b/examples/extended/field/field02/include/F02StepCut.hh index 2a246c889e..db62ef5c75 100644 --- a/examples/extended/field/field02/include/F02StepCut.hh +++ b/examples/extended/field/field02/include/F02StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: F02StepCut.hh,v 1.4 2003/06/25 17:33:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingAction.hh b/examples/extended/field/field02/include/F02SteppingAction.hh index 7781968abb..72254d41f0 100644 --- a/examples/extended/field/field02/include/F02SteppingAction.hh +++ b/examples/extended/field/field02/include/F02SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: F02SteppingAction.hh,v 1.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingMessenger.hh b/examples/extended/field/field02/include/F02SteppingMessenger.hh index ee41d76be6..7a94a9903c 100644 --- a/examples/extended/field/field02/include/F02SteppingMessenger.hh +++ b/examples/extended/field/field02/include/F02SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F02SteppingMessenger.hh,v 1.2 2001/07/11 09:58:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/include/F02SteppingVerbose.hh b/examples/extended/field/field02/include/F02SteppingVerbose.hh index dff03d8869..5211eb55ea 100644 --- a/examples/extended/field/field02/include/F02SteppingVerbose.hh +++ b/examples/extended/field/field02/include/F02SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: F02SteppingVerbose.hh,v 1.3 2001/10/15 17:20:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/src/F02CalorHit.cc b/examples/extended/field/field02/src/F02CalorHit.cc index ea1b9450f5..873afe3b68 100644 --- a/examples/extended/field/field02/src/F02CalorHit.cc +++ b/examples/extended/field/field02/src/F02CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: F02CalorHit.cc,v 1.3 2003/06/25 17:33:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02CalorimeterSD.cc b/examples/extended/field/field02/src/F02CalorimeterSD.cc index 3b0969faf8..5463682102 100644 --- a/examples/extended/field/field02/src/F02CalorimeterSD.cc +++ b/examples/extended/field/field02/src/F02CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: F02CalorimeterSD.cc,v 1.5 2003/06/25 17:33:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02DetectorConstruction.cc b/examples/extended/field/field02/src/F02DetectorConstruction.cc index d1fcaee573..5d3829b3f7 100644 --- a/examples/extended/field/field02/src/F02DetectorConstruction.cc +++ b/examples/extended/field/field02/src/F02DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02DetectorConstruction.cc,v 1.10 2003/11/25 14:51:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F02DetectorConstruction.cc,v 1.11 2005/10/13 15:00:13 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -32,8 +32,6 @@ #include "F02CalorimeterSD.hh" #include "F02ElectricFieldSetup.hh" -#include "G4VClusterModel.hh" -#include "G4PAIclusterModel.hh" #include "G4Material.hh" #include "G4Tubs.hh" diff --git a/examples/extended/field/field02/src/F02DetectorMessenger.cc b/examples/extended/field/field02/src/F02DetectorMessenger.cc index 20fab8cebc..afbacf8829 100644 --- a/examples/extended/field/field02/src/F02DetectorMessenger.cc +++ b/examples/extended/field/field02/src/F02DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02DetectorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02ElectricFieldSetup.cc b/examples/extended/field/field02/src/F02ElectricFieldSetup.cc index 3a76b8aac2..512b3e46dc 100644 --- a/examples/extended/field/field02/src/F02ElectricFieldSetup.cc +++ b/examples/extended/field/field02/src/F02ElectricFieldSetup.cc @@ -22,7 +22,7 @@ // // // $Id: F02ElectricFieldSetup.cc,v 1.1 2003/11/12 16:36:16 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // User Field class implementation. diff --git a/examples/extended/field/field02/src/F02EventAction.cc b/examples/extended/field/field02/src/F02EventAction.cc index 230d543f4f..43a09fa282 100644 --- a/examples/extended/field/field02/src/F02EventAction.cc +++ b/examples/extended/field/field02/src/F02EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02EventAction.cc,v 1.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F02EventAction.cc,v 1.5 2005/12/06 13:58:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -108,12 +108,12 @@ void F02EventAction::EndOfEventAction(const G4Event* evt) // save rndm status if (runaction->GetRndmFreq() == 2) { - HepRandom::saveEngineStatus("endOfEvent.rndm"); + CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); G4int evtNb = evt->GetEventID(); if (evtNb%printModulo == 0) { G4cout << "\n---> End of Event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } } } diff --git a/examples/extended/field/field02/src/F02EventActionMessenger.cc b/examples/extended/field/field02/src/F02EventActionMessenger.cc index 7f1851b935..d5be3274c1 100644 --- a/examples/extended/field/field02/src/F02EventActionMessenger.cc +++ b/examples/extended/field/field02/src/F02EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02EventActionMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02FieldMessenger.cc b/examples/extended/field/field02/src/F02FieldMessenger.cc index 49d9e7edf3..cdddd58e86 100644 --- a/examples/extended/field/field02/src/F02FieldMessenger.cc +++ b/examples/extended/field/field02/src/F02FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02FieldMessenger.cc,v 1.5 2003/11/12 16:35:23 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02PhysicsList.cc b/examples/extended/field/field02/src/F02PhysicsList.cc index 584b2e9dc7..14b9402496 100644 --- a/examples/extended/field/field02/src/F02PhysicsList.cc +++ b/examples/extended/field/field02/src/F02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsList.cc,v 1.9 2004/12/03 15:22:19 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc index 35ebc6fc6d..3337d93297 100644 --- a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc +++ b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02PhysicsListMessenger.cc,v 1.5 2003/08/27 17:44:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc index fa7bf4f84d..d34293090f 100644 --- a/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc +++ b/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorAction.cc,v 1.4 2004/12/03 16:07:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc index 72c2451ede..ed82cc85f2 100644 --- a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02RunAction.cc b/examples/extended/field/field02/src/F02RunAction.cc index fd325a9f87..1e891b25a5 100644 --- a/examples/extended/field/field02/src/F02RunAction.cc +++ b/examples/extended/field/field02/src/F02RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02RunAction.cc,v 1.6 2003/06/25 17:33:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F02RunAction.cc,v 1.7 2005/12/06 13:58:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -61,8 +61,8 @@ void F02RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status if (saveRndm > 0) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("beginOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); } G4UImanager* UI = G4UImanager::GetUIpointer(); @@ -84,8 +84,8 @@ void F02RunAction::EndOfRunAction(const G4Run*) if (saveRndm == 1) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("endOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); } } diff --git a/examples/extended/field/field02/src/F02RunMessenger.cc b/examples/extended/field/field02/src/F02RunMessenger.cc index 8f0801448c..779d4bf750 100644 --- a/examples/extended/field/field02/src/F02RunMessenger.cc +++ b/examples/extended/field/field02/src/F02RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02RunMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F02RunMessenger.cc,v 1.5 2005/12/06 13:58:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -81,8 +81,8 @@ void F02RunMessenger::SetNewValue(G4UIcommand* command,G4String newValues) if (command == RndmReadCmd) { G4cout << "\n---> rndm status restored from file: " << newValues << G4endl; - HepRandom::restoreEngineStatus(newValues); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::restoreEngineStatus(newValues); + CLHEP::HepRandom::showEngineStatus(); } } diff --git a/examples/extended/field/field02/src/F02StepCut.cc b/examples/extended/field/field02/src/F02StepCut.cc index 8d0b214266..ae94d8f465 100644 --- a/examples/extended/field/field02/src/F02StepCut.cc +++ b/examples/extended/field/field02/src/F02StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: F02StepCut.cc,v 1.2 2001/07/11 09:58:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "F02StepCut.hh" diff --git a/examples/extended/field/field02/src/F02SteppingAction.cc b/examples/extended/field/field02/src/F02SteppingAction.cc index ab4ebc0e5f..3bb7c3a251 100644 --- a/examples/extended/field/field02/src/F02SteppingAction.cc +++ b/examples/extended/field/field02/src/F02SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: F02SteppingAction.cc,v 1.5 2003/06/16 16:49:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field02/src/F02SteppingMessenger.cc b/examples/extended/field/field02/src/F02SteppingMessenger.cc index 9d6c9c56b9..d09629fbfd 100644 --- a/examples/extended/field/field02/src/F02SteppingMessenger.cc +++ b/examples/extended/field/field02/src/F02SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02SteppingMessenger.cc,v 1.3 2003/06/25 17:33:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/src/F02SteppingVerbose.cc b/examples/extended/field/field02/src/F02SteppingVerbose.cc index 522068b145..a1590f5de2 100644 --- a/examples/extended/field/field02/src/F02SteppingVerbose.cc +++ b/examples/extended/field/field02/src/F02SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: F02SteppingVerbose.cc,v 1.5 2003/06/16 16:49:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field03/History b/examples/extended/field/field03/History index 7391a844e8..fbe40d25aa 100644 --- a/examples/extended/field/field03/History +++ b/examples/extended/field/field03/History @@ -1,4 +1,4 @@ -$Id: History,v 1.17 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.19 2005/12/06 14:01:21 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,7 +15,17 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Dec 6th, 2005 Gabriele Cosmo +----------------------------- +- Trivial changes for support of CLHEP-2.0.X series. + +Oct 13th, 2005 Vladimir Grichine (fieldex03-V07-01-00) +--------------------------------- +- Removed cluster models from detector construction. + Coworks with gpara-V07-01-00. + +May 3rd, 2005 John Allison (examples-V07-00-03) +--------------------------- - Replaced vis manager with G4VisExecutive. Dec 3rd, 2004 Gabriele Cosmo @@ -26,17 +36,17 @@ Dec 3rd, 2004 Vladimir Grichine ------------------------------- - Removed dependency on old PAI and XTR models in PhysicsList. -Sep 15rd, 2004 V.Ivanchenko (fieldex03-V06-02-00) -------------------------------------------------- +Sep 15rd, 2004 Vladimir Ivanchenko (fieldex03-V06-02-00) +---------------------------------- - Minor cleanup of PhysicsList. Mar 23rd, 2004 John Apostolakis (fieldex03-V06-00-00) ------------------------------------------------------ +------------------------------- - F03FieldSetup: fixed SetFieldValue methods to update equation, fld-manager. - F03FieldMessenger: added printout of value after Set Command. Dec 1st, 2003 John Apostolakis (fieldex03-V05-02-00) ------------------------------------------------------ +------------------------------- - Renamed F03ElectroMagneticField into F03FieldSetup (as it is a creator, not a field). - FieldSetup is now called only in Detector Construction, not in main. diff --git a/examples/extended/field/field03/field03.cc b/examples/extended/field/field03/field03.cc index 840aef8829..93e5cb1ddb 100644 --- a/examples/extended/field/field03/field03.cc +++ b/examples/extended/field/field03/field03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field03.cc,v 1.6 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: field03.cc,v 1.7 2005/12/06 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -57,7 +57,7 @@ int main(int argc,char** argv) //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out index 90426a3a84..59e3e7b78b 100644 --- a/examples/extended/field/field03/field03.out +++ b/examples/extended/field/field03/field03.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -70,6 +70,8 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) +Registering model factories... + The WORLD is made of 44000mm of Air, the transverse size (R) of the world is 22000 mm. The ABSORBER is made of 1mm of Air, the transverse size (R) is 20000 mm. Z position of the (middle of the) absorber 21990 mm. @@ -103,7 +105,7 @@ eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -115,7 +117,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -125,7 +127,7 @@ eBrem: tables are built for e+ msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -136,7 +138,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -174,7 +176,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -188,6 +190,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 0 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -198,19 +202,20 @@ Start Run processing. Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0138452 cm 21.79201 m 500 MeV0.00049459459 eV 20.288442 cm 20.288442 cm World Transportation 0 fm 390.36094 mum -920.6619 mum - 2 0 fm 6.5801508 cm 21.74 m 500 MeV0.00014148327 eV 5.8028638 cm 26.091306 cm RadSlice Transportation 0 fm 493.16452 mum -869.93607 mum - 3 0 fm 19.942498 cm 21.58699 m 500 MeV0.00049863047 eV 20.453361 cm 46.544667 cm Radiator Transportation 0 fm 795.60591 mum -605.81452 mum - 4 0 fm 81.240793 cm 21.58699 m 500 MeV0.0016053718 eV 65.848987 cm 1.1239365 m World Transportation 0 fm 795.60595 mum 605.81447 mum - 5 0 fm 94.603131 cm 21.74 m 500 MeV0.00049863047 eV 20.453354 cm 1.3284701 m Radiator Transportation 0 fm 493.1647 mum 869.93596 mum - 6 0 fm 98.923943 cm 21.84 m 500 MeV0.00026608404 eV 10.914704 cm 1.4376171 m RadSlice Transportation 0 fm 295.50359 mum 955.34163 mum - 7 0 fm 1.0118328 m 21.9895 m 500 MeV0.00036999381 eV 15.176601 cm 1.5893831 m World Transportation 0 fm 2.1925711 Ang 1000 mum - 8 0 fm 1.0118318 m 21.9905 m 500 MeV2.444267e-06 eV 1.0000007 mm 1.5903831 m Absorber Transportation 0 fm -1.9763919 mum 999.99805 mum - 9 0 fm 1.0117238 m 22 m 500 MeV2.3135271e-05 eV 9.5007541 mm 1.5998839 m OutOfWorld Transportation 0 fm -20.7542 mum 999.78461 mum + 1 0 fm 4.0138452 cm 21.79201 m 500 MeV0.00049462122 eV 20.288442 cm 20.288442 cm World Transportation 0 fm 390.36094 mum -920.6619 mum + 2 0 fm 6.5801508 cm 21.74 m 500 MeV0.00014147067 eV 5.8028638 cm 26.091306 cm RadSlice Transportation 0 fm 493.16452 mum -869.93607 mum + 3 0 fm 19.942498 cm 21.58699 m 500 MeV0.00049864186 eV 20.453361 cm 46.544667 cm Radiator Transportation 0 fm 795.60591 mum -605.81452 mum + 4 0 fm 81.240793 cm 21.58699 m 500 MeV0.0016053626 eV 65.848987 cm 1.1239365 m World Transportation 0 fm 795.60595 mum 605.81447 mum + 5 0 fm 94.603131 cm 21.74 m 500 MeV0.00049864169 eV 20.453354 cm 1.3284701 m Radiator Transportation 0 fm 493.1647 mum 869.93596 mum + 6 0 fm 98.923943 cm 21.84 m 500 MeV0.00026609458 eV 10.914704 cm 1.4376171 m RadSlice Transportation 0 fm 295.50359 mum 955.34163 mum + 7 0 fm 1.0118328 m 21.9895 m 500 MeV0.0003699973 eV 15.176601 cm 1.5893831 m World Transportation 0 fm 2.1925711 Ang 1000 mum + 8 0 fm 1.0118318 m 21.9905 m 500 MeV2.4379474e-06 eV 1.0000007 mm 1.5903831 m Absorber Transportation 0 fm -1.9763919 mum 999.99805 mum + 9 0 fm 1.0117238 m 22 m 500 MeV2.3162324e-05 eV 9.5007541 mm 1.5998839 m OutOfWorld Transportation 0 fm -20.7542 mum 999.78461 mum Run terminated. Run Summary Number of events processed : 1 - User=0.01s Real=0.09s Sys=0s + User=0.01s Real=0.08s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. ========= Table of registered couples ============================== @@ -224,6 +229,8 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 1 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 @@ -233,6 +240,7 @@ Run terminated. Run Summary Number of events processed : 100 User=0.77s Real=0.77s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. Set field value to (0,0,1000) Gauss ========= Table of registered couples ============================== @@ -247,13 +255,16 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== ### Run 2 start. +WARNING: Scene "refresh" not found. + /vis/scene/list to see scenes. Start Run processing. ---> Begin of Event: 0 Run terminated. Run Summary Number of events processed : 10 - User=0.07s Real=0.07s Sys=0s + User=0.08s Real=0.08s Sys=0s +ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer. Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/field/field03/include/F03CalorHit.hh b/examples/extended/field/field03/include/F03CalorHit.hh index cc262610af..e653f3febb 100644 --- a/examples/extended/field/field03/include/F03CalorHit.hh +++ b/examples/extended/field/field03/include/F03CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: F03CalorHit.hh,v 1.3 2003/06/25 17:18:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03CalorimeterSD.hh b/examples/extended/field/field03/include/F03CalorimeterSD.hh index 08a610904c..bfee1cbb4a 100644 --- a/examples/extended/field/field03/include/F03CalorimeterSD.hh +++ b/examples/extended/field/field03/include/F03CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: F03CalorimeterSD.hh,v 1.3 2001/10/15 17:20:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorConstruction.hh b/examples/extended/field/field03/include/F03DetectorConstruction.hh index 607f14566f..91620f835b 100644 --- a/examples/extended/field/field03/include/F03DetectorConstruction.hh +++ b/examples/extended/field/field03/include/F03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: F03DetectorConstruction.hh,v 1.5 2003/12/01 17:28:26 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorMessenger.hh b/examples/extended/field/field03/include/F03DetectorMessenger.hh index 749756680b..b1a3e977c3 100644 --- a/examples/extended/field/field03/include/F03DetectorMessenger.hh +++ b/examples/extended/field/field03/include/F03DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03DetectorMessenger.hh,v 1.3 2001/10/25 10:03:53 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03EventAction.hh b/examples/extended/field/field03/include/F03EventAction.hh index 97240e12bc..dc62764dee 100644 --- a/examples/extended/field/field03/include/F03EventAction.hh +++ b/examples/extended/field/field03/include/F03EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: F03EventAction.hh,v 1.3 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03EventActionMessenger.hh b/examples/extended/field/field03/include/F03EventActionMessenger.hh index 4099271a48..26e9274d4e 100644 --- a/examples/extended/field/field03/include/F03EventActionMessenger.hh +++ b/examples/extended/field/field03/include/F03EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03EventActionMessenger.hh,v 1.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03FieldMessenger.hh b/examples/extended/field/field03/include/F03FieldMessenger.hh index 046323a0f3..89ee056abf 100644 --- a/examples/extended/field/field03/include/F03FieldMessenger.hh +++ b/examples/extended/field/field03/include/F03FieldMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03FieldMessenger.hh,v 1.3 2003/12/01 17:28:46 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03FieldSetup.hh b/examples/extended/field/field03/include/F03FieldSetup.hh index 71e5f4e1ee..33a5a47d73 100644 --- a/examples/extended/field/field03/include/F03FieldSetup.hh +++ b/examples/extended/field/field03/include/F03FieldSetup.hh @@ -22,7 +22,7 @@ // // // $Id: F03FieldSetup.hh,v 1.1 2003/12/01 17:03:02 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // A class for setting up the Magnetic Field of the setup, and // creating the necessary classes to control accuracy of propagation. diff --git a/examples/extended/field/field03/include/F03PhysicsList.hh b/examples/extended/field/field03/include/F03PhysicsList.hh index 52224d85ab..463f092dab 100644 --- a/examples/extended/field/field03/include/F03PhysicsList.hh +++ b/examples/extended/field/field03/include/F03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsList.hh,v 1.4 2003/08/27 17:50:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef F03PhysicsList_h diff --git a/examples/extended/field/field03/include/F03PhysicsListMessenger.hh b/examples/extended/field/field03/include/F03PhysicsListMessenger.hh index 98e489c7d4..3f04c7a40e 100644 --- a/examples/extended/field/field03/include/F03PhysicsListMessenger.hh +++ b/examples/extended/field/field03/include/F03PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsListMessenger.hh,v 1.3 2001/10/15 17:20:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh index b1149203d0..a26338d598 100644 --- a/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh +++ b/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorAction.hh,v 1.3 2001/10/15 17:20:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh index 65e58965fb..53def413bb 100644 --- a/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh +++ b/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorMessenger.hh,v 1.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03RunAction.hh b/examples/extended/field/field03/include/F03RunAction.hh index 03c52d1a85..cd8fb70168 100644 --- a/examples/extended/field/field03/include/F03RunAction.hh +++ b/examples/extended/field/field03/include/F03RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: F03RunAction.hh,v 1.5 2003/06/16 16:49:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03RunMessenger.hh b/examples/extended/field/field03/include/F03RunMessenger.hh index f3427513e0..681d5ab998 100644 --- a/examples/extended/field/field03/include/F03RunMessenger.hh +++ b/examples/extended/field/field03/include/F03RunMessenger.hh @@ -23,7 +23,7 @@ // // $Id: F03RunMessenger.hh,v 1.3 2001/10/15 17:20:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03StepCut.hh b/examples/extended/field/field03/include/F03StepCut.hh index 8716ecb3ca..e330ab6619 100644 --- a/examples/extended/field/field03/include/F03StepCut.hh +++ b/examples/extended/field/field03/include/F03StepCut.hh @@ -22,7 +22,7 @@ // // // $Id: F03StepCut.hh,v 1.4 2003/06/25 17:18:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingAction.hh b/examples/extended/field/field03/include/F03SteppingAction.hh index f28506027b..0a99aee248 100644 --- a/examples/extended/field/field03/include/F03SteppingAction.hh +++ b/examples/extended/field/field03/include/F03SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: F03SteppingAction.hh,v 1.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingMessenger.hh b/examples/extended/field/field03/include/F03SteppingMessenger.hh index 4cffe0ad8b..eecb3cd87a 100644 --- a/examples/extended/field/field03/include/F03SteppingMessenger.hh +++ b/examples/extended/field/field03/include/F03SteppingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: F03SteppingMessenger.hh,v 1.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/include/F03SteppingVerbose.hh b/examples/extended/field/field03/include/F03SteppingVerbose.hh index 62a8abce63..c7e0945a41 100644 --- a/examples/extended/field/field03/include/F03SteppingVerbose.hh +++ b/examples/extended/field/field03/include/F03SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: F03SteppingVerbose.hh,v 1.3 2001/10/15 17:20:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field03/src/F03CalorHit.cc b/examples/extended/field/field03/src/F03CalorHit.cc index 228580d353..0255b72021 100644 --- a/examples/extended/field/field03/src/F03CalorHit.cc +++ b/examples/extended/field/field03/src/F03CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: F03CalorHit.cc,v 1.3 2003/06/25 17:19:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03CalorimeterSD.cc b/examples/extended/field/field03/src/F03CalorimeterSD.cc index 9bbf3166ee..551f725e6d 100644 --- a/examples/extended/field/field03/src/F03CalorimeterSD.cc +++ b/examples/extended/field/field03/src/F03CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: F03CalorimeterSD.cc,v 1.5 2003/06/25 17:19:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03DetectorConstruction.cc b/examples/extended/field/field03/src/F03DetectorConstruction.cc index f0900e8d91..e77ce64914 100644 --- a/examples/extended/field/field03/src/F03DetectorConstruction.cc +++ b/examples/extended/field/field03/src/F03DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03DetectorConstruction.cc,v 1.10 2003/12/01 17:28:33 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F03DetectorConstruction.cc,v 1.11 2005/10/13 15:00:01 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -31,9 +31,6 @@ #include "F03CalorimeterSD.hh" #include "F03FieldSetup.hh" -#include "G4VClusterModel.hh" -#include "G4PAIclusterModel.hh" - #include "G4Material.hh" #include "G4Tubs.hh" #include "G4LogicalVolume.hh" diff --git a/examples/extended/field/field03/src/F03DetectorMessenger.cc b/examples/extended/field/field03/src/F03DetectorMessenger.cc index 32f6e2347c..efec140a27 100644 --- a/examples/extended/field/field03/src/F03DetectorMessenger.cc +++ b/examples/extended/field/field03/src/F03DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03DetectorMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03EventAction.cc b/examples/extended/field/field03/src/F03EventAction.cc index dfad4f5e4f..8502edd2b9 100644 --- a/examples/extended/field/field03/src/F03EventAction.cc +++ b/examples/extended/field/field03/src/F03EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03EventAction.cc,v 1.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F03EventAction.cc,v 1.5 2005/12/06 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -109,12 +109,12 @@ void F03EventAction::EndOfEventAction(const G4Event* evt) //save rndm status if (runaction->GetRndmFreq() == 2) { - HepRandom::saveEngineStatus("endOfEvent.rndm"); + CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm"); G4int evtNb = evt->GetEventID(); if (evtNb%printModulo == 0) { G4cout << "\n---> End of Event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } } } diff --git a/examples/extended/field/field03/src/F03EventActionMessenger.cc b/examples/extended/field/field03/src/F03EventActionMessenger.cc index 09b025a216..80632495f0 100644 --- a/examples/extended/field/field03/src/F03EventActionMessenger.cc +++ b/examples/extended/field/field03/src/F03EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03EventActionMessenger.cc,v 1.3 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03FieldMessenger.cc b/examples/extended/field/field03/src/F03FieldMessenger.cc index babb591360..06c7822856 100644 --- a/examples/extended/field/field03/src/F03FieldMessenger.cc +++ b/examples/extended/field/field03/src/F03FieldMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03FieldMessenger.cc,v 1.6 2004/03/23 15:40:39 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03FieldSetup.cc b/examples/extended/field/field03/src/F03FieldSetup.cc index f4c015efb4..c3d5204874 100644 --- a/examples/extended/field/field03/src/F03FieldSetup.cc +++ b/examples/extended/field/field03/src/F03FieldSetup.cc @@ -22,7 +22,7 @@ // // // $Id: F03FieldSetup.cc,v 1.3 2004/03/23 15:41:38 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Field Setup class implementation. diff --git a/examples/extended/field/field03/src/F03PhysicsList.cc b/examples/extended/field/field03/src/F03PhysicsList.cc index 13fd277d72..cabd21a0b3 100644 --- a/examples/extended/field/field03/src/F03PhysicsList.cc +++ b/examples/extended/field/field03/src/F03PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsList.cc,v 1.9 2004/12/03 15:22:19 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Timer.hh" diff --git a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc index 148a69a681..8beccebde8 100644 --- a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc +++ b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03PhysicsListMessenger.cc,v 1.4 2003/08/27 17:50:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc index dbdd442fdd..813435aa5f 100644 --- a/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc +++ b/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorAction.cc,v 1.5 2004/12/03 16:07:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc index 35e39cc7df..ec1126701b 100644 --- a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc +++ b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03PrimaryGeneratorMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03RunAction.cc b/examples/extended/field/field03/src/F03RunAction.cc index 123cf6a678..05a21bff02 100644 --- a/examples/extended/field/field03/src/F03RunAction.cc +++ b/examples/extended/field/field03/src/F03RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03RunAction.cc,v 1.7 2003/06/25 17:19:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F03RunAction.cc,v 1.8 2005/12/06 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "F03RunAction.hh" @@ -60,8 +60,8 @@ void F03RunAction::BeginOfRunAction(const G4Run* aRun) // save Rndm status if (saveRndm > 0) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("beginOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("beginOfRun.rndm"); } G4UImanager* UI = G4UImanager::GetUIpointer(); @@ -83,8 +83,8 @@ void F03RunAction::EndOfRunAction(const G4Run*) if (saveRndm == 1) { - HepRandom::showEngineStatus(); - HepRandom::saveEngineStatus("endOfRun.rndm"); + CLHEP::HepRandom::showEngineStatus(); + CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm"); } } diff --git a/examples/extended/field/field03/src/F03RunMessenger.cc b/examples/extended/field/field03/src/F03RunMessenger.cc index ff3a7d6ce3..8d57764181 100644 --- a/examples/extended/field/field03/src/F03RunMessenger.cc +++ b/examples/extended/field/field03/src/F03RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03RunMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: F03RunMessenger.cc,v 1.5 2005/12/06 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -80,8 +80,8 @@ void F03RunMessenger::SetNewValue(G4UIcommand* command,G4String newValues) if (command == RndmReadCmd) { G4cout << "\n---> rndm status restored from file: " << newValues << G4endl; - HepRandom::restoreEngineStatus(newValues); - HepRandom::showEngineStatus(); + CLHEP::HepRandom::restoreEngineStatus(newValues); + CLHEP::HepRandom::showEngineStatus(); } } diff --git a/examples/extended/field/field03/src/F03StepCut.cc b/examples/extended/field/field03/src/F03StepCut.cc index 3131750104..804164e8b3 100644 --- a/examples/extended/field/field03/src/F03StepCut.cc +++ b/examples/extended/field/field03/src/F03StepCut.cc @@ -22,7 +22,7 @@ // // // $Id: F03StepCut.cc,v 1.2 2001/07/11 09:58:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "F03StepCut.hh" diff --git a/examples/extended/field/field03/src/F03SteppingAction.cc b/examples/extended/field/field03/src/F03SteppingAction.cc index 5d59e42d6d..b0712d4047 100644 --- a/examples/extended/field/field03/src/F03SteppingAction.cc +++ b/examples/extended/field/field03/src/F03SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: F03SteppingAction.cc,v 1.5 2003/06/16 16:49:08 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/field/field03/src/F03SteppingMessenger.cc b/examples/extended/field/field03/src/F03SteppingMessenger.cc index e1d4d0fd52..d6ae5b953f 100644 --- a/examples/extended/field/field03/src/F03SteppingMessenger.cc +++ b/examples/extended/field/field03/src/F03SteppingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03SteppingMessenger.cc,v 1.4 2003/06/25 17:19:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/src/F03SteppingVerbose.cc b/examples/extended/field/field03/src/F03SteppingVerbose.cc index 9064e8ee9b..40f1b9bbf1 100644 --- a/examples/extended/field/field03/src/F03SteppingVerbose.cc +++ b/examples/extended/field/field03/src/F03SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: F03SteppingVerbose.cc,v 1.4 2003/06/16 16:49:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.cc b/examples/extended/g3tog4/clGeometry/clGeometry.cc index 0b37e9e613..ee0ef9609a 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.cc +++ b/examples/extended/g3tog4/clGeometry/clGeometry.cc @@ -22,7 +22,7 @@ // // // $Id: clGeometry.cc,v 1.6 2005/06/27 15:27:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.out b/examples/extended/g3tog4/clGeometry/clGeometry.out index eecac90dbc..64cf304ec1 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.out +++ b/examples/extended/g3tog4/clGeometry/clGeometry.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (27-June-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh index 8fa25b0c3e..50c8a8c5ce 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4DetectorConstruction.hh,v 1.3 2003/02/20 08:48:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G3toG4DetectorConstruction_h #define G3toG4DetectorConstruction_h 1 diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh index 49e499a302..9f0c85bb4b 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventAction.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh index 78bb59930e..e61c89b1c5 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh index d527f01e53..4a260f3d93 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4PhysicsList.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh index 0874928dc7..32e573bf02 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh index 3712567231..3119a49e90 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4RunAction.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc index 0e766c05eb..3f629b3af4 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4DetectorConstruction.cc,v 1.4 2003/07/04 15:55:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //-------------------------------------------------------------------------- // G3toG4DetectorConstruction. Most the work is Done in diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc index 2f8873959c..840818e5ff 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventAction.cc,v 1.4 2003/07/04 15:55:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc index 0edd8ffd38..374ee53c97 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.cc,v 1.3 2002/12/05 01:06:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc index c27a4e6534..5041b53fac 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4PhysicsList.cc,v 1.3 2003/02/20 08:48:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc index ac6c10959b..d25f43d1e8 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4PrimaryGeneratorAction.cc,v 1.4 2004/12/03 16:13:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc index 65fe810219..e8ebef4220 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4RunAction.cc,v 1.3 2003/07/04 15:55:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/cltog4/cltog4.cc b/examples/extended/g3tog4/cltog4/cltog4.cc index 84c9de4dbf..2a8649665d 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.cc +++ b/examples/extended/g3tog4/cltog4/cltog4.cc @@ -22,7 +22,7 @@ // // // $Id: cltog4.cc,v 1.5 2005/06/27 15:27:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4ios.hh" diff --git a/examples/extended/g3tog4/cltog4/cltog4.out b/examples/extended/g3tog4/cltog4/cltog4.out index 90b82c10a4..b3f418a5e1 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.out +++ b/examples/extended/g3tog4/cltog4/cltog4.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (27-June-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh index 58d9770e6d..7ab9ab91d3 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4DetectorConstruction.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G3toG4DetectorConstruction_h #define G3toG4DetectorConstruction_h 1 diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh index 78c9862fd3..f05131224e 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventAction.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh index 78084dd3ba..060c760bc1 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh index dbad359360..82e941ef26 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4PhysicsList.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh index 23905631b0..cbf13dc4a2 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4PrimaryGeneratorAction.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh index 3aec61d1fd..ea9ed92a53 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4RunAction.hh,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc index 99349a1a94..4d54c59b43 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4DetectorConstruction.cc,v 1.4 2003/07/04 15:45:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //-------------------------------------------------------------------------- // G3toG4DetectorConstruction. Most the work is Done in diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc index 9c7c356113..a78082b095 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventAction.cc,v 1.5 2003/07/04 15:55:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc index 0edd8ffd38..374ee53c97 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4EventActionMessenger.cc,v 1.3 2002/12/05 01:06:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc index 34103ea516..1f77f43a9e 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4PhysicsList.cc,v 1.3 2003/02/20 08:52:39 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc index ac6c10959b..d25f43d1e8 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4PrimaryGeneratorAction.cc,v 1.4 2004/12/03 16:13:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc index 9cb0cd4cb7..63d8be81bd 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4RunAction.cc,v 1.3 2003/07/04 15:45:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4ios.hh" diff --git a/examples/extended/gdml/include/g4rwPrimaryGeneratorAction.hh b/examples/extended/gdml/include/g4rwPrimaryGeneratorAction.hh index c1cef1ecdd..f3b01922a9 100644 --- a/examples/extended/gdml/include/g4rwPrimaryGeneratorAction.hh +++ b/examples/extended/gdml/include/g4rwPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: g4rwPrimaryGeneratorAction.hh,v 1.1 2004/12/06 11:01:14 radoone Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/src/g4rwDetectorConstruction.cc b/examples/extended/gdml/src/g4rwDetectorConstruction.cc index 2ab34956e8..527b7f5d04 100644 --- a/examples/extended/gdml/src/g4rwDetectorConstruction.cc +++ b/examples/extended/gdml/src/g4rwDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: g4rwDetectorConstruction.cc,v 1.1 2004/12/06 11:01:14 radoone Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/src/g4rwPhysicsList.cc b/examples/extended/gdml/src/g4rwPhysicsList.cc index dafaf864fa..4f63506bea 100644 --- a/examples/extended/gdml/src/g4rwPhysicsList.cc +++ b/examples/extended/gdml/src/g4rwPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: g4rwPhysicsList.cc,v 1.1 2004/12/06 11:01:14 radoone Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/src/g4rwPrimaryGeneratorAction.cc b/examples/extended/gdml/src/g4rwPrimaryGeneratorAction.cc index 9f2d72ebc7..c3fa9c8bae 100644 --- a/examples/extended/gdml/src/g4rwPrimaryGeneratorAction.cc +++ b/examples/extended/gdml/src/g4rwPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: g4rwPrimaryGeneratorAction.cc,v 1.3 2004/12/07 09:45:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "g4rwPrimaryGeneratorAction.hh" diff --git a/examples/extended/geometry/olap/History b/examples/extended/geometry/olap/History index 651ff7181d..018b29b8fa 100644 --- a/examples/extended/geometry/olap/History +++ b/examples/extended/geometry/olap/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.10 2005/11/15 14:15:25 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,7 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +November 15th, 2005 G.Cosmo - olapex-V07-01-00 +- migration to from deprecated . + +May 3rd, 2005 J.Allison - Replaced vis manager with G4VisExecutive. June 28th, 2004 G.Cosmo - olapex-V06-02-00 diff --git a/examples/extended/geometry/olap/include/G4GeoNav.hh b/examples/extended/geometry/olap/include/G4GeoNav.hh index e5ec6996f1..30673d2c1c 100644 --- a/examples/extended/geometry/olap/include/G4GeoNav.hh +++ b/examples/extended/geometry/olap/include/G4GeoNav.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeoNav.hh,v 1.3 2003/06/16 16:49:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapDetConstr.hh b/examples/extended/geometry/olap/include/OlapDetConstr.hh index deb8d8de90..015716e36c 100644 --- a/examples/extended/geometry/olap/include/OlapDetConstr.hh +++ b/examples/extended/geometry/olap/include/OlapDetConstr.hh @@ -22,7 +22,7 @@ // // // $Id: OlapDetConstr.hh,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapEventAction.hh b/examples/extended/geometry/olap/include/OlapEventAction.hh index e6fbbc3a0b..464f64740c 100644 --- a/examples/extended/geometry/olap/include/OlapEventAction.hh +++ b/examples/extended/geometry/olap/include/OlapEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: OlapEventAction.hh,v 1.2 2003/06/16 16:49:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapGenerator.hh b/examples/extended/geometry/olap/include/OlapGenerator.hh index 853532820b..348a13c447 100644 --- a/examples/extended/geometry/olap/include/OlapGenerator.hh +++ b/examples/extended/geometry/olap/include/OlapGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: OlapGenerator.hh,v 1.2 2003/06/16 16:49:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapLogManager.hh b/examples/extended/geometry/olap/include/OlapLogManager.hh index a3a049083b..9d885d3c2d 100644 --- a/examples/extended/geometry/olap/include/OlapLogManager.hh +++ b/examples/extended/geometry/olap/include/OlapLogManager.hh @@ -22,7 +22,7 @@ // // // $Id: OlapLogManager.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapManager.hh b/examples/extended/geometry/olap/include/OlapManager.hh index 4eefea1a89..d85a6ce333 100644 --- a/examples/extended/geometry/olap/include/OlapManager.hh +++ b/examples/extended/geometry/olap/include/OlapManager.hh @@ -22,7 +22,7 @@ // // // $Id: OlapManager.hh,v 1.3 2003/06/16 16:49:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapManagerMessenger.hh b/examples/extended/geometry/olap/include/OlapManagerMessenger.hh index 66d39840c7..adc3cea910 100644 --- a/examples/extended/geometry/olap/include/OlapManagerMessenger.hh +++ b/examples/extended/geometry/olap/include/OlapManagerMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: OlapManagerMessenger.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapNotify.hh b/examples/extended/geometry/olap/include/OlapNotify.hh index 762759fd73..fe037c5bb7 100644 --- a/examples/extended/geometry/olap/include/OlapNotify.hh +++ b/examples/extended/geometry/olap/include/OlapNotify.hh @@ -22,7 +22,7 @@ // // // $Id: OlapNotify.hh,v 1.2 2003/06/16 16:49:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapPhysicsList.hh b/examples/extended/geometry/olap/include/OlapPhysicsList.hh index 605aea48cb..8e9199d3ed 100644 --- a/examples/extended/geometry/olap/include/OlapPhysicsList.hh +++ b/examples/extended/geometry/olap/include/OlapPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: OlapPhysicsList.hh,v 1.1 2002/06/04 07:40:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapRunAction.hh b/examples/extended/geometry/olap/include/OlapRunAction.hh index 51d002e841..24a34519b4 100644 --- a/examples/extended/geometry/olap/include/OlapRunAction.hh +++ b/examples/extended/geometry/olap/include/OlapRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: OlapRunAction.hh,v 1.2 2003/06/16 16:49:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapSteppingAction.hh b/examples/extended/geometry/olap/include/OlapSteppingAction.hh index c87f30038c..04f404e49e 100644 --- a/examples/extended/geometry/olap/include/OlapSteppingAction.hh +++ b/examples/extended/geometry/olap/include/OlapSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: OlapSteppingAction.hh,v 1.2 2003/06/16 16:49:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/RandomDetector.hh b/examples/extended/geometry/olap/include/RandomDetector.hh index 48d45dcf3c..e36962ffcd 100644 --- a/examples/extended/geometry/olap/include/RandomDetector.hh +++ b/examples/extended/geometry/olap/include/RandomDetector.hh @@ -22,7 +22,7 @@ // // // $Id: RandomDetector.hh,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/SolidAnalyser.hh b/examples/extended/geometry/olap/include/SolidAnalyser.hh index e430265035..3926cb031b 100644 --- a/examples/extended/geometry/olap/include/SolidAnalyser.hh +++ b/examples/extended/geometry/olap/include/SolidAnalyser.hh @@ -22,7 +22,7 @@ // // // $Id: SolidAnalyser.hh,v 1.2 2003/06/16 16:49:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/tree.hh b/examples/extended/geometry/olap/include/tree.hh index e8e31ebfb3..4241ce3ff2 100644 --- a/examples/extended/geometry/olap/include/tree.hh +++ b/examples/extended/geometry/olap/include/tree.hh @@ -22,7 +22,7 @@ // // // $Id: tree.hh,v 1.3 2003/06/16 16:49:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/olapex.cc b/examples/extended/geometry/olap/olapex.cc index b6ee9e77b2..c61f214850 100644 --- a/examples/extended/geometry/olap/olapex.cc +++ b/examples/extended/geometry/olap/olapex.cc @@ -22,7 +22,7 @@ // // // $Id: olapex.cc,v 1.2 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/G4GeoNav.cc b/examples/extended/geometry/olap/src/G4GeoNav.cc index 39f2950d7f..68977644f6 100644 --- a/examples/extended/geometry/olap/src/G4GeoNav.cc +++ b/examples/extended/geometry/olap/src/G4GeoNav.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeoNav.cc,v 1.2 2003/06/16 16:49:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapDetConstr.cc b/examples/extended/geometry/olap/src/OlapDetConstr.cc index 7f47830ee8..d0b3933257 100644 --- a/examples/extended/geometry/olap/src/OlapDetConstr.cc +++ b/examples/extended/geometry/olap/src/OlapDetConstr.cc @@ -22,7 +22,7 @@ // // // $Id: OlapDetConstr.cc,v 1.3 2005/06/27 15:27:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapEventAction.cc b/examples/extended/geometry/olap/src/OlapEventAction.cc index a3cb1c2bd5..8066d43403 100644 --- a/examples/extended/geometry/olap/src/OlapEventAction.cc +++ b/examples/extended/geometry/olap/src/OlapEventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: OlapEventAction.cc,v 1.3 2003/06/16 16:49:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: OlapEventAction.cc,v 1.4 2005/11/15 14:15:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -34,7 +34,7 @@ // #include "globals.hh" #include -#include +#include #include "G4VVisManager.hh" #include "G4Trajectory.hh" @@ -272,7 +272,7 @@ void OlapEventAction::EndOfEventAction(const G4Event* anEvent) oi->probNot = true; // probably not an overlap, just numerics .... dontDelete = true; - std::ostrstream os; + std::ostringstream os; os << "A,B diff. steps AB:" << ABSteps.size() << " BA:" << BASteps.size() << '\0'; diff --git a/examples/extended/geometry/olap/src/OlapGenerator.cc b/examples/extended/geometry/olap/src/OlapGenerator.cc index 645fddebf9..66f4da1b81 100644 --- a/examples/extended/geometry/olap/src/OlapGenerator.cc +++ b/examples/extended/geometry/olap/src/OlapGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: OlapGenerator.cc,v 1.3 2005/06/27 15:27:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapLogManager.cc b/examples/extended/geometry/olap/src/OlapLogManager.cc index 57eae2073d..1bdaf67b4b 100644 --- a/examples/extended/geometry/olap/src/OlapLogManager.cc +++ b/examples/extended/geometry/olap/src/OlapLogManager.cc @@ -22,7 +22,7 @@ // // // $Id: OlapLogManager.cc,v 1.2 2003/06/16 16:49:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapManager.cc b/examples/extended/geometry/olap/src/OlapManager.cc index 14403c9c43..7e65865414 100644 --- a/examples/extended/geometry/olap/src/OlapManager.cc +++ b/examples/extended/geometry/olap/src/OlapManager.cc @@ -22,7 +22,7 @@ // // // $Id: OlapManager.cc,v 1.2 2003/06/16 16:49:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapManagerMessenger.cc b/examples/extended/geometry/olap/src/OlapManagerMessenger.cc index 536fbb367b..ab346310e8 100644 --- a/examples/extended/geometry/olap/src/OlapManagerMessenger.cc +++ b/examples/extended/geometry/olap/src/OlapManagerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: OlapManagerMessenger.cc,v 1.2 2002/12/05 01:07:00 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapNotify.cc b/examples/extended/geometry/olap/src/OlapNotify.cc index 87b60039ef..64b83515c3 100644 --- a/examples/extended/geometry/olap/src/OlapNotify.cc +++ b/examples/extended/geometry/olap/src/OlapNotify.cc @@ -22,7 +22,7 @@ // // // $Id: OlapNotify.cc,v 1.1 2002/06/04 07:40:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapPhysicsList.cc b/examples/extended/geometry/olap/src/OlapPhysicsList.cc index 280a1b1b94..e72d590933 100644 --- a/examples/extended/geometry/olap/src/OlapPhysicsList.cc +++ b/examples/extended/geometry/olap/src/OlapPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: OlapPhysicsList.cc,v 1.1 2002/06/04 07:40:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapRunAction.cc b/examples/extended/geometry/olap/src/OlapRunAction.cc index 168c6de0e5..6d55241ff1 100644 --- a/examples/extended/geometry/olap/src/OlapRunAction.cc +++ b/examples/extended/geometry/olap/src/OlapRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: OlapRunAction.cc,v 1.4 2003/06/16 16:49:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapSteppingAction.cc b/examples/extended/geometry/olap/src/OlapSteppingAction.cc index fbf168f689..05ff463676 100644 --- a/examples/extended/geometry/olap/src/OlapSteppingAction.cc +++ b/examples/extended/geometry/olap/src/OlapSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: OlapSteppingAction.cc,v 1.2 2003/06/16 16:49:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/RandomDetector.cc b/examples/extended/geometry/olap/src/RandomDetector.cc index bc907c192a..a822b8db4e 100644 --- a/examples/extended/geometry/olap/src/RandomDetector.cc +++ b/examples/extended/geometry/olap/src/RandomDetector.cc @@ -22,7 +22,7 @@ // // // $Id: RandomDetector.cc,v 1.3 2005/06/27 15:27:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/SolidAnalyser.cc b/examples/extended/geometry/olap/src/SolidAnalyser.cc index ae8da1ac06..1de0e98ae9 100644 --- a/examples/extended/geometry/olap/src/SolidAnalyser.cc +++ b/examples/extended/geometry/olap/src/SolidAnalyser.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: SolidAnalyser.cc,v 1.4 2004/06/28 07:25:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: SolidAnalyser.cc,v 1.5 2005/11/15 14:15:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -34,7 +34,7 @@ // #include "SolidAnalyser.hh" -#include +#include #include "G4Box.hh" #include "G4Cons.hh" @@ -145,7 +145,7 @@ G4int SolidAnalyser::GetParam(const G4Polycone * s, result.push_back(std::make_pair(temp, G4double(nr))); for (G4int i=0; iGetCorner(i); sstr_z << "z_" << i << '\0'; sstr_r << "r_" << i << '\0'; @@ -172,7 +172,7 @@ G4int SolidAnalyser::GetParam(const G4Polyhedra * s, for (G4int i=0; iGetCorner(i); sstr_z << "z_" << i << '\0'; sstr_r << "r_" << i << '\0'; diff --git a/examples/extended/medical/DICOM/History b/examples/extended/medical/DICOM/History index 0a6c3f4166..e3f2e84693 100644 --- a/examples/extended/medical/DICOM/History +++ b/examples/extended/medical/DICOM/History @@ -1,3 +1,5 @@ +$Id: History,v 1.10 2005/12/06 14:26:35 gcosmo Exp $ +------------------------------------------------------------------- ========================================================= Geant4 - DICOM example @@ -6,6 +8,12 @@ Category History file --------------------- +06.12.2005 - Gabriele Cosmo + Trivial changes for support of CLHEP-2.0.X series. + +29.11.2005 - Susanna Guatelli (DICOM-V07-01-00) + Documentation update + 12.06.2005 - Stephane Chauvie (DICOM-V07-00-01) Added improvement by Akinori Kimura. diff --git a/examples/extended/medical/DICOM/README b/examples/extended/medical/DICOM/README index 475c962ac8..8f5fc3c765 100644 --- a/examples/extended/medical/DICOM/README +++ b/examples/extended/medical/DICOM/README @@ -34,15 +34,15 @@ In the application the phantom is placed on a table. ---> 2) Installation: - -example enviroment with the compiler 3.2 + -example enviroment with the compiler 3.2.3 -a standard Geant4 example GNUmakefile is provided setup with: -compiler = gcc-3.2 +compiler = gcc-3.2.3 G4SYSTEM = linux-g++ The following environment variables need to be set: -G4LEDATA: points to low energy data base - G4EMLOW2.2 +G4LEDATA: points to low energy data base - G4EMLOW3.0 visualisation package: OpenGL diff --git a/examples/extended/medical/DICOM/dicom.cc b/examples/extended/medical/DICOM/dicom.cc index 2527510aef..c1ff07ae7e 100644 --- a/examples/extended/medical/DICOM/dicom.cc +++ b/examples/extended/medical/DICOM/dicom.cc @@ -76,7 +76,7 @@ int main(int argc,char** argv) visManager->Initialize(); #endif - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); G4UImanager* UI = G4UImanager::GetUIpointer(); diff --git a/examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh b/examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh index cff372da46..67cb5f883e 100644 --- a/examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh +++ b/examples/extended/medical/DICOM/include/DicomPatientParameterisation.hh @@ -66,47 +66,59 @@ public: virtual ~DicomPatientParameterisation(); - virtual void ComputeTransformation (const G4int copyNo, G4VPhysicalVolume* physVol) const; + void ComputeTransformation (const G4int copyNo, G4VPhysicalVolume* physVol) const; - // virtual void ComputeDimensions (G4Box & voxels, const G4int copyNo, const G4VPhysicalVolume* physVol) const; - - virtual void ComputeDimensions (G4Box&, + void ComputeDimensions(G4Box&, const G4int, const G4VPhysicalVolume* ) const; - virtual void ComputeDimensions(G4Tubs &, + void ComputeDimensions(G4Tubs &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimensions(G4Trd &, + void ComputeDimensions(G4Trd &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimensions(G4Trap &, + void ComputeDimensions(G4Trap &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimensions(G4Cons &, + void ComputeDimensions(G4Cons &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimensions(G4Sphere &, + void ComputeDimensions(G4Sphere &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimensions(G4Torus &, + void ComputeDimensions(G4Orb &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimensions(G4Para &, + void ComputeDimensions(G4Torus &, const G4int, const G4VPhysicalVolume *) const {} - virtual void ComputeDimensions(G4Hype &, + void ComputeDimensions(G4Para &, const G4int, const G4VPhysicalVolume *) const {} - virtual G4Material* ComputeMaterial(const G4int copyNo, G4VPhysicalVolume* physVol); + void ComputeDimensions(G4Polycone &, + const G4int, + const G4VPhysicalVolume *) const {} + + void ComputeDimensions(G4Polyhedra &, + const G4int, + const G4VPhysicalVolume *) const {} + + void ComputeDimensions(G4Hype &, + const G4int, + const G4VPhysicalVolume *) const {} + + G4Material* ComputeMaterial(const G4int copyNo, + G4VPhysicalVolume* physVol, + const G4VTouchable*); void GetDensity( G4double maxDensity, G4double minDensity ); diff --git a/examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc b/examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc index 76fd92e960..ea97ae9623 100644 --- a/examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc +++ b/examples/extended/medical/DICOM/src/DicomPatientParameterisation.cc @@ -45,7 +45,7 @@ #include "G4Material.hh" #include "G4VisAttributes.hh" -DicomPatientParameterisation::DicomPatientParameterisation(G4int NoVoxels, +DicomPatientParameterisation::DicomPatientParameterisation(G4int, // NoVoxels, G4double maxDensity, G4double minDensity , G4Material* lunginhale, @@ -218,8 +218,11 @@ void DicomPatientParameterisation::ComputeDimensions(G4Box& voxels, const G4int, voxels.SetZHalfLength((sliceThickness / 2.0) * mm); } -G4Material* DicomPatientParameterisation::ComputeMaterial(const G4int copyNo,G4VPhysicalVolume* physVol) { - +G4Material* +DicomPatientParameterisation::ComputeMaterial(const G4int copyNo, + G4VPhysicalVolume* physVol, + const G4VTouchable*) +{ if( density[copyNo] >= 0.207 && density[copyNo] <= 0.227 ) { physVol->SetName("PhysicalLungINhale"); physVol->GetLogicalVolume()->SetVisAttributes( attributeLungINhale ); diff --git a/examples/extended/medical/GammaTherapy/GammaTherapy.cc b/examples/extended/medical/GammaTherapy/GammaTherapy.cc index 3633b8d754..6ef9f8926a 100644 --- a/examples/extended/medical/GammaTherapy/GammaTherapy.cc +++ b/examples/extended/medical/GammaTherapy/GammaTherapy.cc @@ -62,7 +62,7 @@ int main(int argc,char** argv) { G4int verbose = 1; //choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); // G4String fName = argv[1]; // (Histo::GetInstance)->LoadParameters(fName); diff --git a/examples/extended/medical/GammaTherapy/GammaTherapy.out b/examples/extended/medical/GammaTherapy/GammaTherapy.out index 60d05c0f18..1c356d3f39 100644 --- a/examples/extended/medical/GammaTherapy/GammaTherapy.out +++ b/examples/extended/medical/GammaTherapy/GammaTherapy.out @@ -1,106 +1,67 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version Name: geant4-07-01-ref-00 (30-June-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; -***** Table : Nb of materials = 25 ***** +***** Table : Nb of materials = 6 ***** - Material: Be density: 1.848 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 35.267 cm - ---> Element: Be ( ) Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: G4_Be density: 1.848 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 35.276 cm + ---> Element: Be (Be) Z = 4.0 N = 9.0 A = 9.01 g/mole + ---> Isotope: Be Z = 4 N = 9 A = 9.01 g/mole abundance: 100.00 % fractionMass: 100.00 % Abundance 100.00 % - Material: W density: 19.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.495 mm - ---> Element: W ( ) Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: G4_W density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm + ---> Element: W (W) Z = 74.0 N = 183.9 A = 183.84 g/mole + ---> Isotope: W Z = 74 N = 180 A = 179.95 g/mole abundance: 0.12 % + ---> Isotope: W Z = 74 N = 182 A = 181.95 g/mole abundance: 26.50 % + ---> Isotope: W Z = 74 N = 183 A = 182.95 g/mole abundance: 14.31 % + ---> Isotope: W Z = 74 N = 184 A = 183.95 g/mole abundance: 30.64 % + ---> Isotope: W Z = 74 N = 186 A = 185.95 g/mole abundance: 28.43 % fractionMass: 100.00 % Abundance 100.00 % - Material: Cu density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.436 cm - ---> Element: Cu ( ) Z = 29.0 N = 63.5 A = 63.55 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: G4_He density: 0.166 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.671 km + ---> Element: He (He) Z = 2.0 N = 4.0 A = 4.00 g/mole + ---> Isotope: He Z = 2 N = 3 A = 3.02 g/mole abundance: 0.00 % + ---> Isotope: He Z = 2 N = 4 A = 4.00 g/mole abundance: 100.00 % fractionMass: 100.00 % Abundance 100.00 % - Material: He density: 0.178 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.299 km - ---> Element: He ( ) Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: G4_WATER density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.083 cm + ---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Isotope: H Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 % + ---> Isotope: H Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 % fractionMass: 11.19 % Abundance 66.67 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 88.81 % Abundance 33.33 % - Material: Aluminum density: 2.699 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.896 cm - ---> Element: Aluminum ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: G4_AIR density: 1.205 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.921 m + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole + ---> Isotope: C Z = 6 N = 12 A = 12.00 g/mole abundance: 98.93 % + ---> Isotope: C Z = 6 N = 13 A = 13.00 g/mole abundance: 1.07 % fractionMass: 0.01 % Abundance 0.02 % + ---> Element: N (N) Z = 7.0 N = 14.0 A = 14.01 g/mole + ---> Isotope: N Z = 7 N = 14 A = 14.00 g/mole abundance: 99.63 % + ---> Isotope: N Z = 7 N = 15 A = 15.00 g/mole abundance: 0.37 % fractionMass: 75.53 % Abundance 78.44 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 23.18 % Abundance 21.07 % + ---> Element: Ar (Ar) Z = 18.0 N = 40.0 A = 39.95 g/mole + ---> Isotope: Ar Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 % + ---> Isotope: Ar Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 % + ---> Isotope: Ar Z = 18 N = 40 A = 39.96 g/mole abundance: 99.60 % fractionMass: 1.28 % Abundance 0.47 % - Material: Carbon density: 2.265 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.851 cm - ---> Element: Carbon ( ) Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm - ---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 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: LiquidXenon density: 3.020 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.808 cm - ---> Element: LiquidXenon ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Iron density: 7.874 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.758 cm - ---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm - ---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Gold density: 19.320 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.344 mm - ---> Element: Gold ( ) Z = 79.0 N = 197.0 A = 196.97 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: Water H_2O density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.096 cm - ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole - ---> Isotope: Hydrogen Z = 1 N = 1 A = 1.01 g/mole abundance: 99.90 % - ---> Isotope: Deuterium Z = 1 N = 2 A = 2.01 g/mole abundance: 0.10 % fractionMass: 11.22 % Abundance 66.67 % - ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.78 % Abundance 33.33 % - - Material: Methane CH_4 density: 0.667 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 696.496 m - ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole - ---> Isotope: Hydrogen Z = 1 N = 1 A = 1.01 g/mole abundance: 99.90 % - ---> Isotope: Deuterium Z = 1 N = 2 A = 2.01 g/mole abundance: 0.10 % fractionMass: 25.21 % Abundance 80.00 % - ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 74.79 % Abundance 20.00 % - - Material: Graphite Graphite density: 2.265 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.834 cm - ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: GaAs GaAS density: 5.318 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.293 cm - ---> Element: Gallium (Ga) Z = 31.0 N = 69.7 A = 69.72 g/mole fractionMass: 48.20 % Abundance 50.00 % - ---> Element: Arsenicum (As) Z = 33.0 N = 74.9 A = 74.92 g/mole fractionMass: 51.80 % Abundance 50.00 % - - Material: Ethane C_2H_6 density: 424.100 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.077 m - ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole - ---> Isotope: Hydrogen Z = 1 N = 1 A = 1.01 g/mole abundance: 99.90 % - ---> Isotope: Deuterium Z = 1 N = 2 A = 2.01 g/mole abundance: 0.10 % fractionMass: 20.18 % Abundance 75.00 % - ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 79.82 % Abundance 25.00 % - - Material: CsI CsI density: 4.510 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.860 cm - ---> Element: Cesium (Cs) Z = 55.0 N = 132.9 A = 132.91 g/mole fractionMass: 51.15 % Abundance 50.00 % - ---> Element: Iodide (I) Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 48.85 % Abundance 50.00 % - - Material: N2 density: 1.251 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.846 m - ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: O2 density: 1.429 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 239.621 m - ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Argon density: 1.784 kg/m3 temperature: 273.15 K pressure: 1.00 atm RadLength: 109.604 m - ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Air density: 1.293 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 283.293 m - ---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 75.57 % Abundance 78.48 % - ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 23.15 % Abundance 21.05 % - ---> Element: Argon (Ar) Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 1.28 % Abundance 0.47 % - - Material: Mylar density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.870 cm - ---> Element: Carbon (C) Z = 6.0 N = 12.0 A = 12.00 g/mole fractionMass: 55.00 % Abundance 30.30 % - ---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole - ---> Isotope: Hydrogen Z = 1 N = 1 A = 1.01 g/mole abundance: 99.90 % - ---> Isotope: Deuterium Z = 1 N = 2 A = 2.01 g/mole abundance: 0.10 % fractionMass: 8.34 % Abundance 54.55 % - ---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 36.66 % Abundance 15.15 % - - Material: Vacuum density: 0.000 kg/m3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc - ---> Element: Vacuum ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: G4_MYLAR density: 1.400 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.536 cm + ---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Isotope: H Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 % + ---> Isotope: H Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 % fractionMass: 4.20 % Abundance 36.36 % + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole + ---> Isotope: C Z = 6 N = 12 A = 12.00 g/mole abundance: 98.93 % + ---> Isotope: C Z = 6 N = 13 A = 13.00 g/mole abundance: 1.07 % fractionMass: 62.50 % Abundance 45.46 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 33.30 % Abundance 18.18 % Visualization Manager instantiating... @@ -110,13 +71,18 @@ Registering graphics systems... You have successfully chosen to use the following graphics systems. Current available graphics systems are: ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) FukuiRenderer (DAWN) OpenGLImmediateX (OGLIX) OpenGLStoredX (OGLSX) VRML1 (VRML1) VRML2 (VRML2) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) PrimaryGeneratorMessenger: Construct UI interface is started /run/verbose 1 @@ -125,7 +91,7 @@ UI interface is started /testem/verbose 0 # /testem/phys/setCuts 0.1 mm -#/testem/stepMax 1.0 mm +/testem/stepMax 1.0 mm /process/eLoss/StepFunction 0.2 1. mm # /testem/phys/addPhysics standard @@ -135,9 +101,11 @@ PhysicsList::AddPhysicsList #/testem/phys/addPhysics lowenergy # /testem/target1Material Be -New target1 material Be +G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found out +Material Be is not found out! /testem/target2Material W -New target2 material W +G4NistMaterialBuilder::FindOrBuildMaterial WARNING: material is not found out +Material W is not found out! /testem/target1Z 9 mm /testem/target2Z 6 mm # @@ -162,37 +130,40 @@ New target2 material W Phantom width= 300 mm position = 487.501 mm: Absorb width= 5 mm position = -77.5 mm: Absorb shift= 337.501 mm - Target1 Be - Target2 W - Phantom Water + Target1 G4_Be + Target2 G4_W + Phantom G4_WATER =================================================== Phantom R= 200 dz= 150 Absorber R= 200 dz= 2.5 posZ= -77.5 +/run/beamOn 10000 phot: Total cross sections from Sandia parametrisation. -/run/beamOn 10000 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 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.022 MeV to 100 GeV in 100 bins. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 90 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 GeV in 90 bins. Boundary algorithm is active with facrange= 0.199 -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. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 GeV in 90 bins. Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon + msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 GeV in 90 bins. Boundary algorithm is active with facrange= 0.199 @@ -204,42 +175,42 @@ msc: Model variant of multiple scattering for pi- ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air + Material : G4_AIR Range cuts : gamma 100 mum e- 100 mum e+ 100 mum Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No - Material : Be + Material : G4_Be Range cuts : gamma 100 mum e- 100 mum e+ 100 mum Energy thresholds : gamma 1.02934 keV e- 107.795 keV e+ 106.476 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes recalculation needed : No - Material : He + Material : G4_He Range cuts : gamma 100 mum e- 100 mum e+ 100 mum Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV Region(s) which use this couple : DefaultRegionForTheWorld Index : 3 used in the geometry : Yes recalculation needed : No - Material : W + Material : G4_W Range cuts : gamma 100 mum e- 100 mum e+ 100 mum - Energy thresholds : gamma 36.0479 keV e- 351.438 keV e+ 338.695 keV + Energy thresholds : gamma 36.0479 keV e- 351.438 keV e+ 334.551 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 4 used in the geometry : Yes recalculation needed : No - Material : Mylar + Material : G4_MYLAR Range cuts : gamma 100 mum e- 100 mum e+ 100 mum - Energy thresholds : gamma 1.18131 keV e- 101.36 keV e+ 100.12 keV + Energy thresholds : gamma 1.19365 keV e- 98.2879 keV e+ 96.4896 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 5 used in the geometry : Yes recalculation needed : No - Material : Water + Material : G4_WATER Range cuts : gamma 100 mum e- 100 mum e+ 100 mum Energy thresholds : gamma 1.09571 keV e- 84.2696 keV e+ 83.2385 keV Region(s) which use this couple : @@ -253,29 +224,33 @@ Index : 5 used in the geometry : Yes recalculation needed : No 60 bins Z stepZ= 5 mm 200 bins E stepE= 0.25 MeV 14th bin in Z is used for R distribution +### Histo books 10 histograms +Tree store : histo.hbook Start Run processing. Run terminated. Run Summary Number of events processed : 10000 - User=25.09s Real=25.08s Sys=0s + User=54.13s Real=72.25s Sys=0s RunAction: End of run actions are started Histo: End of run actions are started ======================================================== Number of events 10000 -Average number of e- 35.61 -Average number of gamma 21.68 -Average number of e+ 0.7863 +Average number of e- 13.4 +Average number of gamma 21.36 +Average number of e+ 0.7426 Average number of neutrons 0 -Average number of steps in absorber 55.12 -Average number of e- steps in target 21.8 -Average number of g produced in the target 20.7 -Average number of e- produced in the target 22.79 -Average number of g produced in the phantom 0.5726 -Average number of e- produced in the phantom 6.402 -Total gamma fluence in front of phantom 8.626 MeV +Average number of steps in absorber 67.4 +Average number of e- steps in target 30.43 +Average number of g produced in the target 20.41 +Average number of e- produced in the target 7.163 +Average number of g produced in the phantom 0.5739 +Average number of e- produced in the phantom 2.878 +Total gamma fluence in front of phantom 8.835 MeV ======================================================== +Histograms and Ntuples are saved +Tree is closed Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. diff --git a/examples/extended/medical/GammaTherapy/History b/examples/extended/medical/GammaTherapy/History index fddbdd470f..f6eba9ab66 100644 --- a/examples/extended/medical/GammaTherapy/History +++ b/examples/extended/medical/GammaTherapy/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2005/06/07 13:55:07 vnivanch Exp $ +$Id: History,v 1.19 2005/12/06 14:32:29 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,20 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06 Deember 05: G.Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +02 December 05: V.Ivant (gtherapy-V07-01-02) +- Fix crash connected with non-static hadrons + +23 August 05: V.Ivant (gtherapy-V07-01-01) +- Add g4v71 builder + +23 August 05: V.Ivant (gtherapy-V07-01-00) +- Add vis.mac; +- Use standard angular distribution for lowenergy PhotoElectric +- Add histogram type (aida, root, hbook) + 7 June 05: V.Ivant (gtherapy-V07-00-04) - Fix step limiter UI diff --git a/examples/extended/medical/GammaTherapy/README b/examples/extended/medical/GammaTherapy/README index 41dd63a676..4351827441 100644 --- a/examples/extended/medical/GammaTherapy/README +++ b/examples/extended/medical/GammaTherapy/README @@ -87,7 +87,8 @@ eval `aida-config --runtime csh` It is possible to choose the format of the output file with histograms using UI command: -/testem/histo/setFileType type +/testem/histoName type +/testem/histoType type The following types are available: hbook, root, xml. diff --git a/examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh b/examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh index b179c86d5d..3d32d0bb67 100644 --- a/examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/DecaysBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/DetectorMessenger.hh b/examples/extended/medical/GammaTherapy/include/DetectorMessenger.hh index 5cd604660b..30cfedd49d 100644 --- a/examples/extended/medical/GammaTherapy/include/DetectorMessenger.hh +++ b/examples/extended/medical/GammaTherapy/include/DetectorMessenger.hh @@ -82,6 +82,7 @@ public: // Without description G4UIcmdWithADoubleAndUnit* YMagFieldCmd; G4UIcmdWithADoubleAndUnit* ZMagFieldCmd; G4UIcmdWithAString* HistoCmd; + G4UIcmdWithAString* HistoTCmd; G4UIcmdWithABool* ntupCmd; G4UIcmdWithAnInteger* NumOfEvt; G4UIcmdWithAnInteger* verbCmd; diff --git a/examples/extended/medical/GammaTherapy/include/EventActionMessenger.hh b/examples/extended/medical/GammaTherapy/include/EventActionMessenger.hh index 1b8761d336..06a55b65b0 100644 --- a/examples/extended/medical/GammaTherapy/include/EventActionMessenger.hh +++ b/examples/extended/medical/GammaTherapy/include/EventActionMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.hh,v 1.1 2004/08/03 16:56:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh index 67ef6b4d4f..160b30c1d4 100644 --- a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh index ea2fcea364..bec0930e93 100644 --- a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder71.hh b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder71.hh new file mode 100644 index 0000000000..2323fcc42d --- /dev/null +++ b/examples/extended/medical/GammaTherapy/include/G4EmHadronBuilder71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmHadronBuilder71.hh,v 1.1 2005/10/03 02:22:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4EmHadronBuilder71_h +#define G4EmHadronBuilder71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmHadronBuilder71 : public G4VPhysicsConstructor +{ +public: + G4EmHadronBuilder71(const G4String& name = "EM_stand_had"); + virtual ~G4EmHadronBuilder71(); + +public: + // This method is dummy for physics + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + +private: + + // hide assignment operator + G4EmHadronBuilder71 & operator=(const G4EmHadronBuilder71 &right); + G4EmHadronBuilder71(const G4EmHadronBuilder71&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh index c04b32bc25..5735ca7fb4 100644 --- a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh index 0bbf23829a..42bf915501 100644 --- a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder71.hh b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder71.hh new file mode 100644 index 0000000000..2d8cdee598 --- /dev/null +++ b/examples/extended/medical/GammaTherapy/include/G4EmMuonBuilder71.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmMuonBuilder71.hh,v 1.1 2005/10/03 02:22:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4EmMuonBuilder71_h +#define G4EmMuonBuilder71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmMuonBuilder71 : public G4VPhysicsConstructor +{ +public: + G4EmMuonBuilder71(const G4String& name = "EM_stan_muons"); + virtual ~G4EmMuonBuilder71(); + +public: + // This method is dummy for physics + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + +private: + + // hide assignment operator + G4EmMuonBuilder71 & operator=(const G4EmMuonBuilder71 &right); + G4EmMuonBuilder71(const G4EmMuonBuilder71&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh index 823c0b6c0f..30d39159e1 100644 --- a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh index cdb9fcc827..2cc954d52f 100644 --- a/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.hh b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder71.hh similarity index 84% rename from physics_lists/electromagnetic/standard/G4EmQEDBuilder70.hh rename to examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder71.hh index bbb45064a0..af893ddedb 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder70.hh +++ b/examples/extended/medical/GammaTherapy/include/G4EmQEDBuilder71.hh @@ -21,25 +21,25 @@ // ******************************************************************** // // -// $Id: G4EmQEDBuilder70.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmQEDBuilder71.hh,v 1.1 2005/10/03 02:22:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef G4EmQEDBuilder70_h -#define G4EmQEDBuilder70_h 1 +#ifndef G4EmQEDBuilder71_h +#define G4EmQEDBuilder71_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4EmQEDBuilder70 : public G4VPhysicsConstructor +class G4EmQEDBuilder71 : public G4VPhysicsConstructor { public: - G4EmQEDBuilder70(const G4String& name = "EM_stan_QED"); - virtual ~G4EmQEDBuilder70(); + G4EmQEDBuilder71(const G4String& name = "EM_stan_QED"); + virtual ~G4EmQEDBuilder71(); public: // This method is dummy for physics @@ -53,8 +53,8 @@ public: private: // hide assignment operator - G4EmQEDBuilder70 & operator=(const G4EmQEDBuilder70 &right); - G4EmQEDBuilder70(const G4EmQEDBuilder70&); + G4EmQEDBuilder71 & operator=(const G4EmQEDBuilder71 &right); + G4EmQEDBuilder71(const G4EmQEDBuilder71&); }; diff --git a/examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh index abfa7b4a04..a18ce22ca8 100644 --- a/examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4LowEnergyQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyQEDBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh index c0ba7a7050..928a62b9c8 100644 --- a/examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4PenelopeQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4PenelopeQEDBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh b/examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh index dcad2210a3..9813a35c7c 100644 --- a/examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/G4StepLimiterBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh b/examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh index 7d947aa4bc..97a0660a06 100644 --- a/examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh +++ b/examples/extended/medical/GammaTherapy/include/G4StepLimiterMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh b/examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh index 99a19a02bb..9703dfe503 100644 --- a/examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh +++ b/examples/extended/medical/GammaTherapy/include/G4StepLimiterPerRegion.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.hh,v 1.2 2005/04/14 08:22:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/Histo.hh b/examples/extended/medical/GammaTherapy/include/Histo.hh index 1104155754..c50edbd280 100644 --- a/examples/extended/medical/GammaTherapy/include/Histo.hh +++ b/examples/extended/medical/GammaTherapy/include/Histo.hh @@ -79,6 +79,7 @@ public: public: // Without description void SetHistoName(const G4String& name) {histName = name;}; + void SetHistoType(const G4String& type) {histType = type;}; void bookHisto(); void SaveToTuple(const G4String&, G4double); void SaveToTuple(const G4String&, G4double, G4double); @@ -144,6 +145,7 @@ private: G4VPhysicalVolume* target1; G4VPhysicalVolume* target2; G4String histName; + G4String histType; std::vector histo; AIDA::ITuple* ntup; diff --git a/examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh b/examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh index d75f3435cd..2075b51d01 100644 --- a/examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh +++ b/examples/extended/medical/GammaTherapy/include/ParticlesBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.hh,v 1.1 2004/12/02 10:34:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/include/PhysicsList.hh b/examples/extended/medical/GammaTherapy/include/PhysicsList.hh index 487cfc242a..15e134a3f6 100644 --- a/examples/extended/medical/GammaTherapy/include/PhysicsList.hh +++ b/examples/extended/medical/GammaTherapy/include/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.4 2005/06/07 13:55:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Modified: // diff --git a/examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh b/examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh index 0250d37ba4..6a26597ff7 100644 --- a/examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh +++ b/examples/extended/medical/GammaTherapy/include/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.2 2004/11/30 19:51:10 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc b/examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc index 6aeddb6f67..5234b325d5 100644 --- a/examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/DecaysBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.cc,v 1.1 2004/12/02 10:34:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/DetectorMessenger.cc b/examples/extended/medical/GammaTherapy/src/DetectorMessenger.cc index b9616d0007..a45f11c27e 100644 --- a/examples/extended/medical/GammaTherapy/src/DetectorMessenger.cc +++ b/examples/extended/medical/GammaTherapy/src/DetectorMessenger.cc @@ -119,6 +119,11 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction* h): HistoCmd->SetParameterName("histo",false); HistoCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + HistoTCmd = new G4UIcmdWithAString("/testem/histoType",this); + HistoTCmd->SetGuidance("Set the type of the histo file"); + HistoTCmd->SetParameterName("histoT",false); + HistoTCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + ntupCmd = new G4UIcmdWithABool("/testem/ntuple",this); ntupCmd->SetGuidance("Set ntuple to fill"); ntupCmd->SetParameterName("ntuple",false); @@ -183,6 +188,7 @@ DetectorMessenger::~DetectorMessenger() delete YMagFieldCmd; delete ZMagFieldCmd; delete HistoCmd; + delete HistoTCmd; delete NumOfEvt; delete verbCmd; delete intCmd; @@ -235,6 +241,9 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) if( command == HistoCmd ) { (Histo::GetPointer())->SetHistoName(newValue);} + if( command == HistoTCmd ) + { (Histo::GetPointer())->SetHistoType(newValue);} + if( command == ntupCmd ) { (Histo::GetPointer())->SetNtuple(ntupCmd->GetNewBoolValue(newValue));} diff --git a/examples/extended/medical/GammaTherapy/src/EmGammaNucleusBuilder.cc b/examples/extended/medical/GammaTherapy/src/EmGammaNucleusBuilder.cc index 9371b395bd..47657b26ec 100644 --- a/examples/extended/medical/GammaTherapy/src/EmGammaNucleusBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/EmGammaNucleusBuilder.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmGammaNucleusBuilder.cc,v 1.5 2005/06/07 13:56:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "EmGammaNucleusBuilder.hh" #include "G4ParticleDefinition.hh" diff --git a/examples/extended/medical/GammaTherapy/src/EmIonBinaryCascadeBuilder.cc b/examples/extended/medical/GammaTherapy/src/EmIonBinaryCascadeBuilder.cc index 169e129ab7..b689b4202e 100644 --- a/examples/extended/medical/GammaTherapy/src/EmIonBinaryCascadeBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/EmIonBinaryCascadeBuilder.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EmIonBinaryCascadeBuilder.cc,v 1.1 2004/12/02 10:34:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "EmIonBinaryCascadeBuilder.hh" #include "G4ParticleDefinition.hh" diff --git a/examples/extended/medical/GammaTherapy/src/EventActionMessenger.cc b/examples/extended/medical/GammaTherapy/src/EventActionMessenger.cc index e83c868413..8483e0a9b8 100644 --- a/examples/extended/medical/GammaTherapy/src/EventActionMessenger.cc +++ b/examples/extended/medical/GammaTherapy/src/EventActionMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: EventActionMessenger.cc,v 1.1 2004/08/03 16:56:21 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc index 66ca47f5f4..df8091c2f9 100644 --- a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.cc,v 1.1 2004/12/02 10:34:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc index 94359d4836..43bcede992 100644 --- a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder71.cc b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder71.cc new file mode 100644 index 0000000000..47f7933630 --- /dev/null +++ b/examples/extended/medical/GammaTherapy/src/G4EmHadronBuilder71.cc @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmHadronBuilder71.cc,v 1.1 2005/10/03 02:22:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmHadronBuilder71 +// +// Author: V.Ivanchenko 03.10.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4EmHadronBuilder71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +#include "G4Electron.hh" +#include "G4Proton.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmHadronBuilder71::G4EmHadronBuilder71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmHadronBuilder71::~G4EmHadronBuilder71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmHadronBuilder71::ConstructParticle() +{ + G4Electron::Electron(); + G4Proton::Proton(); + G4GenericIon::GenericIon(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmHadronBuilder71::ConstructProcess() +{ + // Add standard EM Processes + theParticleIterator->reset(); + + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + + if(particle->GetPDGMass() > 110.*MeV) { + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "GenericIon" || + particleName == "alpha" || + particleName == "He3") { + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); + + } else if (!particle->IsShortLived() && + particle->GetPDGCharge() != 0.0 ) { + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4hIonisation, -1, 2, 2); + } + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc index 8f6943472f..183ff42c69 100644 --- a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc index b33525c6a7..ba51f9c53e 100644 --- a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder71.cc b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder71.cc new file mode 100644 index 0000000000..c588914b03 --- /dev/null +++ b/examples/extended/medical/GammaTherapy/src/G4EmMuonBuilder71.cc @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmMuonBuilder71.cc,v 1.1 2005/10/03 02:22:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmMuonBuilder71 +// +// Author: V.Ivanchenko 03.10.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4EmMuonBuilder71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4MultipleScattering.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmMuonBuilder71::G4EmMuonBuilder71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmMuonBuilder71::~G4EmMuonBuilder71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmMuonBuilder71::ConstructParticle() +{ + // Minimal set of particles + G4Gamma::Gamma(); + G4Electron::Electron(); + G4Positron::Positron(); + G4MuonPlus::MuonPlus(); + G4MuonMinus::MuonMinus(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmMuonBuilder71::ConstructProcess() +{ + // Add standard EM Processes for mu+ + const G4ParticleDefinition* particle = G4MuonPlus::MuonPlus(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1, 4); + + + // Add standard EM Processes for mu- + particle = G4MuonMinus::MuonMinus(); + pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1, 4); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc index 57a13dca78..bd9e9d50e4 100644 --- a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc index 6f2ebd0d9b..7809f71d80 100644 --- a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc +++ b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.cc,v 1.2 2005/05/09 15:17:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder71.cc b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder71.cc new file mode 100644 index 0000000000..5c6dedd7bb --- /dev/null +++ b/examples/extended/medical/GammaTherapy/src/G4EmQEDBuilder71.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmQEDBuilder71.cc,v 1.1 2005/10/03 02:22:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmQEDBuilder71 +// +// Author: V.Ivanchenko 03.10.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4EmQEDBuilder71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmQEDBuilder71::G4EmQEDBuilder71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmQEDBuilder71::~G4EmQEDBuilder71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmQEDBuilder71::ConstructParticle() +{ + G4Gamma::Gamma(); + G4Electron::Electron(); + G4Positron::Positron(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmQEDBuilder71::ConstructProcess() +{ + // Add standard EM Processes for gamma + G4ParticleDefinition* particle = G4Gamma::Gamma(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() ); + pmanager->AddDiscreteProcess( new G4ComptonScattering() ); + pmanager->AddDiscreteProcess( new G4GammaConversion() ); + + // Add standard EM Processes for e- + particle = G4Electron::Electron(); + pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1, 3); + + // Add standard EM Processes for e+ + particle = G4Positron::Positron(); + pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc index bea36689fe..bca962420b 100644 --- a/examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4LowEnergyQEDBuilder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LowEnergyQEDBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LowEnergyQEDBuilder.cc,v 1.2 2005/08/23 17:31:13 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -88,7 +88,10 @@ void G4LowEnergyQEDBuilder::ConstructProcess() G4ParticleDefinition* particle = G4Gamma::Gamma(); G4ProcessManager* pmanager = particle->GetProcessManager(); - pmanager->AddDiscreteProcess( new G4LowEnergyPhotoElectric() ); + G4LowEnergyPhotoElectric* pe = new G4LowEnergyPhotoElectric(); + pe->SetAngularGenerator("standard"); + + pmanager->AddDiscreteProcess( pe ); pmanager->AddDiscreteProcess( new G4LowEnergyCompton() ); pmanager->AddDiscreteProcess( new G4LowEnergyGammaConversion() ); pmanager->AddDiscreteProcess( new G4LowEnergyRayleigh() ); diff --git a/examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc index 7e31e55eb2..334219c3dd 100644 --- a/examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4PenelopeQEDBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4PenelopeQEDBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc b/examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc index 86c3f3b552..0f58d7080f 100644 --- a/examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/G4StepLimiterBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.cc,v 1.2 2005/04/14 08:22:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc b/examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc index 8b84db63bc..532aa5a368 100644 --- a/examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc +++ b/examples/extended/medical/GammaTherapy/src/G4StepLimiterMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc b/examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc index b1712c60de..65db0f35c6 100644 --- a/examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc +++ b/examples/extended/medical/GammaTherapy/src/G4StepLimiterPerRegion.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.cc,v 1.2 2005/04/14 08:22:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/Histo.cc b/examples/extended/medical/GammaTherapy/src/Histo.cc index 5e59749801..dc248f1153 100644 --- a/examples/extended/medical/GammaTherapy/src/Histo.cc +++ b/examples/extended/medical/GammaTherapy/src/Histo.cc @@ -60,7 +60,8 @@ Histo* Histo::GetPointer() Histo::Histo() { verbose = 1; - histName = G4String("histo.hbook"); + histName = G4String("histo"); + histType = G4String("hbook"); nHisto = 10; nHisto1 = 10; maxEnergy = 50.0*MeV; @@ -73,6 +74,7 @@ Histo::Histo() scoreZ = 100.*mm; #ifdef G4ANALYSIS_USE + tree = 0; ntup = 0; #endif } @@ -173,29 +175,30 @@ void Histo::EndOfHisto() G4cout<scale(x); + if(tree) { + // normalise histograms + for(G4int i=0; iscale(x); + } + G4double nr = histo[0]->binHeight(0); + if(nr > 0.0) nr = 1./nr; + histo[0]->scale(nr); + + nr = (histo[1]->sumAllBinHeights())*stepR; + if(nr > 0.0) nr = 1./nr; + histo[1]->scale(nr); + + histo[3]->scale(1000.0*cm3/(pi*absorberR*absorberR*stepZ)); + histo[4]->scale(1000.0*cm3*volumeR[0]/stepZ); + + // Write histogram file + if(0 < nHisto) { + tree->commit(); + G4cout << "Histograms and Ntuples are saved" << G4endl; + } + tree->close(); + G4cout << "Tree is closed" << G4endl; } - G4double nr = histo[0]->binHeight(0); - if(nr > 0.0) nr = 1./nr; - histo[0]->scale(nr); - - nr = (histo[1]->sumAllBinHeights())*stepR; - if(nr > 0.0) nr = 1./nr; - histo[1]->scale(nr); - - histo[3]->scale(1000.0*cm3/(pi*absorberR*absorberR*stepZ)); - histo[4]->scale(1000.0*cm3*volumeR[0]/stepZ); - - // Write histogram file - if(0 < nHisto) { - tree->commit(); - G4cout << "Histograms and Ntuples are saved" << G4endl; - } - tree->close(); - G4cout << "Tree is closed" << G4endl; - #endif } @@ -244,8 +247,23 @@ void Histo::bookHisto() std::auto_ptr< AIDA::ITreeFactory > tf( af->createTreeFactory() ); // Creating a tree mapped to a new hbook file. - tree = tf->create(histName,"hbook",false,false); - G4cout << "Tree store : " << tree->storeName() << G4endl; + G4String tt = "hbook"; + G4String nn = histName + ".hbook"; + if(histType == "root") { + tt = "root"; + nn = histName + ".root"; + } else if(histType == "xml" || histType == "XML" || histType == "aida" || histType == "AIDA") { + tt = "xml"; + nn = histName + ".aida"; + } + + tree = tf->create(nn,tt,false,true, "--noErrors uncompress"); + if(tree) { + G4cout << "Tree store : " << tree->storeName() << G4endl; + } else { + G4cout << "Fail to open tree store " << nn << G4endl; + return; + } histo.resize(nHisto1); @@ -318,7 +336,7 @@ void Histo::AddTargetPhoton(const G4DynamicParticle* ph) G4double e = ph->GetKineticEnergy()/MeV; if(e > 0.0) n_gam_tar++; #ifdef G4ANALYSIS_USE - histo[5]->fill(e,1.0); + if(tree) histo[5]->fill(e,1.0); #endif } @@ -337,7 +355,7 @@ void Histo::AddTargetElectron(const G4DynamicParticle* ph) G4double e = ph->GetKineticEnergy()/MeV; if(e > 0.0) n_e_tar++; #ifdef G4ANALYSIS_USE - histo[8]->fill(e,1.0); + if(tree) histo[8]->fill(e,1.0); #endif } @@ -348,7 +366,7 @@ void Histo::AddPhantomElectron(const G4DynamicParticle* ph) G4double e = ph->GetKineticEnergy()/MeV; if(e > 0.0) n_e_ph++; #ifdef G4ANALYSIS_USE - histo[7]->fill(e,1.0); + if(tree) histo[7]->fill(e,1.0); #endif } @@ -430,8 +448,10 @@ void Histo::AddGamma(G4double e, G4double r) G4int bin1 = (G4int)(r/stepR); if(bin1 >= nBinsR) bin1 = nBinsR-1; #ifdef G4ANALYSIS_USE - histo[6]->fill(e,1.0); - histo[9]->fill(r,e*volumeR[bin1]); + if(tree) { + histo[6]->fill(e,1.0); + histo[9]->fill(r,e*volumeR[bin1]); + } #endif } @@ -452,12 +472,14 @@ void Histo::AddStep(G4double edep, G4double r1, G4double z1, G4double r2, G4doub } if(nzbin == nScoreBin) { #ifdef G4ANALYSIS_USE - G4int bin = (G4int)(r0/stepR); - if(bin >= nBinsR) bin = nBinsR-1; - double w = edep*volumeR[bin]; - histo[0]->fill(r0,w); - histo[1]->fill(r0,w); - histo[2]->fill(r0,w); + if(tree) { + G4int bin = (G4int)(r0/stepR); + if(bin >= nBinsR) bin = nBinsR-1; + double w = edep*volumeR[bin]; + histo[0]->fill(r0,w); + histo[1]->fill(r0,w); + histo[2]->fill(r0,w); + } #endif } G4int bin1 = (G4int)(z1/stepZ); @@ -466,11 +488,13 @@ void Histo::AddStep(G4double edep, G4double r1, G4double z1, G4double r2, G4doub if(bin2 >= nBinsZ) bin2 = nBinsZ-1; if(bin1 == bin2) { #ifdef G4ANALYSIS_USE - histo[3]->fill(z0,edep); - if(r1 < stepR) { - G4double w = edep; - if(r2 > stepR) w *= (stepR - r1)/(r2 - r1); - histo[4]->fill(z0,w); + if(tree) { + histo[3]->fill(z0,edep); + if(r1 < stepR) { + G4double w = edep; + if(r2 > stepR) w *= (stepR - r1)/(r2 - r1); + histo[4]->fill(z0,w); + } } #endif } else { @@ -492,13 +516,15 @@ void Histo::AddStep(G4double edep, G4double r1, G4double z1, G4double r2, G4doub G4double rr2 = r1 + dr*(zz2-zz1)/dz; for(bin=bin1; bin<=bin2; bin++) { #ifdef G4ANALYSIS_USE - G4double de = edep*(zz2 - zz1)/dz; - G4double zf = (zz1+zz2)*0.5; - histo[3]->fill(zf,de); - if(rr1 < stepR) { - G4double w = de; - if(rr2 > stepR) w *= (stepR - rr1)/(rr2 - rr1); - histo[4]->fill(zf,w); + if(tree) { + G4double de = edep*(zz2 - zz1)/dz; + G4double zf = (zz1+zz2)*0.5; + histo[3]->fill(zf,de); + if(rr1 < stepR) { + G4double w = de; + if(rr2 > stepR) w *= (stepR - rr1)/(rr2 - rr1); + histo[4]->fill(zf,w); + } } #endif zz1 = zz2; diff --git a/examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc b/examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc index 701b418587..b4378e90f0 100644 --- a/examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc +++ b/examples/extended/medical/GammaTherapy/src/ParticlesBuilder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ParticlesBuilder.cc,v 1.1 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ParticlesBuilder.cc,v 1.2 2005/12/02 17:33:11 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -57,34 +57,10 @@ #include "G4NeutrinoE.hh" #include "G4AntiNeutrinoE.hh" -// Mesons -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" -#include "G4Eta.hh" -#include "G4EtaPrime.hh" - -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4KaonZero.hh" -#include "G4AntiKaonZero.hh" -#include "G4KaonZeroLong.hh" -#include "G4KaonZeroShort.hh" - -// Baryons -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4Neutron.hh" -#include "G4AntiNeutron.hh" - -// Nuclei -#include "G4Alpha.hh" -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4He3.hh" -#include "G4GenericIon.hh" - -//#include "IonC12.hh" +// Hadrons +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -124,31 +100,16 @@ void ParticlesBuilder::ConstructParticle() G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); + G4MesonConstructor mConstructor; + mConstructor.ConstructParticle(); // barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); + G4BaryonConstructor bConstructor; + bConstructor.ConstructParticle(); // ions - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4He3::He3Definition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); -// IonC12::IonDefinition(); + G4IonConstructor iConstructor; + iConstructor.ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/PhysicsList.cc b/examples/extended/medical/GammaTherapy/src/PhysicsList.cc index 33aad0920d..78f5dda5a3 100644 --- a/examples/extended/medical/GammaTherapy/src/PhysicsList.cc +++ b/examples/extended/medical/GammaTherapy/src/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.7 2005/06/07 13:55:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.8 2005/10/03 02:22:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -30,6 +30,7 @@ // Author: V.Ivanchenko 03.05.2004 // // Modified: +// 03-10-05 Add g4v71 (V.Ivanchenko) // //---------------------------------------------------------------------------- // @@ -44,11 +45,14 @@ #include "G4EmQEDBuilder.hh" #include "G4EmMuonBuilder.hh" #include "G4EmHadronBuilder.hh" -#include "G4EmQEDBuilder52.hh" #include "G4LowEnergyQEDBuilder.hh" #include "G4PenelopeQEDBuilder.hh" +#include "G4EmQEDBuilder52.hh" #include "G4EmMuonBuilder52.hh" #include "G4EmHadronBuilder52.hh" +#include "G4EmQEDBuilder71.hh" +#include "G4EmMuonBuilder71.hh" +#include "G4EmHadronBuilder71.hh" #include "G4StepLimiterBuilder.hh" #include "DecaysBuilder.hh" #include "EmHadronElasticBuilder.hh" @@ -60,6 +64,10 @@ #include "G4LossTableManager.hh" #include "G4EmProcessOptions.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... PhysicsList::PhysicsList() @@ -145,6 +153,14 @@ void PhysicsList::AddPhysicsList(const G4String& name) emBuilderIsRegisted = true; G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; + } else if (name == "g4v71" && !emBuilderIsRegisted) { + RegisterPhysics(new G4EmQEDBuilder71()); + RegisterPhysics(steplimiter); + RegisterPhysics(new G4EmMuonBuilder71()); + RegisterPhysics(new G4EmHadronBuilder71()); + emBuilderIsRegisted = true; + G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; + } else if (name == "lowenergy" && !emBuilderIsRegisted) { RegisterPhysics(new G4LowEnergyQEDBuilder()); RegisterPhysics(steplimiter); @@ -211,11 +227,10 @@ void PhysicsList::SetVerbose(G4int val) verbose = val; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - void PhysicsList::SetCutForGamma(G4double cut) { cutForGamma = cut; + SetParticleCuts(cutForGamma, G4Gamma::Gamma()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -223,6 +238,7 @@ void PhysicsList::SetCutForGamma(G4double cut) void PhysicsList::SetCutForElectron(G4double cut) { cutForElectron = cut; + SetParticleCuts(cutForElectron, G4Electron::Electron()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -230,6 +246,7 @@ void PhysicsList::SetCutForElectron(G4double cut) void PhysicsList::SetCutForPositron(G4double cut) { cutForPositron = cut; + SetParticleCuts(cutForPositron, G4Positron::Positron()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc b/examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc index 09b835d0b6..2772b39de6 100644 --- a/examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc +++ b/examples/extended/medical/GammaTherapy/src/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.2 2004/12/02 10:34:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/medical/GammaTherapy/vis.mac b/examples/extended/medical/GammaTherapy/vis.mac new file mode 100644 index 0000000000..17c6f4bbc2 --- /dev/null +++ b/examples/extended/medical/GammaTherapy/vis.mac @@ -0,0 +1,50 @@ +# +# Macro file for the initialization phase of "TestEm3.cc" +# +# Sets some default verbose +# and initializes the graphic. +# +/control/verbose 2 +/run/verbose 2 +/tracking/verbose 0 +/testem/verbose 0 +# +/testem/phys/setCuts 0.1 mm +/testem/stepMax 1.0 mm +/process/eLoss/StepFunction 0.2 1. mm +# +/testem/phys/addPhysics standard +#/testem/phys/addPhysics g4v52 +#/testem/phys/addPhysics penelope +#/testem/phys/addPhysics lowenergy +# +/testem/target1Material Be +/testem/target2Material W +/testem/target1Z 9 mm +/testem/target2Z 6 mm +# +/run/initialize +# +/gun/particle e- +/gun/energy 50.0 MeV +# +# Create empty scene ("world" is default) +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +####/vis/open DAWNFILE +/vis/open OGLIX +# +# Draw scene +/vis/viewer/set/viewpointThetaPhi 90 0 deg +/vis/viewer/zoom 1.4 +/vis/viewer/flush +# +# for drawing the tracks +# if too many tracks cause core dump => storeTrajectory 0 +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate +# +/testem/event/drawTracks all diff --git a/examples/extended/optical/LXe/LXe.out b/examples/extended/optical/LXe/LXe.out index 16f032c671..8b7d6faad5 100644 --- a/examples/extended/optical/LXe/LXe.out +++ b/examples/extended/optical/LXe/LXe.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-07-01 $ + Geant4 version $Name: geant4-08-00 $ (12-December-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/parallel/ExDiane/Brachy.cc b/examples/extended/parallel/ExDiane/Brachy.cc index fb6dce764a..1e2184b45e 100644 --- a/examples/extended/parallel/ExDiane/Brachy.cc +++ b/examples/extended/parallel/ExDiane/Brachy.cc @@ -22,7 +22,7 @@ // // // $Id: Brachy.cc -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // GEANT 4 - ExDiane example diff --git a/examples/extended/parallel/ExDiane/History b/examples/extended/parallel/ExDiane/History index 26caa15063..f5756f2f1b 100644 --- a/examples/extended/parallel/ExDiane/History +++ b/examples/extended/parallel/ExDiane/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.3 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.5 2005/12/06 14:53:47 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,13 +9,18 @@ $Id: History,v 1.3 2005/05/03 10:05:49 allison Exp $ Category History file --------------------- -3rd May 2005 John Allison (examples-V07-00-03) +06.12.2005 - Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +29.11.2005 - Susanna Guatelli (ExDiane-V07-01-00) +- Updated documentation. + +03.05.2005 - John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. -2.12.2004 - Gabriele Cosmo (ExDiane-V06-02-00) - Implemented migration to . +02.12.2004 - Gabriele Cosmo (ExDiane-V06-02-00) +- Implemented migration to . 25.5.2004 - Susanna Guatelli - Migration to AIDA 3.2.1 and PI 1.2.1 - Cleaning of the code for public release - +- Migration to AIDA 3.2.1 and PI 1.2.1 +- Cleaning of the code for public release. diff --git a/examples/extended/parallel/ExDiane/README b/examples/extended/parallel/ExDiane/README index 6ba13ab2b3..1f67978bb5 100644 --- a/examples/extended/parallel/ExDiane/README +++ b/examples/extended/parallel/ExDiane/README @@ -37,7 +37,7 @@ to know details about the functionality of the application: G4SYSTEM = linux-g++ - other environment variables which need to be set: - G4LEDATA: points to low energy data base - G4EMLOW2.3 + G4LEDATA: points to low energy data base - G4EMLOW3.0 - download DIANE You need to have python 2.2 or greater. @@ -49,12 +49,13 @@ to know details about the functionality of the application: http://cern.ch/diane/download.html * MANUAL INSTALLATION OF DIANE - Make sure that you have AIDA 3.2.1, PI 1.2.1. Download them from + Make sure that you have AIDA 3.2.1, PI 1.3.3. Download them from http://aida.freehep.org/ http://www.cern.ch/PI - Download DIANE executing this command: - > python2 diane.installation.manager DIANE-1.0.0 download + Download DIANE from www.cern.ch/diane + Documentation about how to "dianize" a Geant4 application can be found + at www.cern.ch/diane ------------------------------------------------------------------------ ----> 3.How to compile the example. @@ -91,4 +92,4 @@ Authors: Susanna Guatelli, Kuba Moscicki for comments, advices, doubts and questions: guatelli@ge.infn.it, Jakub.Moscicki@cern.ch -- last modified: Susanna Guatelli and Kuba Moscicki 25/5/2004 +- last modified: Susanna Guatelli and Kuba Moscicki 29/11/2005 diff --git a/examples/extended/parallel/ExDiane/include/BrachyAnalysisManager.hh b/examples/extended/parallel/ExDiane/include/BrachyAnalysisManager.hh index 00a8adcb4a..1cbfe20ba6 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyAnalysisManager.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyAnalysisManager.hh @@ -26,7 +26,7 @@ // // // $Id: BrachyAnalysisManager.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstruction.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstruction.hh index cae6d47a21..5bdc0e2873 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstruction.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstruction.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // **************************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionI.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionI.hh index 3f94a95097..3d9c2efa32 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionI.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionI.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionI.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // **************************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionIr.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionIr.hh index 790aac0ac2..e9e00e8639 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionIr.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionIr.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // **************************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionLeipzig.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionLeipzig.hh index 36d0c522ac..bd9a1f3ec2 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionLeipzig.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorConstructionLeipzig.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyDetectorConstructionLeipzig.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Author: Susanna Guatelli // diff --git a/examples/extended/parallel/ExDiane/include/BrachyDetectorMessenger.hh b/examples/extended/parallel/ExDiane/include/BrachyDetectorMessenger.hh index d38cfaad7b..1f11c5c45c 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyDetectorMessenger.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyDetectorMessenger.hh @@ -30,7 +30,7 @@ // ***************************************** // // $Id: BrachyDetectorMessenger.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // #ifndef BrachyDetectorMessenger_h diff --git a/examples/extended/parallel/ExDiane/include/BrachyEventAction.hh b/examples/extended/parallel/ExDiane/include/BrachyEventAction.hh index 1c095edaa8..417198b8e6 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyEventAction.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyEventAction.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Code developed by: // S.Guatelli diff --git a/examples/extended/parallel/ExDiane/include/BrachyFactory.hh b/examples/extended/parallel/ExDiane/include/BrachyFactory.hh index 44169f2890..609517f9b1 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyFactory.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyFactory.hh @@ -23,7 +23,7 @@ // Code developed by: Susanna Guatelli // // $Id: BrachyFactory.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyFactoryI.hh b/examples/extended/parallel/ExDiane/include/BrachyFactoryI.hh index 9415c6c401..3f5f8d1822 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyFactoryI.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyFactoryI.hh @@ -32,7 +32,7 @@ // // // $Id: BrachyFactoryI.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/parallel/ExDiane/include/BrachyFactoryIr.hh b/examples/extended/parallel/ExDiane/include/BrachyFactoryIr.hh index ac29b87db4..aaae4b8ab8 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyFactoryIr.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyFactoryIr.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyFactoryIr.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyFactoryLeipzig.hh b/examples/extended/parallel/ExDiane/include/BrachyFactoryLeipzig.hh index 905220f1c4..37540a0658 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyFactoryLeipzig.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyFactoryLeipzig.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyFactoryLeipzig.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyMaterial.hh b/examples/extended/parallel/ExDiane/include/BrachyMaterial.hh index 6f48a3adab..d06714f5e2 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyMaterial.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyMaterial.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyMaterial.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPhantomHit.hh b/examples/extended/parallel/ExDiane/include/BrachyPhantomHit.hh index 4955d493bc..c9e6665e27 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPhantomHit.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPhantomHit.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomHit.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ******************************** diff --git a/examples/extended/parallel/ExDiane/include/BrachyPhantomROGeometry.hh b/examples/extended/parallel/ExDiane/include/BrachyPhantomROGeometry.hh index f402eac718..c98cb5ad3d 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPhantomROGeometry.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPhantomROGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomROGeometry.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ************************************ // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPhantomSD.hh b/examples/extended/parallel/ExDiane/include/BrachyPhantomSD.hh index 1d590c678a..905f4796bf 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPhantomSD.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPhantomSD.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomSD.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ******************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPhysicsList.hh b/examples/extended/parallel/ExDiane/include/BrachyPhysicsList.hh index b49997f748..285d33ad3f 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPhysicsList.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhysicsList.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ********************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorAction.hh b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorAction.hh index 0661e1faa4..3d61d8aca2 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorAction.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorAction.hh,v 1.1 2004/05/25 07:32:35 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ******************************************** // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionI.hh b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionI.hh index 29d32c5e1a..7b3cc7294d 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionI.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionI.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPrimaryGeneratorActionI.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionIr.hh b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionIr.hh index 0639efaede..b5ecca9887 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionIr.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyPrimaryGeneratorActionIr.hh @@ -23,7 +23,7 @@ //Author: Susanna Guatelli // // $Id: BrachyPrimaryGeneratorActionIr.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ************************************************* // * * diff --git a/examples/extended/parallel/ExDiane/include/BrachyRunAction.hh b/examples/extended/parallel/ExDiane/include/BrachyRunAction.hh index a6aa9472eb..84d2415398 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyRunAction.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyRunAction.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Author: Susanna Guatelli // diff --git a/examples/extended/parallel/ExDiane/include/BrachyRunMessenger.hh b/examples/extended/parallel/ExDiane/include/BrachyRunMessenger.hh index 4e7ea0a17d..8edcbe46e0 100644 --- a/examples/extended/parallel/ExDiane/include/BrachyRunMessenger.hh +++ b/examples/extended/parallel/ExDiane/include/BrachyRunMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyRunMessenger.hh,v 1.2 2004/05/25 08:36:17 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Author: Susanna Guatelli // diff --git a/examples/extended/parallel/ExDiane/include/BrachySimulation.hh b/examples/extended/parallel/ExDiane/include/BrachySimulation.hh index 64f5668d5a..6b01747900 100644 --- a/examples/extended/parallel/ExDiane/include/BrachySimulation.hh +++ b/examples/extended/parallel/ExDiane/include/BrachySimulation.hh @@ -22,7 +22,7 @@ // // // $Id: BrachySimulation.hh -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example diff --git a/examples/extended/parallel/ExDiane/src/BrachyAnalysisManager.cc b/examples/extended/parallel/ExDiane/src/BrachyAnalysisManager.cc index 65f8c9f095..ee02d8d937 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyAnalysisManager.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyAnalysisManager.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyAnalysisManager.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifdef G4ANALYSIS_USE #include diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstruction.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstruction.cc index c7d40d29c8..bb26901ca9 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstruction.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstruction.cc @@ -34,7 +34,7 @@ // **************************************** // // $Id: BrachyDetectorConstruction.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyPhantomSD.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionI.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionI.cc index f918f5a8f7..5a3c026ea6 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionI.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionI.cc @@ -34,7 +34,7 @@ // **************************************** // // $Id: BrachyDetectorConstructionI.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "BrachyDetectorConstructionI.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionIr.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionIr.cc index a56a2886cd..b71cbed5a4 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionIr.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionIr.cc @@ -34,7 +34,7 @@ // **************************************** // // $Id: BrachyDetectorConstructionIr.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "BrachyDetectorConstructionIr.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionLeipzig.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionLeipzig.cc index 65a685de4b..cf5042033f 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionLeipzig.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorConstructionLeipzig.cc @@ -35,7 +35,7 @@ // // // $Id: BrachyDetectorConstructionLeipzig.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyDetectorMessenger.cc b/examples/extended/parallel/ExDiane/src/BrachyDetectorMessenger.cc index 879dc6d98f..ae22af1aad 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyDetectorMessenger.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyDetectorMessenger.cc @@ -32,7 +32,7 @@ // // // $Id: BrachyDetectorMessenger.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/parallel/ExDiane/src/BrachyEventAction.cc b/examples/extended/parallel/ExDiane/src/BrachyEventAction.cc index fa73f7e844..933db65d9f 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyEventAction.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyEventAction.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyEventAction.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyEventAction.hh" #include "G4Event.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyFactory.cc b/examples/extended/parallel/ExDiane/src/BrachyFactory.cc index 1a7055f5cf..36630bb00d 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyFactory.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyFactory.cc @@ -32,7 +32,7 @@ // ******************************* // // $Id: BrachyFactory.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include"BrachyFactory.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyFactoryI.cc b/examples/extended/parallel/ExDiane/src/BrachyFactoryI.cc index a48511f737..b640ea67fb 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyFactoryI.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyFactoryI.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryI.cc,v 1.1 2004/05/25 07:32:36 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyFactoryI.hh" #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyFactoryIr.cc b/examples/extended/parallel/ExDiane/src/BrachyFactoryIr.cc index f6fc77bc30..cd385d91ee 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyFactoryIr.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyFactoryIr.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryIr.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "BrachyFactoryIr.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyFactoryLeipzig.cc b/examples/extended/parallel/ExDiane/src/BrachyFactoryLeipzig.cc index d410348dd4..9754f4ac20 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyFactoryLeipzig.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyFactoryLeipzig.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyFactoryLeipzig.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyMaterial.cc b/examples/extended/parallel/ExDiane/src/BrachyMaterial.cc index d34557d88e..1c9348fe8d 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyMaterial.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyMaterial.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyMaterial.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4MaterialPropertiesTable.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPhantomHit.cc b/examples/extended/parallel/ExDiane/src/BrachyPhantomHit.cc index 53f1e51a58..dca552e3d1 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPhantomHit.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPhantomHit.cc @@ -30,7 +30,7 @@ // ******************************** // // $Id: BrachyPhantomHit.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhantomHit.hh" #include "G4ios.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPhantomROGeometry.cc b/examples/extended/parallel/ExDiane/src/BrachyPhantomROGeometry.cc index 61f3ed21e0..ad27f3de6a 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPhantomROGeometry.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPhantomROGeometry.cc @@ -30,7 +30,7 @@ // ************************************ // // $Id: BrachyPhantomROGeometry.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyDummySD.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPhantomSD.cc b/examples/extended/parallel/ExDiane/src/BrachyPhantomSD.cc index 4fafe8a792..6eb274e6c9 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPhantomSD.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPhantomSD.cc @@ -30,7 +30,7 @@ // ******************************** // // $Id: BrachyPhantomSD.cc,v 1.3 2004/05/25 12:39:09 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhantomSD.hh" #include "BrachyPhantomHit.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPhysicsList.cc b/examples/extended/parallel/ExDiane/src/BrachyPhysicsList.cc index f12ad35f99..f25d296b89 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPhysicsList.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPhysicsList.cc @@ -30,7 +30,7 @@ // ********************************** // // $Id: BrachyPhysicsList.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPhysicsList.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorAction.cc b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorAction.cc index 0253d4ca50..9d2748f613 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorAction.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorAction.cc @@ -35,7 +35,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorAction.cc,v 1.1 2004/05/25 07:32:37 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "BrachyPrimaryGeneratorAction.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionI.cc b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionI.cc index 0bc76a41e3..afa068294b 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionI.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionI.cc @@ -34,7 +34,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorActionI.cc,v 1.3 2004/12/02 17:37:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionIr.cc b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionIr.cc index 49257876c2..c81b4f8e5a 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionIr.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyPrimaryGeneratorActionIr.cc @@ -34,7 +34,7 @@ // ******************************************** // // $Id: BrachyPrimaryGeneratorActionIr.cc,v 1.3 2004/12/02 17:37:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyPrimaryGeneratorActionIr.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyRunAction.cc b/examples/extended/parallel/ExDiane/src/BrachyRunAction.cc index 8536944246..942d275927 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyRunAction.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyRunAction.cc @@ -36,7 +36,7 @@ // ******************************* // // $Id: BrachyRunAction.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "BrachyRunAction.hh" diff --git a/examples/extended/parallel/ExDiane/src/BrachyRunMessenger.cc b/examples/extended/parallel/ExDiane/src/BrachyRunMessenger.cc index 33f5a9bea7..d44213368f 100644 --- a/examples/extended/parallel/ExDiane/src/BrachyRunMessenger.cc +++ b/examples/extended/parallel/ExDiane/src/BrachyRunMessenger.cc @@ -24,7 +24,7 @@ // S.Guatelli // // $Id: BrachyRunMessenger.cc,v 1.2 2004/05/25 08:36:18 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/examples/extended/parallel/ExDiane/src/BrachySimulation.cc b/examples/extended/parallel/ExDiane/src/BrachySimulation.cc index 744ed13eee..e0034ab19f 100644 --- a/examples/extended/parallel/ExDiane/src/BrachySimulation.cc +++ b/examples/extended/parallel/ExDiane/src/BrachySimulation.cc @@ -22,7 +22,7 @@ // // // $Id: BrachySimulation.cc -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -76,12 +76,12 @@ BrachySimulation::~BrachySimulation() void BrachySimulation::setSeed(G4int sd) { seed = sd; - HepRandom ::setTheSeed(seed); + CLHEP::HepRandom::setTheSeed(seed); } G4bool BrachySimulation::initialize(int ,char** ) { - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); G4cout << "G4 initializing" << G4endl; diff --git a/examples/extended/parallel/ParN02/docs/000README b/examples/extended/parallel/ParN02/000README similarity index 92% rename from examples/extended/parallel/ParN02/docs/000README rename to examples/extended/parallel/ParN02/000README index 8a5ed145ba..d11f4dae0d 100644 --- a/examples/extended/parallel/ParN02/docs/000README +++ b/examples/extended/parallel/ParN02/000README @@ -1,9 +1,6 @@ -$Id: 000README,v 1.4 2004/12/03 13:33:32 gcosmo Exp $ ------------------------------------------------------------------------------- ParGeant4: Geant4/TOP-C, a parallelization of Geant4 - Version 0.9 - (event-level parallelism only) + (event-level parallelism) Gene Cooperman Northeastern University @@ -90,16 +87,13 @@ New or modified files: src/ParRunManager.cc - ParRunManger derived from G4RunManager replaces Gr4RunManager::DoEventLoop w/ TOP-C parallel loop, Adds certain local vars of DoEventLoop as ParRunManager members - src/ParMarshaledObj.cc - run-time utilities for marshalling - src/ParExN02MarshaledHits.cc - marshals N02 hits (calorimeter hits) - include/Par*.hh - Currently just ParRunManager.hh + include/MarshaledObj.h - run-time utilities for marshalling + include/MarshaledEx*Hit.h - marshals N02 hits (calorimeter hits) + include/MarshaledG4*.h - marshaling routines for Geant4 data structures + ~/slave*.out - Contains outputs of slave1, slave2, etc. Generated each time parallel ParN02 is executed. These files are specified in the file procgroup. - thwap - A script I inherited from our N.U. systems group - `thwap ParN02' will clobber all processes you own - whose command line includes `ParN02' as substring. - Handy for runaway processes when doing parallelism. ==================================================================== This version passes an event number to the slave and lets the diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/000README b/examples/extended/parallel/ParN02/AnnotatedFiles/000README new file mode 100644 index 0000000000..9b85a08bd4 --- /dev/null +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/000README @@ -0,0 +1,47 @@ +The files in this directory are the files that were used to build + ../include/Marshaled*.hh . The files ../include/Marshaled*.hh contain +marshaling (serialization) routines that are used by Parallel Geantr4. + +Marshalgen is a package that allows one to add a small number of annotations +to the original sequential code, in order to create marshalling or +serialization routines. Those marshalling routines are then used +by ParGeant4 to pass data between slave processes and the master process. + +INPUT FILES: +1. G4*.hh : The files *.hh are taken from Geant4. They include annotations + (comments) that describe how to marshal individual fields of the + given classes. These files have additional annotations that describe + how to marshal individual fields of the given classes. For a new + application, you have to change any references to Ex* to your + own example/application include files. These files are then reused + in the new Geant4 parallel application. +2. ../include/Ex*Hit.hh : These files are the original sequential Geant4 + application files that describe the application-defined hits. + They remain in the application include directory because they may + depend on other files in the include directory. + For most new parallel Geant4 applications, these files are sufficiently + simple, that one needs only to add Marshalgen begin and end comments + bracketing the class that needs to be marshalled, and a small number + of annotations specifying accessor functions to get and set fields + in the class. It may also be necessary to include marshalling + include files, if it is necessary to marshal other Geant4 data + structures. + Information on how to marshal the fields, etc., is in the Marshalgen + manual, along with the Marshalgen package: + http://www.ccs.neu.edu/home/gene/marshalgen + + +Marshalgen was then called on the above input files. One calls: + ./marshalgen *.hh + ./marshalgen ../include/Ex*Hit.hh + +OUTPUT FILES: +3. *.msh : These files are intermediate files generated automatically + by marshalgen ( http://www.ccs.neu.edu/home/gene/marshalgen ) + These files can be deleted if desired. +4. Marshaled*.h : These files are generated by Marshalgen. They + include of type both MarshaledEx*.h and MarshaledG4*.h . + (In addition, the file MarshaledObj.h is copied directly from + the Marshalgen distribution.) These files are all copied to + the include directory of the Geant4 parallel application. + They provide the marshalling functions that are then used by Geant4. diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.hh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.hh index 68dee3be2b..1a3a2f02a3 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.hh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HCofThisEvent.hh,v 1.1 2004/11/22 17:39:47 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4HCofThisEvent.hh,v 1.2 2005/11/26 09:47:01 cooperma Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4HCofThisEvent_h @@ -31,7 +31,7 @@ #include "globals.hh" #include "G4Allocator.hh" #include "G4VHitsCollection.hh" -#include "g4std/vector" +#include // class description: // @@ -68,7 +68,7 @@ class G4HCofThisEvent void AddHitsCollection(G4int HCID,G4VHitsCollection * aHC); private: - G4std::vector * HC; /*MSH: ptr_as_array + std::vector * HC; /*MSH: ptr_as_array [elementType: G4VHitsCollection*] [elementCount: { $ELE_COUNT = $THIS->GetNumberOfCollections(); }] [elementGet: { $ELEMENT = $THIS->GetHC($ELE_INDEX); }] @@ -101,7 +101,11 @@ class G4HCofThisEvent }; //MSH_END -extern G4Allocator anHCoTHAllocator; +#if defined G4DIGI_ALLOC_EXPORT + extern G4DLLEXPORT G4Allocator anHCoTHAllocator; +#else + extern G4DLLIMPORT G4Allocator anHCoTHAllocator; +#endif inline void* G4HCofThisEvent::operator new(size_t) { diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.msh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.msh index 8d1aabae20..c3bc1a9973 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.msh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4HCofThisEvent.msh @@ -10,9 +10,12 @@ //MSH_include_end %} +// This file is generated automatically from G4HCofThisEvent.hh . It is an +// intermediate file useful for debugging, but otherwise may be deleted. + marshaling class MarshaledG4HCofThisEvent (G4HCofThisEvent* param) { - G4std::vector * HC; + std::vector * HC; //FIELDMARSHAL: { int copy_off = 0; diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.hh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.hh index 482c204b36..5055152ff6 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.hh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.hh @@ -32,11 +32,12 @@ vietha 2003.05.08 */ -#ifndef G4String_h -#define G4String_h +#ifndef __G4String +#define __G4String //MSH_BEGIN -class G4String{ +class G4String : public std::string +{ int dummy; /*MSH: manual { memcpy($$, param->c_str(), param->size()); *($$+param->size()) = '\0'; diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.msh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.msh index 31ec92e59d..47a70a8361 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.msh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4String.msh @@ -3,6 +3,9 @@ %} +// This file is generated automatically from G4String.hh . It is an +// intermediate file useful for debugging, but otherwise may be deleted. + marshaling class MarshaledG4String (G4String* param) { int dummy; diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.hh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.hh index eadf92d95e..632db1c106 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.hh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4THitsCollection.hh,v 1.1 2004/11/22 17:39:47 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4THitsCollection.hh,v 1.2 2005/11/26 09:47:01 cooperma Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4THitsCollection_h @@ -32,7 +32,7 @@ #include "G4Allocator.hh" #include "globals.hh" //#include "g4rw/tpordvec.h" -#include "g4std/vector" +#include // class description: // @@ -64,7 +64,11 @@ class G4HitsCollection : public G4VHitsCollection }; //MSH_END -extern G4Allocator anHCAllocator; +#if defined G4DIGI_ALLOC_EXPORT + extern G4DLLEXPORT G4Allocator anHCAllocator; +#else + extern G4DLLIMPORT G4Allocator anHCAllocator; +#endif //MSH_BEGIN template class G4THitsCollection : public G4HitsCollection @@ -88,15 +92,15 @@ template class G4THitsCollection : public G4HitsCollection public: // with description inline T* operator[](size_t i) const - { return (*((G4std::vector*)theCollection))[i]; } + { return (*((std::vector*)theCollection))[i]; } // Returns a pointer to a concrete hit object. - inline G4std::vector* GetVector() const - { return (G4std::vector*)theCollection; } + inline std::vector* GetVector() const + { return (std::vector*)theCollection; } // Returns a collection vector. inline G4int insert(T* aHit) { - G4std::vector*theHitsCollection - = (G4std::vector*)theCollection; + std::vector*theHitsCollection + = (std::vector*)theCollection; theHitsCollection->push_back(aHit); return theHitsCollection->size(); } @@ -104,17 +108,17 @@ template class G4THitsCollection : public G4HitsCollection // collection is returned. inline G4int entries() const { - G4std::vector*theHitsCollection - = (G4std::vector*)theCollection; + std::vector*theHitsCollection + = (std::vector*)theCollection; return theHitsCollection->size(); } // Returns the number of hit objects stored in this collection public: virtual G4VHit* GetHit(size_t i) const - { return (*((G4std::vector*)theCollection))[i]; } + { return (*((std::vector*)theCollection))[i]; } virtual size_t GetSize() const - { return ((G4std::vector*)theCollection)->size(); } + { return ((std::vector*)theCollection)->size(); } // MSH_superclass : G4HitsCollection @@ -135,23 +139,23 @@ template inline void G4THitsCollection::operator delete(void* anHC) template G4THitsCollection::G4THitsCollection() { - G4std::vector * theHitsCollection - = new G4std::vector; + std::vector * theHitsCollection + = new std::vector; theCollection = (void*)theHitsCollection; } template G4THitsCollection::G4THitsCollection(G4String detName,G4String colNam) : G4HitsCollection(detName,colNam) { - G4std::vector * theHitsCollection - = new G4std::vector; + std::vector * theHitsCollection + = new std::vector; theCollection = (void*)theHitsCollection; } template G4THitsCollection::~G4THitsCollection() { - G4std::vector * theHitsCollection - = (G4std::vector*)theCollection; + std::vector * theHitsCollection + = (std::vector*)theCollection; //theHitsCollection->clearAndDestroy(); for(size_t i=0;isize();i++) { delete (*theHitsCollection)[i]; } @@ -164,8 +168,8 @@ template G4int G4THitsCollection::operator==(const G4THitsCollectio template void G4THitsCollection::DrawAllHits() { - G4std::vector * theHitsCollection - = (G4std::vector*)theCollection; + std::vector * theHitsCollection + = (std::vector*)theCollection; size_t n = theHitsCollection->size(); for(size_t i=0;iDraw(); } @@ -173,8 +177,8 @@ template void G4THitsCollection::DrawAllHits() template void G4THitsCollection::PrintAllHits() { - G4std::vector * theHitsCollection - = (G4std::vector*)theCollection; + std::vector * theHitsCollection + = (std::vector*)theCollection; size_t n = theHitsCollection->size(); for(size_t i=0;iPrint(); } diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.msh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.msh index 84f6cb4023..814a4e95a5 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.msh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4THitsCollection.msh @@ -3,6 +3,9 @@ %} +// This file is generated automatically from G4THitsCollection.hh . It is an +// intermediate file useful for debugging, but otherwise may be deleted. + marshaling class MarshaledG4HitsCollection (G4HitsCollection* param) { void* theCollection; @@ -48,7 +51,7 @@ } template marshaling class MarshaledG4THitsCollection (G4THitsCollection* param) : public G4HitsCollection { - int __dummy848; // marshaling code for MSH_superclass + int __dummy569; // marshaling code for MSH_superclass //FIELDMARSHAL: { MarshaledG4HitsCollection marParent($THIS); diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.hh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.hh index 80054a0b45..3c6215acca 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.hh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VHitsCollection.hh,v 1.1 2004/11/22 17:39:48 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VHitsCollection.hh,v 1.2 2005/11/26 09:47:01 cooperma Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VHitsCollection_h @@ -55,9 +55,9 @@ class G4VHitsCollection protected: // Collection name - G4String collectionName; /*MSH: predefined - [elementGet: { $ELEMENT = $THIS->GetName(); }] - [elementSet: { Shadowed_param->collectionName=$ELEMENT; }] + G4String collectionName; /*MSH: predefined + [elementGet: { $ELEMENT = $THIS->GetName(); }] + [elementSet: { Shadowed_param->collectionName=$ELEMENT; }] */ G4String SDname; /* MSH: predefined @@ -77,7 +77,7 @@ class G4VHitsCollection // GetHit and GetSize are given a default implementation here so // that the template G4THitsCollection can be used, but they // are re-implemented G4THitsCollection. - virtual G4VHit* GetHit(size_t i) const { return 0; } + virtual G4VHit* GetHit(size_t) const { return 0; } virtual size_t GetSize() const { return 0; }; }; diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.msh b/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.msh index 5170ec4e34..32d0dd3c94 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.msh +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/G4VHitsCollection.msh @@ -3,9 +3,12 @@ %} +// This file is generated automatically from G4VHitsCollection.hh . It is an +// intermediate file useful for debugging, but otherwise may be deleted. + marshaling class MarshaledG4VHitsCollection (G4VHitsCollection* param) { - G4String collectionName; + G4String collectionName; //FIELDMARSHAL: { G4String $ELEMENT; @@ -52,11 +55,11 @@ // no need to declare size since $SIZE is already assigned in the MARSHAL field } - int __dummy100; // marshaling code for MSH_derivedclass + int __dummy630; // marshaling code for MSH_derivedclass //FIELDMARSHAL: { - G4THitsCollection *aObj100 = (G4THitsCollection*)$THIS; - MarshaledG4THitsCollection marChild(aObj100); + G4THitsCollection *aObj630 = (G4THitsCollection*)$THIS; + MarshaledG4THitsCollection marChild(aObj630); EXTEND_BUFFER(marChild.getBufferSize()); memcpy($$,marChild.getBuffer(), marChild.getBufferSize()); $SIZE = marChild.getBufferSize(); diff --git a/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h index 9f672e80a8..a8424f0e5b 100644 --- a/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h +++ b/examples/extended/parallel/ParN02/AnnotatedFiles/MarshaledG4VHitsCollection.h @@ -222,8 +222,8 @@ void marshal3() { //Now just copy "get" functions here { - G4THitsCollection *aObj100 = (G4THitsCollection*)param; - MarshaledG4THitsCollection marChild(aObj100); + G4THitsCollection *aObj630 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj630); EXTEND_BUFFER(marChild.getBufferSize()); memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); msh_currentSize = marChild.getBufferSize(); diff --git a/examples/extended/parallel/ParN02/History b/examples/extended/parallel/ParN02/History index b11bbb56aa..b1723b473d 100644 --- a/examples/extended/parallel/ParN02/History +++ b/examples/extended/parallel/ParN02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.11 2005/11/28 11:30:55 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,7 +15,16 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Nov 28th, 2005 G.Cooperman - ParN02-V07-01-01 +--------------------------- +- Updated in sync with the last kernel code. + +Nov 15th, 2005 G.Cosmo - ParN02-V07-01-00 +----------------------- +- Migration to from deprecated . + +May 3rd, 2005 J.Allison +------------------------ - Replaced vis manager with G4VisExecutive. Nov 22nd, 2004 G.Cooperman - ParN02-V07-00-00 diff --git a/examples/extended/parallel/ParN02/ParGNUmakefile b/examples/extended/parallel/ParN02/ParGNUmakefile index 6a5d8ef876..3a7d62bd87 100644 --- a/examples/extended/parallel/ParN02/ParGNUmakefile +++ b/examples/extended/parallel/ParN02/ParGNUmakefile @@ -1,11 +1,11 @@ -# $Id: ParGNUmakefile,v 1.3 2002/03/09 09:49:55 cooperma Exp $ +# $Id: ParGNUmakefile,v 1.5 2005/12/02 07:51:43 cooperma Exp $ # -------------------------------------------------------------- #This file should be included in GNUmakefile of local directory. #Usage: make [ to compile parallel version ] # make run [ to compile and run it ] # make run-debug [ to compile and run in gdb ] -# make parclean [ remove intermediate and executable files ] +# make parclean [ remove intermediate and executable files ] # See `run' target for parameters by which executable is called. # This assumes Geant4 environment vars have been defined. # See ../info/NEW_APP_INSTALL (number 10) for an example of setting up @@ -59,7 +59,7 @@ TOPC_OPTIONS = --TOPC-verbose EXTRALIBS=${TOPC_LIBS} CPPFLAGS=${TOPC_CFLAGS} -TIMESTAMP=${G4BINDIR}/timestamp +TIMESTAMP=${G4BINDIR}/ParN02.timestamp # Unfortunately, .../geant4.x.x/config/binmake.gmk has target: # $(G4BINDIR)/$(G4TARGET) @@ -71,11 +71,25 @@ compile: @ if [ "$$G4SYSTEM" = "" ]; then \ echo '***' Environment variable G4SYSTEM not defined; \ echo '***' Make sure G4INSTALL and G4SYSTEM are set; \ + exit 1; \ fi ${MAKE} G4BINDIR=${G4BINDIR} ${TIMESTAMP} + @ if which topc-config > /dev/null; then :; \ + else \ + echo '***' topc-config is not in your path; \ + exit 1; \ + fi + @ echo "" + @ echo 'To run, now type "make run"' + @ echo 'To remove built files, type "make parclean"' + ${TIMESTAMP}: *.cc *.icc src/*.cc include/*.hh ParGNUmakefile - # Test for presence of topc-config - topc-config ${MEM_MODEL} --libs > /dev/null + @ if which topc-config > /dev/null; then :; \ + else \ + echo ''; \ + echo '***' topc-config is not in your path; \ + exit 1; \ + fi ${MAKE} all rm -f ${TIMESTAMP} echo "" > ${TIMESTAMP} diff --git a/examples/extended/parallel/ParN02/ParN02.cc b/examples/extended/parallel/ParN02/ParN02.cc index cf5cb7e670..331ffe29fd 100644 --- a/examples/extended/parallel/ParN02/ParN02.cc +++ b/examples/extended/parallel/ParN02/ParN02.cc @@ -22,7 +22,7 @@ // // // $Id: ParN02.cc,v 1.3 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/ParTopC.icc b/examples/extended/parallel/ParN02/ParTopC.icc index 2739ea57c2..48f4c7c9e0 100644 --- a/examples/extended/parallel/ParN02/ParTopC.icc +++ b/examples/extended/parallel/ParN02/ParTopC.icc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParTopC.icc,v 1.1 2002/03/09 06:25:03 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh index f5d7a80e4c..fdcce5c1b4 100644 --- a/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh +++ b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.hh,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // A parameterisation that describes a series of boxes along Z diff --git a/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh b/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh index 9c3b6853c9..24da295671 100644 --- a/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorConstruction.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh b/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh index 06e37a6f84..4fdebc9619 100644 --- a/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh +++ b/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.hh,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02EventAction.hh b/examples/extended/parallel/ParN02/include/ExN02EventAction.hh index d62777bc0e..e2fcaca304 100644 --- a/examples/extended/parallel/ParN02/include/ExN02EventAction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh b/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh index c406e3c43d..01a2707378 100644 --- a/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh +++ b/examples/extended/parallel/ParN02/include/ExN02MagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02MagneticField.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh b/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh index fc04f75034..c903733e62 100644 --- a/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh +++ b/examples/extended/parallel/ParN02/include/ExN02PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02PhysicsList.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh b/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh index 1eb8987b33..582b0a7e2f 100644 --- a/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02PrimaryGeneratorAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02RunAction.hh b/examples/extended/parallel/ParN02/include/ExN02RunAction.hh index 9af1f06121..ec88032ad4 100644 --- a/examples/extended/parallel/ParN02/include/ExN02RunAction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh b/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh index e48e0f46e2..52a761910d 100644 --- a/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh +++ b/examples/extended/parallel/ParN02/include/ExN02SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingAction.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh b/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh index 2bb4004fd2..501303e974 100644 --- a/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh +++ b/examples/extended/parallel/ParN02/include/ExN02SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.hh,v 1.1 2002/03/05 15:21:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh b/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh index c76582d1b4..4a01a11f3d 100644 --- a/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh +++ b/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh @@ -21,31 +21,43 @@ // ******************************************************************** // // -// $Id: ExN02TrackerHit.hh,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// -------------------------------------------------------------- +// GEANT 4 - Underground Dark Matter Detector Advanced Example // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// For information related to this code contact: Alex Howard +// e-mail: a.s.howard@ic.ac.uk +// -------------------------------------------------------------- +// Comments +// +// +// TrackerHit header +// -------------------------------------------------------------- #ifndef ExN02TrackerHit_h #define ExN02TrackerHit_h 1 + +//MSH_include_begin +#include "MarshaledG4String.h" +//MSH_include_end + #include "G4VHit.hh" #include "G4THitsCollection.hh" #include "G4Allocator.hh" #include "G4ThreeVector.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class ExN02TrackerHit : public G4VHit +//MSH_BEGIN +class ExN02TrackerHit : public G4VHit { public: ExN02TrackerHit(); ~ExN02TrackerHit(); + ExN02TrackerHit(const ExN02TrackerHit&); const ExN02TrackerHit& operator=(const ExN02TrackerHit&); - G4int operator==(const ExN02TrackerHit&) const; + int operator==(const ExN02TrackerHit&) const; inline void* operator new(size_t); inline void operator delete(void*); @@ -53,48 +65,61 @@ class ExN02TrackerHit : public G4VHit void Draw(); void Print(); - public: - - void SetTrackID (G4int track) { trackID = track; }; - void SetChamberNb(G4int chamb) { chamberNb = chamb; }; - void SetEdep (G4double de) { edep = de; }; - void SetPos (G4ThreeVector xyz){ pos = xyz; }; - - G4int GetTrackID() { return trackID; }; - G4int GetChamberNb() { return chamberNb; }; - G4double GetEdep() { return edep; }; - G4ThreeVector GetPos(){ return pos; }; - + private: - - G4int trackID; - G4int chamberNb; - G4double edep; - G4ThreeVector pos; + G4ThreeVector pos; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetPos(); }] + [elementSet: { $THIS->SetPos($ELEMENT); }] */ + + G4double edep; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetEdep(); }] + [elementSet: { $THIS->SetEdep($ELEMENT); }] */ + + G4int trackID; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetTrackID(); }] + [elementSet: { $THIS->SetTrackID($ELEMENT); }] */ + + G4int chamberNb; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetChamberNb(); }] + [elementSet: { $THIS->SetChamberNb($ELEMENT); }] */ + + + public: + + inline void SetTrackID (G4int track) {trackID = track; }; + inline void SetChamberNb(G4int chamb) {chamberNb = chamb; }; + inline void SetEdep(G4double de) {edep=de;}; + inline void SetPos(G4ThreeVector xyz) {pos=xyz;}; + + inline G4int GetTrackID() const {return trackID; }; + inline G4int GetChamberNb() const {return chamberNb; }; + inline G4double GetEdep() const {return edep;}; + inline G4ThreeVector GetPos() const {return pos;}; + }; +//MSH_END -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - +// vector collection of one type of hits typedef G4THitsCollection ExN02TrackerHitsCollection; + extern G4Allocator ExN02TrackerHitAllocator; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline void* ExN02TrackerHit::operator new(size_t) -{ - void *aHit; - aHit = (void *) ExN02TrackerHitAllocator.MallocSingle(); +inline void* ExN02TrackerHit::operator new(size_t) { + void* aHit; + aHit = (void*) ExN02TrackerHitAllocator.MallocSingle(); return aHit; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline void ExN02TrackerHit::operator delete(void *aHit) -{ +inline void ExN02TrackerHit::operator delete(void* aHit) { ExN02TrackerHitAllocator.FreeSingle((ExN02TrackerHit*) aHit); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif + + + + + diff --git a/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh b/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh index 9adf684584..a3c9133767 100644 --- a/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh +++ b/examples/extended/parallel/ParN02/include/ExN02TrackerSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/MarshaledG4VHitsCollection.h b/examples/extended/parallel/ParN02/include/MarshaledG4VHitsCollection.h index 9f672e80a8..6f4ff5cd7e 100644 --- a/examples/extended/parallel/ParN02/include/MarshaledG4VHitsCollection.h +++ b/examples/extended/parallel/ParN02/include/MarshaledG4VHitsCollection.h @@ -222,8 +222,8 @@ void marshal3() { //Now just copy "get" functions here { - G4THitsCollection *aObj100 = (G4THitsCollection*)param; - MarshaledG4THitsCollection marChild(aObj100); + G4THitsCollection *aObj293 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj293); EXTEND_BUFFER(marChild.getBufferSize()); memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); msh_currentSize = marChild.getBufferSize(); diff --git a/examples/extended/parallel/ParN02/include/MarshaledObj.h b/examples/extended/parallel/ParN02/include/MarshaledObj.h index 7483c47bec..a6f6bf9d20 100644 --- a/examples/extended/parallel/ParN02/include/MarshaledObj.h +++ b/examples/extended/parallel/ParN02/include/MarshaledObj.h @@ -1,13 +1,26 @@ /********************************************************************** - * Parallel Library for Geant4 * + * Include file with Base Class of Marshalgen * * Copyright (c) 2001 Gene Cooperman * * * - * This library is free software distributed under the GNU * - * Lesser General Public License. See the file COPYING for details. * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library (see file COPYING); if not, write * + * to the Free Software Foundation, Inc., 59 Temple Place, Suite * + * 330, Boston, MA 02111-1307 USA, or contact Gene Cooperman * + * . * **********************************************************************/ -#ifndef PARMARSHALEDOBJ_H -#define PARMARSHALEDOBJ_H +#ifndef MARSHALEDOBJ_H +#define MARSHALEDOBJ_H #include #include @@ -111,14 +124,14 @@ class MarshaledObj { char* msh_field_begin; // msh_size contains the total size of msh_buffer. i.e., - int msh_size; + size_t msh_size; // msh_cursor points to the next field to be marshaled. char *msh_cursor; // msh_extent is the total allocated space for msh_buffer. // msh_extent is always >= msh_size - int msh_extent; + size_t msh_extent; bool msh_isUnmarshalDone; //Is unmarshaling done yet? @@ -130,7 +143,7 @@ class MarshaledObj { } } - void resizeBuffer(int new_size ) { + void resizeBuffer(size_t new_size ) { int msh_displacement = msh_cursor - msh_buffer; int field_displacement = msh_field_begin - msh_buffer; diff --git a/examples/extended/parallel/ParN02/include/ParRunManager.hh b/examples/extended/parallel/ParN02/include/ParRunManager.hh index 9056d7e58d..07e69ba49d 100644 --- a/examples/extended/parallel/ParN02/include/ParRunManager.hh +++ b/examples/extended/parallel/ParN02/include/ParRunManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParRunManager.hh,v 1.2 2002/06/06 17:05:02 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc index cfa368c483..319fa346f3 100644 --- a/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc +++ b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.cc,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc b/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc index 066c0a2cfb..992c08a15e 100644 --- a/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorConstruction.cc,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc index 7dc935d20c..dc3af51977 100644 --- a/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02EventAction.cc b/examples/extended/parallel/ParN02/src/ExN02EventAction.cc index b9bf4c795e..a0d18dbccc 100644 --- a/examples/extended/parallel/ParN02/src/ExN02EventAction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc b/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc index c9b318def1..9d0043126f 100644 --- a/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc +++ b/examples/extended/parallel/ParN02/src/ExN02MagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02MagneticField.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // User Field class implementation. // diff --git a/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc index ce6bcc7016..03ee791fa9 100644 --- a/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc +++ b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02PhysicsList.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc b/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc index fb7ade2d23..173c2aef07 100644 --- a/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02PrimaryGeneratorAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02RunAction.cc b/examples/extended/parallel/ParN02/src/ExN02RunAction.cc index 9f618525ad..8d70b1a884 100644 --- a/examples/extended/parallel/ParN02/src/ExN02RunAction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc b/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc index 1d30ca927d..a27afee891 100644 --- a/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingAction.cc,v 1.1 2002/03/05 15:22:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc b/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc index d90c193a5d..2bdcc89ab7 100644 --- a/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc +++ b/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc b/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc index 3adb4c2c6b..45a9b2e1fc 100644 --- a/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc +++ b/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.cc,v 1.2 2003/07/04 15:36:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc b/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc index d517ce3600..8484edb6b5 100644 --- a/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc +++ b/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.cc,v 1.2 2003/07/04 15:36:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ParRunManager.cc b/examples/extended/parallel/ParN02/src/ParRunManager.cc index adfaaca612..dc89925900 100644 --- a/examples/extended/parallel/ParN02/src/ParRunManager.cc +++ b/examples/extended/parallel/ParN02/src/ParRunManager.cc @@ -24,8 +24,6 @@ #include "G4Timer.hh" - - #include "G4RunManager.hh" #include "Randomize.hh" @@ -53,7 +51,10 @@ #include "MarshaledG4HCofThisEvent.h" #include "G4ios.hh" -#include + +#include // Geant4 8.x and beyond + +using namespace CLHEP; /* * The TopC call backs are implemented by using the 5 static data members to store @@ -80,6 +81,7 @@ TOPC_ACTION ParRunManager::MyCheckEventResult( void * input_buf, void *buf ) { static void trace_event_input( void *input ) { //G4cout << "Event " << *(G4int *)input << G4endl; + input = NULL; // Stop C++ from complaining about unused parameter } /* @@ -98,17 +100,19 @@ void ParRunManager::DoEventLoop( G4int n_event, const char* macroFile, G4int n_s return; #endif - if ( verboseLevel > 0 ) { timer->Start(); } - + if(verboseLevel>0) + { timer->Start(); } G4String msg; - if ( macroFile != 0 ) { - if ( n_select < 0 ) n_select = n_event; + if(macroFile!=0) + { + if(n_select<0) n_select = n_event; msg = "/control/execute "; msg += macroFile; - } else { - n_select = -1; } + else + { n_select = -1; } + // BeginOfEventAction() and EndOfEventAction() would normally be // called inside G4EventManager::ProcessOneEvent() in ParRunManager::DoEvent @@ -176,8 +180,8 @@ TOPC_BUF ParRunManager::DoEvent( void *input_buf ) // removed for Geant4.6 // stateManager->SetNewState(G4State_EventProc); - currentEvent = GenerateEvent( i_event ); - eventManager->ProcessOneEvent( currentEvent ); + currentEvent = GenerateEvent(i_event); + eventManager->ProcessOneEvent(currentEvent); G4HCofThisEvent* HCE = currentEvent->GetHCofThisEvent(); @@ -199,7 +203,7 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf // removed for Geant4.6 //stateManager->SetNewState(G4State_EventProc); - // Geant4.6 requires the state to be G4State_GeomClosed + // Geant4 6.0 requires the state to be G4State_GeomClosed // before calling EventManager::ProcessOneEvent(..) if ( !userPrimaryGeneratorAction ) @@ -235,11 +239,12 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf if ( origUserEventAction ) origUserEventAction->EndOfEventAction( currentEvent ); - AnalyzeEvent( currentEvent ); + AnalyzeEvent(currentEvent); - if ( i_event < n_select ) G4UImanager::GetUIpointer()->ApplyCommand( msg ); + if (i_eventApplyCommand(msg); + // Geant4 6.0 requires the state to be G4State_GeomClosed stateManager->SetNewState( G4State_GeomClosed ); - StackPreviousEvent( currentEvent ); + StackPreviousEvent(currentEvent); currentEvent = 0; return NO_ACTION; } diff --git a/examples/extended/parallel/ParN02/thwap b/examples/extended/parallel/ParN02/thwap deleted file mode 100755 index faaf41f4c8..0000000000 --- a/examples/extended/parallel/ParN02/thwap +++ /dev/null @@ -1,142 +0,0 @@ -#!/usr/bin/perl - -# -# Rat's thwap script, rewritten in perl and diffed a lot. -# -# django@ccs.neu.edu -# July 24, 1993 -# -# 1/19/94 v2.01 - bdowling -# Added: Interactive prompting (-i) -# Whuggled option handling -# -Allows numeric signals -# -Allows varied ordering -# Changed finding processes slightly -# Added sysV support ?? -# 1997.08.05 jay -# added Solaris support - -$0 =~ s#.*/##; -$| = 1; - -$fakeit = 0; -$iprompt = 0; - -# gdc - /usr/bin/kill -> /bin/kill, Redhat Linux 4.2 had only /bin/kill -@valid_signals = split(/[ \t\n]+/, `/bin/kill -l`); -die "$0: error running 'kill' to gather signals!: $!\n" if $?; - -$signal = "KILL"; - -while ($ARGV[0] =~ /^-/) { - $_ = shift(@ARGV); - if (/^-n$/) { - $fakeit = 1; $iprompt = 0; - } elsif (/^-i$/) { - $iprompt = 1; $fakeit = 0; - } elsif (/^-(\w+)/) { - $signal = $1; - $signal =~ tr/[a-z]/[A-Z]/; - $signal =~ s/^SIG//; - die "$1: $signal is not a valid signal\n" - if (! grep(/^$signal$/, - (@valid_signals, (1..$#valid_signals+1) ) ) ); - } -} -#warn "> $signal\n"; -# we don't need to do this, since Perl can handle named signals just as well -# as numberic ones. In fact, this causes us grief because kill -l does not -# return the same thing on all systems -#if (! ($signal =~ /^[0-9]+$/)) { # We want to work with a numeric signal -# for($x=0;$x<=$#valid_signals;$x++) { -# do { $numsignal = ++$x; last; } if @valid_signals[$x] eq $signal; -# } -#} -#warn "> $signal\n"; - -&usage if ($#ARGV < 0); - -foreach $uname ('/bin/uname', '/usr/bin/uname', '/sbin/uname') { - next unless (-x $uname); - chop($rev = `$uname -r`); - ($OSMAJOR = $rev) =~ s/\..*//; - last; -} - -if ($OSMAJOR == 5) { # System V - $ps_flags = " -f "; - $ps_flags .= " -e " if ($> == 0); - $ps_flags .= " -u $>" if ($> != 0); # Do we need this? Could we just do - # ps -f above? It gets some root procs - # such as rlogin etc. (which is cool!) -} else { # Assume BSD system, what others could we check for? - $ps_flags = "uxww"; - $ps_flags .= "a" if ($> == 0); # Only need this if we're root -} - -# Don't want a leading "-" on the flags, so it works on both Alphas and Suns: -$ps_pid = open(PS, "ps $ps_flags |"), "\n"; -$header = ; -$seen_header = 0; -$thwapped = 0; - -while () { - ($foo = $_) =~ s/^\s*//; - ($user, $pid, @rest) = split(' ',$foo); - next if ($pid == $$ || $pid == $ps_pid); # Don't thwap this process! - next if (/thwap/); # Hackish attempt to avoid - # thwapping this process - # when invoked via rsh - - testit: foreach $expr (@ARGV) { - if ($expr =~ /^[0-9]+$/) { # make numbers only match pids - next testit if ($pid != $expr); - } - if (grep(/$expr/, $_)) { -# warn "expr = $expr; user = $user; pid = $pid; rest = @rest\n"; - warn $header if (! $seen_header); - warn "\n" if ($seen_header && $iprompt); - $seen_header = 1; - warn $_; - if (! $iprompt || &AskYN() ) { -# warn "-> kill $signal $pid\n" if (! $fakeit); - if (! $fakeit ) { - # quotes needed around $signal so Perl will interpret both - # numeric and non-numberic signals properly -- dNb - $killed = kill("$signal", $pid); - warn "kill: $!\n" if ! $killed; - $thwapped += $killed; - } else { - $thwapped++; - } - } - last testit; # Okay it's dead jim, we're done this loop. - } - } -} - -close(PS); - -warn "$0: ", ( $fakeit ? "would have " : "" ), - "sent SIG${signal} to $thwapped process", - ($thwapped == 1 ? "" : "es"), "\n"; - -sub usage { - warn <<"EOT"; -Usage: $0 [options] ... -Options: - -n fake mode - only display processes that would be selected - -i interactive mode - prompt on each suspect process - - any valid literal or numeric signal (see kill -l) - -EOT -exit(1); -} - -sub AskYN { - print STDERR "Send SIG", @valid_signals[$numsignal-1], " to this process? (y/n/a)? "; - $ans = ; - $iprompt = ! ($ans =~ /^a/i); - return( $ans =~ /^[ay]/i ); -} - diff --git a/examples/extended/parallel/ParN04/docs/000README b/examples/extended/parallel/ParN04/000README similarity index 85% rename from examples/extended/parallel/ParN04/docs/000README rename to examples/extended/parallel/ParN04/000README index a8b14c7116..06b5b08f98 100644 --- a/examples/extended/parallel/ParN04/docs/000README +++ b/examples/extended/parallel/ParN04/000README @@ -1,9 +1,6 @@ -$Id: 000README,v 1.4 2004/12/03 13:35:22 gcosmo Exp $ -------------------------------------------------------------------- - ParGeant4: Geant4/TOP-C, a parallelization of Geant4 - Version 0.9 - (event-level parallelism only) + ParGeant4: Geant4/TOP-C, a parallelization of Geant4 + (event-level parallelism) Gene Cooperman Northeastern University @@ -16,11 +13,10 @@ Please write to gene@ccs.neu.edu for further information. To port other applications to a parallel version, read the files ../../info/PAR_INSTALL and ../../info/PAR_README. - See the beginning of GNUmakefile for reasonable `make' targets to run it. To run it: 0. a. Follow the standard Geant4 installation procedure. - b. Download and install TOP-C. + b. Download and install TOP-C The TOP-C home page is at http://www.ccs.neu.edu/home/gene/topc.html cd gzip -dc topc.tar.gz | tar -xvf - @@ -29,10 +25,10 @@ To run it: make make test [ Copy bin/topc-config to your path ] - c. Verify that the Geant4 example installs for you: + c. Verify that the Geant4 example installs: cd $G4INSTALL/examples/extended/parallel/ParN04 - make - $G4WORKDIR/bin/$G4SYSTEM/ParN04 ParN04.in + make + $G4WORKDIR/bin/$G4SYSTEM/ParN04 ParN04.in 2. make run [ By default, the included `procgroup' file creates two slave processes on localhost. ] @@ -41,15 +37,16 @@ To run it: [ To remove intermediate files and start over: make parclean ] 3. Try running it with slave processes on remote processes. First, test that your local environment is set up correctly. - Try: ssh $G4WORKDIR/bin/$G4SYSTEM/ParN04 `pwd`/ParN04.in + Try: + ssh $G4WORKDIR/bin/$G4SYSTEM/ParN04 `pwd`/ParN04.in The above command needs to work without asking for a password. [ If you use dynamic libraries (*.so), make sure the LD_LIBRARY_PATH in your shell startup file (e.g. ~.tcshrc) includes both: $G4INSTALL/lib/$G4SYSTEM and $CLHEP_BASE_DIR/lib If you use AFS, you may need to type 'klog' to renew your AFS token. ] In `procgroup' file, replace `localhost' by desired remote hosts; - Add additional remote hosts (additional slaves) if you like. - Then: make run + Add additional remote hosts (additional slaves) if you like. + Then: make run ============================================================================ If you read ParGNUmakefile, you'll find other things that you can @@ -74,14 +71,14 @@ make parclean - Start over with clean set of files. ============================================================================ New or modified files: - ParN04.cc - Adds one line: #include "ParN04.icc" + ParN04.cc - Adds one line: #include "ParN04.icc" ParExample.icc inserts: #include "topc.h" and causes main to calls TOPC_init, TOPC_finalize, and to use: `new ParRunManager' instead of `new G4RunManager' GNUmakefile - Adds one line at beginning: include ParGNUmakefile ParGNUmakefile defines EXTRALIBS and CPPFLAGS so as to - modify behavior of config/binmake.gmk - in order to use TOP-C libraries and includes + modify behavior of config/binmake.gmk + in order to use TOP-C libraries and includes procgroup - Specifies which slave hosts to use, and where to put output For example: localhost 1 - > slave1.out host=`localhost', executable=`same as master', @@ -90,16 +87,13 @@ New or modified files: src/ParRunManager.cc - ParRunManger derived from G4RunManager replaces Gr4RunManager::DoEventLoop w/ TOP-C parallel loop, Adds certain local vars of DoEventLoop as ParRunManager members - src/ParMarshaledObj.cc - run-time utilities for marshalling - src/ParExN04MarshaledHits.cc - marshals N04 hits (calorimeter & tracking hits) - include/Par*.hh - Currently just ParRunManager.hh + include/MarshaledObj.h - run-time utilities for marshalling + include/MarshaledEx*Hit.h - marshals N04 hits (calorimeter hits) + include/MarshaledG4*.h - marshaling routines for Geant4 data structures + ~/slave*.out - Contains outputs of slave1, slave2, etc. Generated each time parallel ParN04 is executed. These files are specified in the file procgroup. - thwap - A script I inherited from our N.U. systems group - `thwap ParN04' will clobber all processes you own - whose command line includes `ParN04' as substring. - Handy for runaway processes when doing parallelism. ==================================================================== This version passes an event number to the slave and lets the @@ -128,13 +122,15 @@ identical commands. ==================================================================== If you are curious about some of the layers, the following stack trace [somewhat out of date now] gives some idea. +[ This stack trace is from a run based on ParN02.] + G4RunManager::BeamOn calls ParRunManager::DoEventLoop (since G4RunManager::DoEventLoop is virtual) ParRunManager::DoEventLoop calls TOPC_master_slave TOPC_master_slave calls submit_task_input submit_task_input eventually calls COMM_send_msg which calls MPI_Send (COMM_send_msg is the communication layer of TOPC; - The exampleN02.cc was linked with the TOP-C MPI communication layer. + ParN04.cc was linked with the TOP-C MPI communication layer. The same source could have been linked with a POSIX threads layer, a communication layer, or some other communication layer. ) @@ -158,4 +154,4 @@ stack trace [somewhat out of date now] gives some idea. #11 0x416810a3 in G4UImanager::ApplyCommand () from /afs/cern.ch/user/c/cooperma/scratch-pcitapi07/geant4/lib/libG4intercoms.so #12 0x805db7e in G4UIterminal::ExecuteCommand () at /afs/cern.ch/sw/lhcxx/specific/redhat61/3.2.0/include/CLHEP/Random/Randomize.h:64 #13 0x805d42d in G4UIterminal::SessionStart () at /afs/cern.ch/sw/lhcxx/specific/redhat61/3.2.0/include/CLHEP/Random/Randomize.h:64 -#14 0x8056a3d in main (argc=1, argv=0x80bfa00) at ParN04.cc:98 +#14 0x8056a3d in main (argc=1, argv=0x80bfa00) at ParN02.cc:98 diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/000README b/examples/extended/parallel/ParN04/AnnotatedFiles/000README new file mode 100644 index 0000000000..9b85a08bd4 --- /dev/null +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/000README @@ -0,0 +1,47 @@ +The files in this directory are the files that were used to build + ../include/Marshaled*.hh . The files ../include/Marshaled*.hh contain +marshaling (serialization) routines that are used by Parallel Geantr4. + +Marshalgen is a package that allows one to add a small number of annotations +to the original sequential code, in order to create marshalling or +serialization routines. Those marshalling routines are then used +by ParGeant4 to pass data between slave processes and the master process. + +INPUT FILES: +1. G4*.hh : The files *.hh are taken from Geant4. They include annotations + (comments) that describe how to marshal individual fields of the + given classes. These files have additional annotations that describe + how to marshal individual fields of the given classes. For a new + application, you have to change any references to Ex* to your + own example/application include files. These files are then reused + in the new Geant4 parallel application. +2. ../include/Ex*Hit.hh : These files are the original sequential Geant4 + application files that describe the application-defined hits. + They remain in the application include directory because they may + depend on other files in the include directory. + For most new parallel Geant4 applications, these files are sufficiently + simple, that one needs only to add Marshalgen begin and end comments + bracketing the class that needs to be marshalled, and a small number + of annotations specifying accessor functions to get and set fields + in the class. It may also be necessary to include marshalling + include files, if it is necessary to marshal other Geant4 data + structures. + Information on how to marshal the fields, etc., is in the Marshalgen + manual, along with the Marshalgen package: + http://www.ccs.neu.edu/home/gene/marshalgen + + +Marshalgen was then called on the above input files. One calls: + ./marshalgen *.hh + ./marshalgen ../include/Ex*Hit.hh + +OUTPUT FILES: +3. *.msh : These files are intermediate files generated automatically + by marshalgen ( http://www.ccs.neu.edu/home/gene/marshalgen ) + These files can be deleted if desired. +4. Marshaled*.h : These files are generated by Marshalgen. They + include of type both MarshaledEx*.h and MarshaledG4*.h . + (In addition, the file MarshaledObj.h is copied directly from + the Marshalgen distribution.) These files are all copied to + the include directory of the Geant4 parallel application. + They provide the marshalling functions that are then used by Geant4. diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh index 2ccfa66f10..3641ccecc5 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HCofThisEvent.hh,v 1.1 2004/11/22 17:51:00 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4HCofThisEvent.hh,v 1.2 2005/11/26 09:47:01 cooperma Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4HCofThisEvent_h @@ -31,7 +31,7 @@ #include "globals.hh" #include "G4Allocator.hh" #include "G4VHitsCollection.hh" -#include "g4std/vector" +#include // class description: // @@ -68,7 +68,7 @@ class G4HCofThisEvent void AddHitsCollection(G4int HCID,G4VHitsCollection * aHC); private: - G4std::vector * HC; /*MSH: ptr_as_array + std::vector * HC; /*MSH: ptr_as_array [elementType: G4VHitsCollection*] [elementCount: { $ELE_COUNT = $THIS->GetNumberOfCollections(); }] [elementGet: { $ELEMENT = $THIS->GetHC($ELE_INDEX); }] @@ -101,7 +101,11 @@ class G4HCofThisEvent }; //MSH_END -extern G4Allocator anHCoTHAllocator; +#if defined G4DIGI_ALLOC_EXPORT + extern G4DLLEXPORT G4Allocator anHCoTHAllocator; +#else + extern G4DLLIMPORT G4Allocator anHCoTHAllocator; +#endif inline void* G4HCofThisEvent::operator new(size_t) { diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.msh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.msh index b1b27633e8..da23c93039 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.msh +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4HCofThisEvent.msh @@ -10,9 +10,12 @@ //MSH_include_end %} +// This file is generated automatically from G4HCofThisEvent.hh . It is an +// intermediate file useful for debugging, but otherwise may be deleted. + marshaling class MarshaledG4HCofThisEvent (G4HCofThisEvent* param) { - G4std::vector * HC; + std::vector * HC; //FIELDMARSHAL: { int copy_off = 0; diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.hh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.hh index 482c204b36..5055152ff6 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.hh +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.hh @@ -32,11 +32,12 @@ vietha 2003.05.08 */ -#ifndef G4String_h -#define G4String_h +#ifndef __G4String +#define __G4String //MSH_BEGIN -class G4String{ +class G4String : public std::string +{ int dummy; /*MSH: manual { memcpy($$, param->c_str(), param->size()); *($$+param->size()) = '\0'; diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.msh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.msh index 31ec92e59d..47a70a8361 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.msh +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4String.msh @@ -3,6 +3,9 @@ %} +// This file is generated automatically from G4String.hh . It is an +// intermediate file useful for debugging, but otherwise may be deleted. + marshaling class MarshaledG4String (G4String* param) { int dummy; diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.hh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.hh index 91c6c25ce6..c69b3b1f9c 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.hh +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4THitsCollection.hh,v 1.1 2004/11/22 17:51:01 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4THitsCollection.hh,v 1.2 2005/11/26 09:47:01 cooperma Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4THitsCollection_h @@ -96,7 +96,12 @@ class G4HitsCollection : public G4VHitsCollection }; //MSH_END -extern G4Allocator anHCAllocator; + +#if defined G4DIGI_ALLOC_EXPORT + extern G4DLLEXPORT G4Allocator anHCAllocator; +#else + extern G4DLLIMPORT G4Allocator anHCAllocator; +#endif //MSH_BEGIN template class G4THitsCollection : public G4HitsCollection @@ -120,15 +125,15 @@ template class G4THitsCollection : public G4HitsCollection public: // with description inline T* operator[](size_t i) const - { return (*((G4std::vector*)theCollection))[i]; } + { return (*((std::vector*)theCollection))[i]; } // Returns a pointer to a concrete hit object. - inline G4std::vector* GetVector() const - { return (G4std::vector*)theCollection; } + inline std::vector* GetVector() const + { return (std::vector*)theCollection; } // Returns a collection vector. inline G4int insert(T* aHit) { - G4std::vector*theHitsCollection - = (G4std::vector*)theCollection; + std::vector*theHitsCollection + = (std::vector*)theCollection; theHitsCollection->push_back(aHit); return theHitsCollection->size(); } @@ -136,17 +141,17 @@ template class G4THitsCollection : public G4HitsCollection // collection is returned. inline G4int entries() const { - G4std::vector*theHitsCollection - = (G4std::vector*)theCollection; + std::vector*theHitsCollection + = (std::vector*)theCollection; return theHitsCollection->size(); } // Returns the number of hit objects stored in this collection public: virtual G4VHit* GetHit(size_t i) const - { return (*((G4std::vector*)theCollection))[i]; } + { return (*((std::vector*)theCollection))[i]; } virtual size_t GetSize() const - { return ((G4std::vector*)theCollection)->size(); } + { return ((std::vector*)theCollection)->size(); } // MSH_superclass : G4HitsCollection @@ -167,23 +172,23 @@ template inline void G4THitsCollection::operator delete(void* anHC) template G4THitsCollection::G4THitsCollection() { - G4std::vector * theHitsCollection - = new G4std::vector; + std::vector * theHitsCollection + = new std::vector; theCollection = (void*)theHitsCollection; } template G4THitsCollection::G4THitsCollection(G4String detName,G4String colNam) : G4HitsCollection(detName,colNam) { - G4std::vector * theHitsCollection - = new G4std::vector; + std::vector * theHitsCollection + = new std::vector; theCollection = (void*)theHitsCollection; } template G4THitsCollection::~G4THitsCollection() { - G4std::vector * theHitsCollection - = (G4std::vector*)theCollection; + std::vector * theHitsCollection + = (std::vector*)theCollection; //theHitsCollection->clearAndDestroy(); for(size_t i=0;isize();i++) { delete (*theHitsCollection)[i]; } @@ -196,8 +201,8 @@ template G4int G4THitsCollection::operator==(const G4THitsCollectio template void G4THitsCollection::DrawAllHits() { - G4std::vector * theHitsCollection - = (G4std::vector*)theCollection; + std::vector * theHitsCollection + = (std::vector*)theCollection; size_t n = theHitsCollection->size(); for(size_t i=0;iDraw(); } @@ -205,8 +210,8 @@ template void G4THitsCollection::DrawAllHits() template void G4THitsCollection::PrintAllHits() { - G4std::vector * theHitsCollection - = (G4std::vector*)theCollection; + std::vector * theHitsCollection + = (std::vector*)theCollection; size_t n = theHitsCollection->size(); for(size_t i=0;iPrint(); } diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.msh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.msh index b28ef682ea..cd1d02b9b4 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.msh +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4THitsCollection.msh @@ -10,6 +10,9 @@ //MSH_include_end %} +// This file is generated automatically from G4THitsCollection.hh . It is an +// intermediate file useful for debugging, but otherwise may be deleted. + marshaling class MarshaledG4HitsCollection (G4HitsCollection* param) { void* theCollection; @@ -150,7 +153,7 @@ } template marshaling class MarshaledG4THitsCollection (G4THitsCollection* param) : public G4HitsCollection { - int __dummy208; // marshaling code for MSH_superclass + int __dummy812; // marshaling code for MSH_superclass //FIELDMARSHAL: { MarshaledG4HitsCollection marParent($THIS); diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.hh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.hh index 0dff599001..c6df6cf1c7 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.hh +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VHitsCollection.hh,v 1.1 2004/11/22 17:51:01 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VHitsCollection.hh,v 1.2 2005/11/26 09:47:01 cooperma Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VHitsCollection_h @@ -55,9 +55,9 @@ class G4VHitsCollection protected: // Collection name - G4String collectionName; /*MSH: predefined - [elementGet: { $ELEMENT = $THIS->GetName(); }] - [elementSet: { Shadowed_param->collectionName=$ELEMENT; }] + G4String collectionName; /*MSH: predefined + [elementGet: { $ELEMENT = $THIS->GetName(); }] + [elementSet: { Shadowed_param->collectionName=$ELEMENT; }] */ G4String SDname; /* MSH: predefined @@ -79,7 +79,7 @@ class G4VHitsCollection // GetHit and GetSize are given a default implementation here so // that the template G4THitsCollection can be used, but they // are re-implemented G4THitsCollection. - virtual G4VHit* GetHit(size_t i) const { return 0; } + virtual G4VHit* GetHit(size_t) const { return 0; } virtual size_t GetSize() const { return 0; }; }; diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.msh b/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.msh index a7ea712d01..9e3692ab16 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.msh +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/G4VHitsCollection.msh @@ -3,9 +3,12 @@ %} +// This file is generated automatically from G4VHitsCollection.hh . It is an +// intermediate file useful for debugging, but otherwise may be deleted. + marshaling class MarshaledG4VHitsCollection (G4VHitsCollection* param) { - G4String collectionName; + G4String collectionName; //FIELDMARSHAL: { G4String $ELEMENT; @@ -52,29 +55,29 @@ // no need to declare size since $SIZE is already assigned in the MARSHAL field } - int __dummy949; // marshaling code for MSH_derivedclass + int __dummy621; // marshaling code for MSH_derivedclass //FIELDMARSHAL: { if(0){} else if(($THIS->GetName() == "calCollection") ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)$THIS; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj621 = (G4THitsCollection*)$THIS; + MarshaledG4THitsCollection marChild(aObj621); EXTEND_BUFFER(marChild.getBufferSize()); memcpy($$,marChild.getBuffer(), marChild.getBufferSize()); $SIZE = marChild.getBufferSize(); $TYPE_CHOICE = 0; } else if( ($THIS->GetName() == "muonCollection") ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)$THIS; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj621 = (G4THitsCollection*)$THIS; + MarshaledG4THitsCollection marChild(aObj621); EXTEND_BUFFER(marChild.getBufferSize()); memcpy($$,marChild.getBuffer(), marChild.getBufferSize()); $SIZE = marChild.getBufferSize(); $TYPE_CHOICE = 1; } else if( true ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)$THIS; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj621 = (G4THitsCollection*)$THIS; + MarshaledG4THitsCollection marChild(aObj621); EXTEND_BUFFER(marChild.getBufferSize()); memcpy($$,marChild.getBuffer(), marChild.getBufferSize()); $SIZE = marChild.getBufferSize(); diff --git a/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4VHitsCollection.h b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4VHitsCollection.h index 3f13cdfd77..d6d0507461 100644 --- a/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4VHitsCollection.h +++ b/examples/extended/parallel/ParN04/AnnotatedFiles/MarshaledG4VHitsCollection.h @@ -233,24 +233,24 @@ void marshal3() { { if(0){} else if((param->GetName() == "calCollection") ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)param; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj621 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj621); EXTEND_BUFFER(marChild.getBufferSize()); memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); msh_currentSize = marChild.getBufferSize(); msh_typechoice = 0; } else if( (param->GetName() == "muonCollection") ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)param; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj621 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj621); EXTEND_BUFFER(marChild.getBufferSize()); memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); msh_currentSize = marChild.getBufferSize(); msh_typechoice = 1; } else if( true ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)param; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj621 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj621); EXTEND_BUFFER(marChild.getBufferSize()); memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); msh_currentSize = marChild.getBufferSize(); diff --git a/examples/extended/parallel/ParN04/History b/examples/extended/parallel/ParN04/History index d82c955ae6..6e1221c813 100644 --- a/examples/extended/parallel/ParN04/History +++ b/examples/extended/parallel/ParN04/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.10 2005/11/28 11:30:48 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,7 +15,16 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Nov 28th, 2005 G.Cooperman - ParN04-V07-01-01 +--------------------------- +- Updated in sync with the last kernel code. + +Nov 15th, 2005 G.Cosmo - ParN04-V07-01-00 +----------------------- +- Migration to from deprecated . + +May 3rd, 2005 J.Allison +------------------------ - Replaced vis manager with G4VisExecutive. Nov 22nd, 2004 G.Cooperman - ParN04-V07-00-00 diff --git a/examples/extended/parallel/ParN04/ParGNUmakefile b/examples/extended/parallel/ParN04/ParGNUmakefile index 00df1a5834..ff4182f70a 100644 --- a/examples/extended/parallel/ParN04/ParGNUmakefile +++ b/examples/extended/parallel/ParN04/ParGNUmakefile @@ -1,11 +1,11 @@ -# $Id: ParGNUmakefile,v 1.4 2002/06/06 17:27:25 cooperma Exp $ +# $Id: ParGNUmakefile,v 1.6 2005/12/02 07:51:43 cooperma Exp $ # -------------------------------------------------------------- #This file should be included in GNUmakefile of local directory. #Usage: make [ to compile parallel version ] # make run [ to compile and run it ] # make run-debug [ to compile and run in gdb ] -# make parclean [ remove intermediate and executable files ] +# make parclean [ remove intermediate and executable files ] # See `run' target for parameters by which executable is called. # This assumes Geant4 environment vars have been defined. # See ../info/NEW_APP_INSTALL (number 10) for an example of setting up @@ -60,7 +60,7 @@ TOPC_OPTIONS = --TOPC-verbose EXTRALIBS=${TOPC_LIBS} CPPFLAGS=${TOPC_CFLAGS} -TIMESTAMP=${G4BINDIR}/timestamp +TIMESTAMP=${G4BINDIR}/ParN04.timestamp # Unfortunately, .../geant4.x.x/config/binmake.gmk has target: # $(G4BINDIR)/$(G4TARGET) @@ -72,11 +72,25 @@ compile: @ if [ "$$G4SYSTEM" = "" ]; then \ echo '***' Environment variable G4SYSTEM not defined; \ echo '***' Make sure G4INSTALL and G4SYSTEM are set; \ + exit 1; \ fi ${MAKE} G4BINDIR=${G4BINDIR} ${TIMESTAMP} + @ if which topc-config > /dev/null; then :; \ + else \ + echo '***' topc-config is not in your path; \ + exit 1; \ + fi + @ echo "" + @ echo 'To run, now type "make run"' + @ echo 'To remove built files, type "make parclean"' + ${TIMESTAMP}: *.cc *.icc src/*.cc include/*.hh ParGNUmakefile - # Test for presence of topc-config - topc-config ${MEM_MODEL} --libs > /dev/null + @ if which topc-config > /dev/null; then :; \ + else \ + echo ''; \ + echo '***' topc-config is not in your path; \ + exit 1; \ + fi ${MAKE} all rm -f ${TIMESTAMP} echo "" > ${TIMESTAMP} diff --git a/examples/extended/parallel/ParN04/ParN04.cc b/examples/extended/parallel/ParN04/ParN04.cc index 6b986e1e71..95ac4ebed6 100644 --- a/examples/extended/parallel/ParN04/ParN04.cc +++ b/examples/extended/parallel/ParN04/ParN04.cc @@ -22,7 +22,7 @@ // // // $Id: ParN04.cc,v 1.4 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/parallel/ParN04/ParTopC.icc b/examples/extended/parallel/ParN04/ParTopC.icc index e2574fb447..024c38862f 100644 --- a/examples/extended/parallel/ParN04/ParTopC.icc +++ b/examples/extended/parallel/ParN04/ParTopC.icc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParTopC.icc,v 1.1 2002/03/09 06:25:10 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh b/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh index 5c8d2edce9..051a0188d8 100644 --- a/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh +++ b/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh @@ -24,6 +24,12 @@ #ifndef ExN04CalorimeterHit_h #define ExN04CalorimeterHit_h 1 + +//MSH_include_begin +#include "MarshaledG4String.h" +//MSH_include_end + + #include "G4VHit.hh" #include "G4THitsCollection.hh" #include "G4Allocator.hh" @@ -32,6 +38,8 @@ #include "G4Transform3D.hh" #include "G4RotationMatrix.hh" + +//MSH_BEGIN class ExN04CalorimeterHit : public G4VHit { public: @@ -41,7 +49,7 @@ class ExN04CalorimeterHit : public G4VHit ~ExN04CalorimeterHit(); ExN04CalorimeterHit(const ExN04CalorimeterHit &right); const ExN04CalorimeterHit& operator=(const ExN04CalorimeterHit &right); - G4int operator==(const ExN04CalorimeterHit &right) const; + int operator==(const ExN04CalorimeterHit &right) const; inline void *operator new(size_t); inline void operator delete(void *aHit); @@ -50,12 +58,28 @@ class ExN04CalorimeterHit : public G4VHit void Print(); private: - G4int ZCellID; - G4int PhiCellID; - G4double edep; - G4ThreeVector pos; - G4RotationMatrix rot; - const G4LogicalVolume* pLogV; + + G4int ZCellID; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetZ(); }] + [elementSet: { $THIS->SetCellID($ELEMENT, $THIS->GetPhi()); }] */ + + G4int PhiCellID; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetPhi(); }] + [elementSet: { $THIS->SetCellID($THIS->GetZ(), $ELEMENT); }] */ + + + G4double edep; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetEdep(); }] + [elementSet: { $THIS->SetEdep($ELEMENT); }] */ + + G4ThreeVector pos; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetPos(); }] + [elementSet: { $THIS->SetPos($ELEMENT); }] */ + + G4RotationMatrix rot; + const G4LogicalVolume* pLogV; + + public: inline void SetCellID(G4int z,G4int phi) @@ -83,6 +107,7 @@ class ExN04CalorimeterHit : public G4VHit { return pLogV; } }; +//MSH_END typedef G4THitsCollection ExN04CalorimeterHitsCollection; diff --git a/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh index d2031928fe..e73afed7c9 100644 --- a/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.hh,v 1.1 2002/03/05 15:22:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh index 495b36af52..303e5bdfd5 100644 --- a/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.hh,v 1.1 2002/03/05 15:22:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh index 53e21fefde..1a55de887f 100644 --- a/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN04HadronPhysics.hh,v 1.3 2003/12/03 14:28:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh index 0c8a24eed2..9d2c0299c2 100644 --- a/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.hh,v 1.2 2003/12/03 14:28:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh b/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh index 100850b4ed..49b3a96354 100644 --- a/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh +++ b/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh @@ -24,11 +24,16 @@ #ifndef ExN04MuonHit_h #define ExN04MuonHit_h 1 +//MSH_include_begin +#include "MarshaledG4String.h" +//MSH_include_end + #include "G4VHit.hh" #include "G4THitsCollection.hh" #include "G4Allocator.hh" #include "G4ThreeVector.hh" +//MSH_BEGIN class ExN04MuonHit : public G4VHit { public: @@ -37,7 +42,7 @@ class ExN04MuonHit : public G4VHit ~ExN04MuonHit(); ExN04MuonHit(const ExN04MuonHit &right); const ExN04MuonHit& operator=(const ExN04MuonHit &right); - G4int operator==(const ExN04MuonHit &right) const; + int operator==(const ExN04MuonHit &right) const; inline void *operator new(size_t); @@ -47,8 +52,18 @@ class ExN04MuonHit : public G4VHit void Print(); private: - G4double edep; - G4ThreeVector pos; + + + G4double edep; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetEdep(); }] + [elementSet: { $THIS->SetEdep($ELEMENT); }]*/ + + + + G4ThreeVector pos; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetPos(); }] + [elementSet: { $THIS->SetPos($ELEMENT); }] */ + public: inline void SetEdep(G4double de) @@ -63,6 +78,7 @@ class ExN04MuonHit : public G4VHit { return pos; } }; +//MSH_END typedef G4THitsCollection ExN04MuonHitsCollection; diff --git a/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh index c28b9dc410..7ae81c1777 100644 --- a/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.hh,v 1.2 2003/12/03 14:28:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04RunAction.hh b/examples/extended/parallel/ParN04/include/ExN04RunAction.hh index 930b55f80b..d9fca3aebb 100644 --- a/examples/extended/parallel/ParN04/include/ExN04RunAction.hh +++ b/examples/extended/parallel/ParN04/include/ExN04RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.hh,v 1.1 2003/12/03 14:32:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh b/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh index 5219cbfd99..6f9a4337d8 100644 --- a/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh +++ b/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.hh,v 1.1 2003/12/03 14:32:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh b/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh index b99f06d0b7..760a58264a 100644 --- a/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh +++ b/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh @@ -20,61 +20,95 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// -------------------------------------------------------------- +// GEANT 4 - Underground Dark Matter Detector Advanced Example +// +// For information related to this code contact: Alex Howard +// e-mail: a.s.howard@ic.ac.uk +// -------------------------------------------------------------- +// Comments +// +// +// TrackerHit header +// -------------------------------------------------------------- #ifndef ExN04TrackerHit_h #define ExN04TrackerHit_h 1 + +//MSH_include_begin +#include "MarshaledG4String.h" +//MSH_include_end + #include "G4VHit.hh" #include "G4THitsCollection.hh" #include "G4Allocator.hh" #include "G4ThreeVector.hh" -class ExN04TrackerHit : public G4VHit + +//MSH_BEGIN +class ExN04TrackerHit : public G4VHit { public: ExN04TrackerHit(); - ~ExN04TrackerHit(); + ~ExN04TrackerHit(); + ExN04TrackerHit(const ExN04TrackerHit &right); const ExN04TrackerHit& operator=(const ExN04TrackerHit &right); - G4int operator==(const ExN04TrackerHit &right) const; + int operator==(const ExN04TrackerHit &right) const; - inline void *operator new(size_t); - inline void operator delete(void *aHit); + inline void* operator new(size_t); + inline void operator delete(void* aHit); void Draw(); void Print(); + private: - G4double edep; - G4ThreeVector pos; + G4ThreeVector pos; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetPos(); }] + [elementSet: { $THIS->SetPos($ELEMENT); }] */ + + G4double edep; /*MSH: primitive + [elementGet: { $ELEMENT = $THIS->GetEdep(); }] + [elementSet: { $THIS->SetEdep($ELEMENT); }] */ + public: - inline void SetEdep(G4double de) - { edep = de; } - inline G4double GetEdep() - { return edep; } - inline void SetPos(G4ThreeVector xyz) - { pos = xyz; } - inline G4ThreeVector GetPos() - { return pos; } + + + inline void SetEdep(G4double de) {edep=de;}; + inline void SetPos(G4ThreeVector xyz) {pos=xyz;}; + + inline G4double GetEdep() const {return edep;}; + inline G4ThreeVector GetPos() const {return pos;}; }; +//MSH_END +// vector collection of one type of hits typedef G4THitsCollection ExN04TrackerHitsCollection; + extern G4Allocator ExN04TrackerHitAllocator; -inline void* ExN04TrackerHit::operator new(size_t) -{ - void *aHit; - aHit = (void *) ExN04TrackerHitAllocator.MallocSingle(); + +inline void* ExN04TrackerHit::operator new(size_t) { + void* aHit; + aHit = (void*) ExN04TrackerHitAllocator.MallocSingle(); return aHit; } -inline void ExN04TrackerHit::operator delete(void *aHit) -{ + +inline void ExN04TrackerHit::operator delete(void* aHit) { ExN04TrackerHitAllocator.FreeSingle((ExN04TrackerHit*) aHit); } #endif + + + + + diff --git a/examples/extended/parallel/ParN04/include/MarshaledG4VHitsCollection.h b/examples/extended/parallel/ParN04/include/MarshaledG4VHitsCollection.h index 3f13cdfd77..6a17bf17b4 100644 --- a/examples/extended/parallel/ParN04/include/MarshaledG4VHitsCollection.h +++ b/examples/extended/parallel/ParN04/include/MarshaledG4VHitsCollection.h @@ -233,24 +233,24 @@ void marshal3() { { if(0){} else if((param->GetName() == "calCollection") ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)param; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj749 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj749); EXTEND_BUFFER(marChild.getBufferSize()); memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); msh_currentSize = marChild.getBufferSize(); msh_typechoice = 0; } else if( (param->GetName() == "muonCollection") ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)param; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj749 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj749); EXTEND_BUFFER(marChild.getBufferSize()); memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); msh_currentSize = marChild.getBufferSize(); msh_typechoice = 1; } else if( true ){ - G4THitsCollection *aObj949 = (G4THitsCollection*)param; - MarshaledG4THitsCollection marChild(aObj949); + G4THitsCollection *aObj749 = (G4THitsCollection*)param; + MarshaledG4THitsCollection marChild(aObj749); EXTEND_BUFFER(marChild.getBufferSize()); memcpy(msh_cursor,marChild.getBuffer(), marChild.getBufferSize()); msh_currentSize = marChild.getBufferSize(); diff --git a/examples/extended/parallel/ParN04/include/MarshaledObj.h b/examples/extended/parallel/ParN04/include/MarshaledObj.h index 7483c47bec..a6f6bf9d20 100644 --- a/examples/extended/parallel/ParN04/include/MarshaledObj.h +++ b/examples/extended/parallel/ParN04/include/MarshaledObj.h @@ -1,13 +1,26 @@ /********************************************************************** - * Parallel Library for Geant4 * + * Include file with Base Class of Marshalgen * * Copyright (c) 2001 Gene Cooperman * * * - * This library is free software distributed under the GNU * - * Lesser General Public License. See the file COPYING for details. * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library (see file COPYING); if not, write * + * to the Free Software Foundation, Inc., 59 Temple Place, Suite * + * 330, Boston, MA 02111-1307 USA, or contact Gene Cooperman * + * . * **********************************************************************/ -#ifndef PARMARSHALEDOBJ_H -#define PARMARSHALEDOBJ_H +#ifndef MARSHALEDOBJ_H +#define MARSHALEDOBJ_H #include #include @@ -111,14 +124,14 @@ class MarshaledObj { char* msh_field_begin; // msh_size contains the total size of msh_buffer. i.e., - int msh_size; + size_t msh_size; // msh_cursor points to the next field to be marshaled. char *msh_cursor; // msh_extent is the total allocated space for msh_buffer. // msh_extent is always >= msh_size - int msh_extent; + size_t msh_extent; bool msh_isUnmarshalDone; //Is unmarshaling done yet? @@ -130,7 +143,7 @@ class MarshaledObj { } } - void resizeBuffer(int new_size ) { + void resizeBuffer(size_t new_size ) { int msh_displacement = msh_cursor - msh_buffer; int field_displacement = msh_field_begin - msh_buffer; diff --git a/examples/extended/parallel/ParN04/include/ParRunManager.hh b/examples/extended/parallel/ParN04/include/ParRunManager.hh index 25a2a66d7e..cb256789cb 100644 --- a/examples/extended/parallel/ParN04/include/ParRunManager.hh +++ b/examples/extended/parallel/ParN04/include/ParRunManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParRunManager.hh,v 1.3 2004/11/22 17:51:13 cooperma Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc index 349fc5903d..e2a9ea0a28 100644 --- a/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc index 77160a6ae3..312395d76a 100644 --- a/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.cc,v 1.2 2003/06/16 16:49:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc index 92f5d0bc60..7e6b7c545d 100644 --- a/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN04HadronPhysics.hh" diff --git a/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc index 5941180599..f5ce9ea04a 100644 --- a/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04IonPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc index 57171105ea..b7b3873a72 100644 --- a/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04MuonPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc b/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc index 276a470567..274f7e150e 100644 --- a/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc +++ b/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04PhysicsList.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04RunAction.cc b/examples/extended/parallel/ParN04/src/ExN04RunAction.cc index fc77d40785..1ded792440 100644 --- a/examples/extended/parallel/ParN04/src/ExN04RunAction.cc +++ b/examples/extended/parallel/ParN04/src/ExN04RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.cc,v 1.1 2003/12/03 14:32:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc b/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc index a4e760a545..2d63507c8e 100644 --- a/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc +++ b/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.1 2003/12/03 14:32:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/src/ParRunManager.cc b/examples/extended/parallel/ParN04/src/ParRunManager.cc index 230e2f41f1..4a5921d2b6 100644 --- a/examples/extended/parallel/ParN04/src/ParRunManager.cc +++ b/examples/extended/parallel/ParN04/src/ParRunManager.cc @@ -23,7 +23,11 @@ #ifdef G4USE_TOPC #include "G4Timer.hh" + + + #include "G4RunManager.hh" + #include "Randomize.hh" #include "G4Run.hh" #include "G4RunMessenger.hh" @@ -45,12 +49,14 @@ #include "G4VVisManager.hh" #include "ParRunManager.hh" -//vietha, include file for marshaling structures +//include file for marshaling structures #include "MarshaledG4HCofThisEvent.h" #include "G4ios.hh" -#include +#include // Geant4 8.x and beyond + +using namespace CLHEP; /* * The TopC call backs are implemented by using the 5 static data members to store @@ -77,6 +83,7 @@ TOPC_ACTION ParRunManager::MyCheckEventResult( void * input_buf, void *buf ) { static void trace_event_input( void *input ) { //G4cout << "Event " << *(G4int *)input << G4endl; + input = NULL; // Stop C++ from complaining about unused parameter } /* @@ -95,17 +102,19 @@ void ParRunManager::DoEventLoop( G4int n_event, const char* macroFile, G4int n_s return; #endif - if ( verboseLevel > 0 ) { timer->Start(); } - + if(verboseLevel>0) + { timer->Start(); } G4String msg; - if ( macroFile != 0 ) { - if ( n_select < 0 ) n_select = n_event; + if(macroFile!=0) + { + if(n_select<0) n_select = n_event; msg = "/control/execute "; msg += macroFile; - } else { - n_select = -1; } + else + { n_select = -1; } + // BeginOfEventAction() and EndOfEventAction() would normally be // called inside G4EventManager::ProcessOneEvent() in ParRunManager::DoEvent @@ -135,6 +144,7 @@ void ParRunManager::DoEventLoop( G4int n_event, const char* macroFile, G4int n_s // This is where all the parallelism occurs TOPC_raw_begin_master_slave(MyDoEvent, MyCheckEventResult, NULL); + if(TOPC_is_master()){ G4int i_event; for( i_event=0; i_eventSetNewState( G4State_EventProc ); + // stateManager->SetNewState(G4State_EventProc); - currentEvent = GenerateEvent( i_event ); - eventManager->ProcessOneEvent( currentEvent ); + currentEvent = GenerateEvent(i_event); + eventManager->ProcessOneEvent(currentEvent); G4HCofThisEvent* HCE = currentEvent->GetHCofThisEvent(); if(aMarshaledObj) delete aMarshaledObj; - aMarshaledObj = new MarshaledG4HCofThisEvent(HCE); - //stateManager->SetNewState( G4State_GeomClosed ); + // removed for Geant4.6 + //stateManager->SetNewState( G4State_GeomClosed ); StackPreviousEvent( currentEvent ); currentEvent = 0; return TOPC_MSG( aMarshaledObj->getBuffer(), aMarshaledObj->getBufferSize()); } - TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf ) { G4int i_event; @@ -196,9 +205,9 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf // removed for Geant4.6 //stateManager->SetNewState(G4State_EventProc); - // Geant4.6 requires the state to be G4State_GeomClosed + // Geant4 6.0 requires the state to be G4State_GeomClosed // before calling EventManager::ProcessOneEvent(..) - + if ( !userPrimaryGeneratorAction ) G4Exception("G4RunManager::BeamOn - G4VUserPrimaryGeneratorAction is not defined."); @@ -218,7 +227,7 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf MarshaledG4HCofThisEvent marshaledObj( output_buf ); G4HCofThisEvent* oldCE = currentEvent->GetHCofThisEvent(); G4HCofThisEvent* HCE = new G4HCofThisEvent(oldCE->GetNumberOfCollections()); - + marshaledObj.unmarshalTo(HCE); if(oldCE) delete(oldCE); @@ -232,11 +241,12 @@ TOPC_ACTION ParRunManager::CheckEventResult( void * input_buf, void *output_buf if ( origUserEventAction ) origUserEventAction->EndOfEventAction( currentEvent ); - AnalyzeEvent( currentEvent ); + AnalyzeEvent(currentEvent); - if ( i_event < n_select ) G4UImanager::GetUIpointer()->ApplyCommand( msg ); + if (i_eventApplyCommand(msg); + // Geant4 6.0 requires the state to be G4State_GeomClosed stateManager->SetNewState( G4State_GeomClosed ); - StackPreviousEvent( currentEvent ); + StackPreviousEvent(currentEvent); currentEvent = 0; return NO_ACTION; } diff --git a/examples/extended/parameterisations/History b/examples/extended/parameterisations/History new file mode 100644 index 0000000000..2d695eb067 --- /dev/null +++ b/examples/extended/parameterisations/History @@ -0,0 +1,22 @@ +$Id: History,v 1.1 2005/11/04 15:18:14 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Category History file + --------------------- +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +Nov 4th, 2005 J.Weng (exparam-V07-01-01) +-------------------- +- Added new example demonstrating usage 'gflash' shower parameterisation. diff --git a/examples/extended/parameterisations/gflash/ExGflash.cc b/examples/extended/parameterisations/gflash/ExGflash.cc new file mode 100644 index 0000000000..4532bdd95e --- /dev/null +++ b/examples/extended/parameterisations/gflash/ExGflash.cc @@ -0,0 +1,132 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Created by Joanna Weng 26.11.2004 +using namespace std; + + +//std includes +#include +#include +#include "G4Timer.hh" +// G4 includes +#include "G4ios.hh" +#include "G4GlobalFastSimulationManager.hh" +#include "G4Timer.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" + +// my project +#include "ExGflashDetectorConstruction.hh" +#include "ExGflashPhysicsList.hh" +#include "ExGflashPrimaryGeneratorAction.hh" +#include "ExGflashEventAction.hh" +#include "ExGflashRunAction.hh" + +#ifdef G4VIS_USE +#include "ExGflashVisManager.hh" +#endif + +#ifdef G4_SOLVE_TEMPLATES +#ifdef G4VIS_USE +#define G4_SOLVE_VIS_TEMPLATES +#endif +#endif +G4Timer Timer; +G4Timer Timerintern; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) +{ + // Timer to see GFlash performance + Timer.Start(); + + cout<<"+-------------------------------------------------------+"<SetUserInitialization(new ExGflashDetectorConstruction); + cout<<"# GFlash Example: Physics list"<SetUserInitialization(new ExGflashPhysicsList); + cout<<"# GFlash Example: Primary Generator"<SetUserAction(new ExGflashPrimaryGeneratorAction); + cout<<"# GFlash Example: User Action Classes"<SetUserAction(new ExGflashEventAction); + runManager->SetUserAction(new ExGflashRunAction); + + #ifdef G4VIS_USE + G4VisManager* visManager = new ExGflashVisManager; + visManager->Initialize(); + #endif + + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/run/verbose 0"); + runManager->Initialize(); + UI->ApplyCommand("/Step/Verbose 0"); + + if (argc==1) // Define UI terminal for interactive mode + { + G4UIsession * session = new G4UIterminal(new G4UItcsh); + UI->ApplyCommand("/control/execute vis.mac"); + session->SessionStart(); + //delete session; + } + else // Batch mode + { + G4String s=*(argv+1); + UI->ApplyCommand("/control/execute "+s); + } + + #ifdef G4VIS_USE + delete visManager; + #endif + delete runManager; + + Timer.Stop(); + cout << endl; + cout << "******************************************"; + cout << endl; + cout << "Total Real Elapsed Time is: "<< Timer.GetRealElapsed(); + cout << endl; + cout << "Total System Elapsed Time: " << Timer.GetSystemElapsed(); + cout << endl; + cout << "Total GetUserElapsed Time: " << Timer.GetUserElapsed(); + cout << endl; + cout << "******************************************"; + cout << endl; + + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + + diff --git a/examples/extended/parameterisations/gflash/GNUmakefile b/examples/extended/parameterisations/gflash/GNUmakefile new file mode 100644 index 0000000000..6de6a18c69 --- /dev/null +++ b/examples/extended/parameterisations/gflash/GNUmakefile @@ -0,0 +1,19 @@ +# $Id: GNUmakefile,v 1.1 2004/11/26 16:33:18 hpw Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := ExGflash +G4TARGET := $(name) +G4EXLIB := true + + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin +include $(G4INSTALL)/config/architecture.gmk +include $(G4INSTALL)/config/binmake.gmk + diff --git a/examples/extended/parameterisations/gflash/History b/examples/extended/parameterisations/gflash/History new file mode 100644 index 0000000000..c5cb8e6b9d --- /dev/null +++ b/examples/extended/parameterisations/gflash/History @@ -0,0 +1,27 @@ +$Id: History,v 1.3 2005/12/01 18:27:45 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + History file + ------------ +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +Dec 1st, 2005 G.Cosmo (exgflash-V07-01-00) +--------------------- +- Adapted to new gflash redesign. Coworks with "gflash-V07-01-02". + +Nov 4th, 2005 J.Weng +-------------------- +- New example demonstrating usage 'gflash' shower parameterisation. + diff --git a/examples/extended/parameterisations/gflash/README b/examples/extended/parameterisations/gflash/README new file mode 100644 index 0000000000..3810668573 --- /dev/null +++ b/examples/extended/parameterisations/gflash/README @@ -0,0 +1,69 @@ +$README, v 1.0 26.11.2004 Joanna Weng $ +------------------------------------------------------------------- + + + + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + GFLASH Example + ---------- + +This examples demonstrates the use of the GFLASH parameterisation library. +It uses the GFLASH equations(hep-ex/0001020, Grindhammer & Peters) +to parametrise electromagnetic showers in matter. +In this example the calorimeter is a simple cube, +which consists of 10 x 10 crystals of PbWO4 (CMS like:). +The Geant4 shower framework is used (see novice example N05) +Geometry, sensitive detector, hits, processes are defined respectively in: + + ExGflashDetectorConstruction + ExGflashSensitiveDetector + ExGflashHit + ExGflashPhysicsList + +Briefly, whenever a e-/e+ enters the calorimeter, it is parametrised if it +has a minimum energy and the shower is expected to be contained +in the calorimeter(so called " parameterisation envelope"). +If this is fullfilled the particle is killed, as well as all secondaries, +and the energy is deposited according to the GFLASH equations. +The example shows how to interface GFLASH to your application. +The simulation time is measured, so the user can see immiadiatly +the speed up by using GFLASH. + + +To use GFLASH the user has to implement the following to use GFLASH: + + o ExGflashPhysicsList::AddParameterisation(): + the paraameterisation has to be added to the processmanager. + Don't forget it, since than gflash is never triggered. + + o ExGflashDetectorConstruction : + Here GFLASH has to be initialized and assigend to the enelope, + where it should be active (here our calorimeter = m_calo_log ) + /********************************************** + * Initializing shower modell + ***********************************************/ + cout<<"Shower parameterization"<getMaterial(mat)); + m_theFastShowerModel->SetParametrisation(*m_theParametrisation); + m_theFastShowerModel->SetParticleBounds(*m_theParticleBounds) ; + m_theFastShowerModel->SetHitMaker(*m_theHMaker); + cout<<"end shower parameterization"< ExGflashHitsCollection; + +extern G4Allocator ExGflashHitAllocator; + +inline void* ExGflashHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExGflashHitAllocator.MallocSingle(); + return aHit; +} + +inline void ExGflashHit::operator delete(void *aHit) +{ + ExGflashHitAllocator.FreeSingle((ExGflashHit*) aHit); +} + +#endif + + + + + diff --git a/examples/extended/parameterisations/gflash/include/ExGflashHitsCollection.hh b/examples/extended/parameterisations/gflash/include/ExGflashHitsCollection.hh new file mode 100644 index 0000000000..4b52eaca8b --- /dev/null +++ b/examples/extended/parameterisations/gflash/include/ExGflashHitsCollection.hh @@ -0,0 +1,28 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +#ifndef ExGflashHitsCollection_h +#define ExGflashHitsCollection_h +#include "G4THitsCollection.hh" +class ExGflashHit; +typedef G4THitsCollection ExGflashHitsCollection; +#endif diff --git a/examples/advanced/radioprotection/include/RemSimInterplanetarySpaceConfiguration.hh b/examples/extended/parameterisations/gflash/include/ExGflashMaterialManager.hh similarity index 59% rename from examples/advanced/radioprotection/include/RemSimInterplanetarySpaceConfiguration.hh rename to examples/extended/parameterisations/gflash/include/ExGflashMaterialManager.hh index 7e29aae5a1..2785499d64 100644 --- a/examples/advanced/radioprotection/include/RemSimInterplanetarySpaceConfiguration.hh +++ b/examples/extended/parameterisations/gflash/include/ExGflashMaterialManager.hh @@ -20,49 +20,46 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: RemSimInterplanetarySpaceConfiguration.hh,v 1.9 2005/05/19 13:30:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// Author : Susanna Guatelli, guatelli@ge.infn.it -// +#ifndef MATERIALMANAGER_H +#define MATERIALMANAGER_H -#ifndef RemSimInterplanetarySpaceConfiguration_h -#define RemSimInterplanetarySpaceConfiguration_h 1 +using namespace std; +#include "G4Element.hh" +#include "G4Material.hh" -#include "RemSimVPrimaryGeneratorFactory.hh" -#include "globals.hh" -#include "G4DataVector.hh" -class G4ParticleGun; -class G4Event; -class RemSimRunAction; +#include +#include -class RemSimInterplanetarySpaceConfiguration : -public RemSimVPrimaryGeneratorFactory -{ -public: - RemSimInterplanetarySpaceConfiguration(); - ~RemSimInterplanetarySpaceConfiguration(); +typedef map< G4String, G4Element*, less > ElementList; +typedef map< G4String, G4Material*, less > MaterialList; -public: - void GeneratePrimaries(G4Event* anEvent); - void MoonConfiguration(); - G4double GetInitialEnergy(); - void SetMoon(G4bool); - void Read(G4String); - void ReadData(G4double, G4String); - G4double GetPrimaryParticleEnergyDistributionSum(); + + +class ExGflashMaterialManager { private: - G4ParticleGun* particleGun; - G4String spectrum; - G4double energy; - G4bool moon; - G4DataVector* energies; - G4DataVector* data; - + ElementList elist; + MaterialList mlist; + ExGflashMaterialManager() {initialize();} + static ExGflashMaterialManager *mpointer; +public: + static ExGflashMaterialManager* GetMaterialManager() + { + if (!mpointer) + mpointer=new ExGflashMaterialManager; + return mpointer; + } + void storeElement(G4String, G4String, double, double); + G4Element* getElement(G4String); + void storeMaterial(G4String, double, double, double); + void storeMaterial(G4String, double, int); + G4Material* getMaterial(G4String); + void addMaterial(G4String,G4String,double); + void addElement(G4String,G4String,double); + void addElement(G4String,G4String,int); + void printElementTable(); + void printMaterialTable(); + void initialize(); }; #endif - - diff --git a/examples/extended/parameterisations/gflash/include/ExGflashPhysicsList.hh b/examples/extended/parameterisations/gflash/include/ExGflashPhysicsList.hh new file mode 100644 index 0000000000..0335c1a764 --- /dev/null +++ b/examples/extended/parameterisations/gflash/include/ExGflashPhysicsList.hh @@ -0,0 +1,65 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +#ifndef ExGflashPhysicsList_h +#define ExGflashPhysicsList_h 1 +using namespace std; + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +class ExGflashPhysicsList: public G4VUserPhysicsList +{ +public: + ExGflashPhysicsList(); + virtual ~ExGflashPhysicsList(); + +protected: + // Construct particle and physics + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + // + virtual void SetCuts(); + +protected: + // these methods Construct particles + virtual void ConstructBosons(); + virtual void ConstructLeptons(); + virtual void ConstructMesons(); + virtual void ConstructBaryons(); + virtual void ConstructIons(); + +protected: + // these methods Construct physics processes and register them + void AddParameterisation(); + + virtual void ConstructGeneral(); + virtual void ConstructEM(); + + virtual void AddTransportation(); +}; + +#endif + + + diff --git a/examples/extended/parameterisations/gflash/include/ExGflashPrimaryGeneratorAction.hh b/examples/extended/parameterisations/gflash/include/ExGflashPrimaryGeneratorAction.hh new file mode 100644 index 0000000000..5e40ad8cf6 --- /dev/null +++ b/examples/extended/parameterisations/gflash/include/ExGflashPrimaryGeneratorAction.hh @@ -0,0 +1,47 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +#ifndef ExGflashPrimaryGeneratorAction_h +#define ExGflashPrimaryGeneratorAction_h + +#include "G4ThreeVector.hh" +#include "G4GeneralParticleSource.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "G4VUserPrimaryGeneratorAction.hh" + +class G4Event; + +class ExGflashPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { + +public: + ExGflashPrimaryGeneratorAction(); + ~ExGflashPrimaryGeneratorAction(); + void GeneratePrimaries(G4Event* anEvent); + +private: + G4GeneralParticleSource * particleGun; +}; + +#endif + + diff --git a/physics_lists/hadronic/Packaging/include/EMPhysics.hh b/examples/extended/parameterisations/gflash/include/ExGflashRunAction.hh similarity index 78% rename from physics_lists/hadronic/Packaging/include/EMPhysics.hh rename to examples/extended/parameterisations/gflash/include/ExGflashRunAction.hh index e64cce936b..c0a969bacc 100644 --- a/physics_lists/hadronic/Packaging/include/EMPhysics.hh +++ b/examples/extended/parameterisations/gflash/include/ExGflashRunAction.hh @@ -20,34 +20,28 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef EMPhysics_h -#define EMPhysics_h 1 - +#ifndef ExGflashRunAction_h +#define ExGflashRunAction_h +using namespace std; +#include "G4UserRunAction.hh" #include "globals.hh" -#include "G4ios.hh" -#include "G4VPhysicsConstructor.hh" -#include "G4EMBuilder.hh" -class EMPhysics : public G4VPhysicsConstructor +class G4Run; + +class ExGflashRunAction : public G4UserRunAction { - public: - EMPhysics(const G4String& name ="EM"); - virtual ~EMPhysics(); - - public: - virtual void ConstructParticle(); - virtual void ConstructProcess(); - + public: + + + ExGflashRunAction(); + ~ExGflashRunAction(); + void BeginOfRunAction(const G4Run* aRun); + void EndOfRunAction(const G4Run* aRun); + void setRunID (int i) {runID=i;}; private: - G4EMBuilder theEMPhysics; + G4int runID; }; -// 2002 by J.P. Wellisch #endif - - - - - diff --git a/examples/extended/parameterisations/gflash/include/ExGflashSensitiveDetector.hh b/examples/extended/parameterisations/gflash/include/ExGflashSensitiveDetector.hh new file mode 100644 index 0000000000..ab2690e09f --- /dev/null +++ b/examples/extended/parameterisations/gflash/include/ExGflashSensitiveDetector.hh @@ -0,0 +1,50 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +#ifndef TILE05SENSITIVEDETECTOR_H +#define TILE05SENSITIVEDETECTOR_H + +using namespace std; +#include "G4VSensitiveDetector.hh" +#include "G4VGFlashSensitiveDetector.hh" +#include "G4GFlashSpot.hh" +#include "ExGflashDetectorConstruction.hh" +#include "ExGflashHitsCollection.hh" +#include "globals.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; +class ExGflashSensitiveDetector: public G4VSensitiveDetector ,public G4VGFlashSensitiveDetector{ +public: + ExGflashSensitiveDetector(G4String, ExGflashDetectorConstruction* det); + ~ExGflashSensitiveDetector(); + + void Initialize(G4HCofThisEvent*); + G4bool ProcessHits(G4Step*,G4TouchableHistory*); + G4bool ProcessHits(G4GFlashSpot*aSpot,G4TouchableHistory*); + void EndOfEvent(G4HCofThisEvent*); +private: + ExGflashHitsCollection* caloHitsCollection; + G4double edep; + ExGflashDetectorConstruction* Detector; +}; +#endif diff --git a/examples/novice/N05/include/RandomGamma.hh b/examples/extended/parameterisations/gflash/include/ExGflashVisManager.hh similarity index 85% rename from examples/novice/N05/include/RandomGamma.hh rename to examples/extended/parameterisations/gflash/include/ExGflashVisManager.hh index 5825bc5cb8..7dc7a15fed 100644 --- a/examples/novice/N05/include/RandomGamma.hh +++ b/examples/extended/parameterisations/gflash/include/ExGflashVisManager.hh @@ -20,16 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// ----------------------------------- -// Header file for RandomGamma: -// adaptation of RNGAMA function from -// KERNLIB -// ----------------------------------- +#ifndef ExGflashVisManager_h +#define ExGflashVisManager_h +using namespace std; +#include "G4VisManager.hh" - -#ifndef RandomGamma_h -#define RanfomGamma_h 1 - -extern double RandomGamma(double); +class ExGflashVisManager: public G4VisManager { +public: + ExGflashVisManager (); +private: + void RegisterGraphicsSystems (); +}; #endif diff --git a/examples/extended/parameterisations/gflash/src/ExGflashDetectorConstruction.cc b/examples/extended/parameterisations/gflash/src/ExGflashDetectorConstruction.cc new file mode 100644 index 0000000000..50ee968e5a --- /dev/null +++ b/examples/extended/parameterisations/gflash/src/ExGflashDetectorConstruction.cc @@ -0,0 +1,230 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Created by Joanna Weng 26.11.2004 +#include +// G4 Classes +#include "globals.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4VisAttributes.hh" +#include "G4Box.hh" +#include "G4SDManager.hh" +#include "G4Material.hh" +#include "G4GeometryManager.hh" +#include "G4PhysicalVolumeStore.hh" +#include "G4LogicalVolumeStore.hh" +#include "G4SolidStore.hh" +#include "G4Colour.hh" + +// User Classes +#include "ExGflashDetectorConstruction.hh" +#include "ExGflashSensitiveDetector.hh" +#include "ExGflashMaterialManager.hh" +//fast simulation +#include "GFlashHomoShowerParameterisation.hh" +#include "G4FastSimulationManager.hh" +#include "GFlashShowerModel.hh" +#include "GFlashHitMaker.hh" +#include "GFlashParticleBounds.hh" + + +ExGflashDetectorConstruction::ExGflashDetectorConstruction() +:m_experimentalHall_log(0), +m_calo_log(0), +m_experimentalHall_phys(0), +m_calo_phys(0) +{ + cout<<"ExGflashDetectorConstruction::Detector constructor"<getMaterial("Air"), //its material + "expHall_log", // its name + 0, //opt: fieldManager + 0, //opt: SensitiveDetector + 0); //opt: UserLimits + m_experimentalHall_phys = new G4PVPlacement(0, //no rotation + G4ThreeVector(), //at (0,0,0) + "expHall", //its name + m_experimentalHall_log, //its logical volume + 0, //its mother volume + false, //no boolean operation + 0); //copy number + + + //------------------------------ + // Calorimeter segments + //------------------------------ + // Simplified `CMS-like` PbWO4 crystal calorimeter + + m_NbOfCrystals = 10; // this are the crystals PER ROW in this example + // cube of 10 x 10 crystals + // don't change it @the moment, since + // the readout in event action assumes this + // dimensions and is not automatically adapted + // in this version of the example :-( + m_CrystalWidht = 3*cm; + m_CrystalLenght= 24*cm; + m_calo_xside=(m_CrystalWidht*m_NbOfCrystals)+1*cm; + m_calo_yside=(m_CrystalWidht*m_NbOfCrystals)+1*cm;; + m_calo_zside=m_CrystalLenght; + + G4Box *calo_box= new G4Box("CMS calorimeter", //its name + m_calo_xside/2., //size + m_calo_yside/2., + m_calo_zside/2.); + m_calo_log = new G4LogicalVolume(calo_box, //its solid + matManager->getMaterial("Air"), //its material + "calo log", //its name + 0, //opt: fieldManager + 0, //opt: SensitiveDetector + 0); //opt: UserLimit + + G4double Xpos = 0.0; + G4double Ypos = 0.0; + G4double Zpos = 100.0*cm; + + m_calo_phys = new G4PVPlacement(0, //no rotation + G4ThreeVector(Xpos,Ypos,Zpos), //at (0,0,0) + m_calo_log, //its logical volume + "calorimeter", //its name + m_experimentalHall_log, //its mother volume + false, //no boolean operation + 1); + //Visibility + for (int i=0; igetMaterial(mat), //its material + "Crystal_log"); //its name + + m_crystal_phys[n] = new G4PVPlacement(0, //no rotation + G4ThreeVector((i*m_CrystalWidht)-135,(j*m_CrystalWidht)-135,0 ), //at (0,0,0) + m_crystal_log[n], //its logical volume + "crystal", //its name + m_calo_log, //its mother volume + false, //no boolean operation + 1); //Visibility + } + } + cout << "There are " << m_NbOfCrystals << " crystals per row in the calorimeter, so in total "<< + m_NbOfCrystals*m_NbOfCrystals << " crystals" << endl; + cout << "The have widthof " << m_CrystalWidht /cm << " cm and a lenght of " << m_CrystalLenght /cm + <<" cm. The Material is "<< matManager->getMaterial(mat) << endl; + + // Sensitive Detector part + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + ExGflashSensitiveDetector* CaloSD= + new ExGflashSensitiveDetector("Calorimeter",this); + SDman->AddNewDetector(CaloSD); + + m_experimentalHall_log->SetVisAttributes(G4VisAttributes::Invisible); + G4VisAttributes* CaloVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + G4VisAttributes* CrystalVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); + m_calo_log->SetVisAttributes(CaloVisAtt); + for (int i=0; i<100;i++) + { + m_crystal_log[i]->SetVisAttributes(CrystalVisAtt); + m_crystal_log[i]->SetSensitiveDetector(CaloSD); + } + // define the parameterisation region + aRegion = new G4Region("crystals"); + m_calo_log->SetRegion(aRegion); + aRegion->AddRootLogicalVolume(m_calo_log); + + + /********************************************** + * Initializing shower modell + ***********************************************/ + cout<<"Shower parameterization"<getMaterial(mat)); + m_theFastShowerModel->SetParameterisation(*m_theParameterisation); + m_theFastShowerModel->SetParticleBounds(*m_theParticleBounds) ; + m_theFastShowerModel->SetHitMaker(*m_theHMaker); + cout<<"end shower parameterization"< +#include +//Gflash + + +#include "G4Timer.hh" +extern G4Timer Timer; +extern G4Timer Timerintern; + + + +ExGflashEventAction::ExGflashEventAction(): +nevent(0),dtime(0.0),calorimeterCollectionId(-1) +{ +} + +ExGflashEventAction::~ExGflashEventAction() +{ + cout << "Internal Real Elapsed Time /event is: "<< dtime /nevent<< endl; +} + + +void ExGflashEventAction::BeginOfEventAction(const G4Event *evt){ + Timerintern.Start(); + cout<<" ------ Start ExGflashEventAction ----- "<GetEventID(); + cout<<" Start generating event Nr "<GetCollectionID(colNam="ExGflashCollection"); + if (calorimeterCollectionId<0) return; + G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); + ExGflashHitsCollection* THC = 0; + G4double totE = 0; + // Read out of the crysta ECAL + THC=(ExGflashHitsCollection *)(HCE->GetHC(calorimeterCollectionId)); + if (THC) { + /// Hits in sensitive Detector + int n_hit = THC->entries(); + cout<<" " << n_hit<< " hits are stored in ExGflashHitsCollection "<GetPrimaryVertex(); + ///Computing (x,y,z) of vertex of initial particles + G4ThreeVector vtx=pvertex->GetPosition(); + G4PrimaryParticle* pparticle=pvertex->GetPrimary(); + // direction of the Shower + G4ThreeVector mom=pparticle->GetMomentum()/pparticle->GetMomentum().mag(); + + //@@@ ExGflashEventAction: Magicnumber + G4double energyincrystal[100]; + for (int i=0;i<100;i++) energyincrystal[i]=0.; + + //@@@ ExGflashEventAction: Magicnumber + /// For all Hits in sensitive detector + for (int i=0;iGetEdep()/GeV; + if (estep >0.0) + { + totE += (*THC)[i]->GetEdep()/GeV; + G4int num=(*THC)[i]->GetCrystalNum(); + + energyincrystal[num]+=(*THC)[i]->GetEdep()/GeV; + //std::cout << num << std::endl; + //@@@ExGflashEventAction: was bringen die namespace statt using namespace std ? + // std::cout << " Crystal Nummer " << (*THC)[i]->GetCrystalNum() << std::endl; + // std::cout << (*THC)[i]->GetCrystalNum() /10 << " "<<(*THC)[i]->GetCrystalNum()%10 << std::endl; + + G4ThreeVector hitpos=(*THC)[i]->GetPos(); + G4ThreeVector l (hitpos.x(), hitpos.y(), hitpos.z()); + // distance from shower start + l = l - vtx; + // projection on shower axis = longitudinal profile + G4ThreeVector longitudinal = l; + // shower profiles (Radial) + G4ThreeVector radial = vtx.cross(l); + } + } + G4double max=0; + G4int index=0; + //Find crystal with maximum energy + for (int i=0;i<100;i++) + { + //std::cout << i <<" " << energyincrystal[i] << std::endl; + if (max GetTrajectoryContainer(); + G4int n_trajectories = 0; + if(trajectoryContainer){ n_trajectories = trajectoryContainer->entries(); } + G4cout << " " << n_trajectories << " trajectories stored in this event." << endl; + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + + if(pVVisManager) + { + cout << "DRAWING " <GetTrajectoryContainer()))[i]->DrawTrajectory(50); } + } + +} + + + + + + + + + + + + diff --git a/examples/advanced/radioprotection/src/RemSimHit.cc b/examples/extended/parameterisations/gflash/src/ExGflashHit.cc similarity index 59% rename from examples/advanced/radioprotection/src/RemSimHit.cc rename to examples/extended/parameterisations/gflash/src/ExGflashHit.cc index c3d180daa6..8869eaf773 100644 --- a/examples/advanced/radioprotection/src/RemSimHit.cc +++ b/examples/extended/parameterisations/gflash/src/ExGflashHit.cc @@ -21,64 +21,84 @@ // ******************************************************************** // -#include "RemSimHit.hh" +#include "ExGflashHit.hh" + #include "G4VVisManager.hh" -#include "G4Circle.hh" #include "G4Colour.hh" #include "G4VisAttributes.hh" -#include "G4UnitsTable.hh" +#include "G4LogicalVolume.hh" #include "G4ios.hh" -G4Allocator RemSimHitAllocator; -RemSimHit::RemSimHit() +G4AllocatorExGflashHitAllocator; + +ExGflashHit::ExGflashHit() +{pLogV=NULL;} + +ExGflashHit::ExGflashHit(G4LogicalVolume* logVol) +:pLogV(logVol) {;} -RemSimHit::~RemSimHit() +ExGflashHit::~ExGflashHit() {;} -RemSimHit::RemSimHit(const RemSimHit &right) - : G4VHit() +ExGflashHit::ExGflashHit(const ExGflashHit &right) +:G4VHit() +//@@@ ExGflashHit:Is it right with the init? { edep = right.edep; - zID = right.zID; - position = right.position; + pos = right.pos; + start =right.start; + rot = right.rot; + pLogV = right.pLogV; + crystalnumber = right.crystalnumber; } -const RemSimHit& RemSimHit::operator=(const RemSimHit &right) +const ExGflashHit & ExGflashHit::operator=(const ExGflashHit &right) { edep = right.edep; - zID = right.zID; - position = right.position; + start =right.start; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; + crystalnumber = right.crystalnumber; + crystalnumber = right.crystalnumber; return *this; } -G4int RemSimHit::operator==(const RemSimHit &right) const +int ExGflashHit::operator==(const ExGflashHit &right) const { - return (this==&right) ? 1 : 0; +// @@@@ return 0; + if ((pos==right.pos) && (edep == right.edep)) return true; + else return false; + } -void RemSimHit::Draw() +void ExGflashHit::Draw() { G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); if(pVVisManager) { - G4Circle circle(position); - circle.SetScreenSize(4.); - circle.SetFillStyle(G4Circle::filled); + G4Transform3D trans(rot,pos); + G4VisAttributes attribs; + const G4VisAttributes* pVA = pLogV->GetVisAttributes(); + if(pVA) attribs = *pVA; G4Colour colour(1.,0.,0.); - G4VisAttributes attribs(colour); - circle.SetVisAttributes(attribs); - pVVisManager->Draw(circle); + attribs.SetColour(colour); + attribs.SetForceWireframe(false); + attribs.SetForceSolid(true); + pVVisManager->Draw(*pLogV,attribs,trans); } } -void RemSimHit::Print() -{ - G4cout<< - "Hit in Astronaut:" - << G4BestUnit(edep, "Energy") - << " in position: " - << G4BestUnit(position, "Length") <AddMaterial(getMaterial(n2),fraction); +} + +void ExGflashMaterialManager::addElement(G4String n1,G4String n2,double fraction) +{ + G4Material *mat=getMaterial(n1); + mat->AddElement(getElement(n2),fraction); +} + +void ExGflashMaterialManager::addElement(G4String n1,G4String n2,int natoms) +{ + G4Material *mat=getMaterial(n1); + mat->AddElement(getElement(n2),natoms); +} + +void ExGflashMaterialManager::printMaterialTable() +{ + MaterialList::iterator it; + for (it=mlist.begin();it!=mlist.end();it++) cout<<(*it).second< + +#include "G4FastSimulationManagerProcess.hh" + + +ExGflashPhysicsList::ExGflashPhysicsList(): G4VUserPhysicsList() +{ + SetVerboseLevel(0); +} + +ExGflashPhysicsList::~ExGflashPhysicsList() +{ +} + +void ExGflashPhysicsList::ConstructParticle() +{ + // In this method, static member functions should be called + // for all particles which you want to use. + // This ensures that objects of these particle types will be + // created in the program. + + std::cout<<"start construct particle"<reset(); + while( (*theParticleIterator)() ){ + // G4ParticleDefinition* particle = theParticleIterator->value(); + //G4ProcessManager* pmanager = particle->GetProcessManager(); +// pmanager->AddDiscreteProcess(new MaxTimeCuts()); +// pmanager->AddDiscreteProcess(new MinEkineCuts()); + // pmanager->AddDiscreteProcess(new ExN05MinEkineCuts()); + + /// pmanager->AddDiscreteProcess(new MinRangeCuts()); + } +} + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4UserLimits.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +void ExGflashPhysicsList::ConstructEM() +{ + + cout<<"Physics List constructor"<reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + // Construct processes for gamma + G4VProcess* theGammaConversion = new G4GammaConversion(); + G4VProcess* theComptonScattering = new G4ComptonScattering(); + G4VProcess* thePhotoElectricEffect = new G4PhotoElectricEffect(); + // G4VProcess* thegammacut = new G4UserLimits(); + // thegammacut->SetUserMinEkine(1.0*MeV); + + pmanager->AddDiscreteProcess(theGammaConversion); + pmanager->AddDiscreteProcess(theComptonScattering); + pmanager->AddDiscreteProcess(thePhotoElectricEffect); + // pmanager->AddProcess(thegammacut); + // G4cout <<"theGammaConversion" << theGammaConversion <SetUserMinEkine(1.0*MeV); + // add processes + pmanager->AddProcess(theeminusMultipleScattering); + pmanager->AddProcess(theeminusIonisation); + pmanager->AddProcess(theeminusBremsstrahlung); + + // pmanager->AddProcess( theeminuscut); + + + + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(theeminusMultipleScattering, idxAlongStep, 1); + pmanager->SetProcessOrdering(theeminusIonisation, idxAlongStep, 2); + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep, 1); + pmanager->SetProcessOrdering(theeminusIonisation, idxPostStep, 2); + pmanager->SetProcessOrdering(theeminusBremsstrahlung, idxPostStep, 3); + + //G4cout <<"theeminusMultipleScattering" << theeminusMultipleScattering <AddProcess(theeplusMultipleScattering); + pmanager->AddProcess(theeplusIonisation); + pmanager->AddProcess(theeplusBremsstrahlung); + pmanager->AddProcess(theeplusAnnihilation); + // set ordering for AtRestDoIt + pmanager->SetProcessOrderingToFirst(theeplusAnnihilation, idxAtRest); + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(theeplusMultipleScattering, idxAlongStep, 1); + pmanager->SetProcessOrdering(theeplusIonisation, idxAlongStep, 2); + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(theeplusMultipleScattering, idxPostStep, 1); + pmanager->SetProcessOrdering(theeplusIonisation, idxPostStep, 2); + pmanager->SetProcessOrdering(theeplusBremsstrahlung, idxPostStep, 3); + pmanager->SetProcessOrdering(theeplusAnnihilation, idxPostStep, 4); + + //G4cout <<"theeplusMultipleScattering" << theeplusMultipleScattering <AddProcess(anIonisation); + pmanager->AddProcess(aMultipleScattering); + pmanager->AddProcess(aBremsstrahlung); + pmanager->AddProcess(aPairProduction); + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep, 1); + pmanager->SetProcessOrdering(anIonisation, idxAlongStep, 2); + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep, 1); + pmanager->SetProcessOrdering(anIonisation, idxPostStep, 2); + pmanager->SetProcessOrdering(aBremsstrahlung, idxPostStep, 3); + pmanager->SetProcessOrdering(aPairProduction, idxPostStep, 4); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + // all others charged particles except geantino + G4VProcess* aMultipleScattering = new G4MultipleScattering(); + G4VProcess* anIonisation = new G4hIonisation(); + // add processes + pmanager->AddProcess(anIonisation); + pmanager->AddProcess(aMultipleScattering); + // set ordering for AlongStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep, 1); + pmanager->SetProcessOrdering(anIonisation, idxAlongStep, 2); + // set ordering for PostStepDoIt + pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep, 1); + pmanager->SetProcessOrdering(anIonisation, idxPostStep, 2); + } + } +} + + +#include "G4Decay.hh" +void ExGflashPhysicsList::ConstructGeneral() +{ + // Add Decay Process + G4Decay* theDecayProcess = new G4Decay(); + //G4cout << "decay" <reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (theDecayProcess->IsApplicable(*particle)) { + pmanager ->AddProcess(theDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); + } + } +} + +// WARNING: This methode is mandatory if U want to use GFLASH +void ExGflashPhysicsList::AddParameterisation() +{ + G4FastSimulationManagerProcess* + theFastSimulationManagerProcess = + new G4FastSimulationManagerProcess(); + G4cout << "FastSimulationManagerProcess" <reset(); + //std::cout<<"---"<value(); + // std::cout<<"--- particle "<GetParticleName()<GetProcessManager(); + // both postStep and alongStep action are required: because + // of the use of ghost volumes. If no ghost, the postStep + // is sufficient. + pmanager->AddProcess(theFastSimulationManagerProcess, -1, 1, 1); + } +} + +void ExGflashPhysicsList::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "ExGflashPhysicsList::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + DumpCutValuesTable(); + SetCutsWithDefault(); + // SetCutValue(100*mm, "gamma"); +// SetCutValue(0*mm, "e-"); +// SetCutValue(0*mm, "e+"); + +// SetCutValue(62*mm, "gamma"); +// SetCutValue(0.73*mm, "e-"); +// SetCutValue(0.78*mm, "e+"); + + + + + + DumpCutValuesTable(); +} + + + + + + + + + diff --git a/physics_lists/hadronic/LHEP_GN/include/LHEP_GN.hh b/examples/extended/parameterisations/gflash/src/ExGflashPrimaryGeneratorAction.cc similarity index 76% rename from physics_lists/hadronic/LHEP_GN/include/LHEP_GN.hh rename to examples/extended/parameterisations/gflash/src/ExGflashPrimaryGeneratorAction.cc index a34ffd51c8..477d9a443c 100644 --- a/physics_lists/hadronic/LHEP_GN/include/LHEP_GN.hh +++ b/examples/extended/parameterisations/gflash/src/ExGflashPrimaryGeneratorAction.cc @@ -20,33 +20,24 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef TLHEP_GN_h -#define TLHEP_GN_h 1 +#include "ExGflashPrimaryGeneratorAction.hh" -#include "G4VModularPhysicsList.hh" +#include "G4Event.hh" #include "globals.hh" -#include "CompileTimeConstraints.hh" +#include "Randomize.hh" +#include "G4ios.hh" -template -class TLHEP_GN: public T +ExGflashPrimaryGeneratorAction::ExGflashPrimaryGeneratorAction() { -public: - TLHEP_GN(); - virtual ~TLHEP_GN(); - -public: - // SetCuts() - virtual void SetCuts(); -private: - enum {ok = CompileTimeConstraints::IsA::ok }; - -}; -#include "LHEP_GN.icc" -typedef TLHEP_GN LHEP_GN; - -// 2002 by J.P. Wellisch - -#endif - + particleGun=new G4GeneralParticleSource; +} +ExGflashPrimaryGeneratorAction::~ExGflashPrimaryGeneratorAction() +{ + delete particleGun; +} +void ExGflashPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/parameterisations/gflash/src/ExGflashRunAction.cc b/examples/extended/parameterisations/gflash/src/ExGflashRunAction.cc new file mode 100644 index 0000000000..bbf73d4236 --- /dev/null +++ b/examples/extended/parameterisations/gflash/src/ExGflashRunAction.cc @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +#include "ExGflashRunAction.hh" +#include "G4Run.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + + + + +ExGflashRunAction::ExGflashRunAction(): runID(0) +{ +} + + +ExGflashRunAction::~ExGflashRunAction() +{ +} + + +void ExGflashRunAction::BeginOfRunAction(const G4Run* aRun) +{ + ((G4Run *)(aRun))->SetRunID(runID++); + + std::cout << "### Run " << aRun->GetRunID() << " start." << std::endl; + + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } +} + + +void ExGflashRunAction::EndOfRunAction(const G4Run* aRun) +{ + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } + + G4cout << "number of event = " << aRun->GetNumberOfEvent() << G4endl; + +} + + + + + + + + + + + diff --git a/examples/extended/parameterisations/gflash/src/ExGflashSensitiveDetector.cc b/examples/extended/parameterisations/gflash/src/ExGflashSensitiveDetector.cc new file mode 100644 index 0000000000..d1dfa4bd57 --- /dev/null +++ b/examples/extended/parameterisations/gflash/src/ExGflashSensitiveDetector.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// Created by Joanna Weng 26.11.2004 +#include "ExGflashSensitiveDetector.hh" +#include "ExGflashHitsCollection.hh" +#include "ExGflashHit.hh" +#include "G4VPhysicalVolume.hh" +#include "G4Step.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4SDManager.hh" +#include + +//WARNING : You have to use also G4VGFlashSensitiveDetector() as base class +ExGflashSensitiveDetector::ExGflashSensitiveDetector(G4String name, ExGflashDetectorConstruction* det): +G4VSensitiveDetector(name), G4VGFlashSensitiveDetector(), Detector(det) +{ + //@@@@ xN08SensitiveDetector:: evtl name im constructor des G4VGFlashSensitiveDetector ? + G4String caloname="ExGflashCollection"; + collectionName.insert(caloname); +} + +ExGflashSensitiveDetector::~ExGflashSensitiveDetector() {} + +void ExGflashSensitiveDetector::Initialize(G4HCofThisEvent*HCE) +{ + cout<<"::Initializing the sensitive detector"<AddHitsCollection( HCID, caloHitsCollection ); + caloHitsCollection=new + ExGflashHitsCollection(SensitiveDetectorName,collectionName[0]); // first collection +} + +void ExGflashSensitiveDetector::EndOfEvent(G4HCofThisEvent*HCE) +{ + if (HCE); + // No Hadronic + // cout<<"IEndOfEvent " << HCID << endl; +} + +G4bool ExGflashSensitiveDetector::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +{ //cout<<"This is ProcessHits"<GetTotalEnergyDeposit(); + if(e<=0.)return false; + + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); + + // enrgy deposited -> make Hit + //const G4VPhysicalVolume* physVol= aStep->GetPreStepPoint()->GetPhysicalVolume(); + //G4TouchableHistory* theTouchable = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); + ExGflashHit* caloHit=new ExGflashHit(); + caloHit->SetEdep(e); + caloHit->SetPos(aStep->GetPreStepPoint()->GetPosition()); + caloHitsCollection->insert(caloHit); + if (ROhist); + G4VPhysicalVolume* physVol = theTouchable->GetVolume(); + G4int crystalnum=0; + for(int i=0;i<100;i++) //@@@@@@@ ExGflashSensitiveDetector:vorsichty + { + if(physVol == Detector->GetCristal(i)) crystalnum= i; + } + caloHit->SetCrystalNum(crystalnum); + + return true; +} + +// Separate GFLASH interface +G4bool ExGflashSensitiveDetector::ProcessHits(G4GFlashSpot*aSpot ,G4TouchableHistory* ROhist) +{ //cout<<"This is ProcessHits GFLASH"<GetEnergySpot()->GetEnergy(); + if(e<=0.)return false; + + G4VPhysicalVolume* pCurrentVolume = aSpot->GetTouchableHandle()->GetVolume(); + + ExGflashHit* caloHit=new ExGflashHit(); + caloHit->SetEdep(e); + caloHit->SetPos(aSpot->GetEnergySpot()->GetPosition()); + caloHitsCollection->insert(caloHit); + if (ROhist); + //cout <GetName() << endl; + G4int crystalnum=0; + for(int i=0;i<100;i++) //@@@@@@@ ExGflashSensitiveDetector:vorsichty + { + if(pCurrentVolume == Detector->GetCristal(i)) crystalnum= i; + } + caloHit->SetCrystalNum(crystalnum); + + return true; +} diff --git a/source/visualization/management/include/MyVisManager.cc b/examples/extended/parameterisations/gflash/src/ExGflashVisManager.cc similarity index 70% rename from source/visualization/management/include/MyVisManager.cc rename to examples/extended/parameterisations/gflash/src/ExGflashVisManager.cc index ca2b151cba..1c633fc045 100644 --- a/source/visualization/management/include/MyVisManager.cc +++ b/examples/extended/parameterisations/gflash/src/ExGflashVisManager.cc @@ -20,35 +20,25 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: MyVisManager.cc,v 1.20 2005/02/04 16:42:41 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// John Allison 24th January 1998. - #ifdef G4VIS_USE -#include "MyVisManager.hh" +#include "ExGflashVisManager.hh" // Supported drivers... -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRep.hh" -#include "G4HepRepFile.hh" -#include "G4RayTracer.hh" -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" - -// Needing external packages or libraries... - #ifdef G4VIS_USE_DAWN #include "G4FukuiRenderer.hh" #endif +#ifdef G4VIS_USE_DAWNFILE +#include "G4DAWNFILE.hh" +#endif + +#ifdef G4VIS_USE_OPACS +#include "G4Wo.hh" +#include "G4Xo.hh" +#endif + #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -72,38 +62,37 @@ #include "G4OpenInventorWin32.hh" #endif -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" +#ifdef G4VIS_USE_RAYX +#include "G4RayX.hh" #endif +#ifdef G4VIS_USE_VRML +#include "G4VRML1.hh" +// #include "G4VRML2.hh" +#endif -MyVisManager::MyVisManager () { - G4cout << - "\n*********************************************************************\n" - "MyVisManager: WARNING: Deprecated class - use G4VisExecutive instead." - "\n*********************************************************************\n" - << G4endl; -} +#ifdef G4VIS_USE_VRMLFILE +#include "G4VRML1File.hh" +//#include "G4VRML2File.hh" +#endif -void MyVisManager::RegisterGraphicsSystems () { +ExGflashVisManager::ExGflashVisManager () {} - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... +void ExGflashVisManager::RegisterGraphicsSystems () { #ifdef G4VIS_USE_DAWN RegisterGraphicsSystem (new G4FukuiRenderer); #endif +#ifdef G4VIS_USE_DAWNFILE + RegisterGraphicsSystem (new G4DAWNFILE); +#endif + +#ifdef G4VIS_USE_OPACS + RegisterGraphicsSystem (new G4Wo); + RegisterGraphicsSystem (new G4Xo); +#endif + #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); @@ -127,10 +116,26 @@ void MyVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4OpenInventorWin32); #endif +#ifdef G4VIS_USE_RAYX + RegisterGraphicsSystem (new G4RayX); +#endif + #ifdef G4VIS_USE_VRML RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); +// RegisterGraphicsSystem (new G4VRML2); #endif + +#ifdef G4VIS_USE_VRMLFILE + RegisterGraphicsSystem (new G4VRML1File); +// RegisterGraphicsSystem (new G4VRML2File); +#endif + + if (fVerbose > 0) { + G4cout << + "\nYou have successfully chosen to use the following graphics systems." + << endl; + PrintAvailableGraphicsSystems (); + } } #endif diff --git a/examples/extended/parameterisations/gflash/test.mac b/examples/extended/parameterisations/gflash/test.mac new file mode 100644 index 0000000000..c2af398851 --- /dev/null +++ b/examples/extended/parameterisations/gflash/test.mac @@ -0,0 +1,25 @@ +# +# Macro file for the initialization phase of gflash example +# when runing in interactive mode +# +# Sets some default verbose +# + +/gps/centre 0 0 0 +/gps/particle e- +/gps/energy 50 GeV +/gps/direction 0. 0. 1.0 + + +# Paramatrisation on +/GFlash/flag 1 + + +# for drawing the tracks +# (if too many tracks cause core dump => storeTrajectory 0) +#/tracking/storeTrajectory 1 + +#/vis/scene/endOfEventAction accumulate +/tracking/verbose 0 + +/run/beamOn 10 diff --git a/examples/extended/parameterisations/gflash/vis.mac b/examples/extended/parameterisations/gflash/vis.mac new file mode 100644 index 0000000000..6d895039bf --- /dev/null +++ b/examples/extended/parameterisations/gflash/vis.mac @@ -0,0 +1,30 @@ +# +# Macro file for the initialization phase of gflash example +# when runing in interactive mode +# +# Sets some default verbose +/gps/position 0 0 0 +/gps/particle e+ +/gps/energy 2.0 GeV +/gps/direction 0. 0. 1.0 + +/vis/scene/create +# +# Create OGLSXma scene handler for a specific graphics system +# (Edit the next le(s) to choose another graphic system) + +/vis/open OGLIX +/vis/viewer/zoom 0.5 + +/vis/viewer/set/viewpointVector 1 1 1 + +/vis/viewer/flush +# for drawing the tracks +# (if too many tracks cause core dump => storeTrajectory 0) +/tracking/storeTrajectory 1 +/vis/scene/endOfEventAction accumulate +/tracking/verbose 0 +/GFlash/flag 1 +/run/beamOn 2 + + diff --git a/examples/extended/persistency/History b/examples/extended/persistency/History index 2a4870c889..f45ce19512 100644 --- a/examples/extended/persistency/History +++ b/examples/extended/persistency/History @@ -1,4 +1,4 @@ -$Id: History,v 1.8 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.10 2005/12/06 15:40:33 gcosmo Exp $ -------------------------------------------------- ========================================================= @@ -16,7 +16,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -3rd May 2005 John Allison (examples-V07-00-03) +Dec 6th, 2005 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +Jul 5th, 2005 Gabriele Cosmo (persistencyEx-V07-01-00) +- Added missing ESTRALIBS to link list for specialised setup. + +May 3rd, 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. May 27th, 2005 Gabriele Cosmo (persistencyEx-V07-00-01) diff --git a/examples/extended/persistency/PersEx01/G4PersEx01.cc b/examples/extended/persistency/PersEx01/G4PersEx01.cc index 7842324e23..ac7c55b70b 100644 --- a/examples/extended/persistency/PersEx01/G4PersEx01.cc +++ b/examples/extended/persistency/PersEx01/G4PersEx01.cc @@ -21,15 +21,12 @@ // ******************************************************************** // // -// $Id: G4PersEx01.cc,v 1.2 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PersEx01.cc,v 1.3 2005/12/06 15:40:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- -// GEANT 4 - exampleN03 -// -// -------------------------------------------------------------- -// Comments +// GEANT4 object persistency example // // -------------------------------------------------------------- @@ -59,7 +56,7 @@ int main(int argc,char** argv) { // choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new Pers01SteppingVerbose); diff --git a/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh b/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh index 6f0bb28767..f5a05edfb1 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01CalorHit.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh b/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh index 944019f8a9..312434c3cd 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01CalorimeterSD.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh b/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh index a49fe07f0d..5dc43b520b 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01DetectorConstruction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh index e366532772..a5acc0b62a 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01DetectorMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh b/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh index 194564ab5e..d51b15836d 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01EventAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh index ecd55ac5cf..2816ae0be3 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01EventActionMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh b/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh index 18d30843ed..6f28da2b7c 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01PhysicsList.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh index bc927b9c72..3593b5e1c9 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01PrimaryGeneratorAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh index 43d5217ffc..19d14770ca 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01PrimaryGeneratorMessenger.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh b/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh index a856f21a55..e6e4b5ffa5 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01RunAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh b/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh index 886da81d0f..00c6e88720 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01SteppingAction.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh b/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh index 0b6a095c99..6e9347efec 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01SteppingVerbose.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc b/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc index 48aab215fb..e5380ddf86 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01CalorHit.cc,v 1.2 2005/04/22 16:26:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc b/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc index 0b37017097..809b218c83 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01CalorimeterSD.cc,v 1.2 2005/04/22 16:26:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc b/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc index 4222da89b4..16467812af 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01DetectorConstruction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc index 8fa5225685..fd04624691 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01DetectorMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc b/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc index 5e9c23e969..4a7edc8511 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Pers01EventAction.cc,v 1.2 2003/06/16 16:49:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Pers01EventAction.cc,v 1.3 2005/12/06 15:40:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -71,7 +71,7 @@ void Pers01EventAction::BeginOfEventAction(const G4Event* evt) if (evtNb%printModulo == 0) { G4cout << "\n---> Begin of event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } if (calorimeterCollID==-1) diff --git a/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc index c77e432b34..0623efc11a 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01EventActionMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc b/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc index f811a62cfe..1f7187be10 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01PhysicsList.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc index a4e0e869ee..29c4afd007 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01PrimaryGeneratorAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc index 843161dee0..4c4b51980d 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01PrimaryGeneratorMessenger.cc,v 1.2 2002/12/06 16:59:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc b/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc index 3d5ea53e11..bc7908e02b 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01RunAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc b/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc index 93e57fb037..92feae720a 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01SteppingAction.cc,v 1.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc b/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc index 007adf648f..fc4643932b 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01SteppingVerbose.cc,v 1.2 2003/06/16 16:49:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/rootio/GNUmakefile b/examples/extended/persistency/rootio/GNUmakefile index 9d712ac99f..a3fe0e805b 100644 --- a/examples/extended/persistency/rootio/GNUmakefile +++ b/examples/extended/persistency/rootio/GNUmakefile @@ -1,8 +1,8 @@ -# $Id: GNUmakefile,v 1.2 2005/04/22 16:26:46 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2005/07/05 13:34:21 gcosmo Exp $ # -# GNUmakefile: makefile for example ROOT I/O impelmentatoin. +# GNUmakefile: makefile for example ROOT I/O implementation. # -# This makefile creates a granular library in $(FADS_LIB). +# This makefile creates a granular library in $(G4PEX_DIR)/lib. # $(name) is the name of granular library. # # Author: Youhei Morita diff --git a/examples/extended/persistency/rootio/config/G4PEXsetup.gmk b/examples/extended/persistency/rootio/config/G4PEXsetup.gmk index 38e95ce0d6..4d74cee242 100644 --- a/examples/extended/persistency/rootio/config/G4PEXsetup.gmk +++ b/examples/extended/persistency/rootio/config/G4PEXsetup.gmk @@ -1,6 +1,6 @@ -# $Id: G4PEXsetup.gmk,v 1.1 2002/12/04 02:44:27 morita Exp $ +# $Id: G4PEXsetup.gmk,v 1.2 2005/07/05 13:37:16 gcosmo Exp $ # ===================================================================== -# FADSsetup.gmk: GNUmakefile variables for FADS +# G4PEXsetup.gmk: GNUmakefile variables for persistency example # # Author: Youhei Morita # ===================================================================== diff --git a/examples/extended/persistency/rootio/config/binmake.gmk b/examples/extended/persistency/rootio/config/binmake.gmk index a14d96693d..8b6def2142 100644 --- a/examples/extended/persistency/rootio/config/binmake.gmk +++ b/examples/extended/persistency/rootio/config/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.7 2005/04/27 09:29:16 gcosmo Exp $ +# $Id: binmake.gmk,v 1.8 2005/07/05 13:23:07 gcosmo Exp $ # ===================================================================== # binmake.gmk: GNUmakefile variables for creating the binary executable # @@ -64,7 +64,7 @@ ifneq ($(EXTLDFLAGS),) endif # libraries -LDLIBS := $(libraries_to_build) \ +LDLIBS := $(EXTRALIBS) $(libraries_to_build) \ -lG4ROOTIO g4libs := $(wildcard $(G4LIB)/$(G4SYSTEM)/*.so) diff --git a/examples/extended/persistency/rootio/include/G4DigitRootIO.hh b/examples/extended/persistency/rootio/include/G4DigitRootIO.hh index 58cb74d3d0..9a0b779346 100644 --- a/examples/extended/persistency/rootio/include/G4DigitRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4DigitRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4DigitRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4DigitRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4EventRootIO.hh b/examples/extended/persistency/rootio/include/G4EventRootIO.hh index fa61f5f48d..774f441a30 100644 --- a/examples/extended/persistency/rootio/include/G4EventRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4EventRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EventRootIO.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4EventRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh b/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh index 38e3d98892..6c0901235c 100644 --- a/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepMCRootIO.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4HepMCRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4HitRootIO.hh b/examples/extended/persistency/rootio/include/G4HitRootIO.hh index 8d861ceb35..87665d43a1 100644 --- a/examples/extended/persistency/rootio/include/G4HitRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4HitRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HitRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4HitRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh b/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh index 4812ca53b6..92c4841073 100644 --- a/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh +++ b/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MCTruthRootIO.hh,v 1.4 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4MCTruthRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootEvent.hh b/examples/extended/persistency/rootio/include/G4RootEvent.hh index 6882747a7d..717e277cb9 100644 --- a/examples/extended/persistency/rootio/include/G4RootEvent.hh +++ b/examples/extended/persistency/rootio/include/G4RootEvent.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootEvent.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4RootEvent.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootIOManager.hh b/examples/extended/persistency/rootio/include/G4RootIOManager.hh index 41b8e154c9..8fa6f58ac5 100644 --- a/examples/extended/persistency/rootio/include/G4RootIOManager.hh +++ b/examples/extended/persistency/rootio/include/G4RootIOManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootIOManager.hh,v 1.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4RootIOManager.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootTransManager.hh b/examples/extended/persistency/rootio/include/G4RootTransManager.hh index 8d02f59d3c..7c1e576906 100644 --- a/examples/extended/persistency/rootio/include/G4RootTransManager.hh +++ b/examples/extended/persistency/rootio/include/G4RootTransManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootTransManager.hh,v 1.4 2005/04/22 16:57:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4RootTransManager.hh // diff --git a/examples/extended/persistency/rootio/src/G4DigitRootIO.cc b/examples/extended/persistency/rootio/src/G4DigitRootIO.cc index 4196cdd4e9..a496d9ab22 100644 --- a/examples/extended/persistency/rootio/src/G4DigitRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4DigitRootIO.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4DigitRootIO.cc,v 1.5 2005/04/22 16:26:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4DigitRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4EventRootIO.cc b/examples/extended/persistency/rootio/src/G4EventRootIO.cc index d80fc404ad..8dfe911a8f 100644 --- a/examples/extended/persistency/rootio/src/G4EventRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4EventRootIO.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EventRootIO.cc,v 1.4 2005/04/22 16:26:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4EventRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc b/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc index f6e35eb2eb..c4d24d7a53 100644 --- a/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepMCRootIO.cc,v 1.5 2005/04/22 16:26:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4HepMCRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4HitRootIO.cc b/examples/extended/persistency/rootio/src/G4HitRootIO.cc index bb5b3ac2fb..94e376e464 100644 --- a/examples/extended/persistency/rootio/src/G4HitRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4HitRootIO.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HitRootIO.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4HitRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc b/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc index d5262f713a..c254e1067e 100644 --- a/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc +++ b/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MCTruthRootIO.cc,v 1.5 2005/04/22 16:26:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4MCTruthRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4RootEvent.cc b/examples/extended/persistency/rootio/src/G4RootEvent.cc index cef673e4c4..348f96a883 100644 --- a/examples/extended/persistency/rootio/src/G4RootEvent.cc +++ b/examples/extended/persistency/rootio/src/G4RootEvent.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootEvent.cc,v 1.4 2005/04/22 16:26:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4RootEvent.cc // diff --git a/examples/extended/persistency/rootio/src/G4RootIOManager.cc b/examples/extended/persistency/rootio/src/G4RootIOManager.cc index 3d605389cf..3f6656acf8 100644 --- a/examples/extended/persistency/rootio/src/G4RootIOManager.cc +++ b/examples/extended/persistency/rootio/src/G4RootIOManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootIOManager.cc,v 1.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4RootIOManager.cc // diff --git a/examples/extended/persistency/rootio/src/G4RootTransManager.cc b/examples/extended/persistency/rootio/src/G4RootTransManager.cc index 7d70e49327..5273b3eb88 100644 --- a/examples/extended/persistency/rootio/src/G4RootTransManager.cc +++ b/examples/extended/persistency/rootio/src/G4RootTransManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4RootTransManager.cc,v 1.5 2005/04/22 16:26:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File: G4RootTransManager.cc // diff --git a/examples/extended/radioactivedecay/exrdm/GNUmakefile b/examples/extended/radioactivedecay/exrdm/GNUmakefile index 2d6f31b228..2f1938b867 100644 --- a/examples/extended/radioactivedecay/exrdm/GNUmakefile +++ b/examples/extended/radioactivedecay/exrdm/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2004/12/13 16:06:02 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2005/07/19 08:49:15 flei Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module # -------------------------------------------------------------- @@ -52,5 +52,5 @@ include $(G4INSTALL)/config/binmake.gmk ifdef G4ANALYSIS_USE CPPFLAGS += `aida-config --include` - LOADLIBS += `aida-config --lib` + LDLIBS += `aida-config --lib` endif diff --git a/examples/extended/radioactivedecay/exrdm/History b/examples/extended/radioactivedecay/exrdm/History index d2a2ac9774..b231d04e94 100644 --- a/examples/extended/radioactivedecay/exrdm/History +++ b/examples/extended/radioactivedecay/exrdm/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2005/06/03 16:49:36 flei Exp $ +$Id: History,v 1.10 2005/12/06 15:16:40 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,14 +14,39 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -03 June 2005 Fan Lei (exrdm-V07-00-01) + +December 6th, 2005 Gabriele Cosmo +--------------------------------- +- Trivial changes for support of CLHEP-2.0.X series. + +December 2nd, 2005 V.Ivanchenko (exrdm-V07-01-02) +------------------------------- +- Fix crash connected with non-static hadrons + +November 15th, 2005 Gabriele Cosmo (exrdm-V07-01-01) +---------------------------------- +- Migration to from deprecated . + +July 19th, 2005 Fan Lei (exrdm-V07-01-00) +----------------------- +- Changed in GNUmakefile + LOADLIBS += `aida-config --lib` + with: + LDLIBS += `aida-config --lib` + fixing AIDA link problem for WIN32-VC. +- Corrected a typo in exRDMHistoMessenger.cc. + +June 3rd, 2005 Fan Lei (exrdm-V07-00-01) +---------------------- - updates to physics list - added macros/test.mac for testing the physics list -3rd May 2005 John Allison (examples-V07-00-03) +May 3rd, 2005 John Allison +-------------------------- - Replaced vis manager with G4VisExecutive. -07-03-2005, Fan Lei (exrdm-V07-00-00) +March 3rd, 2005 Fan Lei (exrdm-V07-00-00) +----------------------- - Update to exrdmPhysicsList.cc December 3rd, 2004 Gabriele Cosmo (exrdm-V06-02-02) diff --git a/examples/extended/radioactivedecay/exrdm/exRDM.cc b/examples/extended/radioactivedecay/exrdm/exRDM.cc index c47acb41d7..b756a427b3 100644 --- a/examples/extended/radioactivedecay/exrdm/exRDM.cc +++ b/examples/extended/radioactivedecay/exrdm/exRDM.cc @@ -48,7 +48,7 @@ int main(int argc,char** argv) { // random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); // Construct the default run manager G4RunManager* runManager = new G4RunManager; diff --git a/examples/extended/radioactivedecay/exrdm/exrdm.out b/examples/extended/radioactivedecay/exrdm/exrdm.out index 01e6449aff..9a6965fabe 100644 --- a/examples/extended/radioactivedecay/exrdm/exrdm.out +++ b/examples/extended/radioactivedecay/exrdm/exrdm.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (27-July-2004) + Geant4 version $Name: geant4-08-00 $ (27-July-2004) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/radioactivedecay/exrdm/macros/runall.log b/examples/extended/radioactivedecay/exrdm/macros/runall.log index d4aecec3a0..03684176ae 100644 --- a/examples/extended/radioactivedecay/exrdm/macros/runall.log +++ b/examples/extended/radioactivedecay/exrdm/macros/runall.log @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -44,7 +44,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -88,7 +88,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -137,7 +137,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -341,7 +341,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -385,7 +385,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -585,7 +585,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -780,7 +780,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -985,7 +985,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1195,7 +1195,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1468,7 +1468,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1512,7 +1512,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -1556,7 +1556,7 @@ Graphics systems deleted. Visualization Manager deleting... ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version $Name: geant4-08-00 $ (23-February-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/radioactivedecay/exrdm/src/exrdmDetectorConstruction.cc b/examples/extended/radioactivedecay/exrdm/src/exrdmDetectorConstruction.cc index 63c695021b..b3cf38131f 100644 --- a/examples/extended/radioactivedecay/exrdm/src/exrdmDetectorConstruction.cc +++ b/examples/extended/radioactivedecay/exrdm/src/exrdmDetectorConstruction.cc @@ -37,7 +37,7 @@ #include "G4Colour.hh" #include "G4ios.hh" -#include +#include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -191,10 +191,9 @@ G4VPhysicalVolume* exrdmDetectorConstruction::Construct() G4double zpos = -fWorldLength/2.; G4String command = "/gps/pos/centre "; - char x[10]; - std::ostrstream os(x,10); + std::ostringstream os; os << zpos << '\0'; - G4String xs = x; + G4String xs = os.str(); UI->ApplyCommand(command+"0. 0. "+xs+" mm"); UI->ApplyCommand("/gps/pos/type Point"); command = "/gps/position "; diff --git a/examples/extended/radioactivedecay/exrdm/src/exrdmHistoMessenger.cc b/examples/extended/radioactivedecay/exrdm/src/exrdmHistoMessenger.cc index 2449dc094e..f721eb474b 100644 --- a/examples/extended/radioactivedecay/exrdm/src/exrdmHistoMessenger.cc +++ b/examples/extended/radioactivedecay/exrdm/src/exrdmHistoMessenger.cc @@ -24,6 +24,8 @@ #include "exrdmHistoMessenger.hh" +#include + #include "exrdmHisto.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" @@ -46,7 +48,7 @@ exrdmHistoMessenger::exrdmHistoMessenger(exrdmHisto* manager) fileCmd->SetGuidance("set type (hbook, XML) for the histograms file"); fileCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - histoCmd = new G4UIcommand("/histo/setexrdmHisto",this); + histoCmd = new G4UIcommand("/histo/setHisto",this); histoCmd->SetGuidance("Set bining of the histo number ih :"); histoCmd->SetGuidance(" nbBins; valMin; valMax; unit (of vmin and vmax)"); histoCmd->AvailableForStates(G4State_PreInit,G4State_Idle); @@ -100,7 +102,7 @@ void exrdmHistoMessenger::SetNewValue(G4UIcommand* command,G4String newValues) if (command == histoCmd) { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> ih >> nbBins >> vmin >> vmax >> unts; G4String unit = unts; G4double vUnit = 1. ; diff --git a/examples/extended/radioactivedecay/exrdm/src/exrdmMaterialMessenger.cc b/examples/extended/radioactivedecay/exrdm/src/exrdmMaterialMessenger.cc index 24b7e5af44..a0adedd169 100644 --- a/examples/extended/radioactivedecay/exrdm/src/exrdmMaterialMessenger.cc +++ b/examples/extended/radioactivedecay/exrdm/src/exrdmMaterialMessenger.cc @@ -24,6 +24,8 @@ // #include "exrdmMaterialMessenger.hh" +#include + #include "exrdmMaterial.hh" //////////////////////////////////////////////////////////////////////////////// // @@ -113,7 +115,7 @@ void exrdmMaterialMessenger::SetNewValue (G4UIcommand* command,G4String newValue stat[0] = ' '; tem = pres = -1.; const char* t = newValue; - std::istrstream is((char*)t); + std::istringstream is(t); is >>mat >>form >>den >>stat >> tem >> pres ; G4String material=mat; G4String formula=form; diff --git a/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListParticles.cc b/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListParticles.cc index dc0e125808..f5c6a1e290 100644 --- a/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListParticles.cc +++ b/examples/extended/radioactivedecay/exrdm/src/exrdmPhysListParticles.cc @@ -42,36 +42,14 @@ #include "G4NeutrinoE.hh" #include "G4AntiNeutrinoE.hh" -// Mesons -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" -#include "G4Eta.hh" -#include "G4EtaPrime.hh" - -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4KaonZero.hh" -#include "G4AntiKaonZero.hh" -#include "G4KaonZeroLong.hh" -#include "G4KaonZeroShort.hh" +// Hadrons +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" //ShortLived #include "G4ShortLivedConstructor.hh" -// Baryons -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4Neutron.hh" -#include "G4AntiNeutron.hh" - -// Nuclei -#include "G4Alpha.hh" -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4He3.hh" -#include "G4GenericIon.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... exrdmPhysListParticles::exrdmPhysListParticles(const G4String& name) @@ -110,30 +88,16 @@ void exrdmPhysListParticles::ConstructParticle() G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); + G4MesonConstructor mConstructor; + mConstructor.ConstructParticle(); // barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); + G4BaryonConstructor bConstructor; + bConstructor.ConstructParticle(); // ions - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4He3::He3Definition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); + G4IonConstructor iConstructor; + iConstructor.ConstructParticle(); // Construct resonaces and quarks G4ShortLivedConstructor pShortLivedConstructor; diff --git a/examples/extended/runAndEvent/RE01/RE01.cc b/examples/extended/runAndEvent/RE01/RE01.cc index cd7c9e122e..cce44268b8 100644 --- a/examples/extended/runAndEvent/RE01/RE01.cc +++ b/examples/extended/runAndEvent/RE01/RE01.cc @@ -22,7 +22,7 @@ // // // $Id: RE01.cc,v 1.2 2005/06/01 18:27:29 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/runAndEvent/RE01/include/RE01BosonPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01BosonPhysics.hh index 47e8f0a3c4..6ccde472d8 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01BosonPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01BosonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01BosonPhysics.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RE01BosonPhysics_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterHit.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterHit.hh index 472acfcfba..32b240d1b9 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterHit.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterHit.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterHit.hh,v 1.2 2005/06/02 21:30:50 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh index 4bf43a2321..8d75cade55 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterParametrisation.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh index 9a89f38363..0b4069727f 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterROGeometry.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterSD.hh b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterSD.hh index 4cb7f442f6..894d5aae55 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01CalorimeterSD.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01CalorimeterSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterSD.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01DecayPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01DecayPhysics.hh index 31832cc166..cc7937e922 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DecayPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DecayPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01DecayPhysics.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh b/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh index daa626425b..6bf0e31fbd 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DetectorConstruction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DetectorConstruction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01DetectorParameterDef.hh b/examples/extended/runAndEvent/RE01/include/RE01DetectorParameterDef.hh index b4332e0916..23cfa30d87 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DetectorParameterDef.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DetectorParameterDef.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DetectorParameterDef.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // G4double expHall_x; diff --git a/examples/extended/runAndEvent/RE01/include/RE01DummySD.hh b/examples/extended/runAndEvent/RE01/include/RE01DummySD.hh index 793b4abd5f..022d1d6bf2 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01DummySD.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01DummySD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DummySD.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/runAndEvent/RE01/include/RE01EventAction.hh b/examples/extended/runAndEvent/RE01/include/RE01EventAction.hh index 5f74013f3c..a1e6ba3b9f 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01EventAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01EventAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01EventAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01Field.hh b/examples/extended/runAndEvent/RE01/include/RE01Field.hh index b0955cb857..e465ea5b8a 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01Field.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01Field.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01Field.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01HadronPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01HadronPhysics.hh index 2bec0c6f22..7ff2126009 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01HadronPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01HadronPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01HadronPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RE01HadronPhysics_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01IonPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01IonPhysics.hh index 2c3182c46c..e759762510 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01IonPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01IonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01IonPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RE01IonPhysics_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01LeptonPhysics.hh b/examples/extended/runAndEvent/RE01/include/RE01LeptonPhysics.hh index e47d269779..ed82b5facd 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01LeptonPhysics.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01LeptonPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: RE01LeptonPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh b/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh index 5cc60047ca..c2782fd1a2 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: RE01PhysicsList.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh b/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh index ca82e3525d..5e7359f30a 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01PrimaryGeneratorAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh b/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh index 414733d49d..799afc1d85 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01PrimaryGeneratorMessenger.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01RegionInformation.hh b/examples/extended/runAndEvent/RE01/include/RE01RegionInformation.hh index 871f6bc701..e78aad0a2f 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01RegionInformation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01RegionInformation.hh @@ -22,7 +22,7 @@ // // // $Id: RE01RegionInformation.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RE01RegionInformation_H diff --git a/examples/extended/runAndEvent/RE01/include/RE01RunAction.hh b/examples/extended/runAndEvent/RE01/include/RE01RunAction.hh index 4a7dfbe54c..0328cec283 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01RunAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: RE01RunAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RE01RunAction_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01StackingAction.hh b/examples/extended/runAndEvent/RE01/include/RE01StackingAction.hh index 8005bee292..50ad43166f 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01StackingAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01StackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01StackingAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01SteppingAction.hh b/examples/extended/runAndEvent/RE01/include/RE01SteppingAction.hh index 699edb355e..265ec45b61 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01SteppingAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01SteppingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01SteppingAction.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh index dbd61c841a..67d9aeaa27 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackInformation.hh @@ -22,7 +22,7 @@ // // // $Id: RE01TrackInformation.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RE01TrackInformation_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackerHit.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackerHit.hh index 0a27909b0d..e3e30d6fd2 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackerHit.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackerHit.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerHit.hh,v 1.2 2005/06/02 21:30:50 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackerParametrisation.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackerParametrisation.hh index ec67c64cf7..a193573220 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackerParametrisation.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackerParametrisation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerParametrisation.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackerSD.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackerSD.hh index 1b88f69c63..6c7b741044 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackerSD.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackerSD.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerSD.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/include/RE01TrackingAction.hh b/examples/extended/runAndEvent/RE01/include/RE01TrackingAction.hh index 8ac001944a..e2ecf1433b 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01TrackingAction.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01TrackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackingAction.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RE01TrackingAction_h diff --git a/examples/extended/runAndEvent/RE01/include/RE01Trajectory.hh b/examples/extended/runAndEvent/RE01/include/RE01Trajectory.hh index 69f8f32933..2463f651ca 100644 --- a/examples/extended/runAndEvent/RE01/include/RE01Trajectory.hh +++ b/examples/extended/runAndEvent/RE01/include/RE01Trajectory.hh @@ -22,7 +22,7 @@ // // // $Id: RE01Trajectory.hh,v 1.2 2005/06/01 18:27:29 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef RE01Trajectory_h diff --git a/examples/extended/runAndEvent/RE01/sample.out b/examples/extended/runAndEvent/RE01/sample.out index 60770fbef7..9c2122d061 100644 --- a/examples/extended/runAndEvent/RE01/sample.out +++ b/examples/extended/runAndEvent/RE01/sample.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (25-June-2004) + Geant4 version $Name: geant4-08-00 $ (25-June-2004) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 diff --git a/examples/extended/runAndEvent/RE01/src/RE01BosonPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01BosonPhysics.cc index 5cfa55eece..acc8f32c20 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01BosonPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01BosonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01BosonPhysics.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterHit.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterHit.cc index 72464418a5..ad3a871530 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterHit.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterHit.cc @@ -22,7 +22,7 @@ // // // $Id: RE01CalorimeterHit.cc,v 1.3 2005/06/07 10:53:17 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc index f838118e9a..f3119927a1 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterParametrisation.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc index 2fa262c3e2..bc69b5ad32 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterROGeometry.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01CalorimeterROGeometry.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc index 2e7789c86e..e91998fec8 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01CalorimeterSD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01CalorimeterSD.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01DecayPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01DecayPhysics.cc index 78fc81845a..26c72d2d79 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DecayPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01DecayPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01DecayPhysics.cc,v 1.1 2004/11/26 07:37:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01DecayPhysics.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc b/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc index 4588f46993..118b59a0a5 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01DetectorConstruction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DetectorConstruction.cc,v 1.2 2004/11/26 17:20:27 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01DetectorParameterDef.icc b/examples/extended/runAndEvent/RE01/src/RE01DetectorParameterDef.icc index 4ff3c05345..0135c899ff 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DetectorParameterDef.icc +++ b/examples/extended/runAndEvent/RE01/src/RE01DetectorParameterDef.icc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DetectorParameterDef.icc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01DummySD.cc b/examples/extended/runAndEvent/RE01/src/RE01DummySD.cc index 3e0a8909e0..bb2edf6c08 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01DummySD.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01DummySD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01DummySD.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Dummy sensitive used only to flag sensitivity diff --git a/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc b/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc index f66b8a3ac4..2dd7991447 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01EventAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01EventAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01Field.cc b/examples/extended/runAndEvent/RE01/src/RE01Field.cc index 23e0c98674..066f99d26b 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01Field.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01Field.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01Field.cc,v 1.2 2004/12/02 07:34:56 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01HadronPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01HadronPhysics.cc index 18aee1e0b5..b6554d7267 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01HadronPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01HadronPhysics.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01HadronPhysics.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01IonPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01IonPhysics.cc index a809adb9c9..07a14d5249 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01IonPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01IonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01IonPhysics.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01IonPhysics.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01LeptonPhysics.cc b/examples/extended/runAndEvent/RE01/src/RE01LeptonPhysics.cc index 4ca42629ab..cb8060987e 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01LeptonPhysics.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01LeptonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: RE01LeptonPhysics.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01LeptonPhysics.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc b/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc index 4246b90f79..e0544bba4c 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: RE01PhysicsList.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01PhysicsList.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc b/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc index bb96673fdb..018c962336 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01PrimaryGeneratorAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc b/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc index f07dd3977b..b595c545c1 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01PrimaryGeneratorMessenger.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01RegionInformation.cc b/examples/extended/runAndEvent/RE01/src/RE01RegionInformation.cc index bf6057bea6..2372e84d42 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01RegionInformation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01RegionInformation.cc @@ -22,7 +22,7 @@ // // // $Id: RE01RegionInformation.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01RegionInformation.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01RunAction.cc b/examples/extended/runAndEvent/RE01/src/RE01RunAction.cc index 0c3f6c0a18..8d4b5224fc 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01RunAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: RE01RunAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01RunAction.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01StackingAction.cc b/examples/extended/runAndEvent/RE01/src/RE01StackingAction.cc index 3373a191ed..7d033a2a13 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01StackingAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01StackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01StackingAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc b/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc index a4bfd3fb90..1b5e2f410f 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01SteppingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01SteppingAction.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc index a9f8d11705..88f0ad2f04 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackInformation.cc @@ -22,7 +22,7 @@ // // // $Id: RE01TrackInformation.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "RE01TrackInformation.hh" diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackerHit.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackerHit.cc index 922c3b6558..5a1ff62813 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackerHit.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackerHit.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerHit.cc,v 1.3 2005/06/07 10:53:17 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackerParametrisation.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackerParametrisation.cc index 4e86ba5420..044f1d1ce2 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackerParametrisation.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackerParametrisation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerParametrisation.cc,v 1.1 2004/11/26 07:37:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackerSD.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackerSD.cc index 16ef4f8fed..7feb7ac7d8 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackerSD.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackerSD.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackerSD.cc,v 1.1 2004/11/26 07:37:43 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01TrackingAction.cc b/examples/extended/runAndEvent/RE01/src/RE01TrackingAction.cc index ef6e1ed4e4..d7a9f807ba 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01TrackingAction.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01TrackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: RE01TrackingAction.cc,v 1.1 2004/11/26 07:37:43 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE01/src/RE01Trajectory.cc b/examples/extended/runAndEvent/RE01/src/RE01Trajectory.cc index 914e7420a8..2ffb8af84b 100644 --- a/examples/extended/runAndEvent/RE01/src/RE01Trajectory.cc +++ b/examples/extended/runAndEvent/RE01/src/RE01Trajectory.cc @@ -22,7 +22,7 @@ // // // $Id: RE01Trajectory.cc,v 1.2 2005/06/01 18:27:29 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // diff --git a/examples/extended/runAndEvent/RE02/GNUmakefile b/examples/extended/runAndEvent/RE02/GNUmakefile new file mode 100644 index 0000000000..3f1279d59d --- /dev/null +++ b/examples/extended/runAndEvent/RE02/GNUmakefile @@ -0,0 +1,17 @@ +# $Id: GNUmakefile,v 1.1 2005/11/24 01:44:18 asaim Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := exampleRE02 +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/runAndEvent/RE02/History b/examples/extended/runAndEvent/RE02/History new file mode 100644 index 0000000000..86298a96c3 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/History @@ -0,0 +1,22 @@ +$Id: History,v 1.1 2005/11/24 01:44:18 asaim Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Example RE02 History file + ------------------------ +This file should be used by the G4 example coordinator to briefly +summarize all major modifications introduced in the code and keep +track of all tags. + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +Nov. 23, 05 M.Asai (exampleRE02-V07-01-00) +- Tagged. + +Nov. 18, 05 T.Aso, A.Kimura +- Created. diff --git a/examples/extended/runAndEvent/RE02/README b/examples/extended/runAndEvent/RE02/README new file mode 100644 index 0000000000..bcfb142f44 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/README @@ -0,0 +1,218 @@ +$Id: README,v 1.1 2005/11/24 01:44:18 asaim Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + ExampleRE02 + ----------- + + + This example simulates a simplified fixed target application + for demonstration of primitive scorers. + + (Caution) + This example creates 100 x 100 x 200 boxes using parameterised + volume for realistic situation of medical application. This is + very memory consumption, and need roughly more than 1 GB memory + for execution. If your machine does not have enough memory, + please try to reduce number of segments according to the + instruction given in "1- GEOMETRY DEFINITION". + + + 1- GEOMETRY DEFINITION + + The setup contains a water phantom as target. The world volume + is 200 cm x 200 cm x 200 cm. The water phantom is box shape and + the size of 200 mm x 200 mm x 400 mm. The volume of water phantom is + is divided into 100 x 100 x 200 boxes using parameterized volume, + (RE02PhantomParamterisation). + e.g. A voxel size is 2.0 mm x 2.0 mm x 2.0 mm. + + ---- Tips + *If your machine does not have enough memory, please try to reduce + number of segments of water phantom in exampleRE02.cc. + Please change following numbers which represent number of segments + in x, y, z axis, respectively. + + RE02DetectorConstruction* detector = new RE02DetectorConstruction; + detector->SetNumberOfSegmentsInPhantom(100,100,200); + Nx, Ny, Nz + ---- + + The geometry and sensitive detector are constructed in + DetectorConstruction class. + (See "4- SCORER " for detail descriptions about sensitive detector.) + + 2- PHYSICS LIST + + The particle's type and the physic processes which is available + in this example are set in PhysicsList class. + + The PhysicsList is originally copied from extended example, + (example/extended/analysis/A01). + Full set of particles (baryons, bosons and mesons) are created, and + Standard EM Physics and Low/High Energy parameterized models + for hadrons are applied. The detail description will be found in + example/extended/analysis/A01/README. + Specially, the PhysicsList was modified in this example, + to use Binary cascade model for hadron physics at low energy (<4GeV) + and inelastic process for generic ions with BinaryLightIonReaction. + The data files for physics processes have to be assigned using + environment variables. + + RE02PhysicsList is optimized for robustness and is not optimized for + any particular cases. If you will do precise calculation for your + use-case, please consider utilizing hadronic_lists, and defines the + production cut properly. + The default CutValue defines the production threshold of secondary + particles (mainly Ionisation and Bremsstrahlung processes are + concerned by this CutValue). + + 3- RUNS and EVENTS + + - Primary particles. + The primary kinematics consists of a single particle which hits the + target perpendicular to the input face. The default type of the particle + and its energy are set in the RE02PrimaryGeneratorAction class. + However it can be changed via the G4 build-in commands of ParticleGun + class. + The RE02PrimaryGeneratorAction class introduces a beam spot size + that makes initial particle position of x,y randomized using a Gaussian + random function, where the center position is fixed to (0,0). + The standard deviation of the beam spot size is given in + RE02PrimaryGeneratorAction as 10 mm. + + An EVENT represents a simulation of one primary particle. + A RUN is a set of events. + + The user has control: + -at Begin and End of each run (class RunAction) + -at Begin and End of each event (class EventAction) + -at Begin and End of each track (class TrackingAction, not used here) + -at End of each step (class SteppingAction, not used here) + + 4- SCORER + + - Concrete Scorer + This example introduces concrete primitive scorer (PS) and filter + classes for easy scoring. Those primitive scorers are registered to + MultiFunctionalDetector which is a concrete class of sensitive + detector(SD). Then the MultiFunctionalDetector is attached to + the logical volume of sensitive geometry. + A MultiFunctionalDetector, PrimitiveScorers, and SDFilters are + created and assigned to the logical volume of water phantom in + DetectorConstruction. + + A primitive scorer can score one kind of physical quantity, and + creates one hits collection per event. The quantity is collected in + G4THitsMap with the copy number of geometry. Here collection name is + given as /. + A primitive scorer can have one filter (SDFilter) for selecting hits + to be used for the quantity. + + The physical quantities scored in this example are: + ---------------------------------------------------- + - Total energy deposit + unit: Energy, collName: totalEDep + - Energy deposit by protons + unit: Energy, collName: protonEDep + - Number of steps of protons + unit: - , collName: protonNStep + - Cell Flux of charged tracks which pass through the geometry + unit: Length/Volume, collName: chargedPassCellFlux + - Cell Flux of all charged tracks + unit: Length/Volume, collName: chargedCellFlux + - Flux of charged particle at -Z surface of the BOX geometry, + where incident angle at the surface is taken into account. + unit: Surface^(-1), collName: chargedSurfFlux + - Surface current of gamma at -Z surface of the BOX geometry. + The energy of gammas are from 1. keV to 10. keV. + The incident angle is not taken into account. + unit: Surface^(-1), collName: gammaSurfCurr000 + - Same as previous one, but different energy bin. + The energy of gammas are from 10. keV to 100. keV. + unit: Surface^(-1), collName: gammaSurfCurr001 + - Same as previous one, but different energy bin. + The energy of gammas are from 100. keV to 1. MeV. + unit: Surface^(-1), collName: gammaSurfCurr002 + - Same as previous one, except for energy bin. + The energy of gammas are from 1. MeV to 10. MeV. + unit: Surface^(-1), collName: gammaSurfCurr003 + ------------------------------------------------- + + - Accumulating quantities during a RUN + A PrimitiveScorer creates one hits collection per event. + The physical quantity in the hits collection need to be accumulated + into another G4THitsMap object during a RUN, in order to obtain + integrated flux or dose in a RUN. The accumulation of quantities + are done at RE02Run class. + + RE02Run class can automatically generate G4THitsMap objects for a RUN, + and accumulate physical quantities of an event into it. The accumulation + is done at RE02Run::RecordEvent(G4Event* aEvent). + + - Generate a Run object, and print results + The RE02Run object is generated at RE02RunAction::GenerateRun(). + The accumulated physical quantities are printed at the end of RUN + ( RE02RunAction::EndOfEvent() ). This example prints only selected + physical quantities. + + + 5- VISUALIZATION + + The Visualization Manager is set in the main(). + The initialization of the drawing is done via a set of /vis/ commands + in the macro vis.mac. This macro is automatically read from + the main when running in interactive mode. + + The tracks are automatically drawn at the end of event and erased at + the beginning of the next run. + + The visualization (with OpenGL driver) assumes two things: + 1- the visualization & interfaces categories have been compiled + with the environment variable G4VIS_BUILD_OPENGLX_DRIVER. + 2- exampleRE02.cc has been compiled with G4VIS_USE_OPENGLX. + + (The same with DAWNFILE instead of OPENGLX) + + + 6- USER INTERFACES + + The default command interface, called G4UIterminal, is done via + standard G4cin/G4cout. + On Linux and Sun-cc on can use a smarter command interface G4UItcsh. + It is enough to set the environment variable G4UI_USE_TCSH before + compiling exampleRE02.cc + + + 7- HOW TO START ? + + - compile and link to generate an executable + % cd RE02 + % gmake + + - execute RE02 in 'batch' mode from macro files (without visualization) + % exampleRE02 run1.mac + + - execute RE02 in 'interactive mode' with visualization + % exampleRE02 + .... + Idle> type your commands. For instance: + Idle> /run/beamOn 10 + .... + Idle> /control/execute run2.mac + .... + Idle> exit + + - macros are for different primary particles. + vis.mac : 200 MeV proton with visualization + run1.mac : 150 MeV proton + run2.mac : 195 MeV/u Carbon ion + run3.mac : 30 MeV electron + run4.mac : 60 keV gamma + + + + diff --git a/examples/extended/runAndEvent/RE02/exampleRE02.cc b/examples/extended/runAndEvent/RE02/exampleRE02.cc new file mode 100644 index 0000000000..9f738f220f --- /dev/null +++ b/examples/extended/runAndEvent/RE02/exampleRE02.cc @@ -0,0 +1,114 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: exampleRE02.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// +// + +#include "RE02DetectorConstruction.hh" +#include "RE02PhysicsList.hh" +#include "RE02PrimaryGeneratorAction.hh" +#include "RE02RunAction.hh" +#include "RE02EventAction.hh" + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" + +#ifdef G4VIS_USE +#include "G4VisExecutive.hh" +#endif + +// +int main(int argc,char** argv) { + + // Run manager + G4RunManager * runManager = new G4RunManager; + + // UserInitialization classes (mandatory) + //--- + // Create Detector + // If your machine does not have enough memory, + // please try to reduce Number of Segements in phantom. + RE02DetectorConstruction* detector = new RE02DetectorConstruction; + detector->SetPhantomSize(G4ThreeVector(200*mm,200*mm,400*mm)); //Default + detector->SetNumberOfSegmentsInPhantom(100,100,200); //Default + //detector->SetNumberOfSegmentsInPhantom(1,1,100); // For small memory size. + // + runManager->SetUserInitialization(detector); + runManager->SetUserInitialization(new RE02PhysicsList); + +#ifdef G4VIS_USE + // Visualization, if you choose to have it! + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize(); +#endif + + // UserAction classes + runManager->SetUserAction(new RE02PrimaryGeneratorAction); + runManager->SetUserAction(new RE02RunAction); + runManager->SetUserAction(new RE02EventAction); + + //Initialize G4 kernel + runManager->Initialize(); + + //get the pointer to the User Interface manager + G4UImanager * UI = G4UImanager::GetUIpointer(); + + if(argc==1) + // Define (G)UI terminal for interactive mode + { + // G4UIterminal is a (dumb) terminal. + G4UIsession * session = 0; +#ifdef G4UI_USE_TCSH + session = new G4UIterminal(new G4UItcsh); +#else + session = new G4UIterminal(); +#endif + + UI->ApplyCommand("/control/execute vis.mac"); + session->SessionStart(); + delete session; + } + else + // Batch mode + { + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } + +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; + + return 0; +} + +// + diff --git a/examples/extended/runAndEvent/RE02/include/RE02DetectorConstruction.hh b/examples/extended/runAndEvent/RE02/include/RE02DetectorConstruction.hh new file mode 100644 index 0000000000..c77d3410cf --- /dev/null +++ b/examples/extended/runAndEvent/RE02/include/RE02DetectorConstruction.hh @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RE02DetectorConstruction.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef RE02DetectorConstruction_h +#define RE02DetectorConstruction_h 1 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" +#include "G4MultiFunctionalDetector.hh" + +class G4Box; +class G4LogicalVolume; +class G4VPhysicalVolume; +class G4Material; + +// +class RE02DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + // constructor and destructor. + RE02DetectorConstruction(); + virtual ~RE02DetectorConstruction(); + +public: + // virtual method from G4VUserDetectorCOnstruction. + virtual G4VPhysicalVolume* Construct(); + +public: + // Get/Set Access methods for data members + // Size of Whater Phantom + void SetPhantomSize(G4ThreeVector size) { fphantomSize=size; } + const G4ThreeVector& GetPhantomSize() const { return fphantomSize; } + // Number of segments of water phantom + void SetNumberOfSegmentsInPhantom(G4int nx, G4int ny, G4int nz) + { fNx=nx; fNy=ny; fNz=nz; } + void GetNumberOfSegmentsInPhantom(G4int& nx, G4int& ny, G4int& nz) + const{ nx = fNx; ny = fNy; nz = fNz; } + +private: + // Data members + G4ThreeVector fphantomSize; // Size of Water Phantom + G4int fNx,fNy,fNz; // Number of segmentation of water phantom. +}; +#endif diff --git a/physics_lists/hadronic/Packaging/include/G4EMBuilder.hh b/examples/extended/runAndEvent/RE02/include/RE02EMPhysics.hh similarity index 62% rename from physics_lists/hadronic/Packaging/include/G4EMBuilder.hh rename to examples/extended/runAndEvent/RE02/include/RE02EMPhysics.hh index 3d7e73032f..81386317c5 100644 --- a/physics_lists/hadronic/Packaging/include/G4EMBuilder.hh +++ b/examples/extended/runAndEvent/RE02/include/RE02EMPhysics.hh @@ -20,12 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4EMBuilder_h -#define G4EMBuilder_h 1 +// $Id: RE02EMPhysics.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// 09-Oct-2003 Chhange gamma, electron, positorn process T. Koi + + +#ifndef RE02EMPhysics_h +#define RE02EMPhysics_h 1 #include "globals.hh" #include "G4ios.hh" +#include "G4VPhysicsConstructor.hh" + #include "G4PhotoElectricEffect.hh" #include "G4ComptonScattering.hh" #include "G4GammaConversion.hh" @@ -34,48 +42,25 @@ #include "G4eBremsstrahlung.hh" #include "G4eplusAnnihilation.hh" -#include "G4EMTailorer.hh" -#include "G4SynchrotronRadiation.hh" -#include "G4ElectroNuclearBuilder.hh" - -class G4EMBuilder +class RE02EMPhysics : public G4VPhysicsConstructor { - public: - G4EMBuilder(); - virtual ~G4EMBuilder(); + public: + RE02EMPhysics(const G4String& name ="EM"); + virtual ~RE02EMPhysics(); - public: - void Build(); - - void Synch(G4String & aState); - void GammaNuclear(G4String & aState); + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + virtual void ConstructParticle(){;}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); protected: - G4PhotoElectricEffect thePhotoEffect; - G4ComptonScattering theComptonEffect; - G4GammaConversion thePairProduction; - - G4MultipleScattering theElectronMultipleScattering; - G4eIonisation theElectronIonisation; - G4eBremsstrahlung theElectronBremsStrahlung; - - G4MultipleScattering thePositronMultipleScattering; - G4eIonisation thePositronIonisation; - G4eBremsstrahlung thePositronBremsStrahlung; - G4eplusAnnihilation theAnnihilation; - G4bool wasActivated; - - G4EMTailorer * theT; - G4SynchrotronRadiation theElectronSynch; - G4SynchrotronRadiation thePositronSynch; - G4bool synchOn; - G4ElectroNuclearBuilder theGNPhysics; - G4bool gammNucOn; + }; -// 2002 by J.P. Wellisch + + #endif - - - - - diff --git a/examples/extended/runAndEvent/RE02/include/RE02EventAction.hh b/examples/extended/runAndEvent/RE02/include/RE02EventAction.hh new file mode 100644 index 0000000000..ddeeb49418 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/include/RE02EventAction.hh @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RE02EventAction.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef RE02EventAction_h +#define RE02EventAction_h 1 + +#include "G4UserEventAction.hh" + +class G4Event; + +// +class RE02EventAction : public G4UserEventAction +{ + public: + RE02EventAction(); + ~RE02EventAction(); + + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); +}; + +// + +#endif + + diff --git a/physics_lists/hadronic/Packaging/include/GeneralPhysics.hh b/examples/extended/runAndEvent/RE02/include/RE02GeneralPhysics.hh similarity index 78% rename from physics_lists/hadronic/Packaging/include/GeneralPhysics.hh rename to examples/extended/runAndEvent/RE02/include/RE02GeneralPhysics.hh index d737f8f1b4..c8e7f6f20a 100644 --- a/physics_lists/hadronic/Packaging/include/GeneralPhysics.hh +++ b/examples/extended/runAndEvent/RE02/include/RE02GeneralPhysics.hh @@ -20,42 +20,36 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef GeneralPhysics_h -#define GeneralPhysics_h 1 +// $Id: RE02GeneralPhysics.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// + +#ifndef RE02GeneralPhysics_h +#define RE02GeneralPhysics_h 1 #include "globals.hh" #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" - -#include "G4Decay.hh" - -class GeneralPhysics : public G4VPhysicsConstructor +class RE02GeneralPhysics : public G4VPhysicsConstructor { - public: - GeneralPhysics(const G4String& name = "general"); - virtual ~GeneralPhysics(); + public: + RE02GeneralPhysics(const G4String& name = "general"); + virtual ~RE02GeneralPhysics(); - public: - // This method will be invoked in the Construct() method. + public: + // This method will be invoked in the Construct() method. // each particle type will be instantiated virtual void ConstructParticle(); - + // This method will be invoked in the Construct() method. // each physics process will be instantiated and - // registered to the process manager of each particle type + // registered to the process manager of each particle type virtual void ConstructProcess(); - protected: - - G4bool wasActivated; - - private: - G4Decay fDecayProcess; }; -// 2002 by J.P. Wellisch #endif diff --git a/examples/extended/runAndEvent/RE02/include/RE02HadronPhysics.hh b/examples/extended/runAndEvent/RE02/include/RE02HadronPhysics.hh new file mode 100644 index 0000000000..250f490ca1 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/include/RE02HadronPhysics.hh @@ -0,0 +1,155 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02HadronPhysics.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// 10-Oct-2003 Full Hadron Processes with Parameterization Model T. Koi + +#ifndef RE02HadronPhysics_h +#define RE02HadronPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4MultipleScattering.hh" +#include "G4hIonisation.hh" + +// Hadronic Processes + +#include "G4HadronElasticProcess.hh" +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" + +#include "G4PionPlusInelasticProcess.hh" +#include "G4PionMinusInelasticProcess.hh" +#include "G4KaonPlusInelasticProcess.hh" +#include "G4KaonZeroSInelasticProcess.hh" +#include "G4KaonZeroLInelasticProcess.hh" +#include "G4KaonMinusInelasticProcess.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4AntiProtonInelasticProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4AntiNeutronInelasticProcess.hh" +#include "G4LambdaInelasticProcess.hh" +#include "G4AntiLambdaInelasticProcess.hh" +#include "G4SigmaPlusInelasticProcess.hh" +#include "G4SigmaMinusInelasticProcess.hh" +#include "G4AntiSigmaPlusInelasticProcess.hh" +#include "G4AntiSigmaMinusInelasticProcess.hh" +#include "G4XiZeroInelasticProcess.hh" +#include "G4XiMinusInelasticProcess.hh" +#include "G4AntiXiZeroInelasticProcess.hh" +#include "G4AntiXiMinusInelasticProcess.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4AlphaInelasticProcess.hh" +#include "G4OmegaMinusInelasticProcess.hh" +#include "G4AntiOmegaMinusInelasticProcess.hh" + +// Binary Cascade Models +#include "G4BinaryCascade.hh" + +// Low energy models +#include "G4LElastic.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" + +#include "G4LEPionPlusInelastic.hh" +#include "G4LEPionMinusInelastic.hh" +#include "G4LEKaonPlusInelastic.hh" +#include "G4LEKaonZeroSInelastic.hh" +#include "G4LEKaonZeroLInelastic.hh" +#include "G4LEKaonMinusInelastic.hh" +#include "G4LEProtonInelastic.hh" +#include "G4LEAntiProtonInelastic.hh" +#include "G4LENeutronInelastic.hh" +#include "G4LEAntiNeutronInelastic.hh" +#include "G4LELambdaInelastic.hh" +#include "G4LEAntiLambdaInelastic.hh" +#include "G4LESigmaPlusInelastic.hh" +#include "G4LESigmaMinusInelastic.hh" +#include "G4LEAntiSigmaPlusInelastic.hh" +#include "G4LEAntiSigmaMinusInelastic.hh" +#include "G4LEXiZeroInelastic.hh" +#include "G4LEXiMinusInelastic.hh" +#include "G4LEAntiXiZeroInelastic.hh" +#include "G4LEAntiXiMinusInelastic.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4LETritonInelastic.hh" +#include "G4LEAlphaInelastic.hh" +#include "G4LEOmegaMinusInelastic.hh" +#include "G4LEAntiOmegaMinusInelastic.hh" + +// High-energy Models + +#include "G4HEPionPlusInelastic.hh" +#include "G4HEPionMinusInelastic.hh" +#include "G4HEKaonPlusInelastic.hh" +#include "G4HEKaonZeroInelastic.hh" +#include "G4HEKaonZeroInelastic.hh" +#include "G4HEKaonMinusInelastic.hh" +#include "G4HEProtonInelastic.hh" +#include "G4HEAntiProtonInelastic.hh" +#include "G4HENeutronInelastic.hh" +#include "G4HEAntiNeutronInelastic.hh" +#include "G4HELambdaInelastic.hh" +#include "G4HEAntiLambdaInelastic.hh" +#include "G4HESigmaPlusInelastic.hh" +#include "G4HESigmaMinusInelastic.hh" +#include "G4HEAntiSigmaPlusInelastic.hh" +#include "G4HEAntiSigmaMinusInelastic.hh" +#include "G4HEXiZeroInelastic.hh" +#include "G4HEXiMinusInelastic.hh" +#include "G4HEAntiXiZeroInelastic.hh" +#include "G4HEAntiXiMinusInelastic.hh" +#include "G4HEOmegaMinusInelastic.hh" +#include "G4HEAntiOmegaMinusInelastic.hh" + +// Stopping processes +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4AntiNeutronAnnihilationAtRest.hh" + +class RE02HadronPhysics : public G4VPhysicsConstructor +{ + public: + RE02HadronPhysics(const G4String& name="hadron"); + virtual ~RE02HadronPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + virtual void ConstructParticle(){;}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + + protected: + +}; + + +#endif + diff --git a/examples/extended/runAndEvent/RE02/include/RE02IonPhysics.hh b/examples/extended/runAndEvent/RE02/include/RE02IonPhysics.hh new file mode 100644 index 0000000000..bbba0487cd --- /dev/null +++ b/examples/extended/runAndEvent/RE02/include/RE02IonPhysics.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02IonPhysics.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// 05-Jan-2004 Add G4ionIonisation T. Koi +// + +#ifndef RE02IonPhysics_h +#define RE02IonPhysics_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +#include "G4HadronElasticProcess.hh" +#include "G4LElastic.hh" + +#include "G4BinaryLightIonReaction.hh" +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" + +#include "G4DeuteronInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" + +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" + +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" +#include "G4MultipleScattering.hh" + +class RE02IonPhysics : public G4VPhysicsConstructor +{ + public: + RE02IonPhysics(const G4String& name="ion"); + virtual ~RE02IonPhysics(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + virtual void ConstructParticle(){;}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + + protected: +}; + + +#endif + diff --git a/physics_lists/hadronic/Packaging/include/MuonPhysics.hh b/examples/extended/runAndEvent/RE02/include/RE02MuonPhysics.hh similarity index 63% rename from physics_lists/hadronic/Packaging/include/MuonPhysics.hh rename to examples/extended/runAndEvent/RE02/include/RE02MuonPhysics.hh index 797894a7dc..a0d60044aa 100644 --- a/physics_lists/hadronic/Packaging/include/MuonPhysics.hh +++ b/examples/extended/runAndEvent/RE02/include/RE02MuonPhysics.hh @@ -20,8 +20,14 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef MuonPhysics_h -#define MuonPhysics_h 1 +// $Id: RE02MuonPhysics.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// 09-Oct-2003 mu+- tau+- processes are changed by T. Koi + + +#ifndef RE02MuonPhysics_h +#define RE02MuonPhysics_h 1 #include "globals.hh" #include "G4ios.hh" @@ -33,44 +39,26 @@ #include "G4MuIonisation.hh" #include "G4hIonisation.hh" -#include "G4MuonMinusCaptureAtRest.hh" - -class MuonPhysics : public G4VPhysicsConstructor +class RE02MuonPhysics : public G4VPhysicsConstructor { - public: - MuonPhysics(const G4String& name="muon"); - virtual ~MuonPhysics(); + public: + RE02MuonPhysics(const G4String& name="muon"); + virtual ~RE02MuonPhysics(); - public: - virtual void ConstructParticle(); - + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + virtual void ConstructParticle(){;}; + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type virtual void ConstructProcess(); protected: - // Muon physics - G4MultipleScattering fMuPlusMultipleScattering; - G4MuBremsstrahlung fMuPlusBremsstrahlung ; - G4MuPairProduction fMuPlusPairProduction; - G4MuIonisation fMuPlusIonisation; - G4MultipleScattering fMuMinusMultipleScattering; - G4MuBremsstrahlung fMuMinusBremsstrahlung ; - G4MuPairProduction fMuMinusPairProduction; - G4MuIonisation fMuMinusIonisation; - - G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; - - // Tau physics - G4MultipleScattering fTauPlusMultipleScattering; - G4hIonisation fTauPlusIonisation; - - G4MultipleScattering fTauMinusMultipleScattering; - G4hIonisation fTauMinusIonisation; - - G4bool wasActivated; }; -// 2002 by J.P. Wellisch #endif diff --git a/examples/extended/runAndEvent/RE02/include/RE02PhantomParameterisation.hh b/examples/extended/runAndEvent/RE02/include/RE02PhantomParameterisation.hh new file mode 100644 index 0000000000..f856515cba --- /dev/null +++ b/examples/extended/runAndEvent/RE02/include/RE02PhantomParameterisation.hh @@ -0,0 +1,89 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RE02PhantomParameterisation.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef RE02PhantomParameterisation_h +#define RE02PhantomParameterisation_h 1 + +#include "globals.hh" +#include "G4VPVParameterisation.hh" +#include "G4ThreeVector.hh" +#include + +class G4VPhysicalVolume; +class G4LogicalVolume; +class G4Material; +class G4VisAttributes; +class G4Box; + +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Tubs; +class G4Polycone; +class G4Polyhedra; + +// +class RE02PhantomParameterisation : public G4VPVParameterisation +{ +public: + + RE02PhantomParameterisation(const G4ThreeVector& motherSize, + const G4int nx, const G4int ny, const G4int nz); + + virtual ~RE02PhantomParameterisation(); + + void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume* physVol)const; + + private: // Dummy declarations to get rid of warnings ... + void ComputeDimensions(G4Box&, const G4int,const G4VPhysicalVolume* ) const{}; + void ComputeDimensions(G4Trd&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Trap&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Cons&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Sphere&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Torus&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Para&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Hype&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Tubs&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions(G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + +private: + G4ThreeVector fDxyzMother; + G4ThreeVector fDxyz; + G4int fNx, fNy, fNz; + std::vector fPositions; + +}; +#endif + diff --git a/physics_lists/hadronic/LHEP_HP/include/LHEP_HP.hh b/examples/extended/runAndEvent/RE02/include/RE02PhysicsList.hh similarity index 81% rename from physics_lists/hadronic/LHEP_HP/include/LHEP_HP.hh rename to examples/extended/runAndEvent/RE02/include/RE02PhysicsList.hh index 56f4bacb52..4fe28ab227 100644 --- a/physics_lists/hadronic/LHEP_HP/include/LHEP_HP.hh +++ b/examples/extended/runAndEvent/RE02/include/RE02PhysicsList.hh @@ -20,31 +20,28 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef TLHEP_HP_h -#define TLHEP_HP_h 1 +// $Id: RE02PhysicsList.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +#ifndef RE02PhysicsList_h +#define RE02PhysicsList_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" -#include "CompileTimeConstraints.hh" -template -class TLHEP_HP: public T +class RE02PhysicsList: public G4VModularPhysicsList { public: - TLHEP_HP(); - virtual ~TLHEP_HP(); - + RE02PhysicsList(); + virtual ~RE02PhysicsList(); + public: - // SetCuts() + // SetCuts() virtual void SetCuts(); -private: - enum {ok = CompileTimeConstraints::IsA::ok }; -}; -#include "LHEP_HP.icc" -typedef TLHEP_HP LHEP_HP; -// 2002 by J.P. Wellisch +}; + #endif diff --git a/examples/advanced/radioprotection/include/RemSimVPrimaryGeneratorFactory.hh b/examples/extended/runAndEvent/RE02/include/RE02PrimaryGeneratorAction.hh similarity index 71% rename from examples/advanced/radioprotection/include/RemSimVPrimaryGeneratorFactory.hh rename to examples/extended/runAndEvent/RE02/include/RE02PrimaryGeneratorAction.hh index f2cd9ea33a..8b187496e8 100644 --- a/examples/advanced/radioprotection/include/RemSimVPrimaryGeneratorFactory.hh +++ b/examples/extended/runAndEvent/RE02/include/RE02PrimaryGeneratorAction.hh @@ -21,29 +21,37 @@ // ******************************************************************** // // -// $Id: RemSimVPrimaryGeneratorFactory.hh,v 1.9 2005/05/19 13:30:59 guatelli Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RE02PrimaryGeneratorAction.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// Code developed by: S.Guatelli, guatelli@ge.infn.it -// -#ifndef RemSimVPrimaryGeneratorFactory_h -#define RemSimVPrimaryGeneratorFactory_h 1 + +#ifndef RE02PrimaryGeneratorAction_h +#define RE02PrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" #include "globals.hh" -class RemSimVPrimaryGeneratorFactory : public G4VUserPrimaryGeneratorAction -{ -public: - RemSimVPrimaryGeneratorFactory(); - virtual ~RemSimVPrimaryGeneratorFactory(); +class RE02DetectorConstruction; +class G4ParticleGun; +class G4Event; -public: - virtual void GeneratePrimaries(G4Event* anEvent)=0; - virtual G4double GetInitialEnergy()=0; - virtual void SetMoon(G4bool)=0; // Set moon configuration - virtual void Read(G4String)=0; +// +class RE02PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + RE02PrimaryGeneratorAction(); + ~RE02PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event*); + + private: + G4double fsigmaPosition; // Initial beam spot size in x-y plane. + G4ParticleGun* particleGun; }; + +// + #endif diff --git a/examples/extended/runAndEvent/RE02/include/RE02Run.hh b/examples/extended/runAndEvent/RE02/include/RE02Run.hh new file mode 100644 index 0000000000..f05f392ac0 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/include/RE02Run.hh @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RE02Run.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------- +// (Purpose) +// Example implementation for multi-functional-detector and +// primitive scorer. +// This RE02Run class has collections which accumulate +// a event information into a run information. +// +//--------------------------------------------------------------------- + +#ifndef RE02Run_h +#define RE02Run_h 1 + +#include "G4Run.hh" +#include "G4Event.hh" + +#include "G4THitsMap.hh" +#include +// +class RE02Run : public G4Run { + +public: + // constructor and destructor. + // vector of multifunctionaldetector name has to given to constructor. + RE02Run(const std::vector mfdName); + virtual ~RE02Run(); + +public: + // virtual method from G4Run. + // The method is overriden in this class for scoring. + virtual void RecordEvent(const G4Event*); + + // Access methods for scoring information. + // - Number of HitsMap for this RUN. + // This is equal to number of collections. + G4int GetNumberOfHitsMap() const {return theRunMap.size();} + // - Get HitsMap of this RUN. + // by sequential number, by multifucntional name and collection name, + // and by collection name with full path. + G4THitsMap* GetHitsMap(G4int i){return theRunMap[i];} + G4THitsMap* GetHitsMap(const G4String& detName, + const G4String& colName); + G4THitsMap* GetHitsMap(const G4String& fullName); + // - Dump All HitsMap of this RUN. + // This method calls G4THisMap::PrintAll() for individual HitsMap. + void DumpAllScorer(); + +private: + std::vector theCollName; + std::vector theCollID; + std::vector*> theRunMap; +}; + +// + +#endif diff --git a/examples/extended/runAndEvent/RE02/include/RE02RunAction.hh b/examples/extended/runAndEvent/RE02/include/RE02RunAction.hh new file mode 100644 index 0000000000..0c14f170ca --- /dev/null +++ b/examples/extended/runAndEvent/RE02/include/RE02RunAction.hh @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RE02RunAction.hh,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef RE02RunAction_h +#define RE02RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" +#include + +class G4Run; + +//======================================================================= +// RE02RunAction +// +// +// +//======================================================================= +// +class RE02RunAction : public G4UserRunAction +{ +public: + // constructor and destructor + RE02RunAction(); + virtual ~RE02RunAction(); + +public: + // virtual method from G4UserRunAction. + virtual G4Run* GenerateRun(); + virtual void BeginOfRunAction(const G4Run*); + virtual void EndOfRunAction(const G4Run*); + +public: + // Utility method for converting segment number of + // water phantom to copyNo of HitsMap. + G4int CopyNo(G4int ix, G4int iy, G4int iz) + { return (ix*(fNy*fNz)+iy*fNz+iz); } + + +private: + // Data member + // - vector of MultiFunctionalDetecor names. + std::vector theSDName; + + // for conversion of sengment number to copyNo. + G4int fNx, fNy, fNz; + +}; + +// + +#endif + + + + + diff --git a/examples/extended/runAndEvent/RE02/run1.log b/examples/extended/runAndEvent/RE02/run1.log new file mode 100644 index 0000000000..efdd405b60 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/run1.log @@ -0,0 +1,1609 @@ + +************************************************************* + Geant4 version Name: geant4-07-01 (30-June-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + +<-- RE02DetectorConstruction ----------------- + Water Phantom Size (200,200,400) + Segmentation (100,100,200) +<--------------------------------------------- +You are using the RE02PhysicsList +This PhysicsList originally comes from +example/extended/analysis/A01, and is modified +in Hadron Physics in order to involve Binary Cascade +at low energy region and inelastic process for generic ions. +Full set of particles (barions bosons and mesons) will be created and +Standard EM Physics and Low & High Energy parameterized models will be applied. +RE02PhysicsList is optimized for robustness +and not for any particular usage. +For the hadronic physics, educated guesses of physics list are prepared for various use cases. +When you will start REAL calculations for your own interest, +please consider the usage of hadronic_lists instead of RE02PhysicsLists. +More information can also be found from the Geant4 HyperNews. +http://geant4-hn.slac.stanford.edu:5090/Geant4-HyperNews/index + +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + FukuiRenderer (DAWN) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + OpenGLImmediateXm (OGLIXm) + OpenGLStoredXm (OGLSXm) + VRML1 (VRML1) + VRML2 (VRML2) + +The materials defined are : + + +***** Table : Nb of materials = 2 ***** + + Material: G4_AIR density: 1.205 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.921 m + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole + ---> Isotope: C Z = 6 N = 12 A = 12.00 g/mole abundance: 98.93 % + ---> Isotope: C Z = 6 N = 13 A = 13.00 g/mole abundance: 1.07 % fractionMass: 0.01 % Abundance 0.02 % + ---> Element: N (N) Z = 7.0 N = 14.0 A = 14.01 g/mole + ---> Isotope: N Z = 7 N = 14 A = 14.00 g/mole abundance: 99.63 % + ---> Isotope: N Z = 7 N = 15 A = 15.00 g/mole abundance: 0.37 % fractionMass: 75.53 % Abundance 78.44 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 23.18 % Abundance 21.07 % + ---> Element: Ar (Ar) Z = 18.0 N = 40.0 A = 39.95 g/mole + ---> Isotope: Ar Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 % + ---> Isotope: Ar Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 % + ---> Isotope: Ar Z = 18 N = 40 A = 39.96 g/mole abundance: 99.60 % fractionMass: 1.28 % Abundance 0.47 % + + Material: G4_WATER density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.083 cm + ---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Isotope: H Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 % + ---> Isotope: H Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 % fractionMass: 11.19 % Abundance 66.67 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 88.81 % Abundance 33.33 % + + +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 1 keV HighE 10 keV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 10 keV HighE 100 keV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 100 keV HighE 1 MeV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 1 MeV HighE 10 MeV +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +/run/verbose 2 +# +# create empty scene +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +# +#/vis/open VRML2FILE +#/vis/open OGLIX +#/vis/open DAWNFILE +# +# draw scene +# +#/vis/viewer/set/viewpointThetaPhi 90 180 deg +#/vis/viewer/zoom 1.4 +#/vis/viewer/flush +# +# for drawing the tracks +# (if too many tracks cause core dump => storeTrajectory 0) +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +# (if you prefer refreshing each event, comment out next line) +/vis/scene/endOfEventAction accumulate +ERROR: No current sceneHandler. Please create one. +# +/gun/particle proton +/gun/energy 150. MeV +/gun/position 0 0 -100 cm +/gun/direction 0 0 1 +# +/run/beamOn 100000 + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +ionIoni: tables are built for GenericIon + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 + +msc: Model variant of multiple scattering for GenericIon + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +Region DefaultRegionForTheWorld + Materials : G4_AIR G4_WATER + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : G4_AIR + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : G4_WATER + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.90186 keV e- 347.138 keV e+ 338.695 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 445090 kByte + Total CPU time elapsed for geometry optimisation: 24 seconds + + Voxelisation: top CPU users: + Percent Total CPU System CPU Memory Volume + ------- ---------- ---------- -------- ---------- + 99.03 23.39 2.02 445091k Phantom + + Voxelisation: top memory users: + Percent Memory Heads Nodes Pointers Total CPU Volume + ------- -------- ------ ------ -------- ---------- ---------- + -3.66 445090k 79801 13840799 16020201 23.39 Phantom +++ PhantomSD/totalEDep id 0 +++ PhantomSD/protonEDep id 1 +++ PhantomSD/protonNStep id 2 +++ PhantomSD/chargedPassCellFlux id 3 +++ PhantomSD/chargedCellFlux id 4 +++ PhantomSD/chargedSurfFlux id 5 +++ PhantomSD/gammaSurfCurr000 id 6 +++ PhantomSD/gammaSurfCurr001 id 7 +++ PhantomSD/gammaSurfCurr002 id 8 +++ PhantomSD/gammaSurfCurr003 id 9 +### Run 0 start. +Start Run processing. +>>> Event 0 +>>> Event 1 +>>> Event 2 +>>> Event 3 +>>> Event 4 +>>> Event 5 +>>> Event 6 +>>> Event 7 +>>> Event 8 +>>> Event 9 +>>> Event 10 +>>> Event 11 +>>> Event 12 +>>> Event 13 +>>> Event 14 +>>> Event 15 +>>> Event 16 +>>> Event 17 +>>> Event 18 +>>> Event 19 +>>> Event 20 +>>> Event 21 +>>> Event 22 +>>> Event 23 +>>> Event 24 +>>> Event 25 +>>> Event 26 +>>> Event 27 +>>> Event 28 +>>> Event 29 +>>> Event 30 +>>> Event 31 +>>> Event 32 +>>> Event 33 +>>> Event 34 +>>> Event 35 +>>> Event 36 +>>> Event 37 +>>> Event 38 +>>> Event 39 +>>> Event 40 +>>> Event 41 +>>> Event 42 +>>> Event 43 +>>> Event 44 +>>> Event 45 +>>> Event 46 +>>> Event 47 +>>> Event 48 +>>> Event 49 +>>> Event 50 +>>> Event 51 +>>> Event 52 +>>> Event 53 +>>> Event 54 +>>> Event 55 +>>> Event 56 +>>> Event 57 +>>> Event 58 +>>> Event 59 +>>> Event 60 +>>> Event 61 +>>> Event 62 +>>> Event 63 +>>> Event 64 +>>> Event 65 +>>> Event 66 +>>> Event 67 +>>> Event 68 +>>> Event 69 +>>> Event 70 +>>> Event 71 +>>> Event 72 +>>> Event 73 +>>> Event 74 +>>> Event 75 +>>> Event 76 +>>> Event 77 +>>> Event 78 +>>> Event 79 +>>> Event 80 +>>> Event 81 +>>> Event 82 +>>> Event 83 +>>> Event 84 +>>> Event 85 +>>> Event 86 +>>> Event 87 +>>> Event 88 +>>> Event 89 +>>> Event 90 +>>> Event 91 +>>> Event 92 +>>> Event 93 +>>> Event 94 +>>> Event 95 +>>> Event 96 +>>> Event 97 +>>> Event 98 +>>> Event 99 +>>> Event 100 +>>> Event 200 +>>> Event 300 +>>> Event 400 +>>> Event 500 +>>> Event 600 +>>> Event 700 +>>> Event 800 +>>> Event 900 +>>> Event 1000 +>>> Event 1100 +>>> Event 1200 +>>> Event 1300 +>>> Event 1400 +>>> Event 1500 +>>> Event 1600 +>>> Event 1700 +>>> Event 1800 +>>> Event 1900 +>>> Event 2000 +>>> Event 2100 +>>> Event 2200 +>>> Event 2300 +>>> Event 2400 +>>> Event 2500 +>>> Event 2600 +>>> Event 2700 +>>> Event 2800 +>>> Event 2900 +>>> Event 3000 +>>> Event 3100 +>>> Event 3200 +>>> Event 3300 +>>> Event 3400 +>>> Event 3500 +>>> Event 3600 +>>> Event 3700 +>>> Event 3800 +>>> Event 3900 +>>> Event 4000 +>>> Event 4100 +>>> Event 4200 +>>> Event 4300 +>>> Event 4400 +>>> Event 4500 +>>> Event 4600 +>>> Event 4700 +>>> Event 4800 +>>> Event 4900 +>>> Event 5000 +>>> Event 5100 +>>> Event 5200 +>>> Event 5300 +>>> Event 5400 +>>> Event 5500 +>>> Event 5600 +>>> Event 5700 +>>> Event 5800 +>>> Event 5900 +>>> Event 6000 +>>> Event 6100 +>>> Event 6200 +>>> Event 6300 +>>> Event 6400 +>>> Event 6500 +>>> Event 6600 +>>> Event 6700 +>>> Event 6800 +>>> Event 6900 +>>> Event 7000 +>>> Event 7100 +>>> Event 7200 +>>> Event 7300 +>>> Event 7400 +>>> Event 7500 +>>> Event 7600 +>>> Event 7700 +>>> Event 7800 +>>> Event 7900 +>>> Event 8000 +>>> Event 8100 +>>> Event 8200 +>>> Event 8300 +>>> Event 8400 +>>> Event 8500 +>>> Event 8600 +>>> Event 8700 +>>> Event 8800 +>>> Event 8900 +>>> Event 9000 +>>> Event 9100 +>>> Event 9200 +>>> Event 9300 +>>> Event 9400 +>>> Event 9500 +>>> Event 9600 +>>> Event 9700 +>>> Event 9800 +>>> Event 9900 +>>> Event 10000 +>>> Event 10100 +>>> Event 10200 +>>> Event 10300 +>>> Event 10400 +>>> Event 10500 +>>> Event 10600 +>>> Event 10700 +>>> Event 10800 +>>> Event 10900 +>>> Event 11000 +>>> Event 11100 +>>> Event 11200 +>>> Event 11300 +>>> Event 11400 +>>> Event 11500 +>>> Event 11600 +>>> Event 11700 +>>> Event 11800 +>>> Event 11900 +>>> Event 12000 +>>> Event 12100 +>>> Event 12200 +>>> Event 12300 +>>> Event 12400 +>>> Event 12500 +>>> Event 12600 +>>> Event 12700 +>>> Event 12800 +>>> Event 12900 +>>> Event 13000 +>>> Event 13100 +>>> Event 13200 +>>> Event 13300 +>>> Event 13400 +>>> Event 13500 +>>> Event 13600 +>>> Event 13700 +>>> Event 13800 +>>> Event 13900 +>>> Event 14000 +>>> Event 14100 +>>> Event 14200 +>>> Event 14300 +>>> Event 14400 +>>> Event 14500 +>>> Event 14600 +>>> Event 14700 +>>> Event 14800 +>>> Event 14900 +>>> Event 15000 +>>> Event 15100 +>>> Event 15200 +>>> Event 15300 +>>> Event 15400 +>>> Event 15500 +>>> Event 15600 +>>> Event 15700 +>>> Event 15800 +>>> Event 15900 +>>> Event 16000 +>>> Event 16100 +>>> Event 16200 +>>> Event 16300 +>>> Event 16400 +>>> Event 16500 +>>> Event 16600 +>>> Event 16700 +>>> Event 16800 +>>> Event 16900 +>>> Event 17000 +>>> Event 17100 +>>> Event 17200 +>>> Event 17300 +>>> Event 17400 +>>> Event 17500 +>>> Event 17600 +>>> Event 17700 +>>> Event 17800 +>>> Event 17900 +>>> Event 18000 +>>> Event 18100 +>>> Event 18200 +>>> Event 18300 +>>> Event 18400 +>>> Event 18500 +>>> Event 18600 +>>> Event 18700 +>>> Event 18800 +>>> Event 18900 +>>> Event 19000 +>>> Event 19100 +>>> Event 19200 +>>> Event 19300 +>>> Event 19400 +>>> Event 19500 +>>> Event 19600 +>>> Event 19700 +>>> Event 19800 +>>> Event 19900 +>>> Event 20000 +>>> Event 20100 +>>> Event 20200 +>>> Event 20300 +>>> Event 20400 +>>> Event 20500 +>>> Event 20600 +>>> Event 20700 +>>> Event 20800 +>>> Event 20900 +>>> Event 21000 +>>> Event 21100 +>>> Event 21200 +>>> Event 21300 +>>> Event 21400 +>>> Event 21500 +>>> Event 21600 +>>> Event 21700 +>>> Event 21800 +>>> Event 21900 +>>> Event 22000 +>>> Event 22100 +>>> Event 22200 +>>> Event 22300 +>>> Event 22400 +>>> Event 22500 +>>> Event 22600 +>>> Event 22700 +>>> Event 22800 +>>> Event 22900 +>>> Event 23000 +>>> Event 23100 +>>> Event 23200 +>>> Event 23300 +>>> Event 23400 +>>> Event 23500 +>>> Event 23600 +>>> Event 23700 +>>> Event 23800 +>>> Event 23900 +>>> Event 24000 +>>> Event 24100 +>>> Event 24200 +>>> Event 24300 +>>> Event 24400 +>>> Event 24500 +>>> Event 24600 +>>> Event 24700 +>>> Event 24800 +>>> Event 24900 +>>> Event 25000 +>>> Event 25100 +>>> Event 25200 +>>> Event 25300 +>>> Event 25400 +>>> Event 25500 +>>> Event 25600 +>>> Event 25700 +>>> Event 25800 +>>> Event 25900 +>>> Event 26000 +>>> Event 26100 +>>> Event 26200 +>>> Event 26300 +>>> Event 26400 +>>> Event 26500 +>>> Event 26600 +>>> Event 26700 +>>> Event 26800 +>>> Event 26900 +>>> Event 27000 +>>> Event 27100 +>>> Event 27200 +>>> Event 27300 +>>> Event 27400 +>>> Event 27500 +>>> Event 27600 +>>> Event 27700 +>>> Event 27800 +>>> Event 27900 +>>> Event 28000 +>>> Event 28100 +>>> Event 28200 +>>> Event 28300 +>>> Event 28400 +>>> Event 28500 +>>> Event 28600 +>>> Event 28700 +>>> Event 28800 +>>> Event 28900 +>>> Event 29000 +>>> Event 29100 +>>> Event 29200 +>>> Event 29300 +>>> Event 29400 +>>> Event 29500 +>>> Event 29600 +>>> Event 29700 +>>> Event 29800 +>>> Event 29900 +>>> Event 30000 +>>> Event 30100 +>>> Event 30200 +>>> Event 30300 +>>> Event 30400 +>>> Event 30500 +>>> Event 30600 +>>> Event 30700 +>>> Event 30800 +>>> Event 30900 +>>> Event 31000 +>>> Event 31100 +>>> Event 31200 +>>> Event 31300 +>>> Event 31400 +>>> Event 31500 +>>> Event 31600 +>>> Event 31700 +>>> Event 31800 +>>> Event 31900 +>>> Event 32000 +>>> Event 32100 +>>> Event 32200 +>>> Event 32300 +>>> Event 32400 +>>> Event 32500 +>>> Event 32600 +>>> Event 32700 +>>> Event 32800 +>>> Event 32900 +>>> Event 33000 +>>> Event 33100 +>>> Event 33200 +>>> Event 33300 +>>> Event 33400 +>>> Event 33500 +>>> Event 33600 +>>> Event 33700 +>>> Event 33800 +>>> Event 33900 +>>> Event 34000 +>>> Event 34100 +>>> Event 34200 +>>> Event 34300 +>>> Event 34400 +>>> Event 34500 +>>> Event 34600 +>>> Event 34700 +>>> Event 34800 +>>> Event 34900 +>>> Event 35000 +>>> Event 35100 +>>> Event 35200 +>>> Event 35300 +>>> Event 35400 +>>> Event 35500 +>>> Event 35600 +>>> Event 35700 +>>> Event 35800 +>>> Event 35900 +>>> Event 36000 +>>> Event 36100 +>>> Event 36200 +>>> Event 36300 +>>> Event 36400 +>>> Event 36500 +>>> Event 36600 +>>> Event 36700 +>>> Event 36800 +>>> Event 36900 +>>> Event 37000 +>>> Event 37100 +>>> Event 37200 +>>> Event 37300 +>>> Event 37400 +>>> Event 37500 +>>> Event 37600 +>>> Event 37700 +>>> Event 37800 +>>> Event 37900 +>>> Event 38000 +>>> Event 38100 +>>> Event 38200 +>>> Event 38300 +>>> Event 38400 +>>> Event 38500 +>>> Event 38600 +>>> Event 38700 +>>> Event 38800 +>>> Event 38900 +>>> Event 39000 +>>> Event 39100 +>>> Event 39200 +>>> Event 39300 +>>> Event 39400 +>>> Event 39500 +>>> Event 39600 +>>> Event 39700 +>>> Event 39800 +>>> Event 39900 +>>> Event 40000 +>>> Event 40100 +>>> Event 40200 +>>> Event 40300 +>>> Event 40400 +>>> Event 40500 +>>> Event 40600 +>>> Event 40700 +>>> Event 40800 +>>> Event 40900 +>>> Event 41000 +>>> Event 41100 +>>> Event 41200 +>>> Event 41300 +>>> Event 41400 +>>> Event 41500 +>>> Event 41600 +>>> Event 41700 +>>> Event 41800 +>>> Event 41900 +>>> Event 42000 +>>> Event 42100 +>>> Event 42200 +>>> Event 42300 +>>> Event 42400 +>>> Event 42500 +>>> Event 42600 +>>> Event 42700 +>>> Event 42800 +>>> Event 42900 +>>> Event 43000 +>>> Event 43100 +>>> Event 43200 +>>> Event 43300 +>>> Event 43400 +>>> Event 43500 +>>> Event 43600 +>>> Event 43700 +>>> Event 43800 +>>> Event 43900 +>>> Event 44000 +>>> Event 44100 +>>> Event 44200 +>>> Event 44300 +>>> Event 44400 +>>> Event 44500 +>>> Event 44600 +>>> Event 44700 +>>> Event 44800 +>>> Event 44900 +>>> Event 45000 +>>> Event 45100 +>>> Event 45200 +>>> Event 45300 +>>> Event 45400 +>>> Event 45500 +>>> Event 45600 +>>> Event 45700 +>>> Event 45800 +>>> Event 45900 +>>> Event 46000 +>>> Event 46100 +>>> Event 46200 +>>> Event 46300 +>>> Event 46400 +>>> Event 46500 +>>> Event 46600 +>>> Event 46700 +>>> Event 46800 +>>> Event 46900 +>>> Event 47000 +>>> Event 47100 +>>> Event 47200 +>>> Event 47300 +>>> Event 47400 +>>> Event 47500 +>>> Event 47600 +>>> Event 47700 +>>> Event 47800 +>>> Event 47900 +>>> Event 48000 +>>> Event 48100 +>>> Event 48200 +>>> Event 48300 +>>> Event 48400 +>>> Event 48500 +>>> Event 48600 +>>> Event 48700 +>>> Event 48800 +>>> Event 48900 +>>> Event 49000 +>>> Event 49100 +>>> Event 49200 +>>> Event 49300 +>>> Event 49400 +>>> Event 49500 +>>> Event 49600 +>>> Event 49700 +>>> Event 49800 +>>> Event 49900 +>>> Event 50000 +>>> Event 50100 +>>> Event 50200 +>>> Event 50300 +>>> Event 50400 +>>> Event 50500 +>>> Event 50600 +>>> Event 50700 +>>> Event 50800 +>>> Event 50900 +>>> Event 51000 +>>> Event 51100 +>>> Event 51200 +>>> Event 51300 +>>> Event 51400 +>>> Event 51500 +>>> Event 51600 +>>> Event 51700 +>>> Event 51800 +>>> Event 51900 +>>> Event 52000 +>>> Event 52100 +>>> Event 52200 +>>> Event 52300 +>>> Event 52400 +>>> Event 52500 +>>> Event 52600 +>>> Event 52700 +>>> Event 52800 +>>> Event 52900 +>>> Event 53000 +>>> Event 53100 +>>> Event 53200 +>>> Event 53300 +>>> Event 53400 +>>> Event 53500 +>>> Event 53600 +>>> Event 53700 +>>> Event 53800 +>>> Event 53900 +>>> Event 54000 +>>> Event 54100 +>>> Event 54200 +>>> Event 54300 +>>> Event 54400 +>>> Event 54500 +>>> Event 54600 +>>> Event 54700 +>>> Event 54800 +>>> Event 54900 +>>> Event 55000 +>>> Event 55100 +>>> Event 55200 +>>> Event 55300 +>>> Event 55400 +>>> Event 55500 +>>> Event 55600 +>>> Event 55700 +>>> Event 55800 +>>> Event 55900 +>>> Event 56000 +>>> Event 56100 +>>> Event 56200 +>>> Event 56300 +>>> Event 56400 +>>> Event 56500 +>>> Event 56600 +>>> Event 56700 +>>> Event 56800 +>>> Event 56900 +>>> Event 57000 +>>> Event 57100 +>>> Event 57200 +>>> Event 57300 +>>> Event 57400 +>>> Event 57500 +>>> Event 57600 +>>> Event 57700 +>>> Event 57800 +>>> Event 57900 +>>> Event 58000 +>>> Event 58100 +>>> Event 58200 +>>> Event 58300 +>>> Event 58400 +>>> Event 58500 +>>> Event 58600 +>>> Event 58700 +>>> Event 58800 +>>> Event 58900 +>>> Event 59000 +>>> Event 59100 +>>> Event 59200 +>>> Event 59300 +>>> Event 59400 +>>> Event 59500 +>>> Event 59600 +>>> Event 59700 +>>> Event 59800 +>>> Event 59900 +>>> Event 60000 +>>> Event 60100 +>>> Event 60200 +>>> Event 60300 +>>> Event 60400 +>>> Event 60500 +>>> Event 60600 +>>> Event 60700 +>>> Event 60800 +>>> Event 60900 +>>> Event 61000 +>>> Event 61100 +>>> Event 61200 +>>> Event 61300 +>>> Event 61400 +>>> Event 61500 +>>> Event 61600 +>>> Event 61700 +>>> Event 61800 +>>> Event 61900 +>>> Event 62000 +>>> Event 62100 +>>> Event 62200 +>>> Event 62300 +>>> Event 62400 +>>> Event 62500 +>>> Event 62600 +>>> Event 62700 +>>> Event 62800 +>>> Event 62900 +>>> Event 63000 +>>> Event 63100 +>>> Event 63200 +>>> Event 63300 +>>> Event 63400 +>>> Event 63500 +>>> Event 63600 +>>> Event 63700 +>>> Event 63800 +>>> Event 63900 +>>> Event 64000 +>>> Event 64100 +>>> Event 64200 +>>> Event 64300 +>>> Event 64400 +>>> Event 64500 +>>> Event 64600 +>>> Event 64700 +>>> Event 64800 +>>> Event 64900 +>>> Event 65000 +>>> Event 65100 +>>> Event 65200 +>>> Event 65300 +>>> Event 65400 +>>> Event 65500 +>>> Event 65600 +>>> Event 65700 +>>> Event 65800 +>>> Event 65900 +>>> Event 66000 +>>> Event 66100 +>>> Event 66200 +>>> Event 66300 +>>> Event 66400 +>>> Event 66500 +>>> Event 66600 +>>> Event 66700 +>>> Event 66800 +>>> Event 66900 +>>> Event 67000 +>>> Event 67100 +>>> Event 67200 +>>> Event 67300 +>>> Event 67400 +>>> Event 67500 +>>> Event 67600 +>>> Event 67700 +>>> Event 67800 +>>> Event 67900 +>>> Event 68000 +>>> Event 68100 +>>> Event 68200 +>>> Event 68300 +>>> Event 68400 +>>> Event 68500 +>>> Event 68600 +>>> Event 68700 +>>> Event 68800 +>>> Event 68900 +>>> Event 69000 +>>> Event 69100 +>>> Event 69200 +>>> Event 69300 +>>> Event 69400 +>>> Event 69500 +>>> Event 69600 +>>> Event 69700 +>>> Event 69800 +>>> Event 69900 +>>> Event 70000 +>>> Event 70100 +>>> Event 70200 +>>> Event 70300 +>>> Event 70400 +>>> Event 70500 +>>> Event 70600 +>>> Event 70700 +>>> Event 70800 +>>> Event 70900 +>>> Event 71000 +>>> Event 71100 +>>> Event 71200 +>>> Event 71300 +>>> Event 71400 +>>> Event 71500 +>>> Event 71600 +>>> Event 71700 +>>> Event 71800 +>>> Event 71900 +>>> Event 72000 +>>> Event 72100 +>>> Event 72200 +>>> Event 72300 +>>> Event 72400 +>>> Event 72500 +>>> Event 72600 +>>> Event 72700 +>>> Event 72800 +>>> Event 72900 +>>> Event 73000 +>>> Event 73100 +>>> Event 73200 +>>> Event 73300 +>>> Event 73400 +>>> Event 73500 +>>> Event 73600 +>>> Event 73700 +>>> Event 73800 +>>> Event 73900 +>>> Event 74000 +>>> Event 74100 +>>> Event 74200 +>>> Event 74300 +>>> Event 74400 +>>> Event 74500 +>>> Event 74600 +>>> Event 74700 +>>> Event 74800 +>>> Event 74900 +>>> Event 75000 +>>> Event 75100 +>>> Event 75200 +>>> Event 75300 +>>> Event 75400 +>>> Event 75500 +>>> Event 75600 +>>> Event 75700 +>>> Event 75800 +>>> Event 75900 +>>> Event 76000 +>>> Event 76100 +>>> Event 76200 +>>> Event 76300 +>>> Event 76400 +>>> Event 76500 +>>> Event 76600 +>>> Event 76700 +>>> Event 76800 +>>> Event 76900 +>>> Event 77000 +>>> Event 77100 +>>> Event 77200 +>>> Event 77300 +>>> Event 77400 +>>> Event 77500 +>>> Event 77600 +>>> Event 77700 +>>> Event 77800 +>>> Event 77900 +>>> Event 78000 +>>> Event 78100 +>>> Event 78200 +>>> Event 78300 +>>> Event 78400 +>>> Event 78500 +>>> Event 78600 +>>> Event 78700 +>>> Event 78800 +>>> Event 78900 +>>> Event 79000 +>>> Event 79100 +>>> Event 79200 +>>> Event 79300 +>>> Event 79400 +>>> Event 79500 +>>> Event 79600 +>>> Event 79700 +>>> Event 79800 +>>> Event 79900 +>>> Event 80000 +>>> Event 80100 +>>> Event 80200 +>>> Event 80300 +>>> Event 80400 +>>> Event 80500 +>>> Event 80600 +>>> Event 80700 +>>> Event 80800 +>>> Event 80900 +>>> Event 81000 +>>> Event 81100 +>>> Event 81200 +>>> Event 81300 +>>> Event 81400 +>>> Event 81500 +>>> Event 81600 +>>> Event 81700 +>>> Event 81800 +>>> Event 81900 +>>> Event 82000 +>>> Event 82100 +>>> Event 82200 +>>> Event 82300 +>>> Event 82400 +>>> Event 82500 +>>> Event 82600 +>>> Event 82700 +>>> Event 82800 +>>> Event 82900 +>>> Event 83000 +>>> Event 83100 +>>> Event 83200 +>>> Event 83300 +>>> Event 83400 +>>> Event 83500 +>>> Event 83600 +>>> Event 83700 +>>> Event 83800 +>>> Event 83900 +>>> Event 84000 +>>> Event 84100 +>>> Event 84200 +>>> Event 84300 +>>> Event 84400 +>>> Event 84500 +>>> Event 84600 +>>> Event 84700 +>>> Event 84800 +>>> Event 84900 +>>> Event 85000 +>>> Event 85100 +>>> Event 85200 +>>> Event 85300 +>>> Event 85400 +>>> Event 85500 +>>> Event 85600 +>>> Event 85700 +>>> Event 85800 +>>> Event 85900 +>>> Event 86000 +>>> Event 86100 +>>> Event 86200 +>>> Event 86300 +>>> Event 86400 +>>> Event 86500 +>>> Event 86600 +>>> Event 86700 +>>> Event 86800 +>>> Event 86900 +>>> Event 87000 +>>> Event 87100 +>>> Event 87200 +>>> Event 87300 +>>> Event 87400 +>>> Event 87500 +>>> Event 87600 +>>> Event 87700 +>>> Event 87800 +>>> Event 87900 +>>> Event 88000 +>>> Event 88100 +>>> Event 88200 +>>> Event 88300 +>>> Event 88400 +>>> Event 88500 +>>> Event 88600 +>>> Event 88700 +>>> Event 88800 +>>> Event 88900 +>>> Event 89000 +>>> Event 89100 +>>> Event 89200 +>>> Event 89300 +>>> Event 89400 +>>> Event 89500 +>>> Event 89600 +>>> Event 89700 +>>> Event 89800 +>>> Event 89900 +>>> Event 90000 +>>> Event 90100 +>>> Event 90200 +>>> Event 90300 +>>> Event 90400 +>>> Event 90500 +>>> Event 90600 +>>> Event 90700 +>>> Event 90800 +>>> Event 90900 +>>> Event 91000 +>>> Event 91100 +>>> Event 91200 +>>> Event 91300 +>>> Event 91400 +>>> Event 91500 +>>> Event 91600 +>>> Event 91700 +>>> Event 91800 +>>> Event 91900 +>>> Event 92000 +>>> Event 92100 +>>> Event 92200 +>>> Event 92300 +>>> Event 92400 +>>> Event 92500 +>>> Event 92600 +>>> Event 92700 +>>> Event 92800 +>>> Event 92900 +>>> Event 93000 +>>> Event 93100 +>>> Event 93200 +>>> Event 93300 +>>> Event 93400 +>>> Event 93500 +>>> Event 93600 +>>> Event 93700 +>>> Event 93800 +>>> Event 93900 +>>> Event 94000 +>>> Event 94100 +>>> Event 94200 +>>> Event 94300 +>>> Event 94400 +>>> Event 94500 +>>> Event 94600 +>>> Event 94700 +>>> Event 94800 +>>> Event 94900 +>>> Event 95000 +>>> Event 95100 +>>> Event 95200 +>>> Event 95300 +>>> Event 95400 +>>> Event 95500 +>>> Event 95600 +>>> Event 95700 +>>> Event 95800 +>>> Event 95900 +>>> Event 96000 +>>> Event 96100 +>>> Event 96200 +>>> Event 96300 +>>> Event 96400 +>>> Event 96500 +>>> Event 96600 +>>> Event 96700 +>>> Event 96800 +>>> Event 96900 +>>> Event 97000 +>>> Event 97100 +>>> Event 97200 +>>> Event 97300 +>>> Event 97400 +>>> Event 97500 +>>> Event 97600 +>>> Event 97700 +>>> Event 97800 +>>> Event 97900 +>>> Event 98000 +>>> Event 98100 +>>> Event 98200 +>>> Event 98300 +>>> Event 98400 +>>> Event 98500 +>>> Event 98600 +>>> Event 98700 +>>> Event 98800 +>>> Event 98900 +>>> Event 99000 +>>> Event 99100 +>>> Event 99200 +>>> Event 99300 +>>> Event 99400 +>>> Event 99500 +>>> Event 99600 +>>> Event 99700 +>>> Event 99800 +>>> Event 99900 +Run terminated. +Run Summary + Number of events processed : 100000 + User=939.26s Real=991.49s Sys=2.29s +============================================================= + Number of event processed : 100000 +============================================================= +#Z Cell# totalEDep protonEDep protonNStep chargedPassCellFlux chargedCellFlux chargedSurfFlux gammaSurfCurr000 gammaSurfCurr001 gammaSurfCurr002 gammaSurfCurr003 + 0 4.4232398 GeV 4.3878668 GeV 4011 99055.376 /cm2 99321.945 /cm2 103402.73 /cm2 0 /cm2 0 /cm2 25 /cm2 275 /cm2 + 1 4.4715837 GeV 4.4401568 GeV 4038 99223.098 /cm2 99462.759 /cm2 99503.62 /cm2 0 /cm2 0 /cm2 50 /cm2 300 /cm2 + 2 4.4737645 GeV 4.4233353 GeV 4039 99082.74 /cm2 99266.776 /cm2 99760.227 /cm2 0 /cm2 0 /cm2 50 /cm2 400 /cm2 + 3 4.5176465 GeV 4.4702885 GeV 4051 98813.884 /cm2 99098.026 /cm2 99118.229 /cm2 0 /cm2 0 /cm2 25 /cm2 475 /cm2 + 4 4.583847 GeV 4.5054674 GeV 4056 98880.857 /cm2 99220.087 /cm2 99260.874 /cm2 0 /cm2 0 /cm2 0 /cm2 475 /cm2 + 5 4.5716819 GeV 4.5088414 GeV 4055 98167.551 /cm2 98624.471 /cm2 98818.04 /cm2 0 /cm2 0 /cm2 25 /cm2 350 /cm2 + 6 4.5890688 GeV 4.5203342 GeV 4041 97803.247 /cm2 98104.786 /cm2 98246.741 /cm2 0 /cm2 0 /cm2 25 /cm2 275 /cm2 + 7 4.6985873 GeV 4.6156714 GeV 4068 98133.84 /cm2 98491.272 /cm2 98325.373 /cm2 0 /cm2 0 /cm2 25 /cm2 450 /cm2 + 8 4.6533425 GeV 4.5539217 GeV 4034 98102.149 /cm2 98291.254 /cm2 98328.404 /cm2 0 /cm2 25 /cm2 25 /cm2 400 /cm2 + 9 4.6504279 GeV 4.5835786 GeV 4026 97611.814 /cm2 97872.28 /cm2 98173.856 /cm2 0 /cm2 0 /cm2 25 /cm2 500 /cm2 + 10 4.6480648 GeV 4.5957942 GeV 4031 97250.844 /cm2 97510.482 /cm2 97584.135 /cm2 0 /cm2 0 /cm2 100 /cm2 325 /cm2 + 11 4.7061681 GeV 4.6245896 GeV 4036 96811.793 /cm2 97248.156 /cm2 97218.292 /cm2 0 /cm2 0 /cm2 0 /cm2 400 /cm2 + 12 4.7317507 GeV 4.6721073 GeV 4007 96590.324 /cm2 96895.547 /cm2 97385.42 /cm2 0 /cm2 25 /cm2 75 /cm2 425 /cm2 + 13 4.6596657 GeV 4.6205688 GeV 3992 96522.878 /cm2 96660.935 /cm2 96776.987 /cm2 0 /cm2 25 /cm2 75 /cm2 625 /cm2 + 14 4.6584196 GeV 4.6127279 GeV 3998 96506.476 /cm2 96647.91 /cm2 96574.22 /cm2 0 /cm2 0 /cm2 50 /cm2 325 /cm2 + 15 4.7509067 GeV 4.6928201 GeV 4011 96283.512 /cm2 96610.348 /cm2 96373.167 /cm2 0 /cm2 0 /cm2 50 /cm2 550 /cm2 + 16 4.8037641 GeV 4.7400508 GeV 3992 95891.377 /cm2 96361.079 /cm2 96508.992 /cm2 0 /cm2 25 /cm2 50 /cm2 500 /cm2 + 17 4.6907655 GeV 4.6386139 GeV 3960 95296.216 /cm2 95544.596 /cm2 95852.825 /cm2 0 /cm2 25 /cm2 25 /cm2 450 /cm2 + 18 4.7331782 GeV 4.6704476 GeV 3947 95052.463 /cm2 95263.437 /cm2 95802.055 /cm2 0 /cm2 25 /cm2 50 /cm2 450 /cm2 + 19 4.7863486 GeV 4.7088362 GeV 3954 93886.499 /cm2 94274.683 /cm2 94545.473 /cm2 0 /cm2 0 /cm2 75 /cm2 650 /cm2 + 20 4.7527909 GeV 4.6923221 GeV 3908 93704.156 /cm2 93922.984 /cm2 94258.712 /cm2 0 /cm2 0 /cm2 75 /cm2 475 /cm2 + 21 4.8596374 GeV 4.750938 GeV 3940 93808.14 /cm2 94152.62 /cm2 93902.915 /cm2 0 /cm2 25 /cm2 100 /cm2 325 /cm2 + 22 4.8307371 GeV 4.7782974 GeV 3927 93934.153 /cm2 94114.589 /cm2 94178.935 /cm2 25 /cm2 0 /cm2 50 /cm2 525 /cm2 + 23 4.8130723 GeV 4.7633959 GeV 3900 93440.601 /cm2 93693.611 /cm2 93916.019 /cm2 0 /cm2 0 /cm2 75 /cm2 650 /cm2 + 24 4.8770902 GeV 4.8077241 GeV 3912 92738.302 /cm2 93137.141 /cm2 93131.181 /cm2 0 /cm2 0 /cm2 100 /cm2 650 /cm2 + 25 4.9561005 GeV 4.8630895 GeV 3891 92681.128 /cm2 92983.28 /cm2 92715.328 /cm2 0 /cm2 0 /cm2 75 /cm2 575 /cm2 + 26 4.9068196 GeV 4.8461895 GeV 3874 91875.524 /cm2 92221.435 /cm2 92934.064 /cm2 0 /cm2 0 /cm2 50 /cm2 475 /cm2 + 27 4.909398 GeV 4.8232368 GeV 3854 91585.829 /cm2 91771.069 /cm2 92126.021 /cm2 25 /cm2 0 /cm2 100 /cm2 500 /cm2 + 28 4.9999339 GeV 4.9525409 GeV 3841 91312.173 /cm2 91677.844 /cm2 91702.057 /cm2 0 /cm2 0 /cm2 75 /cm2 500 /cm2 + 29 4.9882704 GeV 4.9081698 GeV 3819 90409.936 /cm2 90671.678 /cm2 91157.686 /cm2 0 /cm2 0 /cm2 75 /cm2 525 /cm2 + 30 5.0125926 GeV 4.9489273 GeV 3808 89916.211 /cm2 90297.061 /cm2 90183.563 /cm2 0 /cm2 0 /cm2 75 /cm2 475 /cm2 + 31 4.9612415 GeV 4.8906578 GeV 3761 89608.154 /cm2 89810.436 /cm2 90071.476 /cm2 0 /cm2 0 /cm2 50 /cm2 600 /cm2 + 32 4.991046 GeV 4.9545303 GeV 3777 89294.996 /cm2 89517.945 /cm2 89381.682 /cm2 0 /cm2 25 /cm2 100 /cm2 550 /cm2 + 33 5.079562 GeV 4.9993783 GeV 3780 88960.109 /cm2 89432.142 /cm2 89640.113 /cm2 0 /cm2 25 /cm2 50 /cm2 425 /cm2 + 34 5.0920679 GeV 5.0236264 GeV 3733 89088.992 /cm2 89313.879 /cm2 89149.924 /cm2 0 /cm2 25 /cm2 75 /cm2 650 /cm2 + 35 5.0748521 GeV 5.0262598 GeV 3732 88327.069 /cm2 88474.634 /cm2 88632.459 /cm2 0 /cm2 0 /cm2 100 /cm2 425 /cm2 + 36 5.1620776 GeV 5.0900549 GeV 3724 87929.784 /cm2 88282.989 /cm2 88530.893 /cm2 50 /cm2 0 /cm2 50 /cm2 300 /cm2 + 37 5.0895208 GeV 5.027679 GeV 3717 87587.551 /cm2 87790.667 /cm2 87731.923 /cm2 25 /cm2 0 /cm2 100 /cm2 525 /cm2 + 38 5.168185 GeV 5.0969318 GeV 3681 86738.223 /cm2 87022.69 /cm2 87425.133 /cm2 0 /cm2 25 /cm2 25 /cm2 650 /cm2 + 39 5.1153162 GeV 5.0535083 GeV 3637 85759.242 /cm2 85987.804 /cm2 86422.253 /cm2 0 /cm2 50 /cm2 50 /cm2 500 /cm2 + 40 5.1296576 GeV 5.0758407 GeV 3616 85108.694 /cm2 85452.235 /cm2 85401.082 /cm2 0 /cm2 25 /cm2 0 /cm2 475 /cm2 + 41 5.1109637 GeV 5.0696762 GeV 3604 84607.533 /cm2 84817.172 /cm2 84812.134 /cm2 0 /cm2 25 /cm2 100 /cm2 550 /cm2 + 42 5.2006673 GeV 5.141012 GeV 3599 84465.959 /cm2 84730.757 /cm2 84738.544 /cm2 0 /cm2 0 /cm2 100 /cm2 350 /cm2 + 43 5.3119784 GeV 5.2182066 GeV 3603 84460.861 /cm2 84790.68 /cm2 84757.508 /cm2 0 /cm2 25 /cm2 50 /cm2 625 /cm2 + 44 5.3034359 GeV 5.2490879 GeV 3579 84079.973 /cm2 84254.953 /cm2 84553.629 /cm2 0 /cm2 0 /cm2 50 /cm2 500 /cm2 + 45 5.3471278 GeV 5.2859512 GeV 3546 83320.624 /cm2 83631.392 /cm2 83885.089 /cm2 0 /cm2 0 /cm2 75 /cm2 575 /cm2 + 46 5.3259787 GeV 5.2933373 GeV 3515 82562.764 /cm2 82752.843 /cm2 83270.922 /cm2 0 /cm2 0 /cm2 25 /cm2 600 /cm2 + 47 5.3007757 GeV 5.2825194 GeV 3463 81319.303 /cm2 81458.806 /cm2 82259.71 /cm2 0 /cm2 25 /cm2 75 /cm2 425 /cm2 + 48 5.3181273 GeV 5.2647278 GeV 3421 80023.322 /cm2 80312.027 /cm2 80682.755 /cm2 25 /cm2 0 /cm2 0 /cm2 375 /cm2 + 49 5.3401863 GeV 5.2876659 GeV 3377 78889.386 /cm2 79206.433 /cm2 79983.693 /cm2 0 /cm2 25 /cm2 50 /cm2 525 /cm2 + 50 5.3199768 GeV 5.2879912 GeV 3328 78492.131 /cm2 78637.534 /cm2 78469.014 /cm2 0 /cm2 25 /cm2 50 /cm2 450 /cm2 + 51 5.349761 GeV 5.3135699 GeV 3315 77414.301 /cm2 77624.224 /cm2 78070.737 /cm2 0 /cm2 50 /cm2 25 /cm2 525 /cm2 + 52 5.3046527 GeV 5.274051 GeV 3274 76128.884 /cm2 76262.741 /cm2 76911.801 /cm2 0 /cm2 0 /cm2 0 /cm2 475 /cm2 + 53 5.3921645 GeV 5.371355 GeV 3225 76037.465 /cm2 76260.356 /cm2 76167.381 /cm2 0 /cm2 0 /cm2 50 /cm2 375 /cm2 + 54 5.4471419 GeV 5.4032424 GeV 3186 75064.937 /cm2 75234.688 /cm2 75576.96 /cm2 0 /cm2 25 /cm2 0 /cm2 450 /cm2 + 55 5.4752533 GeV 5.4363398 GeV 3181 73937.072 /cm2 74127.73 /cm2 74609.116 /cm2 0 /cm2 0 /cm2 50 /cm2 350 /cm2 + 56 5.523 GeV 5.4841362 GeV 3134 73096.928 /cm2 73260.708 /cm2 73851.545 /cm2 0 /cm2 0 /cm2 0 /cm2 450 /cm2 + 57 5.5129817 GeV 5.4772519 GeV 3071 71740.926 /cm2 71929.056 /cm2 72672.844 /cm2 0 /cm2 0 /cm2 75 /cm2 500 /cm2 + 58 5.6569081 GeV 5.5838512 GeV 3051 70848.567 /cm2 71124.292 /cm2 71657.214 /cm2 0 /cm2 0 /cm2 25 /cm2 375 /cm2 + 59 5.7437741 GeV 5.679147 GeV 3008 69882.78 /cm2 70212.399 /cm2 70822.92 /cm2 0 /cm2 0 /cm2 100 /cm2 375 /cm2 + 60 5.6731657 GeV 5.6331965 GeV 2961 68471.825 /cm2 68689.325 /cm2 69843.494 /cm2 0 /cm2 25 /cm2 50 /cm2 650 /cm2 + 61 5.6446003 GeV 5.5959338 GeV 2899 67152.554 /cm2 67380.287 /cm2 67891.245 /cm2 0 /cm2 0 /cm2 50 /cm2 600 /cm2 + 62 5.6417242 GeV 5.6099808 GeV 2812 65119.909 /cm2 65225.191 /cm2 66322.901 /cm2 0 /cm2 0 /cm2 25 /cm2 400 /cm2 + 63 5.7266333 GeV 5.6899249 GeV 2753 63783.061 /cm2 63883.37 /cm2 64523.602 /cm2 0 /cm2 50 /cm2 0 /cm2 500 /cm2 + 64 5.7090443 GeV 5.6689776 GeV 2701 62847.472 /cm2 62890.809 /cm2 63048.116 /cm2 0 /cm2 0 /cm2 50 /cm2 500 /cm2 + 65 5.7805089 GeV 5.7311239 GeV 2659 61763.08 /cm2 61940.373 /cm2 62343.679 /cm2 0 /cm2 25 /cm2 25 /cm2 500 /cm2 + 66 5.8869768 GeV 5.8502915 GeV 2593 59908.09 /cm2 60073.201 /cm2 61220.744 /cm2 0 /cm2 0 /cm2 50 /cm2 500 /cm2 + 67 5.8775528 GeV 5.858811 GeV 2499 58190.805 /cm2 58281.325 /cm2 59105.665 /cm2 0 /cm2 0 /cm2 25 /cm2 350 /cm2 + 68 6.0147484 GeV 5.9339838 GeV 2468 56735.819 /cm2 56986.226 /cm2 57401.695 /cm2 0 /cm2 0 /cm2 25 /cm2 375 /cm2 + 69 6.119374 GeV 6.0481338 GeV 2398 54761.554 /cm2 55029.463 /cm2 56281.494 /cm2 0 /cm2 0 /cm2 25 /cm2 425 /cm2 + 70 6.2557059 GeV 6.1662011 GeV 2313 52911.342 /cm2 53167.476 /cm2 53892.141 /cm2 0 /cm2 0 /cm2 25 /cm2 675 /cm2 + 71 6.4440011 GeV 6.396388 GeV 2257 52026.824 /cm2 52242.509 /cm2 52595.914 /cm2 0 /cm2 0 /cm2 75 /cm2 375 /cm2 + 72 6.7551309 GeV 6.6968531 GeV 2224 50743.012 /cm2 50909.832 /cm2 51285.965 /cm2 0 /cm2 0 /cm2 50 /cm2 400 /cm2 + 73 7.1513626 GeV 7.0801472 GeV 2184 49232.266 /cm2 49572.365 /cm2 50479.408 /cm2 0 /cm2 0 /cm2 50 /cm2 425 /cm2 + 74 7.67016 GeV 7.5425245 GeV 2090 47430.373 /cm2 47854.575 /cm2 48561.983 /cm2 0 /cm2 0 /cm2 50 /cm2 375 /cm2 + 75 8.4061502 GeV 8.3452796 GeV 2051 46047.287 /cm2 46269.48 /cm2 46821.604 /cm2 50 /cm2 0 /cm2 100 /cm2 475 /cm2 + 76 10.101728 GeV 10.061923 GeV 2167 43808.402 /cm2 44660.319 /cm2 45745.099 /cm2 0 /cm2 0 /cm2 50 /cm2 375 /cm2 + 77 12.690606 GeV 12.645475 GeV 2520 33859.574 /cm2 39308.844 /cm2 43458.45 /cm2 0 /cm2 0 /cm2 0 /cm2 275 /cm2 + 78 10.849165 GeV 10.827342 GeV 2127 14320.982 /cm2 23374.753 /cm2 32622.083 /cm2 0 /cm2 0 /cm2 25 /cm2 200 /cm2 + 79 4.1240436 GeV 4.1117495 GeV 774 1578.823 /cm2 6346.2002 /cm2 13698.898 /cm2 0 /cm2 50 /cm2 25 /cm2 300 /cm2 + 80 313.38809 MeV 313.38809 MeV 65 18.096945 /cm2 368.91656 /cm2 1363.2684 /cm2 0 /cm2 0 /cm2 25 /cm2 250 /cm2 + 81 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 175 /cm2 + 82 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 + 83 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 84 433.8693 keV 0 eV 0 0 /cm2 0.017312319 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 85 180.05715 keV 0 eV 0 15.233907 /cm2 15.233907 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 86 333.51427 keV 0 eV 0 29.302477 /cm2 29.302477 /cm2 49.014324 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 + 87 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 + 88 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 89 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 90 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 + 91 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 92 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 93 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 94 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 95 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 96 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 + 97 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 98 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 99 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 100 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 101 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 102 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 103 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 104 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 105 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 106 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 107 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 108 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 109 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 110 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 111 3.6987633 keV 0 eV 0 0 /cm2 0.0058194177 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 112 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 113 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 114 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 115 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 116 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 117 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 118 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 119 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 120 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 121 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 122 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 123 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 124 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 125 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 126 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 127 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 128 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 129 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 130 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 131 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 132 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 133 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 134 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 135 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 136 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 137 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 138 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 139 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 140 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 141 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 142 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 143 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 144 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 145 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 146 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 147 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 148 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 149 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 150 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 151 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 152 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 153 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 154 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 155 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 156 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 157 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 158 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 159 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 160 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 161 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 162 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 163 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 164 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 165 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 166 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 167 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 168 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 169 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 170 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 171 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 172 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 173 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 174 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 175 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 176 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 177 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 178 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 179 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 180 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 181 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 182 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 183 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 184 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 185 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 186 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 187 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 188 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 189 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 190 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 191 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 192 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 193 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 194 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 195 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 196 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 197 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 198 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 199 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 +============================================= +Graphics systems deleted. +Visualization Manager deleting... +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. +G4SDManager deleted. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. +RunManager is deleting. diff --git a/examples/extended/runAndEvent/RE02/run1.mac b/examples/extended/runAndEvent/RE02/run1.mac new file mode 100644 index 0000000000..243585b02e --- /dev/null +++ b/examples/extended/runAndEvent/RE02/run1.mac @@ -0,0 +1,40 @@ +# +# Macro file for the initialization phase of "exampleRE02.cc" +# when runing in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/run/verbose 2 +# +# create empty scene +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +# +#/vis/open VRML2FILE +#/vis/open OGLIX +#/vis/open DAWNFILE +# +# draw scene +# +#/vis/viewer/set/viewpointThetaPhi 90 180 deg +#/vis/viewer/zoom 1.4 +#/vis/viewer/flush +# +# for drawing the tracks +# (if too many tracks cause core dump => storeTrajectory 0) +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +# (if you prefer refreshing each event, comment out next line) +/vis/scene/endOfEventAction accumulate +# +/gun/particle proton +/gun/energy 150. MeV +/gun/position 0 0 -100 cm +/gun/direction 0 0 1 +# +/run/beamOn 100000 + diff --git a/examples/extended/runAndEvent/RE02/run2.log b/examples/extended/runAndEvent/RE02/run2.log new file mode 100644 index 0000000000..8067eb3e58 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/run2.log @@ -0,0 +1,716 @@ + +************************************************************* + Geant4 version Name: geant4-07-01 (30-June-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + +<-- RE02DetectorConstruction ----------------- + Water Phantom Size (200,200,400) + Segmentation (100,100,200) +<--------------------------------------------- +You are using the RE02PhysicsList +This PhysicsList originally comes from +example/extended/analysis/A01, and is modified +in Hadron Physics in order to involve Binary Cascade +at low energy region and inelastic process for generic ions. +Full set of particles (barions bosons and mesons) will be created and +Standard EM Physics and Low & High Energy parameterized models will be applied. +RE02PhysicsList is optimized for robustness +and not for any particular usage. +For the hadronic physics, educated guesses of physics list are prepared for various use cases. +When you will start REAL calculations for your own interest, +please consider the usage of hadronic_lists instead of RE02PhysicsLists. +More information can also be found from the Geant4 HyperNews. +http://geant4-hn.slac.stanford.edu:5090/Geant4-HyperNews/index + +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + FukuiRenderer (DAWN) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + OpenGLImmediateXm (OGLIXm) + OpenGLStoredXm (OGLSXm) + VRML1 (VRML1) + VRML2 (VRML2) + +The materials defined are : + + +***** Table : Nb of materials = 2 ***** + + Material: G4_AIR density: 1.205 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.921 m + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole + ---> Isotope: C Z = 6 N = 12 A = 12.00 g/mole abundance: 98.93 % + ---> Isotope: C Z = 6 N = 13 A = 13.00 g/mole abundance: 1.07 % fractionMass: 0.01 % Abundance 0.02 % + ---> Element: N (N) Z = 7.0 N = 14.0 A = 14.01 g/mole + ---> Isotope: N Z = 7 N = 14 A = 14.00 g/mole abundance: 99.63 % + ---> Isotope: N Z = 7 N = 15 A = 15.00 g/mole abundance: 0.37 % fractionMass: 75.53 % Abundance 78.44 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 23.18 % Abundance 21.07 % + ---> Element: Ar (Ar) Z = 18.0 N = 40.0 A = 39.95 g/mole + ---> Isotope: Ar Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 % + ---> Isotope: Ar Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 % + ---> Isotope: Ar Z = 18 N = 40 A = 39.96 g/mole abundance: 99.60 % fractionMass: 1.28 % Abundance 0.47 % + + Material: G4_WATER density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.083 cm + ---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Isotope: H Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 % + ---> Isotope: H Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 % fractionMass: 11.19 % Abundance 66.67 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 88.81 % Abundance 33.33 % + + +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 1 keV HighE 10 keV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 10 keV HighE 100 keV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 100 keV HighE 1 MeV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 1 MeV HighE 10 MeV +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +/run/verbose 2 +/event/verbose 0 +#/tracking/verbose 1 +# +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +#/vis/open OGLIX +#/vis/open DAWNFILE +#/vis/open VRML2FILE +# +# viewer settings +#/vis/viewer/set/viewpointThetaPhi 90 180 deg +#/vis/viewer/zoom 1.4 +# +# Store trajectory +#/tracking/storeTrajectory 1 +#/vis/scene/add/trajectories +#/vis/scene/endOfEventAction accumulate +# +# +# Beam Parameters +# for carbon ion. +# UIcommands from G4ParticleGun. +# +/gun/particle ion +/gun/ion 6 12 +# +# Kinetic Energy. +# 195.MeV/u * 12(AtomicMass) = 2340. MeV +# +/gun/energy 2340. MeV +# +/gun/position 0 0 -100 cm +/gun/direction 0 0 1 +# +/run/beamOn 10000 + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +ionIoni: tables are built for GenericIon + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 + +msc: Model variant of multiple scattering for C12[0.0] + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +Region DefaultRegionForTheWorld + Materials : G4_AIR G4_WATER + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : G4_AIR + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : G4_WATER + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.90186 keV e- 347.138 keV e+ 338.695 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 445090 kByte + Total CPU time elapsed for geometry optimisation: 24 seconds + + Voxelisation: top CPU users: + Percent Total CPU System CPU Memory Volume + ------- ---------- ---------- -------- ---------- + 99.07 23.45 1.71 445091k Phantom + + Voxelisation: top memory users: + Percent Memory Heads Nodes Pointers Total CPU Volume + ------- -------- ------ ------ -------- ---------- ---------- + -3.66 445090k 79801 13840799 16020201 23.45 Phantom +++ PhantomSD/totalEDep id 0 +++ PhantomSD/protonEDep id 1 +++ PhantomSD/protonNStep id 2 +++ PhantomSD/chargedPassCellFlux id 3 +++ PhantomSD/chargedCellFlux id 4 +++ PhantomSD/chargedSurfFlux id 5 +++ PhantomSD/gammaSurfCurr000 id 6 +++ PhantomSD/gammaSurfCurr001 id 7 +++ PhantomSD/gammaSurfCurr002 id 8 +++ PhantomSD/gammaSurfCurr003 id 9 +### Run 0 start. +Start Run processing. +>>> Event 0 +>>> Event 1 +>>> Event 2 +>>> Event 3 +>>> Event 4 +>>> Event 5 +>>> Event 6 +>>> Event 7 +>>> Event 8 +>>> Event 9 +>>> Event 10 +>>> Event 11 +>>> Event 12 +>>> Event 13 +>>> Event 14 +>>> Event 15 +>>> Event 16 +>>> Event 17 +>>> Event 18 +>>> Event 19 +>>> Event 20 +>>> Event 21 +>>> Event 22 +>>> Event 23 +>>> Event 24 +>>> Event 25 +>>> Event 26 +>>> Event 27 +>>> Event 28 +>>> Event 29 +>>> Event 30 +>>> Event 31 +>>> Event 32 +>>> Event 33 +>>> Event 34 +>>> Event 35 +>>> Event 36 +>>> Event 37 +>>> Event 38 +>>> Event 39 +>>> Event 40 +>>> Event 41 +>>> Event 42 +>>> Event 43 +>>> Event 44 +>>> Event 45 +>>> Event 46 +>>> Event 47 +>>> Event 48 +>>> Event 49 +>>> Event 50 +>>> Event 51 +>>> Event 52 +>>> Event 53 +>>> Event 54 +>>> Event 55 +>>> Event 56 +>>> Event 57 +>>> Event 58 +>>> Event 59 +>>> Event 60 +>>> Event 61 +>>> Event 62 +>>> Event 63 +>>> Event 64 +>>> Event 65 +>>> Event 66 +>>> Event 67 +>>> Event 68 +>>> Event 69 +>>> Event 70 +>>> Event 71 +>>> Event 72 +>>> Event 73 +>>> Event 74 +>>> Event 75 +>>> Event 76 +>>> Event 77 +>>> Event 78 +>>> Event 79 +>>> Event 80 +>>> Event 81 +>>> Event 82 +>>> Event 83 +>>> Event 84 +>>> Event 85 +>>> Event 86 +>>> Event 87 +>>> Event 88 +>>> Event 89 +>>> Event 90 +>>> Event 91 +>>> Event 92 +>>> Event 93 +>>> Event 94 +>>> Event 95 +>>> Event 96 +>>> Event 97 +>>> Event 98 +>>> Event 99 +>>> Event 100 +>>> Event 200 +>>> Event 300 +>>> Event 400 +>>> Event 500 +>>> Event 600 +>>> Event 700 +>>> Event 800 +>>> Event 900 +>>> Event 1000 +>>> Event 1100 +>>> Event 1200 +>>> Event 1300 +>>> Event 1400 +>>> Event 1500 +>>> Event 1600 +>>> Event 1700 +>>> Event 1800 +>>> Event 1900 +>>> Event 2000 +>>> Event 2100 +>>> Event 2200 +>>> Event 2300 +>>> Event 2400 +>>> Event 2500 +>>> Event 2600 +>>> Event 2700 +>>> Event 2800 +>>> Event 2900 +>>> Event 3000 +>>> Event 3100 +>>> Event 3200 +>>> Event 3300 +>>> Event 3400 +>>> Event 3500 +>>> Event 3600 +>>> Event 3700 +>>> Event 3800 +>>> Event 3900 +>>> Event 4000 +>>> Event 4100 +>>> Event 4200 +>>> Event 4300 +>>> Event 4400 +>>> Event 4500 +>>> Event 4600 +>>> Event 4700 +>>> Event 4800 +>>> Event 4900 +>>> Event 5000 +>>> Event 5100 +>>> Event 5200 +>>> Event 5300 +>>> Event 5400 +>>> Event 5500 +>>> Event 5600 +>>> Event 5700 +>>> Event 5800 +>>> Event 5900 +>>> Event 6000 +>>> Event 6100 +>>> Event 6200 +>>> Event 6300 +>>> Event 6400 +>>> Event 6500 +>>> Event 6600 +>>> Event 6700 +>>> Event 6800 +>>> Event 6900 +>>> Event 7000 +>>> Event 7100 +>>> Event 7200 +>>> Event 7300 +>>> Event 7400 +>>> Event 7500 +>>> Event 7600 +>>> Event 7700 +>>> Event 7800 +>>> Event 7900 +>>> Event 8000 +>>> Event 8100 +>>> Event 8200 +>>> Event 8300 +>>> Event 8400 +>>> Event 8500 +>>> Event 8600 +>>> Event 8700 +>>> Event 8800 +>>> Event 8900 +>>> Event 9000 +>>> Event 9100 +>>> Event 9200 +>>> Event 9300 +>>> Event 9400 +>>> Event 9500 +>>> Event 9600 +>>> Event 9700 +>>> Event 9800 +>>> Event 9900 +Run terminated. +Run Summary + Number of events processed : 10000 + User=2256.63s Real=2345.91s Sys=1.67s +============================================================= + Number of event processed : 10000 +============================================================= +#Z Cell# totalEDep protonEDep protonNStep chargedPassCellFlux chargedCellFlux chargedSurfFlux gammaSurfCurr000 gammaSurfCurr001 gammaSurfCurr002 gammaSurfCurr003 + 0 13.531336 GeV 4.4119161 MeV 7 10326.638 /cm2 15728.127 /cm2 16749.298 /cm2 0 /cm2 75 /cm2 25 /cm2 100 /cm2 + 1 13.792529 GeV 43.084361 MeV 24 11004.24 /cm2 17066.404 /cm2 19296.168 /cm2 0 /cm2 200 /cm2 150 /cm2 150 /cm2 + 2 13.867095 GeV 76.771712 MeV 38 11063.589 /cm2 17234.418 /cm2 17803.759 /cm2 0 /cm2 225 /cm2 125 /cm2 150 /cm2 + 3 14.009395 GeV 67.175663 MeV 47 11153.156 /cm2 16647.585 /cm2 17955.947 /cm2 25 /cm2 375 /cm2 100 /cm2 225 /cm2 + 4 14.112976 GeV 61.812029 MeV 52 11369.869 /cm2 16983.504 /cm2 36945.189 /cm2 0 /cm2 200 /cm2 100 /cm2 200 /cm2 + 5 14.420956 GeV 120.67697 MeV 71 11152.441 /cm2 17060.692 /cm2 19811.24 /cm2 0 /cm2 200 /cm2 50 /cm2 300 /cm2 + 6 14.43361 GeV 113.14005 MeV 72 11388.304 /cm2 16311.164 /cm2 14754.424 /cm2 25 /cm2 225 /cm2 50 /cm2 425 /cm2 + 7 14.345366 GeV 88.656278 MeV 66 11543.928 /cm2 16038.309 /cm2 18301.562 /cm2 0 /cm2 200 /cm2 175 /cm2 250 /cm2 + 8 14.35585 GeV 96.779839 MeV 73 11472.914 /cm2 15345.007 /cm2 22630.598 /cm2 0 /cm2 200 /cm2 125 /cm2 175 /cm2 + 9 14.385367 GeV 74.668668 MeV 61 11426.995 /cm2 14389.937 /cm2 16553.973 /cm2 0 /cm2 250 /cm2 50 /cm2 225 /cm2 + 10 14.790008 GeV 122.07539 MeV 70 11396.584 /cm2 14695.39 /cm2 15021.213 /cm2 25 /cm2 200 /cm2 100 /cm2 450 /cm2 + 11 14.858361 GeV 103.69308 MeV 80 11452.049 /cm2 14061.199 /cm2 14363.125 /cm2 0 /cm2 50 /cm2 100 /cm2 350 /cm2 + 12 14.758371 GeV 129.27812 MeV 93 11630.832 /cm2 13953.093 /cm2 12851.329 /cm2 0 /cm2 175 /cm2 100 /cm2 400 /cm2 + 13 14.973667 GeV 118.57643 MeV 96 11811.027 /cm2 13330.97 /cm2 15393.79 /cm2 0 /cm2 50 /cm2 75 /cm2 425 /cm2 + 14 15.035222 GeV 129.09758 MeV 88 11700.383 /cm2 12571.131 /cm2 13428.845 /cm2 0 /cm2 100 /cm2 25 /cm2 325 /cm2 + 15 15.038969 GeV 116.33783 MeV 81 11485.649 /cm2 11842.105 /cm2 12217.958 /cm2 0 /cm2 100 /cm2 50 /cm2 450 /cm2 + 16 15.439206 GeV 143.20903 MeV 88 11587.629 /cm2 11806.972 /cm2 11944.097 /cm2 0 /cm2 100 /cm2 25 /cm2 500 /cm2 + 17 15.543256 GeV 162.96176 MeV 97 11614.137 /cm2 11851.626 /cm2 11795.817 /cm2 0 /cm2 125 /cm2 50 /cm2 375 /cm2 + 18 15.849847 GeV 122.51886 MeV 85 11430.3 /cm2 11711.178 /cm2 11650.05 /cm2 0 /cm2 25 /cm2 25 /cm2 375 /cm2 + 19 16.101812 GeV 125.2569 MeV 86 11739.037 /cm2 11871.919 /cm2 11768.796 /cm2 0 /cm2 25 /cm2 50 /cm2 350 /cm2 + 20 16.449446 GeV 161.81 MeV 96 11772.065 /cm2 12063.23 /cm2 12124.949 /cm2 0 /cm2 25 /cm2 50 /cm2 425 /cm2 + 21 16.687689 GeV 135.59536 MeV 89 11940.212 /cm2 12076.103 /cm2 12075.615 /cm2 0 /cm2 25 /cm2 100 /cm2 400 /cm2 + 22 17.083267 GeV 172.72502 MeV 100 11882.225 /cm2 12169.756 /cm2 12074.587 /cm2 0 /cm2 25 /cm2 25 /cm2 350 /cm2 + 23 17.483878 GeV 218.56948 MeV 120 12163.828 /cm2 12695.102 /cm2 12385.203 /cm2 0 /cm2 0 /cm2 75 /cm2 225 /cm2 + 24 17.566726 GeV 202.63901 MeV 120 12581.8 /cm2 12925.179 /cm2 13736.716 /cm2 0 /cm2 0 /cm2 100 /cm2 350 /cm2 + 25 17.64148 GeV 190.46004 MeV 101 12384.844 /cm2 12543.406 /cm2 12737.82 /cm2 0 /cm2 0 /cm2 25 /cm2 300 /cm2 + 26 17.828381 GeV 155.20817 MeV 97 11808.261 /cm2 12089.364 /cm2 12485.29 /cm2 0 /cm2 50 /cm2 25 /cm2 475 /cm2 + 27 18.140536 GeV 129.69171 MeV 79 11722.177 /cm2 11926.287 /cm2 11663.398 /cm2 0 /cm2 0 /cm2 50 /cm2 500 /cm2 + 28 18.604132 GeV 126.49839 MeV 85 11841.062 /cm2 12032.609 /cm2 11978.173 /cm2 0 /cm2 25 /cm2 50 /cm2 475 /cm2 + 29 19.370532 GeV 186.23784 MeV 102 11833.122 /cm2 12231.3 /cm2 11940.383 /cm2 0 /cm2 50 /cm2 125 /cm2 450 /cm2 + 30 19.975445 GeV 202.2853 MeV 104 12014.465 /cm2 12380.692 /cm2 12213.324 /cm2 0 /cm2 25 /cm2 75 /cm2 450 /cm2 + 31 20.622066 GeV 194.35977 MeV 103 12103.131 /cm2 12395.073 /cm2 12387.701 /cm2 0 /cm2 0 /cm2 125 /cm2 300 /cm2 + 32 21.577189 GeV 212.06409 MeV 104 11747.052 /cm2 12243.755 /cm2 12138.508 /cm2 0 /cm2 0 /cm2 75 /cm2 275 /cm2 + 33 22.820571 GeV 186.06013 MeV 104 11956.109 /cm2 12291.048 /cm2 12668.87 /cm2 0 /cm2 0 /cm2 125 /cm2 325 /cm2 + 34 23.828473 GeV 182.28744 MeV 86 11932.927 /cm2 12117.021 /cm2 12475.522 /cm2 0 /cm2 50 /cm2 75 /cm2 300 /cm2 + 35 25.198673 GeV 206.77718 MeV 97 11470.605 /cm2 11839.278 /cm2 11847.794 /cm2 0 /cm2 0 /cm2 75 /cm2 275 /cm2 + 36 26.284447 GeV 213.79134 MeV 89 11145.378 /cm2 11450.627 /cm2 11805.794 /cm2 0 /cm2 0 /cm2 25 /cm2 400 /cm2 + 37 28.142542 GeV 159.50305 MeV 75 10884.545 /cm2 11047.571 /cm2 11156.692 /cm2 0 /cm2 0 /cm2 25 /cm2 325 /cm2 + 38 32.183798 GeV 214.90299 MeV 92 10741.797 /cm2 11156.89 /cm2 11091.984 /cm2 0 /cm2 0 /cm2 50 /cm2 275 /cm2 + 39 37.933241 GeV 233.44046 MeV 88 10509.192 /cm2 10843.096 /cm2 11077.52 /cm2 0 /cm2 0 /cm2 75 /cm2 300 /cm2 + 40 54.702868 GeV 155.56501 MeV 63 10286.484 /cm2 10452.047 /cm2 10916.427 /cm2 0 /cm2 0 /cm2 75 /cm2 250 /cm2 + 41 45.547367 GeV 102.98082 MeV 45 2862.7571 /cm2 5292.8797 /cm2 9997.5227 /cm2 0 /cm2 0 /cm2 50 /cm2 150 /cm2 + 42 2.4440587 GeV 90.418814 MeV 39 2575.2062 /cm2 2644.3506 /cm2 2630.8135 /cm2 0 /cm2 0 /cm2 25 /cm2 150 /cm2 + 43 1.8114216 GeV 94.003087 MeV 36 2181.6845 /cm2 2292.2508 /cm2 2453.2913 /cm2 0 /cm2 0 /cm2 25 /cm2 125 /cm2 + 44 1.8350681 GeV 58.738894 MeV 29 1898.2037 /cm2 1957.8879 /cm2 2086.5628 /cm2 0 /cm2 0 /cm2 75 /cm2 50 /cm2 + 45 1.6093262 GeV 44.728854 MeV 21 1632.2175 /cm2 1655.496 /cm2 1712.7238 /cm2 0 /cm2 0 /cm2 50 /cm2 100 /cm2 + 46 1.7469079 GeV 32.219458 MeV 15 1505.7658 /cm2 1580.3678 /cm2 1613.1219 /cm2 0 /cm2 0 /cm2 50 /cm2 100 /cm2 + 47 1.4202252 GeV 22.740958 MeV 12 1446.0838 /cm2 1464.5572 /cm2 1508.4952 /cm2 0 /cm2 0 /cm2 50 /cm2 25 /cm2 + 48 1.2677691 GeV 20.438753 MeV 15 1273.1934 /cm2 1317.6046 /cm2 1428.834 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 49 892.25173 MeV 20.306269 MeV 10 1171.1082 /cm2 1188.9376 /cm2 1228.3424 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 50 903.25161 MeV 22.0392 MeV 11 1114.8059 /cm2 1139.2218 /cm2 1153.0218 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 51 839.43406 MeV 28.619067 MeV 12 1117.9914 /cm2 1127.6598 /cm2 1080.3383 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 + 52 1.0436738 GeV 24.624362 MeV 10 856.52832 /cm2 969.41504 /cm2 1055.1548 /cm2 0 /cm2 0 /cm2 25 /cm2 75 /cm2 + 53 499.24093 MeV 18.743581 MeV 7 772.84176 /cm2 790.03279 /cm2 827.09959 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 + 54 442.41707 MeV 21.191085 MeV 10 699.36238 /cm2 735.31677 /cm2 787.10444 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 + 55 214.75091 MeV 11.899491 MeV 8 635.47272 /cm2 635.47272 /cm2 676.41815 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 56 236.21592 MeV 14.074045 MeV 8 593.20456 /cm2 605.66835 /cm2 626.27717 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 57 168.04271 MeV 13.637095 MeV 8 561.54943 /cm2 562.81799 /cm2 601.24663 /cm2 0 /cm2 25 /cm2 0 /cm2 25 /cm2 + 58 125.54363 MeV 14.242124 MeV 8 489.37115 /cm2 495.49755 /cm2 501.35512 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 59 107.2776 MeV 10.962101 MeV 6 450.8766 /cm2 450.8766 /cm2 450.85386 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 60 113.16645 MeV 11.019038 MeV 6 407.82001 /cm2 416.77436 /cm2 450.88883 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 61 114.66795 MeV 7.8833876 MeV 4 340.65694 /cm2 381.66063 /cm2 375.87509 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 62 116.91396 MeV 6.4866776 MeV 2 325.41567 /cm2 336.21929 /cm2 352.79968 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 63 91.385165 MeV 7.2068942 MeV 2 304.0872 /cm2 304.0872 /cm2 303.55335 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 64 103.0146 MeV 9.8017948 MeV 2 224.94831 /cm2 239.58401 /cm2 305.78585 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 65 108.43236 MeV 1.3422545 MeV 2 201.03482 /cm2 212.93359 /cm2 200.22645 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 + 66 93.961229 MeV 7.1106292 MeV 2 247.3677 /cm2 247.3677 /cm2 251.65507 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 67 97.648719 MeV 12.281207 MeV 3 249.65519 /cm2 249.65519 /cm2 251.6644 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 68 107.40054 MeV 7.5890735 MeV 3 199.56591 /cm2 219.17764 /cm2 226.61397 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 69 72.96407 MeV 2.2274904 MeV 1 164.68495 /cm2 164.68495 /cm2 176.15107 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 70 48.336577 MeV 0 eV 0 125.05734 /cm2 128.12974 /cm2 150.10151 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 71 42.427708 MeV 0 eV 0 147.80416 /cm2 147.80416 /cm2 125.06481 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 72 46.328238 MeV 0 eV 0 150.11597 /cm2 150.11597 /cm2 150.1127 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 73 49.561951 MeV 0 eV 0 150.12424 /cm2 150.12424 /cm2 150.12036 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 74 54.672122 MeV 2.0214018 MeV 1 154.90072 /cm2 154.90072 /cm2 150.14446 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 75 70.213532 MeV 7.476699 MeV 1 150.2127 /cm2 159.33503 /cm2 175.5833 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 76 84.159903 MeV 0 eV 0 139.28184 /cm2 155.84183 /cm2 150.20396 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 77 45.172563 MeV 0 eV 0 138.12914 /cm2 138.12914 /cm2 150.20291 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 78 43.922654 MeV 0 eV 0 125.05562 /cm2 125.05562 /cm2 125.05112 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 79 73.378306 MeV 621.78665 keV 1 154.83736 /cm2 154.83736 /cm2 125.05287 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 80 111.17153 MeV 1.8381013 MeV 1 165.21844 /cm2 177.72568 /cm2 175.14949 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 + 81 64.47296 MeV 1.737928 MeV 2 149.42287 /cm2 153.58472 /cm2 175.26352 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 82 49.465375 MeV 0 eV 0 148.79186 /cm2 148.79186 /cm2 125.16107 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 83 61.52551 MeV 0 eV 0 178.80383 /cm2 178.80383 /cm2 150.28842 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 84 79.763724 MeV 0 eV 0 156.28075 /cm2 156.28075 /cm2 189.38685 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 85 68.079941 MeV 0 eV 0 87.356303 /cm2 105.7002 /cm2 150.32073 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 86 8.250993 MeV 0 eV 0 100.04771 /cm2 100.04771 /cm2 100.04629 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 87 8.740486 MeV 0 eV 0 100.05273 /cm2 100.05273 /cm2 100.05125 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 88 9.0930303 MeV 0 eV 0 100.05569 /cm2 100.05569 /cm2 100.05412 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 89 9.20365 MeV 0 eV 0 100.0637 /cm2 100.0637 /cm2 100.06205 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 90 9.2503887 MeV 0 eV 0 100.07439 /cm2 100.07439 /cm2 100.07264 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 91 9.0731968 MeV 0 eV 0 100.07222 /cm2 100.07222 /cm2 100.07035 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 92 10.388569 MeV 0 eV 0 100.08099 /cm2 100.10177 /cm2 100.07899 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 93 9.9217647 MeV 0 eV 0 100.08204 /cm2 100.08204 /cm2 100.07989 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 94 7.8374745 MeV 0 eV 0 81.708354 /cm2 81.708354 /cm2 100.06754 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 95 7.4811247 MeV 0 eV 0 75.029823 /cm2 75.029823 /cm2 75.028158 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 96 5.5720015 MeV 0 eV 0 51.936178 /cm2 51.936178 /cm2 75.023203 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 97 5.6866783 MeV 0 eV 0 50.014041 /cm2 50.014041 /cm2 50.01237 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 98 5.7545186 MeV 0 eV 0 50.016614 /cm2 50.016614 /cm2 50.014646 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 99 6.3975082 MeV 0 eV 0 50.01218 /cm2 50.01218 /cm2 50.009799 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 100 7.1611589 MeV 0 eV 0 50.017234 /cm2 50.017234 /cm2 50.014179 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 101 8.5660203 MeV 971.61827 keV 1 61.703898 /cm2 61.703898 /cm2 50.011356 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 102 11.489061 MeV 1.9744003 MeV 1 72.060083 /cm2 72.060083 /cm2 93.297599 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 103 18.946054 MeV 0 eV 0 25.005595 /cm2 49.75606 /cm2 50.039305 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 104 1.2322186 MeV 0 eV 0 25.005607 /cm2 25.005607 /cm2 25.005586 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 105 1.2672466 MeV 0 eV 0 25.005406 /cm2 25.005406 /cm2 25.005384 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 106 1.3429561 MeV 0 eV 0 25.005124 /cm2 25.005124 /cm2 25.005103 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 107 2.6465828 MeV 0 eV 0 47.369009 /cm2 47.369009 /cm2 25.005487 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 108 2.651585 MeV 0 eV 0 50.015104 /cm2 50.015104 /cm2 50.014985 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 109 2.601996 MeV 0 eV 0 50.013624 /cm2 50.013624 /cm2 50.013504 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 110 2.6598788 MeV 0 eV 0 50.014082 /cm2 50.014082 /cm2 50.01396 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 111 2.6655473 MeV 0 eV 0 50.013306 /cm2 50.013306 /cm2 50.013184 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 112 2.6288244 MeV 0 eV 0 50.013202 /cm2 50.013202 /cm2 50.013079 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 113 2.414992 MeV 0 eV 0 50.013502 /cm2 50.013502 /cm2 50.013377 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 114 2.7426512 MeV 0 eV 0 50.013655 /cm2 50.013655 /cm2 50.013529 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 115 2.5649719 MeV 0 eV 0 50.014122 /cm2 50.014122 /cm2 50.013995 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 116 2.4708625 MeV 0 eV 0 50.01378 /cm2 50.01378 /cm2 50.013652 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 117 2.5178447 MeV 0 eV 0 50.012955 /cm2 50.012955 /cm2 50.012825 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 118 2.4819488 MeV 0 eV 0 50.01422 /cm2 50.01422 /cm2 50.01409 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 119 2.3959859 MeV 0 eV 0 50.01454 /cm2 50.01454 /cm2 50.014408 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 120 1.8157474 MeV 0 eV 0 32.959453 /cm2 32.959453 /cm2 50.016687 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 121 1.0575494 MeV 0 eV 0 25.005173 /cm2 25.005173 /cm2 25.00515 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 122 1.4959569 MeV 0 eV 0 25.005186 /cm2 25.005186 /cm2 25.005163 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 123 1.3192529 MeV 0 eV 0 25.004803 /cm2 25.004803 /cm2 25.00478 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 124 1.2647435 MeV 0 eV 0 25.005309 /cm2 25.005309 /cm2 25.005286 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 125 1.1061585 MeV 0 eV 0 25.003339 /cm2 25.003339 /cm2 25.003316 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 126 3.2485782 MeV 0 eV 0 47.318449 /cm2 47.318449 /cm2 25.003617 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 127 3.2976726 MeV 0 eV 0 50.031714 /cm2 50.031714 /cm2 50.03121 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 128 3.8621811 MeV 0 eV 0 50.028841 /cm2 50.028841 /cm2 50.028317 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 129 4.1096748 MeV 0 eV 0 50.021792 /cm2 50.021792 /cm2 50.021244 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 130 4.0107212 MeV 0 eV 0 50.019461 /cm2 50.019461 /cm2 50.018882 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 131 4.15587 MeV 0 eV 0 50.028498 /cm2 50.028498 /cm2 50.027887 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 132 3.7983438 MeV 0 eV 0 50.075423 /cm2 50.075423 /cm2 50.074772 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 133 3.724944 MeV 0 eV 0 50.093948 /cm2 50.093948 /cm2 50.093257 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 134 4.5591687 MeV 292.6487 keV 1 53.698231 /cm2 53.698231 /cm2 50.104218 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 135 4.4481685 MeV 0 eV 0 50.096416 /cm2 50.096416 /cm2 50.09563 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 136 3.4720932 MeV 0 eV 0 41.568636 /cm2 41.568636 /cm2 50.091138 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 137 1.3751113 MeV 0 eV 0 25.001543 /cm2 25.001543 /cm2 25.001518 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 138 1.4450918 MeV 0 eV 0 29.010146 /cm2 29.010146 /cm2 25.001438 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 139 1.0571295 MeV 0 eV 0 45.956899 /cm2 45.956899 /cm2 60.312165 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 140 51.339607 keV 0 eV 0 3.4168704 /cm2 3.4168704 /cm2 35.263945 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 141 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 142 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 143 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 144 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 145 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 146 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 147 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 148 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 149 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 150 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 151 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 152 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 153 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 154 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 155 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 156 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 157 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 158 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 159 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 160 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 161 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 162 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 163 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 164 47.808028 keV 0 eV 0 3.7413677 /cm2 3.7413677 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 165 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 166 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 167 3.9142093 MeV 1.2595671 MeV 2 0 /cm2 11.334993 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 168 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 169 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 170 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 171 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 172 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 173 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 174 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 175 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 176 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 177 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 178 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 179 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 180 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 181 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 182 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 183 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 184 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 185 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 186 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 187 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 188 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 189 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 190 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 191 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 192 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 193 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 194 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 195 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 196 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 197 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 198 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 199 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 +============================================= +# +Graphics systems deleted. +Visualization Manager deleting... +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. +G4SDManager deleted. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. +RunManager is deleting. diff --git a/examples/extended/runAndEvent/RE02/run2.mac b/examples/extended/runAndEvent/RE02/run2.mac new file mode 100644 index 0000000000..9951fadb2e --- /dev/null +++ b/examples/extended/runAndEvent/RE02/run2.mac @@ -0,0 +1,48 @@ +# $Id: run2.mac,v 1.1 2005/11/24 01:44:18 asaim Exp $ +# +# Macro file for "exampleRE02.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run2.mac +# +/control/verbose 2 +/run/verbose 2 +/event/verbose 0 +#/tracking/verbose 1 +# +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +#/vis/open OGLIX +#/vis/open DAWNFILE +#/vis/open VRML2FILE +# +# viewer settings +#/vis/viewer/set/viewpointThetaPhi 90 180 deg +#/vis/viewer/zoom 1.4 +# +# Store trajectory +#/tracking/storeTrajectory 1 +#/vis/scene/add/trajectories +#/vis/scene/endOfEventAction accumulate +# +# +# Beam Parameters +# for carbon ion. +# UIcommands from G4ParticleGun. +# +/gun/particle ion +/gun/ion 6 12 +# +# Kinetic Energy. +# 195.MeV/u * 12(AtomicMass) = 2340. MeV +# +/gun/energy 2340. MeV +# +/gun/position 0 0 -100 cm +/gun/direction 0 0 1 +# +/run/beamOn 10000 +# diff --git a/examples/extended/runAndEvent/RE02/run3.log b/examples/extended/runAndEvent/RE02/run3.log new file mode 100644 index 0000000000..48985d8b96 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/run3.log @@ -0,0 +1,716 @@ + +************************************************************* + Geant4 version Name: geant4-07-01 (30-June-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + +<-- RE02DetectorConstruction ----------------- + Water Phantom Size (200,200,400) + Segmentation (100,100,200) +<--------------------------------------------- +You are using the RE02PhysicsList +This PhysicsList originally comes from +example/extended/analysis/A01, and is modified +in Hadron Physics in order to involve Binary Cascade +at low energy region and inelastic process for generic ions. +Full set of particles (barions bosons and mesons) will be created and +Standard EM Physics and Low & High Energy parameterized models will be applied. +RE02PhysicsList is optimized for robustness +and not for any particular usage. +For the hadronic physics, educated guesses of physics list are prepared for various use cases. +When you will start REAL calculations for your own interest, +please consider the usage of hadronic_lists instead of RE02PhysicsLists. +More information can also be found from the Geant4 HyperNews. +http://geant4-hn.slac.stanford.edu:5090/Geant4-HyperNews/index + +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + FukuiRenderer (DAWN) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + OpenGLImmediateXm (OGLIXm) + OpenGLStoredXm (OGLSXm) + VRML1 (VRML1) + VRML2 (VRML2) + +The materials defined are : + + +***** Table : Nb of materials = 2 ***** + + Material: G4_AIR density: 1.205 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.921 m + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole + ---> Isotope: C Z = 6 N = 12 A = 12.00 g/mole abundance: 98.93 % + ---> Isotope: C Z = 6 N = 13 A = 13.00 g/mole abundance: 1.07 % fractionMass: 0.01 % Abundance 0.02 % + ---> Element: N (N) Z = 7.0 N = 14.0 A = 14.01 g/mole + ---> Isotope: N Z = 7 N = 14 A = 14.00 g/mole abundance: 99.63 % + ---> Isotope: N Z = 7 N = 15 A = 15.00 g/mole abundance: 0.37 % fractionMass: 75.53 % Abundance 78.44 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 23.18 % Abundance 21.07 % + ---> Element: Ar (Ar) Z = 18.0 N = 40.0 A = 39.95 g/mole + ---> Isotope: Ar Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 % + ---> Isotope: Ar Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 % + ---> Isotope: Ar Z = 18 N = 40 A = 39.96 g/mole abundance: 99.60 % fractionMass: 1.28 % Abundance 0.47 % + + Material: G4_WATER density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.083 cm + ---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Isotope: H Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 % + ---> Isotope: H Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 % fractionMass: 11.19 % Abundance 66.67 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 88.81 % Abundance 33.33 % + + +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 1 keV HighE 10 keV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 10 keV HighE 100 keV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 100 keV HighE 1 MeV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 1 MeV HighE 10 MeV +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +/run/verbose 2 +/event/verbose 0 +#/tracking/verbose 1 +# +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +#/vis/open OGLIX +#/vis/open DAWNFILE +#/vis/open VRML2FILE +# +# viewer settings +/vis/viewer/set/viewpointThetaPhi 90 180 deg +ERROR: G4VisCommandsViewerSet::SetNewValue: no current viewer. +/vis/viewer/zoom 1.4 +ERROR: G4VisCommandsViewerZoom::SetNewValue: no current viewer. +# +# Store trajectory +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +/vis/scene/endOfEventAction accumulate +ERROR: No current sceneHandler. Please create one. +# +# +# Beam Parameters +# for electron +# UIcommands from G4ParticleGun. +# +/gun/particle e- +# +# Kinetic Energy. +/gun/energy 30. MeV +# +/gun/position 0 0 -100 cm +/gun/direction 0 0 1 +# +/run/beamOn 10000 + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +ionIoni: tables are built for GenericIon + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 + +msc: Model variant of multiple scattering for GenericIon + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +Region DefaultRegionForTheWorld + Materials : G4_AIR G4_WATER + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : G4_AIR + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : G4_WATER + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.90186 keV e- 347.138 keV e+ 338.695 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 445090 kByte + Total CPU time elapsed for geometry optimisation: 24 seconds + + Voxelisation: top CPU users: + Percent Total CPU System CPU Memory Volume + ------- ---------- ---------- -------- ---------- + 98.99 23.52 2.12 445091k Phantom + + Voxelisation: top memory users: + Percent Memory Heads Nodes Pointers Total CPU Volume + ------- -------- ------ ------ -------- ---------- ---------- + -3.66 445090k 79801 13840799 16020201 23.52 Phantom +++ PhantomSD/totalEDep id 0 +++ PhantomSD/protonEDep id 1 +++ PhantomSD/protonNStep id 2 +++ PhantomSD/chargedPassCellFlux id 3 +++ PhantomSD/chargedCellFlux id 4 +++ PhantomSD/chargedSurfFlux id 5 +++ PhantomSD/gammaSurfCurr000 id 6 +++ PhantomSD/gammaSurfCurr001 id 7 +++ PhantomSD/gammaSurfCurr002 id 8 +++ PhantomSD/gammaSurfCurr003 id 9 +### Run 0 start. +Start Run processing. +>>> Event 0 +>>> Event 1 +>>> Event 2 +>>> Event 3 +>>> Event 4 +>>> Event 5 +>>> Event 6 +>>> Event 7 +>>> Event 8 +>>> Event 9 +>>> Event 10 +>>> Event 11 +>>> Event 12 +>>> Event 13 +>>> Event 14 +>>> Event 15 +>>> Event 16 +>>> Event 17 +>>> Event 18 +>>> Event 19 +>>> Event 20 +>>> Event 21 +>>> Event 22 +>>> Event 23 +>>> Event 24 +>>> Event 25 +>>> Event 26 +>>> Event 27 +>>> Event 28 +>>> Event 29 +>>> Event 30 +>>> Event 31 +>>> Event 32 +>>> Event 33 +>>> Event 34 +>>> Event 35 +>>> Event 36 +>>> Event 37 +>>> Event 38 +>>> Event 39 +>>> Event 40 +>>> Event 41 +>>> Event 42 +>>> Event 43 +>>> Event 44 +>>> Event 45 +>>> Event 46 +>>> Event 47 +>>> Event 48 +>>> Event 49 +>>> Event 50 +>>> Event 51 +>>> Event 52 +>>> Event 53 +>>> Event 54 +>>> Event 55 +>>> Event 56 +>>> Event 57 +>>> Event 58 +>>> Event 59 +>>> Event 60 +>>> Event 61 +>>> Event 62 +>>> Event 63 +>>> Event 64 +>>> Event 65 +>>> Event 66 +>>> Event 67 +>>> Event 68 +>>> Event 69 +>>> Event 70 +>>> Event 71 +>>> Event 72 +>>> Event 73 +>>> Event 74 +>>> Event 75 +>>> Event 76 +>>> Event 77 +>>> Event 78 +>>> Event 79 +>>> Event 80 +>>> Event 81 +>>> Event 82 +>>> Event 83 +>>> Event 84 +>>> Event 85 +>>> Event 86 +>>> Event 87 +>>> Event 88 +>>> Event 89 +>>> Event 90 +>>> Event 91 +>>> Event 92 +>>> Event 93 +>>> Event 94 +>>> Event 95 +>>> Event 96 +>>> Event 97 +>>> Event 98 +>>> Event 99 +>>> Event 100 +>>> Event 200 +>>> Event 300 +>>> Event 400 +>>> Event 500 +>>> Event 600 +>>> Event 700 +>>> Event 800 +>>> Event 900 +>>> Event 1000 +>>> Event 1100 +>>> Event 1200 +>>> Event 1300 +>>> Event 1400 +>>> Event 1500 +>>> Event 1600 +>>> Event 1700 +>>> Event 1800 +>>> Event 1900 +>>> Event 2000 +>>> Event 2100 +>>> Event 2200 +>>> Event 2300 +>>> Event 2400 +>>> Event 2500 +>>> Event 2600 +>>> Event 2700 +>>> Event 2800 +>>> Event 2900 +>>> Event 3000 +>>> Event 3100 +>>> Event 3200 +>>> Event 3300 +>>> Event 3400 +>>> Event 3500 +>>> Event 3600 +>>> Event 3700 +>>> Event 3800 +>>> Event 3900 +>>> Event 4000 +>>> Event 4100 +>>> Event 4200 +>>> Event 4300 +>>> Event 4400 +>>> Event 4500 +>>> Event 4600 +>>> Event 4700 +>>> Event 4800 +>>> Event 4900 +>>> Event 5000 +>>> Event 5100 +>>> Event 5200 +>>> Event 5300 +>>> Event 5400 +>>> Event 5500 +>>> Event 5600 +>>> Event 5700 +>>> Event 5800 +>>> Event 5900 +>>> Event 6000 +>>> Event 6100 +>>> Event 6200 +>>> Event 6300 +>>> Event 6400 +>>> Event 6500 +>>> Event 6600 +>>> Event 6700 +>>> Event 6800 +>>> Event 6900 +>>> Event 7000 +>>> Event 7100 +>>> Event 7200 +>>> Event 7300 +>>> Event 7400 +>>> Event 7500 +>>> Event 7600 +>>> Event 7700 +>>> Event 7800 +>>> Event 7900 +>>> Event 8000 +>>> Event 8100 +>>> Event 8200 +>>> Event 8300 +>>> Event 8400 +>>> Event 8500 +>>> Event 8600 +>>> Event 8700 +>>> Event 8800 +>>> Event 8900 +>>> Event 9000 +>>> Event 9100 +>>> Event 9200 +>>> Event 9300 +>>> Event 9400 +>>> Event 9500 +>>> Event 9600 +>>> Event 9700 +>>> Event 9800 +>>> Event 9900 +Run terminated. +Run Summary + Number of events processed : 10000 + User=96.11s Real=159.2s Sys=6.06s +============================================================= + Number of event processed : 10000 +============================================================= +#Z Cell# totalEDep protonEDep protonNStep chargedPassCellFlux chargedCellFlux chargedSurfFlux gammaSurfCurr000 gammaSurfCurr001 gammaSurfCurr002 gammaSurfCurr003 + 0 40.238056 MeV 0 eV 0 2754.5248 /cm2 2806.2455 /cm2 2775.4848 /cm2 25 /cm2 50 /cm2 0 /cm2 0 /cm2 + 1 41.194189 MeV 0 eV 0 2799.8965 /cm2 2893.4853 /cm2 2816.0498 /cm2 0 /cm2 75 /cm2 75 /cm2 75 /cm2 + 2 41.2879 MeV 0 eV 0 2771.4571 /cm2 2880.1938 /cm2 2879.6144 /cm2 0 /cm2 125 /cm2 125 /cm2 100 /cm2 + 3 42.675758 MeV 0 eV 0 2763.6281 /cm2 2943.3678 /cm2 2690.81 /cm2 0 /cm2 125 /cm2 100 /cm2 125 /cm2 + 4 42.622231 MeV 0 eV 0 2859.454 /cm2 2930.5965 /cm2 3036.9119 /cm2 0 /cm2 150 /cm2 175 /cm2 150 /cm2 + 5 41.648256 MeV 0 eV 0 2848.5172 /cm2 2979.7207 /cm2 2881.2145 /cm2 0 /cm2 175 /cm2 225 /cm2 125 /cm2 + 6 41.527038 MeV 0 eV 0 2746.5968 /cm2 2909.2385 /cm2 2795.9558 /cm2 25 /cm2 225 /cm2 400 /cm2 175 /cm2 + 7 40.947212 MeV 0 eV 0 2821.0283 /cm2 2945.3108 /cm2 2777.9642 /cm2 0 /cm2 275 /cm2 300 /cm2 225 /cm2 + 8 40.840795 MeV 0 eV 0 2773.1476 /cm2 2875.3566 /cm2 2947.5474 /cm2 0 /cm2 275 /cm2 400 /cm2 275 /cm2 + 9 40.757139 MeV 0 eV 0 2877.3545 /cm2 2944.9452 /cm2 3149.1646 /cm2 0 /cm2 250 /cm2 400 /cm2 350 /cm2 + 10 41.466714 MeV 0 eV 0 2736.1458 /cm2 2854.257 /cm2 3456.2745 /cm2 0 /cm2 275 /cm2 450 /cm2 375 /cm2 + 11 40.796966 MeV 0 eV 0 2773.1918 /cm2 2907.5341 /cm2 3228.7775 /cm2 0 /cm2 200 /cm2 575 /cm2 425 /cm2 + 12 40.9044 MeV 0 eV 0 2908.6865 /cm2 2977.7719 /cm2 3062.0162 /cm2 0 /cm2 200 /cm2 500 /cm2 400 /cm2 + 13 37.681889 MeV 0 eV 0 2714.9963 /cm2 2821.4166 /cm2 2911.0598 /cm2 0 /cm2 275 /cm2 600 /cm2 500 /cm2 + 14 35.914418 MeV 0 eV 0 2459.6884 /cm2 2607.9944 /cm2 2658.986 /cm2 25 /cm2 325 /cm2 600 /cm2 500 /cm2 + 15 31.791629 MeV 0 eV 0 2166.9101 /cm2 2250.6561 /cm2 2822.9397 /cm2 25 /cm2 400 /cm2 750 /cm2 450 /cm2 + 16 31.94854 MeV 0 eV 0 2255.057 /cm2 2336.9247 /cm2 2387.7188 /cm2 25 /cm2 325 /cm2 625 /cm2 525 /cm2 + 17 32.812416 MeV 0 eV 0 2208.3635 /cm2 2339.2054 /cm2 2301.388 /cm2 0 /cm2 425 /cm2 625 /cm2 475 /cm2 + 18 31.389977 MeV 0 eV 0 2163.3468 /cm2 2294.6304 /cm2 2287.8554 /cm2 0 /cm2 375 /cm2 750 /cm2 350 /cm2 + 19 32.791711 MeV 0 eV 0 2258.5926 /cm2 2334.4143 /cm2 2256.367 /cm2 0 /cm2 450 /cm2 825 /cm2 350 /cm2 + 20 30.060065 MeV 0 eV 0 2037.8287 /cm2 2157.514 /cm2 1933.8145 /cm2 0 /cm2 475 /cm2 850 /cm2 275 /cm2 + 21 29.997031 MeV 0 eV 0 1983.8555 /cm2 2091.2671 /cm2 2134.1901 /cm2 25 /cm2 525 /cm2 1000 /cm2 350 /cm2 + 22 26.505228 MeV 0 eV 0 1867.3171 /cm2 1941.04 /cm2 2089.115 /cm2 0 /cm2 400 /cm2 1025 /cm2 400 /cm2 + 23 23.939127 MeV 0 eV 0 1626.2629 /cm2 1693.38 /cm2 2129.054 /cm2 0 /cm2 500 /cm2 1000 /cm2 450 /cm2 + 24 23.258299 MeV 0 eV 0 1547.4106 /cm2 1602.3188 /cm2 4930.2175 /cm2 25 /cm2 450 /cm2 1000 /cm2 400 /cm2 + 25 19.45655 MeV 0 eV 0 1371.3307 /cm2 1412.0138 /cm2 5506.2076 /cm2 0 /cm2 550 /cm2 950 /cm2 575 /cm2 + 26 20.149025 MeV 0 eV 0 1322.6611 /cm2 1390.8551 /cm2 1312.4861 /cm2 25 /cm2 575 /cm2 750 /cm2 675 /cm2 + 27 20.378829 MeV 0 eV 0 1327.2442 /cm2 1431.4818 /cm2 1310.485 /cm2 25 /cm2 550 /cm2 975 /cm2 575 /cm2 + 28 24.370345 MeV 0 eV 0 1528.8832 /cm2 1643.2222 /cm2 1568.7751 /cm2 0 /cm2 475 /cm2 850 /cm2 425 /cm2 + 29 21.97834 MeV 0 eV 0 1476.5124 /cm2 1553.4961 /cm2 1581.0556 /cm2 25 /cm2 400 /cm2 725 /cm2 425 /cm2 + 30 24.434494 MeV 0 eV 0 1541.3773 /cm2 1683.7489 /cm2 1628.9524 /cm2 0 /cm2 425 /cm2 600 /cm2 350 /cm2 + 31 20.476765 MeV 0 eV 0 1463.5121 /cm2 1493.6947 /cm2 1552.3657 /cm2 0 /cm2 500 /cm2 775 /cm2 425 /cm2 + 32 16.552912 MeV 0 eV 0 1093.6949 /cm2 1134.0384 /cm2 1343.2292 /cm2 0 /cm2 450 /cm2 700 /cm2 475 /cm2 + 33 16.318346 MeV 0 eV 0 1153.5066 /cm2 1219.316 /cm2 1085.7162 /cm2 25 /cm2 325 /cm2 825 /cm2 450 /cm2 + 34 18.08827 MeV 0 eV 0 1154.5583 /cm2 1209.6824 /cm2 1348.4902 /cm2 0 /cm2 400 /cm2 825 /cm2 400 /cm2 + 35 16.829554 MeV 0 eV 0 1049.1561 /cm2 1162.0256 /cm2 1148.1826 /cm2 0 /cm2 400 /cm2 850 /cm2 350 /cm2 + 36 14.59147 MeV 0 eV 0 939.24171 /cm2 1010.5249 /cm2 898.07409 /cm2 0 /cm2 350 /cm2 750 /cm2 475 /cm2 + 37 14.066373 MeV 0 eV 0 808.58767 /cm2 924.88634 /cm2 1216.7115 /cm2 0 /cm2 225 /cm2 725 /cm2 475 /cm2 + 38 8.5671281 MeV 0 eV 0 630.46215 /cm2 632.09423 /cm2 739.70277 /cm2 0 /cm2 225 /cm2 725 /cm2 475 /cm2 + 39 9.4985197 MeV 0 eV 0 566.85498 /cm2 610.61938 /cm2 531.27698 /cm2 0 /cm2 200 /cm2 700 /cm2 400 /cm2 + 40 8.9311683 MeV 0 eV 0 606.87264 /cm2 637.95297 /cm2 711.10194 /cm2 0 /cm2 200 /cm2 700 /cm2 450 /cm2 + 41 10.230323 MeV 0 eV 0 738.76546 /cm2 743.2449 /cm2 670.92192 /cm2 25 /cm2 275 /cm2 750 /cm2 500 /cm2 + 42 11.500963 MeV 0 eV 0 817.30456 /cm2 817.31204 /cm2 1332.7524 /cm2 0 /cm2 300 /cm2 650 /cm2 325 /cm2 + 43 7.7339775 MeV 0 eV 0 494.08618 /cm2 531.02649 /cm2 601.721 /cm2 0 /cm2 200 /cm2 575 /cm2 400 /cm2 + 44 8.3123746 MeV 0 eV 0 514.89283 /cm2 592.28394 /cm2 430.77332 /cm2 0 /cm2 200 /cm2 550 /cm2 250 /cm2 + 45 7.1793133 MeV 0 eV 0 449.53028 /cm2 494.85618 /cm2 747.00889 /cm2 0 /cm2 175 /cm2 700 /cm2 250 /cm2 + 46 8.037655 MeV 0 eV 0 551.19097 /cm2 569.15519 /cm2 486.19477 /cm2 0 /cm2 150 /cm2 700 /cm2 225 /cm2 + 47 7.0168484 MeV 0 eV 0 507.94682 /cm2 513.69897 /cm2 738.9718 /cm2 0 /cm2 200 /cm2 725 /cm2 250 /cm2 + 48 6.1495846 MeV 0 eV 0 404.53446 /cm2 426.84216 /cm2 414.07586 /cm2 25 /cm2 250 /cm2 575 /cm2 250 /cm2 + 49 5.4008816 MeV 0 eV 0 320.80109 /cm2 342.54853 /cm2 430.17971 /cm2 0 /cm2 150 /cm2 325 /cm2 300 /cm2 + 50 5.8367608 MeV 0 eV 0 336.65702 /cm2 379.77763 /cm2 304.63114 /cm2 0 /cm2 100 /cm2 475 /cm2 375 /cm2 + 51 5.266217 MeV 0 eV 0 330.86874 /cm2 363.04554 /cm2 864.86167 /cm2 0 /cm2 175 /cm2 600 /cm2 250 /cm2 + 52 6.7661788 MeV 0 eV 0 438.06645 /cm2 465.8097 /cm2 392.81116 /cm2 0 /cm2 150 /cm2 375 /cm2 325 /cm2 + 53 4.3272488 MeV 0 eV 0 324.83246 /cm2 335.89457 /cm2 489.49415 /cm2 0 /cm2 225 /cm2 325 /cm2 275 /cm2 + 54 4.2771145 MeV 0 eV 0 323.29579 /cm2 323.31551 /cm2 277.25973 /cm2 0 /cm2 225 /cm2 325 /cm2 300 /cm2 + 55 4.9028638 MeV 0 eV 0 270.48524 /cm2 303.16991 /cm2 231.52403 /cm2 0 /cm2 325 /cm2 200 /cm2 350 /cm2 + 56 4.9691084 MeV 0 eV 0 323.708 /cm2 356.90264 /cm2 538.51825 /cm2 0 /cm2 225 /cm2 225 /cm2 350 /cm2 + 57 3.6317394 MeV 0 eV 0 215.92425 /cm2 250.8606 /cm2 312.09944 /cm2 0 /cm2 200 /cm2 225 /cm2 325 /cm2 + 58 4.4024811 MeV 0 eV 0 243.06569 /cm2 289.72861 /cm2 214.65046 /cm2 0 /cm2 175 /cm2 250 /cm2 275 /cm2 + 59 2.7979065 MeV 0 eV 0 166.21807 /cm2 166.21807 /cm2 149.94926 /cm2 0 /cm2 200 /cm2 225 /cm2 125 /cm2 + 60 2.8611252 MeV 0 eV 0 196.73444 /cm2 196.73444 /cm2 518.83942 /cm2 0 /cm2 275 /cm2 175 /cm2 200 /cm2 + 61 2.6101907 MeV 0 eV 0 182.22573 /cm2 182.22654 /cm2 211.12244 /cm2 0 /cm2 200 /cm2 225 /cm2 200 /cm2 + 62 3.0810186 MeV 0 eV 0 200.09617 /cm2 207.45273 /cm2 284.14927 /cm2 0 /cm2 150 /cm2 300 /cm2 225 /cm2 + 63 3.0250381 MeV 0 eV 0 182.32672 /cm2 199.51043 /cm2 170.78567 /cm2 0 /cm2 225 /cm2 100 /cm2 250 /cm2 + 64 2.2608581 MeV 0 eV 0 169.30448 /cm2 169.30448 /cm2 146.29715 /cm2 0 /cm2 125 /cm2 100 /cm2 275 /cm2 + 65 2.4324817 MeV 0 eV 0 123.58873 /cm2 140.67484 /cm2 189.26793 /cm2 0 /cm2 150 /cm2 125 /cm2 225 /cm2 + 66 2.1516246 MeV 0 eV 0 159.88479 /cm2 159.88479 /cm2 119.50271 /cm2 0 /cm2 75 /cm2 125 /cm2 225 /cm2 + 67 1.870419 MeV 0 eV 0 124.20861 /cm2 124.20861 /cm2 136.94483 /cm2 0 /cm2 50 /cm2 125 /cm2 225 /cm2 + 68 480.85498 keV 0 eV 0 36.739382 /cm2 36.739382 /cm2 80.545328 /cm2 0 /cm2 75 /cm2 75 /cm2 175 /cm2 + 69 504.92629 keV 0 eV 0 41.060098 /cm2 41.060098 /cm2 31.521252 /cm2 0 /cm2 125 /cm2 75 /cm2 150 /cm2 + 70 324.94675 keV 0 eV 0 3.0909979 /cm2 10.944038 /cm2 34.815891 /cm2 0 /cm2 75 /cm2 100 /cm2 175 /cm2 + 71 1.3171374 MeV 0 eV 0 60.241023 /cm2 66.837224 /cm2 0 /cm2 0 /cm2 75 /cm2 125 /cm2 200 /cm2 + 72 496.14488 keV 0 eV 0 37.744081 /cm2 37.826632 /cm2 82.15838 /cm2 0 /cm2 100 /cm2 150 /cm2 250 /cm2 + 73 372.49757 keV 0 eV 0 7.2023623 /cm2 19.093179 /cm2 45.106727 /cm2 0 /cm2 100 /cm2 125 /cm2 225 /cm2 + 74 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 200 /cm2 200 /cm2 + 75 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 175 /cm2 250 /cm2 + 76 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 175 /cm2 225 /cm2 + 77 427.08152 keV 0 eV 0 27.030886 /cm2 28.48377 /cm2 0 /cm2 0 /cm2 75 /cm2 100 /cm2 225 /cm2 + 78 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 250 /cm2 250 /cm2 + 79 28.937883 keV 0 eV 0 0 /cm2 0.20125527 /cm2 0 /cm2 0 /cm2 25 /cm2 125 /cm2 225 /cm2 + 80 465.75067 eV 0 eV 0 0 /cm2 0.00032830793 /cm2 0 /cm2 0 /cm2 75 /cm2 100 /cm2 200 /cm2 + 81 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 100 /cm2 225 /cm2 + 82 3.3547752 keV 0 eV 0 0 /cm2 0.0049495756 /cm2 0 /cm2 0 /cm2 25 /cm2 150 /cm2 225 /cm2 + 83 476.79631 keV 0 eV 0 37.874067 /cm2 37.874067 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 200 /cm2 + 84 160.18165 keV 0 eV 0 15.65208 /cm2 15.65208 /cm2 26.081638 /cm2 0 /cm2 0 /cm2 125 /cm2 200 /cm2 + 85 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 200 /cm2 + 86 22.295013 keV 0 eV 0 0 /cm2 0.13126697 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 175 /cm2 + 87 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 175 /cm2 + 88 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 175 /cm2 + 89 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 200 /cm2 150 /cm2 + 90 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 125 /cm2 + 91 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 125 /cm2 + 92 3.8558096 keV 0 eV 0 0 /cm2 0.0062165403 /cm2 0 /cm2 0 /cm2 25 /cm2 125 /cm2 125 /cm2 + 93 33.210523 keV 0 eV 0 0 /cm2 2.3350406 /cm2 0 /cm2 0 /cm2 50 /cm2 125 /cm2 125 /cm2 + 94 546.76003 keV 0 eV 0 18.751869 /cm2 30.512755 /cm2 38.520944 /cm2 0 /cm2 25 /cm2 75 /cm2 125 /cm2 + 95 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 + 96 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 125 /cm2 + 97 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 125 /cm2 + 98 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 + 99 94.303833 keV 0 eV 0 0 /cm2 2.7866016 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 75 /cm2 + 100 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 100 /cm2 + 101 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 25 /cm2 75 /cm2 + 102 300.44449 keV 0 eV 0 0 /cm2 9.8993737 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 103 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 + 104 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 125 /cm2 + 105 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 150 /cm2 + 106 263.23814 keV 0 eV 0 20.998061 /cm2 21.060685 /cm2 0 /cm2 0 /cm2 50 /cm2 25 /cm2 125 /cm2 + 107 384.39696 keV 0 eV 0 30.708781 /cm2 30.708781 /cm2 27.366148 /cm2 0 /cm2 50 /cm2 75 /cm2 125 /cm2 + 108 183.21053 keV 0 eV 0 16.053002 /cm2 16.053002 /cm2 155.36564 /cm2 0 /cm2 50 /cm2 50 /cm2 100 /cm2 + 109 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 50 /cm2 100 /cm2 + 110 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 75 /cm2 100 /cm2 + 111 118.43913 keV 0 eV 0 8.4150251 /cm2 8.4150251 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 75 /cm2 + 112 403.26716 keV 0 eV 0 0.42013255 /cm2 14.232242 /cm2 25.879392 /cm2 0 /cm2 0 /cm2 75 /cm2 100 /cm2 + 113 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 100 /cm2 + 114 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 + 115 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 100 /cm2 + 116 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 + 117 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 100 /cm2 + 118 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 100 /cm2 + 119 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 75 /cm2 + 120 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 + 121 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 75 /cm2 + 122 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 50 /cm2 + 123 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 75 /cm2 + 124 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 125 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 126 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 127 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 128 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 129 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 130 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 75 /cm2 + 131 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 75 /cm2 + 132 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 50 /cm2 + 133 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 50 /cm2 + 134 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 75 /cm2 + 135 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 136 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 75 /cm2 + 137 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 75 /cm2 + 138 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 75 /cm2 + 139 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 75 /cm2 + 140 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 141 2.9436204 keV 0 eV 0 0.13893323 /cm2 0.13893323 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 142 725.73212 keV 0 eV 0 0 /cm2 38.776776 /cm2 31.200332 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 143 74.277052 keV 0 eV 0 6.4889814 /cm2 6.4889814 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 + 144 582.24787 keV 0 eV 0 30.972891 /cm2 30.972891 /cm2 26.847672 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 145 678.68142 keV 0 eV 0 51.338785 /cm2 51.338785 /cm2 50.956346 /cm2 0 /cm2 25 /cm2 0 /cm2 25 /cm2 + 146 851.38853 keV 0 eV 0 37.584886 /cm2 54.033056 /cm2 55.729277 /cm2 0 /cm2 25 /cm2 0 /cm2 75 /cm2 + 147 82.940973 keV 0 eV 0 4.9907094 /cm2 4.9907094 /cm2 39.602115 /cm2 0 /cm2 25 /cm2 25 /cm2 50 /cm2 + 148 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 50 /cm2 + 149 208.77026 keV 0 eV 0 16.337579 /cm2 16.337579 /cm2 127.94464 /cm2 0 /cm2 0 /cm2 50 /cm2 50 /cm2 + 150 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 151 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 152 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 153 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 154 216.09864 keV 0 eV 0 15.179382 /cm2 15.179382 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 155 503.07781 keV 0 eV 0 25.950565 /cm2 33.105687 /cm2 25.699544 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 156 304.63732 keV 0 eV 0 27.024474 /cm2 27.024474 /cm2 26.826074 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 157 204.43899 keV 0 eV 0 17.098925 /cm2 17.098925 /cm2 27.173296 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 158 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 0 /cm2 + 159 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 0 /cm2 + 160 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 50 /cm2 0 /cm2 + 161 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 + 162 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 + 163 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 164 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 165 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 + 166 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 167 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 168 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 169 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 170 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 171 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 25 /cm2 + 172 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 173 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 174 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 175 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 176 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 177 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 178 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 179 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 180 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 + 181 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 + 182 62.691242 keV 0 eV 0 5.1384317 /cm2 5.1384317 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 25 /cm2 + 183 153.03232 keV 0 eV 0 0 /cm2 10.389716 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 184 308.84397 keV 0 eV 0 25.67308 /cm2 25.67308 /cm2 25.339672 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 + 185 344.75127 keV 0 eV 0 25.501364 /cm2 25.501364 /cm2 25.135394 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 + 186 289.27139 keV 0 eV 0 24.811629 /cm2 24.811629 /cm2 25.335509 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 + 187 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 188 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 189 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 190 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 191 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 192 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 193 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 194 73.730222 keV 0 eV 0 5.2381028 /cm2 5.2381028 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 195 317.48887 keV 0 eV 0 0 /cm2 13.529465 /cm2 53.670396 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 196 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 197 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 198 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 + 199 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 +============================================= +# +Graphics systems deleted. +Visualization Manager deleting... +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. +G4SDManager deleted. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. +RunManager is deleting. diff --git a/examples/extended/runAndEvent/RE02/run3.mac b/examples/extended/runAndEvent/RE02/run3.mac new file mode 100644 index 0000000000..11357e5b51 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/run3.mac @@ -0,0 +1,45 @@ +# $Id: run3.mac,v 1.1 2005/11/24 01:44:18 asaim Exp $ +# +# Macro file for "exampleRE02.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run2.mac +# +/control/verbose 2 +/run/verbose 2 +/event/verbose 0 +#/tracking/verbose 1 +# +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +#/vis/open OGLIX +#/vis/open DAWNFILE +#/vis/open VRML2FILE +# +# viewer settings +/vis/viewer/set/viewpointThetaPhi 90 180 deg +/vis/viewer/zoom 1.4 +# +# Store trajectory +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +/vis/scene/endOfEventAction accumulate +# +# +# Beam Parameters +# for electron +# UIcommands from G4ParticleGun. +# +/gun/particle e- +# +# Kinetic Energy. +/gun/energy 30. MeV +# +/gun/position 0 0 -100 cm +/gun/direction 0 0 1 +# +/run/beamOn 10000 +# diff --git a/examples/extended/runAndEvent/RE02/run4.log b/examples/extended/runAndEvent/RE02/run4.log new file mode 100644 index 0000000000..20ce034e8a --- /dev/null +++ b/examples/extended/runAndEvent/RE02/run4.log @@ -0,0 +1,718 @@ + +************************************************************* + Geant4 version Name: geant4-07-01 (30-June-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + +<-- RE02DetectorConstruction ----------------- + Water Phantom Size (200,200,400) + Segmentation (100,100,200) +<--------------------------------------------- +You are using the RE02PhysicsList +This PhysicsList originally comes from +example/extended/analysis/A01, and is modified +in Hadron Physics in order to involve Binary Cascade +at low energy region and inelastic process for generic ions. +Full set of particles (barions bosons and mesons) will be created and +Standard EM Physics and Low & High Energy parameterized models will be applied. +RE02PhysicsList is optimized for robustness +and not for any particular usage. +For the hadronic physics, educated guesses of physics list are prepared for various use cases. +When you will start REAL calculations for your own interest, +please consider the usage of hadronic_lists instead of RE02PhysicsLists. +More information can also be found from the Geant4 HyperNews. +http://geant4-hn.slac.stanford.edu:5090/Geant4-HyperNews/index + +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + FukuiRenderer (DAWN) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + OpenGLImmediateXm (OGLIXm) + OpenGLStoredXm (OGLSXm) + VRML1 (VRML1) + VRML2 (VRML2) + +The materials defined are : + + +***** Table : Nb of materials = 2 ***** + + Material: G4_AIR density: 1.205 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 303.921 m + ---> Element: C (C) Z = 6.0 N = 12.0 A = 12.01 g/mole + ---> Isotope: C Z = 6 N = 12 A = 12.00 g/mole abundance: 98.93 % + ---> Isotope: C Z = 6 N = 13 A = 13.00 g/mole abundance: 1.07 % fractionMass: 0.01 % Abundance 0.02 % + ---> Element: N (N) Z = 7.0 N = 14.0 A = 14.01 g/mole + ---> Isotope: N Z = 7 N = 14 A = 14.00 g/mole abundance: 99.63 % + ---> Isotope: N Z = 7 N = 15 A = 15.00 g/mole abundance: 0.37 % fractionMass: 75.53 % Abundance 78.44 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 23.18 % Abundance 21.07 % + ---> Element: Ar (Ar) Z = 18.0 N = 40.0 A = 39.95 g/mole + ---> Isotope: Ar Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 % + ---> Isotope: Ar Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 % + ---> Isotope: Ar Z = 18 N = 40 A = 39.96 g/mole abundance: 99.60 % fractionMass: 1.28 % Abundance 0.47 % + + Material: G4_WATER density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.083 cm + ---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole + ---> Isotope: H Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 % + ---> Isotope: H Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 % fractionMass: 11.19 % Abundance 66.67 % + ---> Element: O (O) Z = 8.0 N = 16.0 A = 16.00 g/mole + ---> Isotope: O Z = 8 N = 16 A = 15.99 g/mole abundance: 99.76 % + ---> Isotope: O Z = 8 N = 17 A = 17.00 g/mole abundance: 0.04 % + ---> Isotope: O Z = 8 N = 18 A = 18.00 g/mole abundance: 0.20 % fractionMass: 88.81 % Abundance 33.33 % + + +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 1 keV HighE 10 keV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 10 keV HighE 100 keV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 100 keV HighE 1 MeV +----G4SDParticleFileter particle list------ +gamma +------------------------------------------- + G4SDKineticEnergyFilter:: gammaE filter LowE 1 MeV HighE 10 MeV +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +Thank you for using G4BinaryCascade. +/run/verbose 2 +/event/verbose 0 +#/tracking/verbose 1 +# +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +#/vis/open OGLIX +#/vis/open DAWNFILE +#/vis/open VRML2FILE +# +# viewer settings +/vis/viewer/set/viewpointThetaPhi 90 180 deg +ERROR: G4VisCommandsViewerSet::SetNewValue: no current viewer. +/vis/viewer/zoom 1.4 +ERROR: G4VisCommandsViewerZoom::SetNewValue: no current viewer. +# +# Store trajectory +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +/vis/scene/endOfEventAction accumulate +ERROR: No current sceneHandler. Please create one. +# +# +# Beam Parameters +# for electron +# UIcommands from G4ParticleGun. +# +/gun/particle gamma +# +# Kinetic Energy. +#/gun/energy 35. keV +/gun/energy 60. keV +#/gun/energy 356. keV +# +/gun/position 0 0 -100. cm +/gun/direction 0 0 1 +# +/run/beamOn 10000 + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +phot: Total cross sections from Sandia parametrisation. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +ionIoni: tables are built for GenericIon + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. + Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 + +msc: Model variant of multiple scattering for GenericIon + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +Region DefaultRegionForTheWorld + Materials : G4_AIR G4_WATER + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : G4_AIR + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : G4_WATER + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.90186 keV e- 347.138 keV e+ 338.695 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 445090 kByte + Total CPU time elapsed for geometry optimisation: 23 seconds + + Voxelisation: top CPU users: + Percent Total CPU System CPU Memory Volume + ------- ---------- ---------- -------- ---------- + 98.94 22.40 2.21 445091k Phantom + + Voxelisation: top memory users: + Percent Memory Heads Nodes Pointers Total CPU Volume + ------- -------- ------ ------ -------- ---------- ---------- + -3.66 445090k 79801 13840799 16020201 22.40 Phantom +++ PhantomSD/totalEDep id 0 +++ PhantomSD/protonEDep id 1 +++ PhantomSD/protonNStep id 2 +++ PhantomSD/chargedPassCellFlux id 3 +++ PhantomSD/chargedCellFlux id 4 +++ PhantomSD/chargedSurfFlux id 5 +++ PhantomSD/gammaSurfCurr000 id 6 +++ PhantomSD/gammaSurfCurr001 id 7 +++ PhantomSD/gammaSurfCurr002 id 8 +++ PhantomSD/gammaSurfCurr003 id 9 +### Run 0 start. +Start Run processing. +>>> Event 0 +>>> Event 1 +>>> Event 2 +>>> Event 3 +>>> Event 4 +>>> Event 5 +>>> Event 6 +>>> Event 7 +>>> Event 8 +>>> Event 9 +>>> Event 10 +>>> Event 11 +>>> Event 12 +>>> Event 13 +>>> Event 14 +>>> Event 15 +>>> Event 16 +>>> Event 17 +>>> Event 18 +>>> Event 19 +>>> Event 20 +>>> Event 21 +>>> Event 22 +>>> Event 23 +>>> Event 24 +>>> Event 25 +>>> Event 26 +>>> Event 27 +>>> Event 28 +>>> Event 29 +>>> Event 30 +>>> Event 31 +>>> Event 32 +>>> Event 33 +>>> Event 34 +>>> Event 35 +>>> Event 36 +>>> Event 37 +>>> Event 38 +>>> Event 39 +>>> Event 40 +>>> Event 41 +>>> Event 42 +>>> Event 43 +>>> Event 44 +>>> Event 45 +>>> Event 46 +>>> Event 47 +>>> Event 48 +>>> Event 49 +>>> Event 50 +>>> Event 51 +>>> Event 52 +>>> Event 53 +>>> Event 54 +>>> Event 55 +>>> Event 56 +>>> Event 57 +>>> Event 58 +>>> Event 59 +>>> Event 60 +>>> Event 61 +>>> Event 62 +>>> Event 63 +>>> Event 64 +>>> Event 65 +>>> Event 66 +>>> Event 67 +>>> Event 68 +>>> Event 69 +>>> Event 70 +>>> Event 71 +>>> Event 72 +>>> Event 73 +>>> Event 74 +>>> Event 75 +>>> Event 76 +>>> Event 77 +>>> Event 78 +>>> Event 79 +>>> Event 80 +>>> Event 81 +>>> Event 82 +>>> Event 83 +>>> Event 84 +>>> Event 85 +>>> Event 86 +>>> Event 87 +>>> Event 88 +>>> Event 89 +>>> Event 90 +>>> Event 91 +>>> Event 92 +>>> Event 93 +>>> Event 94 +>>> Event 95 +>>> Event 96 +>>> Event 97 +>>> Event 98 +>>> Event 99 +>>> Event 100 +>>> Event 200 +>>> Event 300 +>>> Event 400 +>>> Event 500 +>>> Event 600 +>>> Event 700 +>>> Event 800 +>>> Event 900 +>>> Event 1000 +>>> Event 1100 +>>> Event 1200 +>>> Event 1300 +>>> Event 1400 +>>> Event 1500 +>>> Event 1600 +>>> Event 1700 +>>> Event 1800 +>>> Event 1900 +>>> Event 2000 +>>> Event 2100 +>>> Event 2200 +>>> Event 2300 +>>> Event 2400 +>>> Event 2500 +>>> Event 2600 +>>> Event 2700 +>>> Event 2800 +>>> Event 2900 +>>> Event 3000 +>>> Event 3100 +>>> Event 3200 +>>> Event 3300 +>>> Event 3400 +>>> Event 3500 +>>> Event 3600 +>>> Event 3700 +>>> Event 3800 +>>> Event 3900 +>>> Event 4000 +>>> Event 4100 +>>> Event 4200 +>>> Event 4300 +>>> Event 4400 +>>> Event 4500 +>>> Event 4600 +>>> Event 4700 +>>> Event 4800 +>>> Event 4900 +>>> Event 5000 +>>> Event 5100 +>>> Event 5200 +>>> Event 5300 +>>> Event 5400 +>>> Event 5500 +>>> Event 5600 +>>> Event 5700 +>>> Event 5800 +>>> Event 5900 +>>> Event 6000 +>>> Event 6100 +>>> Event 6200 +>>> Event 6300 +>>> Event 6400 +>>> Event 6500 +>>> Event 6600 +>>> Event 6700 +>>> Event 6800 +>>> Event 6900 +>>> Event 7000 +>>> Event 7100 +>>> Event 7200 +>>> Event 7300 +>>> Event 7400 +>>> Event 7500 +>>> Event 7600 +>>> Event 7700 +>>> Event 7800 +>>> Event 7900 +>>> Event 8000 +>>> Event 8100 +>>> Event 8200 +>>> Event 8300 +>>> Event 8400 +>>> Event 8500 +>>> Event 8600 +>>> Event 8700 +>>> Event 8800 +>>> Event 8900 +>>> Event 9000 +>>> Event 9100 +>>> Event 9200 +>>> Event 9300 +>>> Event 9400 +>>> Event 9500 +>>> Event 9600 +>>> Event 9700 +>>> Event 9800 +>>> Event 9900 +Run terminated. +Run Summary + Number of events processed : 10000 + User=13.1s Real=13.18s Sys=0.05s +============================================================= + Number of event processed : 10000 +============================================================= +#Z Cell# totalEDep protonEDep protonNStep chargedPassCellFlux chargedCellFlux chargedSurfFlux gammaSurfCurr000 gammaSurfCurr001 gammaSurfCurr002 gammaSurfCurr003 + 0 190.20479 keV 0 eV 0 0 /cm2 1.1280282 /cm2 0 /cm2 0 /cm2 11000 /cm2 0 /cm2 0 /cm2 + 1 148.33997 keV 0 eV 0 0 /cm2 0.77923363 /cm2 0 /cm2 0 /cm2 10825 /cm2 0 /cm2 0 /cm2 + 2 189.65952 keV 0 eV 0 0 /cm2 1.1098947 /cm2 0 /cm2 0 /cm2 10300 /cm2 0 /cm2 0 /cm2 + 3 178.02953 keV 0 eV 0 0 /cm2 1.6166296 /cm2 0 /cm2 0 /cm2 9900 /cm2 0 /cm2 0 /cm2 + 4 229.85498 keV 0 eV 0 0 /cm2 2.3131311 /cm2 0 /cm2 0 /cm2 9600 /cm2 0 /cm2 0 /cm2 + 5 109.56678 keV 0 eV 0 0 /cm2 0.85217579 /cm2 0 /cm2 0 /cm2 9250 /cm2 0 /cm2 0 /cm2 + 6 295.03338 keV 0 eV 0 0 /cm2 3.073858 /cm2 0 /cm2 0 /cm2 8900 /cm2 0 /cm2 0 /cm2 + 7 116.59922 keV 0 eV 0 0 /cm2 0.32232631 /cm2 0 /cm2 0 /cm2 8825 /cm2 0 /cm2 0 /cm2 + 8 60.340368 keV 0 eV 0 0 /cm2 0.16792476 /cm2 0 /cm2 0 /cm2 8350 /cm2 0 /cm2 0 /cm2 + 9 150.77597 keV 0 eV 0 0 /cm2 0.97440497 /cm2 0 /cm2 0 /cm2 8150 /cm2 0 /cm2 0 /cm2 + 10 234.95334 keV 0 eV 0 0 /cm2 2.342945 /cm2 0 /cm2 0 /cm2 7625 /cm2 0 /cm2 0 /cm2 + 11 72.033123 keV 0 eV 0 0 /cm2 0.19698084 /cm2 0 /cm2 0 /cm2 7500 /cm2 0 /cm2 0 /cm2 + 12 119.40805 keV 0 eV 0 0 /cm2 0.88648208 /cm2 0 /cm2 0 /cm2 7150 /cm2 0 /cm2 0 /cm2 + 13 130.43136 keV 0 eV 0 0 /cm2 0.92024483 /cm2 0 /cm2 0 /cm2 6750 /cm2 0 /cm2 0 /cm2 + 14 228.29779 keV 0 eV 0 0 /cm2 2.0715054 /cm2 0 /cm2 0 /cm2 6500 /cm2 0 /cm2 0 /cm2 + 15 173.5585 keV 0 eV 0 0 /cm2 1.6149517 /cm2 0 /cm2 0 /cm2 6375 /cm2 0 /cm2 0 /cm2 + 16 114.79385 keV 0 eV 0 0 /cm2 0.88868779 /cm2 0 /cm2 0 /cm2 5800 /cm2 0 /cm2 0 /cm2 + 17 11.89969 keV 0 eV 0 0 /cm2 0.017809432 /cm2 0 /cm2 0 /cm2 5575 /cm2 0 /cm2 0 /cm2 + 18 261.74159 keV 0 eV 0 0 /cm2 2.3943359 /cm2 0 /cm2 0 /cm2 5500 /cm2 0 /cm2 0 /cm2 + 19 114.92772 keV 0 eV 0 0 /cm2 0.89457436 /cm2 0 /cm2 0 /cm2 5025 /cm2 0 /cm2 0 /cm2 + 20 3.5112297 keV 0 eV 0 0 /cm2 0.0035783524 /cm2 0 /cm2 0 /cm2 4775 /cm2 0 /cm2 0 /cm2 + 21 32.762838 keV 0 eV 0 0 /cm2 0.093901105 /cm2 0 /cm2 0 /cm2 4575 /cm2 0 /cm2 0 /cm2 + 22 72.733028 keV 0 eV 0 0 /cm2 0.83990634 /cm2 0 /cm2 0 /cm2 4600 /cm2 0 /cm2 0 /cm2 + 23 33.79004 keV 0 eV 0 0 /cm2 0.092475454 /cm2 0 /cm2 0 /cm2 4650 /cm2 0 /cm2 0 /cm2 + 24 8.3719216 keV 0 eV 0 0 /cm2 0.011157966 /cm2 0 /cm2 0 /cm2 4475 /cm2 0 /cm2 0 /cm2 + 25 96.257053 keV 0 eV 0 0 /cm2 0.77181865 /cm2 0 /cm2 0 /cm2 4450 /cm2 0 /cm2 0 /cm2 + 26 26.254361 keV 0 eV 0 0 /cm2 0.057275274 /cm2 0 /cm2 0 /cm2 4100 /cm2 0 /cm2 0 /cm2 + 27 66.378904 keV 0 eV 0 0 /cm2 0.57481627 /cm2 0 /cm2 0 /cm2 4000 /cm2 0 /cm2 0 /cm2 + 28 40.939487 keV 0 eV 0 0 /cm2 0.11341763 /cm2 0 /cm2 0 /cm2 3925 /cm2 0 /cm2 0 /cm2 + 29 59.075777 keV 0 eV 0 0 /cm2 0.16756899 /cm2 0 /cm2 0 /cm2 3575 /cm2 0 /cm2 0 /cm2 + 30 18.736407 keV 0 eV 0 0 /cm2 0.046625078 /cm2 0 /cm2 0 /cm2 3375 /cm2 0 /cm2 0 /cm2 + 31 4.0194141 keV 0 eV 0 0 /cm2 0.004659494 /cm2 0 /cm2 0 /cm2 3150 /cm2 0 /cm2 0 /cm2 + 32 8.0030842 keV 0 eV 0 0 /cm2 0.02153942 /cm2 0 /cm2 0 /cm2 3225 /cm2 0 /cm2 0 /cm2 + 33 34.518929 keV 0 eV 0 0 /cm2 0.085011142 /cm2 0 /cm2 0 /cm2 3300 /cm2 0 /cm2 0 /cm2 + 34 82.771912 keV 0 eV 0 0 /cm2 0.80619656 /cm2 0 /cm2 0 /cm2 3175 /cm2 0 /cm2 0 /cm2 + 35 35.668665 keV 0 eV 0 0 /cm2 0.11117494 /cm2 0 /cm2 0 /cm2 3050 /cm2 0 /cm2 0 /cm2 + 36 131.17143 keV 0 eV 0 0 /cm2 1.4986252 /cm2 0 /cm2 0 /cm2 2975 /cm2 0 /cm2 0 /cm2 + 37 34.308197 keV 0 eV 0 0 /cm2 0.099106065 /cm2 0 /cm2 0 /cm2 2675 /cm2 0 /cm2 0 /cm2 + 38 34.746221 keV 0 eV 0 0 /cm2 0.09712877 /cm2 0 /cm2 0 /cm2 2725 /cm2 0 /cm2 0 /cm2 + 39 19.203025 keV 0 eV 0 0 /cm2 0.049553507 /cm2 0 /cm2 0 /cm2 2400 /cm2 0 /cm2 0 /cm2 + 40 14.080076 keV 0 eV 0 0 /cm2 0.037589881 /cm2 0 /cm2 0 /cm2 2400 /cm2 0 /cm2 0 /cm2 + 41 20.677307 keV 0 eV 0 0 /cm2 0.062034224 /cm2 0 /cm2 0 /cm2 2225 /cm2 0 /cm2 0 /cm2 + 42 14.660392 keV 0 eV 0 0 /cm2 0.16136495 /cm2 0 /cm2 0 /cm2 2200 /cm2 0 /cm2 0 /cm2 + 43 20.13466 keV 0 eV 0 0 /cm2 0.064536461 /cm2 0 /cm2 0 /cm2 2200 /cm2 0 /cm2 0 /cm2 + 44 36.862375 keV 0 eV 0 0 /cm2 0.1113917 /cm2 0 /cm2 0 /cm2 2050 /cm2 0 /cm2 0 /cm2 + 45 75.6191 keV 0 eV 0 0 /cm2 0.76670848 /cm2 0 /cm2 0 /cm2 1925 /cm2 0 /cm2 0 /cm2 + 46 7.1911188 keV 0 eV 0 0 /cm2 0.017561143 /cm2 0 /cm2 0 /cm2 1825 /cm2 0 /cm2 0 /cm2 + 47 9.4365701 keV 0 eV 0 0 /cm2 0.014611499 /cm2 0 /cm2 0 /cm2 1825 /cm2 0 /cm2 0 /cm2 + 48 67.929529 keV 0 eV 0 0 /cm2 0.75675313 /cm2 0 /cm2 0 /cm2 1775 /cm2 0 /cm2 0 /cm2 + 49 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 1675 /cm2 0 /cm2 0 /cm2 + 50 20.530499 keV 0 eV 0 0 /cm2 0.053818427 /cm2 0 /cm2 0 /cm2 1750 /cm2 0 /cm2 0 /cm2 + 51 22.741468 keV 0 eV 0 0 /cm2 0.068117183 /cm2 0 /cm2 0 /cm2 1725 /cm2 0 /cm2 0 /cm2 + 52 53.626736 keV 0 eV 0 0 /cm2 0.51924348 /cm2 0 /cm2 0 /cm2 1500 /cm2 0 /cm2 0 /cm2 + 53 4.1094026 keV 0 eV 0 0 /cm2 0.0069187106 /cm2 0 /cm2 0 /cm2 1600 /cm2 0 /cm2 0 /cm2 + 54 18.883493 keV 0 eV 0 0 /cm2 0.050722209 /cm2 0 /cm2 0 /cm2 1550 /cm2 0 /cm2 0 /cm2 + 55 11.367294 keV 0 eV 0 0 /cm2 0.04003148 /cm2 0 /cm2 0 /cm2 1425 /cm2 0 /cm2 0 /cm2 + 56 29.28201 keV 0 eV 0 0 /cm2 0.084984182 /cm2 0 /cm2 0 /cm2 1400 /cm2 0 /cm2 0 /cm2 + 57 11.003518 keV 0 eV 0 0 /cm2 0.037817099 /cm2 0 /cm2 0 /cm2 1275 /cm2 0 /cm2 0 /cm2 + 58 11.153972 keV 0 eV 0 0 /cm2 0.030194442 /cm2 0 /cm2 0 /cm2 1225 /cm2 0 /cm2 0 /cm2 + 59 3.174372 keV 0 eV 0 0 /cm2 0.0044933902 /cm2 0 /cm2 0 /cm2 1250 /cm2 0 /cm2 0 /cm2 + 60 3.1854377 keV 0 eV 0 0 /cm2 0.0045213719 /cm2 0 /cm2 0 /cm2 1225 /cm2 0 /cm2 0 /cm2 + 61 10.583834 keV 0 eV 0 0 /cm2 0.035262399 /cm2 0 /cm2 0 /cm2 1225 /cm2 0 /cm2 0 /cm2 + 62 85.042515 keV 0 eV 0 0 /cm2 0.55696863 /cm2 0 /cm2 0 /cm2 1250 /cm2 0 /cm2 0 /cm2 + 63 69.701802 keV 0 eV 0 0 /cm2 0.76576683 /cm2 0 /cm2 0 /cm2 1125 /cm2 0 /cm2 0 /cm2 + 64 7.7192474 keV 0 eV 0 0 /cm2 0.017308271 /cm2 0 /cm2 0 /cm2 950 /cm2 0 /cm2 0 /cm2 + 65 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 950 /cm2 0 /cm2 0 /cm2 + 66 2.4704381 keV 0 eV 0 0 /cm2 0.0022873924 /cm2 0 /cm2 0 /cm2 900 /cm2 0 /cm2 0 /cm2 + 67 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 925 /cm2 0 /cm2 0 /cm2 + 68 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 850 /cm2 0 /cm2 0 /cm2 + 69 5.0175633 keV 0 eV 0 0 /cm2 0.0085800534 /cm2 0 /cm2 0 /cm2 800 /cm2 0 /cm2 0 /cm2 + 70 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 800 /cm2 0 /cm2 0 /cm2 + 71 75.751836 keV 0 eV 0 0 /cm2 0.76619486 /cm2 0 /cm2 0 /cm2 850 /cm2 0 /cm2 0 /cm2 + 72 9.9835814 keV 0 eV 0 0 /cm2 0.031624871 /cm2 0 /cm2 0 /cm2 675 /cm2 0 /cm2 0 /cm2 + 73 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 600 /cm2 0 /cm2 0 /cm2 + 74 9.9477873 keV 0 eV 0 0 /cm2 0.031442594 /cm2 0 /cm2 0 /cm2 675 /cm2 0 /cm2 0 /cm2 + 75 9.4126696 keV 0 eV 0 0 /cm2 0.028717569 /cm2 0 /cm2 0 /cm2 600 /cm2 0 /cm2 0 /cm2 + 76 6.6389902 keV 0 eV 0 0 /cm2 0.0156734 /cm2 0 /cm2 0 /cm2 550 /cm2 0 /cm2 0 /cm2 + 77 18.803117 keV 0 eV 0 0 /cm2 0.050516344 /cm2 0 /cm2 0 /cm2 550 /cm2 0 /cm2 0 /cm2 + 78 60 keV 0 eV 0 0 /cm2 0.73557689 /cm2 0 /cm2 0 /cm2 500 /cm2 0 /cm2 0 /cm2 + 79 1.9905062 keV 0 eV 0 0 /cm2 0.0021325298 /cm2 0 /cm2 0 /cm2 450 /cm2 0 /cm2 0 /cm2 + 80 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 450 /cm2 0 /cm2 0 /cm2 + 81 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 475 /cm2 0 /cm2 0 /cm2 + 82 13.634322 keV 0 eV 0 0 /cm2 0.036361099 /cm2 0 /cm2 0 /cm2 400 /cm2 0 /cm2 0 /cm2 + 83 28.547581 keV 0 eV 0 0 /cm2 0.074435053 /cm2 0 /cm2 0 /cm2 375 /cm2 0 /cm2 0 /cm2 + 84 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 275 /cm2 0 /cm2 0 /cm2 + 85 9.479614 keV 0 eV 0 0 /cm2 0.029058476 /cm2 0 /cm2 0 /cm2 275 /cm2 0 /cm2 0 /cm2 + 86 13.735678 keV 0 eV 0 0 /cm2 0.040498031 /cm2 0 /cm2 0 /cm2 300 /cm2 0 /cm2 0 /cm2 + 87 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 250 /cm2 0 /cm2 0 /cm2 + 88 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 250 /cm2 0 /cm2 0 /cm2 + 89 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 225 /cm2 0 /cm2 0 /cm2 + 90 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 300 /cm2 0 /cm2 0 /cm2 + 91 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 250 /cm2 0 /cm2 0 /cm2 + 92 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 250 /cm2 0 /cm2 0 /cm2 + 93 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 225 /cm2 0 /cm2 0 /cm2 + 94 9.1338018 keV 0 eV 0 0 /cm2 0.027297467 /cm2 0 /cm2 0 /cm2 275 /cm2 0 /cm2 0 /cm2 + 95 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 275 /cm2 0 /cm2 0 /cm2 + 96 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 250 /cm2 0 /cm2 0 /cm2 + 97 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 250 /cm2 0 /cm2 0 /cm2 + 98 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 225 /cm2 0 /cm2 0 /cm2 + 99 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 225 /cm2 0 /cm2 0 /cm2 + 100 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 200 /cm2 0 /cm2 0 /cm2 + 101 3.9247273 keV 0 eV 0 0 /cm2 0.0063908125 /cm2 0 /cm2 0 /cm2 200 /cm2 0 /cm2 0 /cm2 + 102 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 103 10.103487 keV 0 eV 0 0 /cm2 0.032338426 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 104 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 105 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 106 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 107 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 175 /cm2 0 /cm2 0 /cm2 + 108 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 175 /cm2 0 /cm2 0 /cm2 + 109 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 110 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 111 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 0 /cm2 0 /cm2 + 112 2.876963 keV 0 eV 0 0 /cm2 0.0038536558 /cm2 0 /cm2 0 /cm2 125 /cm2 0 /cm2 0 /cm2 + 113 535.63111 eV 0 eV 0 0 /cm2 0.00037751128 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 114 1.4266846 keV 0 eV 0 0 /cm2 0.0013007898 /cm2 0 /cm2 0 /cm2 100 /cm2 0 /cm2 0 /cm2 + 115 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 0 /cm2 0 /cm2 + 116 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 0 /cm2 0 /cm2 + 117 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 0 /cm2 0 /cm2 + 118 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 125 /cm2 0 /cm2 0 /cm2 + 119 10.47114 keV 0 eV 0 0 /cm2 0.034576407 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 120 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 121 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 122 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 123 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 0 /cm2 0 /cm2 + 124 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 100 /cm2 0 /cm2 0 /cm2 + 125 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 0 /cm2 0 /cm2 + 126 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 127 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 128 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 129 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 0 /cm2 0 /cm2 + 130 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 131 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 132 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 133 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 134 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 135 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 75 /cm2 0 /cm2 0 /cm2 + 136 456.29262 eV 0 eV 0 0 /cm2 0.000322041 /cm2 0 /cm2 0 /cm2 150 /cm2 0 /cm2 0 /cm2 + 137 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 138 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 139 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 140 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 141 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 142 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 143 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 144 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 145 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 146 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 147 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 148 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 149 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 150 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 151 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 152 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 153 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 154 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 155 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 50 /cm2 0 /cm2 0 /cm2 + 156 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 157 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 158 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 159 10.394967 keV 0 eV 0 0 /cm2 0.034112724 /cm2 0 /cm2 0 /cm2 25 /cm2 0 /cm2 0 /cm2 + 160 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 161 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 162 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 163 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 164 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 165 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 166 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 167 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 168 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 169 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 170 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 171 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 172 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 173 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 174 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 175 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 176 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 177 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 178 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 179 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 180 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 181 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 182 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 183 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 184 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 185 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 186 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 187 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 188 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 189 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 190 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 191 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 192 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 193 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 194 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 195 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 196 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 197 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 198 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 + 199 0 eV 0 eV 0 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 0 /cm2 +============================================= +# +Graphics systems deleted. +Visualization Manager deleting... +UserDetectorConstruction deleted. +UserPhysicsList deleted. +UserRunAction deleted. +UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. +G4SDManager deleted. +EventManager deleted. +UImanager deleted. +StateManager deleted. +RunManagerKernel is deleted. +RunManager is deleting. diff --git a/examples/extended/runAndEvent/RE02/run4.mac b/examples/extended/runAndEvent/RE02/run4.mac new file mode 100644 index 0000000000..c9949744a1 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/run4.mac @@ -0,0 +1,47 @@ +# $Id: run4.mac,v 1.1 2005/11/24 01:44:18 asaim Exp $ +# +# Macro file for "exampleRE02.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run2.mac +# +/control/verbose 2 +/run/verbose 2 +/event/verbose 0 +#/tracking/verbose 1 +# +# +/vis/scene/create +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +#/vis/open OGLIX +#/vis/open DAWNFILE +#/vis/open VRML2FILE +# +# viewer settings +/vis/viewer/set/viewpointThetaPhi 90 180 deg +/vis/viewer/zoom 1.4 +# +# Store trajectory +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +/vis/scene/endOfEventAction accumulate +# +# +# Beam Parameters +# for electron +# UIcommands from G4ParticleGun. +# +/gun/particle gamma +# +# Kinetic Energy. +#/gun/energy 35. keV +/gun/energy 60. keV +#/gun/energy 356. keV +# +/gun/position 0 0 -100. cm +/gun/direction 0 0 1 +# +/run/beamOn 10000 +# diff --git a/examples/extended/runAndEvent/RE02/src/RE02DetectorConstruction.cc b/examples/extended/runAndEvent/RE02/src/RE02DetectorConstruction.cc new file mode 100644 index 0000000000..afac3f4371 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02DetectorConstruction.cc @@ -0,0 +1,371 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RE02DetectorConstruction.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#include "RE02DetectorConstruction.hh" + +#include "G4MultiFunctionalDetector.hh" + +#include "G4PSEnergyDeposit.hh" +//#include "G4PSDoseDeposit.hh" +#include "G4PSNofStep.hh" +//#include "G4PSNofSecondary.hh" +//#include "G4PSMinKinEAtGeneration.hh" +#include "G4PSCellFlux.hh" +//#include "G4PSTrackLength.hh" +//#include "G4PSPassageTrackLength.hh" +//#include "G4PSPassageCurrent.hh" +#include "G4PSPassageCellFlux.hh" +#include "G4PSFlatSurfaceFlux.hh" +#include "G4PSFlatSurfaceCurrent.hh" +//#include "G4PSSphereSurfaceCurrent.hh" +#include "G4SDParticleWithEnergyFilter.hh" +#include "G4SDParticleFilter.hh" +#include "G4SDChargedFilter.hh" + +#include "G4NistManager.hh" +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4SDManager.hh" + +#include "G4PVParameterised.hh" +#include "RE02PhantomParameterisation.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "G4ios.hh" + +//======================================================================= +// RE02DetectorConstruction +// +// (Description) +// +// Detector construction for example RE02. +// +// [Geometry] +// The world volume is defined as 200 cm x 200 cm x 200 cm box with Air. +// Water phantom is defined as 200 mm x 200 mm x 400 mm box with Water. +// The water phantom is divided into 100 segments in x,y plane, and 200 segments +// perpendicular to z axis using parameterised volume. +// These values are defined at constructor, +// e.g. the size of water phantom (fphantomSize), and number of segmentation +// of water phantom (fNx, fNy, fNz). +// NIST database is used for materials. +// +// [Scorer] +// Assignment of G4MultiFunctionalDetector and G4PrimitiveScorer +// is demonstrated in this example. +// ------------------------------------------------- +// The collection names of defined Primitives are +// 0 PhantomSD/totalEDep +// 1 PhantomSD/protonEDep +// 2 PhantomSD/protonNStep +// 3 PhantomSD/chargedPassCellFlux +// 4 PhantomSD/chargedCellFlux +// 5 PhantomSD/chargedSurfFlux +// 6 PhantomSD/gammaSurfCurr000 +// 7 PhantomSD/gammaSurfCurr001 +// 9 PhantomSD/gammaSurdCurr002 +// 10 PhantomSD/gammaSurdCurr003 +// ------------------------------------------------- +// Please see README for detail description. +// +//======================================================================= + +// +RE02DetectorConstruction::RE02DetectorConstruction() +{ + fphantomSize.setX(200.*mm); + fphantomSize.setY(200.*mm); + fphantomSize.setZ(400.*mm); + //fNx = fNy = fNz = 100; + fNx = 100; fNy = 100; fNz = 200; + //fNx = 1; fNy = 1; fNz = 200; + G4cout << "<-- RE02DetectorConstruction -----------------" <FindOrBuildMaterial("G4_AIR"); + G4Material* H2O = NISTman->FindOrBuildMaterial("G4_WATER"); + + // + // Print all the materials defined. + G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; + G4cout << *(G4Material::GetMaterialTable()) << G4endl; + + + //============================================================================ + // Definitions of Solids, Logical Volumes, Physical Volumes + //============================================================================ + + //------------- + // World Volume + //------------- + + G4ThreeVector worldSize = G4ThreeVector(200*cm, 200*cm, 200*cm); + + G4Box * solidWorld + = new G4Box("world", worldSize.x()/2., worldSize.y()/2., worldSize.z()/2.); + G4LogicalVolume * logicWorld + = new G4LogicalVolume(solidWorld, Air, "World", 0, 0, 0); + + // + // Must place the World Physical volume unrotated at (0,0,0). + G4VPhysicalVolume * physiWorld + = new G4PVPlacement(0, // no rotation + G4ThreeVector(), // at (0,0,0) + logicWorld, // its logical volume + "World", // its name + 0, // its mother volume + false, // no boolean operations + 0); // copy number + + //--------------- + // Water Phantom + //--------------- + + //................................ + // Mother Volume of Water Phantom + //................................ + + //-- Default size of water phantom is defined at constructor. + G4ThreeVector phantomSize = fphantomSize; + + G4Box * solidPhantom + = new G4Box("phantom", + phantomSize.x()/2., phantomSize.y()/2., phantomSize.z()/2.); + G4LogicalVolume * logicPhantom + = new G4LogicalVolume(solidPhantom, H2O, "Phantom", 0, 0, 0); + + G4RotationMatrix* rot=new G4RotationMatrix(); + //rot->rotateY(30.*deg); + G4ThreeVector positionPhantom; + //G4VPhysicalVolume * physiPhantom = + new G4PVPlacement(rot, // no rotation + positionPhantom, // at (x,y,z) + logicPhantom, // its logical volume + "Phantom", // its name + logicWorld, // its mother volume + false, // no boolean operations + 0); // copy number + + //.............................................. + // Phantom segmentation using Parameterisation + //.............................................. + // + // Number of segmentation. + // - Default number of segmentation is defined at constructor. + G4int nxCells = fNx; + G4int nyCells = fNy; + G4int nzCells = fNz; + + G4int nCells = nxCells*nyCells*nzCells; + G4ThreeVector sensSize; + sensSize.setX(phantomSize.x()/(G4double)nxCells); + sensSize.setY(phantomSize.y()/(G4double)nyCells); + sensSize.setZ(phantomSize.z()/(G4double)nzCells); + // i.e Voxel size will be 2.0 x 2.0 x 2.0 mm3 cube by default. + // + + //.................................. + // Voxel solid and logical volumes + //.................................. + // + G4Box * solidPhantomSens + = new G4Box("phantomSens", + sensSize.x()/2., sensSize.y()/2., sensSize.z()/2.); + G4LogicalVolume * logicPhantomSens + = new G4LogicalVolume(solidPhantomSens, H2O,"PhantomSens",0,0,0); + // + // Parameterisation for transformation of voxels. + // (voxel size is fixed in this example. i.e parameterisation handles + // only transfomation of voxels.) + RE02PhantomParameterisation* paramPhantom + = new RE02PhantomParameterisation(phantomSize/2.,nxCells,nyCells,nzCells); + //G4VPhysicalVolume * physiPhantomSens = + new G4PVParameterised("PhantomSens", // their name + logicPhantomSens, // their logical volume + logicPhantom, // Mother logical volume + kUndefined, // Are placed along this axis + nCells, // Number of cells + paramPhantom); // Parameterisation. + // Optimization flag is avaiable for, + // kUndefined, kXAxis, kYAxis, kZAxis. + // + + //================================================ + // Sensitive detectors : MultiFunctionalDetector + //================================================ + // + // Sensitive Detector Manager. + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + // + // Sensitive Detector Name + G4String phantomSDname = "PhantomSD"; + + //------------------------ + // MultiFunctionalDetector + //------------------------ + // + // Define MultiFunctionalDetector with name. + G4MultiFunctionalDetector* MFDet = new G4MultiFunctionalDetector(phantomSDname); + SDman->AddNewDetector( MFDet ); // Register SD to SDManager. + logicPhantomSens->SetSensitiveDetector(MFDet); // Assign SD to the logical volume. + + //--------------------------------------- + // SDFilter : Sensitive Detector Filters + //--------------------------------------- + // + // Particle Filter for Primitive Scorer with filter name(fltName) + // and particle name(particleName), + // or particle names are given by add("particle name"); method. + // + G4String fltName,particleName; + // + //-- proton filter + G4SDParticleFilter* protonFilter = + new G4SDParticleFilter(fltName="protonFilter", particleName="proton"); + // + //-- electron filter + G4SDParticleFilter* electronFilter = + new G4SDParticleFilter(fltName="electronFilter"); + electronFilter->add(particleName="e+"); // accept electrons. + electronFilter->add(particleName="e-"); // accept positorons. + // + //-- charged particle filter + G4SDChargedFilter* chargedFilter = + new G4SDChargedFilter(fltName="chargedFilter"); + + //------------------------ + // PS : Primitive Scorers + //------------------------ + // Primitive Scorers are used with SDFilters according to your purpose. + // + // + //-- Primitive Scorer for Energy Deposit. + // Total, by protons, by electrons. + G4String psName; + G4PSEnergyDeposit* scorer0 = new G4PSEnergyDeposit(psName="totalEDep"); + G4PSEnergyDeposit* scorer1 = new G4PSEnergyDeposit(psName="protonEDep"); + scorer1->SetFilter(protonFilter); + + // + //-- Number of Steps for protons + G4PSNofStep* scorer2 = new G4PSNofStep(psName="protonNStep"); + scorer2->SetFilter(protonFilter); + + // + //-- CellFlux for charged particles + G4PSPassageCellFlux* scorer3 = new G4PSPassageCellFlux(psName="chargedPassCellFlux"); + G4PSCellFlux* scorer4 = new G4PSCellFlux(psName="chargedCellFlux"); + G4PSFlatSurfaceFlux* scorer5 = new G4PSFlatSurfaceFlux(psName="chargedSurfFlux",fFlux_InOut); + scorer3->SetFilter(chargedFilter); + scorer4->SetFilter(chargedFilter); + scorer5->SetFilter(chargedFilter); + + // + //------------------------------------------------------------ + // Register primitive scorers to MultiFunctionalDetector + //------------------------------------------------------------ + MFDet->RegisterPrimitive(scorer0); + MFDet->RegisterPrimitive(scorer1); + MFDet->RegisterPrimitive(scorer2); + MFDet->RegisterPrimitive(scorer3); + MFDet->RegisterPrimitive(scorer4); + MFDet->RegisterPrimitive(scorer5); + + + //======================== + // More additional Primitive Scoreres + //======================== + // + //--- Surface Current for gamma with energy bin. + // This example creates four primitive scorers. + // 4 bins with energy --- Primitive Scorer Name + // 1. to 10 KeV, gammaSurfCurr000 + // 10 keV to 100 KeV, gammaSurfCurr001 + // 100 keV to 1 MeV, gammaSurfCurr002 + // 1 MeV to 10 MeV. gammaSurfCurr003 + // + char name[16]; + for ( G4int i = 0; i < 4; i++){ + std::sprintf(name,"gammaSurfCurr%03d",i); + G4String psgName(name); + G4double kmin = std::pow(10.,(G4double)i)*keV; + G4double kmax = std::pow(10.,(G4double)(i+1))*keV; + //-- Particle with kinetic energy filter. + G4SDParticleWithEnergyFilter* pkinEFilter = + new G4SDParticleWithEnergyFilter(fltName="gammaE filter",kmin,kmax); + pkinEFilter->add("gamma"); // Accept only gamma. + pkinEFilter->show(); // Show accepting condition to stdout. + //-- Surface Current Scorer which scores number of tracks in unit area. + G4PSFlatSurfaceCurrent* scorer = + new G4PSFlatSurfaceCurrent(psgName,fCurrent_InOut); + scorer->SetFilter(pkinEFilter); // Assign filter. + MFDet->RegisterPrimitive(scorer); // Register it to MultiFunctionalDetector. + } + // + + //=============================== + // Visualization attributes + //=============================== + + G4VisAttributes* BoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + logicWorld ->SetVisAttributes(BoxVisAtt); + //logicWorld->SetVisAttributes(G4VisAttributes::Invisible); + + G4VisAttributes* PhantomVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); + logicPhantom->SetVisAttributes(PhantomVisAtt); + + // If number of segmentation of water phantom is too large, + // skip the visualization for those voxels. + if ( nCells > 1000 ) { + logicPhantomSens->SetVisAttributes(G4VisAttributes::Invisible); + } + + return physiWorld; +} + diff --git a/examples/extended/runAndEvent/RE02/src/RE02EMPhysics.cc b/examples/extended/runAndEvent/RE02/src/RE02EMPhysics.cc new file mode 100644 index 0000000000..b408841fe8 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02EMPhysics.cc @@ -0,0 +1,117 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02EMPhysics.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// +// 09-Oct-2003 Change gamma, electron, positorn process T. Koi +// 10-Jan-2004 Add Brems. of AlongStepDoIt for e+- T. Koi + + +#include "RE02EMPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include + + +RE02EMPhysics::RE02EMPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +RE02EMPhysics::~RE02EMPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4Gamma.hh" + +#include "G4Electron.hh" +#include "G4Positron.hh" + +#include "G4NeutrinoE.hh" +#include "G4AntiNeutrinoE.hh" + +#include "G4ProcessManager.hh" + +void RE02EMPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + //Gamma + pManager = G4Gamma::Gamma()->GetProcessManager(); + pManager->AddDiscreteProcess(new G4GammaConversion()); + pManager->AddDiscreteProcess(new G4ComptonScattering()); + pManager->AddDiscreteProcess(new G4PhotoElectricEffect()); + + //Electorn + pManager = G4Electron::Electron()->GetProcessManager(); + G4VProcess* theeminusMultipleScattering = new G4MultipleScattering(); + G4VProcess* theeminusIonisation = new G4eIonisation(); + G4VProcess* theeminusBremsstrahlung = new G4eBremsstrahlung(); + // + // add process + pManager->AddProcess(theeminusMultipleScattering); + pManager->AddProcess(theeminusIonisation); + pManager->AddProcess(theeminusBremsstrahlung); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theeminusMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theeminusIonisation, idxAlongStep,2); + pManager->SetProcessOrdering(theeminusBremsstrahlung, idxAlongStep,3); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theeminusIonisation, idxPostStep,2); + pManager->SetProcessOrdering(theeminusBremsstrahlung, idxPostStep,3); + + //Positron + pManager = G4Positron::Positron()->GetProcessManager(); + G4VProcess* theeplusMultipleScattering = new G4MultipleScattering(); + G4VProcess* theeplusIonisation = new G4eIonisation(); + G4VProcess* theeplusBremsstrahlung = new G4eBremsstrahlung(); + G4VProcess* theeplusAnnihilation = new G4eplusAnnihilation(); + + pManager->AddProcess(theeplusMultipleScattering); + pManager->AddProcess(theeplusIonisation); + pManager->AddProcess(theeplusBremsstrahlung); + pManager->AddProcess(theeplusAnnihilation); + // + // set ordering for AtRestDoIt + pManager->SetProcessOrderingToFirst(theeplusAnnihilation, idxAtRest); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theeplusMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theeplusIonisation, idxAlongStep,2); + pManager->SetProcessOrdering(theeplusBremsstrahlung, idxAlongStep,3); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theeplusMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theeplusIonisation, idxPostStep,2); + pManager->SetProcessOrdering(theeplusBremsstrahlung, idxPostStep,3); + pManager->SetProcessOrdering(theeplusAnnihilation, idxPostStep,4); + +} diff --git a/source/graphics_reps/src/G4VVisPrim.cc b/examples/extended/runAndEvent/RE02/src/RE02EventAction.cc similarity index 60% rename from source/graphics_reps/src/G4VVisPrim.cc rename to examples/extended/runAndEvent/RE02/src/RE02EventAction.cc index 57126b6054..2d4f8e5ca2 100644 --- a/source/graphics_reps/src/G4VVisPrim.cc +++ b/examples/extended/runAndEvent/RE02/src/RE02EventAction.cc @@ -21,46 +21,48 @@ // ******************************************************************** // // -// $Id: G4VVisPrim.cc,v 1.8 2003/06/16 16:55:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: RE02EventAction.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// -// John Allison August 1995 + +#include "RE02EventAction.hh" -#include "G4VVisPrim.hh" -#include "G4VisAttributes.hh" -#include "G4ios.hh" +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" -G4VVisPrim::G4VVisPrim () {} - -G4VVisPrim::G4VVisPrim (const G4VVisPrim& prim): -G4Visible (prim) +// +RE02EventAction::RE02EventAction() {} -G4VVisPrim::G4VVisPrim (const G4VisAttributes* pVA): -G4Visible (pVA) +// +RE02EventAction::~RE02EventAction() {} -G4VVisPrim::~G4VVisPrim () {} +// +void RE02EventAction::BeginOfEventAction(const G4Event*) +{} + +// +void RE02EventAction::EndOfEventAction(const G4Event* evt) +{ + G4int event_id = evt->GetEventID(); + + // get number of stored trajectories + // + G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + + // periodic printing + // + if (event_id < 100 || event_id%100 == 0) { + G4cout << ">>> Event " << evt->GetEventID() << G4endl; + //G4cout << " " << n_trajectories + // << " trajectories stored in this event." << G4endl; + } -G4Visible& G4VVisPrim::operator = (const G4Visible& right) { - return G4Visible::operator = (right); } -G4VVisPrim& G4VVisPrim::operator = (const G4VVisPrim& right) { - if (&right == this) return *this; - G4Visible::operator = (right); - return *this; -} - -G4bool G4VVisPrim::operator == (const G4Visible& right) const{ - return G4Visible::operator == (right); -} - -G4bool G4VVisPrim::operator == (const G4VVisPrim& right) const{ - return G4Visible::operator == (right); -} - -std::ostream& operator << (std::ostream& os, const G4VVisPrim& prim) { - return os << (G4Visible) prim; -} +// diff --git a/examples/extended/runAndEvent/RE02/src/RE02GeneralPhysics.cc b/examples/extended/runAndEvent/RE02/src/RE02GeneralPhysics.cc new file mode 100644 index 0000000000..364c442a8b --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02GeneralPhysics.cc @@ -0,0 +1,108 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02GeneralPhysics.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// 22-Nov-2004 Construt ALL Particles by T. Koi + + +#include "RE02GeneralPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include + +RE02GeneralPhysics::RE02GeneralPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +RE02GeneralPhysics::~RE02GeneralPhysics() +{ +} + +#include "G4BaryonConstructor.hh" +#include "G4BosonConstructor.hh" +#include "G4IonConstructor.hh" +#include "G4LeptonConstructor.hh" +#include "G4MesonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +void RE02GeneralPhysics::ConstructParticle() +{ + // In Alphabetical Order + + // Construct all barions + G4BaryonConstructor* baryonConstructor = new G4BaryonConstructor(); + baryonConstructor -> ConstructParticle(); + delete baryonConstructor; + + // Construct all bosons (including geantinos) + G4BosonConstructor* bosonConstructor = new G4BosonConstructor(); + bosonConstructor -> ConstructParticle(); + delete bosonConstructor; + + // Construct all ions + G4IonConstructor* ionConstructor = new G4IonConstructor(); + ionConstructor -> ConstructParticle(); + delete ionConstructor; + + // Construct all leptons + G4LeptonConstructor* leptonConstructor = new G4LeptonConstructor(); + leptonConstructor -> ConstructParticle(); + delete leptonConstructor; + + // Construct all mesons + G4MesonConstructor* mesonConstructor = new G4MesonConstructor(); + mesonConstructor -> ConstructParticle(); + delete mesonConstructor; + + // Construct resonaces and quarks + G4ShortLivedConstructor* shortLivedConstructor = new G4ShortLivedConstructor(); + shortLivedConstructor -> ConstructParticle(); + delete shortLivedConstructor; + +} + +#include "G4Decay.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +void RE02GeneralPhysics::ConstructProcess() +{ + // Add Decay Process + G4Decay* theDecayProcess = new G4Decay(); + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (theDecayProcess->IsApplicable(*particle)) { + pmanager ->AddProcess(theDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); + } + } +} + + diff --git a/examples/extended/runAndEvent/RE02/src/RE02HadronPhysics.cc b/examples/extended/runAndEvent/RE02/src/RE02HadronPhysics.cc new file mode 100644 index 0000000000..e562051d5e --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02HadronPhysics.cc @@ -0,0 +1,720 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02HadronPhysics.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// 09-Oct-2003 Hadron Physics List with Parameterization Model by T. Koi +// 12-Oct-2003 Bug Fixed (KaonMinus) by T. Koi +// 16-Nov-2005 Binary Cascade for Protons. by T. Aso +// Proton : BinaryCascade < 6 GeV, 4 GeV < LE Model, +// Neutron: BinaryCascade < 6 GeV, 4 GeV < LE Model, +// + +#include "RE02HadronPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include + + +RE02HadronPhysics::RE02HadronPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +RE02HadronPhysics::~RE02HadronPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4ProcessManager.hh" + +void RE02HadronPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Pi+ Physics + pManager = G4PionPlus::PionPlus()->GetProcessManager(); + + // add processes + G4HadronElasticProcess* theppElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theppElasticModel = new G4LElastic(); + theppElasticProcess->RegisterMe(theppElasticModel); + pManager->AddDiscreteProcess(theppElasticProcess); + + G4PionPlusInelasticProcess* thePionPlusInelasticProcess + = new G4PionPlusInelasticProcess(); + + G4LEPionPlusInelastic* thePionPlusLEPModel = new G4LEPionPlusInelastic(); + G4HEPionPlusInelastic* thePionPlusHEPModel = new G4HEPionPlusInelastic(); + thePionPlusInelasticProcess->RegisterMe(thePionPlusLEPModel); + thePionPlusInelasticProcess->RegisterMe(thePionPlusHEPModel); + pManager->AddDiscreteProcess(thePionPlusInelasticProcess); + + G4VProcess* theppMultipleScattering = new G4MultipleScattering(); + G4VProcess* theppIonisation = new G4hIonisation(); + // + pManager->AddProcess(theppIonisation); + pManager->AddProcess(theppMultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theppMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theppIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theppMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theppIonisation, idxPostStep,2); + + + // Pi- Physics + pManager = G4PionMinus::PionMinus()->GetProcessManager(); + + G4HadronElasticProcess* thepmElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thepmElasticModel = new G4LElastic(); + thepmElasticProcess->RegisterMe(thepmElasticModel); + pManager->AddDiscreteProcess(thepmElasticProcess); + + G4PionMinusInelasticProcess* thePionMinusInelasticProcess + = new G4PionMinusInelasticProcess(); + + G4LEPionMinusInelastic* thePionMinusLEPModel = new G4LEPionMinusInelastic(); + G4HEPionMinusInelastic* thePionMinusHEPModel = new G4HEPionMinusInelastic(); + thePionMinusInelasticProcess->RegisterMe(thePionMinusLEPModel); + thePionMinusInelasticProcess->RegisterMe(thePionMinusHEPModel); + pManager->AddDiscreteProcess(thePionMinusInelasticProcess); + + G4VProcess* thepmMultipleScattering = new G4MultipleScattering(); + G4VProcess* thepmIonisation = new G4hIonisation(); + // + // add processes + pManager->AddProcess(thepmIonisation); + pManager->AddProcess(thepmMultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thepmMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thepmIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thepmMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thepmIonisation, idxPostStep,2); + + + // K+ Physics + pManager = G4KaonPlus::KaonPlus()->GetProcessManager(); + + G4HadronElasticProcess* thekpElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thekpElasticModel = new G4LElastic(); + thekpElasticProcess->RegisterMe(thekpElasticModel); + pManager->AddDiscreteProcess(thekpElasticProcess); + + G4KaonPlusInelasticProcess* theKaonPlusInelasticProcess + = new G4KaonPlusInelasticProcess(); + + G4LEKaonPlusInelastic* theKaonPlusLEPModel = new G4LEKaonPlusInelastic(); + G4HEKaonPlusInelastic* theKaonPlusHEPModel = new G4HEKaonPlusInelastic(); + theKaonPlusInelasticProcess->RegisterMe(theKaonPlusLEPModel); + theKaonPlusInelasticProcess->RegisterMe(theKaonPlusHEPModel); + pManager->AddDiscreteProcess(theKaonPlusInelasticProcess); + + G4VProcess* thekpMultipleScattering = new G4MultipleScattering(); + G4VProcess* thekpIonisation = new G4hIonisation(); + // + // add processes + pManager->AddProcess(thekpIonisation); + pManager->AddProcess(thekpMultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thekpMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thekpIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thekpMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thekpIonisation, idxPostStep,2); + + + // K- Physics + pManager = G4KaonMinus::KaonMinus()->GetProcessManager(); + + // add processes + G4HadronElasticProcess* thekmElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thekmElasticModel = new G4LElastic(); + thekmElasticProcess->RegisterMe(thekmElasticModel); + pManager->AddDiscreteProcess(thekmElasticProcess); + + G4KaonMinusInelasticProcess* theKaonMinusInelasticProcess + = new G4KaonMinusInelasticProcess(); + + G4LEKaonMinusInelastic* theKaonMinusLEPModel = new G4LEKaonMinusInelastic(); + G4HEKaonMinusInelastic* theKaonMinusHEPModel = new G4HEKaonMinusInelastic(); + theKaonMinusInelasticProcess->RegisterMe(theKaonMinusLEPModel); + theKaonMinusInelasticProcess->RegisterMe(theKaonMinusHEPModel); + pManager->AddDiscreteProcess(theKaonMinusInelasticProcess); + + G4VProcess* thekmMultipleScattering = new G4MultipleScattering(); + G4VProcess* thekmIonisation = new G4hIonisation(); + + pManager->AddProcess(thekmIonisation); + pManager->AddProcess(thekmMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thekmMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thekmIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thekmMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thekmIonisation, idxPostStep,2); + + + // Kaon0L Phsics + pManager = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); + + G4HadronElasticProcess* thek0lElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thek0lElasticModel = new G4LElastic(); + thek0lElasticProcess->RegisterMe(thek0lElasticModel); + pManager->AddDiscreteProcess(thek0lElasticProcess); + + G4KaonZeroLInelasticProcess* theKaonZeroLInelasticProcess + = new G4KaonZeroLInelasticProcess(); + + G4LEKaonZeroLInelastic* theKaonZeroLLEPModel = new G4LEKaonZeroLInelastic(); + G4HEKaonZeroInelastic* theKaonZerolHEPModel = new G4HEKaonZeroInelastic(); + theKaonZeroLInelasticProcess->RegisterMe(theKaonZeroLLEPModel); + theKaonZeroLInelasticProcess->RegisterMe(theKaonZerolHEPModel); + pManager->AddDiscreteProcess(theKaonZeroLInelasticProcess); + + + // Kaon0S Phsics + pManager = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); + + G4HadronElasticProcess* thek0sElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thek0sElasticModel = new G4LElastic(); + thek0sElasticProcess->RegisterMe(thek0sElasticModel); + pManager->AddDiscreteProcess(thek0sElasticProcess); + + G4KaonZeroSInelasticProcess* theKaonZeroSInelasticProcess + = new G4KaonZeroSInelasticProcess(); + + G4LEKaonZeroSInelastic* theKaonZeroSLEPModel = new G4LEKaonZeroSInelastic(); + G4HEKaonZeroInelastic* theKaonZerosHEPModel = new G4HEKaonZeroInelastic(); + theKaonZeroSInelasticProcess->RegisterMe(theKaonZeroSLEPModel); + theKaonZeroSInelasticProcess->RegisterMe(theKaonZerosHEPModel); + pManager->AddDiscreteProcess(theKaonZeroSInelasticProcess); + + + // Proton Physics + pManager = G4Proton::Proton()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thepElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thepElasticModel = new G4LElastic(); + thepElasticProcess->RegisterMe(thepElasticModel); + pManager->AddDiscreteProcess(thepElasticProcess); + + G4ProtonInelasticProcess* theProtonInelasticProcess + = new G4ProtonInelasticProcess(); + + G4BinaryCascade* theProtonBCModel = new G4BinaryCascade(); + theProtonBCModel->SetMaxEnergy(6.*GeV); + G4LEProtonInelastic* theProtonLEPModel = new G4LEProtonInelastic(); + theProtonLEPModel->SetMinEnergy(4.*GeV); + G4HEProtonInelastic* theProtonHEPModel = new G4HEProtonInelastic(); + theProtonInelasticProcess->RegisterMe(theProtonBCModel); + theProtonInelasticProcess->RegisterMe(theProtonLEPModel); + theProtonInelasticProcess->RegisterMe(theProtonHEPModel); + pManager->AddDiscreteProcess(theProtonInelasticProcess); + + G4VProcess* thepMultipleScattering = new G4MultipleScattering(); + G4VProcess* thepIonisation = new G4hIonisation(); + + pManager->AddProcess(thepIonisation); + pManager->AddProcess(thepMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thepMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thepIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thepMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thepIonisation, idxPostStep,2); + + + // anti-proton Physics + pManager = G4AntiProton::AntiProton()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theapElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theapElasticModel = new G4LElastic(); + theapElasticProcess->RegisterMe(theapElasticModel); + pManager->AddDiscreteProcess(theapElasticProcess); + + G4AntiProtonInelasticProcess* theAntiProtonInelasticProcess + = new G4AntiProtonInelasticProcess(); + + G4LEAntiProtonInelastic* theAntiProtonLEPModel = new G4LEAntiProtonInelastic(); + G4HEAntiProtonInelastic* theAntiProtonHEPModel = new G4HEAntiProtonInelastic(); + theAntiProtonInelasticProcess->RegisterMe(theAntiProtonLEPModel); + theAntiProtonInelasticProcess->RegisterMe(theAntiProtonHEPModel); + pManager->AddDiscreteProcess(theAntiProtonInelasticProcess); + + G4AntiProtonAnnihilationAtRest* theAntiProtonAnnihilation + = new G4AntiProtonAnnihilationAtRest(); + pManager->AddRestProcess(theAntiProtonAnnihilation); + + G4VProcess* theapMultipleScattering = new G4MultipleScattering(); + G4VProcess* theapIonisation = new G4hIonisation(); + + pManager->AddProcess(theapIonisation); + pManager->AddProcess(theapMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theapMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theapIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theapMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theapIonisation, idxPostStep,2); + + + // neutron Physics + pManager = G4Neutron::Neutron()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thenElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thenElasticModel = new G4LElastic(); + thenElasticProcess->RegisterMe(thenElasticModel); + pManager->AddDiscreteProcess(thenElasticProcess); + + G4NeutronInelasticProcess* theNeutronInelasticProcess + = new G4NeutronInelasticProcess(); + + G4BinaryCascade* theNeutronBCModel = new G4BinaryCascade(); + theNeutronBCModel->SetMaxEnergy(6.*GeV); + G4LENeutronInelastic* theNeutronLEPModel = new G4LENeutronInelastic(); + theNeutronLEPModel->SetMinEnergy(4.*GeV); + G4HENeutronInelastic* theNeutronHEPModel = new G4HENeutronInelastic(); + theNeutronInelasticProcess->RegisterMe(theNeutronBCModel); + theNeutronInelasticProcess->RegisterMe(theNeutronLEPModel); + theNeutronInelasticProcess->RegisterMe(theNeutronHEPModel); + pManager->AddDiscreteProcess(theNeutronInelasticProcess); + + G4HadronFissionProcess* thenFission + = new G4HadronFissionProcess(); + G4LFission* thenFissionModel = new G4LFission(); + thenFission->RegisterMe(thenFissionModel); + pManager->AddDiscreteProcess(thenFission); + + + G4HadronCaptureProcess* thenCapture + = new G4HadronCaptureProcess(); + G4LCapture* thenCaptureModel = new G4LCapture(); + thenCapture->RegisterMe(thenCaptureModel); + pManager->AddDiscreteProcess(thenCapture); + + + // anti-neutron Physics + pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theanElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theanElasticModel = new G4LElastic(); + theanElasticProcess->RegisterMe(theanElasticModel); + pManager->AddDiscreteProcess(theanElasticProcess); + + G4AntiNeutronInelasticProcess* theAntiNeutronInelasticProcess + = new G4AntiNeutronInelasticProcess(); + + G4LEAntiNeutronInelastic* theAntiNeutronLEPModel = new G4LEAntiNeutronInelastic(); + G4HEAntiNeutronInelastic* theAntiNeutronHEPModel = new G4HEAntiNeutronInelastic(); + theAntiNeutronInelasticProcess->RegisterMe(theAntiNeutronLEPModel); + theAntiNeutronInelasticProcess->RegisterMe(theAntiNeutronHEPModel); + pManager->AddDiscreteProcess(theAntiNeutronInelasticProcess); + + G4AntiNeutronAnnihilationAtRest* theAntiNeutronAnnihilation + = new G4AntiNeutronAnnihilationAtRest(); + pManager->AddRestProcess(theAntiNeutronAnnihilation); + + + // Lambda Physics + pManager = G4Lambda::Lambda()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thel0ElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thel0ElasticModel = new G4LElastic(); + thel0ElasticProcess->RegisterMe(thel0ElasticModel); + pManager->AddDiscreteProcess(thel0ElasticProcess); + + G4LambdaInelasticProcess* theLambdaInelasticProcess + = new G4LambdaInelasticProcess(); + + G4LELambdaInelastic* theLambdaLEPModel = new G4LELambdaInelastic(); + G4HELambdaInelastic* theLambdaHEPModel = new G4HELambdaInelastic(); + theLambdaInelasticProcess->RegisterMe(theLambdaLEPModel); + theLambdaInelasticProcess->RegisterMe(theLambdaHEPModel); + pManager->AddDiscreteProcess(theLambdaInelasticProcess); + + + // Anti-Labda Physics + pManager = G4AntiLambda::AntiLambda()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theal0ElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theal0ElasticModel = new G4LElastic(); + theal0ElasticProcess->RegisterMe(theal0ElasticModel); + pManager->AddDiscreteProcess(theal0ElasticProcess); + + G4AntiLambdaInelasticProcess* theAntiLambdaInelasticProcess + = new G4AntiLambdaInelasticProcess(); + + G4LEAntiLambdaInelastic* theAntiLambdaLEPModel = new G4LEAntiLambdaInelastic(); + G4HEAntiLambdaInelastic* theAntiLambdaHEPModel = new G4HEAntiLambdaInelastic(); + theAntiLambdaInelasticProcess->RegisterMe(theAntiLambdaLEPModel); + theAntiLambdaInelasticProcess->RegisterMe(theAntiLambdaHEPModel); + pManager->AddDiscreteProcess(theAntiLambdaInelasticProcess); + + + // Sigma+ Physics + pManager = G4SigmaPlus::SigmaPlus()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thespElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thespElasticModel = new G4LElastic(); + thespElasticProcess->RegisterMe(thespElasticModel); + pManager->AddDiscreteProcess(thespElasticProcess); + + G4SigmaPlusInelasticProcess* theSigmaPlusInelasticProcess + = new G4SigmaPlusInelasticProcess(); + + G4LESigmaPlusInelastic* theSigmaPlusLEPModel = new G4LESigmaPlusInelastic(); + G4HESigmaPlusInelastic* theSigmaPlusHEPModel = new G4HESigmaPlusInelastic(); + theSigmaPlusInelasticProcess->RegisterMe(theSigmaPlusLEPModel); + theSigmaPlusInelasticProcess->RegisterMe(theSigmaPlusHEPModel); + pManager->AddDiscreteProcess(theSigmaPlusInelasticProcess); + + G4VProcess* thespMultipleScattering = new G4MultipleScattering(); + G4VProcess* thespIonisation = new G4hIonisation(); + + pManager->AddProcess(thespIonisation); + pManager->AddProcess(thespMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thespMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thespIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thespMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thespIonisation, idxPostStep,2); + + + // anti-Sigma+ Physics + pManager = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theaspElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theaspElasticModel = new G4LElastic(); + theaspElasticProcess->RegisterMe(theaspElasticModel); + pManager->AddDiscreteProcess(theaspElasticProcess); + + G4AntiSigmaPlusInelasticProcess* theAntiSigmaPlusInelasticProcess + = new G4AntiSigmaPlusInelasticProcess(); + + G4LEAntiSigmaPlusInelastic* theAntiSigmaPlusLEPModel = new G4LEAntiSigmaPlusInelastic(); + G4HEAntiSigmaPlusInelastic* theAntiSigmaPlusHEPModel = new G4HEAntiSigmaPlusInelastic(); + theAntiSigmaPlusInelasticProcess->RegisterMe(theAntiSigmaPlusLEPModel); + theAntiSigmaPlusInelasticProcess->RegisterMe(theAntiSigmaPlusHEPModel); + pManager->AddDiscreteProcess(theAntiSigmaPlusInelasticProcess); + + G4VProcess* theaspMultipleScattering = new G4MultipleScattering(); + G4VProcess* theaspIonisation = new G4hIonisation(); + + pManager->AddProcess(theaspIonisation); + pManager->AddProcess(theaspMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theaspMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theaspIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theaspMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theaspIonisation, idxPostStep,2); + + + // Sigma- Physics + pManager = G4SigmaMinus::SigmaMinus()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thesmElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thesmElasticModel = new G4LElastic(); + thesmElasticProcess->RegisterMe(thesmElasticModel); + pManager->AddDiscreteProcess(thesmElasticProcess); + + G4SigmaMinusInelasticProcess* theSigmaMinusInelasticProcess + = new G4SigmaMinusInelasticProcess(); + + G4LESigmaMinusInelastic* theSigmaMinusLEPModel = new G4LESigmaMinusInelastic(); + G4HESigmaMinusInelastic* theSigmaMinusHEPModel = new G4HESigmaMinusInelastic(); + theSigmaMinusInelasticProcess->RegisterMe(theSigmaMinusLEPModel); + theSigmaMinusInelasticProcess->RegisterMe(theSigmaMinusHEPModel); + pManager->AddDiscreteProcess(theSigmaMinusInelasticProcess); + + G4VProcess* thesmMultipleScattering = new G4MultipleScattering(); + G4VProcess* thesmIonisation = new G4hIonisation(); + + pManager->AddProcess(thesmIonisation); + pManager->AddProcess(thesmMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thesmMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thesmIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thesmMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thesmIonisation, idxPostStep,2); + + + // anti-Sigma- Physics + pManager = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theasmElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theasmElasticModel = new G4LElastic(); + theasmElasticProcess->RegisterMe(theasmElasticModel); + pManager->AddDiscreteProcess(theasmElasticProcess); + + G4AntiSigmaMinusInelasticProcess* theAntiSigmaMinusInelasticProcess + = new G4AntiSigmaMinusInelasticProcess(); + + G4LEAntiSigmaMinusInelastic* theAntiSigmaMinusLEPModel = new G4LEAntiSigmaMinusInelastic(); + G4HEAntiSigmaMinusInelastic* theAntiSigmaMinusHEPModel = new G4HEAntiSigmaMinusInelastic(); + theAntiSigmaMinusInelasticProcess->RegisterMe(theAntiSigmaMinusLEPModel); + theAntiSigmaMinusInelasticProcess->RegisterMe(theAntiSigmaMinusHEPModel); + pManager->AddDiscreteProcess(theAntiSigmaMinusInelasticProcess); + + G4VProcess* theasmMultipleScattering = new G4MultipleScattering(); + G4VProcess* theasmIonisation = new G4hIonisation(); + + pManager->AddProcess(theasmIonisation); + pManager->AddProcess(theasmMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theasmMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theasmIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theasmMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theasmIonisation, idxPostStep,2); + + + // Xi0 Physics + pManager = G4XiZero::XiZero()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thex0ElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thex0ElasticModel = new G4LElastic(); + thex0ElasticProcess->RegisterMe(thex0ElasticModel); + pManager->AddDiscreteProcess(thex0ElasticProcess); + + G4XiZeroInelasticProcess* theXiZeroInelasticProcess + = new G4XiZeroInelasticProcess(); + + G4LEXiZeroInelastic* theXiZeroLEPModel = new G4LEXiZeroInelastic(); + G4HEXiZeroInelastic* theXiZeroHEPModel = new G4HEXiZeroInelastic(); + theXiZeroInelasticProcess->RegisterMe(theXiZeroLEPModel); + theXiZeroInelasticProcess->RegisterMe(theXiZeroHEPModel); + pManager->AddDiscreteProcess(theXiZeroInelasticProcess); + + + // Anti-Xi0 Physics + pManager = G4AntiXiZero::AntiXiZero()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theax0ElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theax0ElasticModel = new G4LElastic(); + theax0ElasticProcess->RegisterMe(theax0ElasticModel); + pManager->AddDiscreteProcess(theax0ElasticProcess); + + G4AntiXiZeroInelasticProcess* theAntiXiZeroInelasticProcess + = new G4AntiXiZeroInelasticProcess(); + + G4LEAntiXiZeroInelastic* theAntiXiZeroLEPModel = new G4LEAntiXiZeroInelastic(); + G4HEAntiXiZeroInelastic* theAntiXiZeroHEPModel = new G4HEAntiXiZeroInelastic(); + theAntiXiZeroInelasticProcess->RegisterMe(theAntiXiZeroLEPModel); + theAntiXiZeroInelasticProcess->RegisterMe(theAntiXiZeroHEPModel); + pManager->AddDiscreteProcess(theAntiXiZeroInelasticProcess); + + + // Xi- Physics + pManager = G4XiMinus::XiMinus()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thexmElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thexmElasticModel = new G4LElastic(); + thexmElasticProcess->RegisterMe(thexmElasticModel); + pManager->AddDiscreteProcess(thexmElasticProcess); + + G4XiMinusInelasticProcess* theXiMinusInelasticProcess + = new G4XiMinusInelasticProcess(); + + G4LEXiMinusInelastic* theXiMinusLEPModel = new G4LEXiMinusInelastic(); + G4HEXiMinusInelastic* theXiMinusHEPModel = new G4HEXiMinusInelastic(); + theXiMinusInelasticProcess->RegisterMe(theXiMinusLEPModel); + theXiMinusInelasticProcess->RegisterMe(theXiMinusHEPModel); + pManager->AddDiscreteProcess(theXiMinusInelasticProcess); + + G4VProcess* thexmMultipleScattering = new G4MultipleScattering(); + G4VProcess* thexmIonisation = new G4hIonisation(); + + pManager->AddProcess(thexmIonisation); + pManager->AddProcess(thexmMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thexmMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thexmIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thexmMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thexmIonisation, idxPostStep,2); + + + // anti-Xi- Physics + pManager = G4AntiXiMinus::AntiXiMinus()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theaxmElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theaxmElasticModel = new G4LElastic(); + theaxmElasticProcess->RegisterMe(theaxmElasticModel); + pManager->AddDiscreteProcess(theaxmElasticProcess); + + G4AntiXiMinusInelasticProcess* theAntiXiMinusInelasticProcess + = new G4AntiXiMinusInelasticProcess(); + + G4LEAntiXiMinusInelastic* theAntiXiMinusLEPModel = new G4LEAntiXiMinusInelastic(); + G4HEAntiXiMinusInelastic* theAntiXiMinusHEPModel = new G4HEAntiXiMinusInelastic(); + theAntiXiMinusInelasticProcess->RegisterMe(theAntiXiMinusLEPModel); + theAntiXiMinusInelasticProcess->RegisterMe(theAntiXiMinusHEPModel); + pManager->AddDiscreteProcess(theAntiXiMinusInelasticProcess); + + G4VProcess* theaxmMultipleScattering = new G4MultipleScattering(); + G4VProcess* theaxmIonisation = new G4hIonisation(); + + pManager->AddProcess(theaxmIonisation); + pManager->AddProcess(theaxmMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theaxmMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theaxmIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theaxmMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theaxmIonisation, idxPostStep,2); + + + // Omega- Physics + pManager = G4OmegaMinus::OmegaMinus()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theomElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theomElasticModel = new G4LElastic(); + theomElasticProcess->RegisterMe(theomElasticModel); + pManager->AddDiscreteProcess(theomElasticProcess); + + G4OmegaMinusInelasticProcess* theOmegaMinusInelasticProcess + = new G4OmegaMinusInelasticProcess(); + + G4LEOmegaMinusInelastic* theOmegaMinusLEPModel = new G4LEOmegaMinusInelastic(); + G4HEOmegaMinusInelastic* theOmegaMinusHEPModel = new G4HEOmegaMinusInelastic(); + theOmegaMinusInelasticProcess->RegisterMe(theOmegaMinusLEPModel); + theOmegaMinusInelasticProcess->RegisterMe(theOmegaMinusHEPModel); + pManager->AddDiscreteProcess(theOmegaMinusInelasticProcess); + + G4VProcess* theomMultipleScattering = new G4MultipleScattering(); + G4VProcess* theomIonisation = new G4hIonisation(); + + pManager->AddProcess(theomIonisation); + pManager->AddProcess(theomMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theomMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theomIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theomMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theomIonisation, idxPostStep,2); + + + // anti-Omega- Physics + pManager = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(); + + // add process + G4HadronElasticProcess* theaomElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theaomElasticModel = new G4LElastic(); + theaomElasticProcess->RegisterMe(theaomElasticModel); + pManager->AddDiscreteProcess(theaomElasticProcess); + + G4AntiOmegaMinusInelasticProcess* theAntiOmegaMinusInelasticProcess + = new G4AntiOmegaMinusInelasticProcess(); + + G4LEAntiOmegaMinusInelastic* theAntiOmegaMinusLEPModel = new G4LEAntiOmegaMinusInelastic(); + G4HEAntiOmegaMinusInelastic* theAntiOmegaMinusHEPModel = new G4HEAntiOmegaMinusInelastic(); + theAntiOmegaMinusInelasticProcess->RegisterMe(theAntiOmegaMinusLEPModel); + theAntiOmegaMinusInelasticProcess->RegisterMe(theAntiOmegaMinusHEPModel); + pManager->AddDiscreteProcess(theAntiOmegaMinusInelasticProcess); + + G4VProcess* theaomMultipleScattering = new G4MultipleScattering(); + G4VProcess* theaomIonisation = new G4hIonisation(); + + pManager->AddProcess(theaomIonisation); + pManager->AddProcess(theaomMultipleScattering); + + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(theaomMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(theaomIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theaomMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theaomIonisation, idxPostStep,2); + +} diff --git a/examples/extended/runAndEvent/RE02/src/RE02IonPhysics.cc b/examples/extended/runAndEvent/RE02/src/RE02IonPhysics.cc new file mode 100644 index 0000000000..5cc4fb4bcd --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02IonPhysics.cc @@ -0,0 +1,217 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02IonPhysics.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// 13-Oct-2003 Add Comment for Ionisation of Generic Ion by T. Koi +// 05-Jan-2004 Change G. Ion Ionisation from G4hIonisation +// to G4ionIonisation T. Koi +// 18-Nov-2005 Add Inelastic process with G4BinaryLightIonReaction. +// T. Aso + +#include "RE02IonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include + + +RE02IonPhysics::RE02IonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +RE02IonPhysics::~RE02IonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4ProcessManager.hh" + + +void RE02IonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + + // Generic Ion + pManager = G4GenericIon::GenericIon()->GetProcessManager(); + + // add process + G4VProcess* thegionMultipleScattering = new G4MultipleScattering(); + // + // G4hIonization may be not able to use for Geanric Ion in future + // Please take care using this physics list after v5.2.p02 + // G4VProcess* thegionIonisation = new G4hIonisation(); + // + // From V6.0 hIonisation does not work for GenericIon + G4VProcess* thegionIonisation = new G4ionIonisation(); + + // Inelastic process + G4HadronInelasticProcess* thegionInelastic = + new G4HadronInelasticProcess("IonInelastic",G4GenericIon::GenericIon()); + thegionInelastic->AddDataSet(new G4TripathiCrossSection); + thegionInelastic->AddDataSet(new G4IonsShenCrossSection); + G4BinaryLightIonReaction* thegionBCModel = new G4BinaryLightIonReaction; + thegionInelastic->RegisterMe(thegionBCModel); + + // + pManager->AddProcess(thegionIonisation); + pManager->AddProcess(thegionMultipleScattering); + pManager->AddDiscreteProcess(thegionInelastic); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thegionMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thegionIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thegionMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thegionIonisation, idxPostStep,2); + + + // Deuteron + pManager = G4Deuteron::Deuteron()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thedueElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thedueElasticModel = new G4LElastic(); + thedueElasticProcess->RegisterMe(thedueElasticModel); + pManager->AddDiscreteProcess(thedueElasticProcess); + + G4DeuteronInelasticProcess* theDeuteronInelasticProcess + = new G4DeuteronInelasticProcess(); + + G4LEDeuteronInelastic* theDeuteronLEPModel = new G4LEDeuteronInelastic(); + theDeuteronInelasticProcess->RegisterMe(theDeuteronLEPModel); + pManager->AddDiscreteProcess(theDeuteronInelasticProcess); + + G4VProcess* thedueMultipleScattering = new G4MultipleScattering(); + G4VProcess* thedueIonisation = new G4hIonisation(); + // + pManager->AddProcess(thedueIonisation); + pManager->AddProcess(thedueMultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thedueMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thedueIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thedueMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thedueIonisation, idxPostStep,2); + + + // Triton + pManager = G4Triton::Triton()->GetProcessManager(); + + // add process + G4HadronElasticProcess* thetriElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thetriElasticModel = new G4LElastic(); + thetriElasticProcess->RegisterMe(thetriElasticModel); + pManager->AddDiscreteProcess(thetriElasticProcess); + + G4TritonInelasticProcess* theTritonInelasticProcess + = new G4TritonInelasticProcess(); + + G4LETritonInelastic* theTritonLEPModel = new G4LETritonInelastic(); + theTritonInelasticProcess->RegisterMe(theTritonLEPModel); + pManager->AddDiscreteProcess(theTritonInelasticProcess); + + G4VProcess* thetriMultipleScattering = new G4MultipleScattering(); + G4VProcess* thetriIonisation = new G4hIonisation(); + // + pManager->AddProcess(thetriIonisation); + pManager->AddProcess(thetriMultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thetriMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thetriIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thetriMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thetriIonisation, idxPostStep,2); + + + // Alpha + pManager = G4Alpha::Alpha()->GetProcessManager(); + + // add processes + G4HadronElasticProcess* thealElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thealElasticModel = new G4LElastic(); + thealElasticProcess->RegisterMe(thealElasticModel); + pManager->AddDiscreteProcess(thealElasticProcess); + + G4AlphaInelasticProcess* theAlphaInelasticProcess + = new G4AlphaInelasticProcess(); + + G4LEAlphaInelastic* theAlphaLEPModel = new G4LEAlphaInelastic(); + theAlphaInelasticProcess->RegisterMe(theAlphaLEPModel); + pManager->AddDiscreteProcess(theAlphaInelasticProcess); + + G4VProcess* thealpMultipleScattering = new G4MultipleScattering(); + G4VProcess* thealpIonisation = new G4hIonisation(); + // + pManager->AddProcess(thealpIonisation); + pManager->AddProcess(thealpMultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thealpMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thealpIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thealpMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thealpIonisation, idxPostStep,2); + + + // He3 + pManager = G4He3::He3()->GetProcessManager(); + + // add processes + G4HadronElasticProcess* thehe3ElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thehe3ElasticModel = new G4LElastic(); + thehe3ElasticProcess->RegisterMe(thehe3ElasticModel); + pManager->AddDiscreteProcess(thehe3ElasticProcess); + + G4VProcess* thehe3MultipleScattering = new G4MultipleScattering(); + G4VProcess* thehe3Ionisation = new G4hIonisation(); + // + pManager->AddProcess(thehe3Ionisation); + pManager->AddProcess(thehe3MultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thehe3MultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thehe3Ionisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thehe3MultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thehe3Ionisation, idxPostStep,2); + +} + + + diff --git a/examples/extended/runAndEvent/RE02/src/RE02MuonPhysics.cc b/examples/extended/runAndEvent/RE02/src/RE02MuonPhysics.cc new file mode 100644 index 0000000000..816ba118cb --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02MuonPhysics.cc @@ -0,0 +1,142 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02MuonPhysics.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// 09-Oct-2003 mu+- tau+- processes are changed by T. Koi +// 05-Jan-2004 Add Brem. and PairProd. of AlongStepDoit for mu+- by T. Koi + +#include "RE02MuonPhysics.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include + + +RE02MuonPhysics::RE02MuonPhysics(const G4String& name) + : G4VPhysicsConstructor(name) +{ +} + +RE02MuonPhysics::~RE02MuonPhysics() +{ +} + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4TauMinus.hh" +#include "G4TauPlus.hh" + +#include "G4ProcessManager.hh" + +void RE02MuonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + //Muon+ + pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); + G4VProcess* thempMultipleScattering = new G4MultipleScattering(); + G4VProcess* thempBremsstrahlung = new G4MuBremsstrahlung(); + G4VProcess* thempPairProduction = new G4MuPairProduction(); + G4VProcess* thempIonisation = new G4MuIonisation(); + // + // add processes + pManager->AddProcess(thempIonisation); + pManager->AddProcess(thempMultipleScattering); + pManager->AddProcess(thempBremsstrahlung); + pManager->AddProcess(thempPairProduction); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thempMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thempIonisation, idxAlongStep,2); + pManager->SetProcessOrdering(thempBremsstrahlung, idxAlongStep,3); + pManager->SetProcessOrdering(thempPairProduction, idxAlongStep,4); + + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thempMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thempIonisation, idxPostStep,2); + pManager->SetProcessOrdering(thempBremsstrahlung, idxPostStep,3); + pManager->SetProcessOrdering(thempPairProduction, idxPostStep,4); + + //Muon- + pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); + G4VProcess* themmMultipleScattering = new G4MultipleScattering(); + G4VProcess* themmBremsstrahlung = new G4MuBremsstrahlung(); + G4VProcess* themmPairProduction = new G4MuPairProduction(); + G4VProcess* themmIonisation = new G4MuIonisation(); + // + // add processes + pManager->AddProcess(themmIonisation); + pManager->AddProcess(themmMultipleScattering); + pManager->AddProcess(themmBremsstrahlung); + pManager->AddProcess(themmPairProduction); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(themmMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(themmIonisation, idxAlongStep,2); + pManager->SetProcessOrdering(themmBremsstrahlung, idxAlongStep,3); + pManager->SetProcessOrdering(themmPairProduction, idxAlongStep,4); + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(themmMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(themmIonisation, idxPostStep,2); + pManager->SetProcessOrdering(themmBremsstrahlung, idxPostStep,3); + pManager->SetProcessOrdering(themmPairProduction, idxPostStep,4); + + // Tau+ Physics + pManager = G4TauPlus::TauPlus()->GetProcessManager(); + G4VProcess* thetpMultipleScattering = new G4MultipleScattering(); + G4VProcess* thetpIonisation = new G4hIonisation(); + // + // add processes + pManager->AddProcess(thetpIonisation); + pManager->AddProcess(thetpMultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thetpMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thetpIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thetpMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thetpIonisation, idxPostStep,2); + + // Tau- Physics + pManager = G4TauMinus::TauMinus()->GetProcessManager(); + G4VProcess* thetmMultipleScattering = new G4MultipleScattering(); + G4VProcess* thetmIonisation = new G4hIonisation(); + // + // add processes + pManager->AddProcess(thetmIonisation); + pManager->AddProcess(thetmMultipleScattering); + // + // set ordering for AlongStepDoIt + pManager->SetProcessOrdering(thetmMultipleScattering, idxAlongStep,1); + pManager->SetProcessOrdering(thetmIonisation, idxAlongStep,2); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thetmMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thetmIonisation, idxPostStep,2); + +} diff --git a/examples/extended/runAndEvent/RE02/src/RE02PhantomParameterisation.cc b/examples/extended/runAndEvent/RE02/src/RE02PhantomParameterisation.cc new file mode 100644 index 0000000000..824cb7454a --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02PhantomParameterisation.cc @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02PhantomParameterisation.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#include "RE02PhantomParameterisation.hh" +#include "G4Box.hh" +#include "G4VPhysicalVolume.hh" + +RE02PhantomParameterisation::RE02PhantomParameterisation( + const G4ThreeVector& motherSize, + const G4int nx, const G4int ny, const G4int nz) + :G4VPVParameterisation(),fDxyzMother(motherSize), + fNx(nx),fNy(ny),fNz(nz) +{ + // Voxel Size + fDxyz.setX(fDxyzMother.x()/(G4double)fNx); + fDxyz.setY(fDxyzMother.y()/(G4double)fNy); + fDxyz.setZ(fDxyzMother.z()/(G4double)fNz); + // Calculation of each segmented position, and fill it in vector. + G4double offsetX = -fDxyzMother.x()+fDxyz.x(); + G4double offsetY = -fDxyzMother.y()+fDxyz.y(); + G4double offsetZ = -fDxyzMother.z()+fDxyz.z(); + for ( G4int ix = 0; ix < fNx; ix++){ + for ( G4int iy = 0; iy < fNy; iy++){ + for ( G4int iz = 0; iz < fNz; iz++){ + G4double x = offsetX+((G4double)ix)*fDxyz.x()*2.; + G4double y = offsetY+((G4double)iy)*fDxyz.y()*2.; + G4double z = offsetZ+((G4double)iz)*fDxyz.z()*2.; + G4ThreeVector pos(x,y,z); + fPositions.push_back(pos); + } + } + } + +} + +RE02PhantomParameterisation::~RE02PhantomParameterisation() { +} + +void RE02PhantomParameterisation::ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume* physVol) const +{ + physVol->SetTranslation(fPositions[copyNo]); +} + + + + + + diff --git a/examples/extended/runAndEvent/RE02/src/RE02PhysicsList.cc b/examples/extended/runAndEvent/RE02/src/RE02PhysicsList.cc new file mode 100644 index 0000000000..07984d83fb --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02PhysicsList.cc @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: RE02PhysicsList.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// -------------------------------------------------------------- +// +// 28-Jan-04 Add QGSP_BERT and QGSP_BIC for hadronic lists. T. Koi +// 22-Nov-04 Comment out QGSP_BERT and QGSP_BIC +// Output Notificaiton message +// All Particles are created in GeneralPhysics + +#include "RE02PhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4ios.hh" +#include + +#include "RE02GeneralPhysics.hh" +#include "RE02EMPhysics.hh" +#include "RE02MuonPhysics.hh" +#include "RE02HadronPhysics.hh" +#include "RE02IonPhysics.hh" + +//#include "HadronPhysicsQGSP_BERT.hh" +//#include "HadronPhysicsQGSP_BIC.hh" + +RE02PhysicsList::RE02PhysicsList(): G4VModularPhysicsList() +{ + + G4cout << "You are using the RE02PhysicsList" << G4endl; + G4cout << "This PhysicsList originally comes from "<FindParticle("proton"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(0.0,0.0,1.)); + particleGun->SetParticleEnergy(150.0*MeV); +// +// default beam position + G4double position = -200./2.*cm; +// +// Initial beam spot size in sigma.; This is not a part of ParticleGun. + fsigmaPosition = 10.* mm; + +// + particleGun->SetParticlePosition(G4ThreeVector(0.*cm, 0.*cm, position)); +} + +// +RE02PrimaryGeneratorAction::~RE02PrimaryGeneratorAction() +{ + delete particleGun; +} + +// +void RE02PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + + G4ThreeVector position = particleGun->GetParticlePosition(); + G4double dx = (G4UniformRand()-0.5)*fsigmaPosition; + G4double dy = (G4UniformRand()-0.5)*fsigmaPosition; + position.setX(dx); + position.setY(dy); + particleGun->SetParticlePosition(position); + particleGun->GeneratePrimaryVertex(anEvent); +} diff --git a/examples/extended/runAndEvent/RE02/src/RE02Run.cc b/examples/extended/runAndEvent/RE02/src/RE02Run.cc new file mode 100644 index 0000000000..f81fc1d658 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02Run.cc @@ -0,0 +1,203 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RE02Run.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +//===================================================================== +// +// (Description) +// RE02Run Class is for accumulating scored quantities which is +// scored using G4MutiFunctionalDetector and G4VPrimitiveScorer. +// Accumulation is done using G4THitsMap object. +// +// The constructor RE02Run(const std::vector mfdName) +// needs a vector filled with MultiFunctionalDetector names which +// was assigned at instantiation of MultiFunctionalDetector(MFD). +// Then RE02Run constructor automatically scans primitive scorers +// in the MFD, and obtains collectionIDs of all collections associated +// to those primitive scorers. Futhermore, the G4THitsMap objects +// for accumulating during a RUN are automatically created too. +// (*) Collection Name is same as primitive scorer name. +// +// The resultant information is kept inside RE02Run objects as +// data members. +// std::vector theCollName; // Collection Name, +// std::vector theCollID; // Collection ID, +// std::vector*> theRunMap; // HitsMap for RUN. +// +// The resualtant HitsMap objects are obtain using access method, +// GetHitsMap(..). +// +//===================================================================== + +#include "RE02Run.hh" +#include "G4SDManager.hh" + +#include "G4MultiFunctionalDetector.hh" +#include "G4VPrimitiveScorer.hh" + +// +// Constructor. +// (The vector of MultiFunctionalDetector name has to given.) +RE02Run::RE02Run(const std::vector mfdName): G4Run() +{ + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + //================================================= + // Initalize RunMaps for accumulation. + // Get CollectionIDs for HitCollections. + //================================================= + G4int Nmfd = mfdName.size(); + for ( G4int idet = 0; idet < Nmfd ; idet++){ // Loop for all MFD. + G4String detName = mfdName[idet]; + //--- Seek and Obtain MFD objects from SDmanager. + G4MultiFunctionalDetector* mfd = + (G4MultiFunctionalDetector*)(SDman->FindSensitiveDetector(detName)); + // + if ( mfd ){ + //--- Loop over the registered primitive scorers. + for (G4int icol = 0; icol < mfd->GetNumberOfPrimitives(); icol++){ + // Get Primitive Scorer object. + G4VPrimitiveScorer* scorer=mfd->GetPrimitive(icol); + // collection name and collectionID for HitsCollection, + // where type of HitsCollection is G4THitsMap in case of primitive scorer. + // The collection name is given by /. + G4String collectionName = scorer->GetName(); + G4String fullCollectionName = detName+"/"+collectionName; + G4int collectionID = SDman->GetCollectionID(fullCollectionName); + // + if ( collectionID >= 0 ){ + G4cout << "++ "<(detName,collectionName)); + }else{ + G4cout << "** collection " << fullCollectionName << " not found. "<clear(); + } + theCollName.clear(); + theCollID.clear(); + theRunMap.clear(); +} + +// +// RecordEvent is called at end of event. +// For scoring purpose, the resultant quantity in a event, +// is accumulated during a Run. +void RE02Run::RecordEvent(const G4Event* aEvent) +{ + numberOfEvent++; // This is an original line. + + //============================= + // HitsCollection of This Event + //============================ + G4HCofThisEvent* HCE = aEvent->GetHCofThisEvent(); + if (!HCE) return; + + //======================================================= + // Sum up HitsMap of this Event into HitsMap of this RUN + //======================================================= + G4int Ncol = theCollID.size(); + for ( G4int i = 0; i < Ncol ; i++ ){ // Loop over HitsCollection + G4THitsMap* EvtMap=0; + if ( theCollID[i] >= 0 ){ // Collection is attached to HCE + EvtMap = (G4THitsMap*)(HCE->GetHC(theCollID[i])); + }else{ + G4cout <<" Error EvtMap Not Found "<< i << G4endl; + } + if ( EvtMap ) { + //=== Sum up HitsMap of this event to HitsMap of RUN.=== + *theRunMap[i] += *EvtMap; + //====================================================== + } + } +} + +//================================================================= +// Access method for HitsMap of the RUN +// +//----- +// Access HitsMap. +// By MultiFunctionalDetector name and Collection Name. +G4THitsMap* RE02Run::GetHitsMap(const G4String& detName, + const G4String& colName){ + G4String fullName = detName+"/"+colName; + return GetHitsMap(fullName); +} + +//----- +// Access HitsMap. +// By full description of collection name, that is +// / +G4THitsMap* RE02Run::GetHitsMap(const G4String& fullName){ + G4int Ncol = theCollName.size(); + for ( G4int i = 0; i < Ncol; i++){ + if ( theCollName[i] == fullName ){ + return theRunMap[i]; + } + } + return NULL; +} + +//----- +// - Dump All HitsMap of this RUN. (for debuging and monitoring of quantity). +// This method calls G4THisMap::PrintAll() for individual HitsMap. +void RE02Run::DumpAllScorer(){ + + // - Number of HitsMap in this RUN. + G4int n = GetNumberOfHitsMap(); + // - GetHitsMap and dump values. + for ( G4int i = 0; i < n ; i++ ){ + G4THitsMap* RunMap =GetHitsMap(i); + if ( RunMap ) { + G4cout << " PrimitiveScorer RUN " + << RunMap->GetSDname() <<","<< RunMap->GetName() << G4endl; + G4cout << " Number of entries " << RunMap->entries() << G4endl; + std::map::iterator itr = RunMap->GetMap()->begin(); + for(; itr != RunMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " Run Value : " << *(itr->second) + << G4endl; + } + } + } +} + + diff --git a/examples/extended/runAndEvent/RE02/src/RE02RunAction.cc b/examples/extended/runAndEvent/RE02/src/RE02RunAction.cc new file mode 100644 index 0000000000..096788cb77 --- /dev/null +++ b/examples/extended/runAndEvent/RE02/src/RE02RunAction.cc @@ -0,0 +1,164 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: RE02RunAction.cc,v 1.1 2005/11/24 01:44:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +#include "RE02RunAction.hh" +#include "RE02Run.hh" + +//-- In order to obtain detector information. +#include "G4RunManager.hh" +#include "RE02DetectorConstruction.hh" +#include "G4THitsMap.hh" + +#include "G4UnitsTable.hh" +//======================================================================= +// RE02RunAction +// +// +// +//======================================================================= +// Constructor +RE02RunAction::RE02RunAction() +{ + // - Prepare data member for RE02Run. + // vector represents a list of MultiFunctionalDetector names. + theSDName.push_back(G4String("PhantomSD")); +} + +// Destructor. +RE02RunAction::~RE02RunAction() +{ + theSDName.clear(); +} + +// +//== +G4Run* RE02RunAction::GenerateRun() +{ + // Generate new RUN object, which is specially + // dedicated for MultiFunctionalDetector scheme. + // Detail description can be found in RE02Run.hh/cc. + return new RE02Run(theSDName); +} + +// +//== +void RE02RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; +} + +// +//== +void RE02RunAction::EndOfRunAction(const G4Run* aRun) +{ + //- RE02Run object. + RE02Run* re02Run = (RE02Run*)aRun; + //--- Dump all socred quantities involved in RE02Run. + // re02Run->DumpAllScorer(); + //--- + + // + //- water phantom (Detector) Information. + //-- Number of segments in the water phantom. + const RE02DetectorConstruction* detector = + (const RE02DetectorConstruction*) + (G4RunManager::GetRunManager()->GetUserDetectorConstruction()); + detector->GetNumberOfSegmentsInPhantom(fNx,fNy,fNz); //Fill fNx,y,z. + + + //--------------------------------------------- + // Dump accumulated quantities for this RUN. + // (Display only central region of x-y plane) + //--------------------------------------------- + G4THitsMap* totEdep = re02Run->GetHitsMap("PhantomSD/totalEDep"); + G4THitsMap* proEdep = re02Run->GetHitsMap("PhantomSD/protonEDep"); + G4THitsMap* proNstep= re02Run->GetHitsMap("PhantomSD/protonNStep"); + G4THitsMap* passCFx = re02Run->GetHitsMap("PhantomSD/chargedPassCellFlux"); + G4THitsMap* CFx = re02Run->GetHitsMap("PhantomSD/chargedCellFlux"); + G4THitsMap* surfFx = re02Run->GetHitsMap("PhantomSD/chargedSurfFlux"); + G4THitsMap* gCurr00 = re02Run->GetHitsMap("PhantomSD/gammaSurfCurr000"); + G4THitsMap* gCurr01 = re02Run->GetHitsMap("PhantomSD/gammaSurfCurr001"); + G4THitsMap* gCurr02 = re02Run->GetHitsMap("PhantomSD/gammaSurfCurr002"); + G4THitsMap* gCurr03 = re02Run->GetHitsMap("PhantomSD/gammaSurfCurr003"); + + G4cout << "=============================================================" <GetNumberOfEvent() << G4endl; + G4cout << "=============================================================" <GetName() + << std::setw(16) << proEdep->GetName() + << std::setw(12) << proNstep->GetName() + << std::setw(21) << passCFx->GetName() + << std::setw(20) << CFx->GetName() + << std::setw(20) << surfFx->GetName() + << std::setw(20) << gCurr00->GetName() + << std::setw(20) << gCurr01->GetName() + << std::setw(20) << gCurr02->GetName() + << std::setw(20) << gCurr03->GetName() + << G4endl; + G4int ix = fNx/2; + G4int iy = fNy/2; + G4int iz; + //G4double totE, proE, proN,pasCF,CF,surfF,gCr0,gCr1,gCr2,gCr3; + for ( iz = 0; iz < fNz; iz++){ + G4double* totED = (*totEdep)[CopyNo(ix,iy,iz)]; + G4double* proED = (*proEdep)[CopyNo(ix,iy,iz)]; + G4double* proNS = (*proNstep)[CopyNo(ix,iy,iz)]; + G4double* pasCF = (*passCFx)[CopyNo(ix,iy,iz)]; + G4double* CF = (*CFx)[CopyNo(ix,iy,iz)]; + G4double* sfx = (*surfFx)[CopyNo(ix,iy,iz)]; + G4double* gcur0 = (*gCurr00)[CopyNo(ix,iy,iz)]; + G4double* gcur1 = (*gCurr01)[CopyNo(ix,iy,iz)]; + G4double* gcur2 = (*gCurr02)[CopyNo(ix,iy,iz)]; + G4double* gcur3 = (*gCurr03)[CopyNo(ix,iy,iz)]; + if ( !totED ) totED = new G4double(0.0); + if ( !proED ) proED = new G4double(0.0); + if ( !proNS ) proNS = new G4double(0.0); + if ( !pasCF ) pasCF = new G4double(0.0); + if ( !CF ) CF = new G4double(0.0); + if ( !sfx ) sfx = new G4double(0.0); + if ( !gcur0 ) gcur0 = new G4double(0.0); + if ( !gcur1 ) gcur1 = new G4double(0.0); + if ( !gcur2 ) gcur2 = new G4double(0.0); + if ( !gcur3 ) gcur3 = new G4double(0.0); + G4cout << std::setw( 6) << iz << " " + << std::setw(12) << G4BestUnit(*totED,"Energy") + << std::setw(12) << G4BestUnit(*proED,"Energy") + << std::setw(12) << (*proNS) << " " + << std::setw(13) << (*pasCF)*cm*cm <<" /cm2" + << std::setw(15) << (*CF)*cm*cm <<" /cm2" + << std::setw(15) << (*sfx)*cm*cm <<" /cm2" + << std::setw(15) << (*gcur0)*cm*cm <<" /cm2" + << std::setw(15) << (*gcur1)*cm*cm <<" /cm2" + << std::setw(15) << (*gcur2)*cm*cm <<" /cm2" + << std::setw(15) << (*gcur3)*cm*cm <<" /cm2" + << G4endl; + } + G4cout << "============================================="< storeTrajectory 0) +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +# (if you prefer refreshing each event, comment out next line) +/vis/scene/endOfEventAction accumulate +# +/run/beamOn 100 + diff --git a/examples/extended/runAndEvent/README b/examples/extended/runAndEvent/README index 6d42526709..8e2c19fd35 100644 --- a/examples/extended/runAndEvent/README +++ b/examples/extended/runAndEvent/README @@ -16,3 +16,10 @@ RE01 primary particles and hits. It also utilize some user-information classes. +RE02 +---- + + This example demonstrates how to accumulate the physics quantities +such as energy deposition and dose for a run. It also demonstrates +the use of primitive scorers. + diff --git a/examples/extended/visualization/History b/examples/extended/visualization/History new file mode 100644 index 0000000000..ea9e1b1c1e --- /dev/null +++ b/examples/extended/visualization/History @@ -0,0 +1,20 @@ +$Id: History,v 1.1 2005/10/18 18:09:14 allison Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + examples/extended/visualization/standalone History file + ------------------------------------------------------- + +This file should be used by the G4 example coordinator to briefly +summarize all major modifications introduced in the code and keep +track of all tags. + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +18th October 2005 (exam-ext-vis-V07-01-00) +- First userVisAction and standalone examples. diff --git a/examples/extended/visualization/standalone/GNUmakefile b/examples/extended/visualization/standalone/GNUmakefile new file mode 100644 index 0000000000..721c4c8d0f --- /dev/null +++ b/examples/extended/visualization/standalone/GNUmakefile @@ -0,0 +1,17 @@ +# $Id: GNUmakefile,v 1.1 2005/10/18 18:09:14 allison Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name = standalone +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/visualization/standalone/History b/examples/extended/visualization/standalone/History new file mode 100644 index 0000000000..7676173c4f --- /dev/null +++ b/examples/extended/visualization/standalone/History @@ -0,0 +1,20 @@ +$Id: History,v 1.1 2005/10/18 18:09:14 allison Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + examples/extended/visualization/standalone History file + ------------------------------------------------------- + +This file should be used by the G4 example coordinator to briefly +summarize all major modifications introduced in the code and keep +track of all tags. + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +18th October 2005 (exam-ext-vis-V07-01-00) +- First standalone example. diff --git a/physics_lists/hadronic/Packaging/src/G4HadronQEDBuilder.cc b/examples/extended/visualization/standalone/include/StandaloneVisAction.hh similarity index 79% rename from physics_lists/hadronic/Packaging/src/G4HadronQEDBuilder.cc rename to examples/extended/visualization/standalone/include/StandaloneVisAction.hh index 4cf686d87e..0d408d195f 100644 --- a/physics_lists/hadronic/Packaging/src/G4HadronQEDBuilder.cc +++ b/examples/extended/visualization/standalone/include/StandaloneVisAction.hh @@ -20,14 +20,18 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "G4HadronQEDBuilder.hh" -#include "G4ParticleTable.hh" - -G4HadronQEDBuilder::G4HadronQEDBuilder(): wasActivated(false) {} +// +// $Id: StandaloneVisAction.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ -G4HadronQEDBuilder::~G4HadronQEDBuilder() -{ if(wasActivated) std::for_each(theCache().begin(), theCache().end(), Clear()); } +#ifndef STANDALONEVISACTION_HH +#define STANDALONEVISACTION_HH -void G4HadronQEDBuilder::Build() { wasActivated = true; Apply::ForEachIn(); } +#include "G4VUserVisAction.hh" + +class StandaloneVisAction: public G4VUserVisAction { + void Draw(); +}; + +#endif -// 2002 by J.P. Wellisch diff --git a/examples/extended/visualization/standalone/src/StandaloneVisAction.cc b/examples/extended/visualization/standalone/src/StandaloneVisAction.cc new file mode 100644 index 0000000000..98aeb29723 --- /dev/null +++ b/examples/extended/visualization/standalone/src/StandaloneVisAction.cc @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: StandaloneVisAction.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + +#include "StandaloneVisAction.hh" + +#include "G4VVisManager.hh" +#include "G4VisAttributes.hh" +#include "G4Polyhedron.hh" +#include "G4Box.hh" +#include "G4SubtractionSolid.hh" + +void StandaloneVisAction::Draw() { + G4VVisManager* pVisManager = G4VVisManager::GetConcreteInstance(); + if (pVisManager) { + + // Simple box... + pVisManager->Draw(G4Box("box",2*m,2*m,2*m), + G4VisAttributes(G4Colour(1,1,0))); + + // Boolean solid... + G4Box boxA("boxA",3*m,3*m,3*m); + G4Box boxB("boxB",1*m,1*m,1*m); + G4SubtractionSolid subtracted("subtracted_boxes",&boxA,&boxB, + G4Translate3D(3*m,3*m,3*m)); + pVisManager->Draw(subtracted, + G4VisAttributes(G4Colour(0,1,1)), + G4Translate3D(-6*m,-6*m,-6*m)); + + // Same, but explicit polyhedron... + G4Polyhedron* pA = G4Box("boxA",3*m,3*m,3*m).CreatePolyhedron(); + G4Polyhedron* pB = G4Box("boxB",1*m,1*m,1*m).CreatePolyhedron(); + pB->Transform(G4Translate3D(3*m,3*m,3*m)); + G4Polyhedron* pSubtracted = new G4Polyhedron(pA->subtract(*pB)); + G4VisAttributes subVisAtts(G4Colour(0,1,1)); + pSubtracted->SetVisAttributes(&subVisAtts); + pVisManager->Draw(*pSubtracted,G4Translate3D(6*m,6*m,6*m)); + delete pA; + delete pB; + delete pSubtracted; + } +} diff --git a/physics_lists/hadronic/Packaging/src/EMPhysics.cc b/examples/extended/visualization/standalone/standalone.cc similarity index 67% rename from physics_lists/hadronic/Packaging/src/EMPhysics.cc rename to examples/extended/visualization/standalone/standalone.cc index 36c7efaf37..524d8c1d1e 100644 --- a/physics_lists/hadronic/Packaging/src/EMPhysics.cc +++ b/examples/extended/visualization/standalone/standalone.cc @@ -20,41 +20,34 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "EMPhysics.hh" +// +// $Id: standalone.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + #include "globals.hh" -#include "G4ios.hh" -#include "G4ProcessManager.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4NeutrinoE.hh" -#include "G4AntiNeutrinoE.hh" +#include "G4VisExecutive.hh" +#include "G4VisExtent.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" +#include "StandaloneVisAction.hh" -EMPhysics:: -EMPhysics(const G4String& name) : G4VPhysicsConstructor(name) {} +int main() { -EMPhysics:: -~EMPhysics() {} + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize (); -void EMPhysics:: -ConstructParticle() -{ - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + visManager->SetUserAction + (new StandaloneVisAction, + G4VisExtent(-5*m,5*m,-5*m,5*m,-5*m,5*m)); // 2nd argument optional. + + G4UImanager* UI = G4UImanager::GetUIpointer (); + UI->ApplyCommand ("/control/execute standalone.g4m"); + + G4UIsession* session = new G4UIterminal(new G4UItcsh); + session->SessionStart(); + + delete session; + delete visManager; } - -void EMPhysics:: -ConstructProcess() -{ - theEMPhysics.Build(); -} - - - -// 2002 by J.P. Wellisch diff --git a/examples/extended/visualization/standalone/standalone.g4m b/examples/extended/visualization/standalone/standalone.g4m new file mode 100644 index 0000000000..2a17026c3f --- /dev/null +++ b/examples/extended/visualization/standalone/standalone.g4m @@ -0,0 +1,10 @@ +/control/verbose 2 +/vis/verbose p +/vis/open OGLSXm +/vis/scene/create +#/vis/scene/add/userAction +/vis/scene/add/userAction -10 10 -10 10 -10 10 m +#/vis/scene/add/axes 0 0 0 10 m +#/vis/scene/add/scale 10 m +/vis/sceneHandler/attach +/vis/viewer/flush diff --git a/examples/extended/visualization/userVisAction/GNUmakefile b/examples/extended/visualization/userVisAction/GNUmakefile new file mode 100644 index 0000000000..36eb7cd4eb --- /dev/null +++ b/examples/extended/visualization/userVisAction/GNUmakefile @@ -0,0 +1,17 @@ +# $Id: GNUmakefile,v 1.1 2005/10/18 18:09:14 allison Exp $ +# -------------------------------------------------------------- +# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. +# -------------------------------------------------------------- + +name := userVisAction +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +.PHONY: all +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/visualization/userVisAction/History b/examples/extended/visualization/userVisAction/History new file mode 100644 index 0000000000..af3876aeed --- /dev/null +++ b/examples/extended/visualization/userVisAction/History @@ -0,0 +1,21 @@ +$Id: History,v 1.1 2005/10/18 18:09:14 allison Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + examples/extended/visualization/userVisAction History file + ---------------------------------------------------------- + +This file should be used by the G4 example coordinator to briefly +summarize all major modifications introduced in the code and keep +track of all tags. + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +18th October 2005 (exam-ext-vis-V07-01-00) +- Based on examples/novice/N02. +- My beautiful logo vis action. diff --git a/examples/extended/visualization/userVisAction/include/UVA_ChamberParameterisation.hh b/examples/extended/visualization/userVisAction/include/UVA_ChamberParameterisation.hh new file mode 100644 index 0000000000..817ffb1459 --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_ChamberParameterisation.hh @@ -0,0 +1,106 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_ChamberParameterisation.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// A parameterisation that describes a series of boxes along Z +// The boxes have equal width, & their lengths are a linear equation. +// They are spaced an equal distance apart, starting from given location. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_ChamberParameterisation_H +#define UVA_ChamberParameterisation_H 1 + +#include "globals.hh" +#include "G4VPVParameterisation.hh" + +class G4VPhysicalVolume; +class G4Box; + +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Tubs; +class G4Polycone; +class G4Polyhedra; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_ChamberParameterisation : public G4VPVParameterisation +{ + public: + + UVA_ChamberParameterisation(G4int NoChambers, + G4double startZ, + G4double spacing, + G4double widthChamber, + G4double lengthInitial, + G4double lengthFinal ); + + virtual + ~UVA_ChamberParameterisation(); + + void ComputeTransformation (const G4int copyNo, + G4VPhysicalVolume* physVol) const; + + void ComputeDimensions (G4Box & trackerLayer, const G4int copyNo, + const G4VPhysicalVolume* physVol) const; + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Trd&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trap&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Cons&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Torus&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Para&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Hype&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Tubs&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + private: + + G4int fNoChambers; + G4double fStartZ; + G4double fHalfWidth; // The half-width of each tracker chamber + G4double fSpacing; // The distance between the chambers' center + G4double fHalfLengthFirst; // The first half-length + G4double fHalfLengthIncr; // The Increment for the half-length +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/visualization/userVisAction/include/UVA_DetectorConstruction.hh b/examples/extended/visualization/userVisAction/include/UVA_DetectorConstruction.hh new file mode 100644 index 0000000000..97c5d38544 --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_DetectorConstruction.hh @@ -0,0 +1,100 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_DetectorConstruction.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_DetectorConstruction_h +#define UVA_DetectorConstruction_h 1 + +#include "globals.hh" +#include "G4VUserDetectorConstruction.hh" +#include "UVA_MagneticField.hh" + +class G4Box; +class G4LogicalVolume; +class G4VPhysicalVolume; +class G4Material; +class UVA_DetectorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + + UVA_DetectorConstruction(); + ~UVA_DetectorConstruction(); + + public: + + G4VPhysicalVolume* Construct(); + + const + G4VPhysicalVolume* GetTracker() {return physiTracker;}; + G4double GetTrackerFullLength() {return fTrackerLength;}; + G4double GetTargetFullLength() {return fTargetLength;}; + G4double GetWorldFullLength() {return fWorldLength;}; + + void setTargetMaterial (G4String); + void setChamberMaterial(G4String); + void SetMagField(G4double); + + private: + + G4Box* solidWorld; // pointer to the solid envelope + G4LogicalVolume* logicWorld; // pointer to the logical envelope + G4VPhysicalVolume* physiWorld; // pointer to the physical envelope + + G4Box* solidTarget; // pointer to the solid Target + G4LogicalVolume* logicTarget; // pointer to the logical Target + G4VPhysicalVolume* physiTarget; // pointer to the physical Target + + G4Box* solidTracker; // pointer to the solid Tracker + G4LogicalVolume* logicTracker; // pointer to the logical Tracker + G4VPhysicalVolume* physiTracker; // pointer to the physical Tracker + + G4Box* solidChamber; // pointer to the solid Chamber + G4LogicalVolume* logicChamber; // pointer to the logical Chamber + G4VPhysicalVolume* physiChamber; // pointer to the physical Chamber + + G4Material* TargetMater; // pointer to the target material + G4Material* ChamberMater; // pointer to the chamber material + UVA_MagneticField* fpMagField; // pointer to the magnetic field + + UVA_DetectorMessenger* detectorMessenger; // pointer to the Messenger + + G4double fWorldLength; // Full length of the world volume + G4double fTargetLength; // Full length of Target + G4double fTrackerLength; // Full length of Tracker + G4int NbOfChambers; // Nb of chambers in the tracker region + G4double ChamberWidth; // width of the chambers + G4double ChamberSpacing; // distance between chambers +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/advanced/radioprotection/include/RemSimAnalysisMessenger.hh b/examples/extended/visualization/userVisAction/include/UVA_DetectorMessenger.hh similarity index 63% rename from examples/advanced/radioprotection/include/RemSimAnalysisMessenger.hh rename to examples/extended/visualization/userVisAction/include/UVA_DetectorMessenger.hh index dd0260b92c..3350a5980f 100644 --- a/examples/advanced/radioprotection/include/RemSimAnalysisMessenger.hh +++ b/examples/extended/visualization/userVisAction/include/UVA_DetectorMessenger.hh @@ -21,54 +21,44 @@ // ******************************************************************** // // -// $Id: RemSimAnalysisMessenger.hh -// GEANT4 tag $Name: radioprotection-V07-00-01 +// $Id: UVA_DetectorMessenger.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// Author: Susanna Guatelli (Susanna.Guatelli@ge.infn.it) -// -// History: -// ----------- -// 23 Nov 2004 Susanna Guatelli Created -// -// ------------------------------------------------------------------- +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifdef G4ANALYSIS_USE -#ifndef RemSimAnalysisMessenger_h -#define RemSimAnalysisMessenger_h 1 +#ifndef UVA_DetectorMessenger_h +#define UVA_DetectorMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithoutParameter.hh" -#include "RemSimAnalysisManager.hh" -#include "G4UIdirectory.hh" -class RemSimAnalysisManager; -//class G4UIdirectory; -//class G4UIcmdWithAString; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +class UVA_DetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWithADoubleAndUnit; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class RemSimAnalysisMessenger: public G4UImessenger - +class UVA_DetectorMessenger: public G4UImessenger { -public: - RemSimAnalysisMessenger(RemSimAnalysisManager*); - ~RemSimAnalysisMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - -private: - RemSimAnalysisManager* remsimAnalysis; - G4UIdirectory* analysisDir; - G4UIcmdWithAString* outputFileType; + public: + UVA_DetectorMessenger(UVA_DetectorConstruction*); + ~UVA_DetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + UVA_DetectorConstruction* myDetector; + + G4UIdirectory* N02Dir; + G4UIdirectory* detDir; + G4UIcmdWithAString* TargMatCmd; + G4UIcmdWithAString* ChamMatCmd; + G4UIcmdWithADoubleAndUnit* FieldCmd; }; -#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #endif - diff --git a/examples/novice/N07/include/ExN07EventAction.hh b/examples/extended/visualization/userVisAction/include/UVA_EventAction.hh similarity index 69% rename from examples/novice/N07/include/ExN07EventAction.hh rename to examples/extended/visualization/userVisAction/include/UVA_EventAction.hh index aadd073aa8..4a7d86cc90 100644 --- a/examples/novice/N07/include/ExN07EventAction.hh +++ b/examples/extended/visualization/userVisAction/include/UVA_EventAction.hh @@ -21,37 +21,33 @@ // ******************************************************************** // // -// $Id: ExN07EventAction.hh,v 1.2 2003/04/08 15:47:00 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: UVA_EventAction.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // - -#ifndef ExN07EventAction_h -#define ExN07EventAction_h 1 +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_EventAction_h +#define UVA_EventAction_h 1 #include "G4UserEventAction.hh" -#include "globals.hh" -class ExN07EventAction : public G4UserEventAction +class G4Event; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_EventAction : public G4UserEventAction { public: - ExN07EventAction(); - virtual ~ExN07EventAction(); + UVA_EventAction(); + ~UVA_EventAction(); public: - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); - - private: - G4int calorimeterCollID[6]; - static G4int verboseLevel; - - public: - static void SetVerboseLevel(G4int i) - { verboseLevel = i; } - static G4int GetVerboseLevel() - { return verboseLevel; } + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/novice/N07/include/ExN07GapParameterisation.hh b/examples/extended/visualization/userVisAction/include/UVA_MagneticField.hh similarity index 56% rename from examples/novice/N07/include/ExN07GapParameterisation.hh rename to examples/extended/visualization/userVisAction/include/UVA_MagneticField.hh index c743c4a21c..58c48ed1de 100644 --- a/examples/novice/N07/include/ExN07GapParameterisation.hh +++ b/examples/extended/visualization/userVisAction/include/UVA_MagneticField.hh @@ -21,50 +21,46 @@ // ******************************************************************** // // -// $Id: ExN07GapParameterisation.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: UVA_MagneticField.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -// A parameterisation that describes a series of boxes along Z -// The boxes have equal size. -// +// A class for control of the Magnetic Field of the detector. +// The field is assumed to be uniform. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef ExN07GapParameterisation_H -#define ExN07GapParameterisation_H 1 +#ifndef UVA_MagneticField_H +#define UVA_MagneticField_H -#include "globals.hh" -#include "G4VPVParameterisation.hh" +#include "G4UniformMagField.hh" -class G4VPhysicalVolume; -class G4Material; +class G4FieldManager; -class ExN07GapParameterisation : public G4VPVParameterisation -{ +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +class UVA_MagneticField: public G4UniformMagField +{ public: - ExN07GapParameterisation(); - virtual ~ExN07GapParameterisation(); - - virtual void ComputeTransformation(const G4int copyNo, - G4VPhysicalVolume* physVol) const; - virtual G4Material* ComputeMaterial(const G4int copyNo, - G4VPhysicalVolume* physVol); + UVA_MagneticField(G4ThreeVector); // The value of the field + UVA_MagneticField(); // A zero field + ~UVA_MagneticField(); + + //Set the field (fieldValue,0,0) + void SetFieldValue(G4double fieldValue); + void SetFieldValue(G4ThreeVector fieldVector); + + G4ThreeVector GetConstantFieldValue(); - private: - G4int numberOfLayers; - G4Material* absMaterial; - G4Material* gapMaterial; + protected: - public: - inline void SetNumberOfLayers(G4int nl) - { numberOfLayers = nl; } - inline void SetAbsorberMaterial(G4Material* mat) - { absMaterial = mat; } - inline void SetGapMaterial(G4Material* mat) - { gapMaterial = mat; } + // Find the global Field Manager + G4FieldManager* GetGlobalFieldManager(); // static }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - - diff --git a/examples/extended/visualization/userVisAction/include/UVA_PhysicsList.hh b/examples/extended/visualization/userVisAction/include/UVA_PhysicsList.hh new file mode 100644 index 0000000000..dd709a3918 --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_PhysicsList.hh @@ -0,0 +1,69 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_PhysicsList.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_PhysicsList_h +#define UVA_PhysicsList_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_PhysicsList: public G4VUserPhysicsList +{ + public: + UVA_PhysicsList(); + ~UVA_PhysicsList(); + + protected: + // Construct particle and physics + void ConstructParticle(); + void ConstructProcess(); + + void SetCuts(); + + + protected: + // these methods Construct particles + void ConstructBosons(); + void ConstructLeptons(); + void ConstructMesons(); + void ConstructBaryons(); + + protected: + // these methods Construct physics processes and register them + void ConstructGeneral(); + void ConstructEM(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/visualization/userVisAction/include/UVA_PrimaryGeneratorAction.hh b/examples/extended/visualization/userVisAction/include/UVA_PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..f5146d1b29 --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_PrimaryGeneratorAction.hh @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_PrimaryGeneratorAction.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_PrimaryGeneratorAction_h +#define UVA_PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" + +class UVA_DetectorConstruction; +class G4ParticleGun; +class G4Event; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + UVA_PrimaryGeneratorAction(UVA_DetectorConstruction*); + ~UVA_PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event*); + + private: + G4ParticleGun* particleGun; + UVA_DetectorConstruction* myDetector; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/visualization/userVisAction/include/UVA_RunAction.hh b/examples/extended/visualization/userVisAction/include/UVA_RunAction.hh new file mode 100644 index 0000000000..c7468479a1 --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_RunAction.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_RunAction.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_RunAction_h +#define UVA_RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; + +class UVA_RunAction : public G4UserRunAction +{ + public: + UVA_RunAction(); + ~UVA_RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + diff --git a/examples/extended/visualization/userVisAction/include/UVA_SteppingAction.hh b/examples/extended/visualization/userVisAction/include/UVA_SteppingAction.hh new file mode 100644 index 0000000000..0ad9bba142 --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_SteppingAction.hh @@ -0,0 +1,48 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_SteppingAction.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_SteppingAction_h +#define UVA_SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_SteppingAction : public G4UserSteppingAction +{ + public: + UVA_SteppingAction(); + ~UVA_SteppingAction(){}; + + void UserSteppingAction(const G4Step*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/visualization/userVisAction/include/UVA_SteppingVerbose.hh b/examples/extended/visualization/userVisAction/include/UVA_SteppingVerbose.hh new file mode 100644 index 0000000000..7bc86e9f8a --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_SteppingVerbose.hh @@ -0,0 +1,57 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_SteppingVerbose.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// This class manages the verbose outputs in G4SteppingManager. +// It inherits from G4SteppingVerbose. +// It shows how to extract informations during the tracking of a particle. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_SteppingVerbose; + +#ifndef UVA_SteppingVerbose_h +#define UVA_SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_SteppingVerbose : public G4SteppingVerbose +{ + public: + + UVA_SteppingVerbose(); + ~UVA_SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/visualization/userVisAction/include/UVA_TrackerHit.hh b/examples/extended/visualization/userVisAction/include/UVA_TrackerHit.hh new file mode 100644 index 0000000000..6c3947b5bd --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_TrackerHit.hh @@ -0,0 +1,100 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_TrackerHit.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_TrackerHit_h +#define UVA_TrackerHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_TrackerHit : public G4VHit +{ + public: + + UVA_TrackerHit(); + ~UVA_TrackerHit(); + UVA_TrackerHit(const UVA_TrackerHit&); + const UVA_TrackerHit& operator=(const UVA_TrackerHit&); + G4int operator==(const UVA_TrackerHit&) const; + + inline void* operator new(size_t); + inline void operator delete(void*); + + void Draw(); + void Print(); + + public: + + void SetTrackID (G4int track) { trackID = track; }; + void SetChamberNb(G4int chamb) { chamberNb = chamb; }; + void SetEdep (G4double de) { edep = de; }; + void SetPos (G4ThreeVector xyz){ pos = xyz; }; + + G4int GetTrackID() { return trackID; }; + G4int GetChamberNb() { return chamberNb; }; + G4double GetEdep() { return edep; }; + G4ThreeVector GetPos(){ return pos; }; + + private: + + G4int trackID; + G4int chamberNb; + G4double edep; + G4ThreeVector pos; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +typedef G4THitsCollection UVA_TrackerHitsCollection; + +extern G4Allocator UVA_TrackerHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void* UVA_TrackerHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) UVA_TrackerHitAllocator.MallocSingle(); + return aHit; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +inline void UVA_TrackerHit::operator delete(void *aHit) +{ + UVA_TrackerHitAllocator.FreeSingle((UVA_TrackerHit*) aHit); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/visualization/userVisAction/include/UVA_TrackerSD.hh b/examples/extended/visualization/userVisAction/include/UVA_TrackerSD.hh new file mode 100644 index 0000000000..589b9ebaa0 --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_TrackerSD.hh @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_TrackerSD.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef UVA_TrackerSD_h +#define UVA_TrackerSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "UVA_TrackerHit.hh" + +class G4Step; +class G4HCofThisEvent; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class UVA_TrackerSD : public G4VSensitiveDetector +{ + public: + UVA_TrackerSD(G4String); + ~UVA_TrackerSD(); + + void Initialize(G4HCofThisEvent*); + G4bool ProcessHits(G4Step*, G4TouchableHistory*); + void EndOfEvent(G4HCofThisEvent*); + + private: + UVA_TrackerHitsCollection* trackerCollection; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/visualization/userVisAction/include/UVA_VisAction.hh b/examples/extended/visualization/userVisAction/include/UVA_VisAction.hh new file mode 100644 index 0000000000..2a7ae58d64 --- /dev/null +++ b/examples/extended/visualization/userVisAction/include/UVA_VisAction.hh @@ -0,0 +1,37 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_VisAction.hh,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + +#ifndef UVA_VISACTION_HH +#define UVA_VISACTION_HH + +#include "G4VUserVisAction.hh" + +class UVA_VisAction: public G4VUserVisAction { + void Draw(); +}; + +#endif + diff --git a/examples/extended/visualization/userVisAction/run1.mac b/examples/extended/visualization/userVisAction/run1.mac new file mode 100644 index 0000000000..fcc7c0fae3 --- /dev/null +++ b/examples/extended/visualization/userVisAction/run1.mac @@ -0,0 +1,23 @@ +# $Id: run1.mac,v 1.1 2005/10/18 18:09:14 allison Exp $ +# +# Macro file for "exampleN02.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run1.mac +# +/run/verbose 2 +/event/verbose 0 +# +# proton 3 GeV to the direction (0.,0.,1.) (default kinematic) +# 1 event with detailled printing +# +/tracking/verbose 1 +/run/beamOn 1 +# +# muon 300 MeV to the direction (0.,0.,1.) +# 3 events (no printing) +# +/gun/particle mu- +/gun/energy 300 MeV +/tracking/verbose 0 +/run/beamOn 3 diff --git a/examples/extended/visualization/userVisAction/run2.mac b/examples/extended/visualization/userVisAction/run2.mac new file mode 100644 index 0000000000..c48454d567 --- /dev/null +++ b/examples/extended/visualization/userVisAction/run2.mac @@ -0,0 +1,23 @@ +# $Id: run2.mac,v 1.1 2005/10/18 18:09:14 allison Exp $ +# +# Macro file for "exampleN02.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run2.mac +# +/run/verbose 2 +/event/verbose 0 +# +# proton 3 GeV to the direction (0.,0.,1.) (default kinematic) +# 1 event with detailled printing +# +/tracking/verbose 1 +/run/beamOn 1 +# +# set a magnetic field +# 1 events; print the hits +# +/N02/det/setField 2 tesla +/tracking/verbose 0 +/hits/verbose 1 +/run/beamOn 1 diff --git a/examples/extended/visualization/userVisAction/src/UVA_ChamberParameterisation.cc b/examples/extended/visualization/userVisAction/src/UVA_ChamberParameterisation.cc new file mode 100644 index 0000000000..51044c3b23 --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_ChamberParameterisation.cc @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_ChamberParameterisation.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_ChamberParameterisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4Box.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_ChamberParameterisation::UVA_ChamberParameterisation( + G4int NoChambers, + G4double startZ, // Z of center of first + G4double spacingZ, // Z spacing of centers + G4double widthChamber, + G4double lengthInitial, + G4double lengthFinal ) +{ + fNoChambers = NoChambers; + fStartZ = startZ; + fHalfWidth = widthChamber*0.5; + fSpacing = spacingZ; + fHalfLengthFirst = 0.5 * lengthInitial; + // fHalfLengthLast = lengthFinal; + if( NoChambers > 0 ){ + fHalfLengthIncr = 0.5 * (lengthFinal-lengthInitial)/NoChambers; + if (spacingZ < widthChamber) { + G4Exception("UVA_ChamberParameterisation construction: Width>Spacing"); + } + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_ChamberParameterisation::~UVA_ChamberParameterisation() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_ChamberParameterisation::ComputeTransformation +(const G4int copyNo, G4VPhysicalVolume* physVol) const +{ + G4double Zposition= fStartZ + (copyNo+1) * fSpacing; + G4ThreeVector origin(0,0,Zposition); + physVol->SetTranslation(origin); + physVol->SetRotation(0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_ChamberParameterisation::ComputeDimensions +(G4Box& trackerChamber, const G4int copyNo, const G4VPhysicalVolume*) const +{ + G4double halfLength= fHalfLengthFirst + copyNo * fHalfLengthIncr; + trackerChamber.SetXHalfLength(halfLength); + trackerChamber.SetYHalfLength(halfLength); + trackerChamber.SetZHalfLength(fHalfWidth); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/visualization/userVisAction/src/UVA_DetectorConstruction.cc b/examples/extended/visualization/userVisAction/src/UVA_DetectorConstruction.cc new file mode 100644 index 0000000000..8bec27ccac --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_DetectorConstruction.cc @@ -0,0 +1,291 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_DetectorConstruction.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_DetectorConstruction.hh" +#include "UVA_DetectorMessenger.hh" +#include "UVA_ChamberParameterisation.hh" +#include "UVA_MagneticField.hh" +#include "UVA_TrackerSD.hh" + +#include "G4Material.hh" +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVParameterised.hh" +#include "G4SDManager.hh" + +#include "G4UserLimits.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_DetectorConstruction::UVA_DetectorConstruction() +:solidWorld(0), logicWorld(0), physiWorld(0), + solidTarget(0), logicTarget(0), physiTarget(0), + solidTracker(0),logicTracker(0),physiTracker(0), + solidChamber(0),logicChamber(0),physiChamber(0), + TargetMater(0), ChamberMater(0),fpMagField(0), + fWorldLength(0.), fTargetLength(0.), fTrackerLength(0.), + NbOfChambers(0) , ChamberWidth(0.), ChamberSpacing(0.) +{ + fpMagField = new UVA_MagneticField(); + detectorMessenger = new UVA_DetectorMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_DetectorConstruction::~UVA_DetectorConstruction() +{ + delete fpMagField; + delete detectorMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* UVA_DetectorConstruction::Construct() +{ +//--------- Material definition --------- + + G4double a, z; + G4double density, temperature, pressure; + G4int nel; + + //Air + G4Element* N = new G4Element("Nitrogen", "N", z=7., a= 14.01*g/mole); + G4Element* O = new G4Element("Oxygen" , "O", z=8., a= 16.00*g/mole); + + G4Material* Air = new G4Material("Air", density= 1.29*mg/cm3, nel=2); + Air->AddElement(N, 70*perCent); + Air->AddElement(O, 30*perCent); + + //Lead + G4Material* Pb = + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); + + //Xenon gas + G4Material* Xenon = + new G4Material("XenonGas", z=54., a=131.29*g/mole, density= 5.458*mg/cm3, + kStateGas, temperature= 293.15*kelvin, pressure= 1*atmosphere); + + // Print all the materials defined. + // + G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; + G4cout << *(G4Material::GetMaterialTable()) << G4endl; + +//--------- Sizes of the principal geometrical components (solids) --------- + + NbOfChambers = 5; + ChamberWidth = 20*cm; + ChamberSpacing = 80*cm; + + fTrackerLength = (NbOfChambers+1)*ChamberSpacing; // Full length of Tracker + fTargetLength = 5.0 * cm; // Full length of Target + + TargetMater = Pb; + ChamberMater = Xenon; + + fWorldLength= 1.2 *(fTargetLength+fTrackerLength); + + G4double targetSize = 0.5*fTargetLength; // Half length of the Target + G4double trackerSize = 0.5*fTrackerLength; // Half length of the Tracker + +//--------- Definitions of Solids, Logical Volumes, Physical Volumes --------- + + //------------------------------ + // World + //------------------------------ + + G4double HalfWorldLength = 0.5*fWorldLength; + + solidWorld= new G4Box("world",HalfWorldLength,HalfWorldLength,HalfWorldLength); + logicWorld= new G4LogicalVolume( solidWorld, Air, "World", 0, 0, 0); + + // Must place the World Physical volume unrotated at (0,0,0). + // + physiWorld = new G4PVPlacement(0, // no rotation + G4ThreeVector(), // at (0,0,0) + logicWorld, // its logical volume + "World", // its name + 0, // its mother volume + false, // no boolean operations + 0); // copy number + + //------------------------------ + // Target + //------------------------------ + + G4ThreeVector positionTarget = G4ThreeVector(0,0,-(targetSize+trackerSize)); + + solidTarget = new G4Box("target",targetSize,targetSize,targetSize); + logicTarget = new G4LogicalVolume(solidTarget,TargetMater,"Target",0,0,0); + physiTarget = new G4PVPlacement(0, // no rotation + positionTarget, // at (x,y,z) + logicTarget, // its logical volume + "Target", // its name + logicWorld, // its mother volume + false, // no boolean operations + 0); // copy number + + G4cout << "Target is " << fTargetLength/cm << " cm of " + << TargetMater->GetName() << G4endl; + + //------------------------------ + // Tracker + //------------------------------ + + G4ThreeVector positionTracker = G4ThreeVector(0,0,0); + + solidTracker = new G4Box("tracker",trackerSize,trackerSize,trackerSize); + logicTracker = new G4LogicalVolume(solidTracker , Air, "Tracker",0,0,0); + physiTracker = new G4PVPlacement(0, // no rotation + positionTracker, // at (x,y,z) + logicTracker, // its logical volume + "Tracker", // its name + logicWorld, // its mother volume + false, // no boolean operations + 0); // copy number + + //------------------------------ + // Tracker segments + //------------------------------ + // + // An example of Parameterised volumes + // dummy values for G4Box -- modified by parameterised volume + + solidChamber = new G4Box("chamber", 100*cm, 100*cm, 10*cm); + logicChamber = new G4LogicalVolume(solidChamber,ChamberMater,"Chamber",0,0,0); + + G4double firstPosition = -trackerSize + 0.5*ChamberWidth; + G4double firstLength = fTrackerLength/10; + G4double lastLength = fTrackerLength; + + G4VPVParameterisation* chamberParam = new UVA_ChamberParameterisation( + NbOfChambers, // NoChambers + firstPosition, // Z of center of first + ChamberSpacing, // Z spacing of centers + ChamberWidth, // Width Chamber + firstLength, // lengthInitial + lastLength); // lengthFinal + + // dummy value : kZAxis -- modified by parameterised volume + // + physiChamber = new G4PVParameterised( + "Chamber", // their name + logicChamber, // their logical volume + logicTracker, // Mother logical volume + kZAxis, // Are placed along this axis + NbOfChambers, // Number of chambers + chamberParam); // The parametrisation + + G4cout << "There are " << NbOfChambers << " chambers in the tracker region. " + << "The chambers are " << ChamberWidth/mm << " mm of " + << ChamberMater->GetName() << "\n The distance between chamber is " + << ChamberSpacing/cm << " cm" << G4endl; + + //------------------------------------------------ + // Sensitive detectors + //------------------------------------------------ + + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + G4String trackerChamberSDname = "UVA_/TrackerChamberSD"; + UVA_TrackerSD* aTrackerSD = new UVA_TrackerSD( trackerChamberSDname ); + SDman->AddNewDetector( aTrackerSD ); + logicChamber->SetSensitiveDetector( aTrackerSD ); + +//--------- Visualization attributes ------------------------------- + + G4VisAttributes* BoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); + logicWorld ->SetVisAttributes(BoxVisAtt); + logicTarget ->SetVisAttributes(BoxVisAtt); + logicTracker->SetVisAttributes(BoxVisAtt); + + G4VisAttributes* ChamberVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); + logicChamber->SetVisAttributes(ChamberVisAtt); + +//--------- example of User Limits ------------------------------- + + // below is an example of how to set tracking constraints in a given + // logical volume(see also in N02PhysicsList how to setup the processes + // G4StepLimiter or G4UserSpecialCuts). + + // Sets a max Step length in the tracker region, with G4StepLimiter + // + G4double maxStep = 0.5*ChamberWidth; + logicTracker->SetUserLimits(new G4UserLimits(maxStep)); + + // Set additional contraints on the track, with G4UserSpecialCuts + // + // G4double maxLength = 2*fTrackerLength, maxTime = 0.1*ns, minEkin = 10*MeV; + // logicTracker->SetUserLimits(new G4UserLimits(maxStep,maxLength,maxTime, + // minEkin)); + + return physiWorld; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_DetectorConstruction::setTargetMaterial(G4String materialName) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialName); + if (pttoMaterial) + {TargetMater = pttoMaterial; + logicTarget->SetMaterial(pttoMaterial); + G4cout << "\n----> The target is " << fTargetLength/cm << " cm of " + << materialName << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_DetectorConstruction::setChamberMaterial(G4String materialName) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialName); + if (pttoMaterial) + {ChamberMater = pttoMaterial; + logicChamber->SetMaterial(pttoMaterial); + G4cout << "\n----> The chambers are " << ChamberWidth/cm << " cm of " + << materialName << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_DetectorConstruction::SetMagField(G4double fieldValue) +{ + fpMagField->SetFieldValue(fieldValue); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/visualization/userVisAction/src/UVA_DetectorMessenger.cc b/examples/extended/visualization/userVisAction/src/UVA_DetectorMessenger.cc new file mode 100644 index 0000000000..e62c8e739c --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_DetectorMessenger.cc @@ -0,0 +1,92 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_DetectorMessenger.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_DetectorMessenger.hh" + +#include "UVA_DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_DetectorMessenger::UVA_DetectorMessenger(UVA_DetectorConstruction* myDet) +:myDetector(myDet) +{ + N02Dir = new G4UIdirectory("/N02/"); + N02Dir->SetGuidance("UI commands specific to this example."); + + detDir = new G4UIdirectory("/N02/det/"); + detDir->SetGuidance("detector control."); + + TargMatCmd = new G4UIcmdWithAString("/N02/det/setTargetMate",this); + TargMatCmd->SetGuidance("Select Material of the Target."); + TargMatCmd->SetParameterName("choice",false); + TargMatCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + ChamMatCmd = new G4UIcmdWithAString("/N02/det/setChamberMate",this); + ChamMatCmd->SetGuidance("Select Material of the Target."); + ChamMatCmd->SetParameterName("choice",false); + ChamMatCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + FieldCmd = new G4UIcmdWithADoubleAndUnit("/N02/det/setField",this); + FieldCmd->SetGuidance("Define magnetic field."); + FieldCmd->SetGuidance("Magnetic field will be in X direction."); + FieldCmd->SetParameterName("Bx",false); + FieldCmd->SetUnitCategory("Magnetic flux density"); + FieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_DetectorMessenger::~UVA_DetectorMessenger() +{ + delete TargMatCmd; + delete ChamMatCmd; + delete FieldCmd; + delete detDir; + delete N02Dir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == TargMatCmd ) + { myDetector->setTargetMaterial(newValue);} + + if( command == ChamMatCmd ) + { myDetector->setChamberMaterial(newValue);} + + if( command == FieldCmd ) + { myDetector->SetMagField(FieldCmd->GetNewDoubleValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/visualization/userVisAction/src/UVA_EventAction.cc b/examples/extended/visualization/userVisAction/src/UVA_EventAction.cc new file mode 100644 index 0000000000..e0617daa2a --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_EventAction.cc @@ -0,0 +1,74 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_EventAction.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_EventAction.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_EventAction::UVA_EventAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_EventAction::~UVA_EventAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_EventAction::BeginOfEventAction(const G4Event*) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_EventAction::EndOfEventAction(const G4Event* evt) +{ + G4int event_id = evt->GetEventID(); + + // get number of stored trajectories + // + G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); + + // periodic printing + // + if (event_id < 100 || event_id%100 == 0) { + G4cout << ">>> Event " << evt->GetEventID() << G4endl; + G4cout << " " << n_trajectories + << " trajectories stored in this event." << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/visualization/userVisAction/src/UVA_MagneticField.cc b/examples/extended/visualization/userVisAction/src/UVA_MagneticField.cc new file mode 100644 index 0000000000..c4b7efedbd --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_MagneticField.cc @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_MagneticField.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// User Field class implementation. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_MagneticField.hh" +#include "G4FieldManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_MagneticField::UVA_MagneticField() + : G4UniformMagField(G4ThreeVector()) +{ + GetGlobalFieldManager()->SetDetectorField(this); + GetGlobalFieldManager()->CreateChordFinder(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_MagneticField::UVA_MagneticField(G4ThreeVector fieldVector) + : G4UniformMagField(fieldVector) +{ + GetGlobalFieldManager()->SetDetectorField(this); + GetGlobalFieldManager()->CreateChordFinder(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Set the value of the Global Field to fieldValue along X +// +void UVA_MagneticField::SetFieldValue(G4double fieldValue) +{ + G4UniformMagField::SetFieldValue(G4ThreeVector(fieldValue,0,0)); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// Set the value of the Global Field +// +void UVA_MagneticField::SetFieldValue(G4ThreeVector fieldVector) +{ + // Find the Field Manager for the global field + G4FieldManager* fieldMgr= GetGlobalFieldManager(); + + if(fieldVector!=G4ThreeVector(0.,0.,0.)) + { + G4UniformMagField::SetFieldValue(fieldVector); + fieldMgr->SetDetectorField(this); + } else { + // If the new field's value is Zero, then it is best to + // insure that it is not used for propagation. + G4MagneticField* magField = NULL; + fieldMgr->SetDetectorField(magField); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_MagneticField::~UVA_MagneticField() +{ + // GetGlobalFieldManager()->SetDetectorField(0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4TransportationManager.hh" + +G4FieldManager* UVA_MagneticField::GetGlobalFieldManager() +{ + return G4TransportationManager::GetTransportationManager()->GetFieldManager(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/visualization/userVisAction/src/UVA_PhysicsList.cc b/examples/extended/visualization/userVisAction/src/UVA_PhysicsList.cc new file mode 100644 index 0000000000..e53f4bec9b --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_PhysicsList.cc @@ -0,0 +1,239 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_PhysicsList.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "globals.hh" +#include "UVA_PhysicsList.hh" + +#include "G4ProcessManager.hh" +#include "G4ParticleTypes.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_PhysicsList::UVA_PhysicsList(): G4VUserPhysicsList() +{ + defaultCutValue = 1.0*cm; + SetVerboseLevel(1); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_PhysicsList::~UVA_PhysicsList() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_PhysicsList::ConstructParticle() +{ + // In this method, static member functions should be called + // for all particles which you want to use. + // This ensures that objects of these particle types will be + // created in the program. + + ConstructBosons(); + ConstructLeptons(); + ConstructMesons(); + ConstructBaryons(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_PhysicsList::ConstructBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + + // gamma + G4Gamma::GammaDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_PhysicsList::ConstructLeptons() +{ + // leptons + // e+/- + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + // mu+/- + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + // nu_e + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + // nu_mu + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_PhysicsList::ConstructMesons() +{ + // mesons + // light mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4Eta::EtaDefinition(); + G4EtaPrime::EtaPrimeDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + G4KaonZero::KaonZeroDefinition(); + G4AntiKaonZero::AntiKaonZeroDefinition(); + G4KaonZeroLong::KaonZeroLongDefinition(); + G4KaonZeroShort::KaonZeroShortDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_PhysicsList::ConstructBaryons() +{ + // barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_PhysicsList::ConstructProcess() +{ + AddTransportation(); + ConstructEM(); + ConstructGeneral(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" + +#include "G4StepLimiter.hh" +#include "G4UserSpecialCuts.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_PhysicsList::ConstructEM() +{ + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + + } else if (particleName == "e+") { + //positron + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + + } else if( particleName == "mu+" || + particleName == "mu-" ) { + //muon + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + + } else if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) { + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4hIonisation, -1, 2,2); + //step limit + pmanager->AddProcess(new G4StepLimiter, -1,-1,3); + ///pmanager->AddProcess(new G4UserSpecialCuts, -1,-1,4); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4Decay.hh" +void UVA_PhysicsList::ConstructGeneral() +{ + // Add Decay Process + G4Decay* theDecayProcess = new G4Decay(); + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (theDecayProcess->IsApplicable(*particle)) { + pmanager ->AddProcess(theDecayProcess); + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_PhysicsList::SetCuts() +{ + //G4VUserPhysicsList::SetCutsWithDefault method sets + //the default cut value for all particle types + // + SetCutsWithDefault(); + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/advanced/radioprotection/src/RemSimBasicGenerator.cc b/examples/extended/visualization/userVisAction/src/UVA_PrimaryGeneratorAction.cc similarity index 52% rename from examples/advanced/radioprotection/src/RemSimBasicGenerator.cc rename to examples/extended/visualization/userVisAction/src/UVA_PrimaryGeneratorAction.cc index 1f8a2d3c34..af38a1e518 100644 --- a/examples/advanced/radioprotection/src/RemSimBasicGenerator.cc +++ b/examples/extended/visualization/userVisAction/src/UVA_PrimaryGeneratorAction.cc @@ -20,66 +20,59 @@ // * statement, and all its terms. * // ******************************************************************** // -// ********************************** -// * * -// * RemSimBasicGenerator.hh * -// * * -// ********************************** // -// $Id: RemSimBasicGenerator.cc,v 1.7 2005/05/19 13:30:59 guatelli Exp $ +// $Id: UVA_PrimaryGeneratorAction.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// Author:Susanna Guatelli, guatelli@ge.infn.it +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_PrimaryGeneratorAction.hh" +#include "UVA_DetectorConstruction.hh" -#include "RemSimBasicGenerator.hh" -#include "RemSimVPrimaryGeneratorFactory.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" -#include "G4ios.hh" +#include "G4Proton.hh" +#include "globals.hh" -#ifdef G4ANALYSIS_USE -#include "RemSimAnalysisManager.hh" -#endif +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -RemSimBasicGenerator::RemSimBasicGenerator() +UVA_PrimaryGeneratorAction::UVA_PrimaryGeneratorAction( + UVA_DetectorConstruction* myDC) +:myDetector(myDC) { G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); - + +// default particle + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName = "proton"; - particleGun -> SetParticleDefinition(particleTable->FindParticle(particleName)); - particleGun -> SetParticlePosition(G4ThreeVector(0., 0., -25.*m)); - G4ThreeVector v(0.0,0.0,1.0); - particleGun -> SetParticleEnergy(100.*MeV); - particleGun -> SetParticleMomentumDirection(v); + G4Proton::Proton(); + G4ParticleDefinition* particle = particleTable->FindParticle("proton"); + + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); + particleGun->SetParticleEnergy(3.0*GeV); } -RemSimBasicGenerator::~RemSimBasicGenerator() +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_PrimaryGeneratorAction::~UVA_PrimaryGeneratorAction() { delete particleGun; } -void RemSimBasicGenerator::GeneratePrimaries(G4Event* anEvent) -{ +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifdef G4ANALYSIS_USE - G4double energy = particleGun -> GetParticleEnergy(); - RemSimAnalysisManager* analysis = RemSimAnalysisManager::getInstance(); - analysis -> primaryParticleEnergyDistribution(energy/MeV); -#endif - particleGun -> GeneratePrimaryVertex(anEvent); +void UVA_PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + G4double position = -0.5*(myDetector->GetWorldFullLength()); + particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,position)); + + particleGun->GeneratePrimaryVertex(anEvent); } -G4double RemSimBasicGenerator:: GetInitialEnergy() -{ +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - G4double primaryParticleEnergy = particleGun -> GetParticleEnergy(); - return primaryParticleEnergy; -} - -void RemSimBasicGenerator::Read(G4String) -{ - G4cout << " Sorry!The basic generator has no option to load the energy spectrum from a data.txt file" << G4endl; -} diff --git a/examples/extended/visualization/userVisAction/src/UVA_RunAction.cc b/examples/extended/visualization/userVisAction/src/UVA_RunAction.cc new file mode 100644 index 0000000000..3fcc03cf11 --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_RunAction.cc @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_RunAction.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_RunAction.hh" + +#include "G4Run.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_RunAction::UVA_RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_RunAction::~UVA_RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_RunAction::EndOfRunAction(const G4Run*) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + + diff --git a/source/particles/hadrons/barions/src/G4VBaryon.cc b/examples/extended/visualization/userVisAction/src/UVA_SteppingAction.cc similarity index 67% rename from source/particles/hadrons/barions/src/G4VBaryon.cc rename to examples/extended/visualization/userVisAction/src/UVA_SteppingAction.cc index 91678dba64..8da93d4b96 100644 --- a/source/particles/hadrons/barions/src/G4VBaryon.cc +++ b/examples/extended/visualization/userVisAction/src/UVA_SteppingAction.cc @@ -21,21 +21,25 @@ // ******************************************************************** // // -// $Id: G4VBaryon.cc,v 1.3 2001/07/11 10:01:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// +// $Id: UVA_SteppingAction.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// -------------------------------------------------------------- -// GEANT 4 class implementation file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// -------------------------------------------------------------- +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4VBaryon.hh" +#include "UVA_SteppingAction.hh" +#include "G4SteppingManager.hh" -const G4VBaryon & G4VBaryon::operator=(const G4VBaryon &right) -{ - if (this != &right) { - } return right; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_SteppingAction::UVA_SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_SteppingAction::UserSteppingAction(const G4Step*) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/visualization/userVisAction/src/UVA_SteppingVerbose.cc b/examples/extended/visualization/userVisAction/src/UVA_SteppingVerbose.cc new file mode 100644 index 0000000000..a1d1d59afc --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_SteppingVerbose.cc @@ -0,0 +1,178 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_SteppingVerbose.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_SteppingVerbose::UVA_SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_SteppingVerbose::~UVA_SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_SteppingVerbose::StepInfo() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << std::setw( 5) << "#Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + } + + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; + + // if( fStepStatus != fWorldBoundary){ + if( fTrack->GetNextVolume() != 0 ) { + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } + + if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){ + G4cout << " " + << std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep() + ->GetProcessName(); + } else { + G4cout << " UserLimit"; + } + + G4cout << G4endl; + + if( verboseLevel == 2 ){ + G4int tN2ndariesTot = fN2ndariesAtRestDoIt + + fN2ndariesAlongStepDoIt + + fN2ndariesPostStepDoIt; + if(tN2ndariesTot>0){ + G4cout << " :----- List of 2ndaries - " + << "#SpawnInStep=" << std::setw(3) << tN2ndariesTot + << "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt + << ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt + << ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt + << "), " + << "#SpawnTotal=" << std::setw(3) << (*fSecondary).size() + << " ---------------" + << G4endl; + + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); lp1++){ + G4cout << " : " + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") + << std::setw(10) + << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); + G4cout << G4endl; + } + + G4cout << " :-----------------------------" + << "----------------------------------" + << "-- EndOf2ndaries Info ---------------" + << G4endl; + } + } + + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_SteppingVerbose::TrackingStarted() +{ + + CopyState(); +G4int prec = G4cout.precision(3); + if( verboseLevel > 0 ){ + + G4cout << std::setw( 5) << "Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; + + if(fTrack->GetNextVolume()){ + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } + G4cout << " initStep" << G4endl; + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/visualization/userVisAction/src/UVA_TrackerHit.cc b/examples/extended/visualization/userVisAction/src/UVA_TrackerHit.cc new file mode 100644 index 0000000000..18701b0817 --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_TrackerHit.cc @@ -0,0 +1,103 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_TrackerHit.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_TrackerHit.hh" +#include "G4UnitsTable.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" + +G4Allocator UVA_TrackerHitAllocator; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_TrackerHit::UVA_TrackerHit() {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_TrackerHit::~UVA_TrackerHit() {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_TrackerHit::UVA_TrackerHit(const UVA_TrackerHit& right) + : G4VHit() +{ + trackID = right.trackID; + chamberNb = right.chamberNb; + edep = right.edep; + pos = right.pos; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +const UVA_TrackerHit& UVA_TrackerHit::operator=(const UVA_TrackerHit& right) +{ + trackID = right.trackID; + chamberNb = right.chamberNb; + edep = right.edep; + pos = right.pos; + return *this; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int UVA_TrackerHit::operator==(const UVA_TrackerHit& right) const +{ + return (this==&right) ? 1 : 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_TrackerHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Circle circle(pos); + circle.SetScreenSize(2.); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1.,0.,0.); + G4VisAttributes attribs(colour); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_TrackerHit::Print() +{ + G4cout << " trackID: " << trackID << " chamberNb: " << chamberNb + << " energy deposit: " << G4BestUnit(edep,"Energy") + << " position: " << G4BestUnit(pos,"Length") << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/visualization/userVisAction/src/UVA_TrackerSD.cc b/examples/extended/visualization/userVisAction/src/UVA_TrackerSD.cc new file mode 100644 index 0000000000..32ef099926 --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_TrackerSD.cc @@ -0,0 +1,97 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_TrackerSD.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_TrackerSD.hh" +#include "G4HCofThisEvent.hh" +#include "G4Step.hh" +#include "G4ThreeVector.hh" +#include "G4SDManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_TrackerSD::UVA_TrackerSD(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="trackerCollection"); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +UVA_TrackerSD::~UVA_TrackerSD(){ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_TrackerSD::Initialize(G4HCofThisEvent* HCE) +{ + trackerCollection = new UVA_TrackerHitsCollection + (SensitiveDetectorName,collectionName[0]); + static G4int HCID = -1; + if(HCID<0) + { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } + HCE->AddHitsCollection( HCID, trackerCollection ); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool UVA_TrackerSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + + if(edep==0.) return false; + + UVA_TrackerHit* newHit = new UVA_TrackerHit(); + newHit->SetTrackID (aStep->GetTrack()->GetTrackID()); + newHit->SetChamberNb(aStep->GetPreStepPoint()->GetTouchable() + ->GetReplicaNumber()); + newHit->SetEdep (edep); + newHit->SetPos (aStep->GetPostStepPoint()->GetPosition()); + trackerCollection->insert( newHit ); + + //newHit->Print(); + //newHit->Draw(); + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void UVA_TrackerSD::EndOfEvent(G4HCofThisEvent*) +{ + if (verboseLevel>0) { + G4int NbHits = trackerCollection->entries(); + G4cout << "\n-------->Hits Collection: in this event they are " << NbHits + << " hits in the tracker chambers: " << G4endl; + for (G4int i=0;iPrint(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/visualization/userVisAction/src/UVA_VisAction.cc b/examples/extended/visualization/userVisAction/src/UVA_VisAction.cc new file mode 100644 index 0000000000..af1955c838 --- /dev/null +++ b/examples/extended/visualization/userVisAction/src/UVA_VisAction.cc @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: UVA_VisAction.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + +#include "UVA_VisAction.hh" + +#include "G4VVisManager.hh" +#include "G4VisAttributes.hh" +#include "G4Orb.hh" +#include "G4Box.hh" +#include "G4SubtractionSolid.hh" +#include "G4Text.hh" + +void UVA_VisAction::Draw() { + G4VVisManager* pVisManager = G4VVisManager::GetConcreteInstance(); + if (pVisManager) { + + // A simple logo... + G4Orb orb("my_logo_orb", 1*m); + G4Box box("my_cut_box", 1*m, 1*m, 1*m); + G4SubtractionSolid logo("my_logo", &orb, &box, G4Translate3D(-1*m,1*m,1*m)); + G4VisAttributes va1(G4Colour::Red); + va1.SetForceSolid(true); + pVisManager->Draw(logo,va1,G4Translate3D(0,-1*m,4.5*m)); + + G4Text text("My beautiful logo"); + G4VisAttributes va2(G4Colour::Magenta); + text.SetVisAttributes(va2); + text.SetScreenSize(12.); + pVisManager->Draw(text,G4Translate3D(0,0,3.5*m)); + + } +} diff --git a/examples/extended/visualization/userVisAction/userVisAction.cc b/examples/extended/visualization/userVisAction/userVisAction.cc new file mode 100644 index 0000000000..e677f98a16 --- /dev/null +++ b/examples/extended/visualization/userVisAction/userVisAction.cc @@ -0,0 +1,119 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: userVisAction.cc,v 1.1 2005/10/18 18:09:14 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "UVA_DetectorConstruction.hh" +#include "UVA_PhysicsList.hh" +#include "UVA_PrimaryGeneratorAction.hh" +#include "UVA_RunAction.hh" +#include "UVA_EventAction.hh" +#include "UVA_SteppingAction.hh" +#include "UVA_SteppingVerbose.hh" + +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4UIterminal.hh" +#include "G4UItcsh.hh" + +#ifdef G4VIS_USE +#include "G4VisExecutive.hh" +#include "UVA_VisAction.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) { + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new UVA_SteppingVerbose); + + // Run manager + G4RunManager * runManager = new G4RunManager; + + // UserInitialization classes (mandatory) + UVA_DetectorConstruction* UVA_detector = new UVA_DetectorConstruction; + runManager->SetUserInitialization(UVA_detector); + runManager->SetUserInitialization(new UVA_PhysicsList); + +#ifdef G4VIS_USE + // Visualization, if you choose to have it! + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize(); + // Set User Vis Action... + visManager->SetUserAction + (new UVA_VisAction, G4VisExtent(-1*m,1*m,-2*m,0,3.5*m,5.5*m)); + // 2nd argument optional - overridden by /vis/scene/add/userAction + // arguments, if any. +#endif + + // UserAction classes + runManager->SetUserAction(new UVA_PrimaryGeneratorAction(UVA_detector)); + runManager->SetUserAction(new UVA_RunAction); + runManager->SetUserAction(new UVA_EventAction); + runManager->SetUserAction(new UVA_SteppingAction); + + //Initialize G4 kernel + runManager->Initialize(); + + //get the pointer to the User Interface manager + G4UImanager * UI = G4UImanager::GetUIpointer(); + + if(argc==1) + // Define (G)UI terminal for interactive mode + { + // G4UIterminal is a (dumb) terminal. + G4UIsession * session = 0; +#ifdef G4UI_USE_TCSH + session = new G4UIterminal(new G4UItcsh); +#else + session = new G4UIterminal(); +#endif + + UI->ApplyCommand("/control/execute vis.mac"); + session->SessionStart(); + delete session; + } + else + // Batch mode + { + G4String command = "/control/execute "; + G4String fileName = argv[1]; + UI->ApplyCommand(command+fileName); + } + +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; + + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/visualization/userVisAction/userVisAction.err b/examples/extended/visualization/userVisAction/userVisAction.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/examples/extended/visualization/userVisAction/userVisAction.in b/examples/extended/visualization/userVisAction/userVisAction.in new file mode 100644 index 0000000000..46ad7e89d2 --- /dev/null +++ b/examples/extended/visualization/userVisAction/userVisAction.in @@ -0,0 +1,21 @@ +/tracking/verbose 1 + +/gun/energy 200 MeV +/gun/particle e+ +/run/beamOn 1 + +/gun/energy 1 TeV +/gun/particle mu+ +/run/beamOn 1 + +/tracking/verbose 0 + +/gun/energy 200 MeV +/gun/particle e+ +/run/beamOn 100 + +/gun/energy 1 TeV +/gun/particle mu+ +/run/beamOn 100 + +exit diff --git a/examples/extended/visualization/userVisAction/userVisAction.out b/examples/extended/visualization/userVisAction/userVisAction.out new file mode 100644 index 0000000000..0303105f11 --- /dev/null +++ b/examples/extended/visualization/userVisAction/userVisAction.out @@ -0,0 +1,2615 @@ + +************************************************************* + Geant4 version Name: run-V07-00-05 (30-June-2005) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +The materials defined are : + + +***** Table : Nb of materials = 3 ***** + + 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: 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: XenonGas density: 5.458 mg/cm3 temperature: 293.15 K pressure: 1.00 atm RadLength: 15.539 m + ---> Element: XenonGas ( ) Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % + + +Target is 5 cm of Lead +There are 5 chambers in the tracker region. The chambers are 200 mm of XenonGas + The distance between chamber is 80 cm + +phot: Total cross sections from Sandia parametrisation. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + +eBrem: tables are built for e+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +hIoni: tables are built for proton + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Scaling relation is used to proton dE/dx and range + Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +msc: Model variant of multiple scattering for GenericIon + +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +muIoni: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu+ + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muIoni: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below, + radiative corrections for E > 1 GeV + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 + +muBrems: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +muPairProd: tables are built for mu- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +msc: Model variant of multiple scattering for pi- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Air + Range cuts : gamma 1 cm e- 1 cm e+ 1 cm + Energy thresholds : gamma 990 eV e- 8.07135 keV e+ 8.07135 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 1 cm e- 1 cm e+ 1 cm + Energy thresholds : gamma 282.478 keV e- 15.0137 MeV e+ 13.9447 MeV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : XenonGas + Range cuts : gamma 1 cm e- 1 cm e+ 1 cm + Energy thresholds : gamma 2.47072 keV e- 40.2614 keV e+ 39.2823 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +### Run 0 start. + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 0 fm 0 fm -2.91 m 200 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm 0 fm -2.86 m 200 MeV 7.67 keV 4.79 cm 4.79 cm World eIoni + 2 -326 mum 197 mum -2.45 m 200 MeV 110 keV 41.2 cm 46 cm World Transportation + 3 -325 mum 197 mum -2.45 m 198 MeV 132 keV 113 mum 46 cm Target eBrem + 4 -323 mum 209 mum -2.45 m 195 MeV 601 keV 487 mum 46.1 cm Target eBrem + 5 -317 mum 190 mum -2.45 m 192 MeV 1.88 MeV 1.22 mm 46.2 cm Target eBrem + 6 -302 mum 189 mum -2.45 m 161 MeV 540 keV 466 mum 46.2 cm Target eBrem + 7 -9.77 mum 447 mum -2.45 m 156 MeV 2.53 MeV 2.21 mm 46.4 cm Target eBrem + 8 -5.93 mum 454 mum -2.45 m 150 MeV 109 keV 80.2 mum 46.5 cm Target eBrem + 9 10.7 mum 473 mum -2.45 m 147 MeV 403 keV 291 mum 46.5 cm Target eBrem + 10 17.1 mum 560 mum -2.44 m 89.5 MeV 1.85 MeV 1.32 mm 46.6 cm Target eBrem + 11 30.2 mum 605 mum -2.44 m 87.1 MeV 1.25 MeV 324 mum 46.7 cm Target eBrem + 12 38.3 mum 692 mum -2.44 m 68.1 MeV 1.01 MeV 929 mum 46.7 cm Target eBrem + 13 17.9 mum 761 mum -2.44 m 65.7 MeV 361 keV 354 mum 46.8 cm Target eBrem + 14 1.52 mum 798 mum -2.44 m 65.1 MeV 197 keV 203 mum 46.8 cm Target eBrem + 15 -5.87 mum 809 mum -2.44 m 54.5 MeV 91.5 keV 61.2 mum 46.8 cm Target eBrem + 16 -47.4 mum 861 mum -2.44 m 53 MeV 288 keV 228 mum 46.8 cm Target eBrem + 17 -89.4 mum 922 mum -2.44 m 51 MeV 212 keV 210 mum 46.8 cm Target eBrem + 18 -288 mum 1.28 mm -2.44 m 46.6 MeV 3.12 MeV 2.6 mm 47.1 cm Target eBrem + 19 -383 mum 1.31 mm -2.44 m 41.2 MeV 295 keV 194 mum 47.1 cm Target eBrem + 20 -727 mum 1.43 mm -2.44 m 39.2 MeV 1.34 MeV 786 mum 47.2 cm Target eBrem + 21 -1.38 mm 1.61 mm -2.44 m 12.7 MeV 3.05 MeV 1.03 mm 47.3 cm Target eBrem + 22 -1.49 mm 1.63 mm -2.44 m 12.2 MeV 193 keV 182 mum 47.3 cm Target eBrem + 23 -2.54 mm 2.11 mm -2.44 m 2.75 MeV 3.26 MeV 1.28 mm 47.5 cm Target eBrem + 24 -2.86 mm 1.99 mm -2.44 m 0 eV 2.75 MeV 2.2 mm 47.7 cm Target eIoni + 25 -2.86 mm 1.99 mm -2.44 m 0 eV 0 eV 0 fm 47.7 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.86 mm 1.99 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.05 mm 2.84 mm -2.44 m 470 keV 0 eV 1.14 mm 1.14 mm Target compt + 2 -6.49 mm 6.52 mm -2.43 m 438 keV 0 eV 8.01 mm 9.15 mm Target compt + 3 -1.1 cm 7.57 mm -2.42 m 438 keV 88 keV 1.18 cm 2.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 25 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.1 cm 7.57 mm -2.42 m 350 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 cm 7.58 mm -2.42 m 0 eV 350 keV 185 mum 185 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 25 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.49 mm 6.52 mm -2.43 m 32 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.49 mm 6.52 mm -2.43 m 0 eV 32 keV 4.34 mum 4.34 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 25 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.05 mm 2.84 mm -2.44 m 41.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.05 mm 2.85 mm -2.44 m 0 eV 41.4 keV 6.6 mum 6.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.86 mm 1.99 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 mm -4.81 mm -2.44 m 372 keV 0 eV 9.01 mm 9.01 mm Target compt + 2 -1.13 mm -4.78 mm -2.44 m 372 keV 88 keV 661 mum 9.67 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 24 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.13 mm -4.78 mm -2.44 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.13 mm -4.79 mm -2.44 m 0 eV 284 keV 137 mum 137 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 24 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.35 mm -4.81 mm -2.44 m 139 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 mm -4.81 mm -2.44 m 0 eV 139 keV 46.9 mum 46.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.54 mm 2.11 mm -2.44 m 6.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.86 cm -4.11 mm -2.43 m 4.53 MeV 0 eV 1.9 cm 1.9 cm Target compt + 2 -2.5 cm -4.89 mm -2.43 m 4.53 MeV 0 eV 6.79 mm 2.58 cm Target Transportation + 3 -9.98 cm -1.4 cm -2.4 m 4.53 MeV 0 eV 7.99 cm 10.6 cm World Transportation + 4 -2.4 m -29.4 cm -1.58 m 4.53 MeV 0 eV 2.46 m 2.56 m Tracker Transportation + 5 -2.91 m -35.6 cm -1.4 m 4.53 MeV 0 eV 54.5 cm 3.11 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 23 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.86 cm -4.11 mm -2.43 m 1.64 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.87 cm -4.2 mm -2.43 m 0 eV 1.64 MeV 1.26 mm 1.26 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.49 mm 1.63 mm -2.44 m 292 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 mm 1.76 mm -2.44 m 246 keV 0 eV 884 mum 884 mum Target compt + 2 -2.15 mm 1.76 mm -2.44 m 246 keV 88 keV 19.9 mum 904 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.15 mm 1.76 mm -2.44 m 158 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 mm 1.76 mm -2.44 m 0 eV 158 keV 57 mum 57 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.13 mm 1.76 mm -2.44 m 45.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 mm 1.76 mm -2.44 m 0 eV 45.7 keV 7.76 mum 7.76 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.38 mm 1.61 mm -2.44 m 23.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.43 cm 3.57 mm -2.41 m 23.5 MeV 0 eV 3.42 cm 3.42 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 35, Parent ID = 21 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.43 cm 3.57 mm -2.41 m 3.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.45 cm 3.4 mm -2.41 m 2.86 MeV 473 keV 438 mum 438 mum Target eBrem + 2 -2.46 cm 3.77 mm -2.41 m 0 eV 2.86 MeV 2.29 mm 2.72 mm Target eIoni + 3 -2.46 cm 3.77 mm -2.41 m 0 eV 0 eV 0 fm 2.72 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 38, Parent ID = 35 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.46 cm 3.77 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 3.14 mm -2.41 m 511 keV 0 eV 790 mum 790 mum Target Transportation + 2 -58.4 cm -95.2 cm -2.91 m 511 keV 0 eV 1.21 m 1.21 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 35 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.46 cm 3.77 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 cm 9.17 mm -2.41 m 200 keV 0 eV 6.87 mm 6.87 mm Target compt + 2 -2.18 cm 8.81 mm -2.41 m 200 keV 88 keV 606 mum 7.48 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 37 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.18 cm 8.81 mm -2.41 m 112 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.18 cm 8.81 mm -2.41 m 0 eV 112 keV 33.4 mum 33.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 37 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.15 cm 9.17 mm -2.41 m 311 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 cm 9.18 mm -2.41 m 0 eV 311 keV 156 mum 156 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 36, Parent ID = 35 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.45 cm 3.4 mm -2.41 m 561 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 4.18 mm -2.41 m 561 keV 0 eV 927 mum 927 mum Target Transportation + 2 -21.8 cm 29.5 cm -2.4 m 561 keV 0 eV 34.9 cm 35 cm World Transportation + 3 -1.61 m 2.4 m -2.31 m 561 keV 0 eV 2.53 m 2.88 m Tracker Transportation + 4 -1.95 m 2.91 m -2.29 m 561 keV 0 eV 61.2 cm 3.49 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 21 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.43 cm 3.57 mm -2.41 m 18.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.44 cm 3.57 mm -2.41 m 5.16 MeV 47.3 keV 34.1 mum 34.1 mum Target eBrem + 2 -2.49 cm 3.44 mm -2.41 m 823 keV 3.74 MeV 2.56 mm 2.59 mm Target eBrem + 3 -2.49 cm 3.44 mm -2.41 m 246 keV 577 keV 474 mum 3.07 mm Target eBrem + 4 -2.49 cm 3.44 mm -2.41 m 0 eV 246 keV 111 mum 3.18 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 34 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.49 cm 3.44 mm -2.41 m 596 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 3.46 mm -2.41 m 596 keV 0 eV 153 mum 153 mum Target Transportation + 2 -3.32 cm 5.31 mm -2.4 m 596 keV 0 eV 1.44 cm 1.46 cm World Transportation + 3 -2.4 m 53.9 cm 96.6 cm 596 keV 0 eV 4.15 m 4.16 m Tracker Transportation + 4 -2.91 m 65.4 cm 1.69 m 596 keV 0 eV 89.4 cm 5.06 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 34 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.44 cm 3.57 mm -2.41 m 13.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 3.5 mm -2.41 m 13.3 MeV 0 eV 975 mum 975 mum Target Transportation + 2 -3.52 cm 2.31 mm -2.4 m 13.3 MeV 0 eV 1.54 cm 1.64 cm World Transportation + 3 -2.4 m -27.4 cm 26.6 cm 13.3 MeV 0 eV 3.57 m 3.59 m Tracker Transportation + 4 -2.91 m -33.4 cm 84.2 cm 13.3 MeV 0 eV 77.1 cm 4.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -727 mum 1.43 mm -2.44 m 686 keV 0 eV 0 fm 0 fm Target initStep + 1 -933 mum 1.51 mm -2.44 m 686 keV 88 keV 370 mum 370 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 20 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -933 mum 1.51 mm -2.44 m 598 keV 0 eV 0 fm 0 fm Target initStep + 1 -940 mum 1.53 mm -2.44 m 0 eV 598 keV 382 mum 382 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -383 mum 1.31 mm -2.44 m 5.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 9.65 mm -2.4 m 5.13 MeV 0 eV 4.68 cm 4.68 cm Target Transportation + 2 -2.4 m 81.6 cm 1.36 m 5.13 MeV 0 eV 4.52 m 4.57 m Tracker Transportation + 3 -2.91 m 98.9 cm 2.17 m 5.13 MeV 0 eV 97.1 cm 5.54 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -288 mum 1.28 mm -2.44 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.93 mm 1.83 mm -2.44 m 713 keV 0 eV 3.33 mm 3.33 mm Target compt + 2 -5.28 mm -692 mum -2.43 m 713 keV 88 keV 4.99 mm 8.32 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.28 mm -692 mum -2.43 m 625 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.27 mm -697 mum -2.43 m 0 eV 625 keV 404 mum 404 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.93 mm 1.83 mm -2.44 m 482 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.93 mm 1.85 mm -2.44 m 0 eV 482 keV 288 mum 288 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -89.4 mum 922 mum -2.44 m 1.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.82 mm 9.75 mm -2.41 m 1.69 MeV 0 eV 3.16 cm 3.16 cm Target compt + 2 -5.4 mm 1.06 cm -2.4 m 1.69 MeV 0 eV 1.17 cm 4.33 cm Target Transportation + 3 -4.54 cm 6.6 cm -1.6 m 1.69 MeV 0 eV 80.3 cm 84.6 cm Tracker Transportation + 4 -5.55 cm 7.99 cm -1.4 m 1.69 MeV 0 eV 20.1 cm 1.05 m Chamber Transportation + 5 -8.55 cm 12.1 cm -80 cm 1.69 MeV 0 eV 60.2 cm 1.65 m Tracker Transportation + 6 -9.55 cm 13.5 cm -60 cm 1.69 MeV 0 eV 20.1 cm 1.85 m Chamber Transportation + 7 -12.6 cm 17.7 cm 0.114 fm 1.69 MeV 0 eV 60.2 cm 2.45 m Tracker Transportation + 8 -13.6 cm 19.1 cm 20 cm 1.69 MeV 0 eV 20.1 cm 2.65 m Chamber Transportation + 9 -16.6 cm 23.2 cm 80 cm 1.69 MeV 0 eV 60.2 cm 3.25 m Tracker Transportation + 10 -17.6 cm 24.6 cm 1 m 1.69 MeV 0 eV 20.1 cm 3.46 m Chamber Transportation + 11 -20.6 cm 28.8 cm 1.6 m 1.69 MeV 0 eV 60.2 cm 4.06 m Tracker Transportation + 12 -21.6 cm 30.2 cm 1.8 m 1.69 MeV 0 eV 20.1 cm 4.26 m Chamber Transportation + 13 -24.6 cm 34.3 cm 2.4 m 1.69 MeV 0 eV 60.2 cm 4.86 m Tracker Transportation + 14 -27.1 cm 37.9 cm 2.91 m 1.69 MeV 0 eV 51.2 cm 5.37 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 17 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.82 mm 9.75 mm -2.41 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.82 mm 9.75 mm -2.41 m 0 eV 174 keV 66.5 mum 66.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -47.4 mum 861 mum -2.44 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.59 mm 4.01 mm -2.43 m 247 keV 0 eV 1.27 cm 1.27 cm Target compt + 2 -2.09 mm 4.69 mm -2.43 m 247 keV 88 keV 1.24 mm 1.4 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.09 mm 4.69 mm -2.43 m 159 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.09 mm 4.69 mm -2.43 m 0 eV 159 keV 57.2 mum 57.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.59 mm 4.01 mm -2.43 m 943 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.6 mm 4.02 mm -2.43 m 0 eV 943 keV 672 mum 672 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.87 mum 809 mum -2.44 m 10.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.8 mm 4.53 mm -2.42 m 10.5 MeV 0 eV 1.84 cm 1.84 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 50, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.8 mm 4.53 mm -2.42 m 5.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.01 mm 4.68 mm -2.42 m 0 eV 5.28 MeV 4.15 mm 4.15 mm Target eIoni + 2 -3.01 mm 4.68 mm -2.42 m 0 eV 0 eV 0 fm 4.15 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 52, Parent ID = 50 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.01 mm 4.68 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.48 mm -2.54 mm -2.42 m 511 keV 88 keV 7.44 mm 7.44 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.48 mm -2.54 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.48 mm -2.55 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 50 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.01 mm 4.68 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.9 mm 5.23 mm -2.42 m 225 keV 0 eV 559 mum 559 mum Target compt + 2 -2.52 mm 5.01 mm -2.42 m 225 keV 88 keV 920 mum 1.48 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 51 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.52 mm 5.01 mm -2.42 m 137 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.52 mm 5.01 mm -2.42 m 0 eV 137 keV 45.8 mum 45.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 51 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.9 mm 5.23 mm -2.42 m 286 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.9 mm 5.23 mm -2.42 m 0 eV 286 keV 139 mum 139 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.8 mm 4.53 mm -2.42 m 4.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.49 mm 4.93 mm -2.42 m 1.33 MeV 2.44 MeV 1.04 mm 1.04 mm Target eBrem + 2 -3.51 mm 4.86 mm -2.42 m 0 eV 1.33 MeV 996 mum 2.04 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 49 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.49 mm 4.93 mm -2.42 m 442 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.92 mm 2.86 mm -2.42 m 442 keV 88 keV 3.79 mm 3.79 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.92 mm 2.86 mm -2.42 m 354 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.93 mm 2.86 mm -2.42 m 0 eV 354 keV 188 mum 188 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.52 mum 798 mum -2.44 m 396 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.06 mm 2.25 mm -2.43 m 396 keV 88 keV 7.39 mm 7.39 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 14 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.06 mm 2.25 mm -2.43 m 308 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.06 mm 2.25 mm -2.43 m 0 eV 308 keV 154 mum 154 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 17.9 mum 761 mum -2.44 m 2.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -942 mum 2.37 mm -2.43 m 242 keV 0 eV 8.64 mm 8.64 mm Target compt + 2 -718 mum 2.32 mm -2.43 m 242 keV 88 keV 370 mum 9.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 13 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -718 mum 2.32 mm -2.43 m 154 keV 0 eV 0 fm 0 fm Target initStep + 1 -721 mum 2.32 mm -2.43 m 0 eV 154 keV 54.7 mum 54.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 13 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -942 mum 2.37 mm -2.43 m 1.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.12 mm 2.83 mm -2.43 m 876 keV 890 keV 788 mum 788 mum Target eBrem + 2 -1.14 mm 2.83 mm -2.43 m 390 keV 175 keV 95.9 mum 884 mum Target eBrem + 3 -1.12 mm 2.84 mm -2.43 m 0 eV 390 keV 215 mum 1.1 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 61, Parent ID = 59 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.14 mm 2.83 mm -2.43 m 311 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.07 mm 2.86 mm -2.43 m 311 keV 88 keV 70 mum 70 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.07 mm 2.86 mm -2.43 m 223 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.07 mm 2.86 mm -2.43 m 0 eV 223 keV 96.5 mum 96.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 38.3 mum 692 mum -2.44 m 18 MeV 0 eV 0 fm 0 fm Target initStep + 1 -610 mum 2.07 mm -2.43 m 18 MeV 0 eV 8.97 mm 8.97 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 64, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -610 mum 2.07 mm -2.43 m 12.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -704 mum 2.23 mm -2.43 m 11.7 MeV 547 keV 546 mum 546 mum Target eBrem + 2 -636 mum 2.68 mm -2.43 m 10.6 MeV 711 keV 673 mum 1.22 mm Target eBrem + 3 -495 mum 3.15 mm -2.43 m 9.91 MeV 721 keV 636 mum 1.86 mm Target eBrem + 4 350 mum 2.92 mm -2.43 m 7.78 MeV 1.73 MeV 1.21 mm 3.06 mm Target eBrem + 5 358 mum 2.61 mm -2.43 m 4.45 MeV 440 keV 356 mum 3.42 mm Target eBrem + 6 789 mum 2.65 mm -2.43 m 1.58 MeV 1.51 MeV 1.58 mm 5.01 mm Target eBrem + 7 610 mum 2.91 mm -2.43 m 479 keV 421 keV 435 mum 5.44 mm Target eBrem + 8 589 mum 2.88 mm -2.43 m 0 eV 479 keV 285 mum 5.73 mm Target eIoni + 9 589 mum 2.88 mm -2.43 m 0 eV 0 eV 0 fm 5.73 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 589 mum 2.88 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.48 mm 4.32 mm -2.43 m 232 keV 0 eV 3.73 mm 3.73 mm Target compt + 2 -3.4 mm 3.6 mm -2.43 m 232 keV 88 keV 2.76 mm 6.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 72 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.4 mm 3.6 mm -2.43 m 143 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.4 mm 3.6 mm -2.43 m 0 eV 143 keV 49.1 mum 49.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 72 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.48 mm 4.32 mm -2.43 m 279 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.48 mm 4.32 mm -2.43 m 0 eV 279 keV 134 mum 134 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 589 mum 2.88 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 9.53 mm -1.29 mm -2.43 m 511 keV 88 keV 1.09 cm 1.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 71 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.53 mm -1.29 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 9.54 mm -1.31 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 610 mum 2.91 mm -2.43 m 678 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.11 cm -9.74 mm -2.43 m 678 keV 88 keV 1.75 cm 1.75 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 70 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.11 cm -9.74 mm -2.43 m 590 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.11 cm -9.76 mm -2.43 m 0 eV 590 keV 375 mum 375 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 789 mum 2.65 mm -2.43 m 1.36 MeV 0 eV 0 fm 0 fm Target initStep + 1 680 mum 2.85 mm -2.43 m 1.08 MeV 0 eV 231 mum 231 mum Target compt + 2 -2.43 mm 5.58 mm -2.43 m 410 keV 0 eV 4.15 mm 4.38 mm Target compt + 3 -2.85 mm 6.33 mm -2.42 m 410 keV 88 keV 5.8 mm 1.02 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.85 mm 6.33 mm -2.42 m 322 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.84 mm 6.33 mm -2.42 m 0 eV 322 keV 164 mum 164 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.43 mm 5.58 mm -2.43 m 665 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.45 mm 5.6 mm -2.43 m 0 eV 665 keV 438 mum 438 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 680 mum 2.85 mm -2.43 m 288 keV 0 eV 0 fm 0 fm Target initStep + 1 682 mum 2.85 mm -2.43 m 0 eV 288 keV 140 mum 140 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 358 mum 2.61 mm -2.43 m 2.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.53 mm -4.75 mm -2.43 m 2.72 MeV 0 eV 8.35 mm 8.35 mm Target compt + 2 5 mm -1.03 cm -2.42 m 2.72 MeV 0 eV 6.83 mm 1.52 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 82, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5 mm -1.03 cm -2.42 m 295 keV 0 eV 0 fm 0 fm Target initStep + 1 5.01 mm -1.03 cm -2.42 m 0 eV 295 keV 142 mum 142 mum Target eIoni + 2 5.01 mm -1.03 cm -2.42 m 0 eV 0 eV 0 fm 142 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 82 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.01 mm -1.03 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.34 mm -1.06 cm -2.42 m 511 keV 88 keV 444 mum 444 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 85, Parent ID = 84 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.34 mm -1.06 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.35 mm -1.06 cm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 83, Parent ID = 82 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.01 mm -1.03 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 mm -6.63 mm -2.42 m 511 keV 88 keV 5.36 mm 5.36 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 83 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 mm -6.63 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.06 mm -6.62 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5 mm -1.03 cm -2.42 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.91 mm -1.03 cm -2.42 m 245 keV 567 keV 372 mum 372 mum Target eBrem + 2 4.91 mm -1.03 cm -2.42 m 0 eV 245 keV 110 mum 482 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 87, Parent ID = 81 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.91 mm -1.03 cm -2.42 m 590 keV 0 eV 0 fm 0 fm Target initStep + 1 4.62 mm -8.42 mm -2.43 m 215 keV 0 eV 2.85 mm 2.85 mm Target compt + 2 6.99 mm -7.47 mm -2.42 m 215 keV 88 keV 4.39 mm 7.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 87 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.99 mm -7.47 mm -2.42 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 6.99 mm -7.47 mm -2.42 m 0 eV 127 keV 40.5 mum 40.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 87 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.62 mm -8.42 mm -2.43 m 374 keV 0 eV 0 fm 0 fm Target initStep + 1 4.62 mm -8.41 mm -2.43 m 0 eV 374 keV 204 mum 204 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.53 mm -4.75 mm -2.43 m 168 keV 0 eV 0 fm 0 fm Target initStep + 1 2.53 mm -4.76 mm -2.43 m 0 eV 168 keV 62.8 mum 62.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 350 mum 2.92 mm -2.43 m 403 keV 0 eV 0 fm 0 fm Target initStep + 1 298 mum 2.31 mm -2.43 m 372 keV 0 eV 818 mum 818 mum Target compt + 2 -3.42 mm -2.06 mm -2.42 m 372 keV 88 keV 9.17 mm 9.98 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 67 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.42 mm -2.06 mm -2.42 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.42 mm -2.07 mm -2.42 m 0 eV 284 keV 138 mum 138 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 67 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 298 mum 2.31 mm -2.43 m 30.4 keV 0 eV 0 fm 0 fm Target initStep + 1 298 mum 2.31 mm -2.43 m 0 eV 30.4 keV 4 mum 4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 66, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -636 mum 2.68 mm -2.43 m 388 keV 0 eV 0 fm 0 fm Target initStep + 1 -537 mum 3.84 mm -2.43 m 325 keV 0 eV 2.18 mm 2.18 mm Target compt + 2 322 mum 4.3 mm -2.43 m 325 keV 88 keV 1.23 mm 3.4 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 322 mum 4.3 mm -2.43 m 237 keV 0 eV 0 fm 0 fm Target initStep + 1 323 mum 4.3 mm -2.43 m 0 eV 237 keV 106 mum 106 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -537 mum 3.84 mm -2.43 m 63 keV 0 eV 0 fm 0 fm Target initStep + 1 -537 mum 3.84 mm -2.43 m 0 eV 63 keV 13 mum 13 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 65, Parent ID = 64 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -704 mum 2.23 mm -2.43 m 663 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.3 mm 7.24 mm -2.43 m 371 keV 0 eV 8.51 mm 8.51 mm Target compt + 2 -2.63 mm 7.23 mm -2.43 m 172 keV 0 eV 1.47 mm 9.98 mm Target compt + 3 -2.35 mm 7.59 mm -2.43 m 108 keV 0 eV 1.29 mm 1.13 cm Target compt + 4 -2.27 mm 7.77 mm -2.43 m 108 keV 88 keV 578 mum 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.27 mm 7.77 mm -2.43 m 20.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.27 mm 7.77 mm -2.43 m 0 eV 20.1 keV 2.06 mum 2.06 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.35 mm 7.59 mm -2.43 m 64 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.35 mm 7.59 mm -2.43 m 0 eV 64 keV 13.4 mum 13.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.63 mm 7.23 mm -2.43 m 198 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.63 mm 7.23 mm -2.43 m 0 eV 198 keV 80.7 mum 80.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.3 mm 7.24 mm -2.43 m 292 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 mm 7.25 mm -2.43 m 0 eV 292 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -610 mum 2.07 mm -2.43 m 4.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 -612 mum 1.97 mm -2.43 m 1.29 MeV 1.21 MeV 381 mum 381 mum Target eBrem + 2 -632 mum 2.02 mm -2.43 m 0 eV 1.29 MeV 962 mum 1.34 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 98, Parent ID = 63 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -612 mum 1.97 mm -2.43 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.92 mm 1.9 cm -2.41 m 1.44 MeV 0 eV 3.08 cm 3.08 cm Target compt + 2 -5.89 mm 2.32 cm -2.4 m 1.44 MeV 0 eV 9.31 mm 4.01 cm Target Transportation + 3 9.78 mm 2.04 m 1.69 m 257 keV 0 eV 4.56 m 4.6 m Tracker compt + 4 9.07 cm 1.97 m 1.64 m 257 keV 0 eV 11.9 cm 4.72 m Tracker Transportation + 5 16.1 cm 1.9 m 1.6 m 257 keV 0 eV 10.4 cm 4.83 m Chamber Transportation + 6 1.15 m 1.01 m 1 m 257 keV 0 eV 1.47 m 6.29 m Tracker Transportation + 7 1.49 m 70.8 cm 80 cm 257 keV 0 eV 48.9 cm 6.78 m Chamber Transportation + 8 2.4 m -11.8 cm 24.7 cm 257 keV 0 eV 1.35 m 8.13 m Tracker Transportation + 9 2.91 m -57.9 cm -6.09 cm 257 keV 0 eV 75.3 cm 8.89 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 98 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.78 mm 2.04 m 1.69 m 1.19 MeV 0 eV 0 fm 0 fm Tracker initStep + 1 -7.57 cm 2.32 m 2.26 m 1.07 MeV 114 keV 68.3 cm 68.3 cm Tracker eIoni + 2 -5.05 cm 2.31 m 2.4 m 1.05 MeV 23.1 keV 14.4 cm 82.7 cm Tracker Transportation + 3 -4.51 cm 2.3 m 2.48 m 1.02 MeV 16.1 keV 7.81 cm 90.5 cm World eIoni + 4 -1.65 cm 2.35 m 2.91 m 955 keV 67.2 keV 45.7 cm 1.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 100 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.51 cm 2.3 m 2.48 m 10.8 keV 0 eV 0 fm 0 fm World initStep + 1 -4.45 cm 2.3 m 2.48 m 0 eV 10.8 keV 2.58 mm 2.58 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 98 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.92 mm 1.9 cm -2.41 m 110 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.92 mm 1.91 cm -2.41 m 0 eV 110 keV 32.3 mum 32.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 30.2 mum 605 mum -2.44 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -367 mum 5.65 mm -2.4 m 1.17 MeV 0 eV 4.38 cm 4.38 cm Target Transportation + 2 -7.66 mm 9.84 cm -1.6 m 1.17 MeV 0 eV 80.5 cm 84.9 cm Tracker Transportation + 3 -9.48 mm 12.2 cm -1.4 m 1.17 MeV 0 eV 20.1 cm 1.05 m Chamber Transportation + 4 -1.5 cm 19.1 cm -80 cm 1.17 MeV 0 eV 60.4 cm 1.65 m Tracker Transportation + 5 -1.68 cm 21.4 cm -60 cm 1.17 MeV 0 eV 20.1 cm 1.86 m Chamber Transportation + 6 -2.22 cm 28.4 cm 0 fm 1.17 MeV 0 eV 60.4 cm 2.46 m Tracker Transportation + 7 -2.41 cm 30.7 cm 20 cm 1.17 MeV 0 eV 20.1 cm 2.66 m Chamber Transportation + 8 -2.95 cm 37.7 cm 80 cm 1.17 MeV 0 eV 60.4 cm 3.27 m Tracker Transportation + 9 -3.14 cm 40 cm 1 m 1.17 MeV 0 eV 20.1 cm 3.47 m Chamber Transportation + 10 -3.68 cm 46.9 cm 1.6 m 1.17 MeV 0 eV 60.4 cm 4.07 m Tracker Transportation + 11 -3.86 cm 49.2 cm 1.8 m 1.17 MeV 0 eV 20.1 cm 4.27 m Chamber Transportation + 12 -4.41 cm 56.2 cm 2.4 m 1.17 MeV 0 eV 60.4 cm 4.88 m Tracker Transportation + 13 -4.88 cm 62.1 cm 2.91 m 1.17 MeV 0 eV 51.3 cm 5.39 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 17.1 mum 560 mum -2.44 m 55.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 25.3 mum 591 mum -2.44 m 55.5 MeV 0 eV 261 mum 261 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 103, Parent ID = 10 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 25.3 mum 591 mum -2.44 m 3.78 MeV 0 eV 0 fm 0 fm Target initStep + 1 -57.9 mum 944 mum -2.44 m 0 eV 3.78 MeV 3.01 mm 3.01 mm Target eIoni + 2 -57.9 mum 944 mum -2.44 m 0 eV 0 eV 0 fm 3.01 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 105, Parent ID = 103 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -57.9 mum 944 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.27 mm 248 mum -2.45 m 511 keV 88 keV 3.21 mm 3.21 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 105 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.27 mm 248 mum -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.28 mm 244 mum -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 103 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -57.9 mum 944 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.45 mm 3.25 mm -2.43 m 511 keV 88 keV 1.07 cm 1.07 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 104 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.45 mm 3.25 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.44 mm 3.26 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 10 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 25.3 mum 591 mum -2.44 m 50.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 30.7 mum 611 mum -2.44 m 43.7 MeV 254 keV 193 mum 193 mum Target eBrem + 2 150 mum 786 mum -2.44 m 41.5 MeV 1.44 MeV 1.16 mm 1.35 mm Target eBrem + 3 488 mum 779 mum -2.44 m 34.7 MeV 1.27 MeV 965 mum 2.31 mm Target eBrem + 4 651 mum 746 mum -2.44 m 33.6 MeV 431 keV 419 mum 2.73 mm Target eBrem + 5 727 mum 742 mum -2.44 m 33.2 MeV 184 keV 185 mum 2.92 mm Target eBrem + 6 1.15 mm 733 mum -2.44 m 30.7 MeV 958 keV 731 mum 3.65 mm Target eBrem + 7 1.67 mm 585 mum -2.44 m 27.2 MeV 1e+03 keV 826 mum 4.48 mm Target eBrem + 8 2.64 mm 617 mum -2.44 m 23.2 MeV 2.6 MeV 1.34 mm 5.81 mm Target eBrem + 9 3.28 mm 326 mum -2.44 m 21.4 MeV 1.16 MeV 970 mum 6.78 mm Target eBrem + 10 3.58 mm 38.4 mum -2.44 m 16.5 MeV 553 keV 441 mum 7.22 mm Target eBrem + 11 4.63 mm -314 mum -2.44 m 13.5 MeV 1.77 MeV 1.51 mm 8.73 mm Target eBrem + 12 4.87 mm -940 mum -2.44 m 10.6 MeV 2.32 MeV 730 mum 9.46 mm Target eBrem + 13 5.14 mm -1.08 mm -2.44 m 9.23 MeV 390 keV 310 mum 9.77 mm Target eBrem + 14 5.45 mm -1.59 mm -2.44 m 6.91 MeV 845 keV 632 mum 1.04 cm Target eBrem + 15 5.88 mm -1.66 mm -2.44 m 4.25 MeV 2.22 MeV 446 mum 1.08 cm Target eBrem + 16 6.94 mm 160 mum -2.44 m 592 keV 3.26 MeV 2.9 mm 1.37 cm Target eBrem + 17 6.94 mm 185 mum -2.44 m 0 eV 592 keV 377 mum 1.41 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.94 mm 160 mum -2.44 m 398 keV 0 eV 0 fm 0 fm Target initStep + 1 8.44 mm 2.23 mm -2.43 m 398 keV 88 keV 3.41 mm 3.41 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 123 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.44 mm 2.23 mm -2.43 m 310 keV 0 eV 0 fm 0 fm Target initStep + 1 8.44 mm 2.24 mm -2.43 m 0 eV 310 keV 156 mum 156 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.88 mm -1.66 mm -2.44 m 434 keV 0 eV 0 fm 0 fm Target initStep + 1 5.94 mm -1.5 mm -2.44 m 419 keV 0 eV 220 mum 220 mum Target compt + 2 1.18 cm 6.11 mm -2.44 m 419 keV 88 keV 1.07 cm 1.1 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 122 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 cm 6.11 mm -2.44 m 331 keV 0 eV 0 fm 0 fm Target initStep + 1 1.19 cm 6.11 mm -2.44 m 0 eV 331 keV 171 mum 171 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 122 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.94 mm -1.5 mm -2.44 m 15.8 keV 0 eV 0 fm 0 fm Target initStep + 1 5.94 mm -1.5 mm -2.44 m 0 eV 15.8 keV 1.4 mum 1.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.45 mm -1.59 mm -2.44 m 1.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.09 cm -1.05 cm -2.43 m 800 keV 0 eV 1.85 cm 1.85 cm Target compt + 2 2.5 cm -1.9 cm -2.43 m 800 keV 0 eV 9.77 mm 2.82 cm Target Transportation + 3 82.6 cm -1.68 m -2.91 m 800 keV 0 eV 1.91 m 1.93 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 121 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 cm -1.05 cm -2.43 m 680 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 cm -1.05 cm -2.43 m 0 eV 680 keV 450 mum 450 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 120, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.14 mm -1.08 mm -2.44 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.31 mm -5.8 mm -2.44 m 262 keV 0 eV 6.32 mm 6.32 mm Target compt + 2 9.16 mm -5.31 mm -2.44 m 262 keV 88 keV 906 mum 7.22 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 120 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.16 mm -5.31 mm -2.44 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 9.17 mm -5.31 mm -2.44 m 0 eV 174 keV 66.2 mum 66.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 120 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.31 mm -5.8 mm -2.44 m 745 keV 0 eV 0 fm 0 fm Target initStep + 1 9.33 mm -5.83 mm -2.44 m 0 eV 745 keV 505 mum 505 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 119, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.87 mm -940 mum -2.44 m 557 keV 0 eV 0 fm 0 fm Target initStep + 1 1.13 cm -3.63 mm -2.44 m 557 keV 88 keV 7.04 mm 7.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 119 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.13 cm -3.63 mm -2.44 m 469 keV 0 eV 0 fm 0 fm Target initStep + 1 1.13 cm -3.63 mm -2.44 m 0 eV 469 keV 277 mum 277 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 118, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.63 mm -314 mum -2.44 m 1.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.64 cm -1.38 cm -2.44 m 810 keV 0 eV 1.79 cm 1.79 cm Target compt + 2 2.32 cm -1.78 cm -2.44 m 374 keV 0 eV 9.67 mm 2.76 cm Target compt + 3 2.32 cm -1.73 cm -2.44 m 230 keV 0 eV 944 mum 2.85 cm Target compt + 4 1.77 cm -1.97 cm -2.45 m 230 keV 88 keV 6.39 mm 3.49 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 118 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.77 cm -1.97 cm -2.45 m 142 keV 0 eV 0 fm 0 fm Target initStep + 1 1.77 cm -1.97 cm -2.45 m 0 eV 142 keV 48.5 mum 48.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 118 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.32 cm -1.73 cm -2.44 m 144 keV 0 eV 0 fm 0 fm Target initStep + 1 2.32 cm -1.73 cm -2.44 m 0 eV 144 keV 49.2 mum 49.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 118 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.32 cm -1.78 cm -2.44 m 436 keV 0 eV 0 fm 0 fm Target initStep + 1 2.33 cm -1.78 cm -2.44 m 0 eV 436 keV 251 mum 251 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 118 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.64 cm -1.38 cm -2.44 m 428 keV 0 eV 0 fm 0 fm Target initStep + 1 1.64 cm -1.39 cm -2.44 m 0 eV 428 keV 245 mum 245 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 117, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.58 mm 38.4 mum -2.44 m 4.29 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.11 cm -1.87 cm -2.41 m 4.29 MeV 0 eV 3.49 cm 3.49 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 136, Parent ID = 117 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.11 cm -1.87 cm -2.41 m 2.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.13 cm -1.89 cm -2.41 m 0 eV 2.43 MeV 1.94 mm 1.94 mm Target eIoni + 2 2.13 cm -1.89 cm -2.41 m 0 eV 0 eV 0 fm 1.94 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 138, Parent ID = 136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.13 cm -1.89 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm -1.69 cm -2.41 m 511 keV 0 eV 5.92 mm 5.92 mm Target Transportation + 2 3.39 cm -1.21 cm -2.4 m 511 keV 0 eV 1.42 cm 2.01 cm World Transportation + 3 2.4 m 1.27 m 23.7 cm 511 keV 0 eV 3.77 m 3.79 m Tracker Transportation + 4 2.91 m 1.55 m 80.6 cm 511 keV 0 eV 81.2 cm 4.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 137, Parent ID = 136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.13 cm -1.89 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.24 cm -2.37 cm -2.42 m 355 keV 0 eV 1.42 cm 1.42 cm Target compt + 2 1.04 cm -2.13 cm -2.43 m 277 keV 0 eV 4.14 mm 1.83 cm Target compt + 3 1.08 cm -2.12 cm -2.43 m 277 keV 88 keV 1.5 mm 1.98 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 137 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.08 cm -2.12 cm -2.43 m 189 keV 0 eV 0 fm 0 fm Target initStep + 1 1.08 cm -2.12 cm -2.43 m 0 eV 189 keV 75.3 mum 75.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 137 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.04 cm -2.13 cm -2.43 m 78.2 keV 0 eV 0 fm 0 fm Target initStep + 1 1.04 cm -2.13 cm -2.43 m 0 eV 78.2 keV 18.5 mum 18.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 137 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 cm -2.37 cm -2.42 m 156 keV 0 eV 0 fm 0 fm Target initStep + 1 1.24 cm -2.37 cm -2.42 m 0 eV 156 keV 55.5 mum 55.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 117 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.11 cm -1.87 cm -2.41 m 846 keV 0 eV 0 fm 0 fm Target initStep + 1 2.11 cm -1.87 cm -2.41 m 458 keV 73.8 keV 56 mum 56 mum Target eBrem + 2 2.11 cm -1.87 cm -2.41 m 0 eV 458 keV 269 mum 325 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 142, Parent ID = 135 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.11 cm -1.87 cm -2.41 m 314 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 cm -1.77 cm -2.41 m 314 keV 88 keV 1.29 mm 1.29 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 142 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 cm -1.77 cm -2.41 m 226 keV 0 eV 0 fm 0 fm Target initStep + 1 2.1 cm -1.77 cm -2.41 m 0 eV 226 keV 98.5 mum 98.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.28 mm 326 mum -2.44 m 714 keV 0 eV 0 fm 0 fm Target initStep + 1 6.54 mm -2.03 mm -2.44 m 338 keV 0 eV 4.42 mm 4.42 mm Target compt + 2 9.95 mm -1.37 mm -2.44 m 338 keV 88 keV 4.59 mm 9.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.95 mm -1.37 mm -2.44 m 250 keV 0 eV 0 fm 0 fm Target initStep + 1 9.96 mm -1.37 mm -2.44 m 0 eV 250 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.54 mm -2.03 mm -2.44 m 376 keV 0 eV 0 fm 0 fm Target initStep + 1 6.55 mm -2.04 mm -2.44 m 0 eV 376 keV 205 mum 205 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.64 mm 617 mum -2.44 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm -4.09 mm -2.42 m 1.38 MeV 0 eV 2.74 cm 2.74 cm Target Transportation + 2 5.96 cm -1.14 cm -2.4 m 1.38 MeV 0 eV 4.25 cm 6.99 cm World Transportation + 3 2.4 m -50.4 cm -81.1 cm 1.38 MeV 0 eV 2.87 m 2.94 m Tracker Transportation + 4 2.91 m -61.1 cm -46.5 cm 1.38 MeV 0 eV 62.6 cm 3.57 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.67 mm 585 mum -2.44 m 2.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.53 mm 711 mum -2.44 m 2.45 MeV 0 eV 3.54 mm 3.54 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 147, Parent ID = 114 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.53 mm 711 mum -2.44 m 390 keV 0 eV 0 fm 0 fm Target initStep + 1 3.55 mm 696 mum -2.44 m 0 eV 390 keV 213 mum 213 mum Target eIoni + 2 3.55 mm 696 mum -2.44 m 0 eV 0 eV 0 fm 213 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 149, Parent ID = 147 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.55 mm 696 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.13 mm 75 mum -2.44 m 511 keV 88 keV 756 mum 756 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 149 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.13 mm 75 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.12 mm 75.5 mum -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 148, Parent ID = 147 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.55 mm 696 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.5 mm 2.12 mm -2.44 m 511 keV 88 keV 1.73 mm 1.73 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 148 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.5 mm 2.12 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.52 mm 2.13 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 114 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.53 mm 711 mum -2.44 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.54 mm 742 mum -2.44 m 0 eV 1.04 MeV 754 mum 754 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 mm 733 mum -2.44 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.9 mm 183 mum -2.43 m 1.48 MeV 0 eV 7.63 mm 7.63 mm Target compt + 2 8.3 mm -114 mum -2.43 m 299 keV 0 eV 3.19 mm 1.08 cm Target compt + 3 8.41 mm 718 mum -2.43 m 299 keV 88 keV 1.02 mm 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 113 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.41 mm 718 mum -2.43 m 211 keV 0 eV 0 fm 0 fm Target initStep + 1 8.41 mm 722 mum -2.43 m 0 eV 211 keV 88.7 mum 88.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 113 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.3 mm -114 mum -2.43 m 1.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.35 mm -131 mum -2.43 m 0 eV 1.18 MeV 874 mum 874 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 113 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.9 mm 183 mum -2.43 m 73.9 keV 0 eV 0 fm 0 fm Target initStep + 1 5.9 mm 183 mum -2.43 m 0 eV 73.9 keV 17 mum 17 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 727 mum 742 mum -2.44 m 292 keV 0 eV 0 fm 0 fm Target initStep + 1 1.47 mm 821 mum -2.44 m 291 keV 0 eV 1.5 mm 1.5 mm Target compt + 2 1.93 mm 867 mum -2.44 m 291 keV 88 keV 792 mum 2.29 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 112 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.93 mm 867 mum -2.44 m 203 keV 0 eV 0 fm 0 fm Target initStep + 1 1.93 mm 866 mum -2.44 m 0 eV 203 keV 83.6 mum 83.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 155, Parent ID = 112 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.47 mm 821 mum -2.44 m 1.14 keV 0 eV 0 fm 0 fm Target initStep + 1 1.47 mm 821 mum -2.44 m 0 eV 1.14 keV 34 nm 34 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 651 mum 746 mum -2.44 m 647 keV 0 eV 0 fm 0 fm Target initStep + 1 1.91 mm 599 mum -2.44 m 223 keV 0 eV 2.41 mm 2.41 mm Target compt + 2 1.84 mm 433 mum -2.44 m 223 keV 88 keV 200 mum 2.61 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.84 mm 433 mum -2.44 m 135 keV 0 eV 0 fm 0 fm Target initStep + 1 1.84 mm 434 mum -2.44 m 0 eV 135 keV 44.7 mum 44.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.91 mm 599 mum -2.44 m 424 keV 0 eV 0 fm 0 fm Target initStep + 1 1.92 mm 602 mum -2.44 m 0 eV 424 keV 242 mum 242 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 488 mum 779 mum -2.44 m 5.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.86 mm 1.2 mm -2.43 m 1.78 MeV 0 eV 7.13 mm 7.13 mm Target compt + 2 2.22 cm -5.4 mm -2.42 m 1.78 MeV 88 keV 2.57 cm 3.28 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 110 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.22 cm -5.4 mm -2.42 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.23 cm -5.42 mm -2.42 m 0 eV 1.7 MeV 1.31 mm 1.31 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 110 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.86 mm 1.2 mm -2.43 m 3.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.67 mm 1.71 mm -2.43 m 571 keV 2.8 MeV 2.31 mm 2.31 mm Target eBrem + 2 4.68 mm 1.69 mm -2.43 m 0 eV 571 keV 360 mum 2.67 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 159 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.67 mm 1.71 mm -2.43 m 320 keV 0 eV 0 fm 0 fm Target initStep + 1 7.66 mm 1.41 mm -2.43 m 173 keV 0 eV 3.03 mm 3.03 mm Target compt + 2 7.08 mm 217 mum -2.43 m 173 keV 88 keV 1.36 mm 4.39 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.08 mm 217 mum -2.43 m 84.7 keV 0 eV 0 fm 0 fm Target initStep + 1 7.08 mm 215 mum -2.43 m 0 eV 84.7 keV 21.2 mum 21.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.66 mm 1.41 mm -2.43 m 147 keV 0 eV 0 fm 0 fm Target initStep + 1 7.67 mm 1.41 mm -2.43 m 0 eV 147 keV 51.1 mum 51.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 150 mum 786 mum -2.44 m 776 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm 1.45 mm -2.44 m 593 keV 0 eV 6.4 mm 6.4 mm Target compt + 2 3.46 mm -1.16 mm -2.43 m 593 keV 88 keV 5.11 mm 1.15 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 109 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.46 mm -1.16 mm -2.43 m 505 keV 0 eV 0 fm 0 fm Target initStep + 1 3.48 mm -1.17 mm -2.43 m 0 eV 505 keV 306 mum 306 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 164, Parent ID = 109 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.36 mm 1.45 mm -2.44 m 182 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm 1.45 mm -2.44 m 0 eV 182 keV 71.2 mum 71.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 30.7 mum 611 mum -2.44 m 6.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.28 mm 2.89 mm -2.41 m 6.77 MeV 0 eV 3.75 cm 3.75 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 167, Parent ID = 108 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.28 mm 2.89 mm -2.41 m 2.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.57 mm 3.02 mm -2.41 m 0 eV 2.7 MeV 2.15 mm 2.15 mm Target eIoni + 2 6.57 mm 3.02 mm -2.41 m 0 eV 0 eV 0 fm 2.15 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 169, Parent ID = 167 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.57 mm 3.02 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 7.96 mm 2.66 mm -2.41 m 224 keV 0 eV 6.4 mm 6.4 mm Target compt + 2 6.85 mm 2.9 mm -2.41 m 176 keV 0 eV 1.14 mm 7.54 mm Target compt + 3 6.61 mm 2.66 mm -2.41 m 176 keV 88 keV 446 mum 7.99 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.61 mm 2.66 mm -2.41 m 87.5 keV 0 eV 0 fm 0 fm Target initStep + 1 6.61 mm 2.66 mm -2.41 m 0 eV 87.5 keV 22.4 mum 22.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.85 mm 2.9 mm -2.41 m 48.1 keV 0 eV 0 fm 0 fm Target initStep + 1 6.85 mm 2.9 mm -2.41 m 0 eV 48.1 keV 8.41 mum 8.41 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.96 mm 2.66 mm -2.41 m 287 keV 0 eV 0 fm 0 fm Target initStep + 1 7.97 mm 2.65 mm -2.41 m 0 eV 287 keV 140 mum 140 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 168, Parent ID = 167 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.57 mm 3.02 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.61 mm 3.28 mm -2.4 m 511 keV 88 keV 4.4 mm 4.4 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 168 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.61 mm 3.28 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.62 mm 3.27 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 108 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.28 mm 2.89 mm -2.41 m 3.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.16 mm 2.8 mm -2.41 m 2.57 MeV 204 keV 174 mum 174 mum Target eBrem + 2 6.15 mm 2.79 mm -2.41 m 1.88 MeV 24 keV 27.7 mum 201 mum Target eBrem + 3 6.38 mm 2.07 mm -2.41 m 28 keV 1.85 MeV 1.34 mm 1.54 mm Target eBrem + 4 6.38 mm 2.07 mm -2.41 m 0 eV 28 keV 3.52 mum 1.55 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 175, Parent ID = 166 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.15 mm 2.79 mm -2.41 m 665 keV 0 eV 0 fm 0 fm Target initStep + 1 2.85 mm 2.47 mm -2.4 m 538 keV 0 eV 7.17 mm 7.17 mm Target compt + 2 2.84 mm 2.49 mm -2.4 m 538 keV 0 eV 52.2 mum 7.23 mm Target Transportation + 3 -43.1 cm 1.95 m 1.6 m 538 keV 0 eV 4.47 m 4.48 m Tracker Transportation + 4 -43.5 cm 1.97 m 1.63 m 538 keV 0 eV 3.67 cm 4.51 m Chamber Transportation + 5 -51.8 cm 2.34 m 2.4 m 538 keV 0 eV 85.8 cm 5.37 m Tracker Transportation + 6 -57.3 cm 2.59 m 2.91 m 538 keV 0 eV 57 cm 5.94 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 175 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.85 mm 2.47 mm -2.4 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 2.85 mm 2.47 mm -2.4 m 0 eV 127 keV 40.4 mum 40.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 166 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.16 mm 2.8 mm -2.41 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 313 mum 4.88 mm -2.4 m 284 keV 88 keV 8.14 mm 8.14 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 174 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 313 mum 4.88 mm -2.4 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 312 mum 4.88 mm -2.4 m 0 eV 196 keV 79.5 mum 79.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 10.7 mum 473 mum -2.45 m 2.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 60.2 mum 587 mum -2.44 m 1.46 MeV 0 eV 1.32 mm 1.32 mm Target compt + 2 1.04 mm -1.69 cm -2.41 m 1.03 MeV 0 eV 3.59 cm 3.73 cm Target compt + 3 4.09 mm -2.5 cm -2.41 m 1.03 MeV 0 eV 1.02 cm 4.75 cm Target Transportation + 4 8.11 mm -3.57 cm -2.4 m 1.03 MeV 0 eV 1.35 cm 6.09 cm World Transportation + 5 89.5 cm -2.4 m -83.9 cm 1.03 MeV 0 eV 2.97 m 3.03 m Tracker Transportation + 6 1.09 m -2.91 m -50.2 cm 1.03 MeV 0 eV 64 cm 3.67 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 9 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.04 mm -1.69 cm -2.41 m 430 keV 0 eV 0 fm 0 fm Target initStep + 1 1.03 mm -1.69 cm -2.41 m 0 eV 430 keV 246 mum 246 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 9 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 60.2 mum 587 mum -2.44 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 63.7 mum 636 mum -2.44 m 0 eV 1.4 MeV 1.06 mm 1.06 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.93 mum 454 mum -2.45 m 6.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 983 mum 2.45 mm -2.42 m 2.17 MeV 0 eV 3.03 cm 3.03 cm Target compt + 2 -1.72 mm 811 mum -2.41 m 2.17 MeV 0 eV 6.67 mm 3.69 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 182, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm 811 mum -2.41 m 382 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.72 mm 799 mum -2.41 m 0 eV 382 keV 208 mum 208 mum Target eIoni + 2 -1.72 mm 799 mum -2.41 m 0 eV 0 eV 0 fm 208 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 184, Parent ID = 182 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm 799 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 mm -630 mum -2.4 m 355 keV 0 eV 5.25 mm 5.25 mm Target compt + 2 -893 mum -461 mum -2.4 m 355 keV 88 keV 352 mum 5.61 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 184 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -893 mum -461 mum -2.4 m 267 keV 0 eV 0 fm 0 fm Target initStep + 1 -889 mum -463 mum -2.4 m 0 eV 267 keV 125 mum 125 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 184 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.1 mm -630 mum -2.4 m 156 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 mm -633 mum -2.4 m 0 eV 156 keV 56 mum 56 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 183, Parent ID = 182 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm 799 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.75 mm 861 mum -2.41 m 511 keV 88 keV 226 mum 226 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 183 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.75 mm 861 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.75 mm 873 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm 811 mum -2.41 m 767 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.74 mm 812 mum -2.41 m 0 eV 767 keV 523 mum 523 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 983 mum 2.45 mm -2.42 m 3.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.09 mm 2.55 mm -2.41 m 0 eV 3.91 MeV 3.07 mm 3.07 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.77 mum 447 mum -2.45 m 1.74 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.76 mm 3.08 mm -2.42 m 972 keV 0 eV 3.07 cm 3.07 cm Target compt + 2 -514 mum 7.06 mm -2.41 m 972 keV 88 keV 6.82 mm 3.75 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -514 mum 7.06 mm -2.41 m 884 keV 0 eV 0 fm 0 fm Target initStep + 1 -543 mum 7.07 mm -2.41 m 0 eV 884 keV 622 mum 622 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.76 mm 3.08 mm -2.42 m 766 keV 0 eV 0 fm 0 fm Target initStep + 1 1.77 mm 3.07 mm -2.42 m 0 eV 766 keV 522 mum 522 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -302 mum 189 mum -2.45 m 31.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.42 mm 1.24 mm -2.43 m 732 keV 0 eV 1.35 cm 1.35 cm Target compt + 2 -6.14 mm 5.55 mm -2.43 m 575 keV 0 eV 9.45 mm 2.29 cm Target compt + 3 -7.85 mm 9.61 mm -2.43 m 575 keV 88 keV 4.58 mm 2.75 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 192, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.85 mm 9.61 mm -2.43 m 487 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.85 mm 9.63 mm -2.43 m 0 eV 487 keV 292 mum 292 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 191, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.14 mm 5.55 mm -2.43 m 157 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.14 mm 5.55 mm -2.43 m 0 eV 157 keV 56.2 mum 56.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 6 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.42 mm 1.24 mm -2.43 m 30.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.39 mm 963 mum -2.43 m 26.4 MeV 3.13 MeV 2.58 mm 2.58 mm Target eBrem + 2 2.42 mm 901 mum -2.43 m 23.3 MeV 548 keV 191 mum 2.77 mm Target eBrem + 3 2.54 mm -685 mum -2.43 m 16.7 MeV 6.59 MeV 2.3 mm 5.07 mm Target eBrem + 4 2.46 mm -935 mum -2.43 m 14.4 MeV 675 keV 533 mum 5.6 mm Target eBrem + 5 1.88 mm -1.18 mm -2.43 m 10 MeV 990 keV 863 mum 6.47 mm Target eBrem + 6 986 mum -1.55 mm -2.43 m 8.32 MeV 1.39 MeV 1.31 mm 7.78 mm Target eBrem + 7 -147 mum 2.02 mm -2.43 m 3.13 MeV 4.87 MeV 3.83 mm 1.16 cm Target eBrem + 8 -249 mum 2.34 mm -2.43 m 1.31 MeV 516 keV 528 mum 1.21 cm Target eBrem + 9 -212 mum 2.3 mm -2.43 m 0 eV 1.31 MeV 985 mum 1.31 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 199, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -249 mum 2.34 mm -2.43 m 1.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 948 mum 1.82 mm -2.43 m 892 keV 0 eV 2.93 mm 2.93 mm Target compt + 2 1.01 cm -1.72 cm -2.45 m 590 keV 0 eV 2.69 cm 2.99 cm Target compt + 3 1.08 cm -1.73 cm -2.45 m 590 keV 0 eV 1.16 mm 3.1 cm Target Transportation + 4 36.8 cm -2.49 cm -2.91 m 590 keV 0 eV 58.2 cm 61.3 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.01 cm -1.72 cm -2.45 m 302 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 cm -1.73 cm -2.45 m 0 eV 302 keV 150 mum 150 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 948 mum 1.82 mm -2.43 m 412 keV 0 eV 0 fm 0 fm Target initStep + 1 952 mum 1.83 mm -2.43 m 0 eV 412 keV 233 mum 233 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 198, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -147 mum 2.02 mm -2.43 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 -321 mum 2.1 mm -2.43 m 324 keV 88 keV 993 mum 993 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 198 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -321 mum 2.1 mm -2.43 m 236 keV 0 eV 0 fm 0 fm Target initStep + 1 -318 mum 2.09 mm -2.43 m 0 eV 236 keV 105 mum 105 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 197, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 986 mum -1.55 mm -2.43 m 322 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.62 mm -1.57 mm -2.43 m 322 keV 88 keV 7.28 mm 7.28 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 197 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.62 mm -1.57 mm -2.43 m 234 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.62 mm -1.58 mm -2.43 m 0 eV 234 keV 103 mum 103 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 196, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.88 mm -1.18 mm -2.43 m 3.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.3 mm -1.27 cm -2.4 m 3.39 MeV 0 eV 3.22 cm 3.22 cm Target Transportation + 2 -45.7 cm -64.6 cm -80 cm 3.39 MeV 0 eV 1.78 m 1.81 m Tracker Transportation + 3 -47.6 cm -67.2 cm -73.4 cm 3.39 MeV 0 eV 7.38 cm 1.88 m Chamber Transportation + 4 -68.3 cm -96.2 cm 0 fm 3.39 MeV 0 eV 81.6 cm 2.7 m Tracker Transportation + 5 -73.9 cm -1.04 m 20 cm 3.39 MeV 0 eV 22.2 cm 2.92 m Chamber Transportation + 6 -90.8 cm -1.28 m 80 cm 3.39 MeV 0 eV 66.7 cm 3.59 m Tracker Transportation + 7 -96.5 cm -1.36 m 1 m 3.39 MeV 0 eV 22.2 cm 3.81 m Chamber Transportation + 8 -1.13 m -1.6 m 1.6 m 3.39 MeV 0 eV 66.7 cm 4.48 m Tracker Transportation + 9 -1.19 m -1.67 m 1.8 m 3.39 MeV 0 eV 22.2 cm 4.7 m Chamber Transportation + 10 -1.36 m -1.91 m 2.4 m 3.39 MeV 0 eV 66.7 cm 5.37 m Tracker Transportation + 11 -1.5 m -2.11 m 2.91 m 3.39 MeV 0 eV 56.7 cm 5.94 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.46 mm -935 mum -2.43 m 1.63 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.57 mm -8.37 mm -2.42 m 1.24 MeV 0 eV 1.15 cm 1.15 cm Target compt + 2 -4.65 mm -2.5 cm -2.41 m 1.24 MeV 0 eV 1.87 cm 3.03 cm Target Transportation + 3 -8.1 mm -5.26 cm -2.4 m 1.24 MeV 0 eV 3.12 cm 6.14 cm World Transportation + 4 -30.1 cm -2.4 m -1.21 m 1.24 MeV 0 eV 2.65 m 2.71 m Tracker Transportation + 5 -36.5 cm -2.91 m -95.5 cm 1.24 MeV 0 eV 57.5 cm 3.28 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 195 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.57 mm -8.37 mm -2.42 m 388 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.58 mm -8.37 mm -2.42 m 0 eV 388 keV 214 mum 214 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 194, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.42 mm 901 mum -2.43 m 2.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.26 mm -5.05 mm -2.42 m 1.96 MeV 0 eV 1.6 cm 1.6 cm Target compt + 2 1.08 mm -1.72 cm -2.4 m 1.96 MeV 0 eV 2.12 cm 3.72 cm Target Transportation + 3 -62.1 cm -2.4 m 93.8 cm 1.96 MeV 0 eV 4.15 m 4.19 m Tracker Transportation + 4 -75.4 cm -2.91 m 1.65 m 1.96 MeV 0 eV 88.8 cm 5.07 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 194 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.26 mm -5.05 mm -2.42 m 617 keV 0 eV 0 fm 0 fm Target initStep + 1 4.27 mm -5.05 mm -2.42 m 0 eV 617 keV 397 mum 397 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 193, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.39 mm 963 mum -2.43 m 904 keV 0 eV 0 fm 0 fm Target initStep + 1 3.57 mm -2.2 mm -2.42 m 904 keV 88 keV 8.32 mm 8.32 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.57 mm -2.2 mm -2.42 m 816 keV 0 eV 0 fm 0 fm Target initStep + 1 3.58 mm -2.21 mm -2.42 m 0 eV 816 keV 564 mum 564 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -317 mum 190 mum -2.45 m 304 keV 0 eV 0 fm 0 fm Target initStep + 1 -191 mum 208 mum -2.44 m 304 keV 88 keV 4.29 mm 4.29 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -191 mum 208 mum -2.44 m 216 keV 0 eV 0 fm 0 fm Target initStep + 1 -191 mum 206 mum -2.44 m 0 eV 216 keV 91.7 mum 91.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -323 mum 209 mum -2.45 m 3.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 -305 mum 209 mum -2.45 m 686 keV 0 eV 631 mum 631 mum Target compt + 2 -427 mum 231 mum -2.45 m 263 keV 0 eV 138 mum 769 mum Target compt + 3 -303 mum 179 mum -2.45 m 263 keV 88 keV 218 mum 988 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -303 mum 179 mum -2.45 m 175 keV 0 eV 0 fm 0 fm Target initStep + 1 -300 mum 176 mum -2.45 m 0 eV 175 keV 66.8 mum 66.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -427 mum 231 mum -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -443 mum 235 mum -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -305 mum 209 mum -2.45 m 2.59 MeV 0 eV 0 fm 0 fm Target initStep + 1 -250 mum 200 mum -2.45 m 0 eV 2.59 MeV 1.99 mm 1.99 mm Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -325 mum 197 mum -2.45 m 1.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 -324 mum 200 mum -2.45 m 515 keV 0 eV 333 mum 333 mum Target compt + 2 -3.2 mm -1.22 cm -2.44 m 210 keV 0 eV 1.38 cm 1.42 cm Target compt + 3 -2.85 mm -1.22 cm -2.44 m 210 keV 88 keV 724 mum 1.49 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.85 mm -1.22 cm -2.44 m 122 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.85 mm -1.22 cm -2.44 m 0 eV 122 keV 37.9 mum 37.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.2 mm -1.22 cm -2.44 m 305 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.21 mm -1.22 cm -2.44 m 0 eV 305 keV 152 mum 152 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -324 mum 200 mum -2.45 m 830 keV 0 eV 0 fm 0 fm Target initStep + 1 -461 mum 370 mum -2.45 m 245 keV 585 keV 421 mum 421 mum Target eBrem + 2 -460 mum 368 mum -2.45 m 0 eV 245 keV 110 mum 531 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 0 fm 0 fm -2.86 m 11 keV 0 eV 0 fm 0 fm World initStep + 1 398 mum -1.2 mm -2.86 m 0 eV 11 keV 2.69 mm 2.69 mm World eIoni +>>> Event 0 + 0 trajectories stored in this event. +### Run 1 start. + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 0 fm 0 fm -2.91 m 1 TeV 0 eV 0 fm 0 fm World initStep + 1 12.3 nm -55.3 nm -2.73 m 1e+03 GeV 50.6 keV 17.5 cm 17.5 cm World muIoni + 2 -39.9 nm -100 nm -2.45 m 1e+03 GeV 61.9 keV 28.5 cm 46 cm World Transportation + 3 -36.3 nm -108 nm -2.4 m 1e+03 GeV 80.2 MeV 5 cm 51 cm Target Transportation + 4 21.3 mum 10.8 mum -2.17 m 1e+03 GeV 47.9 keV 23.4 cm 74.4 cm Tracker muIoni + 5 73 mum 37.1 mum -1.6 m 1e+03 GeV 145 keV 56.6 cm 1.31 m Tracker Transportation + 6 91.4 mum 46.4 mum -1.4 m 1e+03 GeV 139 keV 20 cm 1.51 m Chamber Transportation + 7 147 mum 74.3 mum -80 cm 1e+03 GeV 139 keV 60 cm 2.11 m Tracker Transportation + 8 166 mum 83.5 mum -60 cm 1e+03 GeV 162 keV 20 cm 2.31 m Chamber Transportation + 9 221 mum 111 mum 0 fm 1e+03 GeV 136 keV 60 cm 2.91 m Tracker Transportation + 10 235 mum 118 mum 16.4 cm 1e+03 GeV 101 keV 16.4 cm 3.07 m Chamber muIoni + 11 239 mum 120 mum 20 cm 1e+03 GeV 17.4 keV 3.59 cm 3.11 m Chamber Transportation + 12 246 mum 124 mum 27.6 cm 1e+03 GeV 22.2 keV 7.58 cm 3.19 m Tracker muIoni + 13 263 mum 132 mum 46.5 cm 1e+03 GeV 41.4 keV 18.9 cm 3.37 m Tracker muIoni + 14 277 mum 140 mum 61.4 cm 1e+03 GeV 36.4 keV 14.9 cm 3.52 m Tracker muIoni + 15 295 mum 148 mum 80 cm 1e+03 GeV 40.7 keV 18.6 cm 3.71 m Tracker Transportation + 16 314 mum 158 mum 1 m 1e+03 GeV 167 keV 20 cm 3.91 m Chamber Transportation + 17 325 mum 164 mum 1.12 m 1e+03 GeV 29.6 keV 12.1 cm 4.03 m Tracker muIoni + 18 369 mum 187 mum 1.6 m 1e+03 GeV 103 keV 47.9 cm 4.51 m Tracker Transportation + 19 378 mum 192 mum 1.71 m 1e+03 GeV 61 keV 10.6 cm 4.62 m Chamber muIoni + 20 387 mum 197 mum 1.8 m 1e+03 GeV 71.9 keV 9.37 cm 4.71 m Chamber Transportation + 21 419 mum 213 mum 2.14 m 1e+03 GeV 77.3 keV 33.8 cm 5.05 m Tracker muIoni + 22 443 mum 225 mum 2.4 m 1e+03 GeV 61.9 keV 26.2 cm 5.31 m Tracker Transportation + 23 471 mum 239 mum 2.7 m 1e+03 GeV 72.3 keV 29.8 cm 5.61 m World muIoni + 24 483 mum 245 mum 2.83 m 1e+03 GeV 31.1 keV 12.8 cm 5.74 m World muIoni + 25 491 mum 249 mum 2.91 m 1e+03 GeV 17.3 keV 8.49 cm 5.82 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 483 mum 245 mum 2.83 m 9.64 keV 0 eV 0 fm 0 fm World initStep + 1 -109 mum -553 mum 2.83 m 0 eV 9.64 keV 2.13 mm 2.13 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 471 mum 239 mum 2.7 m 12.7 keV 0 eV 0 fm 0 fm World initStep + 1 -935 mum -524 mum 2.7 m 0 eV 12.7 keV 3.4 mm 3.4 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 419 mum 213 mum 2.14 m 13.8 keV 0 eV 0 fm 0 fm Tracker initStep + 1 2.21 mm 818 mum 2.14 m 0 eV 13.8 keV 4 mm 4 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 378 mum 192 mum 1.71 m 80 keV 0 eV 0 fm 0 fm Chamber initStep + 1 3.55 mm 1.43 mm 1.71 m 0 eV 80 keV 3.41 cm 3.41 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 325 mum 164 mum 1.12 m 33.5 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -4.85 mm -7.38 mm 1.12 m 0 eV 33.5 keV 1.95 cm 1.95 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 277 mum 140 mum 61.4 cm 14.3 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -761 mum 1.84 mm 61.4 cm 0 eV 14.3 keV 4.22 mm 4.22 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 263 mum 132 mum 46.5 cm 15.4 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -6.27 mum -2.13 mm 46.5 cm 0 eV 15.4 keV 4.82 mm 4.82 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 246 mum 124 mum 27.6 cm 219 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -20.1 cm 9.48 cm 37.9 cm 0 eV 219 keV 51.9 cm 51.9 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 235 mum 118 mum 16.4 cm 46.1 keV 0 eV 0 fm 0 fm Chamber initStep + 1 -1.19 mm 34 mum 16.4 cm 0 eV 46.1 keV 1.37 cm 1.37 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 21.3 mum 10.8 mum -2.17 m 67.3 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -9.95 mm -2.97 cm -2.16 m 0 eV 67.3 keV 6.82 cm 6.82 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 12.3 nm -55.3 nm -2.73 m 17.7 keV 0 eV 0 fm 0 fm World initStep + 1 -506 mum 2.89 mm -2.73 m 0 eV 17.7 keV 6.2 mm 6.2 mm World eIoni +>>> Event 0 + 0 trajectories stored in this event. +### Run 2 start. +>>> Event 0 + 0 trajectories stored in this event. +>>> Event 1 + 0 trajectories stored in this event. +>>> Event 2 + 0 trajectories stored in this event. +>>> Event 3 + 0 trajectories stored in this event. +>>> Event 4 + 0 trajectories stored in this event. +>>> Event 5 + 0 trajectories stored in this event. +>>> Event 6 + 0 trajectories stored in this event. +>>> Event 7 + 0 trajectories stored in this event. +>>> Event 8 + 0 trajectories stored in this event. +>>> Event 9 + 0 trajectories stored in this event. +>>> Event 10 + 0 trajectories stored in this event. +>>> Event 11 + 0 trajectories stored in this event. +>>> Event 12 + 0 trajectories stored in this event. +>>> Event 13 + 0 trajectories stored in this event. +>>> Event 14 + 0 trajectories stored in this event. +>>> Event 15 + 0 trajectories stored in this event. +>>> Event 16 + 0 trajectories stored in this event. +>>> Event 17 + 0 trajectories stored in this event. +>>> Event 18 + 0 trajectories stored in this event. +>>> Event 19 + 0 trajectories stored in this event. +>>> Event 20 + 0 trajectories stored in this event. +>>> Event 21 + 0 trajectories stored in this event. +>>> Event 22 + 0 trajectories stored in this event. +>>> Event 23 + 0 trajectories stored in this event. +>>> Event 24 + 0 trajectories stored in this event. +>>> Event 25 + 0 trajectories stored in this event. +>>> Event 26 + 0 trajectories stored in this event. +>>> Event 27 + 0 trajectories stored in this event. +>>> Event 28 + 0 trajectories stored in this event. +>>> Event 29 + 0 trajectories stored in this event. +>>> Event 30 + 0 trajectories stored in this event. +>>> Event 31 + 0 trajectories stored in this event. +>>> Event 32 + 0 trajectories stored in this event. +>>> Event 33 + 0 trajectories stored in this event. +>>> Event 34 + 0 trajectories stored in this event. +>>> Event 35 + 0 trajectories stored in this event. +>>> Event 36 + 0 trajectories stored in this event. +>>> Event 37 + 0 trajectories stored in this event. +>>> Event 38 + 0 trajectories stored in this event. +>>> Event 39 + 0 trajectories stored in this event. +>>> Event 40 + 0 trajectories stored in this event. +>>> Event 41 + 0 trajectories stored in this event. +>>> Event 42 + 0 trajectories stored in this event. +>>> Event 43 + 0 trajectories stored in this event. +>>> Event 44 + 0 trajectories stored in this event. +>>> Event 45 + 0 trajectories stored in this event. +>>> Event 46 + 0 trajectories stored in this event. +>>> Event 47 + 0 trajectories stored in this event. +>>> Event 48 + 0 trajectories stored in this event. +>>> Event 49 + 0 trajectories stored in this event. +>>> Event 50 + 0 trajectories stored in this event. +>>> Event 51 + 0 trajectories stored in this event. +>>> Event 52 + 0 trajectories stored in this event. +>>> Event 53 + 0 trajectories stored in this event. +>>> Event 54 + 0 trajectories stored in this event. +>>> Event 55 + 0 trajectories stored in this event. +>>> Event 56 + 0 trajectories stored in this event. +>>> Event 57 + 0 trajectories stored in this event. +>>> Event 58 + 0 trajectories stored in this event. +>>> Event 59 + 0 trajectories stored in this event. +>>> Event 60 + 0 trajectories stored in this event. +>>> Event 61 + 0 trajectories stored in this event. +>>> Event 62 + 0 trajectories stored in this event. +>>> Event 63 + 0 trajectories stored in this event. +>>> Event 64 + 0 trajectories stored in this event. +>>> Event 65 + 0 trajectories stored in this event. +>>> Event 66 + 0 trajectories stored in this event. +>>> Event 67 + 0 trajectories stored in this event. +>>> Event 68 + 0 trajectories stored in this event. +>>> Event 69 + 0 trajectories stored in this event. +>>> Event 70 + 0 trajectories stored in this event. +>>> Event 71 + 0 trajectories stored in this event. +>>> Event 72 + 0 trajectories stored in this event. +>>> Event 73 + 0 trajectories stored in this event. +>>> Event 74 + 0 trajectories stored in this event. +>>> Event 75 + 0 trajectories stored in this event. +>>> Event 76 + 0 trajectories stored in this event. +>>> Event 77 + 0 trajectories stored in this event. +>>> Event 78 + 0 trajectories stored in this event. +>>> Event 79 + 0 trajectories stored in this event. +>>> Event 80 + 0 trajectories stored in this event. +>>> Event 81 + 0 trajectories stored in this event. +>>> Event 82 + 0 trajectories stored in this event. +>>> Event 83 + 0 trajectories stored in this event. +>>> Event 84 + 0 trajectories stored in this event. +>>> Event 85 + 0 trajectories stored in this event. +>>> Event 86 + 0 trajectories stored in this event. +>>> Event 87 + 0 trajectories stored in this event. +>>> Event 88 + 0 trajectories stored in this event. +>>> Event 89 + 0 trajectories stored in this event. +>>> Event 90 + 0 trajectories stored in this event. +>>> Event 91 + 0 trajectories stored in this event. +>>> Event 92 + 0 trajectories stored in this event. +>>> Event 93 + 0 trajectories stored in this event. +>>> Event 94 + 0 trajectories stored in this event. +>>> Event 95 + 0 trajectories stored in this event. +>>> Event 96 + 0 trajectories stored in this event. +>>> Event 97 + 0 trajectories stored in this event. +>>> Event 98 + 0 trajectories stored in this event. +>>> Event 99 + 0 trajectories stored in this event. +### Run 3 start. +>>> Event 0 + 0 trajectories stored in this event. +>>> Event 1 + 0 trajectories stored in this event. +>>> Event 2 + 0 trajectories stored in this event. +>>> Event 3 + 0 trajectories stored in this event. +>>> Event 4 + 0 trajectories stored in this event. +>>> Event 5 + 0 trajectories stored in this event. +>>> Event 6 + 0 trajectories stored in this event. +>>> Event 7 + 0 trajectories stored in this event. +>>> Event 8 + 0 trajectories stored in this event. +>>> Event 9 + 0 trajectories stored in this event. +>>> Event 10 + 0 trajectories stored in this event. +>>> Event 11 + 0 trajectories stored in this event. +>>> Event 12 + 0 trajectories stored in this event. +>>> Event 13 + 0 trajectories stored in this event. +>>> Event 14 + 0 trajectories stored in this event. +>>> Event 15 + 0 trajectories stored in this event. +>>> Event 16 + 0 trajectories stored in this event. +>>> Event 17 + 0 trajectories stored in this event. +>>> Event 18 + 0 trajectories stored in this event. +>>> Event 19 + 0 trajectories stored in this event. +>>> Event 20 + 0 trajectories stored in this event. +>>> Event 21 + 0 trajectories stored in this event. +>>> Event 22 + 0 trajectories stored in this event. +>>> Event 23 + 0 trajectories stored in this event. +>>> Event 24 + 0 trajectories stored in this event. +>>> Event 25 + 0 trajectories stored in this event. +>>> Event 26 + 0 trajectories stored in this event. +>>> Event 27 + 0 trajectories stored in this event. +>>> Event 28 + 0 trajectories stored in this event. +>>> Event 29 + 0 trajectories stored in this event. +>>> Event 30 + 0 trajectories stored in this event. +>>> Event 31 + 0 trajectories stored in this event. +>>> Event 32 + 0 trajectories stored in this event. +>>> Event 33 + 0 trajectories stored in this event. +>>> Event 34 + 0 trajectories stored in this event. +>>> Event 35 + 0 trajectories stored in this event. +>>> Event 36 + 0 trajectories stored in this event. +>>> Event 37 + 0 trajectories stored in this event. +>>> Event 38 + 0 trajectories stored in this event. +>>> Event 39 + 0 trajectories stored in this event. +>>> Event 40 + 0 trajectories stored in this event. +>>> Event 41 + 0 trajectories stored in this event. +>>> Event 42 + 0 trajectories stored in this event. +>>> Event 43 + 0 trajectories stored in this event. +>>> Event 44 + 0 trajectories stored in this event. +>>> Event 45 + 0 trajectories stored in this event. +>>> Event 46 + 0 trajectories stored in this event. +>>> Event 47 + 0 trajectories stored in this event. +>>> Event 48 + 0 trajectories stored in this event. +>>> Event 49 + 0 trajectories stored in this event. +>>> Event 50 + 0 trajectories stored in this event. +>>> Event 51 + 0 trajectories stored in this event. +>>> Event 52 + 0 trajectories stored in this event. +>>> Event 53 + 0 trajectories stored in this event. +>>> Event 54 + 0 trajectories stored in this event. +>>> Event 55 + 0 trajectories stored in this event. +>>> Event 56 + 0 trajectories stored in this event. +>>> Event 57 + 0 trajectories stored in this event. +>>> Event 58 + 0 trajectories stored in this event. +>>> Event 59 + 0 trajectories stored in this event. +>>> Event 60 + 0 trajectories stored in this event. +>>> Event 61 + 0 trajectories stored in this event. +>>> Event 62 + 0 trajectories stored in this event. +>>> Event 63 + 0 trajectories stored in this event. +>>> Event 64 + 0 trajectories stored in this event. +>>> Event 65 + 0 trajectories stored in this event. +>>> Event 66 + 0 trajectories stored in this event. +>>> Event 67 + 0 trajectories stored in this event. +>>> Event 68 + 0 trajectories stored in this event. +>>> Event 69 + 0 trajectories stored in this event. +>>> Event 70 + 0 trajectories stored in this event. +>>> Event 71 + 0 trajectories stored in this event. +>>> Event 72 + 0 trajectories stored in this event. +>>> Event 73 + 0 trajectories stored in this event. +>>> Event 74 + 0 trajectories stored in this event. +>>> Event 75 + 0 trajectories stored in this event. +>>> Event 76 + 0 trajectories stored in this event. +>>> Event 77 + 0 trajectories stored in this event. +>>> Event 78 + 0 trajectories stored in this event. +>>> Event 79 + 0 trajectories stored in this event. +>>> Event 80 + 0 trajectories stored in this event. +>>> Event 81 + 0 trajectories stored in this event. +>>> Event 82 + 0 trajectories stored in this event. +>>> Event 83 + 0 trajectories stored in this event. +>>> Event 84 + 0 trajectories stored in this event. +>>> Event 85 + 0 trajectories stored in this event. +>>> Event 86 + 0 trajectories stored in this event. +>>> Event 87 + 0 trajectories stored in this event. +>>> Event 88 + 0 trajectories stored in this event. +>>> Event 89 + 0 trajectories stored in this event. +>>> Event 90 + 0 trajectories stored in this event. +>>> Event 91 + 0 trajectories stored in this event. +>>> Event 92 + 0 trajectories stored in this event. +>>> Event 93 + 0 trajectories stored in this event. +>>> Event 94 + 0 trajectories stored in this event. +>>> Event 95 + 0 trajectories stored in this event. +>>> Event 96 + 0 trajectories stored in this event. +>>> Event 97 + 0 trajectories stored in this event. +>>> Event 98 + 0 trajectories stored in this event. +>>> Event 99 + 0 trajectories stored in this event. +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/visualization/userVisAction/vis.mac b/examples/extended/visualization/userVisAction/vis.mac new file mode 100644 index 0000000000..d5716f6005 --- /dev/null +++ b/examples/extended/visualization/userVisAction/vis.mac @@ -0,0 +1,37 @@ +# +# Macro file for the initialization phase of "exampleN02.cc" +# when runing in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/run/verbose 2 +# +# create empty scene +# +/vis/scene/create +/vis/scene/add/volume world +/vis/scene/add/userAction +/vis/scene/add/axes +/vis/scene/add/scale 1 m z +# +# Create a scene handler for a specific graphics system +# (Edit the next line(s) to choose another graphic system) +# +/vis/open OGLIX +# +####/vis/open DAWNFILE +# +# draw scene +# +/vis/viewer/set/viewpointThetaPhi 70 160 deg +/vis/viewer/flush +# +# for drawing the tracks +# (if too many tracks cause core dump => storeTrajectory 0) +/tracking/storeTrajectory 1 +/vis/scene/add/trajectories +# (if you prefer refreshing each event, comment out next line) +/vis/scene/endOfEventAction accumulate +# +/run/beamOn 10 diff --git a/examples/novice/N01/exampleN01.cc b/examples/novice/N01/exampleN01.cc index caa7c75ef1..cf470dc4c7 100644 --- a/examples/novice/N01/exampleN01.cc +++ b/examples/novice/N01/exampleN01.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN01.cc,v 1.4 2002/01/09 17:23:47 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N01/exampleN01.out b/examples/novice/N01/exampleN01.out index b3ca8b0b0b..b334393255 100644 --- a/examples/novice/N01/exampleN01.out +++ b/examples/novice/N01/exampleN01.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -11,22 +11,22 @@ Index : 0 used in the geometry : Yes recalculation needed : No Material : ArgonGas - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Range cuts : gamma 0 fm e- 0 fm e+ 0 fm + Energy thresholds : gamma -1 MeV e- -1 MeV e+ -1 MeV Region(s) which use this couple : DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No Material : Aluminum - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 6.88731 keV e- 596.68 keV e+ 568.011 keV + Range cuts : gamma 0 fm e- 0 fm e+ 0 fm + Energy thresholds : gamma -1 MeV e- -1 MeV e+ -1 MeV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes recalculation needed : No Material : Lead - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 100.511 keV e- 1.37814 MeV e+ 1.28002 MeV + Range cuts : gamma 0 fm e- 0 fm e+ 0 fm + Energy thresholds : gamma -1 MeV e- -1 MeV e+ -1 MeV Region(s) which use this couple : DefaultRegionForTheWorld @@ -222,5 +222,5 @@ Terminate current event processing. Run terminated. Run Summary Number of events processed : 3 - User=0.05s Real=0.12s Sys=0s + User=0.05s Real=0.08s Sys=0s G4 kernel has come to Quit state. diff --git a/examples/novice/N01/include/ExN01DetectorConstruction.hh b/examples/novice/N01/include/ExN01DetectorConstruction.hh index 80848d06d5..dc87c91f28 100644 --- a/examples/novice/N01/include/ExN01DetectorConstruction.hh +++ b/examples/novice/N01/include/ExN01DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN01DetectorConstruction.hh,v 1.5 2002/01/09 17:23:48 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN01DetectorConstruction_H diff --git a/examples/novice/N01/include/ExN01PhysicsList.hh b/examples/novice/N01/include/ExN01PhysicsList.hh index 14ebac1b3e..af17a17b60 100644 --- a/examples/novice/N01/include/ExN01PhysicsList.hh +++ b/examples/novice/N01/include/ExN01PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN01PhysicsList.hh,v 1.5 2002/01/09 17:23:48 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh b/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh index 13706cb316..efaae81581 100644 --- a/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh +++ b/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN01PrimaryGeneratorAction.hh,v 1.4 2002/01/09 17:23:48 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN01PrimaryGeneratorAction_h diff --git a/examples/novice/N01/src/ExN01DetectorConstruction.cc b/examples/novice/N01/src/ExN01DetectorConstruction.cc index 7e5364cc14..d3085bfc17 100644 --- a/examples/novice/N01/src/ExN01DetectorConstruction.cc +++ b/examples/novice/N01/src/ExN01DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN01DetectorConstruction.cc,v 1.8 2003/10/06 08:59:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN01DetectorConstruction.hh" diff --git a/examples/novice/N01/src/ExN01PhysicsList.cc b/examples/novice/N01/src/ExN01PhysicsList.cc index ba272362bb..d10a7116f2 100644 --- a/examples/novice/N01/src/ExN01PhysicsList.cc +++ b/examples/novice/N01/src/ExN01PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN01PhysicsList.cc,v 1.5 2002/01/09 17:23:48 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc b/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc index 54d1d89d64..25a732d283 100644 --- a/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc +++ b/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN01PrimaryGeneratorAction.cc,v 1.5 2002/05/14 01:50:31 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN01PrimaryGeneratorAction.hh" diff --git a/examples/novice/N02/exampleN02.cc b/examples/novice/N02/exampleN02.cc index fbc92b6488..e0ad96e4c3 100644 --- a/examples/novice/N02/exampleN02.cc +++ b/examples/novice/N02/exampleN02.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN02.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/exampleN02.out b/examples/novice/N02/exampleN02.out index 0303105f11..57d89dc073 100644 --- a/examples/novice/N02/exampleN02.out +++ b/examples/novice/N02/exampleN02.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -21,6 +21,8 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) +Registering model factories... + The materials defined are : @@ -55,13 +57,13 @@ conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV f msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -73,7 +75,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -87,7 +89,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -96,11 +98,9 @@ hIoni: tables are built for proton Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -msc: Model variant of multiple scattering for GenericIon - msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -138,7 +138,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -173,1917 +173,2192 @@ Index : 2 used in the geometry : Yes recalculation needed : No Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm -2.91 m 200 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 0 fm -2.86 m 200 MeV 7.67 keV 4.79 cm 4.79 cm World eIoni - 2 -326 mum 197 mum -2.45 m 200 MeV 110 keV 41.2 cm 46 cm World Transportation - 3 -325 mum 197 mum -2.45 m 198 MeV 132 keV 113 mum 46 cm Target eBrem - 4 -323 mum 209 mum -2.45 m 195 MeV 601 keV 487 mum 46.1 cm Target eBrem - 5 -317 mum 190 mum -2.45 m 192 MeV 1.88 MeV 1.22 mm 46.2 cm Target eBrem - 6 -302 mum 189 mum -2.45 m 161 MeV 540 keV 466 mum 46.2 cm Target eBrem - 7 -9.77 mum 447 mum -2.45 m 156 MeV 2.53 MeV 2.21 mm 46.4 cm Target eBrem - 8 -5.93 mum 454 mum -2.45 m 150 MeV 109 keV 80.2 mum 46.5 cm Target eBrem - 9 10.7 mum 473 mum -2.45 m 147 MeV 403 keV 291 mum 46.5 cm Target eBrem - 10 17.1 mum 560 mum -2.44 m 89.5 MeV 1.85 MeV 1.32 mm 46.6 cm Target eBrem - 11 30.2 mum 605 mum -2.44 m 87.1 MeV 1.25 MeV 324 mum 46.7 cm Target eBrem - 12 38.3 mum 692 mum -2.44 m 68.1 MeV 1.01 MeV 929 mum 46.7 cm Target eBrem - 13 17.9 mum 761 mum -2.44 m 65.7 MeV 361 keV 354 mum 46.8 cm Target eBrem - 14 1.52 mum 798 mum -2.44 m 65.1 MeV 197 keV 203 mum 46.8 cm Target eBrem - 15 -5.87 mum 809 mum -2.44 m 54.5 MeV 91.5 keV 61.2 mum 46.8 cm Target eBrem - 16 -47.4 mum 861 mum -2.44 m 53 MeV 288 keV 228 mum 46.8 cm Target eBrem - 17 -89.4 mum 922 mum -2.44 m 51 MeV 212 keV 210 mum 46.8 cm Target eBrem - 18 -288 mum 1.28 mm -2.44 m 46.6 MeV 3.12 MeV 2.6 mm 47.1 cm Target eBrem - 19 -383 mum 1.31 mm -2.44 m 41.2 MeV 295 keV 194 mum 47.1 cm Target eBrem - 20 -727 mum 1.43 mm -2.44 m 39.2 MeV 1.34 MeV 786 mum 47.2 cm Target eBrem - 21 -1.38 mm 1.61 mm -2.44 m 12.7 MeV 3.05 MeV 1.03 mm 47.3 cm Target eBrem - 22 -1.49 mm 1.63 mm -2.44 m 12.2 MeV 193 keV 182 mum 47.3 cm Target eBrem - 23 -2.54 mm 2.11 mm -2.44 m 2.75 MeV 3.26 MeV 1.28 mm 47.5 cm Target eBrem - 24 -2.86 mm 1.99 mm -2.44 m 0 eV 2.75 MeV 2.2 mm 47.7 cm Target eIoni - 25 -2.86 mm 1.99 mm -2.44 m 0 eV 0 eV 0 fm 47.7 cm Target annihil + 1 -30.5 mum 6.38 mum -2.86 m 200 MeV 8.35 keV 4.79 cm 4.79 cm World eIoni + 2 30.8 mum -495 mum -2.65 m 200 MeV 56.1 keV 21.4 cm 26.2 cm World eIoni + 3 410 mum -690 mum -2.45 m 200 MeV 45.9 keV 19.8 cm 46 cm World Transportation + 4 437 mum -707 mum -2.45 m 198 MeV 1.5 MeV 1.17 mm 46.1 cm Target eBrem + 5 438 mum -707 mum -2.45 m 161 MeV 42.8 keV 36.1 mum 46.1 cm Target eBrem + 6 439 mum -706 mum -2.45 m 156 MeV 5.69 keV 8.06 mum 46.1 cm Target eBrem + 7 558 mum -749 mum -2.45 m 153 MeV 2.29 MeV 1.98 mm 46.3 cm Target eBrem + 8 610 mum -749 mum -2.45 m 148 MeV 1.29 MeV 908 mum 46.4 cm Target eBrem + 9 609 mum -750 mum -2.45 m 147 MeV 174 keV 136 mum 46.4 cm Target eBrem + 10 611 mum -767 mum -2.45 m 146 MeV 519 keV 389 mum 46.5 cm Target eBrem + 11 650 mum -878 mum -2.44 m 140 MeV 4.36 MeV 1.51 mm 46.6 cm Target eBrem + 12 704 mum -944 mum -2.44 m 114 MeV 885 keV 837 mum 46.7 cm Target eBrem + 13 747 mum -972 mum -2.44 m 112 MeV 310 keV 315 mum 46.7 cm Target eBrem + 14 887 mum -1.03 mm -2.44 m 108 MeV 911 keV 755 mum 46.8 cm Target eBrem + 15 1.11 mm -1.22 mm -2.44 m 63.6 MeV 6.08 MeV 2.19 mm 47 cm Target eBrem + 16 1.19 mm -1.35 mm -2.44 m 60.9 MeV 723 keV 642 mum 47.1 cm Target eBrem + 17 1.04 mm -1.79 mm -2.44 m 57.4 MeV 3.06 MeV 2.48 mm 47.3 cm Target eBrem + 18 1.05 mm -1.79 mm -2.44 m 47.2 MeV 72.1 keV 43 mum 47.3 cm Target eBrem + 19 1.33 mm -2.2 mm -2.44 m 44.9 MeV 1.57 MeV 1.31 mm 47.5 cm Target eBrem + 20 1.35 mm -2.25 mm -2.44 m 42.9 MeV 208 keV 193 mum 47.5 cm Target eBrem + 21 1.27 mm -2.89 mm -2.43 m 36.7 MeV 4.13 MeV 3.42 mm 47.8 cm Target eBrem + 22 854 mum -3.62 mm -2.43 m 28.1 MeV 947 keV 876 mum 47.9 cm Target eBrem + 23 967 mum -3.98 mm -2.43 m 8.64 MeV 569 keV 443 mum 48 cm Target eBrem + 24 1.73 mm -4.18 mm -2.43 m 5.41 MeV 3.23 MeV 2.79 mm 48.2 cm Target eIoni + 25 3.01 mm -4.65 mm -2.43 m 1.54 MeV 2.27 MeV 2.07 mm 48.5 cm Target eBrem + 26 3 mm -4.98 mm -2.43 m 765 keV 774 keV 793 mum 48.5 cm Target eBrem + 27 3.05 mm -5.01 mm -2.43 m 0 eV 765 keV 527 mum 48.6 cm Target eIoni + 28 3.05 mm -5.01 mm -2.43 m 0 eV 0 eV 0 fm 48.6 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.05 mm -5.01 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.95 mm -4.7 mm -2.43 m 0 eV 88 keV 1.27 mm 1.27 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 26 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.95 mm -4.7 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.95 mm -4.71 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.86 mm 1.99 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.05 mm 2.84 mm -2.44 m 470 keV 0 eV 1.14 mm 1.14 mm Target compt - 2 -6.49 mm 6.52 mm -2.43 m 438 keV 0 eV 8.01 mm 9.15 mm Target compt - 3 -1.1 cm 7.57 mm -2.42 m 438 keV 88 keV 1.18 cm 2.09 cm Target phot + 0 3.05 mm -5.01 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.36 mm -5.59 mm -2.43 m 0 eV 88 keV 2.39 mm 2.39 mm Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 28, Parent ID = 25 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.1 cm 7.57 mm -2.42 m 350 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.1 cm 7.58 mm -2.42 m 0 eV 350 keV 185 mum 185 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 25 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.49 mm 6.52 mm -2.43 m 32 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.49 mm 6.52 mm -2.43 m 0 eV 32 keV 4.34 mum 4.34 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 25 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.05 mm 2.84 mm -2.44 m 41.4 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.05 mm 2.85 mm -2.44 m 0 eV 41.4 keV 6.6 mum 6.6 mum Target eIoni + 0 1.36 mm -5.59 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.35 mm -5.6 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.86 mm 1.99 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.35 mm -4.81 mm -2.44 m 372 keV 0 eV 9.01 mm 9.01 mm Target compt - 2 -1.13 mm -4.78 mm -2.44 m 372 keV 88 keV 661 mum 9.67 mm Target phot + 0 3.01 mm -4.65 mm -2.43 m 1.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.69 mm -9.99 mm -2.42 m 1.11 MeV 0 eV 7.44 mm 7.44 mm Target compt + 2 8.05 mm -1.61 cm -2.41 m 0 eV 88 keV 1.61 cm 2.36 cm Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 30, Parent ID = 24 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.13 mm -4.78 mm -2.44 m 284 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.13 mm -4.79 mm -2.44 m 0 eV 284 keV 137 mum 137 mum Target eIoni + 0 8.05 mm -1.61 cm -2.41 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.06 mm -1.61 cm -2.41 m 0 eV 1.02 MeV 735 mum 735 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 29, Parent ID = 24 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.35 mm -4.81 mm -2.44 m 139 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.35 mm -4.81 mm -2.44 m 0 eV 139 keV 46.9 mum 46.9 mum Target eIoni + 0 2.69 mm -9.99 mm -2.42 m 494 keV 0 eV 0 fm 0 fm Target initStep + 1 2.68 mm -1 cm -2.42 m 0 eV 494 keV 297 mum 297 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.54 mm 2.11 mm -2.44 m 6.17 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.86 cm -4.11 mm -2.43 m 4.53 MeV 0 eV 1.9 cm 1.9 cm Target compt - 2 -2.5 cm -4.89 mm -2.43 m 4.53 MeV 0 eV 6.79 mm 2.58 cm Target Transportation - 3 -9.98 cm -1.4 cm -2.4 m 4.53 MeV 0 eV 7.99 cm 10.6 cm World Transportation - 4 -2.4 m -29.4 cm -1.58 m 4.53 MeV 0 eV 2.46 m 2.56 m Tracker Transportation - 5 -2.91 m -35.6 cm -1.4 m 4.53 MeV 0 eV 54.5 cm 3.11 m OutOfWorld Transportation + 0 967 mum -3.98 mm -2.43 m 18.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.11 cm -1.74 cm -2.42 m 0 eV 0 eV 1.98 cm 1.98 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 32, Parent ID = 23 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.11 cm -1.74 cm -2.42 m 4.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.2 cm -1.76 cm -2.42 m 1.14 MeV 1.73 MeV 1.49 mm 1.49 mm Target eBrem + 2 1.21 cm -1.75 cm -2.42 m 0 eV 1.14 MeV 850 mum 2.34 mm Target eIoni + 3 1.21 cm -1.75 cm -2.42 m 0 eV 0 eV 0 fm 2.34 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 35, Parent ID = 32 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 cm -1.75 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 cm -1.66 cm -2.42 m 0 eV 88 keV 1.38 mm 1.38 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 35 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.14 cm -1.66 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 cm -1.66 cm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 34, Parent ID = 32 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 cm -1.75 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 cm -1.77 cm -2.42 m 178 keV 0 eV 221 mum 221 mum Target compt + 2 1.21 cm -1.77 cm -2.42 m 168 keV 0 eV 148 mum 369 mum Target compt + 3 1.22 cm -1.76 cm -2.42 m 0 eV 88 keV 272 mum 641 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 34 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 cm -1.76 cm -2.42 m 79.7 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 cm -1.76 cm -2.42 m 0 eV 79.7 keV 19.1 mum 19.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 34 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 cm -1.77 cm -2.42 m 10 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 cm -1.77 cm -2.42 m 0 eV 10 keV 702 nm 702 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 34 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 cm -1.77 cm -2.42 m 333 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 cm -1.77 cm -2.42 m 0 eV 333 keV 173 mum 173 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 32 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 cm -1.76 cm -2.42 m 1.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.38 cm -1.45 cm -2.42 m 223 keV 0 eV 6.5 mm 6.5 mm Target compt + 2 1.39 cm -1.47 cm -2.42 m 0 eV 88 keV 1.13 mm 7.64 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 33 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.39 cm -1.47 cm -2.42 m 135 keV 0 eV 0 fm 0 fm Target initStep + 1 1.39 cm -1.47 cm -2.42 m 0 eV 135 keV 44.5 mum 44.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 33 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.38 cm -1.45 cm -2.42 m 985 keV 0 eV 0 fm 0 fm Target initStep + 1 1.38 cm -1.45 cm -2.42 m 0 eV 985 keV 708 mum 708 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 31, Parent ID = 23 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.86 cm -4.11 mm -2.43 m 1.64 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.87 cm -4.2 mm -2.43 m 0 eV 1.64 MeV 1.26 mm 1.26 mm Target eIoni + 0 1.11 cm -1.74 cm -2.42 m 13.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.13 cm -1.76 cm -2.42 m 11.6 MeV 1.47 MeV 414 mum 414 mum Target eBrem + 2 1.12 cm -1.8 cm -2.42 m 9.91 MeV 1.72 MeV 1.53 mm 1.94 mm Target msc + 3 1.09 cm -1.81 cm -2.42 m 6.88 MeV 359 keV 317 mum 2.26 mm Target eBrem + 4 1.09 cm -1.81 cm -2.42 m 5.54 MeV 15.6 keV 18.4 mum 2.28 mm Target eBrem + 5 1.02 cm -1.78 cm -2.42 m 3.26 MeV 1.19 MeV 1.1 mm 3.38 mm Target eBrem + 6 9.95 mm -1.8 cm -2.42 m 0 eV 3.26 MeV 1.8 mm 5.18 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 31 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.02 cm -1.78 cm -2.42 m 1.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.16 mm -1.96 cm -2.42 m 0 eV 88 keV 2.74 mm 2.74 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 45 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.16 mm -1.96 cm -2.42 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.11 mm -1.96 cm -2.42 m 0 eV 1.01 MeV 726 mum 726 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 31 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 cm -1.81 cm -2.42 m 1.33 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.65 mm -1.99 cm -2.42 m 0 eV 88 keV 7.46 mm 7.46 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 44 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.65 mm -1.99 cm -2.42 m 1.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.58 mm -1.99 cm -2.42 m 575 keV 240 keV 230 mum 230 mum Target eBrem + 2 3.56 mm -1.99 cm -2.42 m 0 eV 575 keV 363 mum 593 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 48, Parent ID = 47 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.58 mm -1.99 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.32 mm -2 cm -2.42 m 268 keV 0 eV 326 mum 326 mum Target compt + 2 1.8 mm -1.77 cm -2.42 m 0 eV 88 keV 3.13 mm 3.45 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 48 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.8 mm -1.77 cm -2.42 m 180 keV 0 eV 0 fm 0 fm Target initStep + 1 1.81 mm -1.77 cm -2.42 m 0 eV 180 keV 69.9 mum 69.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 48 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.32 mm -2 cm -2.42 m 154 keV 0 eV 0 fm 0 fm Target initStep + 1 3.32 mm -2 cm -2.42 m 0 eV 154 keV 54.9 mum 54.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 31 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 cm -1.81 cm -2.42 m 2.67 MeV 0 eV 0 fm 0 fm Target initStep + 1 1 cm -1.82 cm -2.42 m 251 keV 0 eV 898 mum 898 mum Target compt + 2 1.01 cm -1.82 cm -2.42 m 0 eV 88 keV 110 mum 1.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 43 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.01 cm -1.82 cm -2.42 m 163 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 cm -1.82 cm -2.42 m 0 eV 163 keV 59.6 mum 59.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 43 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1 cm -1.82 cm -2.42 m 2.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.71 mm -1.79 cm -2.42 m 132 keV 2.29 MeV 1.56 mm 1.56 mm Target eIoni + 2 9.72 mm -1.79 cm -2.42 m 0 eV 132 keV 42.9 mum 1.6 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 31 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.13 cm -1.76 cm -2.42 m 661 keV 0 eV 0 fm 0 fm Target initStep + 1 1.33 cm -2.14 cm -2.41 m 596 keV 0 eV 7.3 mm 7.3 mm Target compt + 2 1.36 cm -2.18 cm -2.41 m 0 eV 88 keV 562 mum 7.87 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 42 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.36 cm -2.18 cm -2.41 m 508 keV 0 eV 0 fm 0 fm Target initStep + 1 1.36 cm -2.18 cm -2.41 m 0 eV 508 keV 309 mum 309 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 42 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.33 cm -2.14 cm -2.41 m 64.8 keV 0 eV 0 fm 0 fm Target initStep + 1 1.33 cm -2.14 cm -2.41 m 0 eV 64.8 keV 13.7 mum 13.7 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.49 mm 1.63 mm -2.44 m 292 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.13 mm 1.76 mm -2.44 m 246 keV 0 eV 884 mum 884 mum Target compt - 2 -2.15 mm 1.76 mm -2.44 m 246 keV 88 keV 19.9 mum 904 mum Target phot + 0 854 mum -3.62 mm -2.43 m 7.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.63 mm -6.73 mm -2.43 m 0 eV 0 eV 3.95 mm 3.95 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 22 +* G4Track Information: Particle = e+, Track ID = 56, Parent ID = 22 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.15 mm 1.76 mm -2.44 m 158 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.15 mm 1.76 mm -2.44 m 0 eV 158 keV 57 mum 57 mum Target eIoni + 0 1.63 mm -6.73 mm -2.43 m 2.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.41 mm -7.26 mm -2.43 m 465 keV 1.92 MeV 1.45 mm 1.45 mm Target eBrem + 2 1.43 mm -7.27 mm -2.43 m 0 eV 465 keV 273 mum 1.72 mm Target eIoni + 3 1.43 mm -7.27 mm -2.43 m 0 eV 0 eV 0 fm 1.72 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 22 +* G4Track Information: Particle = gamma, Track ID = 58, Parent ID = 56 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.13 mm 1.76 mm -2.44 m 45.7 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.13 mm 1.76 mm -2.44 m 0 eV 45.7 keV 7.76 mum 7.76 mum Target eIoni + 0 1.43 mm -7.27 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -814 mum 3.09 mm -2.43 m 189 keV 0 eV 1.14 cm 1.14 cm Target compt + 2 -1.01 mm 2.42 mm -2.43 m 0 eV 88 keV 1.5 mm 1.29 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 58 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.01 mm 2.42 mm -2.43 m 101 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.01 mm 2.42 mm -2.43 m 0 eV 101 keV 27.9 mum 27.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 58 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -814 mum 3.09 mm -2.43 m 322 keV 0 eV 0 fm 0 fm Target initStep + 1 -816 mum 3.09 mm -2.43 m 0 eV 322 keV 165 mum 165 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 57, Parent ID = 56 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.43 mm -7.27 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.52 mm -7.7 mm -2.43 m 0 eV 88 keV 468 mum 468 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 57 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.52 mm -7.7 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.53 mm -7.69 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.63 mm -6.73 mm -2.43 m 4.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.69 mm -6.88 mm -2.43 m 3.12 MeV 708 keV 531 mum 531 mum Target eBrem + 2 2.29 mm -7 mm -2.43 m 378 keV 2.01 MeV 1.44 mm 1.97 mm Target eBrem + 3 2.3 mm -6.99 mm -2.43 m 0 eV 378 keV 207 mum 2.18 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 63, Parent ID = 55 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.29 mm -7 mm -2.43 m 734 keV 0 eV 0 fm 0 fm Target initStep + 1 2.49 mm -7.42 mm -2.43 m 0 eV 88 keV 732 mum 732 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 63 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.49 mm -7.42 mm -2.43 m 646 keV 0 eV 0 fm 0 fm Target initStep + 1 2.48 mm -7.44 mm -2.43 m 0 eV 646 keV 421 mum 421 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 62, Parent ID = 55 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.69 mm -6.88 mm -2.43 m 451 keV 0 eV 0 fm 0 fm Target initStep + 1 4.37 mm -1.47 cm -2.43 m 0 eV 88 keV 8.97 mm 8.97 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 62 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.37 mm -1.47 cm -2.43 m 363 keV 0 eV 0 fm 0 fm Target initStep + 1 4.37 mm -1.47 cm -2.43 m 0 eV 363 keV 195 mum 195 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.38 mm 1.61 mm -2.44 m 23.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.43 cm 3.57 mm -2.41 m 23.5 MeV 0 eV 3.42 cm 3.42 cm Target conv + 0 1.27 mm -2.89 mm -2.43 m 2.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 -869 mum -6 mm -2.43 m 0 eV 88 keV 4.01 mm 4.01 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 35, Parent ID = 21 +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 21 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.43 cm 3.57 mm -2.41 m 3.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.45 cm 3.4 mm -2.41 m 2.86 MeV 473 keV 438 mum 438 mum Target eBrem - 2 -2.46 cm 3.77 mm -2.41 m 0 eV 2.86 MeV 2.29 mm 2.72 mm Target eIoni - 3 -2.46 cm 3.77 mm -2.41 m 0 eV 0 eV 0 fm 2.72 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 38, Parent ID = 35 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.46 cm 3.77 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm 3.14 mm -2.41 m 511 keV 0 eV 790 mum 790 mum Target Transportation - 2 -58.4 cm -95.2 cm -2.91 m 511 keV 0 eV 1.21 m 1.21 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 35 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.46 cm 3.77 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.15 cm 9.17 mm -2.41 m 200 keV 0 eV 6.87 mm 6.87 mm Target compt - 2 -2.18 cm 8.81 mm -2.41 m 200 keV 88 keV 606 mum 7.48 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 37 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.18 cm 8.81 mm -2.41 m 112 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.18 cm 8.81 mm -2.41 m 0 eV 112 keV 33.4 mum 33.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 37 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.15 cm 9.17 mm -2.41 m 311 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.15 cm 9.18 mm -2.41 m 0 eV 311 keV 156 mum 156 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 36, Parent ID = 35 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.45 cm 3.4 mm -2.41 m 561 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm 4.18 mm -2.41 m 561 keV 0 eV 927 mum 927 mum Target Transportation - 2 -21.8 cm 29.5 cm -2.4 m 561 keV 0 eV 34.9 cm 35 cm World Transportation - 3 -1.61 m 2.4 m -2.31 m 561 keV 0 eV 2.53 m 2.88 m Tracker Transportation - 4 -1.95 m 2.91 m -2.29 m 561 keV 0 eV 61.2 cm 3.49 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 21 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.43 cm 3.57 mm -2.41 m 18.6 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.44 cm 3.57 mm -2.41 m 5.16 MeV 47.3 keV 34.1 mum 34.1 mum Target eBrem - 2 -2.49 cm 3.44 mm -2.41 m 823 keV 3.74 MeV 2.56 mm 2.59 mm Target eBrem - 3 -2.49 cm 3.44 mm -2.41 m 246 keV 577 keV 474 mum 3.07 mm Target eBrem - 4 -2.49 cm 3.44 mm -2.41 m 0 eV 246 keV 111 mum 3.18 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 42, Parent ID = 34 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.49 cm 3.44 mm -2.41 m 596 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm 3.46 mm -2.41 m 596 keV 0 eV 153 mum 153 mum Target Transportation - 2 -3.32 cm 5.31 mm -2.4 m 596 keV 0 eV 1.44 cm 1.46 cm World Transportation - 3 -2.4 m 53.9 cm 96.6 cm 596 keV 0 eV 4.15 m 4.16 m Tracker Transportation - 4 -2.91 m 65.4 cm 1.69 m 596 keV 0 eV 89.4 cm 5.06 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 34 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.44 cm 3.57 mm -2.41 m 13.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm 3.5 mm -2.41 m 13.3 MeV 0 eV 975 mum 975 mum Target Transportation - 2 -3.52 cm 2.31 mm -2.4 m 13.3 MeV 0 eV 1.54 cm 1.64 cm World Transportation - 3 -2.4 m -27.4 cm 26.6 cm 13.3 MeV 0 eV 3.57 m 3.59 m Tracker Transportation - 4 -2.91 m -33.4 cm 84.2 cm 13.3 MeV 0 eV 77.1 cm 4.36 m OutOfWorld Transportation + 0 -869 mum -6 mm -2.43 m 1.99 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.02 mm -6.13 mm -2.43 m 255 keV 1.74 MeV 1.39 mm 1.39 mm Target eIoni + 2 -1.01 mm -6.12 mm -2.43 m 0 eV 255 keV 117 mum 1.51 mm Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -727 mum 1.43 mm -2.44 m 686 keV 0 eV 0 fm 0 fm Target initStep - 1 -933 mum 1.51 mm -2.44 m 686 keV 88 keV 370 mum 370 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -933 mum 1.51 mm -2.44 m 598 keV 0 eV 0 fm 0 fm Target initStep - 1 -940 mum 1.53 mm -2.44 m 0 eV 598 keV 382 mum 382 mum Target eIoni + 0 1.35 mm -2.25 mm -2.44 m 1.76 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.65 mm -1.29 cm -2.4 m 1.76 MeV 0 eV 3.78 cm 3.78 cm Target Transportation + 2 38.5 cm -49.5 cm -80 cm 1.76 MeV 0 eV 1.71 m 1.75 m Tracker Transportation + 3 43.2 cm -55.6 cm -60 cm 1.76 MeV 0 eV 21.4 cm 1.96 m Chamber Transportation + 4 57.3 cm -73.6 cm 0 fm 1.76 MeV 0 eV 64.2 cm 2.61 m Tracker Transportation + 5 62 cm -79.7 cm 20 cm 1.76 MeV 0 eV 21.4 cm 2.82 m Chamber Transportation + 6 76.1 cm -97.8 cm 80 cm 1.76 MeV 0 eV 64.2 cm 3.46 m Tracker Transportation + 7 80.8 cm -1.04 m 1 m 1.76 MeV 0 eV 21.4 cm 3.68 m Chamber Transportation + 8 94.9 cm -1.22 m 1.6 m 1.76 MeV 0 eV 64.2 cm 4.32 m Tracker Transportation + 9 99.6 cm -1.28 m 1.8 m 1.76 MeV 0 eV 21.4 cm 4.53 m Chamber Transportation + 10 1.14 m -1.46 m 2.4 m 1.76 MeV 0 eV 64.2 cm 5.18 m Tracker Transportation + 11 1.26 m -1.61 m 2.91 m 1.76 MeV 0 eV 54.6 cm 5.72 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -383 mum 1.31 mm -2.44 m 5.13 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm 9.65 mm -2.4 m 5.13 MeV 0 eV 4.68 cm 4.68 cm Target Transportation - 2 -2.4 m 81.6 cm 1.36 m 5.13 MeV 0 eV 4.52 m 4.57 m Tracker Transportation - 3 -2.91 m 98.9 cm 2.17 m 5.13 MeV 0 eV 97.1 cm 5.54 m OutOfWorld Transportation + 0 1.33 mm -2.2 mm -2.44 m 694 keV 0 eV 0 fm 0 fm Target initStep + 1 1.45 mm -2.39 mm -2.43 m 363 keV 0 eV 798 mum 798 mum Target compt + 2 4.24 mm -3.36 mm -2.43 m 0 eV 88 keV 2.97 mm 3.77 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 68, Parent ID = 19 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.24 mm -3.36 mm -2.43 m 275 keV 0 eV 0 fm 0 fm Target initStep + 1 4.24 mm -3.35 mm -2.43 m 0 eV 275 keV 132 mum 132 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 19 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.45 mm -2.39 mm -2.43 m 331 keV 0 eV 0 fm 0 fm Target initStep + 1 1.45 mm -2.39 mm -2.43 m 0 eV 331 keV 171 mum 171 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -288 mum 1.28 mm -2.44 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.93 mm 1.83 mm -2.44 m 713 keV 0 eV 3.33 mm 3.33 mm Target compt - 2 -5.28 mm -692 mum -2.43 m 713 keV 88 keV 4.99 mm 8.32 mm Target phot + 0 1.05 mm -1.79 mm -2.44 m 10.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.29 mm -2.27 mm -2.43 m 0 eV 0 eV 1.98 mm 1.98 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 18 +* G4Track Information: Particle = e+, Track ID = 70, Parent ID = 18 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.28 mm -692 mum -2.43 m 625 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.27 mm -697 mum -2.43 m 0 eV 625 keV 404 mum 404 mum Target eIoni + 0 1.29 mm -2.27 mm -2.43 m 5.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 980 mum -2.36 mm -2.43 m 3.2 MeV 1.41 MeV 841 mum 841 mum Target eBrem + 2 987 mum -2.47 mm -2.43 m 1.94 MeV 196 keV 165 mum 1.01 mm Target eBrem + 3 1.29 mm -2.42 mm -2.43 m 688 keV 1.25 MeV 1.38 mm 2.39 mm Target eIoni + 4 1.26 mm -2.39 mm -2.43 m 0 eV 688 keV 461 mum 2.85 mm Target eIoni + 5 1.26 mm -2.39 mm -2.43 m 0 eV 0 eV 0 fm 2.85 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 18 +* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 70 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.93 mm 1.83 mm -2.44 m 482 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.93 mm 1.85 mm -2.44 m 0 eV 482 keV 288 mum 288 mum Target eIoni + 0 1.26 mm -2.39 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 7.47 mm -1 cm -2.43 m 329 keV 0 eV 9.89 mm 9.89 mm Target compt + 2 8.11 mm -9.9 mm -2.43 m 0 eV 88 keV 662 mum 1.06 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 74 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -89.4 mum 922 mum -2.44 m 1.86 MeV 0 eV 0 fm 0 fm Target initStep - 1 -4.82 mm 9.75 mm -2.41 m 1.69 MeV 0 eV 3.16 cm 3.16 cm Target compt - 2 -5.4 mm 1.06 cm -2.4 m 1.69 MeV 0 eV 1.17 cm 4.33 cm Target Transportation - 3 -4.54 cm 6.6 cm -1.6 m 1.69 MeV 0 eV 80.3 cm 84.6 cm Tracker Transportation - 4 -5.55 cm 7.99 cm -1.4 m 1.69 MeV 0 eV 20.1 cm 1.05 m Chamber Transportation - 5 -8.55 cm 12.1 cm -80 cm 1.69 MeV 0 eV 60.2 cm 1.65 m Tracker Transportation - 6 -9.55 cm 13.5 cm -60 cm 1.69 MeV 0 eV 20.1 cm 1.85 m Chamber Transportation - 7 -12.6 cm 17.7 cm 0.114 fm 1.69 MeV 0 eV 60.2 cm 2.45 m Tracker Transportation - 8 -13.6 cm 19.1 cm 20 cm 1.69 MeV 0 eV 20.1 cm 2.65 m Chamber Transportation - 9 -16.6 cm 23.2 cm 80 cm 1.69 MeV 0 eV 60.2 cm 3.25 m Tracker Transportation - 10 -17.6 cm 24.6 cm 1 m 1.69 MeV 0 eV 20.1 cm 3.46 m Chamber Transportation - 11 -20.6 cm 28.8 cm 1.6 m 1.69 MeV 0 eV 60.2 cm 4.06 m Tracker Transportation - 12 -21.6 cm 30.2 cm 1.8 m 1.69 MeV 0 eV 20.1 cm 4.26 m Chamber Transportation - 13 -24.6 cm 34.3 cm 2.4 m 1.69 MeV 0 eV 60.2 cm 4.86 m Tracker Transportation - 14 -27.1 cm 37.9 cm 2.91 m 1.69 MeV 0 eV 51.2 cm 5.37 m OutOfWorld Transportation + 0 8.11 mm -9.9 mm -2.43 m 241 keV 0 eV 0 fm 0 fm Target initStep + 1 8.1 mm -9.91 mm -2.43 m 0 eV 241 keV 108 mum 108 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 17 +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 74 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.82 mm 9.75 mm -2.41 m 174 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.82 mm 9.75 mm -2.41 m 0 eV 174 keV 66.5 mum 66.5 mum Target eIoni + 0 7.47 mm -1 cm -2.43 m 182 keV 0 eV 0 fm 0 fm Target initStep + 1 7.47 mm -1 cm -2.43 m 0 eV 182 keV 70.8 mum 70.8 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 70 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -47.4 mum 861 mum -2.44 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.59 mm 4.01 mm -2.43 m 247 keV 0 eV 1.27 cm 1.27 cm Target compt - 2 -2.09 mm 4.69 mm -2.43 m 247 keV 88 keV 1.24 mm 1.4 cm Target phot + 0 1.26 mm -2.39 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.16 mm 3.04 mm -2.43 m 306 keV 0 eV 7.05 mm 7.05 mm Target compt + 2 -1.88 mm 5.04 mm -2.43 m 0 eV 88 keV 2.54 mm 9.59 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 16 +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 73 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.09 mm 4.69 mm -2.43 m 159 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.09 mm 4.69 mm -2.43 m 0 eV 159 keV 57.2 mum 57.2 mum Target eIoni + 0 -1.88 mm 5.04 mm -2.43 m 218 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.88 mm 5.04 mm -2.43 m 0 eV 218 keV 93.1 mum 93.1 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 16 +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 73 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.59 mm 4.01 mm -2.43 m 943 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.6 mm 4.02 mm -2.43 m 0 eV 943 keV 672 mum 672 mum Target eIoni + 0 -3.16 mm 3.04 mm -2.43 m 205 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.16 mm 3.04 mm -2.43 m 0 eV 205 keV 85 mum 85 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 70 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.87 mum 809 mum -2.44 m 10.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.8 mm 4.53 mm -2.42 m 10.5 MeV 0 eV 1.84 cm 1.84 cm Target conv + 0 987 mum -2.47 mm -2.43 m 1.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.46 mm -1.08 cm -2.42 m 0 eV 88 keV 1.78 cm 1.78 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 50, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 72 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.8 mm 4.53 mm -2.42 m 5.28 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.01 mm 4.68 mm -2.42 m 0 eV 5.28 MeV 4.15 mm 4.15 mm Target eIoni - 2 -3.01 mm 4.68 mm -2.42 m 0 eV 0 eV 0 fm 4.15 mm Target annihil + 0 2.46 mm -1.08 cm -2.42 m 980 keV 0 eV 0 fm 0 fm Target initStep + 1 2.48 mm -1.08 cm -2.42 m 0 eV 980 keV 704 mum 704 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 52, Parent ID = 50 +* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 70 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.01 mm 4.68 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.48 mm -2.54 mm -2.42 m 511 keV 88 keV 7.44 mm 7.44 mm Target phot + 0 980 mum -2.36 mm -2.43 m 1.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.57 mm -8.26 mm -2.43 m 409 keV 0 eV 1.22 cm 1.22 cm Target compt + 2 -7.58 mm -8.11 mm -2.43 m 339 keV 0 eV 2.16 mm 1.43 cm Target compt + 3 -1.19 cm -3.13 mm -2.43 m 289 keV 0 eV 8 mm 2.23 cm Target compt + 4 -1.15 cm -831 mum -2.43 m 0 eV 88 keV 2.62 mm 2.5 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 52 +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 71 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.48 mm -2.54 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.48 mm -2.55 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 -1.15 cm -831 mum -2.43 m 201 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.15 cm -826 mum -2.43 m 0 eV 201 keV 82.1 mum 82.1 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 51, Parent ID = 50 +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 71 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.01 mm 4.68 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.9 mm 5.23 mm -2.42 m 225 keV 0 eV 559 mum 559 mum Target compt - 2 -2.52 mm 5.01 mm -2.42 m 225 keV 88 keV 920 mum 1.48 mm Target phot + 0 -1.19 cm -3.13 mm -2.43 m 50.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.19 cm -3.13 mm -2.43 m 0 eV 50.7 keV 9.15 mum 9.15 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 51 +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 71 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.52 mm 5.01 mm -2.42 m 137 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.52 mm 5.01 mm -2.42 m 0 eV 137 keV 45.8 mum 45.8 mum Target eIoni + 0 -7.58 mm -8.11 mm -2.43 m 69.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.58 mm -8.12 mm -2.43 m 0 eV 69.7 keV 15.5 mum 15.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 51 +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 71 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.9 mm 5.23 mm -2.42 m 286 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.9 mm 5.23 mm -2.42 m 0 eV 286 keV 139 mum 139 mum Target eIoni + 0 -5.57 mm -8.26 mm -2.43 m 666 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.57 mm -8.28 mm -2.43 m 0 eV 666 keV 438 mum 438 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 69, Parent ID = 18 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.8 mm 4.53 mm -2.42 m 4.21 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.49 mm 4.93 mm -2.42 m 1.33 MeV 2.44 MeV 1.04 mm 1.04 mm Target eBrem - 2 -3.51 mm 4.86 mm -2.42 m 0 eV 1.33 MeV 996 mum 2.04 mm Target eIoni + 0 1.29 mm -2.27 mm -2.43 m 3.51 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.13 mm -2.04 mm -2.43 m 1.24 MeV 2.27 MeV 1.86 mm 1.86 mm Target eIoni + 2 1.03 mm -2.09 mm -2.43 m 656 keV 174 keV 174 mum 2.04 mm Target eBrem + 3 1.01 mm -2.08 mm -2.43 m 0 eV 656 keV 430 mum 2.47 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 49 +* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 69 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.49 mm 4.93 mm -2.42 m 442 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.92 mm 2.86 mm -2.42 m 442 keV 88 keV 3.79 mm 3.79 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.92 mm 2.86 mm -2.42 m 354 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.93 mm 2.86 mm -2.42 m 0 eV 354 keV 188 mum 188 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.52 mum 798 mum -2.44 m 396 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.06 mm 2.25 mm -2.43 m 396 keV 88 keV 7.39 mm 7.39 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 14 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.06 mm 2.25 mm -2.43 m 308 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.06 mm 2.25 mm -2.43 m 0 eV 308 keV 154 mum 154 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 17.9 mum 761 mum -2.44 m 2.01 MeV 0 eV 0 fm 0 fm Target initStep - 1 -942 mum 2.37 mm -2.43 m 242 keV 0 eV 8.64 mm 8.64 mm Target compt - 2 -718 mum 2.32 mm -2.43 m 242 keV 88 keV 370 mum 9.01 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 13 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -718 mum 2.32 mm -2.43 m 154 keV 0 eV 0 fm 0 fm Target initStep - 1 -721 mum 2.32 mm -2.43 m 0 eV 154 keV 54.7 mum 54.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 13 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -942 mum 2.37 mm -2.43 m 1.77 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.12 mm 2.83 mm -2.43 m 876 keV 890 keV 788 mum 788 mum Target eBrem - 2 -1.14 mm 2.83 mm -2.43 m 390 keV 175 keV 95.9 mum 884 mum Target eBrem - 3 -1.12 mm 2.84 mm -2.43 m 0 eV 390 keV 215 mum 1.1 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 61, Parent ID = 59 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.14 mm 2.83 mm -2.43 m 311 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.07 mm 2.86 mm -2.43 m 311 keV 88 keV 70 mum 70 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 61 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.07 mm 2.86 mm -2.43 m 223 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.07 mm 2.86 mm -2.43 m 0 eV 223 keV 96.5 mum 96.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 38.3 mum 692 mum -2.44 m 18 MeV 0 eV 0 fm 0 fm Target initStep - 1 -610 mum 2.07 mm -2.43 m 18 MeV 0 eV 8.97 mm 8.97 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 64, Parent ID = 12 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -610 mum 2.07 mm -2.43 m 12.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 -704 mum 2.23 mm -2.43 m 11.7 MeV 547 keV 546 mum 546 mum Target eBrem - 2 -636 mum 2.68 mm -2.43 m 10.6 MeV 711 keV 673 mum 1.22 mm Target eBrem - 3 -495 mum 3.15 mm -2.43 m 9.91 MeV 721 keV 636 mum 1.86 mm Target eBrem - 4 350 mum 2.92 mm -2.43 m 7.78 MeV 1.73 MeV 1.21 mm 3.06 mm Target eBrem - 5 358 mum 2.61 mm -2.43 m 4.45 MeV 440 keV 356 mum 3.42 mm Target eBrem - 6 789 mum 2.65 mm -2.43 m 1.58 MeV 1.51 MeV 1.58 mm 5.01 mm Target eBrem - 7 610 mum 2.91 mm -2.43 m 479 keV 421 keV 435 mum 5.44 mm Target eBrem - 8 589 mum 2.88 mm -2.43 m 0 eV 479 keV 285 mum 5.73 mm Target eIoni - 9 589 mum 2.88 mm -2.43 m 0 eV 0 eV 0 fm 5.73 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 589 mum 2.88 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.48 mm 4.32 mm -2.43 m 232 keV 0 eV 3.73 mm 3.73 mm Target compt - 2 -3.4 mm 3.6 mm -2.43 m 232 keV 88 keV 2.76 mm 6.49 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.4 mm 3.6 mm -2.43 m 143 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.4 mm 3.6 mm -2.43 m 0 eV 143 keV 49.1 mum 49.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.48 mm 4.32 mm -2.43 m 279 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.48 mm 4.32 mm -2.43 m 0 eV 279 keV 134 mum 134 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 589 mum 2.88 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 9.53 mm -1.29 mm -2.43 m 511 keV 88 keV 1.09 cm 1.09 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 71 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.53 mm -1.29 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 9.54 mm -1.31 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 610 mum 2.91 mm -2.43 m 678 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 cm -9.74 mm -2.43 m 678 keV 88 keV 1.75 cm 1.75 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 70 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.11 cm -9.74 mm -2.43 m 590 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 cm -9.76 mm -2.43 m 0 eV 590 keV 375 mum 375 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 789 mum 2.65 mm -2.43 m 1.36 MeV 0 eV 0 fm 0 fm Target initStep - 1 680 mum 2.85 mm -2.43 m 1.08 MeV 0 eV 231 mum 231 mum Target compt - 2 -2.43 mm 5.58 mm -2.43 m 410 keV 0 eV 4.15 mm 4.38 mm Target compt - 3 -2.85 mm 6.33 mm -2.42 m 410 keV 88 keV 5.8 mm 1.02 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.85 mm 6.33 mm -2.42 m 322 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.84 mm 6.33 mm -2.42 m 0 eV 322 keV 164 mum 164 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.43 mm 5.58 mm -2.43 m 665 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.45 mm 5.6 mm -2.43 m 0 eV 665 keV 438 mum 438 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 680 mum 2.85 mm -2.43 m 288 keV 0 eV 0 fm 0 fm Target initStep - 1 682 mum 2.85 mm -2.43 m 0 eV 288 keV 140 mum 140 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 358 mum 2.61 mm -2.43 m 2.89 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.53 mm -4.75 mm -2.43 m 2.72 MeV 0 eV 8.35 mm 8.35 mm Target compt - 2 5 mm -1.03 cm -2.42 m 2.72 MeV 0 eV 6.83 mm 1.52 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 82, Parent ID = 68 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5 mm -1.03 cm -2.42 m 295 keV 0 eV 0 fm 0 fm Target initStep - 1 5.01 mm -1.03 cm -2.42 m 0 eV 295 keV 142 mum 142 mum Target eIoni - 2 5.01 mm -1.03 cm -2.42 m 0 eV 0 eV 0 fm 142 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 82 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.01 mm -1.03 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 5.34 mm -1.06 cm -2.42 m 511 keV 88 keV 444 mum 444 mum Target phot + 0 1.03 mm -2.09 mm -2.43 m 409 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.1 mm 8.53 mm -2.44 m 0 eV 88 keV 1.22 cm 1.22 cm Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 85, Parent ID = 84 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.34 mm -1.06 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 5.35 mm -1.06 cm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 -4.1 mm 8.53 mm -2.44 m 321 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.09 mm 8.54 mm -2.44 m 0 eV 321 keV 163 mum 163 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 83, Parent ID = 82 +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.01 mm -1.03 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.07 mm -6.63 mm -2.42 m 511 keV 88 keV 5.36 mm 5.36 mm Target phot + 0 1.04 mm -1.79 mm -2.44 m 432 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm -1.97 mm -2.44 m 349 keV 0 eV 815 mum 815 mum Target compt + 2 1.14 mm -1.97 mm -2.44 m 0 eV 88 keV 19.3 mum 834 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 83 +* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 17 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.07 mm -6.63 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 1.06 mm -6.62 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 1.14 mm -1.97 mm -2.44 m 261 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm -1.96 mm -2.44 m 0 eV 261 keV 122 mum 122 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 68 +* G4Track Information: Particle = e-, Track ID = 86, Parent ID = 17 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5 mm -1.03 cm -2.42 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 4.91 mm -1.03 cm -2.42 m 245 keV 567 keV 372 mum 372 mum Target eBrem - 2 4.91 mm -1.03 cm -2.42 m 0 eV 245 keV 110 mum 482 mum Target eIoni + 0 1.15 mm -1.97 mm -2.44 m 83.2 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm -1.97 mm -2.44 m 0 eV 83.2 keV 20.6 mum 20.6 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 87, Parent ID = 81 +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.91 mm -1.03 cm -2.42 m 590 keV 0 eV 0 fm 0 fm Target initStep - 1 4.62 mm -8.42 mm -2.43 m 215 keV 0 eV 2.85 mm 2.85 mm Target compt - 2 6.99 mm -7.47 mm -2.42 m 215 keV 88 keV 4.39 mm 7.24 mm Target phot + 0 1.19 mm -1.35 mm -2.44 m 1.98 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.76 mm -3.39 mm -2.43 m 1.12 MeV 0 eV 1.1 cm 1.1 cm Target compt + 2 1.71 mm -2.7 mm -2.43 m 329 keV 0 eV 1.6 mm 1.26 cm Target compt + 3 4.3 mm -4.18 mm -2.43 m 0 eV 88 keV 3.02 mm 1.56 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 87 +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 16 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.99 mm -7.47 mm -2.42 m 127 keV 0 eV 0 fm 0 fm Target initStep - 1 6.99 mm -7.47 mm -2.42 m 0 eV 127 keV 40.5 mum 40.5 mum Target eIoni + 0 4.3 mm -4.18 mm -2.43 m 241 keV 0 eV 0 fm 0 fm Target initStep + 1 4.3 mm -4.18 mm -2.43 m 0 eV 241 keV 108 mum 108 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 87 +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 16 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.62 mm -8.42 mm -2.43 m 374 keV 0 eV 0 fm 0 fm Target initStep - 1 4.62 mm -8.41 mm -2.43 m 0 eV 374 keV 204 mum 204 mum Target eIoni + 0 1.71 mm -2.7 mm -2.43 m 789 keV 0 eV 0 fm 0 fm Target initStep + 1 1.7 mm -2.68 mm -2.43 m 0 eV 789 keV 542 mum 542 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 68 +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 16 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.53 mm -4.75 mm -2.43 m 168 keV 0 eV 0 fm 0 fm Target initStep - 1 2.53 mm -4.76 mm -2.43 m 0 eV 168 keV 62.8 mum 62.8 mum Target eIoni + 0 1.76 mm -3.39 mm -2.43 m 866 keV 0 eV 0 fm 0 fm Target initStep + 1 1.76 mm -3.42 mm -2.43 m 0 eV 866 keV 607 mum 607 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 64 +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 350 mum 2.92 mm -2.43 m 403 keV 0 eV 0 fm 0 fm Target initStep - 1 298 mum 2.31 mm -2.43 m 372 keV 0 eV 818 mum 818 mum Target compt - 2 -3.42 mm -2.06 mm -2.42 m 372 keV 88 keV 9.17 mm 9.98 mm Target phot + 0 1.11 mm -1.22 mm -2.44 m 38.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.12 mm -1.25 mm -2.44 m 0 eV 0 eV 188 mum 188 mum Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 67 +* G4Track Information: Particle = e+, Track ID = 92, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.42 mm -2.06 mm -2.42 m 284 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.42 mm -2.07 mm -2.42 m 0 eV 284 keV 138 mum 138 mum Target eIoni + 0 1.12 mm -1.25 mm -2.44 m 22.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm -898 mum -2.44 m 18.6 MeV 3.25 MeV 2.36 mm 2.36 mm Target eBrem + 2 -1.03 mm 1.16 mm -2.44 m 14.5 MeV 4.1 MeV 3.56 mm 5.92 mm Target msc + 3 -1.63 mm 1.4 mm -2.44 m 13.8 MeV 768 keV 663 mum 6.59 mm Target eBrem + 4 -2.78 mm 1.13 mm -2.44 m 11.6 MeV 1.33 MeV 1.25 mm 7.84 mm Target eBrem + 5 -3.29 mm 835 mum -2.44 m 9.59 MeV 917 keV 820 mum 8.66 mm Target eBrem + 6 -3.34 mm 758 mum -2.44 m 9 MeV 163 keV 105 mum 8.77 mm Target eBrem + 7 -4.12 mm 353 mum -2.44 m 7.85 MeV 1.16 MeV 1.07 mm 9.84 mm Target eBrem + 8 -4.59 mm 15.2 mum -2.43 m 6.24 MeV 999 keV 854 mum 1.07 cm Target eBrem + 9 -4.5 mm -1.04 mm -2.43 m 3.73 MeV 2.51 MeV 2.41 mm 1.31 cm Target eIoni + 10 -4 mm -1.75 mm -2.43 m 1.7 MeV 2.03 MeV 1.92 mm 1.5 cm Target eIoni + 11 -3.82 mm -2.04 mm -2.43 m 429 keV 1.27 MeV 1.27 mm 1.63 cm Target eIoni + 12 -3.81 mm -2.06 mm -2.43 m 0 eV 429 keV 245 mum 1.65 cm Target eIoni + 13 -3.81 mm -2.06 mm -2.43 m 0 eV 0 eV 0 fm 1.65 cm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 67 +* G4Track Information: Particle = gamma, Track ID = 99, Parent ID = 92 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 298 mum 2.31 mm -2.43 m 30.4 keV 0 eV 0 fm 0 fm Target initStep - 1 298 mum 2.31 mm -2.43 m 0 eV 30.4 keV 4 mum 4 mum Target eIoni + 0 -3.81 mm -2.06 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.29 mm 1.22 cm -2.44 m 0 eV 88 keV 1.47 cm 1.47 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 66, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 99 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -636 mum 2.68 mm -2.43 m 388 keV 0 eV 0 fm 0 fm Target initStep - 1 -537 mum 3.84 mm -2.43 m 325 keV 0 eV 2.18 mm 2.18 mm Target compt - 2 322 mum 4.3 mm -2.43 m 325 keV 88 keV 1.23 mm 3.4 mm Target phot + 0 -5.29 mm 1.22 cm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.3 mm 1.22 cm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 66 +* G4Track Information: Particle = gamma, Track ID = 98, Parent ID = 92 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 322 mum 4.3 mm -2.43 m 237 keV 0 eV 0 fm 0 fm Target initStep - 1 323 mum 4.3 mm -2.43 m 0 eV 237 keV 106 mum 106 mum Target eIoni + 0 -3.81 mm -2.06 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.91 mm -1.06 cm -2.43 m 248 keV 0 eV 8.91 mm 8.91 mm Target compt + 2 -4.29 mm -1.08 cm -2.43 m 184 keV 0 eV 1.47 mm 1.04 cm Target compt + 3 -4.29 mm -1.08 cm -2.43 m 0 eV 88 keV 157 mum 1.05 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 66 +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 98 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -537 mum 3.84 mm -2.43 m 63 keV 0 eV 0 fm 0 fm Target initStep - 1 -537 mum 3.84 mm -2.43 m 0 eV 63 keV 13 mum 13 mum Target eIoni + 0 -4.29 mm -1.08 cm -2.43 m 96.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.29 mm -1.08 cm -2.43 m 0 eV 96.2 keV 26 mum 26 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 65, Parent ID = 64 +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 98 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -704 mum 2.23 mm -2.43 m 663 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.3 mm 7.24 mm -2.43 m 371 keV 0 eV 8.51 mm 8.51 mm Target compt - 2 -2.63 mm 7.23 mm -2.43 m 172 keV 0 eV 1.47 mm 9.98 mm Target compt - 3 -2.35 mm 7.59 mm -2.43 m 108 keV 0 eV 1.29 mm 1.13 cm Target compt - 4 -2.27 mm 7.77 mm -2.43 m 108 keV 88 keV 578 mum 1.18 cm Target phot + 0 -4.29 mm -1.08 cm -2.43 m 64.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.29 mm -1.08 cm -2.43 m 0 eV 64.1 keV 13.4 mum 13.4 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 65 +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 98 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.27 mm 7.77 mm -2.43 m 20.1 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.27 mm 7.77 mm -2.43 m 0 eV 20.1 keV 2.06 mum 2.06 mum Target eIoni + 0 -2.91 mm -1.06 cm -2.43 m 263 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.9 mm -1.07 cm -2.43 m 0 eV 263 keV 123 mum 123 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 65 +* G4Track Information: Particle = gamma, Track ID = 97, Parent ID = 92 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.35 mm 7.59 mm -2.43 m 64 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.35 mm 7.59 mm -2.43 m 0 eV 64 keV 13.4 mum 13.4 mum Target eIoni + 0 -4.59 mm 15.2 mum -2.43 m 611 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.09 mm -62.9 mum -2.43 m 182 keV 0 eV 878 mum 878 mum Target compt + 2 -4.86 mm -125 mum -2.43 m 0 eV 88 keV 390 mum 1.27 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 65 +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 97 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.63 mm 7.23 mm -2.43 m 198 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.63 mm 7.23 mm -2.43 m 0 eV 198 keV 80.7 mum 80.7 mum Target eIoni + 0 -4.86 mm -125 mum -2.43 m 94.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.85 mm -125 mum -2.43 m 0 eV 94.2 keV 25.1 mum 25.1 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 65 +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 97 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.3 mm 7.24 mm -2.43 m 292 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.29 mm 7.25 mm -2.43 m 0 eV 292 keV 144 mum 144 mum Target eIoni + 0 -5.09 mm -62.9 mum -2.43 m 428 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.1 mm -63.4 mum -2.43 m 0 eV 428 keV 245 mum 245 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 12 +* G4Track Information: Particle = gamma, Track ID = 96, Parent ID = 92 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -610 mum 2.07 mm -2.43 m 4.05 MeV 0 eV 0 fm 0 fm Target initStep - 1 -612 mum 1.97 mm -2.43 m 1.29 MeV 1.21 MeV 381 mum 381 mum Target eBrem - 2 -632 mum 2.02 mm -2.43 m 0 eV 1.29 MeV 962 mum 1.34 mm Target eIoni + 0 -3.34 mm 758 mum -2.44 m 419 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.13 mm -5.76 mm -2.43 m 321 keV 0 eV 8.29 mm 8.29 mm Target compt + 2 -7.13 mm -6.2 mm -2.43 m 204 keV 0 eV 452 mum 8.74 mm Target compt + 3 -7.44 mm -6.31 mm -2.43 m 0 eV 88 keV 412 mum 9.15 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 98, Parent ID = 63 +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 96 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -612 mum 1.97 mm -2.43 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep - 1 -5.92 mm 1.9 cm -2.41 m 1.44 MeV 0 eV 3.08 cm 3.08 cm Target compt - 2 -5.89 mm 2.32 cm -2.4 m 1.44 MeV 0 eV 9.31 mm 4.01 cm Target Transportation - 3 9.78 mm 2.04 m 1.69 m 257 keV 0 eV 4.56 m 4.6 m Tracker compt - 4 9.07 cm 1.97 m 1.64 m 257 keV 0 eV 11.9 cm 4.72 m Tracker Transportation - 5 16.1 cm 1.9 m 1.6 m 257 keV 0 eV 10.4 cm 4.83 m Chamber Transportation - 6 1.15 m 1.01 m 1 m 257 keV 0 eV 1.47 m 6.29 m Tracker Transportation - 7 1.49 m 70.8 cm 80 cm 257 keV 0 eV 48.9 cm 6.78 m Chamber Transportation - 8 2.4 m -11.8 cm 24.7 cm 257 keV 0 eV 1.35 m 8.13 m Tracker Transportation - 9 2.91 m -57.9 cm -6.09 cm 257 keV 0 eV 75.3 cm 8.89 m OutOfWorld Transportation + 0 -7.44 mm -6.31 mm -2.43 m 116 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.44 mm -6.31 mm -2.43 m 0 eV 116 keV 35.2 mum 35.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 98 +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 96 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.78 mm 2.04 m 1.69 m 1.19 MeV 0 eV 0 fm 0 fm Tracker initStep - 1 -7.57 cm 2.32 m 2.26 m 1.07 MeV 114 keV 68.3 cm 68.3 cm Tracker eIoni - 2 -5.05 cm 2.31 m 2.4 m 1.05 MeV 23.1 keV 14.4 cm 82.7 cm Tracker Transportation - 3 -4.51 cm 2.3 m 2.48 m 1.02 MeV 16.1 keV 7.81 cm 90.5 cm World eIoni - 4 -1.65 cm 2.35 m 2.91 m 955 keV 67.2 keV 45.7 cm 1.36 m OutOfWorld Transportation + 0 -7.13 mm -6.2 mm -2.43 m 117 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.13 mm -6.2 mm -2.43 m 0 eV 117 keV 35.5 mum 35.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 100 +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 96 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.51 cm 2.3 m 2.48 m 10.8 keV 0 eV 0 fm 0 fm World initStep - 1 -4.45 cm 2.3 m 2.48 m 0 eV 10.8 keV 2.58 mm 2.58 mm World eIoni + 0 -7.13 mm -5.76 mm -2.43 m 98 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.14 mm -5.76 mm -2.43 m 0 eV 98 keV 26.7 mum 26.7 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 98 +* G4Track Information: Particle = gamma, Track ID = 95, Parent ID = 92 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.92 mm 1.9 cm -2.41 m 110 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.92 mm 1.91 cm -2.41 m 0 eV 110 keV 32.3 mum 32.3 mum Target eIoni + 0 -3.29 mm 835 mum -2.44 m 1.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.15 cm -1.68 cm -2.42 m 278 keV 0 eV 2.26 cm 2.26 cm Target compt + 2 -9.37 mm -1.74 cm -2.43 m 215 keV 0 eV 2.55 mm 2.52 cm Target compt + 3 -8.23 mm -1.76 cm -2.42 m 0 eV 88 keV 1.42 mm 2.66 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 111, Parent ID = 95 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 30.2 mum 605 mum -2.44 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep - 1 -367 mum 5.65 mm -2.4 m 1.17 MeV 0 eV 4.38 cm 4.38 cm Target Transportation - 2 -7.66 mm 9.84 cm -1.6 m 1.17 MeV 0 eV 80.5 cm 84.9 cm Tracker Transportation - 3 -9.48 mm 12.2 cm -1.4 m 1.17 MeV 0 eV 20.1 cm 1.05 m Chamber Transportation - 4 -1.5 cm 19.1 cm -80 cm 1.17 MeV 0 eV 60.4 cm 1.65 m Tracker Transportation - 5 -1.68 cm 21.4 cm -60 cm 1.17 MeV 0 eV 20.1 cm 1.86 m Chamber Transportation - 6 -2.22 cm 28.4 cm 0 fm 1.17 MeV 0 eV 60.4 cm 2.46 m Tracker Transportation - 7 -2.41 cm 30.7 cm 20 cm 1.17 MeV 0 eV 20.1 cm 2.66 m Chamber Transportation - 8 -2.95 cm 37.7 cm 80 cm 1.17 MeV 0 eV 60.4 cm 3.27 m Tracker Transportation - 9 -3.14 cm 40 cm 1 m 1.17 MeV 0 eV 20.1 cm 3.47 m Chamber Transportation - 10 -3.68 cm 46.9 cm 1.6 m 1.17 MeV 0 eV 60.4 cm 4.07 m Tracker Transportation - 11 -3.86 cm 49.2 cm 1.8 m 1.17 MeV 0 eV 20.1 cm 4.27 m Chamber Transportation - 12 -4.41 cm 56.2 cm 2.4 m 1.17 MeV 0 eV 60.4 cm 4.88 m Tracker Transportation - 13 -4.88 cm 62.1 cm 2.91 m 1.17 MeV 0 eV 51.3 cm 5.39 m OutOfWorld Transportation + 0 -8.23 mm -1.76 cm -2.42 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.23 mm -1.76 cm -2.42 m 0 eV 127 keV 40.4 mum 40.4 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 95 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 17.1 mum 560 mum -2.44 m 55.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 25.3 mum 591 mum -2.44 m 55.5 MeV 0 eV 261 mum 261 mum Target conv + 0 -9.37 mm -1.74 cm -2.43 m 63.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.37 mm -1.74 cm -2.43 m 0 eV 63.4 keV 13.2 mum 13.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 103, Parent ID = 10 +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 95 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 25.3 mum 591 mum -2.44 m 3.78 MeV 0 eV 0 fm 0 fm Target initStep - 1 -57.9 mum 944 mum -2.44 m 0 eV 3.78 MeV 3.01 mm 3.01 mm Target eIoni - 2 -57.9 mum 944 mum -2.44 m 0 eV 0 eV 0 fm 3.01 mm Target annihil + 0 -1.15 cm -1.68 cm -2.42 m 823 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.16 cm -1.68 cm -2.42 m 0 eV 823 keV 570 mum 570 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 105, Parent ID = 103 +* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 92 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -57.9 mum 944 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.27 mm 248 mum -2.45 m 511 keV 88 keV 3.21 mm 3.21 mm Target phot + 0 -2.78 mm 1.13 mm -2.44 m 837 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.32 cm -2.44 mm -2.42 m 650 keV 0 eV 1.63 cm 1.63 cm Target compt + 2 -1.66 cm -2.06 mm -2.42 m 0 eV 88 keV 3.69 mm 2 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 105 +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 94 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.27 mm 248 mum -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 1.28 mm 244 mum -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 -1.66 cm -2.06 mm -2.42 m 562 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.66 cm -2.04 mm -2.42 m 0 eV 562 keV 352 mum 352 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 103 +* G4Track Information: Particle = e-, Track ID = 112, Parent ID = 94 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -57.9 mum 944 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.45 mm 3.25 mm -2.43 m 511 keV 88 keV 1.07 cm 1.07 cm Target phot + 0 -1.32 cm -2.44 mm -2.42 m 187 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.32 cm -2.44 mm -2.42 m 0 eV 187 keV 73.9 mum 73.9 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 104 +* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 92 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.45 mm 3.25 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.44 mm 3.26 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 1.22 mm -898 mum -2.44 m 500 keV 0 eV 0 fm 0 fm Target initStep + 1 -889 mum 128 mum -2.43 m 0 eV 88 keV 3.41 mm 3.41 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 10 +* G4Track Information: Particle = e-, Track ID = 114, Parent ID = 93 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 25.3 mum 591 mum -2.44 m 50.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 30.7 mum 611 mum -2.44 m 43.7 MeV 254 keV 193 mum 193 mum Target eBrem - 2 150 mum 786 mum -2.44 m 41.5 MeV 1.44 MeV 1.16 mm 1.35 mm Target eBrem - 3 488 mum 779 mum -2.44 m 34.7 MeV 1.27 MeV 965 mum 2.31 mm Target eBrem - 4 651 mum 746 mum -2.44 m 33.6 MeV 431 keV 419 mum 2.73 mm Target eBrem - 5 727 mum 742 mum -2.44 m 33.2 MeV 184 keV 185 mum 2.92 mm Target eBrem - 6 1.15 mm 733 mum -2.44 m 30.7 MeV 958 keV 731 mum 3.65 mm Target eBrem - 7 1.67 mm 585 mum -2.44 m 27.2 MeV 1e+03 keV 826 mum 4.48 mm Target eBrem - 8 2.64 mm 617 mum -2.44 m 23.2 MeV 2.6 MeV 1.34 mm 5.81 mm Target eBrem - 9 3.28 mm 326 mum -2.44 m 21.4 MeV 1.16 MeV 970 mum 6.78 mm Target eBrem - 10 3.58 mm 38.4 mum -2.44 m 16.5 MeV 553 keV 441 mum 7.22 mm Target eBrem - 11 4.63 mm -314 mum -2.44 m 13.5 MeV 1.77 MeV 1.51 mm 8.73 mm Target eBrem - 12 4.87 mm -940 mum -2.44 m 10.6 MeV 2.32 MeV 730 mum 9.46 mm Target eBrem - 13 5.14 mm -1.08 mm -2.44 m 9.23 MeV 390 keV 310 mum 9.77 mm Target eBrem - 14 5.45 mm -1.59 mm -2.44 m 6.91 MeV 845 keV 632 mum 1.04 cm Target eBrem - 15 5.88 mm -1.66 mm -2.44 m 4.25 MeV 2.22 MeV 446 mum 1.08 cm Target eBrem - 16 6.94 mm 160 mum -2.44 m 592 keV 3.26 MeV 2.9 mm 1.37 cm Target eBrem - 17 6.94 mm 185 mum -2.44 m 0 eV 592 keV 377 mum 1.41 cm Target eIoni + 0 -889 mum 128 mum -2.43 m 412 keV 0 eV 0 fm 0 fm Target initStep + 1 -899 mum 127 mum -2.43 m 0 eV 412 keV 233 mum 233 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.94 mm 160 mum -2.44 m 398 keV 0 eV 0 fm 0 fm Target initStep - 1 8.44 mm 2.23 mm -2.43 m 398 keV 88 keV 3.41 mm 3.41 mm Target phot + 0 1.12 mm -1.25 mm -2.44 m 15 MeV 0 eV 0 fm 0 fm Target initStep + 1 896 mum -1.44 mm -2.44 m 7.12 MeV 2.3 MeV 969 mum 969 mum Target eBrem + 2 1.35 mm -483 mum -2.44 m 4.49 MeV 2.63 MeV 2.54 mm 3.51 mm Target eIoni + 3 1.2 mm 71 mum -2.44 m 2.19 MeV 2.3 MeV 1.96 mm 5.47 mm Target eBrem + 4 886 mum -15.1 mum -2.44 m 222 keV 1.97 MeV 1.48 mm 6.95 mm Target eIoni + 5 882 mum -9.78 mum -2.44 m 0 eV 222 keV 95.7 mum 7.05 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 91 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 896 mum -1.44 mm -2.44 m 5.62 MeV 0 eV 0 fm 0 fm Target initStep + 1 -182 mum -1.41 mm -2.44 m 0 eV 0 eV 3.27 mm 3.27 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 117, Parent ID = 115 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -182 mum -1.41 mm -2.44 m 3.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 -772 mum -1.41 mm -2.44 m 0 eV 1.4 MeV 893 mum 893 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 119, Parent ID = 117 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -772 mum -1.41 mm -2.44 m 2.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3 cm -2.5 cm -2.44 m 2.07 MeV 0 eV 2.72 cm 2.72 cm Target Transportation + 2 -99.2 cm -1.92 m -2.91 m 2.07 MeV 0 eV 2.18 m 2.21 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 118, Parent ID = 117 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -772 mum -1.41 mm -2.44 m 636 keV 0 eV 0 fm 0 fm Target initStep + 1 468 mum 1.09 mm -2.45 m 0 eV 88 keV 1.06 cm 1.06 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 118 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 468 mum 1.09 mm -2.45 m 548 keV 0 eV 0 fm 0 fm Target initStep + 1 459 mum 1.1 mm -2.45 m 0 eV 548 keV 341 mum 341 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 115 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -182 mum -1.41 mm -2.44 m 1.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 -373 mum -1.44 mm -2.44 m 167 keV 1.35 MeV 1.14 mm 1.14 mm Target eIoni + 2 -372 mum -1.44 mm -2.44 m 0 eV 167 keV 62.4 mum 1.2 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 887 mum -1.03 mm -2.44 m 3.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.78 mm -1.71 mm -2.43 m 2.15 MeV 0 eV 1.13 cm 1.13 cm Target compt + 2 1.35 mm -3.49 mm -2.42 m 1 MeV 0 eV 8.11 mm 1.94 cm Target compt + 3 -3.87 mm 1.05 cm -2.4 m 1 MeV 0 eV 2.75 cm 4.69 cm Target Transportation + 4 -89.6 cm 2.4 m 1.54 m 1 MeV 0 eV 4.69 m 4.74 m Tracker Transportation + 5 -1.09 m 2.91 m 2.38 m 1 MeV 0 eV 1 m 5.74 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 122, Parent ID = 14 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.35 mm -3.49 mm -2.42 m 1.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.35 mm -3.49 mm -2.42 m 776 keV 1.75 keV 2.35 mum 2.35 mum Target eBrem + 2 1.32 mm -3.56 mm -2.42 m 72.5 keV 704 keV 529 mum 532 mum Target eBrem + 3 1.32 mm -3.56 mm -2.42 m 0 eV 72.5 keV 16.5 mum 548 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 122 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.35 mm -3.49 mm -2.42 m 372 keV 0 eV 0 fm 0 fm Target initStep + 1 2.24 mm -3.32 mm -2.42 m 206 keV 0 eV 947 mum 947 mum Target compt + 2 2.23 mm -3.13 mm -2.42 m 0 eV 88 keV 240 mum 1.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 123 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.23 mm -3.13 mm -2.42 m 118 keV 0 eV 0 fm 0 fm Target initStep + 1 2.23 mm -3.13 mm -2.42 m 0 eV 118 keV 36.3 mum 36.3 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 124, Parent ID = 123 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.44 mm 2.23 mm -2.43 m 310 keV 0 eV 0 fm 0 fm Target initStep - 1 8.44 mm 2.24 mm -2.43 m 0 eV 310 keV 156 mum 156 mum Target eIoni + 0 2.24 mm -3.32 mm -2.42 m 165 keV 0 eV 0 fm 0 fm Target initStep + 1 2.25 mm -3.32 mm -2.42 m 0 eV 165 keV 61 mum 61 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 14 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.88 mm -1.66 mm -2.44 m 434 keV 0 eV 0 fm 0 fm Target initStep - 1 5.94 mm -1.5 mm -2.44 m 419 keV 0 eV 220 mum 220 mum Target compt - 2 1.18 cm 6.11 mm -2.44 m 419 keV 88 keV 1.07 cm 1.1 cm Target phot + 0 2.78 mm -1.71 mm -2.43 m 934 keV 0 eV 0 fm 0 fm Target initStep + 1 2.82 mm -1.7 mm -2.43 m 0 eV 934 keV 664 mum 664 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 122 +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.18 cm 6.11 mm -2.44 m 331 keV 0 eV 0 fm 0 fm Target initStep - 1 1.19 cm 6.11 mm -2.44 m 0 eV 331 keV 171 mum 171 mum Target eIoni + 0 747 mum -972 mum -2.44 m 1.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.2 mm -1.2 mm -2.44 m 520 keV 0 eV 2.99 mm 2.99 mm Target compt + 2 663 mum -1.1 mm -2.44 m 0 eV 88 keV 638 mum 3.63 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 122 +* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 13 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.94 mm -1.5 mm -2.44 m 15.8 keV 0 eV 0 fm 0 fm Target initStep - 1 5.94 mm -1.5 mm -2.44 m 0 eV 15.8 keV 1.4 mum 1.4 mum Target eIoni + 0 663 mum -1.1 mm -2.44 m 432 keV 0 eV 0 fm 0 fm Target initStep + 1 647 mum -1.1 mm -2.44 m 0 eV 432 keV 248 mum 248 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 13 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.45 mm -1.59 mm -2.44 m 1.48 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.09 cm -1.05 cm -2.43 m 800 keV 0 eV 1.85 cm 1.85 cm Target compt - 2 2.5 cm -1.9 cm -2.43 m 800 keV 0 eV 9.77 mm 2.82 cm Target Transportation - 3 82.6 cm -1.68 m -2.91 m 800 keV 0 eV 1.91 m 1.93 m OutOfWorld Transportation + 0 1.2 mm -1.2 mm -2.44 m 898 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm -1.21 mm -2.44 m 0 eV 898 keV 634 mum 634 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 121 +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.09 cm -1.05 cm -2.43 m 680 keV 0 eV 0 fm 0 fm Target initStep - 1 2.09 cm -1.05 cm -2.43 m 0 eV 680 keV 450 mum 450 mum Target eIoni + 0 704 mum -944 mum -2.44 m 25.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 949 mum -1.09 mm -2.44 m 0 eV 0 eV 1.99 mm 1.99 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 120, Parent ID = 102 +* G4Track Information: Particle = e+, Track ID = 129, Parent ID = 12 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.14 mm -1.08 mm -2.44 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep - 1 9.31 mm -5.8 mm -2.44 m 262 keV 0 eV 6.32 mm 6.32 mm Target compt - 2 9.16 mm -5.31 mm -2.44 m 262 keV 88 keV 906 mum 7.22 mm Target phot + 0 949 mum -1.09 mm -2.44 m 17 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.42 mm -1.19 mm -2.44 m 11.6 MeV 1.29 MeV 1.18 mm 1.18 mm Target eBrem + 2 1.43 mm -735 mum -2.44 m 8.82 MeV 1.77 MeV 1.23 mm 2.41 mm Target eBrem + 3 600 mum -438 mum -2.44 m 7.26 MeV 1.23 MeV 1.11 mm 3.52 mm Target eBrem + 4 -284 mum -519 mum -2.44 m 4.67 MeV 1.34 MeV 1.1 mm 4.62 mm Target eBrem + 5 -449 mum -510 mum -2.44 m 1.97 MeV 191 keV 199 mum 4.81 mm Target eBrem + 6 -893 mum -613 mum -2.44 m 568 keV 1.41 MeV 1.4 mm 6.22 mm Target eIoni + 7 -885 mum -650 mum -2.44 m 0 eV 568 keV 359 mum 6.57 mm Target eIoni + 8 -885 mum -650 mum -2.44 m 0 eV 0 eV 0 fm 6.57 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 120 +* G4Track Information: Particle = gamma, Track ID = 136, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.16 mm -5.31 mm -2.44 m 174 keV 0 eV 0 fm 0 fm Target initStep - 1 9.17 mm -5.31 mm -2.44 m 0 eV 174 keV 66.2 mum 66.2 mum Target eIoni + 0 -885 mum -650 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -924 mum -8.63 mm -2.43 m 293 keV 0 eV 9.28 mm 9.28 mm Target compt + 2 -1.3 mm -8.42 mm -2.43 m 0 eV 88 keV 915 mum 1.02 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 120 +* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.31 mm -5.8 mm -2.44 m 745 keV 0 eV 0 fm 0 fm Target initStep - 1 9.33 mm -5.83 mm -2.44 m 0 eV 745 keV 505 mum 505 mum Target eIoni + 0 -1.3 mm -8.42 mm -2.43 m 205 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.3 mm -8.43 mm -2.43 m 0 eV 205 keV 85.2 mum 85.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 119, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 136 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.87 mm -940 mum -2.44 m 557 keV 0 eV 0 fm 0 fm Target initStep - 1 1.13 cm -3.63 mm -2.44 m 557 keV 88 keV 7.04 mm 7.04 mm Target phot + 0 -924 mum -8.63 mm -2.43 m 218 keV 0 eV 0 fm 0 fm Target initStep + 1 -922 mum -8.63 mm -2.43 m 0 eV 218 keV 92.9 mum 92.9 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 119 +* G4Track Information: Particle = gamma, Track ID = 135, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.13 cm -3.63 mm -2.44 m 469 keV 0 eV 0 fm 0 fm Target initStep - 1 1.13 cm -3.63 mm -2.44 m 0 eV 469 keV 277 mum 277 mum Target eIoni + 0 -885 mum -650 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -880 mum 311 mum -2.44 m 438 keV 0 eV 1.12 mm 1.12 mm Target compt + 2 -2.52 mm 2.66 mm -2.44 m 270 keV 0 eV 4.69 mm 5.81 mm Target compt + 3 -2.47 mm 4.34 mm -2.44 m 0 eV 88 keV 1.73 mm 7.54 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 118, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 135 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.63 mm -314 mum -2.44 m 1.24 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.64 cm -1.38 cm -2.44 m 810 keV 0 eV 1.79 cm 1.79 cm Target compt - 2 2.32 cm -1.78 cm -2.44 m 374 keV 0 eV 9.67 mm 2.76 cm Target compt - 3 2.32 cm -1.73 cm -2.44 m 230 keV 0 eV 944 mum 2.85 cm Target compt - 4 1.77 cm -1.97 cm -2.45 m 230 keV 88 keV 6.39 mm 3.49 cm Target phot + 0 -2.47 mm 4.34 mm -2.44 m 182 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.47 mm 4.34 mm -2.44 m 0 eV 182 keV 70.7 mum 70.7 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 118 +* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 135 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.77 cm -1.97 cm -2.45 m 142 keV 0 eV 0 fm 0 fm Target initStep - 1 1.77 cm -1.97 cm -2.45 m 0 eV 142 keV 48.5 mum 48.5 mum Target eIoni + 0 -2.52 mm 2.66 mm -2.44 m 168 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.52 mm 2.66 mm -2.44 m 0 eV 168 keV 63 mum 63 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 133, Parent ID = 118 +* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 135 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.32 cm -1.73 cm -2.44 m 144 keV 0 eV 0 fm 0 fm Target initStep - 1 2.32 cm -1.73 cm -2.44 m 0 eV 144 keV 49.2 mum 49.2 mum Target eIoni + 0 -880 mum 311 mum -2.44 m 72.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -880 mum 312 mum -2.44 m 0 eV 72.9 keV 16.6 mum 16.6 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 132, Parent ID = 118 +* G4Track Information: Particle = gamma, Track ID = 134, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.32 cm -1.78 cm -2.44 m 436 keV 0 eV 0 fm 0 fm Target initStep - 1 2.33 cm -1.78 cm -2.44 m 0 eV 436 keV 251 mum 251 mum Target eIoni + 0 -449 mum -510 mum -2.44 m 2.51 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.17 cm 592 mum -2.4 m 925 keV 0 eV 4.17 cm 4.17 cm Target compt + 2 -2.36 cm -3.26 mm -2.4 m 925 keV 0 eV 5.19 mm 4.69 cm Target Transportation + 3 -1.19 m -2.4 m -56.7 cm 925 keV 0 eV 3.23 m 3.28 m Tracker Transportation + 4 -1.44 m -2.91 m -17.7 cm 925 keV 0 eV 68.8 cm 3.97 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 131, Parent ID = 118 +* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 134 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.64 cm -1.38 cm -2.44 m 428 keV 0 eV 0 fm 0 fm Target initStep - 1 1.64 cm -1.39 cm -2.44 m 0 eV 428 keV 245 mum 245 mum Target eIoni + 0 -2.17 cm 592 mum -2.4 m 1.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.18 cm 441 mum -2.4 m 321 keV 1.26 MeV 1.18 mm 1.18 mm Target eIoni + 2 -2.18 cm 444 mum -2.4 m 0 eV 321 keV 164 mum 1.35 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 117, Parent ID = 102 +* G4Track Information: Particle = gamma, Track ID = 133, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.58 mm 38.4 mum -2.44 m 4.29 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.11 cm -1.87 cm -2.41 m 4.29 MeV 0 eV 3.49 cm 3.49 cm Target conv + 0 -284 mum -519 mum -2.44 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 -365 mum -478 mum -2.44 m 638 keV 0 eV 93.3 mum 93.3 mum Target compt + 2 -953 mum 2.36 mm -2.44 m 591 keV 0 eV 2.9 mm 2.99 mm Target compt + 3 -914 mum 3.06 mm -2.44 m 0 eV 88 keV 730 mum 3.72 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 136, Parent ID = 117 +* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 133 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.11 cm -1.87 cm -2.41 m 2.43 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.13 cm -1.89 cm -2.41 m 0 eV 2.43 MeV 1.94 mm 1.94 mm Target eIoni - 2 2.13 cm -1.89 cm -2.41 m 0 eV 0 eV 0 fm 1.94 mm Target annihil + 0 -914 mum 3.06 mm -2.44 m 503 keV 0 eV 0 fm 0 fm Target initStep + 1 -917 mum 3.06 mm -2.44 m 0 eV 503 keV 304 mum 304 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 138, Parent ID = 136 +* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 133 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.13 cm -1.89 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 2.5 cm -1.69 cm -2.41 m 511 keV 0 eV 5.92 mm 5.92 mm Target Transportation - 2 3.39 cm -1.21 cm -2.4 m 511 keV 0 eV 1.42 cm 2.01 cm World Transportation - 3 2.4 m 1.27 m 23.7 cm 511 keV 0 eV 3.77 m 3.79 m Tracker Transportation - 4 2.91 m 1.55 m 80.6 cm 511 keV 0 eV 81.2 cm 4.6 m OutOfWorld Transportation + 0 -953 mum 2.36 mm -2.44 m 47.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -953 mum 2.36 mm -2.44 m 0 eV 47.3 keV 8.2 mum 8.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 137, Parent ID = 136 +* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 133 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.13 cm -1.89 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.24 cm -2.37 cm -2.42 m 355 keV 0 eV 1.42 cm 1.42 cm Target compt - 2 1.04 cm -2.13 cm -2.43 m 277 keV 0 eV 4.14 mm 1.83 cm Target compt - 3 1.08 cm -2.12 cm -2.43 m 277 keV 88 keV 1.5 mm 1.98 cm Target phot + 0 -365 mum -478 mum -2.44 m 608 keV 0 eV 0 fm 0 fm Target initStep + 1 -391 mum -481 mum -2.44 m 0 eV 608 keV 390 mum 390 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 137 +* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.08 cm -2.12 cm -2.43 m 189 keV 0 eV 0 fm 0 fm Target initStep - 1 1.08 cm -2.12 cm -2.43 m 0 eV 189 keV 75.3 mum 75.3 mum Target eIoni + 0 600 mum -438 mum -2.44 m 344 keV 0 eV 0 fm 0 fm Target initStep + 1 193 mum -294 mum -2.44 m 235 keV 0 eV 437 mum 437 mum Target compt + 2 88.9 mum -358 mum -2.44 m 0 eV 88 keV 442 mum 879 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 137 +* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 132 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.04 cm -2.13 cm -2.43 m 78.2 keV 0 eV 0 fm 0 fm Target initStep - 1 1.04 cm -2.13 cm -2.43 m 0 eV 78.2 keV 18.5 mum 18.5 mum Target eIoni + 0 88.9 mum -358 mum -2.44 m 147 keV 0 eV 0 fm 0 fm Target initStep + 1 87.7 mum -361 mum -2.44 m 0 eV 147 keV 51.1 mum 51.1 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 137 +* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 132 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.24 cm -2.37 cm -2.42 m 156 keV 0 eV 0 fm 0 fm Target initStep - 1 1.24 cm -2.37 cm -2.42 m 0 eV 156 keV 55.5 mum 55.5 mum Target eIoni + 0 193 mum -294 mum -2.44 m 108 keV 0 eV 0 fm 0 fm Target initStep + 1 191 mum -293 mum -2.44 m 0 eV 108 keV 31.5 mum 31.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 117 +* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.11 cm -1.87 cm -2.41 m 846 keV 0 eV 0 fm 0 fm Target initStep - 1 2.11 cm -1.87 cm -2.41 m 458 keV 73.8 keV 56 mum 56 mum Target eBrem - 2 2.11 cm -1.87 cm -2.41 m 0 eV 458 keV 269 mum 325 mum Target eIoni + 0 1.43 mm -735 mum -2.44 m 999 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.39 cm -2.83 mm -2.43 m 225 keV 0 eV 1.88 cm 1.88 cm Target compt + 2 -1.38 cm -2.69 mm -2.43 m 0 eV 88 keV 237 mum 1.9 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 142, Parent ID = 135 +* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 131 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.11 cm -1.87 cm -2.41 m 314 keV 0 eV 0 fm 0 fm Target initStep - 1 2.09 cm -1.77 cm -2.41 m 314 keV 88 keV 1.29 mm 1.29 mm Target phot + 0 -1.38 cm -2.69 mm -2.43 m 137 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.38 cm -2.69 mm -2.43 m 0 eV 137 keV 45.6 mum 45.6 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 142 +* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 131 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.09 cm -1.77 cm -2.41 m 226 keV 0 eV 0 fm 0 fm Target initStep - 1 2.1 cm -1.77 cm -2.41 m 0 eV 226 keV 98.5 mum 98.5 mum Target eIoni + 0 -1.39 cm -2.83 mm -2.43 m 774 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.4 cm -2.84 mm -2.43 m 0 eV 774 keV 529 mum 529 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 102 +* G4Track Information: Particle = gamma, Track ID = 130, Parent ID = 129 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.28 mm 326 mum -2.44 m 714 keV 0 eV 0 fm 0 fm Target initStep - 1 6.54 mm -2.03 mm -2.44 m 338 keV 0 eV 4.42 mm 4.42 mm Target compt - 2 9.95 mm -1.37 mm -2.44 m 338 keV 88 keV 4.59 mm 9.01 mm Target phot + 0 1.42 mm -1.19 mm -2.44 m 4.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.78 mm -774 mum -2.44 m 2.13 MeV 0 eV 4.48 mm 4.48 mm Target compt + 2 -2.96 mm 7.85 mm -2.4 m 2.13 MeV 0 eV 3.73 cm 4.18 cm Target Transportation + 3 -13.1 cm 20 cm -1.6 m 2.13 MeV 0 eV 83.3 cm 87.5 cm Tracker Transportation + 4 -15.8 cm 24 cm -1.44 m 2.13 MeV 0 eV 17.1 cm 1.05 m Chamber Transportation + 5 -26 cm 39.3 cm -80 cm 2.13 MeV 0 eV 66.2 cm 1.71 m Tracker Transportation + 6 -29.2 cm 44.1 cm -60 cm 2.13 MeV 0 eV 20.8 cm 1.92 m Chamber Transportation + 7 -38.8 cm 58.6 cm 0 fm 2.13 MeV 0 eV 62.5 cm 2.54 m Tracker Transportation + 8 -42 cm 63.4 cm 20 cm 2.13 MeV 0 eV 20.8 cm 2.75 m Chamber Transportation + 9 -51.6 cm 77.8 cm 80 cm 2.13 MeV 0 eV 62.5 cm 3.37 m Tracker Transportation + 10 -54.8 cm 82.6 cm 1 m 2.13 MeV 0 eV 20.8 cm 3.58 m Chamber Transportation + 11 -64.5 cm 97.1 cm 1.6 m 2.13 MeV 0 eV 62.5 cm 4.21 m Tracker Transportation + 12 -67.7 cm 1.02 m 1.8 m 2.13 MeV 0 eV 20.8 cm 4.41 m Chamber Transportation + 13 -77.3 cm 1.16 m 2.4 m 2.13 MeV 0 eV 62.5 cm 5.04 m Tracker Transportation + 14 -85.5 cm 1.29 m 2.91 m 2.13 MeV 0 eV 53.1 cm 5.57 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 116 +* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 130 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.95 mm -1.37 mm -2.44 m 250 keV 0 eV 0 fm 0 fm Target initStep - 1 9.96 mm -1.37 mm -2.44 m 0 eV 250 keV 114 mum 114 mum Target eIoni + 0 2.78 mm -774 mum -2.44 m 1.96 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.94 mm -474 mum -2.44 m 268 keV 1.69 MeV 1.38 mm 1.38 mm Target eIoni + 2 2.94 mm -472 mum -2.44 m 0 eV 268 keV 126 mum 1.5 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 116 +* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 12 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.54 mm -2.03 mm -2.44 m 376 keV 0 eV 0 fm 0 fm Target initStep - 1 6.55 mm -2.04 mm -2.44 m 0 eV 376 keV 205 mum 205 mum Target eIoni + 0 949 mum -1.09 mm -2.44 m 7.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 916 mum -913 mum -2.44 m 3.71 MeV 604 keV 490 mum 490 mum Target eBrem + 2 465 mum -230 mum -2.44 m 341 keV 3.37 MeV 1.91 mm 2.4 mm Target eIoni + 3 453 mum -231 mum -2.44 m 0 eV 341 keV 179 mum 2.58 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 102 +* G4Track Information: Particle = gamma, Track ID = 151, Parent ID = 128 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.64 mm 617 mum -2.44 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.5 cm -4.09 mm -2.42 m 1.38 MeV 0 eV 2.74 cm 2.74 cm Target Transportation - 2 5.96 cm -1.14 cm -2.4 m 1.38 MeV 0 eV 4.25 cm 6.99 cm World Transportation - 3 2.4 m -50.4 cm -81.1 cm 1.38 MeV 0 eV 2.87 m 2.94 m Tracker Transportation - 4 2.91 m -61.1 cm -46.5 cm 1.38 MeV 0 eV 62.6 cm 3.57 m OutOfWorld Transportation + 0 916 mum -913 mum -2.44 m 3.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.94 mm 1.83 mm -2.43 m 745 keV 0 eV 1.04 cm 1.04 cm Target compt + 2 -1.85 cm 5.32 mm -2.44 m 461 keV 0 eV 1.36 cm 2.41 cm Target compt + 3 -2.2 cm 8.8 mm -2.43 m 0 eV 88 keV 5.75 mm 2.98 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 151 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.67 mm 585 mum -2.44 m 2.45 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.53 mm 711 mum -2.44 m 2.45 MeV 0 eV 3.54 mm 3.54 mm Target conv + 0 -2.2 cm 8.8 mm -2.43 m 373 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.21 cm 8.81 mm -2.43 m 0 eV 373 keV 203 mum 203 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 147, Parent ID = 114 +* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 151 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.53 mm 711 mum -2.44 m 390 keV 0 eV 0 fm 0 fm Target initStep - 1 3.55 mm 696 mum -2.44 m 0 eV 390 keV 213 mum 213 mum Target eIoni - 2 3.55 mm 696 mum -2.44 m 0 eV 0 eV 0 fm 213 mum Target annihil + 0 -1.85 cm 5.32 mm -2.44 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.85 cm 5.32 mm -2.44 m 0 eV 284 keV 137 mum 137 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 149, Parent ID = 147 +* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 151 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.55 mm 696 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 3.13 mm 75 mum -2.44 m 511 keV 88 keV 756 mum 756 mum Target phot + 0 -5.94 mm 1.83 mm -2.43 m 2.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.76 mm 1.96 mm -2.43 m 1.48 MeV 742 keV 696 mum 696 mum Target eBrem + 2 -5.91 mm 2.09 mm -2.43 m 440 keV 597 keV 591 mum 1.29 mm Target eBrem + 3 -5.9 mm 2.11 mm -2.43 m 0 eV 440 keV 254 mum 1.54 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 149 +* G4Track Information: Particle = gamma, Track ID = 156, Parent ID = 152 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.13 mm 75 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 3.12 mm 75.5 mum -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 -5.91 mm 2.09 mm -2.43 m 440 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.04 mm 3.39 mm -2.43 m 0 eV 88 keV 2.72 mm 2.72 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 148, Parent ID = 147 +* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 156 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.55 mm 696 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 4.5 mm 2.12 mm -2.44 m 511 keV 88 keV 1.73 mm 1.73 mm Target phot + 0 -8.04 mm 3.39 mm -2.43 m 352 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.06 mm 3.39 mm -2.43 m 0 eV 352 keV 187 mum 187 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 151, Parent ID = 148 +* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 152 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.5 mm 2.12 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 4.52 mm 2.13 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 -5.76 mm 1.96 mm -2.43 m 303 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.74 mm 2.11 mm -2.43 m 158 keV 0 eV 157 mum 157 mum Target compt + 2 -6.18 mm 1.9 mm -2.43 m 0 eV 88 keV 893 mum 1.05 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 114 +* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 155 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.53 mm 711 mum -2.44 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.54 mm 742 mum -2.44 m 0 eV 1.04 MeV 754 mum 754 mum Target eIoni + 0 -6.18 mm 1.9 mm -2.43 m 69.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.18 mm 1.9 mm -2.43 m 0 eV 69.7 keV 15.5 mum 15.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 155 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.15 mm 733 mum -2.44 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep - 1 5.9 mm 183 mum -2.43 m 1.48 MeV 0 eV 7.63 mm 7.63 mm Target compt - 2 8.3 mm -114 mum -2.43 m 299 keV 0 eV 3.19 mm 1.08 cm Target compt - 3 8.41 mm 718 mum -2.43 m 299 keV 88 keV 1.02 mm 1.18 cm Target phot + 0 -5.74 mm 2.11 mm -2.43 m 145 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.74 mm 2.11 mm -2.43 m 0 eV 145 keV 50.1 mum 50.1 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 113 +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.41 mm 718 mum -2.43 m 211 keV 0 eV 0 fm 0 fm Target initStep - 1 8.41 mm 722 mum -2.43 m 0 eV 211 keV 88.7 mum 88.7 mum Target eIoni + 0 650 mum -878 mum -2.44 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.43 mm -1.65 mm -2.43 m 1.05 MeV 0 eV 9.89 mm 9.89 mm Target compt + 2 -83.6 mum -2.14 mm -2.43 m 834 keV 0 eV 4.23 mm 1.41 cm Target compt + 3 -7.09 mm -1.97 cm -2.41 m 436 keV 0 eV 3.04 cm 4.45 cm Target compt + 4 -6.97 mm -1.96 cm -2.41 m 0 eV 88 keV 212 mum 4.47 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 113 +* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.3 mm -114 mum -2.43 m 1.18 MeV 0 eV 0 fm 0 fm Target initStep - 1 8.35 mm -131 mum -2.43 m 0 eV 1.18 MeV 874 mum 874 mum Target eIoni + 0 -6.97 mm -1.96 cm -2.41 m 348 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.96 mm -1.96 cm -2.41 m 0 eV 348 keV 184 mum 184 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 152, Parent ID = 113 +* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.9 mm 183 mum -2.43 m 73.9 keV 0 eV 0 fm 0 fm Target initStep - 1 5.9 mm 183 mum -2.43 m 0 eV 73.9 keV 17 mum 17 mum Target eIoni + 0 -7.09 mm -1.97 cm -2.41 m 398 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.09 mm -1.97 cm -2.41 m 0 eV 398 keV 221 mum 221 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 727 mum 742 mum -2.44 m 292 keV 0 eV 0 fm 0 fm Target initStep - 1 1.47 mm 821 mum -2.44 m 291 keV 0 eV 1.5 mm 1.5 mm Target compt - 2 1.93 mm 867 mum -2.44 m 291 keV 88 keV 792 mum 2.29 mm Target phot + 0 -83.6 mum -2.14 mm -2.43 m 213 keV 0 eV 0 fm 0 fm Target initStep + 1 -85.8 mum -2.14 mm -2.43 m 0 eV 213 keV 90 mum 90 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 112 +* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.93 mm 867 mum -2.44 m 203 keV 0 eV 0 fm 0 fm Target initStep - 1 1.93 mm 866 mum -2.44 m 0 eV 203 keV 83.6 mum 83.6 mum Target eIoni + 0 1.43 mm -1.65 mm -2.43 m 266 keV 0 eV 0 fm 0 fm Target initStep + 1 1.44 mm -1.65 mm -2.43 m 0 eV 266 keV 125 mum 125 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 155, Parent ID = 112 +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.47 mm 821 mum -2.44 m 1.14 keV 0 eV 0 fm 0 fm Target initStep - 1 1.47 mm 821 mum -2.44 m 0 eV 1.14 keV 34 nm 34 nm Target eIoni + 0 611 mum -767 mum -2.45 m 867 keV 0 eV 0 fm 0 fm Target initStep + 1 1.58 mm -1.69 mm -2.42 m 561 keV 0 eV 2.65 cm 2.65 cm Target compt + 2 -1.66 mm -3.44 mm -2.42 m 0 eV 88 keV 5.09 mm 3.16 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 102 +* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 651 mum 746 mum -2.44 m 647 keV 0 eV 0 fm 0 fm Target initStep - 1 1.91 mm 599 mum -2.44 m 223 keV 0 eV 2.41 mm 2.41 mm Target compt - 2 1.84 mm 433 mum -2.44 m 223 keV 88 keV 200 mum 2.61 mm Target phot + 0 -1.66 mm -3.44 mm -2.42 m 473 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.67 mm -3.45 mm -2.42 m 0 eV 473 keV 280 mum 280 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 111 +* G4Track Information: Particle = e-, Track ID = 164, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.84 mm 433 mum -2.44 m 135 keV 0 eV 0 fm 0 fm Target initStep - 1 1.84 mm 434 mum -2.44 m 0 eV 135 keV 44.7 mum 44.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 111 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.91 mm 599 mum -2.44 m 424 keV 0 eV 0 fm 0 fm Target initStep - 1 1.92 mm 602 mum -2.44 m 0 eV 424 keV 242 mum 242 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 102 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 488 mum 779 mum -2.44 m 5.48 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.86 mm 1.2 mm -2.43 m 1.78 MeV 0 eV 7.13 mm 7.13 mm Target compt - 2 2.22 cm -5.4 mm -2.42 m 1.78 MeV 88 keV 2.57 cm 3.28 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 160, Parent ID = 110 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.22 cm -5.4 mm -2.42 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.23 cm -5.42 mm -2.42 m 0 eV 1.7 MeV 1.31 mm 1.31 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 110 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.86 mm 1.2 mm -2.43 m 3.69 MeV 0 eV 0 fm 0 fm Target initStep - 1 4.67 mm 1.71 mm -2.43 m 571 keV 2.8 MeV 2.31 mm 2.31 mm Target eBrem - 2 4.68 mm 1.69 mm -2.43 m 0 eV 571 keV 360 mum 2.67 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 159 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.67 mm 1.71 mm -2.43 m 320 keV 0 eV 0 fm 0 fm Target initStep - 1 7.66 mm 1.41 mm -2.43 m 173 keV 0 eV 3.03 mm 3.03 mm Target compt - 2 7.08 mm 217 mum -2.43 m 173 keV 88 keV 1.36 mm 4.39 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 161 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.08 mm 217 mum -2.43 m 84.7 keV 0 eV 0 fm 0 fm Target initStep - 1 7.08 mm 215 mum -2.43 m 0 eV 84.7 keV 21.2 mum 21.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 161 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.66 mm 1.41 mm -2.43 m 147 keV 0 eV 0 fm 0 fm Target initStep - 1 7.67 mm 1.41 mm -2.43 m 0 eV 147 keV 51.1 mum 51.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 102 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 150 mum 786 mum -2.44 m 776 keV 0 eV 0 fm 0 fm Target initStep - 1 2.36 mm 1.45 mm -2.44 m 593 keV 0 eV 6.4 mm 6.4 mm Target compt - 2 3.46 mm -1.16 mm -2.43 m 593 keV 88 keV 5.11 mm 1.15 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 109 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.46 mm -1.16 mm -2.43 m 505 keV 0 eV 0 fm 0 fm Target initStep - 1 3.48 mm -1.17 mm -2.43 m 0 eV 505 keV 306 mum 306 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 164, Parent ID = 109 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.36 mm 1.45 mm -2.44 m 182 keV 0 eV 0 fm 0 fm Target initStep - 1 2.36 mm 1.45 mm -2.44 m 0 eV 182 keV 71.2 mum 71.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 102 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 30.7 mum 611 mum -2.44 m 6.77 MeV 0 eV 0 fm 0 fm Target initStep - 1 6.28 mm 2.89 mm -2.41 m 6.77 MeV 0 eV 3.75 cm 3.75 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 167, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.28 mm 2.89 mm -2.41 m 2.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 6.57 mm 3.02 mm -2.41 m 0 eV 2.7 MeV 2.15 mm 2.15 mm Target eIoni - 2 6.57 mm 3.02 mm -2.41 m 0 eV 0 eV 0 fm 2.15 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 169, Parent ID = 167 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.57 mm 3.02 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 7.96 mm 2.66 mm -2.41 m 224 keV 0 eV 6.4 mm 6.4 mm Target compt - 2 6.85 mm 2.9 mm -2.41 m 176 keV 0 eV 1.14 mm 7.54 mm Target compt - 3 6.61 mm 2.66 mm -2.41 m 176 keV 88 keV 446 mum 7.99 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.61 mm 2.66 mm -2.41 m 87.5 keV 0 eV 0 fm 0 fm Target initStep - 1 6.61 mm 2.66 mm -2.41 m 0 eV 87.5 keV 22.4 mum 22.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.85 mm 2.9 mm -2.41 m 48.1 keV 0 eV 0 fm 0 fm Target initStep - 1 6.85 mm 2.9 mm -2.41 m 0 eV 48.1 keV 8.41 mum 8.41 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 169 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 7.96 mm 2.66 mm -2.41 m 287 keV 0 eV 0 fm 0 fm Target initStep - 1 7.97 mm 2.65 mm -2.41 m 0 eV 287 keV 140 mum 140 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 168, Parent ID = 167 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.57 mm 3.02 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 5.61 mm 3.28 mm -2.4 m 511 keV 88 keV 4.4 mm 4.4 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 168 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.61 mm 3.28 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 5.62 mm 3.27 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.28 mm 2.89 mm -2.41 m 3.06 MeV 0 eV 0 fm 0 fm Target initStep - 1 6.16 mm 2.8 mm -2.41 m 2.57 MeV 204 keV 174 mum 174 mum Target eBrem - 2 6.15 mm 2.79 mm -2.41 m 1.88 MeV 24 keV 27.7 mum 201 mum Target eBrem - 3 6.38 mm 2.07 mm -2.41 m 28 keV 1.85 MeV 1.34 mm 1.54 mm Target eBrem - 4 6.38 mm 2.07 mm -2.41 m 0 eV 28 keV 3.52 mum 1.55 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 175, Parent ID = 166 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.15 mm 2.79 mm -2.41 m 665 keV 0 eV 0 fm 0 fm Target initStep - 1 2.85 mm 2.47 mm -2.4 m 538 keV 0 eV 7.17 mm 7.17 mm Target compt - 2 2.84 mm 2.49 mm -2.4 m 538 keV 0 eV 52.2 mum 7.23 mm Target Transportation - 3 -43.1 cm 1.95 m 1.6 m 538 keV 0 eV 4.47 m 4.48 m Tracker Transportation - 4 -43.5 cm 1.97 m 1.63 m 538 keV 0 eV 3.67 cm 4.51 m Chamber Transportation - 5 -51.8 cm 2.34 m 2.4 m 538 keV 0 eV 85.8 cm 5.37 m Tracker Transportation - 6 -57.3 cm 2.59 m 2.91 m 538 keV 0 eV 57 cm 5.94 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.85 mm 2.47 mm -2.4 m 127 keV 0 eV 0 fm 0 fm Target initStep - 1 2.85 mm 2.47 mm -2.4 m 0 eV 127 keV 40.4 mum 40.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 166 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.16 mm 2.8 mm -2.41 m 284 keV 0 eV 0 fm 0 fm Target initStep - 1 313 mum 4.88 mm -2.4 m 284 keV 88 keV 8.14 mm 8.14 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 174 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 313 mum 4.88 mm -2.4 m 196 keV 0 eV 0 fm 0 fm Target initStep - 1 312 mum 4.88 mm -2.4 m 0 eV 196 keV 79.5 mum 79.5 mum Target eIoni + 0 1.58 mm -1.69 mm -2.42 m 306 keV 0 eV 0 fm 0 fm Target initStep + 1 1.58 mm -1.69 mm -2.42 m 0 eV 306 keV 153 mum 153 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 10.7 mum 473 mum -2.45 m 2.86 MeV 0 eV 0 fm 0 fm Target initStep - 1 60.2 mum 587 mum -2.44 m 1.46 MeV 0 eV 1.32 mm 1.32 mm Target compt - 2 1.04 mm -1.69 cm -2.41 m 1.03 MeV 0 eV 3.59 cm 3.73 cm Target compt - 3 4.09 mm -2.5 cm -2.41 m 1.03 MeV 0 eV 1.02 cm 4.75 cm Target Transportation - 4 8.11 mm -3.57 cm -2.4 m 1.03 MeV 0 eV 1.35 cm 6.09 cm World Transportation - 5 89.5 cm -2.4 m -83.9 cm 1.03 MeV 0 eV 2.97 m 3.03 m Tracker Transportation - 6 1.09 m -2.91 m -50.2 cm 1.03 MeV 0 eV 64 cm 3.67 m OutOfWorld Transportation + 0 609 mum -750 mum -2.45 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 600 mum -776 mum -2.44 m 0 eV 88 keV 900 mum 900 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 9 +* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 9 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.04 mm -1.69 cm -2.41 m 430 keV 0 eV 0 fm 0 fm Target initStep - 1 1.03 mm -1.69 cm -2.41 m 0 eV 430 keV 246 mum 246 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 60.2 mum 587 mum -2.44 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 63.7 mum 636 mum -2.44 m 0 eV 1.4 MeV 1.06 mm 1.06 mm Target eIoni + 0 600 mum -776 mum -2.44 m 221 keV 0 eV 0 fm 0 fm Target initStep + 1 599 mum -780 mum -2.44 m 0 eV 221 keV 95.4 mum 95.4 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.93 mum 454 mum -2.45 m 6.09 MeV 0 eV 0 fm 0 fm Target initStep - 1 983 mum 2.45 mm -2.42 m 2.17 MeV 0 eV 3.03 cm 3.03 cm Target compt - 2 -1.72 mm 811 mum -2.41 m 2.17 MeV 0 eV 6.67 mm 3.69 cm Target conv + 0 610 mum -749 mum -2.45 m 3.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 794 mum -967 mum -2.42 m 0 eV 0 eV 2.84 cm 2.84 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 182, Parent ID = 8 +* G4Track Information: Particle = e+, Track ID = 168, Parent ID = 8 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.72 mm 811 mum -2.41 m 382 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.72 mm 799 mum -2.41 m 0 eV 382 keV 208 mum 208 mum Target eIoni - 2 -1.72 mm 799 mum -2.41 m 0 eV 0 eV 0 fm 208 mum Target annihil + 0 794 mum -967 mum -2.42 m 2.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 763 mum -1.44 mm -2.42 m 538 keV 1.53 MeV 1.44 mm 1.44 mm Target eIoni + 2 780 mum -1.44 mm -2.42 m 0 eV 538 keV 334 mum 1.77 mm Target eIoni + 3 780 mum -1.44 mm -2.42 m 0 eV 0 eV 0 fm 1.77 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 184, Parent ID = 182 +* G4Track Information: Particle = gamma, Track ID = 170, Parent ID = 168 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.72 mm 799 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.1 mm -630 mum -2.4 m 355 keV 0 eV 5.25 mm 5.25 mm Target compt - 2 -893 mum -461 mum -2.4 m 355 keV 88 keV 352 mum 5.61 mm Target phot + 0 780 mum -1.44 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.81 mm -1.13 cm -2.42 m 0 eV 88 keV 1.05 cm 1.05 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 184 +* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 170 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -893 mum -461 mum -2.4 m 267 keV 0 eV 0 fm 0 fm Target initStep - 1 -889 mum -463 mum -2.4 m 0 eV 267 keV 125 mum 125 mum Target eIoni + 0 -2.81 mm -1.13 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.81 mm -1.13 cm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 184 +* G4Track Information: Particle = gamma, Track ID = 169, Parent ID = 168 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.1 mm -630 mum -2.4 m 156 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.1 mm -633 mum -2.4 m 0 eV 156 keV 56 mum 56 mum Target eIoni + 0 780 mum -1.44 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm -423 mum -2.42 m 185 keV 0 eV 1.08 mm 1.08 mm Target compt + 2 1.43 mm -1.36 mm -2.42 m 0 eV 88 keV 1.08 mm 2.17 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 183, Parent ID = 182 +* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.72 mm 799 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.75 mm 861 mum -2.41 m 511 keV 88 keV 226 mum 226 mum Target phot + 0 1.43 mm -1.36 mm -2.42 m 97 keV 0 eV 0 fm 0 fm Target initStep + 1 1.43 mm -1.36 mm -2.42 m 0 eV 97 keV 26.3 mum 26.3 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 183 +* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 169 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.75 mm 861 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.75 mm 873 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + 0 1.15 mm -423 mum -2.42 m 326 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm -412 mum -2.42 m 0 eV 326 keV 167 mum 167 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 8 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.72 mm 811 mum -2.41 m 767 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.74 mm 812 mum -2.41 m 0 eV 767 keV 523 mum 523 mum Target eIoni + 0 794 mum -967 mum -2.42 m 843 keV 0 eV 0 fm 0 fm Target initStep + 1 814 mum -1.04 mm -2.42 m 53.7 keV 469 keV 283 mum 283 mum Target eBrem + 2 814 mum -1.04 mm -2.42 m 0 eV 53.7 keV 10.1 mum 293 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 8 +* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 167 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 983 mum 2.45 mm -2.42 m 3.91 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.09 mm 2.55 mm -2.41 m 0 eV 3.91 MeV 3.07 mm 3.07 mm Target eIoni + 0 814 mum -1.04 mm -2.42 m 320 keV 0 eV 0 fm 0 fm Target initStep + 1 1.1 mm -522 mum -2.42 m 0 eV 88 keV 667 mum 667 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 174 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 mm -522 mum -2.42 m 232 keV 0 eV 0 fm 0 fm Target initStep + 1 1.1 mm -515 mum -2.42 m 0 eV 232 keV 102 mum 102 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.77 mum 447 mum -2.45 m 1.74 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.76 mm 3.08 mm -2.42 m 972 keV 0 eV 3.07 cm 3.07 cm Target compt - 2 -514 mum 7.06 mm -2.41 m 972 keV 88 keV 6.82 mm 3.75 cm Target phot + 0 558 mum -749 mum -2.45 m 318 keV 0 eV 0 fm 0 fm Target initStep + 1 586 mum -768 mum -2.45 m 0 eV 88 keV 700 mum 700 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 7 +* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -514 mum 7.06 mm -2.41 m 884 keV 0 eV 0 fm 0 fm Target initStep - 1 -543 mum 7.07 mm -2.41 m 0 eV 884 keV 622 mum 622 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 7 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.76 mm 3.08 mm -2.42 m 766 keV 0 eV 0 fm 0 fm Target initStep - 1 1.77 mm 3.07 mm -2.42 m 0 eV 766 keV 522 mum 522 mum Target eIoni + 0 586 mum -768 mum -2.45 m 230 keV 0 eV 0 fm 0 fm Target initStep + 1 586 mum -764 mum -2.45 m 0 eV 230 keV 101 mum 101 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -302 mum 189 mum -2.45 m 31.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.42 mm 1.24 mm -2.43 m 732 keV 0 eV 1.35 cm 1.35 cm Target compt - 2 -6.14 mm 5.55 mm -2.43 m 575 keV 0 eV 9.45 mm 2.29 cm Target compt - 3 -7.85 mm 9.61 mm -2.43 m 575 keV 88 keV 4.58 mm 2.75 cm Target phot + 0 439 mum -706 mum -2.45 m 5.57 MeV 0 eV 0 fm 0 fm Target initStep + 1 745 mum -583 mum -2.44 m 4.81 MeV 0 eV 1.28 cm 1.28 cm Target compt + 2 3.53 mm -2.1 mm -2.42 m 0 eV 0 eV 1.72 cm 3.01 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 192, Parent ID = 6 +* G4Track Information: Particle = e+, Track ID = 179, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.85 mm 9.61 mm -2.43 m 487 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.85 mm 9.63 mm -2.43 m 0 eV 487 keV 292 mum 292 mum Target eIoni + 0 3.53 mm -2.1 mm -2.42 m 1.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.53 mm -2.09 mm -2.42 m 0 eV 1.28 MeV 971 mum 971 mum Target eIoni + 2 3.53 mm -2.09 mm -2.42 m 0 eV 0 eV 0 fm 971 mum Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 191, Parent ID = 6 +* G4Track Information: Particle = gamma, Track ID = 181, Parent ID = 179 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.14 mm 5.55 mm -2.43 m 157 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.14 mm 5.55 mm -2.43 m 0 eV 157 keV 56.2 mum 56.2 mum Target eIoni + 0 3.53 mm -2.09 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.66 mm -2.08 mm -2.42 m 262 keV 0 eV 602 mum 602 mum Target compt + 2 6.17 mm -2 mm -2.42 m 0 eV 88 keV 2.54 mm 3.15 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 181 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.42 mm 1.24 mm -2.43 m 30.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.39 mm 963 mum -2.43 m 26.4 MeV 3.13 MeV 2.58 mm 2.58 mm Target eBrem - 2 2.42 mm 901 mum -2.43 m 23.3 MeV 548 keV 191 mum 2.77 mm Target eBrem - 3 2.54 mm -685 mum -2.43 m 16.7 MeV 6.59 MeV 2.3 mm 5.07 mm Target eBrem - 4 2.46 mm -935 mum -2.43 m 14.4 MeV 675 keV 533 mum 5.6 mm Target eBrem - 5 1.88 mm -1.18 mm -2.43 m 10 MeV 990 keV 863 mum 6.47 mm Target eBrem - 6 986 mum -1.55 mm -2.43 m 8.32 MeV 1.39 MeV 1.31 mm 7.78 mm Target eBrem - 7 -147 mum 2.02 mm -2.43 m 3.13 MeV 4.87 MeV 3.83 mm 1.16 cm Target eBrem - 8 -249 mum 2.34 mm -2.43 m 1.31 MeV 516 keV 528 mum 1.21 cm Target eBrem - 9 -212 mum 2.3 mm -2.43 m 0 eV 1.31 MeV 985 mum 1.31 cm Target eIoni + 0 6.17 mm -2 mm -2.42 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 6.17 mm -2 mm -2.42 m 0 eV 174 keV 66.2 mum 66.2 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 199, Parent ID = 190 +* G4Track Information: Particle = e-, Track ID = 182, Parent ID = 181 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -249 mum 2.34 mm -2.43 m 1.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 948 mum 1.82 mm -2.43 m 892 keV 0 eV 2.93 mm 2.93 mm Target compt - 2 1.01 cm -1.72 cm -2.45 m 590 keV 0 eV 2.69 cm 2.99 cm Target compt - 3 1.08 cm -1.73 cm -2.45 m 590 keV 0 eV 1.16 mm 3.1 cm Target Transportation - 4 36.8 cm -2.49 cm -2.91 m 590 keV 0 eV 58.2 cm 61.3 cm OutOfWorld Transportation + 0 3.66 mm -2.08 mm -2.42 m 249 keV 0 eV 0 fm 0 fm Target initStep + 1 3.66 mm -2.08 mm -2.42 m 0 eV 249 keV 113 mum 113 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 199 +* G4Track Information: Particle = gamma, Track ID = 180, Parent ID = 179 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.01 cm -1.72 cm -2.45 m 302 keV 0 eV 0 fm 0 fm Target initStep - 1 1.01 cm -1.73 cm -2.45 m 0 eV 302 keV 150 mum 150 mum Target eIoni + 0 3.53 mm -2.09 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.52 mm -2.09 mm -2.42 m 0 eV 88 keV 30.6 mum 30.6 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 199 +* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 180 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 948 mum 1.82 mm -2.43 m 412 keV 0 eV 0 fm 0 fm Target initStep - 1 952 mum 1.83 mm -2.43 m 0 eV 412 keV 233 mum 233 mum Target eIoni + 0 3.52 mm -2.09 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.52 mm -2.11 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 198, Parent ID = 190 +* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -147 mum 2.02 mm -2.43 m 324 keV 0 eV 0 fm 0 fm Target initStep - 1 -321 mum 2.1 mm -2.43 m 324 keV 88 keV 993 mum 993 mum Target phot + 0 3.53 mm -2.1 mm -2.42 m 2.51 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.53 mm -2.1 mm -2.42 m 953 keV 1.04 keV 1.48 mum 1.48 mum Target eBrem + 2 3.53 mm -2.2 mm -2.42 m 271 keV 399 keV 308 mum 310 mum Target eBrem + 3 3.54 mm -2.21 mm -2.42 m 0 eV 271 keV 128 mum 438 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 198 +* G4Track Information: Particle = gamma, Track ID = 186, Parent ID = 178 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -321 mum 2.1 mm -2.43 m 236 keV 0 eV 0 fm 0 fm Target initStep - 1 -318 mum 2.09 mm -2.43 m 0 eV 236 keV 105 mum 105 mum Target eIoni + 0 3.53 mm -2.2 mm -2.42 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 5.57 mm -2.68 mm -2.42 m 0 eV 88 keV 3.06 mm 3.06 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 197, Parent ID = 190 +* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 186 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 986 mum -1.55 mm -2.43 m 322 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.62 mm -1.57 mm -2.43 m 322 keV 88 keV 7.28 mm 7.28 mm Target phot + 0 5.57 mm -2.68 mm -2.42 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 5.57 mm -2.69 mm -2.42 m 0 eV 196 keV 79 mum 79 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 197 +* G4Track Information: Particle = gamma, Track ID = 185, Parent ID = 178 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.62 mm -1.57 mm -2.43 m 234 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.62 mm -1.58 mm -2.43 m 0 eV 234 keV 103 mum 103 mum Target eIoni + 0 3.53 mm -2.1 mm -2.42 m 1.56 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.52 mm -7.96 mm -2.41 m 988 keV 0 eV 1.1 cm 1.1 cm Target compt + 2 1.76 cm -1.85 cm -2.4 m 551 keV 0 eV 1.63 cm 2.73 cm Target compt + 3 1.62 cm -2.5 cm -2.4 m 551 keV 0 eV 7.27 mm 3.45 cm Target Transportation + 4 1.55 cm -2.86 cm -2.4 m 551 keV 0 eV 4.06 mm 3.86 cm World Transportation + 5 -48.5 cm -2.4 m -1.34 m 551 keV 0 eV 2.64 m 2.68 m Tracker Transportation + 6 -59.3 cm -2.91 m -1.11 m 551 keV 0 eV 56.9 cm 3.25 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 196, Parent ID = 190 +* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 185 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.88 mm -1.18 mm -2.43 m 3.39 MeV 0 eV 0 fm 0 fm Target initStep - 1 -6.3 mm -1.27 cm -2.4 m 3.39 MeV 0 eV 3.22 cm 3.22 cm Target Transportation - 2 -45.7 cm -64.6 cm -80 cm 3.39 MeV 0 eV 1.78 m 1.81 m Tracker Transportation - 3 -47.6 cm -67.2 cm -73.4 cm 3.39 MeV 0 eV 7.38 cm 1.88 m Chamber Transportation - 4 -68.3 cm -96.2 cm 0 fm 3.39 MeV 0 eV 81.6 cm 2.7 m Tracker Transportation - 5 -73.9 cm -1.04 m 20 cm 3.39 MeV 0 eV 22.2 cm 2.92 m Chamber Transportation - 6 -90.8 cm -1.28 m 80 cm 3.39 MeV 0 eV 66.7 cm 3.59 m Tracker Transportation - 7 -96.5 cm -1.36 m 1 m 3.39 MeV 0 eV 22.2 cm 3.81 m Chamber Transportation - 8 -1.13 m -1.6 m 1.6 m 3.39 MeV 0 eV 66.7 cm 4.48 m Tracker Transportation - 9 -1.19 m -1.67 m 1.8 m 3.39 MeV 0 eV 22.2 cm 4.7 m Chamber Transportation - 10 -1.36 m -1.91 m 2.4 m 3.39 MeV 0 eV 66.7 cm 5.37 m Tracker Transportation - 11 -1.5 m -2.11 m 2.91 m 3.39 MeV 0 eV 56.7 cm 5.94 m OutOfWorld Transportation + 0 1.76 cm -1.85 cm -2.4 m 437 keV 0 eV 0 fm 0 fm Target initStep + 1 1.76 cm -1.85 cm -2.4 m 0 eV 437 keV 252 mum 252 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 190 +* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 185 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.46 mm -935 mum -2.43 m 1.63 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.57 mm -8.37 mm -2.42 m 1.24 MeV 0 eV 1.15 cm 1.15 cm Target compt - 2 -4.65 mm -2.5 cm -2.41 m 1.24 MeV 0 eV 1.87 cm 3.03 cm Target Transportation - 3 -8.1 mm -5.26 cm -2.4 m 1.24 MeV 0 eV 3.12 cm 6.14 cm World Transportation - 4 -30.1 cm -2.4 m -1.21 m 1.24 MeV 0 eV 2.65 m 2.71 m Tracker Transportation - 5 -36.5 cm -2.91 m -95.5 cm 1.24 MeV 0 eV 57.5 cm 3.28 m OutOfWorld Transportation + 0 6.52 mm -7.96 mm -2.41 m 570 keV 0 eV 0 fm 0 fm Target initStep + 1 6.52 mm -8.03 mm -2.41 m 301 keV 269 keV 184 mum 184 mum Target eBrem + 2 6.52 mm -8.03 mm -2.41 m 0 eV 301 keV 150 mum 334 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 195 +* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.57 mm -8.37 mm -2.42 m 388 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.58 mm -8.37 mm -2.42 m 0 eV 388 keV 214 mum 214 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 194, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.42 mm 901 mum -2.43 m 2.58 MeV 0 eV 0 fm 0 fm Target initStep - 1 4.26 mm -5.05 mm -2.42 m 1.96 MeV 0 eV 1.6 cm 1.6 cm Target compt - 2 1.08 mm -1.72 cm -2.4 m 1.96 MeV 0 eV 2.12 cm 3.72 cm Target Transportation - 3 -62.1 cm -2.4 m 93.8 cm 1.96 MeV 0 eV 4.15 m 4.19 m Tracker Transportation - 4 -75.4 cm -2.91 m 1.65 m 1.96 MeV 0 eV 88.8 cm 5.07 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 194 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.26 mm -5.05 mm -2.42 m 617 keV 0 eV 0 fm 0 fm Target initStep - 1 4.27 mm -5.05 mm -2.42 m 0 eV 617 keV 397 mum 397 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 193, Parent ID = 190 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.39 mm 963 mum -2.43 m 904 keV 0 eV 0 fm 0 fm Target initStep - 1 3.57 mm -2.2 mm -2.42 m 904 keV 88 keV 8.32 mm 8.32 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 193 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.57 mm -2.2 mm -2.42 m 816 keV 0 eV 0 fm 0 fm Target initStep - 1 3.58 mm -2.21 mm -2.42 m 0 eV 816 keV 564 mum 564 mum Target eIoni + 0 745 mum -583 mum -2.44 m 753 keV 0 eV 0 fm 0 fm Target initStep + 1 724 mum -568 mum -2.44 m 0 eV 753 keV 512 mum 512 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -317 mum 190 mum -2.45 m 304 keV 0 eV 0 fm 0 fm Target initStep - 1 -191 mum 208 mum -2.44 m 304 keV 88 keV 4.29 mm 4.29 mm Target phot + 0 438 mum -707 mum -2.45 m 36.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 673 mum -661 mum -2.44 m 0 eV 0 eV 7.53 mm 7.53 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 5 +* G4Track Information: Particle = e+, Track ID = 191, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -191 mum 208 mum -2.44 m 216 keV 0 eV 0 fm 0 fm Target initStep - 1 -191 mum 206 mum -2.44 m 0 eV 216 keV 91.7 mum 91.7 mum Target eIoni + 0 673 mum -661 mum -2.44 m 13.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 565 mum -593 mum -2.44 m 4.93 MeV 714 keV 544 mum 544 mum Target eBrem + 2 677 mum -782 mum -2.44 m 4.11 MeV 269 keV 320 mum 865 mum Target eBrem + 3 888 mum -485 mum -2.44 m 2.46 MeV 1.21 MeV 1.32 mm 2.19 mm Target eBrem + 4 523 mum -423 mum -2.44 m 834 keV 1.63 MeV 1.59 mm 3.77 mm Target eIoni + 5 506 mum -474 mum -2.44 m 0 eV 834 keV 586 mum 4.36 mm Target eIoni + 6 506 mum -474 mum -2.44 m 0 eV 0 eV 0 fm 4.36 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 196, Parent ID = 191 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 506 mum -474 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.47 mm 1.21 mm -2.44 m 0 eV 88 keV 5.92 mm 5.92 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 196 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.47 mm 1.21 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.49 mm 1.21 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 191 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 506 mum -474 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 417 mum -505 mum -2.44 m 0 eV 88 keV 106 mum 106 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 195 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 417 mum -505 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 404 mum -506 mum -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 194, Parent ID = 191 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 888 mum -485 mum -2.44 m 439 keV 0 eV 0 fm 0 fm Target initStep + 1 2.26 mm -2.52 mm -2.43 m 279 keV 0 eV 9.77 mm 9.77 mm Target compt + 2 2.56 mm -2.27 mm -2.43 m 0 eV 88 keV 412 mum 1.02 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 194 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.56 mm -2.27 mm -2.43 m 191 keV 0 eV 0 fm 0 fm Target initStep + 1 2.56 mm -2.27 mm -2.43 m 0 eV 191 keV 76.4 mum 76.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 194 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.26 mm -2.52 mm -2.43 m 160 keV 0 eV 0 fm 0 fm Target initStep + 1 2.26 mm -2.52 mm -2.43 m 0 eV 160 keV 57.7 mum 57.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 193, Parent ID = 191 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 677 mum -782 mum -2.44 m 550 keV 0 eV 0 fm 0 fm Target initStep + 1 1.34 cm -312 mum -2.43 m 0 eV 88 keV 1.51 cm 1.51 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.34 cm -312 mum -2.43 m 462 keV 0 eV 0 fm 0 fm Target initStep + 1 1.34 cm -317 mum -2.43 m 0 eV 462 keV 271 mum 271 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 191 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 565 mum -593 mum -2.44 m 7.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 841 mum -481 mum -2.44 m 3.18 MeV 0 eV 845 mum 845 mum Target compt + 2 -1.14 mm -3.98 mm -2.4 m 3.18 MeV 0 eV 4.02 cm 4.1 cm Target Transportation + 3 -4.08 cm -7.4 cm -1.6 m 3.18 MeV 0 eV 80.4 cm 84.5 cm Tracker Transportation + 4 -5.07 cm -9.15 cm -1.4 m 3.18 MeV 0 eV 20.1 cm 1.05 m Chamber Transportation + 5 -8.05 cm -14.4 cm -80 cm 3.18 MeV 0 eV 60.3 cm 1.65 m Tracker Transportation + 6 -9.04 cm -16.2 cm -60 cm 3.18 MeV 0 eV 20.1 cm 1.85 m Chamber Transportation + 7 -12 cm -21.4 cm 0 fm 3.18 MeV 0 eV 60.3 cm 2.45 m Tracker Transportation + 8 -13 cm -23.2 cm 20 cm 3.18 MeV 0 eV 20.1 cm 2.65 m Chamber Transportation + 9 -16 cm -28.4 cm 80 cm 3.18 MeV 0 eV 60.3 cm 3.26 m Tracker Transportation + 10 -17 cm -30.2 cm 1 m 3.18 MeV 0 eV 20.1 cm 3.46 m Chamber Transportation + 11 -20 cm -35.4 cm 1.6 m 3.18 MeV 0 eV 60.3 cm 4.06 m Tracker Transportation + 12 -20.9 cm -37.2 cm 1.8 m 3.18 MeV 0 eV 20.1 cm 4.26 m Chamber Transportation + 13 -23.9 cm -42.4 cm 2.4 m 3.18 MeV 0 eV 60.3 cm 4.87 m Tracker Transportation + 14 -26.5 cm -46.9 cm 2.91 m 3.18 MeV 0 eV 51.3 cm 5.38 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 192 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 841 mum -481 mum -2.44 m 4.73 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.29 mm -839 mum -2.44 m 3.33 MeV 1.1 MeV 991 mum 991 mum Target eBrem + 2 1.43 mm -871 mum -2.44 m 2.47 MeV 177 keV 181 mum 1.17 mm Target eBrem + 3 1.18 mm -1.15 mm -2.44 m 740 keV 798 keV 818 mum 1.99 mm Target eBrem + 4 1.19 mm -1.16 mm -2.44 m 0 eV 740 keV 500 mum 2.49 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 205, Parent ID = 202 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 mm -1.15 mm -2.44 m 933 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.82 mm -2.26 mm -2.44 m 210 keV 0 eV 4.18 mm 4.18 mm Target compt + 2 -1.99 mm -1.95 mm -2.44 m 0 eV 88 keV 1.07 mm 5.25 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 205 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.99 mm -1.95 mm -2.44 m 122 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.99 mm -1.95 mm -2.44 m 0 eV 122 keV 38.2 mum 38.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 205 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.82 mm -2.26 mm -2.44 m 722 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.85 mm -2.27 mm -2.44 m 0 eV 722 keV 485 mum 485 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 204, Parent ID = 202 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.43 mm -871 mum -2.44 m 678 keV 0 eV 0 fm 0 fm Target initStep + 1 6.21 mm -2.42 mm -2.43 m 485 keV 0 eV 1.28 cm 1.28 cm Target compt + 2 5.86 mm -3.99 mm -2.43 m 411 keV 0 eV 2.37 mm 1.52 cm Target compt + 3 8.49 mm -7.49 mm -2.42 m 256 keV 0 eV 5.75 mm 2.1 cm Target compt + 4 8.32 mm -7.43 mm -2.42 m 242 keV 0 eV 367 mum 2.13 cm Target compt + 5 8.13 mm -7.63 mm -2.42 m 0 eV 88 keV 965 mum 2.23 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 204 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.13 mm -7.63 mm -2.42 m 154 keV 0 eV 0 fm 0 fm Target initStep + 1 8.13 mm -7.63 mm -2.42 m 0 eV 154 keV 54.9 mum 54.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 204 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.32 mm -7.43 mm -2.42 m 13.5 keV 0 eV 0 fm 0 fm Target initStep + 1 8.32 mm -7.43 mm -2.42 m 0 eV 13.5 keV 1.11 mum 1.11 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 204 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.49 mm -7.49 mm -2.42 m 155 keV 0 eV 0 fm 0 fm Target initStep + 1 8.49 mm -7.49 mm -2.42 m 0 eV 155 keV 55.1 mum 55.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 204 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.86 mm -3.99 mm -2.43 m 74 keV 0 eV 0 fm 0 fm Target initStep + 1 5.86 mm -3.99 mm -2.43 m 0 eV 74 keV 17 mum 17 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 204 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.21 mm -2.42 mm -2.43 m 193 keV 0 eV 0 fm 0 fm Target initStep + 1 6.22 mm -2.42 mm -2.43 m 0 eV 193 keV 77.7 mum 77.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 203, Parent ID = 202 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.29 mm -839 mum -2.44 m 302 keV 0 eV 0 fm 0 fm Target initStep + 1 2.51 mm -1.13 mm -2.44 m 187 keV 0 eV 4.07 mm 4.07 mm Target compt + 2 2.42 mm -1.56 mm -2.44 m 0 eV 88 keV 434 mum 4.5 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 214, Parent ID = 203 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.42 mm -1.56 mm -2.44 m 98.8 keV 0 eV 0 fm 0 fm Target initStep + 1 2.43 mm -1.56 mm -2.44 m 0 eV 98.8 keV 27.1 mum 27.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 203 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.51 mm -1.13 mm -2.44 m 115 keV 0 eV 0 fm 0 fm Target initStep + 1 2.51 mm -1.13 mm -2.44 m 0 eV 115 keV 34.7 mum 34.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 673 mum -661 mum -2.44 m 22 MeV 0 eV 0 fm 0 fm Target initStep + 1 661 mum -660 mum -2.44 m 15.4 MeV 405 keV 206 mum 206 mum Target eBrem + 2 731 mum -1.26 mm -2.44 m 12.3 MeV 1.24 MeV 834 mum 1.04 mm Target eBrem + 3 784 mum -1.63 mm -2.44 m 10.8 MeV 533 keV 454 mum 1.49 mm Target eBrem + 4 765 mum -2.3 mm -2.44 m 8.55 MeV 1.48 MeV 762 mum 2.26 mm Target eBrem + 5 524 mum -3.23 mm -2.44 m 5.64 MeV 2.12 MeV 1.38 mm 3.63 mm Target eBrem + 6 392 mum -3.41 mm -2.44 m 4.92 MeV 254 keV 230 mum 3.86 mm Target eBrem + 7 500 mum -3.98 mm -2.44 m 3.35 MeV 837 keV 795 mum 4.66 mm Target eBrem + 8 717 mum -4.38 mm -2.44 m 1.19 MeV 2.16 MeV 1.82 mm 6.48 mm Target eIoni + 9 729 mum -4.21 mm -2.44 m 291 keV 898 keV 808 mum 7.29 mm Target eBrem + 10 720 mum -4.21 mm -2.44 m 0 eV 291 keV 142 mum 7.43 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 221, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 500 mum -3.98 mm -2.44 m 737 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.09 mm -2.5 cm -2.44 m 737 keV 0 eV 2.26 cm 2.26 cm Target Transportation + 2 -9.72 cm -27.5 cm -2.4 m 737 keV 0 eV 26.8 cm 29 cm World Transportation + 3 -86.5 cm -2.4 m -2.09 m 737 keV 0 eV 2.28 m 2.57 m Tracker Transportation + 4 -1.05 m -2.91 m -2.01 m 737 keV 0 eV 54.7 cm 3.12 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 220, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 392 mum -3.41 mm -2.44 m 462 keV 0 eV 0 fm 0 fm Target initStep + 1 123 mum -4.01 mm -2.44 m 0 eV 88 keV 774 mum 774 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 220 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 123 mum -4.01 mm -2.44 m 374 keV 0 eV 0 fm 0 fm Target initStep + 1 116 mum -4.02 mm -2.44 m 0 eV 374 keV 203 mum 203 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 219, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 524 mum -3.23 mm -2.44 m 791 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.13 cm -2.5 cm -2.43 m 791 keV 0 eV 2.55 cm 2.55 cm Target Transportation + 2 -7.6 cm -14.4 cm -2.4 m 791 keV 0 eV 13.9 cm 16.5 cm World Transportation + 3 -1.31 m -2.4 m -1.77 m 791 keV 0 eV 2.65 m 2.81 m Tracker Transportation + 4 -1.58 m -2.91 m -1.62 m 791 keV 0 eV 59.8 cm 3.41 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 218, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 765 mum -2.3 mm -2.44 m 814 keV 0 eV 0 fm 0 fm Target initStep + 1 1.44 cm -1.62 cm -2.43 m 220 keV 0 eV 2.25 cm 2.25 cm Target compt + 2 1.34 cm -1.55 cm -2.43 m 0 eV 88 keV 1.29 mm 2.38 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 224, Parent ID = 218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.34 cm -1.55 cm -2.43 m 132 keV 0 eV 0 fm 0 fm Target initStep + 1 1.34 cm -1.55 cm -2.43 m 0 eV 132 keV 43.3 mum 43.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 223, Parent ID = 218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.44 cm -1.62 cm -2.43 m 594 keV 0 eV 0 fm 0 fm Target initStep + 1 1.44 cm -1.62 cm -2.43 m 0 eV 594 keV 379 mum 379 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 217, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 784 mum -1.63 mm -2.44 m 903 keV 0 eV 0 fm 0 fm Target initStep + 1 -3 mm -1.19 cm -2.43 m 203 keV 0 eV 1.35 cm 1.35 cm Target compt + 2 -2.45 mm -1.12 cm -2.43 m 187 keV 0 eV 1 mm 1.45 cm Target compt + 3 -2.34 mm -1.11 cm -2.43 m 0 eV 88 keV 163 mum 1.46 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.34 mm -1.11 cm -2.43 m 99.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.34 mm -1.11 cm -2.43 m 0 eV 99.4 keV 27.3 mum 27.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.45 mm -1.12 cm -2.43 m 15.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.45 mm -1.12 cm -2.43 m 0 eV 15.3 keV 1.34 mum 1.34 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 225, Parent ID = 217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3 mm -1.19 cm -2.43 m 700 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.01 mm -1.19 cm -2.43 m 0 eV 700 keV 467 mum 467 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 216, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 731 mum -1.26 mm -2.44 m 1.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 896 mum -1.51 cm -2.43 m 0 eV 0 eV 2.04 cm 2.04 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 229, Parent ID = 216 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 896 mum -1.51 cm -2.43 m 219 keV 0 eV 0 fm 0 fm Target initStep + 1 902 mum -1.51 cm -2.43 m 0 eV 219 keV 90.3 mum 90.3 mum Target eIoni + 2 902 mum -1.51 cm -2.43 m 0 eV 0 eV 0 fm 90.3 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 231, Parent ID = 229 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 902 mum -1.51 cm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.44 mm -1.51 cm -2.43 m 0 eV 88 keV 1.55 mm 1.55 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 232, Parent ID = 231 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.44 mm -1.51 cm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 2.45 mm -1.51 cm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 230, Parent ID = 229 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 902 mum -1.51 cm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.09 mm -1.56 cm -2.43 m 510 keV 0 eV 8.04 mm 8.04 mm Target compt + 2 -7.42 mm -1.56 cm -2.43 m 0 eV 88 keV 330 mum 8.37 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.42 mm -1.56 cm -2.43 m 422 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.44 mm -1.56 cm -2.43 m 0 eV 422 keV 240 mum 240 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.09 mm -1.56 cm -2.43 m 641 eV 0 eV 0 fm 0 fm Target initStep + 1 -7.09 mm -1.56 cm -2.43 m 0 eV 641 eV 16.8 nm 16.8 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 216 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 896 mum -1.51 cm -2.43 m 651 keV 0 eV 0 fm 0 fm Target initStep + 1 881 mum -1.52 cm -2.43 m 0 eV 651 keV 425 mum 425 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 215, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 661 mum -660 mum -2.44 m 6.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.06 mm -7.53 mm -2.43 m 0 eV 0 eV 1.12 cm 1.12 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 236, Parent ID = 215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.06 mm -7.53 mm -2.43 m 4.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.07 mm -7.55 mm -2.43 m 3.91 MeV 48.8 keV 50.1 mum 50.1 mum Target eBrem + 2 -1.61 mm -7.95 mm -2.43 m 2.78 MeV 1.13 MeV 917 mum 967 mum Target eBrem + 3 -925 mum -8.1 mm -2.43 m 893 keV 1.88 MeV 1.68 mm 2.65 mm Target eIoni + 4 -877 mum -8.14 mm -2.43 m 0 eV 893 keV 638 mum 3.29 mm Target eIoni + 5 -877 mum -8.14 mm -2.43 m 0 eV 0 eV 0 fm 3.29 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 239, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -877 mum -8.14 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.56 mm -9.81 mm -2.43 m 0 eV 88 keV 2 mm 2 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 239 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.56 mm -9.81 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.55 mm -9.82 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 238, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -877 mum -8.14 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 500 mum -4.77 mm -2.43 m 328 keV 0 eV 4.03 mm 4.03 mm Target compt + 2 2.81 mm -3.77 mm -2.43 m 295 keV 0 eV 2.71 mm 6.74 mm Target compt + 3 4.81 mm -216 mum -2.43 m 0 eV 88 keV 4.52 mm 1.13 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 243, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.81 mm -216 mum -2.43 m 207 keV 0 eV 0 fm 0 fm Target initStep + 1 4.81 mm -212 mum -2.43 m 0 eV 207 keV 86.2 mum 86.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 242, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.81 mm -3.77 mm -2.43 m 32.9 keV 0 eV 0 fm 0 fm Target initStep + 1 2.81 mm -3.77 mm -2.43 m 0 eV 32.9 keV 4.53 mum 4.53 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 500 mum -4.77 mm -2.43 m 183 keV 0 eV 0 fm 0 fm Target initStep + 1 498 mum -4.77 mm -2.43 m 0 eV 183 keV 71.5 mum 71.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 237, Parent ID = 236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.07 mm -7.55 mm -2.43 m 467 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.96 mm -8.23 mm -2.43 m 355 keV 0 eV 2.25 mm 2.25 mm Target compt + 2 -4.04 mm -7.89 mm -2.43 m 0 eV 88 keV 1.13 mm 3.38 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 245, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.04 mm -7.89 mm -2.43 m 267 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.04 mm -7.9 mm -2.43 m 0 eV 267 keV 126 mum 126 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 244, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.96 mm -8.23 mm -2.43 m 112 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.96 mm -8.23 mm -2.43 m 0 eV 112 keV 33.2 mum 33.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.06 mm -7.53 mm -2.43 m 751 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.07 mm -7.55 mm -2.43 m 0 eV 751 keV 510 mum 510 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -323 mum 209 mum -2.45 m 3.27 MeV 0 eV 0 fm 0 fm Target initStep - 1 -305 mum 209 mum -2.45 m 686 keV 0 eV 631 mum 631 mum Target compt - 2 -427 mum 231 mum -2.45 m 263 keV 0 eV 138 mum 769 mum Target compt - 3 -303 mum 179 mum -2.45 m 263 keV 88 keV 218 mum 988 mum Target phot + 0 437 mum -707 mum -2.45 m 451 keV 0 eV 0 fm 0 fm Target initStep + 1 505 mum -682 mum -2.45 m 0 eV 88 keV 2.21 mm 2.21 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 246, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -303 mum 179 mum -2.45 m 175 keV 0 eV 0 fm 0 fm Target initStep - 1 -300 mum 176 mum -2.45 m 0 eV 175 keV 66.8 mum 66.8 mum Target eIoni + 0 505 mum -682 mum -2.45 m 363 keV 0 eV 0 fm 0 fm Target initStep + 1 499 mum -676 mum -2.45 m 0 eV 363 keV 195 mum 195 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -427 mum 231 mum -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -443 mum 235 mum -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -305 mum 209 mum -2.45 m 2.59 MeV 0 eV 0 fm 0 fm Target initStep - 1 -250 mum 200 mum -2.45 m 0 eV 2.59 MeV 1.99 mm 1.99 mm Target eBrem - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -325 mum 197 mum -2.45 m 1.34 MeV 0 eV 0 fm 0 fm Target initStep - 1 -324 mum 200 mum -2.45 m 515 keV 0 eV 333 mum 333 mum Target compt - 2 -3.2 mm -1.22 cm -2.44 m 210 keV 0 eV 1.38 cm 1.42 cm Target compt - 3 -2.85 mm -1.22 cm -2.44 m 210 keV 88 keV 724 mum 1.49 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.85 mm -1.22 cm -2.44 m 122 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.85 mm -1.22 cm -2.44 m 0 eV 122 keV 37.9 mum 37.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.2 mm -1.22 cm -2.44 m 305 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.21 mm -1.22 cm -2.44 m 0 eV 305 keV 152 mum 152 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -324 mum 200 mum -2.45 m 830 keV 0 eV 0 fm 0 fm Target initStep - 1 -461 mum 370 mum -2.45 m 245 keV 585 keV 421 mum 421 mum Target eBrem - 2 -460 mum 368 mum -2.45 m 0 eV 245 keV 110 mum 531 mum Target eIoni + 0 30.8 mum -495 mum -2.65 m 9.3 keV 0 eV 0 fm 0 fm World initStep + 1 -7.54 mum -504 mum -2.65 m 9.28 keV 15.4 eV 40 mum 40 mum World msc + 2 -783 mum -1 mm -2.65 m 5.21 keV 4.07 keV 1.6 mm 1.64 mm World eIoni + 3 -1.09 mm -1.12 mm -2.65 m 0 eV 5.21 keV 739 mum 2.38 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 0 fm 0 fm -2.86 m 11 keV 0 eV 0 fm 0 fm World initStep - 1 398 mum -1.2 mm -2.86 m 0 eV 11 keV 2.69 mm 2.69 mm World eIoni + 0 -30.5 mum 6.38 mum -2.86 m 10.3 keV 0 eV 0 fm 0 fm World initStep + 1 -8.22 mum 47.4 mum -2.86 m 10.2 keV 32 eV 47.4 mum 47.4 mum World msc + 2 717 mum 872 mum -2.86 m 5.73 keV 4.5 keV 1.73 mm 1.78 mm World eIoni + 3 1.09 mm 813 mum -2.86 m 0 eV 5.73 keV 872 mum 2.65 mm World eIoni >>> Event 0 0 trajectories stored in this event. ### Run 1 start. @@ -2094,119 +2369,561 @@ Step# X Y Z KineE dEStep StepLeng TrakLeng Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm -2.91 m 1 TeV 0 eV 0 fm 0 fm World initStep - 1 12.3 nm -55.3 nm -2.73 m 1e+03 GeV 50.6 keV 17.5 cm 17.5 cm World muIoni - 2 -39.9 nm -100 nm -2.45 m 1e+03 GeV 61.9 keV 28.5 cm 46 cm World Transportation - 3 -36.3 nm -108 nm -2.4 m 1e+03 GeV 80.2 MeV 5 cm 51 cm Target Transportation - 4 21.3 mum 10.8 mum -2.17 m 1e+03 GeV 47.9 keV 23.4 cm 74.4 cm Tracker muIoni - 5 73 mum 37.1 mum -1.6 m 1e+03 GeV 145 keV 56.6 cm 1.31 m Tracker Transportation - 6 91.4 mum 46.4 mum -1.4 m 1e+03 GeV 139 keV 20 cm 1.51 m Chamber Transportation - 7 147 mum 74.3 mum -80 cm 1e+03 GeV 139 keV 60 cm 2.11 m Tracker Transportation - 8 166 mum 83.5 mum -60 cm 1e+03 GeV 162 keV 20 cm 2.31 m Chamber Transportation - 9 221 mum 111 mum 0 fm 1e+03 GeV 136 keV 60 cm 2.91 m Tracker Transportation - 10 235 mum 118 mum 16.4 cm 1e+03 GeV 101 keV 16.4 cm 3.07 m Chamber muIoni - 11 239 mum 120 mum 20 cm 1e+03 GeV 17.4 keV 3.59 cm 3.11 m Chamber Transportation - 12 246 mum 124 mum 27.6 cm 1e+03 GeV 22.2 keV 7.58 cm 3.19 m Tracker muIoni - 13 263 mum 132 mum 46.5 cm 1e+03 GeV 41.4 keV 18.9 cm 3.37 m Tracker muIoni - 14 277 mum 140 mum 61.4 cm 1e+03 GeV 36.4 keV 14.9 cm 3.52 m Tracker muIoni - 15 295 mum 148 mum 80 cm 1e+03 GeV 40.7 keV 18.6 cm 3.71 m Tracker Transportation - 16 314 mum 158 mum 1 m 1e+03 GeV 167 keV 20 cm 3.91 m Chamber Transportation - 17 325 mum 164 mum 1.12 m 1e+03 GeV 29.6 keV 12.1 cm 4.03 m Tracker muIoni - 18 369 mum 187 mum 1.6 m 1e+03 GeV 103 keV 47.9 cm 4.51 m Tracker Transportation - 19 378 mum 192 mum 1.71 m 1e+03 GeV 61 keV 10.6 cm 4.62 m Chamber muIoni - 20 387 mum 197 mum 1.8 m 1e+03 GeV 71.9 keV 9.37 cm 4.71 m Chamber Transportation - 21 419 mum 213 mum 2.14 m 1e+03 GeV 77.3 keV 33.8 cm 5.05 m Tracker muIoni - 22 443 mum 225 mum 2.4 m 1e+03 GeV 61.9 keV 26.2 cm 5.31 m Tracker Transportation - 23 471 mum 239 mum 2.7 m 1e+03 GeV 72.3 keV 29.8 cm 5.61 m World muIoni - 24 483 mum 245 mum 2.83 m 1e+03 GeV 31.1 keV 12.8 cm 5.74 m World muIoni - 25 491 mum 249 mum 2.91 m 1e+03 GeV 17.3 keV 8.49 cm 5.82 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 483 mum 245 mum 2.83 m 9.64 keV 0 eV 0 fm 0 fm World initStep - 1 -109 mum -553 mum 2.83 m 0 eV 9.64 keV 2.13 mm 2.13 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 471 mum 239 mum 2.7 m 12.7 keV 0 eV 0 fm 0 fm World initStep - 1 -935 mum -524 mum 2.7 m 0 eV 12.7 keV 3.4 mm 3.4 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 419 mum 213 mum 2.14 m 13.8 keV 0 eV 0 fm 0 fm Tracker initStep - 1 2.21 mm 818 mum 2.14 m 0 eV 13.8 keV 4 mm 4 mm Tracker eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 378 mum 192 mum 1.71 m 80 keV 0 eV 0 fm 0 fm Chamber initStep - 1 3.55 mm 1.43 mm 1.71 m 0 eV 80 keV 3.41 cm 3.41 cm Chamber eIoni + 1 0 fm 0 fm -2.45 m 1e+03 GeV 115 keV 46 cm 46 cm World Transportation + 2 81.4 nm 187 nm -2.44 m 1e+03 GeV 31.4 MeV 1.25 cm 47.3 cm Target msc + 3 -71.5 nm 392 nm -2.43 m 1e+03 GeV 5.32 MeV 4.51 mm 47.7 cm Target muIoni + 4 -390 nm 1.47 mum -2.42 m 1e+03 GeV 22.9 MeV 1.25 cm 49 cm Target msc + 5 -503 nm 2.18 mum -2.41 m 1e+03 GeV 17.9 MeV 1.25 cm 50.2 cm Target msc + 6 -310 nm 2.57 mum -2.4 m 1e+03 GeV 11 MeV 7.99 mm 51 cm Target Transportation + 7 10.4 mum 5.58 mum -2.2 m 1e+03 GeV 51.9 keV 20 cm 71 cm Tracker msc + 8 21.2 mum 8.63 mum -2 m 1e+03 GeV 42.5 keV 20 cm 91 cm Tracker msc + 9 32 mum 11.6 mum -1.8 m 1e+03 GeV 48 keV 20 cm 1.11 m Tracker msc + 10 42.8 mum 14.6 mum -1.6 m 1e+03 GeV 53.6 keV 20 cm 1.31 m Tracker msc + 11 42.8 mum 14.6 mum -1.6 m 1e+03 GeV6.84e-06 eV 2.95e+04 fm 1.31 m Tracker Transportation + 12 45.5 mum 15.4 mum -1.55 m 1e+03 GeV 44.2 keV 5 cm 1.36 m Chamber msc + 13 48.2 mum 16.2 mum -1.5 m 1e+03 GeV 51.2 keV 5 cm 1.41 m Chamber msc + 14 50.9 mum 17 mum -1.45 m 1e+03 GeV 33.9 keV 5 cm 1.46 m Chamber msc + 15 53.5 mum 17.7 mum -1.4 m 1e+03 GeV 41.5 keV 5 cm 1.51 m Chamber Transportation + 16 61.5 mum 19.9 mum -1.25 m 1e+03 GeV 39.8 keV 15 cm 1.66 m Tracker msc + 17 69.6 mum 22.1 mum -1.1 m 1e+03 GeV 33.8 keV 15 cm 1.81 m Tracker msc + 18 77.6 mum 24.4 mum -95 cm 1e+03 GeV 41.8 keV 15 cm 1.96 m Tracker msc + 19 85.7 mum 26.7 mum -80 cm 1e+03 GeV 31.6 keV 15 cm 2.11 m Tracker msc + 20 85.7 mum 26.7 mum -80 cm 1e+03 GeV5.21e-06 eV 2.24e+04 fm 2.11 m Tracker Transportation + 21 88.4 mum 27.4 mum -75 cm 1e+03 GeV 39.2 keV 5 cm 2.16 m Chamber msc + 22 91.1 mum 28.1 mum -70 cm 1e+03 GeV 32.6 keV 5 cm 2.21 m Chamber msc + 23 93.7 mum 28.8 mum -65 cm 1e+03 GeV 30.4 keV 5 cm 2.26 m Chamber msc + 24 96.4 mum 29.6 mum -60 cm 1e+03 GeV 32.1 keV 5 cm 2.31 m Chamber Transportation + 25 104 mum 31.7 mum -45 cm 1e+03 GeV 33.6 keV 15 cm 2.46 m Tracker msc + 26 112 mum 33.8 mum -30 cm 1e+03 GeV 46.6 keV 15 cm 2.61 m Tracker msc + 27 120 mum 36 mum -15 cm 1e+03 GeV 30.9 keV 15 cm 2.76 m Tracker msc + 28 127 mum 38.2 mum0.0284 fm 1e+03 GeV 48.6 keV 15 cm 2.91 m Tracker Transportation + 29 130 mum 38.9 mum 5 cm 1e+03 GeV 31.4 keV 5 cm 2.96 m Chamber msc + 30 132 mum 39.6 mum 10 cm 1e+03 GeV 40 keV 5 cm 3.01 m Chamber msc + 31 135 mum 40.3 mum 15 cm 1e+03 GeV 42.6 keV 5 cm 3.06 m Chamber msc + 32 138 mum 41 mum 20 cm 1e+03 GeV 36.2 keV 5 cm 3.11 m Chamber msc + 33 138 mum 41 mum 20 cm 1e+03 GeV1.65e-06 eV 2.01e+03 fm 3.11 m Chamber Transportation + 34 146 mum 43.6 mum 35 cm 1e+03 GeV 34.2 keV 15 cm 3.26 m Tracker msc + 35 153 mum 46.3 mum 50 cm 1e+03 GeV 29.8 keV 15 cm 3.41 m Tracker msc + 36 161 mum 49 mum 65 cm 1e+03 GeV 32.1 keV 15 cm 3.56 m Tracker msc + 37 169 mum 51.8 mum 80 cm 1e+03 GeV 36.6 keV 15 cm 3.71 m Tracker msc + 38 169 mum 51.8 mum 80 cm 1e+03 GeV1.62e-06 eV 6.96e+03 fm 3.71 m Tracker Transportation + 39 172 mum 52.7 mum 85 cm 1e+03 GeV 52.6 keV 5 cm 3.76 m Chamber msc + 40 174 mum 53.3 mum 90 cm 1e+03 GeV 38.7 keV 5 cm 3.81 m Chamber msc + 41 177 mum 53.8 mum 95 cm 1e+03 GeV 30 keV 5 cm 3.86 m Chamber msc + 42 180 mum 54.4 mum 1 m 1e+03 GeV 53.6 keV 5 cm 3.91 m Chamber Transportation + 43 187 mum 56.1 mum 1.15 m 1e+03 GeV 33.5 keV 15 cm 4.06 m Tracker msc + 44 195 mum 57.9 mum 1.3 m 1e+03 GeV 33.4 keV 15 cm 4.21 m Tracker msc + 45 203 mum 59.6 mum 1.45 m 1e+03 GeV 23.7 keV 15 cm 4.36 m Tracker msc + 46 211 mum 61.3 mum 1.6 m 1e+03 GeV 32.7 keV 15 cm 4.51 m Tracker msc + 47 211 mum 61.3 mum 1.6 m 1e+03 GeV1.02e-06 eV 4.38e+03 fm 4.51 m Tracker Transportation + 48 212 mum 61.5 mum 1.62 m 1e+03 GeV 24.1 keV 2.04 cm 4.53 m Chamber muIoni + 49 214 mum 62.1 mum 1.67 m 1e+03 GeV 31 keV 5 cm 4.58 m Chamber msc + 50 217 mum 62.7 mum 1.72 m 1e+03 GeV 35.5 keV 5 cm 4.63 m Chamber msc + 51 219 mum 63.3 mum 1.77 m 1e+03 GeV 55.4 keV 5 cm 4.68 m Chamber msc + 52 221 mum 63.6 mum 1.8 m 1e+03 GeV 29.7 keV 2.96 cm 4.71 m Chamber Transportation + 53 229 mum 65.2 mum 1.95 m 1e+03 GeV 38.8 keV 15 cm 4.86 m Tracker msc + 54 236 mum 66.9 mum 2.1 m 1e+03 GeV 44.8 keV 15 cm 5.01 m Tracker msc + 55 237 mum 67.1 mum 2.12 m 1e+03 GeV 3.83 keV 2.06 cm 5.03 m Tracker muIoni + 56 245 mum 68.8 mum 2.27 m 1e+03 GeV 35.4 keV 15 cm 5.18 m Tracker msc + 57 251 mum 70.2 mum 2.4 m 1e+03 GeV 30.8 keV 12.9 cm 5.31 m Tracker Transportation + 58 260 mum 72.2 mum 2.58 m 1e+03 GeV 40.9 keV 18.3 cm 5.49 m World muIoni + 59 265 mum 73.3 mum 2.69 m 1e+03 GeV 28.8 keV 10.4 cm 5.6 m World muIoni + 60 265 mum 73.3 mum 2.69 m 1e+03 GeV 170 eV 496 mum 5.6 m World muIoni + 61 269 mum 74 mum 2.75 m 1e+03 GeV 19.7 keV 6.72 cm 5.66 m World muIoni + 62 276 mum 75.7 mum 2.91 m 1e+03 GeV 32 keV 15.5 cm 5.82 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 325 mum 164 mum 1.12 m 33.5 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -4.85 mm -7.38 mm 1.12 m 0 eV 33.5 keV 1.95 cm 1.95 cm Tracker eIoni + 0 269 mum 74 mum 2.75 m 183 keV 0 eV 0 fm 0 fm World initStep + 1 5.75 mm -4.76 mm 2.76 m 178 keV 5.21 keV 7.71 mm 7.71 mm World msc + 2 1.23 cm -8.61 mm 2.76 m 176 keV 1.81 keV 7.71 mm 1.54 cm World msc + 3 1.92 cm -1.14 cm 2.76 m 172 keV 3.64 keV 7.71 mm 2.31 cm World msc + 4 1.9 cm -1.76 cm 2.76 m 170 keV 1.93 keV 7.71 mm 3.08 cm World msc + 5 1.77 cm -2.43 cm 2.75 m 168 keV 2.75 keV 7.71 mm 3.86 cm World msc + 6 1.52 cm -3.1 cm 2.75 m 165 keV 2.43 keV 7.71 mm 4.63 cm World msc + 7 1.22 cm -3.68 cm 2.75 m 164 keV 1.72 keV 7.71 mm 5.4 cm World msc + 8 9.54 mm -4.38 cm 2.74 m 158 keV 5.26 keV 7.71 mm 6.17 cm World msc + 9 6.44 mm -5.05 cm 2.74 m 155 keV 3.25 keV 7.71 mm 6.94 cm World msc + 10 4.98 mm -5.71 cm 2.74 m 153 keV 2.4 keV 7.71 mm 7.71 cm World msc + 11 3.94 mm -6.02 cm 2.74 m 142 keV 840 eV 3.48 mm 8.06 cm World eIoni + 12 2.97 mm -6.72 cm 2.73 m 139 keV 2.43 keV 7.71 mm 8.83 cm World msc + 13 804 mum -7.43 cm 2.73 m 135 keV 4.15 keV 7.71 mm 9.6 cm World msc + 14 -1.26 mm -8.07 cm 2.73 m 134 keV 1.63 keV 7.71 mm 10.4 cm World msc + 15 -3.25 mm -8.79 cm 2.73 m 131 keV 2.19 keV 7.71 mm 11.1 cm World msc + 16 -8.59 mm -9.22 cm 2.72 m 129 keV 2.27 keV 7.71 mm 11.9 cm World msc + 17 -1.27 cm -9.81 cm 2.72 m 127 keV 2.47 keV 7.71 mm 12.7 cm World msc + 18 -1.65 cm -10.3 cm 2.72 m 125 keV 1.66 keV 7.71 mm 13.5 cm World msc + 19 -2.2 cm -10.6 cm 2.71 m 122 keV 2.87 keV 7.71 mm 14.2 cm World msc + 20 -2.56 cm -10.9 cm 2.71 m 117 keV 5.19 keV 7.71 mm 15 cm World msc + 21 -2.93 cm -11.5 cm 2.7 m 113 keV 3.71 keV 7.71 mm 15.8 cm World msc + 22 -3.29 cm -12 cm 2.7 m 111 keV 2.05 keV 7.71 mm 16.5 cm World msc + 23 -3.59 cm -12.6 cm 2.69 m 108 keV 2.67 keV 7.71 mm 17.3 cm World msc + 24 -4.15 cm -13.1 cm 2.69 m 106 keV 2.77 keV 7.71 mm 18.1 cm World msc + 25 -4.76 cm -13.5 cm 2.69 m 103 keV 2.85 keV 7.71 mm 18.9 cm World msc + 26 -6.68 cm -15.6 cm 2.69 m 91.1 keV 11.7 keV 3.03 cm 21.9 cm World eIoni + 27 -7.12 cm -17.4 cm 2.7 m 79.1 keV 12.1 keV 2.5 cm 24.4 cm World eIoni + 28 -7.6 cm -17.2 cm 2.72 m 70.9 keV 8.15 keV 1.96 cm 26.3 cm World eIoni + 29 -8.1 cm -17.1 cm 2.74 m 60.3 keV 10.6 keV 1.66 cm 28 cm World eIoni + 30 -8.9 cm -16.9 cm 2.74 m 53.7 keV 6.61 keV 1.28 cm 29.3 cm World eIoni + 31 -9.72 cm -17.3 cm 2.75 m 48.9 keV 4.8 keV 1.07 cm 30.4 cm World eIoni + 32 -9.67 cm -17.7 cm 2.76 m 41.8 keV 7.17 keV 9.25 mm 31.3 cm World eIoni + 33 -9.93 cm -17.7 cm 2.76 m 34.4 keV 7.33 keV 7.35 mm 32 cm World eIoni + 34 -9.98 cm -17.6 cm 2.77 m 30.6 keV 3.78 keV 5.65 mm 32.6 cm World eIoni + 35 -10.2 cm -17.5 cm 2.77 m 27.9 keV 2.73 keV 4.85 mm 33.1 cm World eIoni + 36 -10.4 cm -17.7 cm 2.77 m 23.5 keV 4.45 keV 4.34 mm 33.5 cm World eIoni + 37 -10.6 cm -17.8 cm 2.78 m 18.3 keV 5.16 keV 3.57 mm 33.9 cm World eIoni + 38 -10.7 cm -17.9 cm 2.78 m 12.6 keV 5.7 keV 2.79 mm 34.1 cm World eIoni + 39 -10.7 cm -18.1 cm 2.78 m 8.29 keV 4.31 keV 2.04 mm 34.3 cm World eIoni + 40 -10.6 cm -18.2 cm 2.78 m 3.6 keV 4.7 keV 1.44 mm 34.5 cm World eIoni + 41 -10.6 cm -18.2 cm 2.78 m 0 eV 3.6 keV 399 mum 34.5 cm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 8 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.94 mm -6.02 cm 2.74 m 10.1 keV 0 eV 0 fm 0 fm World initStep + 1 3.92 mm -6.02 cm 2.74 m 10 keV 33.4 eV 45.7 mum 45.7 mum World msc + 2 2.76 mm -6.09 cm 2.74 m 3.72 keV 6.32 keV 1.7 mm 1.75 mm World eIoni + 3 2.81 mm -6.1 cm 2.74 m 0 eV 3.72 keV 421 mum 2.17 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 277 mum 140 mum 61.4 cm 14.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -761 mum 1.84 mm 61.4 cm 0 eV 14.3 keV 4.22 mm 4.22 mm Tracker eIoni + 0 265 mum 73.3 mum 2.69 m 52.4 keV 0 eV 0 fm 0 fm World initStep + 1 1.07 mm -129 mum 2.69 m 52.3 keV 104 eV 869 mum 869 mum World msc + 2 9.06 mm 948 mum 2.69 m 44.8 keV 7.48 keV 1.02 cm 1.11 cm World eIoni + 3 1.4 cm 5.38 mm 2.7 m 39.3 keV 5.45 keV 8.15 mm 1.93 cm World eIoni + 4 1.37 cm 9.89 mm 2.7 m 32 keV 7.37 keV 6.73 mm 2.6 cm World eIoni + 5 1.03 cm 8.91 mm 2.7 m 27.3 keV 4.66 keV 5.1 mm 3.11 cm World eIoni + 6 7.18 mm 6.62 mm 2.7 m 22.3 keV 4.99 keV 4.23 mm 3.53 cm World eIoni + 7 5.32 mm 5.29 mm 2.7 m 17.3 keV 5.01 keV 3.38 mm 3.87 cm World eIoni + 8 5.34 mm 3.18 mm 2.7 m 13.3 keV 3.99 keV 2.65 mm 4.14 cm World eIoni + 9 5.26 mm 1.64 mm 2.7 m 9.27 keV 4.04 keV 2.13 mm 4.35 cm World eIoni + 10 4.98 mm 1.89 mm 2.7 m 2.99 keV 6.28 keV 1.6 mm 4.51 cm World eIoni + 11 5.05 mm 2 mm 2.7 m 0 eV 2.99 keV 294 mum 4.54 cm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 263 mum 132 mum 46.5 cm 15.4 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -6.27 mum -2.13 mm 46.5 cm 0 eV 15.4 keV 4.82 mm 4.82 mm Tracker eIoni + 0 265 mum 73.3 mum 2.69 m 16.9 keV 0 eV 0 fm 0 fm World initStep + 1 336 mum -15.7 mum 2.69 m 16.9 keV 42.3 eV 114 mum 114 mum World msc + 2 1.08 mm -2.17 mm 2.69 m 13.2 keV 3.65 keV 2.59 mm 2.71 mm World eIoni + 3 2.6 mm -3.15 mm 2.69 m 7.42 keV 5.79 keV 2.12 mm 4.83 mm World eIoni + 4 2.76 mm -2.52 mm 2.69 m 2.94 keV 4.49 keV 1.28 mm 6.11 mm World eIoni + 5 2.68 mm -2.46 mm 2.69 m 0 eV 2.94 keV 287 mum 6.4 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 246 mum 124 mum 27.6 cm 219 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -20.1 cm 9.48 cm 37.9 cm 0 eV 219 keV 51.9 cm 51.9 cm Tracker eIoni + 0 260 mum 72.2 mum 2.58 m 10.9 keV 0 eV 0 fm 0 fm World initStep + 1 216 mum 99.8 mum 2.58 m 10.8 keV 70.8 eV 53 mum 53 mum World msc + 2 -212 mum 1.28 mm 2.58 m 5.58 keV 5.27 keV 1.82 mm 1.87 mm World eIoni + 3 -19.7 mum 971 mum 2.58 m 0 eV 5.58 keV 832 mum 2.7 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 235 mum 118 mum 16.4 cm 46.1 keV 0 eV 0 fm 0 fm Chamber initStep - 1 -1.19 mm 34 mum 16.4 cm 0 eV 46.1 keV 1.37 cm 1.37 cm Chamber eIoni + 0 237 mum 67.1 mum 2.12 m 8.07 keV 0 eV 0 fm 0 fm Tracker initStep + 1 287 mum 865 mum 2.12 m 1.42 keV 6.66 keV 1.4 mm 1.4 mm Tracker eIoni + 2 259 mum 860 mum 2.12 m 0 eV 1.42 keV 94 mum 1.49 mm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 21.3 mum 10.8 mum -2.17 m 67.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -9.95 mm -2.97 cm -2.16 m 0 eV 67.3 keV 6.82 cm 6.82 cm Tracker eIoni + 0 212 mum 61.5 mum 1.62 m 48.7 keV 0 eV 0 fm 0 fm Chamber initStep + 1 -1.19 mm -1.89 mm 1.62 m 40.4 keV 8.29 keV 4.53 mm 4.53 mm Chamber eIoni + 2 -1.97 mm -3.42 mm 1.62 m 32.3 keV 8.13 keV 3.71 mm 8.24 mm Chamber eIoni + 3 -2.73 mm -2.94 mm 1.62 m 23.2 keV 9.04 keV 2.99 mm 1.12 cm Chamber eIoni + 4 -2.94 mm -2.34 mm 1.63 m 16.3 keV 6.92 keV 2.29 mm 1.35 cm Chamber eIoni + 5 -3.12 mm -1.89 mm 1.62 m 6.92 keV 9.4 keV 1.75 mm 1.53 cm Chamber eIoni + 6 -3.18 mm -1.87 mm 1.62 m 0 eV 6.92 keV 623 mum 1.59 cm Chamber eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 12.3 nm -55.3 nm -2.73 m 17.7 keV 0 eV 0 fm 0 fm World initStep - 1 -506 mum 2.89 mm -2.73 m 0 eV 17.7 keV 6.2 mm 6.2 mm World eIoni + 0 -71.5 nm 392 nm -2.43 m 37.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -113 mum 65 mum -2.43 m 32.2 MeV 636 keV 526 mum 526 mum Target eBrem + 2 -450 mum -102 mum -2.43 m 30.7 MeV 1.08 MeV 577 mum 1.1 mm Target eBrem + 3 -1.25 mm -569 mum -2.43 m 26.1 MeV 1.27 MeV 972 mum 2.08 mm Target eBrem + 4 -1.29 mm -593 mum -2.43 m 21.7 MeV 48.5 keV 44.8 mum 2.12 mm Target eBrem + 5 -1.72 mm -946 mum -2.43 m 10.4 MeV 1.1 MeV 571 mum 2.69 mm Target eBrem + 6 -1.96 mm -1.04 mm -2.43 m 6.61 MeV 339 keV 320 mum 3.01 mm Target eBrem + 7 -2.21 mm -1.78 mm -2.43 m 2.22 MeV 1.6 MeV 1.41 mm 4.42 mm Target eBrem + 8 -2.2 mm -1.78 mm -2.43 m 749 keV 4.26 keV 7.71 mum 4.43 mm Target eBrem + 9 -2.18 mm -1.78 mm -2.43 m 0 eV 749 keV 508 mum 4.94 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.2 mm -1.78 mm -2.43 m 1.46 MeV 0 eV 0 fm 0 fm Target initStep + 1 354 mum -1.97 mm -2.43 m 0 eV 88 keV 3.92 mm 3.92 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 18, Parent ID = 17 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 354 mum -1.97 mm -2.43 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 377 mum -1.97 mm -2.43 m 0 eV 1.38 MeV 1.04 mm 1.04 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.21 mm -1.78 mm -2.43 m 2.79 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.75 mm -2.02 mm -2.43 m 2.34 MeV 0 eV 3.51 mm 3.51 mm Target compt + 2 -1.31 mm -6.44 mm -2.41 m 0 eV 0 eV 2.12 cm 2.47 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 21, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.31 mm -6.44 mm -2.41 m 478 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 mm -6.45 mm -2.41 m 0 eV 478 keV 284 mum 284 mum Target eIoni + 2 -1.29 mm -6.45 mm -2.41 m 0 eV 0 eV 0 fm 284 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 21 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.29 mm -6.45 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.08 mm -6.43 mm -2.41 m 0 eV 88 keV 324 mum 324 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 23 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.08 mm -6.43 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.07 mm -6.44 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 21 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.29 mm -6.45 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.58 mm -6.76 mm -2.41 m 305 keV 0 eV 6.78 mm 6.78 mm Target compt + 2 -5.41 mm -6.22 mm -2.41 m 271 keV 0 eV 756 mum 7.53 mm Target compt + 3 -5.16 mm -6.15 mm -2.41 m 0 eV 88 keV 437 mum 7.97 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.16 mm -6.15 mm -2.41 m 183 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.15 mm -6.15 mm -2.41 m 0 eV 183 keV 71.4 mum 71.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.41 mm -6.22 mm -2.41 m 34.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.41 mm -6.22 mm -2.41 m 0 eV 34.4 keV 4.9 mum 4.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 25, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.58 mm -6.76 mm -2.41 m 206 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.59 mm -6.77 mm -2.41 m 0 eV 206 keV 85.4 mum 85.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.31 mm -6.44 mm -2.41 m 837 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.39 mm -6.53 mm -2.41 m 499 keV 338 keV 329 mum 329 mum Target eBrem + 2 -1.38 mm -6.54 mm -2.41 m 0 eV 499 keV 301 mum 630 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 19, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.75 mm -2.02 mm -2.43 m 449 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.77 mm -2.01 mm -2.43 m 0 eV 449 keV 262 mum 262 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.96 mm -1.04 mm -2.43 m 3.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 cm 695 mum -2.42 m 1.44 MeV 0 eV 2.27 cm 2.27 cm Target compt + 2 -2.5 cm 2.23 mm -2.41 m 1.44 MeV 0 eV 9.25 mm 3.19 cm Target Transportation + 3 -2.99 cm 4.38 mm -2.4 m 1.44 MeV 0 eV 1.29 cm 4.48 cm World Transportation + 4 -1.03 m 44.3 cm -0.455 fm 1.44 MeV 0 eV 2.64 m 2.68 m Tracker Transportation + 5 -1.1 m 47.7 cm 18.7 cm 1.44 MeV 0 eV 20.5 cm 2.89 m Chamber Transportation + 6 -1.36 m 58.9 cm 80 cm 1.44 MeV 0 eV 67.4 cm 3.56 m Tracker Transportation + 7 -1.44 m 62.6 cm 1 m 1.44 MeV 0 eV 22 cm 3.78 m Chamber Transportation + 8 -1.69 m 73.6 cm 1.6 m 1.44 MeV 0 eV 65.9 cm 4.44 m Tracker Transportation + 9 -1.77 m 77.2 cm 1.8 m 1.44 MeV 0 eV 22 cm 4.66 m Chamber Transportation + 10 -2.02 m 88.2 cm 2.4 m 1.44 MeV 0 eV 65.9 cm 5.32 m Tracker Transportation + 11 -2.24 m 97.5 cm 2.91 m 1.44 MeV 0 eV 56 cm 5.88 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 15 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.15 cm 695 mum -2.42 m 1.98 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.16 cm 891 mum -2.42 m 348 keV 1.63 MeV 1.39 mm 1.39 mm Target eIoni + 2 -2.16 cm 906 mum -2.42 m 313 keV 35.5 keV 23.3 mum 1.41 mm Target eBrem + 3 -2.16 cm 907 mum -2.42 m 0 eV 313 keV 158 mum 1.57 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm -946 mum -2.43 m 10.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.6 mm -5.2 mm -2.43 m 0 eV 0 eV 7.5 mm 7.5 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 30, Parent ID = 14 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.6 mm -5.2 mm -2.43 m 3.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.8 mm -5.2 mm -2.43 m 1.8 MeV 265 keV 240 mum 240 mum Target eBrem + 2 -8 mm -5.21 mm -2.43 m 0 eV 1.8 MeV 1.32 mm 1.56 mm Target eIoni + 3 -8 mm -5.21 mm -2.43 m 0 eV 0 eV 0 fm 1.56 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 30 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8 mm -5.21 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.18 mm -1.29 cm -2.43 m 0 eV 88 keV 8.71 mm 8.71 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 33 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.18 mm -1.29 cm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.18 mm -1.3 cm -2.43 m 5.92 keV 128 keV 101 mum 101 mum Target eBrem + 2 -4.18 mm -1.3 cm -2.43 m 0 eV 5.92 keV 328 nm 101 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 35, Parent ID = 34 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.18 mm -1.3 cm -2.43 m 289 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.58 mm -1.32 cm -2.43 m 0 eV 88 keV 547 mum 547 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 35 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.58 mm -1.32 cm -2.43 m 201 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.59 mm -1.32 cm -2.43 m 0 eV 201 keV 82.3 mum 82.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 30 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8 mm -5.21 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 cm 6 mm -2.43 m 0 eV 88 keV 1.26 cm 1.26 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 32 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.35 cm 6 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 cm 6 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 30 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.8 mm -5.2 mm -2.43 m 1.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.57 cm -4.02 mm -2.43 m 637 keV 0 eV 8.17 mm 8.17 mm Target compt + 2 -2.18 cm -5.68 mm -2.42 m 195 keV 0 eV 1.16 cm 1.98 cm Target compt + 3 -2.18 cm -5.61 mm -2.42 m 0 eV 88 keV 141 mum 1.99 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 31 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.18 cm -5.61 mm -2.42 m 107 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.18 cm -5.61 mm -2.42 m 0 eV 107 keV 31 mum 31 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 31 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.18 cm -5.68 mm -2.42 m 441 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.18 cm -5.69 mm -2.42 m 0 eV 441 keV 255 mum 255 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 31 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.57 cm -4.02 mm -2.43 m 419 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.57 cm -4.02 mm -2.43 m 0 eV 419 keV 238 mum 238 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 14 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.6 mm -5.2 mm -2.43 m 6.14 MeV 0 eV 0 fm 0 fm Target initStep + 1 -8.44 mm -5.41 mm -2.43 m 3.53 MeV 2.61 MeV 2.38 mm 2.38 mm Target eIoni + 2 -8.82 mm -4.84 mm -2.43 m 180 keV 1.77 MeV 1.49 mm 3.87 mm Target eBrem + 3 -8.83 mm -4.84 mm -2.43 m 0 eV 180 keV 70 mum 3.94 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 29 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.82 mm -4.84 mm -2.43 m 1.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.11 cm -2.38 mm -2.43 m 518 keV 0 eV 4.65 mm 4.65 mm Target compt + 2 -2.68 mm 1.31 cm -2.43 m 0 eV 88 keV 1.79 cm 2.26 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 41 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.68 mm 1.31 cm -2.43 m 430 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.67 mm 1.32 cm -2.43 m 0 eV 430 keV 246 mum 246 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 41 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.11 cm -2.38 mm -2.43 m 1.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.12 cm -2.36 mm -2.43 m 0 eV 1.06 MeV 771 mum 771 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.29 mm -593 mum -2.43 m 4.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.41 mm -3.36 mm -2.43 m 0 eV 88 keV 4.97 mm 4.97 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 13 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.41 mm -3.36 mm -2.43 m 4.22 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.39 mm -4.26 mm -2.43 m 1.02 MeV 3.19 MeV 2.02 mm 2.02 mm Target eIoni + 2 -5.42 mm -4.29 mm -2.43 m 0 eV 1.02 MeV 741 mum 2.76 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.25 mm -569 mum -2.43 m 3.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.04 cm -1.31 cm -2.43 m 1.27 MeV 0 eV 2.29 cm 2.29 cm Target compt + 2 -2.45 cm -2.5 cm -2.43 m 1.27 MeV 0 eV 1.32 cm 3.61 cm Target Transportation + 3 -5.28 cm -10.5 cm -2.4 m 1.27 MeV 0 eV 8.95 cm 12.6 cm World Transportation + 4 -86 cm -2.4 m -1.6 m 1.27 MeV 0 eV 2.56 m 2.69 m Tracker Transportation + 5 -1.04 m -2.91 m -1.42 m 1.27 MeV 0 eV 56.9 cm 3.26 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 12 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.04 cm -1.31 cm -2.43 m 2.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.06 cm -1.29 cm -2.43 m 942 keV 1.09 MeV 832 mum 832 mum Target eBrem + 2 -2.07 cm -1.29 cm -2.43 m 0 eV 942 keV 672 mum 1.5 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -450 mum -102 mum -2.43 m 462 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.87 mm -7.68 mm -2.43 m 0 eV 88 keV 1.28 cm 1.28 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 46, Parent ID = 11 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.87 mm -7.68 mm -2.43 m 374 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.87 mm -7.69 mm -2.43 m 0 eV 374 keV 203 mum 203 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -113 mum 65 mum -2.43 m 5.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.96 mm -5.81 mm -2.42 m 930 keV 0 eV 1.54 cm 1.54 cm Target compt + 2 -1.39 cm -2.5 cm -2.42 m 930 keV 0 eV 2.01 cm 3.55 cm Target Transportation + 3 -13 cm -40.4 cm -2.4 m 930 keV 0 eV 39.7 cm 43.3 cm World Transportation + 4 -74.4 cm -2.4 m -2.3 m 930 keV 0 eV 2.09 m 2.52 m Tracker Transportation + 5 -90.1 cm -2.91 m -2.27 m 930 keV 0 eV 53.4 cm 3.06 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 10 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.96 mm -5.81 mm -2.42 m 4.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.61 mm -6.39 mm -2.42 m 1.76 MeV 2.34 MeV 1.99 mm 1.99 mm Target eIoni + 2 -7.63 mm -6.12 mm -2.42 m 660 keV 523 keV 532 mum 2.53 mm Target eBrem + 3 -7.65 mm -6.1 mm -2.42 m 0 eV 660 keV 433 mum 2.96 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 48, Parent ID = 47 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.63 mm -6.12 mm -2.42 m 574 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.76 mm -6.9 mm -2.42 m 0 eV 88 keV 2.92 mm 2.92 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 48 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.76 mm -6.9 mm -2.42 m 486 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.77 mm -6.91 mm -2.42 m 0 eV 486 keV 291 mum 291 mum Target eIoni >>> Event 0 0 trajectories stored in this event. ### Run 2 start. diff --git a/examples/novice/N02/include/ExN02ChamberParameterisation.hh b/examples/novice/N02/include/ExN02ChamberParameterisation.hh index 584d637b08..e337439c1e 100644 --- a/examples/novice/N02/include/ExN02ChamberParameterisation.hh +++ b/examples/novice/N02/include/ExN02ChamberParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.hh,v 1.9 2003/11/10 14:29:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // A parameterisation that describes a series of boxes along Z diff --git a/examples/novice/N02/include/ExN02DetectorConstruction.hh b/examples/novice/N02/include/ExN02DetectorConstruction.hh index b86afc1937..f1145da5f3 100644 --- a/examples/novice/N02/include/ExN02DetectorConstruction.hh +++ b/examples/novice/N02/include/ExN02DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorConstruction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02DetectorMessenger.hh b/examples/novice/N02/include/ExN02DetectorMessenger.hh index 9b12056815..a8361c33d0 100644 --- a/examples/novice/N02/include/ExN02DetectorMessenger.hh +++ b/examples/novice/N02/include/ExN02DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.hh,v 1.7 2002/12/16 16:31:43 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02EventAction.hh b/examples/novice/N02/include/ExN02EventAction.hh index 6b46251fcb..32dfdb23d6 100644 --- a/examples/novice/N02/include/ExN02EventAction.hh +++ b/examples/novice/N02/include/ExN02EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02MagneticField.hh b/examples/novice/N02/include/ExN02MagneticField.hh index abecc626bd..332b0313ca 100644 --- a/examples/novice/N02/include/ExN02MagneticField.hh +++ b/examples/novice/N02/include/ExN02MagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02MagneticField.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // A class for control of the Magnetic Field of the detector. diff --git a/examples/novice/N02/include/ExN02PhysicsList.hh b/examples/novice/N02/include/ExN02PhysicsList.hh index 92425a9651..8d47666390 100644 --- a/examples/novice/N02/include/ExN02PhysicsList.hh +++ b/examples/novice/N02/include/ExN02PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02PhysicsList.hh,v 1.10 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh b/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh index 871f6ec37d..41c8b7bbe4 100644 --- a/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh +++ b/examples/novice/N02/include/ExN02PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02PrimaryGeneratorAction.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02RunAction.hh b/examples/novice/N02/include/ExN02RunAction.hh index f1991ef076..d717a419e0 100644 --- a/examples/novice/N02/include/ExN02RunAction.hh +++ b/examples/novice/N02/include/ExN02RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02SteppingAction.hh b/examples/novice/N02/include/ExN02SteppingAction.hh index c06dc12fd6..53f60d7469 100644 --- a/examples/novice/N02/include/ExN02SteppingAction.hh +++ b/examples/novice/N02/include/ExN02SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingAction.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02SteppingVerbose.hh b/examples/novice/N02/include/ExN02SteppingVerbose.hh index 2e26b12eb9..3706c5e39b 100644 --- a/examples/novice/N02/include/ExN02SteppingVerbose.hh +++ b/examples/novice/N02/include/ExN02SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.hh,v 1.7 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/novice/N02/include/ExN02TrackerHit.hh b/examples/novice/N02/include/ExN02TrackerHit.hh index 170340564f..d9bceaf55c 100644 --- a/examples/novice/N02/include/ExN02TrackerHit.hh +++ b/examples/novice/N02/include/ExN02TrackerHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.hh,v 1.7 2003/05/28 09:54:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02TrackerSD.hh b/examples/novice/N02/include/ExN02TrackerSD.hh index 3222794556..528166e08a 100644 --- a/examples/novice/N02/include/ExN02TrackerSD.hh +++ b/examples/novice/N02/include/ExN02TrackerSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02ChamberParameterisation.cc b/examples/novice/N02/src/ExN02ChamberParameterisation.cc index 8e6f850ac0..0d6d27cb57 100644 --- a/examples/novice/N02/src/ExN02ChamberParameterisation.cc +++ b/examples/novice/N02/src/ExN02ChamberParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02ChamberParameterisation.cc,v 1.8 2003/05/28 09:54:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02DetectorConstruction.cc b/examples/novice/N02/src/ExN02DetectorConstruction.cc index 9d7f82dac2..c60643de72 100644 --- a/examples/novice/N02/src/ExN02DetectorConstruction.cc +++ b/examples/novice/N02/src/ExN02DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorConstruction.cc,v 1.17 2005/05/30 16:51:43 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02DetectorMessenger.cc b/examples/novice/N02/src/ExN02DetectorMessenger.cc index 7c6ea6a84a..53b16c3766 100644 --- a/examples/novice/N02/src/ExN02DetectorMessenger.cc +++ b/examples/novice/N02/src/ExN02DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.cc,v 1.10 2004/04/05 16:21:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02EventAction.cc b/examples/novice/N02/src/ExN02EventAction.cc index 298b57f150..77242011c8 100644 --- a/examples/novice/N02/src/ExN02EventAction.cc +++ b/examples/novice/N02/src/ExN02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.cc,v 1.10 2004/09/08 16:30:10 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02MagneticField.cc b/examples/novice/N02/src/ExN02MagneticField.cc index c50eb17031..aa9d90d721 100644 --- a/examples/novice/N02/src/ExN02MagneticField.cc +++ b/examples/novice/N02/src/ExN02MagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02MagneticField.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // User Field class implementation. // diff --git a/examples/novice/N02/src/ExN02PhysicsList.cc b/examples/novice/N02/src/ExN02PhysicsList.cc index bc64bf1968..a204ebbb1a 100644 --- a/examples/novice/N02/src/ExN02PhysicsList.cc +++ b/examples/novice/N02/src/ExN02PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02PhysicsList.cc,v 1.21 2005/05/30 16:20:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc b/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc index 3d62f9b97f..df7cb495ec 100644 --- a/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc +++ b/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02PrimaryGeneratorAction.cc,v 1.6 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02RunAction.cc b/examples/novice/N02/src/ExN02RunAction.cc index e79a0bd4e1..0d696ddce2 100644 --- a/examples/novice/N02/src/ExN02RunAction.cc +++ b/examples/novice/N02/src/ExN02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.cc,v 1.8 2004/03/08 15:14:49 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02SteppingAction.cc b/examples/novice/N02/src/ExN02SteppingAction.cc index 49c69235b5..ec0ee58bbd 100644 --- a/examples/novice/N02/src/ExN02SteppingAction.cc +++ b/examples/novice/N02/src/ExN02SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingAction.cc,v 1.8 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02SteppingVerbose.cc b/examples/novice/N02/src/ExN02SteppingVerbose.cc index 8148a464e0..0bd6b6bd5d 100644 --- a/examples/novice/N02/src/ExN02SteppingVerbose.cc +++ b/examples/novice/N02/src/ExN02SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02SteppingVerbose.cc,v 1.11 2003/06/16 16:49:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02TrackerHit.cc b/examples/novice/N02/src/ExN02TrackerHit.cc index 2e4701c0d9..bf23bba68b 100644 --- a/examples/novice/N02/src/ExN02TrackerHit.cc +++ b/examples/novice/N02/src/ExN02TrackerHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.cc,v 1.9 2005/06/01 17:41:45 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02TrackerSD.cc b/examples/novice/N02/src/ExN02TrackerSD.cc index 9c3e78b61d..7792eb8fce 100644 --- a/examples/novice/N02/src/ExN02TrackerSD.cc +++ b/examples/novice/N02/src/ExN02TrackerSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerSD.cc,v 1.7 2003/05/28 09:54:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/History b/examples/novice/N03/History index a287a90c8c..40b12d6a1f 100644 --- a/examples/novice/N03/History +++ b/examples/novice/N03/History @@ -1,4 +1,4 @@ -$Id: History,v 1.91 2005/05/30 14:24:31 maire Exp $ +$Id: History,v 1.97 2005/12/06 10:48:08 gcosmo Exp $ -------------------------------------------------- ========================================================= @@ -15,6 +15,24 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06-12-05 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +03-12-05 John Allison (exampleN03-V07-01-04) +- Quietened vis manager in batch mode. + +22-11-05 mma (exampleN03-V07-01-03) + - Update README + +14-11-05 mma (exampleN03-V07-01-02) + - DetectorConstruction: correct definition of Vacuum + +15-10-05 mma (exampleN03-V07-01-01) + - PhysicsList: AddProcess(new G4eBremsstrahlung,-1,3,3) ..etc.. + +22-07-05 mma (exampleN03-V07-01-00) +- RunAction: compute and print statistic at end of run. + 31-05-05 mma (exampleN03-V07-00-03) - EventAction: decrease size of trajectory points. diff --git a/examples/novice/N03/README b/examples/novice/N03/README index f2f4824186..10ceac1ff5 100644 --- a/examples/novice/N03/README +++ b/examples/novice/N03/README @@ -1,4 +1,4 @@ -$Id: README,v 1.15 2003/12/02 14:22:31 maire Exp $ +$Id: README,v 1.16 2005/11/22 16:11:04 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -29,7 +29,25 @@ $Id: README,v 1.15 2003/12/02 14:22:31 maire Exp $ The default geometry is constructed in DetectorConstruction class, but all of the above parameters can be modified interactively via the commands defined in the DetectorMessenger class. - + + + |<----layer 0---------->|<----layer 1---------->|<----layer 2---------->| + | | | | + ========================================================================== + || | || | || | || + || | || | || | || + || absorber | gap || absorber | gap || absorber | gap || + || | || | || | || + || | || | || | || + beam || | || | || | || +======> || | || | || | || + || | || | || | || + || | || | || | || + || | || | || | || + || | || | || | || + || | || | || | || + ========================================================================== + NB. The thickness of the absorber or of the gap can be set to zero (but not together), and the number of layers to 1. In this case we have a unique homogeneous block of matter, which looks like diff --git a/examples/novice/N03/exampleN03.cc b/examples/novice/N03/exampleN03.cc index 9368e2f555..e87f5c7fba 100644 --- a/examples/novice/N03/exampleN03.cc +++ b/examples/novice/N03/exampleN03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN03.cc,v 1.22 2005/05/26 12:21:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: exampleN03.cc,v 1.25 2005/12/06 10:48:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -60,7 +60,7 @@ int main(int argc,char** argv) { // choose the Random engine - HepRandom::setTheEngine(new RanecuEngine); + CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine); //my Verbose output class G4VSteppingVerbose::SetInstance(new ExN03SteppingVerbose); @@ -97,8 +97,9 @@ int main(int argc,char** argv) { // set user action classes runManager->SetUserAction(new ExN03PrimaryGeneratorAction(detector)); - runManager->SetUserAction(new ExN03RunAction); - ExN03EventAction* eventaction = new ExN03EventAction; + ExN03RunAction* runaction = new ExN03RunAction; + runManager->SetUserAction(runaction); + ExN03EventAction* eventaction = new ExN03EventAction(runaction); runManager->SetUserAction(eventaction); runManager->SetUserAction(new ExN03SteppingAction(detector, eventaction)); @@ -121,6 +122,9 @@ int main(int argc,char** argv) { } else // Batch mode { +#ifdef G4VIS_USE + visManager->SetVerboseLevel("quiet"); +#endif G4String command = "/control/execute "; G4String fileName = argv[1]; UI->ApplyCommand(command+fileName); diff --git a/examples/novice/N03/exampleN03.out b/examples/novice/N03/exampleN03.out index e980c6d2c1..9c61b182d9 100644 --- a/examples/novice/N03/exampleN03.out +++ b/examples/novice/N03/exampleN03.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -53,7 +53,7 @@ ---> 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: 0.00 K pressure: 0.00 atm RadLength: 204727576.737 pc + Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc ---> 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 @@ -76,32 +76,34 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) +Registering model factories... + ------------------------------------------------------------ ---> The calorimeter is 10 layers of: [ 10mm of Lead + 5mm of liquidArgon ] ------------------------------------------------------------ ExN03PhysicsList::SetCuts:CutLength : 1 mm -conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; - sampling secondary e+e- according to the Bethe-Heitler model - tables are built for gamma - Lambda tables from 1.022 MeV to 100 GeV in 100 bins. +phot: Total cross sections from Sandia parametrisation. compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV Sampling according Klein-Nishina model tables are built for gamma Lambda tables from 100 eV to 100 GeV in 90 bins. -phot: Total cross sections from Sandia parametrisation. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -113,7 +115,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -125,6 +127,10 @@ annihil: Heilter model of formula of annihilation into 2 photons tables are built for e+ Lambda tables from 100 eV to 100 TeV in 120 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. @@ -132,11 +138,9 @@ hIoni: tables are built for proton Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -msc: Model variant of multiple scattering for proton +msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -msc: Model variant of multiple scattering for GenericIon + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -145,10 +149,6 @@ muIoni: tables are built for mu+ radiative corrections for E > 1 GeV Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. @@ -178,7 +178,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -214,11 +214,21 @@ Index : 2 used in the geometry : Yes recalculation needed : No Current couple of seeds = 9876, 54321 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 275.13135 MeV total track length: 19.17602 cm - Gap: total energy: 14.088124 MeV total track length: 7.5983475 cm - Transportation, hIoni, msc, eIoni - eBrem, annihil, conv, compt - phot, muIoni, muBrems, muPairProd + Absorber: total energy: 288.11412 MeV total track length: 20.115876 cm + Gap: total energy: 5.0937175 MeV total track length: 2.382974 cm + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 288.11412 MeV +- 0 eV + mean Energy in Gap : 5.0937175 MeV +- 0 eV + + mean trackLength in Absorber : 20.115876 cm +- 0 fm + mean trackLength in Gap : 2.382974 cm +- 0 fm + +------------------------------------------------------------ + Transportation, msc, hIoni, eIoni + eBrem, annihil, phot, compt + conv, muIoni, muBrems, muPairProd Decay ### Run 1 start. @@ -226,37 +236,47 @@ Index : 2 used in the geometry : Yes recalculation needed : No --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1983856112, 1775194371 + Current couple of seeds = 1154003280, 1053735780 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 280.72963 MeV total track length: 19.085929 cm - Gap: total energy: 20.29237 MeV total track length: 9.7280438 cm + Absorber: total energy: 282.96986 MeV total track length: 19.432454 cm + Gap: total energy: 17.653983 MeV total track length: 8.4333556 cm + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 282.96986 MeV +- 0 eV + mean Energy in Gap : 17.653983 MeV +- 0 eV + + mean trackLength in Absorber : 19.432454 cm +- 0 fm + mean trackLength in Gap : 8.4333556 cm +- 0 fm + +------------------------------------------------------------ ------------------------------------------------------------ ---> The calorimeter is 30 layers of: [ 20mm of Aluminium + 50mm of Aerogel ] ------------------------------------------------------------ -conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; - sampling secondary e+e- according to the Bethe-Heitler model - tables are built for gamma - Lambda tables from 1.0219981 MeV to 100 GeV in 100 bins. +phot: Total cross sections from Sandia parametrisation. compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV Sampling according Klein-Nishina model tables are built for gamma Lambda tables from 100 eV to 100 GeV in 90 bins. -phot: Total cross sections from Sandia parametrisation. +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.0219981 MeV to 100 GeV in 100 bins. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -268,7 +288,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -280,6 +300,10 @@ annihil: Heilter model of formula of annihilation into 2 photons tables are built for e+ Lambda tables from 100 eV to 100 TeV in 120 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. @@ -287,11 +311,9 @@ hIoni: tables are built for proton Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -msc: Model variant of multiple scattering for proton +msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -msc: Model variant of multiple scattering for GenericIon + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -300,10 +322,6 @@ muIoni: tables are built for mu+ radiative corrections for E > 1 GeV Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. @@ -333,17 +351,26 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ### Run 2 start. ---> Begin of event: 0 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 227741149, 1105690670 + Current couple of seeds = 37964498, 1086367074 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 428.22036 MeV total track length: 1.0221799 m - Gap: total energy: 64.177519 MeV total track length: 1.8519419 m -Graphics systems deleted. -Visualization Manager deleting... + Absorber: total energy: 331.52242 MeV total track length: 78.398626 cm + Gap: total energy: 66.660026 MeV total track length: 1.8933589 m + +--------------------End of Run------------------------------ + + mean Energy in Absorber : 331.52242 MeV +- 0 eV + mean Energy in Gap : 66.660026 MeV +- 0 eV + + mean trackLength in Absorber : 78.398626 cm +- 0 fm + mean trackLength in Gap : 1.8933589 m +- 0 fm + +------------------------------------------------------------ +trackLength in Gap : 1.8933589 m +- 0 fm diff --git a/examples/novice/N03/include/ExN03DetectorConstruction.hh b/examples/novice/N03/include/ExN03DetectorConstruction.hh index b0cb47cd19..a9551ea5bd 100644 --- a/examples/novice/N03/include/ExN03DetectorConstruction.hh +++ b/examples/novice/N03/include/ExN03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.hh,v 1.6 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/include/ExN03DetectorMessenger.hh b/examples/novice/N03/include/ExN03DetectorMessenger.hh index 4f03527e11..c16707cce0 100644 --- a/examples/novice/N03/include/ExN03DetectorMessenger.hh +++ b/examples/novice/N03/include/ExN03DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorMessenger.hh,v 1.6 2002/12/16 16:37:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/include/ExN03EventAction.hh b/examples/novice/N03/include/ExN03EventAction.hh index 21b3ac38e7..9f9d7ec50f 100644 --- a/examples/novice/N03/include/ExN03EventAction.hh +++ b/examples/novice/N03/include/ExN03EventAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN03EventAction.hh,v 1.9 2005/07/22 15:27:33 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -35,6 +35,7 @@ #include "G4UserEventAction.hh" #include "globals.hh" +class ExN03RunAction; class ExN03EventActionMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -42,7 +43,7 @@ class ExN03EventActionMessenger; class ExN03EventAction : public G4UserEventAction { public: - ExN03EventAction(); + ExN03EventAction(ExN03RunAction*); ~ExN03EventAction(); public: @@ -56,6 +57,8 @@ class ExN03EventAction : public G4UserEventAction void SetPrintModulo(G4int val) {printModulo = val;}; private: + ExN03RunAction* runAct; + G4double EnergyAbs, EnergyGap; G4double TrackLAbs, TrackLGap; diff --git a/examples/novice/N03/include/ExN03EventActionMessenger.hh b/examples/novice/N03/include/ExN03EventActionMessenger.hh index ca772aa0ba..af162e3285 100644 --- a/examples/novice/N03/include/ExN03EventActionMessenger.hh +++ b/examples/novice/N03/include/ExN03EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventActionMessenger.hh,v 1.7 2002/12/16 16:37:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/include/ExN03PhysicsList.hh b/examples/novice/N03/include/ExN03PhysicsList.hh index 4147914293..3a66bb79b5 100644 --- a/examples/novice/N03/include/ExN03PhysicsList.hh +++ b/examples/novice/N03/include/ExN03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.hh,v 1.11 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh index 9211e4e490..4000100628 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.hh,v 1.6 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh index ad9eccab89..0cd344d505 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.6 2002/12/16 16:37:26 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/include/ExN03RunAction.hh b/examples/novice/N03/include/ExN03RunAction.hh index 4b9d6f9a59..31a7fd144d 100644 --- a/examples/novice/N03/include/ExN03RunAction.hh +++ b/examples/novice/N03/include/ExN03RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03RunAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN03RunAction.hh,v 1.9 2005/07/22 15:27:33 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -47,8 +47,16 @@ class ExN03RunAction : public G4UserRunAction public: void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); + + void fillPerEvent(G4double, G4double, G4double, G4double); + private: + G4double sumEAbs, sum2EAbs; + G4double sumEGap, sum2EGap; + + G4double sumLAbs, sum2LAbs; + G4double sumLGap, sum2LGap; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/include/ExN03SteppingAction.hh b/examples/novice/N03/include/ExN03SteppingAction.hh index c565e24f9b..cd48d0b2a1 100644 --- a/examples/novice/N03/include/ExN03SteppingAction.hh +++ b/examples/novice/N03/include/ExN03SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/include/ExN03SteppingVerbose.hh b/examples/novice/N03/include/ExN03SteppingVerbose.hh index ae4ae2b04f..739e4c5764 100644 --- a/examples/novice/N03/include/ExN03SteppingVerbose.hh +++ b/examples/novice/N03/include/ExN03SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.hh,v 1.8 2003/09/15 15:38:15 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03DetectorConstruction.cc b/examples/novice/N03/src/ExN03DetectorConstruction.cc index b16c92b50d..aa55e46dcb 100644 --- a/examples/novice/N03/src/ExN03DetectorConstruction.cc +++ b/examples/novice/N03/src/ExN03DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorConstruction.cc,v 1.21 2004/11/14 10:12:08 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN03DetectorConstruction.cc,v 1.22 2005/11/14 16:17:20 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -196,7 +196,7 @@ steam->AddMaterial(H2O, fractionmass=1.); G4Material* Vacuum = new G4Material("Galactic", z=1., a=1.01*g/mole,density= universe_mean_density, - kStateGas, 3.e-18*pascal, 2.73*kelvin); + kStateGas, 2.73*kelvin, 3.e-18*pascal); G4Material* beam = new G4Material("Beam", density= 1.e-5*g/cm3, ncomponents=1, diff --git a/examples/novice/N03/src/ExN03DetectorMessenger.cc b/examples/novice/N03/src/ExN03DetectorMessenger.cc index 565ef4ada7..3616fe55f9 100644 --- a/examples/novice/N03/src/ExN03DetectorMessenger.cc +++ b/examples/novice/N03/src/ExN03DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorMessenger.cc,v 1.9 2003/09/15 15:38:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/src/ExN03EventAction.cc b/examples/novice/N03/src/ExN03EventAction.cc index 31a016ec69..f0f7717adf 100644 --- a/examples/novice/N03/src/ExN03EventAction.cc +++ b/examples/novice/N03/src/ExN03EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventAction.cc,v 1.24 2005/05/30 14:24:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN03EventAction.cc,v 1.26 2005/12/06 10:48:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -30,6 +30,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "ExN03EventAction.hh" + +#include "ExN03RunAction.hh" #include "ExN03EventActionMessenger.hh" #include "G4Event.hh" @@ -43,8 +45,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ExN03EventAction::ExN03EventAction() -:drawFlag("all"),printModulo(1),eventMessenger(0) +ExN03EventAction::ExN03EventAction(ExN03RunAction* run) +:runAct(run),drawFlag("all"),printModulo(1),eventMessenger(0) { eventMessenger = new ExN03EventActionMessenger(this); } @@ -63,7 +65,7 @@ void ExN03EventAction::BeginOfEventAction(const G4Event* evt) G4int evtNb = evt->GetEventID(); if (evtNb%printModulo == 0) { G4cout << "\n---> Begin of event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); + CLHEP::HepRandom::showEngineStatus(); } // initialisation per event @@ -75,8 +77,13 @@ void ExN03EventAction::BeginOfEventAction(const G4Event* evt) void ExN03EventAction::EndOfEventAction(const G4Event* evt) { + //accumulates statistic + // + runAct->fillPerEvent(EnergyAbs, EnergyGap, TrackLAbs, TrackLGap); + + //print per event (modulo n) + // G4int evtNb = evt->GetEventID(); - if (evtNb%printModulo == 0) { G4cout << "---> End of event: " << evtNb << G4endl; diff --git a/examples/novice/N03/src/ExN03EventActionMessenger.cc b/examples/novice/N03/src/ExN03EventActionMessenger.cc index 5f51a1dafd..a0a86cf293 100644 --- a/examples/novice/N03/src/ExN03EventActionMessenger.cc +++ b/examples/novice/N03/src/ExN03EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03EventActionMessenger.cc,v 1.9 2002/12/16 16:37:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/src/ExN03PhysicsList.cc b/examples/novice/N03/src/ExN03PhysicsList.cc index 15b3a4176e..e9a133f3ca 100644 --- a/examples/novice/N03/src/ExN03PhysicsList.cc +++ b/examples/novice/N03/src/ExN03PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PhysicsList.cc,v 1.18 2004/03/19 14:58:21 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN03PhysicsList.cc,v 1.19 2005/10/15 14:58:34 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -159,105 +159,40 @@ void ExN03PhysicsList::ConstructEM() G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); - + if (particleName == "gamma") { - // gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - + // gamma + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + } else if (particleName == "e-") { - //electron - G4VProcess* theeminusMultipleScattering = new G4MultipleScattering(); - G4VProcess* theeminusIonisation = new G4eIonisation(); - G4VProcess* theeminusBremsstrahlung = new G4eBremsstrahlung(); - // - // add processes - pmanager->AddProcess(theeminusMultipleScattering); - pmanager->AddProcess(theeminusIonisation); - pmanager->AddProcess(theeminusBremsstrahlung); - // - // set ordering for AlongStepDoIt - pmanager->SetProcessOrdering(theeminusMultipleScattering, idxAlongStep,1); - pmanager->SetProcessOrdering(theeminusIonisation, idxAlongStep,2); - pmanager->SetProcessOrdering(theeminusBremsstrahlung, idxAlongStep,3); - // - // set ordering for PostStepDoIt - pmanager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep,1); - pmanager->SetProcessOrdering(theeminusIonisation, idxPostStep,2); - pmanager->SetProcessOrdering(theeminusBremsstrahlung, idxPostStep,3); + //electron + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); } else if (particleName == "e+") { - //positron - G4VProcess* theeplusMultipleScattering = new G4MultipleScattering(); - G4VProcess* theeplusIonisation = new G4eIonisation(); - G4VProcess* theeplusBremsstrahlung = new G4eBremsstrahlung(); - G4VProcess* theeplusAnnihilation = new G4eplusAnnihilation(); - // - // add processes - pmanager->AddProcess(theeplusMultipleScattering); - pmanager->AddProcess(theeplusIonisation); - pmanager->AddProcess(theeplusBremsstrahlung); - pmanager->AddProcess(theeplusAnnihilation); - // - // set ordering for AtRestDoIt - pmanager->SetProcessOrderingToFirst(theeplusAnnihilation, idxAtRest); - // - // set ordering for AlongStepDoIt - pmanager->SetProcessOrdering(theeplusMultipleScattering, idxAlongStep,1); - pmanager->SetProcessOrdering(theeplusIonisation, idxAlongStep,2); - pmanager->SetProcessOrdering(theeplusBremsstrahlung, idxAlongStep,3); - // - // set ordering for PostStepDoIt - pmanager->SetProcessOrdering(theeplusMultipleScattering, idxPostStep,1); - pmanager->SetProcessOrdering(theeplusIonisation, idxPostStep,2); - pmanager->SetProcessOrdering(theeplusBremsstrahlung, idxPostStep,3); - pmanager->SetProcessOrdering(theeplusAnnihilation, idxPostStep,4); + //positron + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4eIonisation, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - } else if( particleName == "mu+" || + } else if( particleName == "mu+" || particleName == "mu-" ) { - //muon - G4VProcess* aMultipleScattering = new G4MultipleScattering(); - G4VProcess* aBremsstrahlung = new G4MuBremsstrahlung(); - G4VProcess* aPairProduction = new G4MuPairProduction(); - G4VProcess* anIonisation = new G4MuIonisation(); - // - // add processes - pmanager->AddProcess(anIonisation); - pmanager->AddProcess(aMultipleScattering); - pmanager->AddProcess(aBremsstrahlung); - pmanager->AddProcess(aPairProduction); - // - // set ordering for AlongStepDoIt - pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1); - pmanager->SetProcessOrdering(anIonisation, idxAlongStep,2); - pmanager->SetProcessOrdering(aBremsstrahlung, idxAlongStep,3); - pmanager->SetProcessOrdering(aPairProduction, idxAlongStep,4); - // - // set ordering for PostStepDoIt - pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1); - pmanager->SetProcessOrdering(anIonisation, idxPostStep,2); - pmanager->SetProcessOrdering(aBremsstrahlung, idxPostStep,3); - pmanager->SetProcessOrdering(aPairProduction, idxPostStep,4); - + //muon + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4MuIonisation, -1, 2,2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); + } else if ((!particle->IsShortLived()) && - (particle->GetPDGCharge() != 0.0) && + (particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")) { - // all others charged particles except geantino - G4VProcess* aMultipleScattering = new G4MultipleScattering(); - G4VProcess* anIonisation = new G4hIonisation(); - // - // add processes - pmanager->AddProcess(anIonisation); - pmanager->AddProcess(aMultipleScattering); - // - // set ordering for AlongStepDoIt - pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1); - pmanager->SetProcessOrdering(anIonisation, idxAlongStep,2); - // - // set ordering for PostStepDoIt - pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1); - pmanager->SetProcessOrdering(anIonisation, idxPostStep,2); + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4hIonisation, -1, 2,2); } } } diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc index 1aec052685..1554689a08 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.cc,v 1.7 2003/09/15 15:38:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc index c151c7080e..68363fc1e0 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.8 2002/12/16 16:37:27 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/src/ExN03RunAction.cc b/examples/novice/N03/src/ExN03RunAction.cc index 40e0e6a4b5..9cda6cc692 100644 --- a/examples/novice/N03/src/ExN03RunAction.cc +++ b/examples/novice/N03/src/ExN03RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03RunAction.cc,v 1.15 2003/11/25 16:50:13 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN03RunAction.cc,v 1.16 2005/07/22 15:27:33 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,6 +31,7 @@ #include "G4Run.hh" #include "G4RunManager.hh" +#include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -50,10 +51,70 @@ void ExN03RunAction::BeginOfRunAction(const G4Run* aRun) //inform the runManager to save random number seed G4RunManager::GetRunManager()->SetRandomNumberStore(true); + + //initialize cumulative quantities + // + sumEAbs = sum2EAbs =sumEGap = sum2EGap = 0.; + sumLAbs = sum2LAbs =sumLGap = sum2LGap = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ExN03RunAction::EndOfRunAction(const G4Run* ) {} +void ExN03RunAction::fillPerEvent(G4double EAbs, G4double EGap, + G4double LAbs, G4double LGap) +{ + //accumulate statistic + // + sumEAbs += EAbs; sum2EAbs += EAbs*EAbs; + sumEGap += EGap; sum2EGap += EGap*EGap; + + sumLAbs += LAbs; sum2LAbs += LAbs*LAbs; + sumLGap += LGap; sum2LGap += LGap*LGap; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN03RunAction::EndOfRunAction(const G4Run* aRun) +{ + G4int NbOfEvents = aRun->GetNumberOfEvent(); + if (NbOfEvents == 0) return; + + //compute statistics: mean and rms + // + sumEAbs /= NbOfEvents; sum2EAbs /= NbOfEvents; + G4double rmsEAbs = sum2EAbs - sumEAbs*sumEAbs; + if (rmsEAbs >0.) rmsEAbs = std::sqrt(rmsEAbs); else rmsEAbs = 0.; + + sumEGap /= NbOfEvents; sum2EGap /= NbOfEvents; + G4double rmsEGap = sum2EGap - sumEGap*sumEGap; + if (rmsEGap >0.) rmsEGap = std::sqrt(rmsEGap); else rmsEGap = 0.; + + sumLAbs /= NbOfEvents; sum2LAbs /= NbOfEvents; + G4double rmsLAbs = sum2LAbs - sumLAbs*sumLAbs; + if (rmsLAbs >0.) rmsLAbs = std::sqrt(rmsLAbs); else rmsLAbs = 0.; + + sumLGap /= NbOfEvents; sum2LGap /= NbOfEvents; + G4double rmsLGap = sum2LGap - sumLGap*sumLGap; + if (rmsLGap >0.) rmsLGap = std::sqrt(rmsLGap); else rmsLGap = 0.; + + //print + // + G4cout << "\n--------------------End of Run------------------------------\n"; + G4cout + << "\n mean Energy in Absorber : " << G4BestUnit(sumEAbs,"Energy") + << " +- " << G4BestUnit(rmsEAbs,"Energy") + << "\n mean Energy in Gap : " << G4BestUnit(sumEGap,"Energy") + << " +- " << G4BestUnit(rmsEGap,"Energy") + << G4endl; + + G4cout + << "\n mean trackLength in Absorber : " << G4BestUnit(sumLAbs,"Length") + << " +- " << G4BestUnit(rmsLAbs,"Length") + << "\n mean trackLength in Gap : " << G4BestUnit(sumLGap,"Length") + << " +- " << G4BestUnit(rmsLGap,"Length") + << G4endl; + + G4cout << "\n------------------------------------------------------------\n"; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03SteppingAction.cc b/examples/novice/N03/src/ExN03SteppingAction.cc index 3f66d85702..42052f5e7e 100644 --- a/examples/novice/N03/src/ExN03SteppingAction.cc +++ b/examples/novice/N03/src/ExN03SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.cc,v 1.9 2005/02/02 17:11:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N03/src/ExN03SteppingVerbose.cc b/examples/novice/N03/src/ExN03SteppingVerbose.cc index c8d4a61c63..1b5b916a3c 100644 --- a/examples/novice/N03/src/ExN03SteppingVerbose.cc +++ b/examples/novice/N03/src/ExN03SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.cc,v 1.12 2003/09/15 15:38:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/History b/examples/novice/N04/History index 52f21fa6b1..2cc18a83a6 100644 --- a/examples/novice/N04/History +++ b/examples/novice/N04/History @@ -1,4 +1,4 @@ -$Id: History,v 1.42 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.45 2005/12/03 20:34:57 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,10 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd December 2005 John Allison (exampleN04-V07-01-00) +- Replaced vis code in EndOfEventAction and EndOfRunAction by suitable + vis commands in vis.mac. Prevents ERROR messages in batch mode. + 3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. diff --git a/examples/novice/N04/exampleN04.EMtest.out b/examples/novice/N04/exampleN04.EMtest.out index b4802be856..30a9063485 100644 --- a/examples/novice/N04/exampleN04.EMtest.out +++ b/examples/novice/N04/exampleN04.EMtest.out @@ -1,47 +1,53 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* +<<< Geant4 Physics List engine packaging library: PACK 3.0 +<<< Geant4 Physics List simulation engine: QGSP 3.0 -You are using the simulation engine reuse library: PACK 2.4 - - -You are using the simulation engine: QGSP 2.8 - - - -phot: Total cross sections from Sandia parametrisation. Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... -11170a0 -1116bc8 -1115498 -1114fc0 -112be28 -1128510 -112c300 -11289e8 -112c7d8 -1128ec0 -112e010 -1129870 -112b478 -1128038 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) -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.022 MeV to 100 GeV in 100 bins. +Registering model factories... + +phot: Total cross sections from Sandia parametrisation. + +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -49,15 +55,11 @@ eBrem: tables are built for e- Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -eIoni: tables are built for e- +eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -65,19 +67,13 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 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. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -86,9 +82,7 @@ hIoni: tables are built for proton Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -97,7 +91,9 @@ ionIoni: tables are built for GenericIon Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 -msc: Model variant of multiple scattering for GenericIon +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -116,10 +112,6 @@ muPairProd: tables are built for mu+ Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. @@ -139,69 +131,32 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : Yes recalculation needed : No - Material : Air - Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 1 used in the geometry : Yes recalculation needed : No - Material : ArgonGas - Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 2 used in the geometry : Yes recalculation needed : No - Material : Silicon - Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 5.84521 keV e- 422.711 keV e+ 407.385 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 3 used in the geometry : Yes recalculation needed : No - Material : Scintillator - Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 2.08499 keV e- 281.588 keV e+ 274.74 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 4 used in the geometry : Yes recalculation needed : No - Material : Lead - Range cuts : gamma 700 mum e- 700 mum e+ 700 mum - Energy thresholds : gamma 94.7155 keV e- 1.00067 MeV e+ 940.93 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -==================================================================== - + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ### Run 0 start. Stage 0->1 : 1 hits found in the muon chamber. -Stage 1->2 : 1 isolated muon found. +Stage 1->2 : 0 isolated muon found. +++++++++ event aborted >>> Event 0 - 19 hits are stored in ExN04TrackerHitsCollection. - 5 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.23222415 (GeV) + 25 hits are stored in ExN04TrackerHitsCollection. + 1 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.17259913 (GeV) 1 hits are stored in ExN04MuonHitsCollection. ### Run 1 start. Stage 0->1 : 1 hits found in the muon chamber. -Stage 1->2 : 1 isolated muon found. +Stage 1->2 : 0 isolated muon found. +++++++++ event aborted >>> Event 0 - 7 hits are stored in ExN04TrackerHitsCollection. - 15 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 4.0202134 (GeV) + 21 hits are stored in ExN04TrackerHitsCollection. + 2 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.17223004 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 1 hits found in the muon chamber. -Stage 1->2 : 1 isolated muon found. +Stage 1->2 : 0 isolated muon found. +++++++++ event aborted >>> Event 1 - 5 hits are stored in ExN04TrackerHitsCollection. - 24 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 12.186877 (GeV) + 20 hits are stored in ExN04TrackerHitsCollection. + 2 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.17281713 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N04/exampleN04.cc b/examples/novice/N04/exampleN04.cc index 92c110ab5e..12ddedefe7 100644 --- a/examples/novice/N04/exampleN04.cc +++ b/examples/novice/N04/exampleN04.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN04.cc,v 1.9 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N04/exampleN04.out b/examples/novice/N04/exampleN04.out index a223c5157d..eb050cff0b 100644 --- a/examples/novice/N04/exampleN04.out +++ b/examples/novice/N04/exampleN04.out @@ -1,50 +1,56 @@ ************************************************************* - Geant4 version $Name: geant4-07-01 $ (23-February-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* +<<< Geant4 Physics List engine packaging library: PACK 3.0 +<<< Geant4 Physics List simulation engine: QGSP 3.0 -You are using the simulation engine reuse library: PACK 2.4 - - -You are using the simulation engine: QGSP 2.8 - - - -phot: Total cross sections from Sandia parametrisation. Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... -11170a0 -1116bc8 -1115498 -1114fc0 -112be28 -1128510 -112c300 -11289e8 -112c7d8 -1128ec0 -112e010 -1129870 -112b478 -1128038 + +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +Registering model factories... /run/verbose 1 /tracking/verbose 0 /run/beamOn 3 -G4VUserPhysicsList::BuildPhysicsTable does not retrieve Cut Table but calculate -compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. - Scattered gamma energy according Klein-Nishina. - PhysicsTables from 1 keV to 100 GeV in 80 bins. +phot: Total cross sections from Sandia parametrisation. -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.022 MeV to 100 GeV in 100 bins. +compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV + Sampling according Klein-Nishina model + tables are built for gamma + Lambda tables from 100 eV to 100 GeV in 90 bins. + +conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; + sampling secondary e+e- according to the Bethe-Heitler model + tables are built for gamma + Lambda tables from 1.022 MeV to 100 GeV in 100 bins. + +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 + +eIoni: tables are built for e- + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -52,15 +58,11 @@ eBrem: tables are built for e- Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -eIoni: tables are built for e- +eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 - -msc: Model variant of multiple scattering for e- - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -68,19 +70,13 @@ eBrem: tables are built for e+ Total cross sections from a parametrisation based on the EEDL data library. Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +annihil: Heilter model of formula of annihilation into 2 photons + tables are built for e+ + Lambda tables from 100 eV to 100 TeV in 120 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. - -eIoni: tables are built for e+ - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -89,9 +85,7 @@ hIoni: tables are built for proton Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -msc: Model variant of multiple scattering for proton - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 +msc: Model variant of multiple scattering for GenericIon ionIoni: tables are built for GenericIon dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -100,7 +94,9 @@ ionIoni: tables are built for GenericIon Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for alpha particles below. Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1 -msc: Model variant of multiple scattering for GenericIon +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -119,10 +115,6 @@ muPairProd: tables are built for mu+ Lambda tables from threshold to 100 TeV in 120 bins. Parametrised model -msc: Model variant of multiple scattering for mu+ - Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - muIoni: tables are built for mu- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. @@ -142,7 +134,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -186,11 +178,12 @@ Index : 4 used in the geometry : Yes recalculation needed : No ### Run 0 start. Start Run processing. Stage 0->1 : 1 hits found in the muon chamber. -Stage 1->2 : 1 isolated muon found. +Stage 1->2 : 0 isolated muon found. +++++++++ event aborted >>> Event 0 - 117 hits are stored in ExN04TrackerHitsCollection. - 40 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.66710365 (GeV) + 253 hits are stored in ExN04TrackerHitsCollection. + 9 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.21372898 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 0 hits found in the muon chamber. ++++++++ event aborted @@ -203,14 +196,14 @@ Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 0 isolated muon found. ++++++++ event aborted >>> Event 2 - 87 hits are stored in ExN04TrackerHitsCollection. + 141 hits are stored in ExN04TrackerHitsCollection. 13 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.33093991 (GeV) + Total energy deposition in calorimeter : 0.33186402 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Run terminated. Run Summary Number of events processed : 3 - User=3.22s Real=3.62s Sys=0.19s + User=2.38s Real=2.59s Sys=0.04s G4 kernel has come to Quit state. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N04/include/ExN04RunAction.hh b/examples/novice/N04/include/ExN04RunAction.hh index 4a11a9fb82..dab5ba0918 100644 --- a/examples/novice/N04/include/ExN04RunAction.hh +++ b/examples/novice/N04/include/ExN04RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04RunAction.hh,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN04RunAction.hh,v 1.4 2005/12/03 20:34:57 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,7 +45,6 @@ class ExN04RunAction : public G4UserRunAction public: void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/include/ExN04SteppingVerbose.hh b/examples/novice/N04/include/ExN04SteppingVerbose.hh index 08157cf409..782198cf5a 100644 --- a/examples/novice/N04/include/ExN04SteppingVerbose.hh +++ b/examples/novice/N04/include/ExN04SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.hh,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/novice/N04/src/ExN04EventAction.cc b/examples/novice/N04/src/ExN04EventAction.cc index 45f1973924..d9aec624e4 100644 --- a/examples/novice/N04/src/ExN04EventAction.cc +++ b/examples/novice/N04/src/ExN04EventAction.cc @@ -64,24 +64,6 @@ void ExN04EventAction::EndOfEventAction(const G4Event* evt) { G4cout << ">>> Event " << evt->GetEventID() << G4endl; - // get number of stored trajectories - // - G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); - G4int n_trajectories = 0; - if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); - - // extract the trajectories and draw them - // - if (G4VVisManager::GetConcreteInstance()) - { - for (G4int i=0; iGetTrajectoryContainer()))[i]); - trj->DrawTrajectory(50); - } - } - - if(trackerCollID<0||calorimeterCollID<0||muonCollID<0) return; G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); diff --git a/examples/novice/N04/src/ExN04RunAction.cc b/examples/novice/N04/src/ExN04RunAction.cc index a17d12dc4b..0a1d13f1f2 100644 --- a/examples/novice/N04/src/ExN04RunAction.cc +++ b/examples/novice/N04/src/ExN04RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04RunAction.cc,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN04RunAction.cc,v 1.4 2005/12/03 20:34:57 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -52,25 +52,6 @@ void ExN04RunAction::BeginOfRunAction(const G4Run* aRun) G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; G4RunManager::GetRunManager()->SetRandomNumberStore(true); - - if (G4VVisManager::GetConcreteInstance()) - { - G4UImanager* UI = G4UImanager::GetUIpointer(); - UI->ApplyCommand("/vis/scene/notifyHandlers"); - } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN04RunAction::EndOfRunAction(const G4Run*) -{ - if (G4VVisManager::GetConcreteInstance()) - { - G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - - diff --git a/examples/novice/N04/src/ExN04SteppingVerbose.cc b/examples/novice/N04/src/ExN04SteppingVerbose.cc index 75b5499bb7..77679cc322 100644 --- a/examples/novice/N04/src/ExN04SteppingVerbose.cc +++ b/examples/novice/N04/src/ExN04SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04SteppingVerbose.cc,v 1.3 2003/06/16 16:49:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/vis.mac b/examples/novice/N04/vis.mac index aacc1b037b..aca6dd7eb6 100644 --- a/examples/novice/N04/vis.mac +++ b/examples/novice/N04/vis.mac @@ -25,7 +25,14 @@ /vis/viewer/flush # # for drawing the tracks +# Draw trajectories at end of event, showing trajectory points as +# markers of size 2 pixels (parameter/1000). +/vis/scene/add/trajectories 2000 # (if too many tracks cause core dump => storeTrajectory 0) /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate - +# +# Refresh ready for run +/vis/viewer/refresh +# +# Now ready for /run/beamOn. diff --git a/examples/novice/N05/History b/examples/novice/N05/History index f96665ff3b..f0fd4a13ef 100644 --- a/examples/novice/N05/History +++ b/examples/novice/N05/History @@ -1,4 +1,4 @@ -$Id: History,v 1.24 2005/06/28 14:47:09 gcosmo Exp $ +$Id: History,v 1.32 2005/12/06 10:54:47 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,24 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +6th December 2005 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +4th December 2005 John Allison (exampleN05-V07-01-03) +- Quietened vis manager in batch mode. + +25th November 2005 Marc Verderi (exampleN05-V07-01-02) +- Ghost functionnality made available back +- requires param-V07-01-03 + +16th November 2005 Marc Verderi (exampleN05-V07-01-01) +- Migration to G4Region. +- NOTE: *** ghost functionnality is not available for now ***. +- Implemented migration to from deprecated . + +4th November 2005 Marc Verderi (exampleN05-V07-01-00) +- Use RandGamma from CLHEP end removed custom RandomGamma function. + 28th June 2005 Gabriele Cosmo (exampleN05-V07-00-00) - Added inclusion of to RandomGamma.cc. diff --git a/examples/novice/N05/exampleN05.cc b/examples/novice/N05/exampleN05.cc index 5aa043f20b..d2c7500ff0 100644 --- a/examples/novice/N05/exampleN05.cc +++ b/examples/novice/N05/exampleN05.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN05.cc,v 1.11 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: exampleN05.cc,v 1.12 2005/12/04 00:10:37 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -131,6 +131,9 @@ int main(int argc, char** argv) { } else { +#ifdef G4VIS_USE + visManager->SetVerboseLevel("quiet"); +#endif G4UImanager* UImanager = G4UImanager::GetUIpointer(); G4String command = "/control/execute "; G4String fileName = argv[1]; diff --git a/examples/novice/N05/exampleN05.in b/examples/novice/N05/exampleN05.in index 0da91b5f63..a71643c8fd 100644 --- a/examples/novice/N05/exampleN05.in +++ b/examples/novice/N05/exampleN05.in @@ -18,6 +18,7 @@ /gun/direction 0 -.6 1. /run/beamOn 5 # +# trigger ghost fast simulation: /gun/particle pi- /gun/energy 1 GeV /gun/position 0 0 0 diff --git a/examples/novice/N05/exampleN05.out b/examples/novice/N05/exampleN05.out index 7bb5bba351..3c7b4b7e2e 100644 --- a/examples/novice/N05/exampleN05.out +++ b/examples/novice/N05/exampleN05.out @@ -1,7 +1,7 @@ RunManager construction starting.... ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -10,7 +10,7 @@ RunManager construction starting.... ExN05DetectorConstruction.... -Closing FastSimulation +Closing Fast-Simulation ... Instantiating Visualization Manager....... Visualization Manager instantiating... Visualization Manager initialising... @@ -27,6 +27,8 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) +Registering model factories... + conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z; sampling secondary e+e- according to the Bethe-Heitler model tables are built for gamma @@ -41,13 +43,13 @@ phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -59,7 +61,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -80,7 +82,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 msc: Model variant of multiple scattering for GenericIon @@ -93,7 +95,7 @@ muIoni: tables are built for mu+ msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -124,316 +126,314 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ### Run 0 start. ExN05EMShowerModel::DoIt >>> Event 0 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999895 (GeV) + 13 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999918 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999905 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 13 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999901 (GeV) + 12 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999876 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999901 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999823 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999924 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999901 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 1 start. ExN05EMShowerModel::DoIt >>> Event 0 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999895 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999823 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 - 6 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999924 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999913 (GeV) + 8 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999925 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999928 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999924 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) + 8 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999901 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 2 start. ExN05EMShowerModel::DoIt >>> Event 0 - 6 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999854 (GeV) + 7 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999923 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 - 7 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999921 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999911 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999927 (GeV) + 7 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999922 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999924 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 11 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999912 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999894 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 3 start. ExN05EMShowerModel::DoIt >>> Event 0 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999923 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99992 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 1 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. + 11 hits are stored in EM ExN05CalorimeterHitsCollection. Total energy deposition in EM calorimeter crytals : 0.999912 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999912 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999917 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 3 - 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999925 (GeV) + 12 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999902 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 12 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999913 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999916 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 4 start. ExN05PionShowerModel::DoIt >>> Event 0 - 4 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.0999937 (GeV) + 6 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.199989 (GeV) 11 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.899943 (GeV) + Total energy deposition in HAD calorimeter towers : 0.739959 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 13 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.499974 (GeV) - 11 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 1.37992 (GeV) + 12 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.379977 (GeV) + 14 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 1.49991 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 19 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.879947 (GeV) - 13 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 1.91988 (GeV) + 18 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.599964 (GeV) + 15 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 2.25986 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 24 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.19993 (GeV) - 14 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.47985 (GeV) + 22 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.799951 (GeV) + 17 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 3.01982 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 26 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.45991 (GeV) - 16 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 3.17981 (GeV) + 22 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.919945 (GeV) + 18 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 3.71978 (GeV) number of event = 5 ### Run 5 start. ExN05PionShowerModel::DoIt >>> Event 0 - 29 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.51991 (GeV) + 23 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.939944 (GeV) 29 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 4.11977 (GeV) + Total energy deposition in HAD calorimeter towers : 4.69972 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 29 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.51991 (GeV) + 24 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.959943 (GeV) 31 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 5.11971 (GeV) + Total energy deposition in HAD calorimeter towers : 5.67967 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 30 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.53991 (GeV) - 33 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 6.09966 (GeV) + 28 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.07994 (GeV) + 32 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 6.55963 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 31 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.55991 (GeV) - 35 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 7.0796 (GeV) + 29 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.09994 (GeV) + 33 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 7.53958 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 32 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.57991 (GeV) - 37 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 8.05953 (GeV) + 31 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.17993 (GeV) + 34 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 8.45953 (GeV) number of event = 5 ### Run 6 start. ExN05PionShowerModel::DoIt >>> Event 0 - 35 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.61992 (GeV) - 51 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 8.97932 (GeV) + 34 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.23993 (GeV) + 44 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 9.39949 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 35 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.6399 (GeV) - 56 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 9.93927 (GeV) + 37 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.29992 (GeV) + 48 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 10.3394 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 39 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.73989 (GeV) - 57 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 10.8392 (GeV) + 37 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.33992 (GeV) + 53 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 11.2994 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 39 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.73989 (GeV) - 60 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 11.8391 (GeV) + 37 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.35992 (GeV) + 57 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 12.2792 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 41 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.79989 (GeV) - 62 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.7791 (GeV) + 37 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.39992 (GeV) + 58 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 13.2391 (GeV) number of event = 5 ### Run 7 start. ExN05PionShowerModel::DoIt >>> Event 0 - 50 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.01987 (GeV) - 68 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 13.539 (GeV) + 40 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.45991 (GeV) + 67 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 14.0991 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 55 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.21986 (GeV) + 48 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.6599 (GeV) 70 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 14.259 (GeV) + Total energy deposition in HAD calorimeter towers : 14.8791 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 58 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.39985 (GeV) - 71 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 15.039 (GeV) + 50 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.81989 (GeV) + 73 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 15.639 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 62 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.61984 (GeV) - 72 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 15.7789 (GeV) + 54 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.11988 (GeV) + 73 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 16.239 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 65 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 2.85983 (GeV) - 73 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 16.5389 (GeV) + 59 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.25987 (GeV) + 74 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 17.0389 (GeV) number of event = 5 ### Run 8 start. >>> Event 0 - 35 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99648423 (GeV) + 33 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99827742 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 1 39 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.9935624 (GeV) + Total energy deposition in EM calorimeter crytals : 0.99382059 (GeV) 1 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.003090627 (GeV) + Total energy deposition in HAD calorimeter towers : 0.0024117701 (GeV) >>> Event 2 - 33 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99333229 (GeV) - 2 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0030145333 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99865616 (GeV) + 0 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 3 - 38 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.97739134 (GeV) + 45 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.98852492 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 4 - 30 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99942693 (GeV) + 38 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99692409 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 ### Run 9 start. >>> Event 0 - 27 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99532959 (GeV) + 25 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99607919 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 1 - 22 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99589786 (GeV) + 31 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99992306 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 2 - 33 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99988457 (GeV) - 0 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0 (GeV) + 28 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99748754 (GeV) + 1 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.0013660791 (GeV) >>> Event 3 - 25 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.9985414 (GeV) - 0 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0 (GeV) + 22 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99654916 (GeV) + 1 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.0013597942 (GeV) >>> Event 4 - 23 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99989988 (GeV) + 27 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.99325208 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 -Graphics systems deleted. -Visualization Manager deleting... diff --git a/examples/novice/N05/include/ExN05CalorimeterHit.hh b/examples/novice/N05/include/ExN05CalorimeterHit.hh index f129dcf8f6..981073f192 100644 --- a/examples/novice/N05/include/ExN05CalorimeterHit.hh +++ b/examples/novice/N05/include/ExN05CalorimeterHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterHit.hh,v 1.7 2003/11/10 14:41:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05CalorimeterHit_h diff --git a/examples/novice/N05/include/ExN05CalorimeterSD.hh b/examples/novice/N05/include/ExN05CalorimeterSD.hh index 7802feddcf..e15f0ab552 100644 --- a/examples/novice/N05/include/ExN05CalorimeterSD.hh +++ b/examples/novice/N05/include/ExN05CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterSD.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05CalorimeterSD_h diff --git a/examples/novice/N05/include/ExN05DetectorConstruction.hh b/examples/novice/N05/include/ExN05DetectorConstruction.hh index 5a193b5484..a8dafbe853 100644 --- a/examples/novice/N05/include/ExN05DetectorConstruction.hh +++ b/examples/novice/N05/include/ExN05DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05DetectorConstruction.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05DetectorConstruction_h #define ExN05DetectorConstruction_h 1 diff --git a/examples/novice/N05/include/ExN05DetectorMessenger.hh b/examples/novice/N05/include/ExN05DetectorMessenger.hh index 87ee66b135..4b19e2a37c 100644 --- a/examples/novice/N05/include/ExN05DetectorMessenger.hh +++ b/examples/novice/N05/include/ExN05DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05DetectorMessenger.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N05/include/ExN05EMShowerModel.hh b/examples/novice/N05/include/ExN05EMShowerModel.hh index 7562482343..5dfa0deedc 100644 --- a/examples/novice/N05/include/ExN05EMShowerModel.hh +++ b/examples/novice/N05/include/ExN05EMShowerModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EMShowerModel.hh,v 1.8 2003/06/16 16:49:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05EMShowerModel.hh,v 1.9 2005/11/16 07:39:03 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //---------------------------------------------- @@ -46,7 +46,7 @@ public: //------------------------- // Constructor, destructor //------------------------- - ExN05EMShowerModel (G4String, G4LogicalVolume*); + ExN05EMShowerModel (G4String, G4Region*); ExN05EMShowerModel (G4String); ~ExN05EMShowerModel (); diff --git a/examples/novice/N05/include/ExN05EnergySpot.hh b/examples/novice/N05/include/ExN05EnergySpot.hh index fd72479908..aee7bf929e 100644 --- a/examples/novice/N05/include/ExN05EnergySpot.hh +++ b/examples/novice/N05/include/ExN05EnergySpot.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EnergySpot.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05EnergySpot_h #define ExN05EnergySpot_h diff --git a/examples/novice/N05/include/ExN05EventAction.hh b/examples/novice/N05/include/ExN05EventAction.hh index f2a1895766..04c64b8483 100644 --- a/examples/novice/N05/include/ExN05EventAction.hh +++ b/examples/novice/N05/include/ExN05EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EventAction.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05EventAction_h diff --git a/examples/novice/N05/include/ExN05EventActionMessenger.hh b/examples/novice/N05/include/ExN05EventActionMessenger.hh index 154bfab593..4326972e15 100644 --- a/examples/novice/N05/include/ExN05EventActionMessenger.hh +++ b/examples/novice/N05/include/ExN05EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EventActionMessenger.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05EventActionMessenger_h diff --git a/examples/novice/N05/include/ExN05MaxTimeCuts.hh b/examples/novice/N05/include/ExN05MaxTimeCuts.hh index 873b76ef57..290e2f3c2e 100644 --- a/examples/novice/N05/include/ExN05MaxTimeCuts.hh +++ b/examples/novice/N05/include/ExN05MaxTimeCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05MaxTimeCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinEkineCuts.hh b/examples/novice/N05/include/ExN05MinEkineCuts.hh index 50fcabaa37..ac441d186c 100644 --- a/examples/novice/N05/include/ExN05MinEkineCuts.hh +++ b/examples/novice/N05/include/ExN05MinEkineCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05MinEkineCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinRangeCuts.hh b/examples/novice/N05/include/ExN05MinRangeCuts.hh index 7b829d4111..48b49ac9a6 100644 --- a/examples/novice/N05/include/ExN05MinRangeCuts.hh +++ b/examples/novice/N05/include/ExN05MinRangeCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05MinRangeCuts.hh,v 1.5 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05PhysicsList.hh b/examples/novice/N05/include/ExN05PhysicsList.hh index 19c5bcf71f..5f232c4019 100644 --- a/examples/novice/N05/include/ExN05PhysicsList.hh +++ b/examples/novice/N05/include/ExN05PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PhysicsList.hh,v 1.7 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // #ifndef ExN05PhysicsList_h diff --git a/examples/novice/N05/include/ExN05PiModel.hh b/examples/novice/N05/include/ExN05PiModel.hh index 0d4d54eb5e..45981f69b8 100644 --- a/examples/novice/N05/include/ExN05PiModel.hh +++ b/examples/novice/N05/include/ExN05PiModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PiModel.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05PiModel.hh,v 1.5 2005/11/16 07:39:03 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //---------------------------------------- @@ -39,7 +39,7 @@ public: //------------------------- // Constructor, destructor //------------------------- - ExN05PiModel (G4LogicalVolume *anEnvelope); + ExN05PiModel (G4Region *anEnvelope); ~ExN05PiModel (); //------------------------------ diff --git a/examples/novice/N05/include/ExN05PionShowerModel.hh b/examples/novice/N05/include/ExN05PionShowerModel.hh index 37be7ca333..2b272fd456 100644 --- a/examples/novice/N05/include/ExN05PionShowerModel.hh +++ b/examples/novice/N05/include/ExN05PionShowerModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PionShowerModel.hh,v 1.8 2003/06/16 16:50:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05PionShowerModel.hh,v 1.9 2005/11/16 07:39:03 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //---------------------------------------------- @@ -44,7 +44,7 @@ public: //------------------------- // Constructor, destructor //------------------------- - ExN05PionShowerModel (G4String, G4LogicalVolume*); + ExN05PionShowerModel (G4String, G4Region*); ExN05PionShowerModel (G4String); ~ExN05PionShowerModel (); diff --git a/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh b/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh index 4fb11ea908..9d1cd6cb8a 100644 --- a/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh +++ b/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PrimaryGeneratorAction.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05PrimaryGeneratorAction_h diff --git a/examples/novice/N05/include/ExN05RunAction.hh b/examples/novice/N05/include/ExN05RunAction.hh index a4e821e101..83a0e5771c 100644 --- a/examples/novice/N05/include/ExN05RunAction.hh +++ b/examples/novice/N05/include/ExN05RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05RunAction.hh,v 1.8 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05RunAction_h diff --git a/examples/novice/N05/include/ExN05SpecialCuts.hh b/examples/novice/N05/include/ExN05SpecialCuts.hh index 65ab24d8c4..d7f7ebe74b 100644 --- a/examples/novice/N05/include/ExN05SpecialCuts.hh +++ b/examples/novice/N05/include/ExN05SpecialCuts.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05SpecialCuts.hh,v 1.7 2003/08/27 16:15:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05SteppingAction.hh b/examples/novice/N05/include/ExN05SteppingAction.hh index c79d3926d2..3230de98e0 100644 --- a/examples/novice/N05/include/ExN05SteppingAction.hh +++ b/examples/novice/N05/include/ExN05SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingAction.hh,v 1.5 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05SteppingAction_h diff --git a/examples/novice/N05/include/ExN05SteppingActionMessenger.hh b/examples/novice/N05/include/ExN05SteppingActionMessenger.hh index 1dafa864e2..9d7a727615 100644 --- a/examples/novice/N05/include/ExN05SteppingActionMessenger.hh +++ b/examples/novice/N05/include/ExN05SteppingActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingActionMessenger.hh,v 1.4 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN05SteppingActionMessenger_h diff --git a/examples/novice/N05/src/ExN05CalorimeterHit.cc b/examples/novice/N05/src/ExN05CalorimeterHit.cc index f7ae39559d..da01b9f273 100644 --- a/examples/novice/N05/src/ExN05CalorimeterHit.cc +++ b/examples/novice/N05/src/ExN05CalorimeterHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterHit.cc,v 1.5 2003/05/28 11:20:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05CalorimeterHit.hh" diff --git a/examples/novice/N05/src/ExN05CalorimeterSD.cc b/examples/novice/N05/src/ExN05CalorimeterSD.cc index ac141ba2f8..f03d225143 100644 --- a/examples/novice/N05/src/ExN05CalorimeterSD.cc +++ b/examples/novice/N05/src/ExN05CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05CalorimeterSD.cc,v 1.5 2003/05/28 11:20:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorConstruction.cc b/examples/novice/N05/src/ExN05DetectorConstruction.cc index bac6dbc346..a08ceda943 100644 --- a/examples/novice/N05/src/ExN05DetectorConstruction.cc +++ b/examples/novice/N05/src/ExN05DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05DetectorConstruction.cc,v 1.5 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05DetectorConstruction.cc,v 1.8 2005/11/26 00:41:40 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05DetectorConstruction.hh" #include "ExN05CalorimeterSD.hh" @@ -251,24 +251,27 @@ G4VPhysicalVolume* ExN05DetectorConstruction::Construct() //--------------- Ghost Volumes ------------------------------------ // Ghost volumes will be placed in an automatic copy of the world volume. // The placement of the ghost logical volume are specified by the - // G4FastSimulationManager object attached to it. + // G4FastSimulationManager object attached to the related region + // ** this is a temporary implemention using regions : this will ** + // ** be improved with incoming "parallel geometries" functionnality ** // Those placement are given compared to the world. // -- Solid: - G4Box *ghostBox - = new G4Box("GhostBox", detectSize+5*cm, detectSize+5*cm, 80*cm); - // -- Logical volume: - G4LogicalVolume* ghostLogical - = new G4LogicalVolume(ghostBox,Air, - "GhostLogical", - 0, 0, 0); + G4Box *ghostBox + = new G4Box("GhostBox", detectSize+5*cm, detectSize+5*cm, 80*cm); + // -- Logical volume: + G4LogicalVolume* ghostLogical + = new G4LogicalVolume(ghostBox,Air, + "GhostLogical", + 0, 0, 0); + // -- make it becoming a region: + G4Region* ghostRegion = new G4Region("Ghost Calorimeter Region"); + ghostRegion->AddRootLogicalVolume(ghostLogical); - // G4FastSimulationManager doesn't exist yet: we set it - // (not needed if we set a G4VFastSimulationModel which - // takes care of creating one if needed) - new G4FastSimulationManager(ghostLogical); + // G4FastSimulationManager doesn't exist yet: we set it + new G4FastSimulationManager(ghostRegion); - ghostLogical->GetFastSimulationManager()-> - AddGhostPlacement(0,G4ThreeVector(0., 0., 175*cm)); + ghostRegion->GetFastSimulationManager()-> + AddGhostPlacement(0,G4ThreeVector(0., 0., 175*cm)); //--------- Sensitive detector ------------------------------------- G4SDManager* SDman = G4SDManager::GetSDMpointer(); @@ -282,15 +285,18 @@ G4VPhysicalVolume* ExN05DetectorConstruction::Construct() SDman->AddNewDetector( HadCalorimeterSD ); theTowerLog->SetSensitiveDetector(HadCalorimeterSD); - //------------------ Parameterisation ------------------------------ + //------------------ Parameterisation Models -------------------------- + // -- Makes the calorimeterLog volume becoming a G4Region: + G4Region* caloRegion = new G4Region("EM_calo_region"); + caloRegion->AddRootLogicalVolume(calorimeterLog); // builds a model and sets it to the envelope of the calorimeter: // ExN05EMShowerModel* emShowerModel = - new ExN05EMShowerModel("emShowerModel",calorimeterLog); - - // and a model attached to the ghost: - // ExN05PionShowerModel* ghostPionShowerModel = - new ExN05PionShowerModel("ghostPionShowerModel",ghostLogical); + new ExN05EMShowerModel("emShowerModel",caloRegion); + // and a model attached to the ghost: + // ExN05PionShowerModel* ghostPionShowerModel = + new ExN05PionShowerModel("ghostPionShowerModel",ghostRegion); + //--------- Visualization attributes ------------------------------- WorldLog->SetVisAttributes(G4VisAttributes::Invisible); diff --git a/examples/novice/N05/src/ExN05DetectorMessenger.cc b/examples/novice/N05/src/ExN05DetectorMessenger.cc index d25f4da8ad..0f1f6f2e44 100644 --- a/examples/novice/N05/src/ExN05DetectorMessenger.cc +++ b/examples/novice/N05/src/ExN05DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05DetectorMessenger.cc,v 1.6 2003/06/16 16:50:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05DetectorMessenger.cc,v 1.7 2005/11/16 08:33:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -34,7 +34,7 @@ #include "globals.hh" #include -#include +#include ExN05DetectorMessenger::ExN05DetectorMessenger(ExN05DetectorConstruction * myDet) : myDetector(myDet) { @@ -103,8 +103,7 @@ void ExN05DetectorMessenger::SetNewValue(G4UIcommand * command,G4String newValue G4String ExN05DetectorMessenger::GetCurrentValue(G4UIcommand * command) { G4String returnValue('\0'); - char line[255]; - std::ostrstream os(line,255); + std::ostringstream os; if( command == SwitchCmd ) { if ( myDetector->IsUseUserLimits() )returnValue = "on"; @@ -112,15 +111,15 @@ G4String ExN05DetectorMessenger::GetCurrentValue(G4UIcommand * command) } else if( command == TmaxCmd ) { os << myDetector->GetMaxTimeInCrystal()/ns << " ns" << '\0'; - returnValue = G4String(line); + returnValue = os.str(); } else if( command == EminCmd ) { os << myDetector->GetMinEkineInCrystal()/MeV << " MeV" << '\0'; - returnValue = G4String(line); + returnValue = os.str(); } else if( command == RminCmd ) { os << myDetector->GetMinRangeInCrystal()/mm << " mm" << '\0'; - returnValue = G4String(line); + returnValue = os.str(); } return returnValue; } diff --git a/examples/novice/N05/src/ExN05EMShowerModel.cc b/examples/novice/N05/src/ExN05EMShowerModel.cc index b6384a1df5..b0fb061e33 100644 --- a/examples/novice/N05/src/ExN05EMShowerModel.cc +++ b/examples/novice/N05/src/ExN05EMShowerModel.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: ExN05EMShowerModel.cc,v 1.10 2005/06/27 15:28:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05EMShowerModel.cc,v 1.13 2005/11/16 08:26:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05EMShowerModel.hh" #include "ExN05EnergySpot.hh" -#include "RandomGamma.hh" #include "Randomize.hh" #include "G4Electron.hh" @@ -36,9 +35,8 @@ #include "G4TransportationManager.hh" #include "G4VSensitiveDetector.hh" #include "G4TouchableHandle.hh" -//#include "G4TouchableHistory.hh" -ExN05EMShowerModel::ExN05EMShowerModel(G4String modelName, G4LogicalVolume* envelope) +ExN05EMShowerModel::ExN05EMShowerModel(G4String modelName, G4Region* envelope) : G4VFastSimulationModel(modelName, envelope) { fFakeStep = new G4Step(); @@ -146,7 +144,7 @@ void ExN05EMShowerModel::Explode(const G4FastTrack& fastTrack) { // Longitudinal profile: // -- shoot z according to Gamma distribution: - bt = RandomGamma(a); + bt = CLHEP::RandGamma::shoot(a,1.0); t = bt/b; z = t*X0; diff --git a/examples/novice/N05/src/ExN05EnergySpot.cc b/examples/novice/N05/src/ExN05EnergySpot.cc index 271e47ad78..936439c8f6 100644 --- a/examples/novice/N05/src/ExN05EnergySpot.cc +++ b/examples/novice/N05/src/ExN05EnergySpot.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05EnergySpot.cc,v 1.6 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05EventAction.cc b/examples/novice/N05/src/ExN05EventAction.cc index 9c5c98a4b9..0a48895c26 100644 --- a/examples/novice/N05/src/ExN05EventAction.cc +++ b/examples/novice/N05/src/ExN05EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05EventAction.cc,v 1.8 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05EventAction.hh" diff --git a/examples/novice/N05/src/ExN05EventActionMessenger.cc b/examples/novice/N05/src/ExN05EventActionMessenger.cc index 2ef39bcec2..c374ce5bf2 100644 --- a/examples/novice/N05/src/ExN05EventActionMessenger.cc +++ b/examples/novice/N05/src/ExN05EventActionMessenger.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: ExN05EventActionMessenger.cc,v 1.5 2003/06/16 16:50:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05EventActionMessenger.cc,v 1.6 2005/11/16 08:33:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05EventActionMessenger.hh" -#include "ExN05EventAction.hh" -#include "globals.hh" +#include + +#include "ExN05EventAction.hh" #include "G4UIcmdWithABool.hh" ExN05EventActionMessenger::ExN05EventActionMessenger(ExN05EventAction* EA) @@ -48,7 +49,7 @@ void ExN05EventActionMessenger::SetNewValue(G4UIcommand* command, G4String newVa { G4int vl; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; EventAction->SetDrawFlag(vl!=0); } diff --git a/examples/novice/N05/src/ExN05MaxTimeCuts.cc b/examples/novice/N05/src/ExN05MaxTimeCuts.cc index e2d2c877a4..f405266387 100644 --- a/examples/novice/N05/src/ExN05MaxTimeCuts.cc +++ b/examples/novice/N05/src/ExN05MaxTimeCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MaxTimeCuts.cc,v 1.6 2003/05/28 11:20:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinEkineCuts.cc b/examples/novice/N05/src/ExN05MinEkineCuts.cc index 22c46fc64c..29a3515f49 100644 --- a/examples/novice/N05/src/ExN05MinEkineCuts.cc +++ b/examples/novice/N05/src/ExN05MinEkineCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MinEkineCuts.cc,v 1.7 2003/12/09 08:42:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinRangeCuts.cc b/examples/novice/N05/src/ExN05MinRangeCuts.cc index fbd08bd4f5..85c201cdd9 100644 --- a/examples/novice/N05/src/ExN05MinRangeCuts.cc +++ b/examples/novice/N05/src/ExN05MinRangeCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05MinRangeCuts.cc,v 1.6 2003/08/27 16:15:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05PhysicsList.cc b/examples/novice/N05/src/ExN05PhysicsList.cc index 8c1950e801..f7efa1a5fe 100644 --- a/examples/novice/N05/src/ExN05PhysicsList.cc +++ b/examples/novice/N05/src/ExN05PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PhysicsList.cc,v 1.9 2003/09/29 04:54:11 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N05/src/ExN05PiModel.cc b/examples/novice/N05/src/ExN05PiModel.cc index 6d65f9d039..08afcba269 100644 --- a/examples/novice/N05/src/ExN05PiModel.cc +++ b/examples/novice/N05/src/ExN05PiModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PiModel.cc,v 1.5 2004/11/25 23:43:02 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05PiModel.cc,v 1.6 2005/11/16 07:39:03 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05PiModel.hh" @@ -30,7 +30,7 @@ #include "G4PionPlus.hh" #include "G4Gamma.hh" -ExN05PiModel::ExN05PiModel(G4Envelope *anEnvelope) : +ExN05PiModel::ExN05PiModel(G4Region *anEnvelope) : G4VFastSimulationModel("ExN05PiModel",anEnvelope) {;} diff --git a/examples/novice/N05/src/ExN05PionShowerModel.cc b/examples/novice/N05/src/ExN05PionShowerModel.cc index b118fb637d..ae05ea5e39 100644 --- a/examples/novice/N05/src/ExN05PionShowerModel.cc +++ b/examples/novice/N05/src/ExN05PionShowerModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PionShowerModel.cc,v 1.12 2005/06/27 15:28:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05PionShowerModel.cc,v 1.14 2005/12/06 10:54:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05PionShowerModel.hh" #include "ExN05EnergySpot.hh" @@ -37,7 +37,7 @@ #include "G4Colour.hh" -ExN05PionShowerModel::ExN05PionShowerModel(G4String modelName, G4LogicalVolume* envelope) +ExN05PionShowerModel::ExN05PionShowerModel(G4String modelName, G4Region* envelope) : G4VFastSimulationModel(modelName, envelope) { fFakeStep = new G4Step(); @@ -135,7 +135,7 @@ void ExN05PionShowerModel::Explode(const G4FastTrack& fastTrack) { z = G4RandGauss::shoot(0,20*cm); r = G4RandGauss::shoot(0,10*cm); - phi = RandFlat::shoot()*twopi; + phi = G4UniformRand()*twopi; ePoint = showerCenter + z*zShower + r*std::cos(phi)*xShower + r*std::sin(phi)*yShower; diff --git a/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc b/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc index deb4d77653..60a57bd97f 100644 --- a/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc +++ b/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PrimaryGeneratorAction.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05PrimaryGeneratorAction.hh" diff --git a/examples/novice/N05/src/ExN05RunAction.cc b/examples/novice/N05/src/ExN05RunAction.cc index d432721201..dbafdbfffe 100644 --- a/examples/novice/N05/src/ExN05RunAction.cc +++ b/examples/novice/N05/src/ExN05RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05RunAction.cc,v 1.7 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Make this appear first! diff --git a/examples/novice/N05/src/ExN05SpecialCuts.cc b/examples/novice/N05/src/ExN05SpecialCuts.cc index 986d4b9980..1724a5c0b8 100644 --- a/examples/novice/N05/src/ExN05SpecialCuts.cc +++ b/examples/novice/N05/src/ExN05SpecialCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SpecialCuts.cc,v 1.8 2004/12/09 10:59:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/src/ExN05SteppingAction.cc b/examples/novice/N05/src/ExN05SteppingAction.cc index f263ccdb35..9b72280a5b 100644 --- a/examples/novice/N05/src/ExN05SteppingAction.cc +++ b/examples/novice/N05/src/ExN05SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingAction.cc,v 1.6 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05SteppingAction.hh" diff --git a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc index c08d2d567e..c932e0dbd7 100644 --- a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc +++ b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: ExN05SteppingActionMessenger.cc,v 1.5 2003/06/16 16:50:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN05SteppingActionMessenger.cc,v 1.6 2005/11/16 08:33:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN05SteppingActionMessenger.hh" -#include "ExN05SteppingAction.hh" -#include "globals.hh" +#include + +#include "ExN05SteppingAction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithABool.hh" @@ -50,7 +51,7 @@ void ExN05SteppingActionMessenger::SetNewValue(G4UIcommand* command, G4String ne { G4int vl; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; SteppingAction->SetDrawFlag(vl!=0); } diff --git a/examples/novice/N05/src/RandomGamma.cc b/examples/novice/N05/src/RandomGamma.cc deleted file mode 100644 index c15919a3ed..0000000000 --- a/examples/novice/N05/src/RandomGamma.cc +++ /dev/null @@ -1,96 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -------------------------------------------- -// Adapted from RNGAMA function of the KERNLIB -// Shoot at random according to the gamma -// distribution. -// -------------------------------------------- -#include "RandomGamma.hh" -#include -#include - -double RandomGamma(double p) -{ - double h; - double stor[15]; - - h = 0.; - if (p > 15) - { - while (h <= 0.) - { - double a; - a = RandExponential::shoot(); - h = p*(1.-1./(9*p)+a/(3*std::sqrt(p))); - h = h*h*h; - } - } - else - { - int m = int(p); - double f = p - m; - if (m > 0) - { - double x = 1.; - RandFlat::shootArray(m, stor); - for (int i = 0; i < m; i++) x *= stor[i]; - h = -std::log(x); - } - if (f >= 0.00001) - { - double x = RandFlat::shoot(); - double x1 = -std::log(x); - if (f >= 0.9999) h += x1; - else - { - x = RandFlat::shoot(); - double wlog; - while (1) - { - wlog = std::log(x)/f; - if (wlog > -100.) - { - double w1 = std::exp(wlog); - x = RandFlat::shoot(); - wlog = std::log(x)/(1.-f); - if (wlog < -100.) - { - h += x1; - break; - } - else - { - double w = w1 + std::exp(wlog); - if (w <= 1.) - { - h += w1/w; - break; - } - } - } - } - } - } - } - return h; -} diff --git a/examples/novice/N06/History b/examples/novice/N06/History index af9437ae5d..1bdcae62e6 100644 --- a/examples/novice/N06/History +++ b/examples/novice/N06/History @@ -1,4 +1,4 @@ -$Id: History,v 1.26 2005/05/17 00:21:46 gum Exp $ +$Id: History,v 1.30 2005/12/06 10:56:06 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,13 +15,19 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +6th December 2005 Gabriele Cosmo +- Trivial changes for support of CLHEP-2.0.X series. + +4th December 2005 John Allison (exampleN06-V07-01-00) +- Replaced vis code in EndOfEventAction by suitable vis commands in vis.mac. + 16 May 2005 Peter Gumplinger (exampleN06-V07-00-01) - use SetProcessOrdering for theDecayProces 11 May 2005 Michel Maire (exampleN06-V07-00-00) - UI command cerenkovMaxPhotons available in Idle state only -3rd May 2005 John Allison (examples-V07-00-03) +3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. June 1, 2004 Peter Gunplinger (exampleN06-V06-01-01) diff --git a/examples/novice/N06/exampleN06.cc b/examples/novice/N06/exampleN06.cc index 24d60dd5f9..c44b03d6be 100644 --- a/examples/novice/N06/exampleN06.cc +++ b/examples/novice/N06/exampleN06.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN06.cc,v 1.8 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: exampleN06.cc,v 1.11 2005/12/06 10:56:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -63,6 +63,8 @@ #include "ExN06StackingAction.hh" #include "ExN06SteppingVerbose.hh" +#include "Randomize.hh" + #ifdef G4VIS_USE #include "G4VisExecutive.hh" #endif @@ -73,7 +75,7 @@ int main(int argc,char** argv) { // Seed the random number generator manually G4long myseed = 345354; - HepRandom::setTheSeed(myseed); + CLHEP::HepRandom::setTheSeed(myseed); //my Verbose output class G4VSteppingVerbose::SetInstance(new ExN06SteppingVerbose); diff --git a/examples/novice/N06/exampleN06.out b/examples/novice/N06/exampleN06.out index 23bf2e4dd6..2f3b75e053 100644 --- a/examples/novice/N06/exampleN06.out +++ b/examples/novice/N06/exampleN06.out @@ -1,6 +1,6 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 @@ -20,6 +20,8 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) + +Registering model factories... Equal Equal Equal @@ -41,13 +43,13 @@ Equal msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -59,7 +61,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -73,7 +75,7 @@ annihil: Heilter model of formula of annihilation into 2 photons msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 hIoni: tables are built for proton dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -82,11 +84,9 @@ hIoni: tables are built for proton Bether-Bloch model for Escaled > 2 MeV, ICRU49 parametrisation for protons below. Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 -msc: Model variant of multiple scattering for GenericIon - msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -124,7 +124,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ### Run 0 start. ********************************************************************************************************* @@ -134,919 +134,1040 @@ msc: Model variant of multiple scattering for pi- Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 0 fm 500 keV 0 eV 0 fm 0 fm Tank initStep - Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 25 + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 34 Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 28 - 1 840 mum 0 fm 0 fm 0 eV 500 keV 1.74 mm 1.74 mm Tank eIoni - 2 840 mum 0 fm 0 fm 0 eV 0 eV 0 fm 1.74 mm Tank Scintillation + 1 954 mum 637 mum 454 mum 43 keV 457 keV 1.49 mm 1.49 mm Tank eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 63, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 840 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep - 1 -2.93 m -3.41 m 5 m 511 keV 0 eV 6.72 m 6.72 m Tank Transportation - 2 -5.85 m -6.82 m 10 m 511 keV 0 eV 6.72 m 13.4 m OutOfWorld Transportation + 0 60.5 mum 40.4 mum 28.8 mum 3.24 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.143701,-0.937057,-0.318235) + Old Polarization: (0.210659,0.285237,-0.93502) + New Momentum Direction: (-0.194839,-0.88083,-0.431481) + New Polarization: (0.819446,-0.387938,0.421914) + *** FresnelRefraction *** + 1 -76.7 cm -5 m -1.7 m 3.24 eV 0 eV 5.34 m 5.34 m Tank Transportation + 2 -1.87 m -10 m -4.15 m 3.24 eV 0 eV 5.68 m 11 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 1 +* G4Track Information: Particle = opticalphoton, Track ID = 62, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 840 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep - 1 2.93 m 3.41 m -5 m 511 keV 0 eV 6.72 m 6.72 m Tank Transportation - 2 5.85 m 6.82 m -10 m 511 keV 0 eV 6.72 m 13.4 m OutOfWorld Transportation + 0 548 mum 366 mum 261 mum 2.52 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 1.91 m 1.76 m 22.9 cm 2.52 eV 0 eV 2.61 m 2.61 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 61, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 106 mum 70.7 mum 50.5 mum 4.07 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.92454703,0.036223043,0.37934244) + Old Polarization: (0.21390579,-0.87317533,-0.43796021) + New Momentum Direction: (0.85513691,0.049277577,0.51605482) + New Polarization: (0.29337035,-0.86673297,-0.40337055) + *** FresnelRefraction *** + 1 5 m 19.6 cm 2.05 m 4.07 eV 0 eV 5.41 m 5.41 m Tank Transportation + 2 10 m 48.4 cm 5.07 m 4.07 eV 0 eV 5.85 m 11.3 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 60, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 583 mum 389 mum 277 mum 2.65 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.73771368,0.076058006,0.67081571) + Old Polarization: (0.62069707,0.31441686,-0.71824591) + New Momentum Direction: (0.40983654,0.10276342,0.90635186) + New Polarization: (0.84900969,0.32030367,-0.42022388) + *** FresnelRefraction *** + 1 5 m 51.6 cm 4.55 m 2.65 eV 0 eV 6.78 m 6.78 m Tank Transportation + 2 7.47 m 1.13 m 10 m 2.65 eV 0 eV 6.02 m 12.8 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 199 mum 133 mum 95 mum 2.39 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 -3.49 m -26.2 cm 15.9 cm 2.39 eV 0 eV 3.5 m 3.5 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 700 mum 467 mum 334 mum 2.31 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.15599765,0.16214519,-0.97435808) + Old Polarization: (-0.11305894,-0.97702049,-0.18068932) + New Momentum Direction: (0.21014867,0.2184302,-0.95295634) + New Polarization: (-0.10267076,-0.96440213,-0.24369498) + *** FresnelRefraction *** + 1 80.1 cm 83.3 cm -5 m 2.31 eV 0 eV 5.13 m 5.13 m Tank Transportation + 2 1.9 m 1.98 m -10 m 2.31 eV 0 eV 5.25 m 10.4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 711 mum 475 mum 339 mum 2.74 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.10948788,0.27927892,0.95394742) + Old Polarization: (0.32796775,-0.89582081,0.2999037) + New Momentum Direction: (-0.14803623,0.37760708,0.91405589) + New Polarization: (0.31354033,-0.85864229,0.40549461) + *** FresnelRefraction *** + 1 -57.3 cm 1.46 m 5 m 2.74 eV 0 eV 5.24 m 5.24 m Tank Transportation + 2 -1.38 m 3.53 m 10 m 2.74 eV 0 eV 5.47 m 10.7 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 579 mum 386 mum 276 mum 2.15 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.89002859,-0.3257515,-0.31895936) + Old Polarization: (0.16194753,0.42809048,-0.88910716) + New Momentum Direction: (-0.78988158,-0.43818403,-0.4290476) + New Polarization: (-0.22120195,0.85609426,-0.46708919) + *** FresnelRefraction *** + 1 -5 m -1.83 m -1.79 m 2.15 eV 0 eV 5.62 m 5.62 m Tank Transportation + 2 -10 m -4.6 m -4.51 m 2.15 eV 0 eV 6.33 m 11.9 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 122 mum 81.6 mum 58.2 mum 2.36 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.44481293,-0.89467634,0.041178942) + Old Polarization: (-0.27605386,0.18069707,0.94400362) + New Momentum Direction: (-0.59948664,-0.79845835,0.055497995) + New Polarization: (0.41021861,-0.24697391,0.87790921) + *** FresnelRefraction *** + 1 -2.49 m -5 m 23 cm 2.36 eV 0 eV 5.59 m 5.59 m Tank Transportation + 2 -6.24 m -10 m 57.8 cm 2.36 eV 0 eV 6.26 m 11.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 403 mum 0 fm 0 fm 3.22 eV 0 eV 0 fm 0 fm Tank initStep + 0 940 mum 628 mum 448 mum 3.05 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.039667021,0.23525975,-0.97112274) - Old Polarization: (-0.72823979,-0.67227019,-0.13311501) - New Momentum Direction: (-0.039667021,0.23525975,0.97112274) - New Polarization: (-0.77760583,-0.61760754,0.11785625) - *** SpikeReflection *** - 1 -20.4 cm 1.21 m -5 m 3.22 eV 0 eV 5.15 m 5.15 m Tank Transportation - 2 -20.4 cm 1.21 m -5 m 3.22 eV 0 eV 0 fm 5.15 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.039667021,0.23525975,0.97112274) - Old Polarization: (-0.77760583,-0.61760754,0.11785625) - New Momentum Direction: (-0.053777489,0.31894703,0.94624562) - New Polarization: (-0.77859685,-0.60671707,0.16025398) + Old Momentum Direction: (0.3062388,-0.94185532,0.13829803) + Old Polarization: (0.36768666,0.25103188,0.895427) + New Momentum Direction: (0.41484969,-0.89039366,0.18734692) + New Polarization: (-0.88079748,-0.34133079,0.32816016) *** FresnelRefraction *** - 3 -38.8 cm 2.3 m -50 cm 3.22 eV 0 eV 4.63 m 9.78 m Tank Transportation - Photon at Boundary! - Old Momentum Direction: (-0.053777489,0.31894703,0.94624562) - Old Polarization: (-0.77859685,-0.60671707,0.16025398) - New Momentum Direction: (-0.039667021,0.23525975,0.97112274) - New Polarization: (-0.77548502,-0.62013518,0.11855521) - *** FresnelRefraction *** - 4 -44.4 cm 2.64 m 50 cm 3.22 eV 0 eV 1.06 m 10.8 m Bubble Transportation - Photon at Boundary! - Old Momentum Direction: (-0.039667021,0.23525975,0.97112274) - Old Polarization: (-0.77548502,-0.62013518,0.11855521) - New Momentum Direction: (-0.053777489,0.31894703,0.94624562) - New Polarization: (-0.77647953,-0.60917426,0.16120255) - *** FresnelRefraction *** - 5 -62.8 cm 3.73 m 5 m 3.22 eV 0 eV 4.63 m 15.5 m Tank Transportation - 6 -91.2 cm 5.41 m 10 m 3.22 eV 0 eV 5.28 m 20.8 m OutOfWorld Transportation + 1 1.63 m -5 m 73.5 cm 3.05 eV 0 eV 5.31 m 5.31 m Tank Transportation + 2 3.96 m -10 m 1.79 m 3.05 eV 0 eV 5.62 m 10.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 362 mum 0 fm 0 fm 3.87 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 -51.8 cm 22.8 cm 3.16 cm 3.87 eV 0 eV 56.8 cm 56.8 cm Tank OpAbsorption + 0 450 mum 301 mum 215 mum 3.96 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.51849005,-0.61446948,-0.59463882) + Old Polarization: (-0.80882323,-0.12679901,-0.5742186) + New Momentum Direction: (0.54468361,0.24737865,0.80132613) + New Polarization: (0.79068639,-0.46995842,-0.39236988) + *** LambertianReflection *** + 1 4.22 m -5 m -4.84 m 3.96 eV 0 eV 8.14 m 8.14 m Tank Transportation + 2 4.22 m -5 m -4.84 m 3.96 eV 0 eV 0 fm 8.14 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.54468361,0.24737865,0.80132613) + Old Polarization: (0.79068639,-0.46995842,-0.39236988) + New Momentum Direction: (-0.54468361,0.24737865,0.80132613) + New Polarization: (0.79068639,0.46995842,0.39236988) + *** LobeReflection *** + 3 5 m -4.65 m -3.69 m 3.96 eV 0 eV 1.43 m 9.57 m Tank Transportation + 4 5 m -4.65 m -3.69 m 3.96 eV 0 eV 0 fm 9.57 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.54468361,0.24737865,0.80132613) + Old Polarization: (0.79068639,0.46995842,0.39236988) + New Momentum Direction: (-0.7406818,0.33639504,0.58157446) + New Polarization: (0.66235609,0.51066436,0.54818457) + *** FresnelRefraction *** + 5 -90.7 cm -1.96 m 5 m 3.96 eV 0 eV 10.8 m 20.4 m Tank Transportation + 6 -7.28 m 92.9 cm 10 m 3.96 eV 0 eV 8.6 m 29 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 670 mum 0 fm 0 fm 2.32 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 -2.76 m -57.4 cm -1.93 m 2.32 eV 0 eV 3.41 m 3.41 m Tank OpAbsorption + 0 747 mum 499 mum 356 mum 3.92 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.68959123,-0.14579871,0.70937061) + Old Polarization: (0.67353825,0.48903904,-0.55424457) + New Momentum Direction: (0.93762783,-0.19824053,0.28557792) + New Polarization: (-0.1125263,0.60418244,0.78886083) + *** FresnelRefraction *** + 1 4.86 m -1.03 m 5 m 3.92 eV 0 eV 7.05 m 7.05 m Tank Transportation + 2 10 m -2.11 m 6.57 m 3.92 eV 0 eV 5.48 m 12.5 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 122 mum 0 fm 0 fm 3.81 eV 0 eV 0 fm 0 fm Tank initStep + 0 487 mum 325 mum 232 mum 3.02 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.028828687,0.99938122,-0.020151615) - Old Polarization: (0.59237132,-0.033319467,-0.8049758) - New Momentum Direction: (0.039183773,0.99885656,-0.027389951) - New Polarization: (-0.95906875,0.045287986,0.2795284) + Old Momentum Direction: (-0.49244792,-0.68067284,-0.54238319) + Old Polarization: (-0.52798153,0.72905312,-0.43556522) + New Momentum Direction: (-0.66699217,-0.12427868,-0.73462661) + New Polarization: (0.024231298,-0.98908705,0.145326) *** FresnelRefraction *** - 1 5.78 cm 2 m -4.03 cm 3.81 eV 0 eV 2 m 2 m Tank Transportation - Photon at Boundary! - Old Momentum Direction: (0.039183773,0.99885656,-0.027389951) - Old Polarization: (-0.95906875,0.045287986,0.2795284) - New Momentum Direction: (0.028828687,0.99938122,-0.020151615) - New Polarization: (-0.95946931,0.033320014,0.27983643) - *** FresnelRefraction *** - 2 9.7 cm 3 m -6.77 cm 3.81 eV 0 eV 1 m 3 m Bubble Transportation - Photon at Boundary! - Old Momentum Direction: (0.028828687,0.99938122,-0.020151615) - Old Polarization: (-0.95946931,0.033320014,0.27983643) - New Momentum Direction: (0.039183773,0.99885656,-0.027389951) - New Polarization: (-0.95905514,0.045288729,0.27957497) - *** FresnelRefraction *** - 3 15.5 cm 5 m -10.8 cm 3.81 eV 0 eV 2 m 5 m Tank Transportation - 4 35.1 cm 10 m -24.5 cm 3.81 eV 0 eV 5.01 m 10 m OutOfWorld Transportation + 1 -3.62 m -5 m -3.98 m 3.02 eV 0 eV 7.35 m 7.35 m Tank Transportation + 2 -9.08 m -6.02 m -10 m 3.02 eV 0 eV 8.19 m 15.5 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 648 mum 0 fm 0 fm 2.54 eV 0 eV 0 fm 0 fm Tank initStep + 0 149 mum 99.4 mum 70.9 mum 3.64 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.67976209,-0.25444015,0.6878835) - Old Polarization: (0.70131468,0.049014812,0.71116472) - New Momentum Direction: (0.21255617,-0.61432624,-0.75988364) - New Polarization: (-0.95021626,0.051371137,-0.30732728) - *** LambertianReflection *** - 1 -4.94 m -1.85 m 5 m 2.54 eV 0 eV 7.27 m 7.27 m Tank Transportation - 2 -4.94 m -1.85 m 5 m 2.54 eV 0 eV 0 fm 7.27 m World Transportation - Photon at Boundary! - Old Momentum Direction: (0.21255617,-0.61432624,-0.75988364) - Old Polarization: (-0.95021626,0.051371137,-0.30732728) - New Momentum Direction: (-0.21255617,0.61432624,0.75988364) - New Polarization: (0.95021626,-0.051371137,0.30732728) - *** BackScattering *** - 3 -3.85 m -5 m 1.1 m 2.54 eV 0 eV 5.13 m 12.4 m Tank Transportation - 4 -3.85 m -5 m 1.1 m 2.54 eV 0 eV 0 fm 12.4 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.21255617,0.61432624,0.75988364) - Old Polarization: (0.95021626,-0.051371137,0.30732728) - New Momentum Direction: (-0.28697604,0.82941328,0.47928944) - New Polarization: (0.89763117,0.058109916,0.43689989) + Old Momentum Direction: (-0.59367866,-0.72173894,-0.35586309) + Old Polarization: (0.75280553,-0.65437336,0.07126942) + New Momentum Direction: (-0.80648964,-0.34040187,-0.48342633) + New Polarization: (0.43075937,-0.89835452,-0.08605532) *** FresnelRefraction *** - 5 -4.94 m -1.85 m 5 m 2.54 eV 0 eV 5.13 m 17.5 m Tank Transportation - 6 -7.93 m 6.8 m 10 m 2.54 eV 0 eV 10.4 m 28 m OutOfWorld Transportation + 1 -4.11 m -5 m -2.47 m 3.64 eV 0 eV 6.93 m 6.93 m Tank Transportation + 2 -10 m -7.48 m -5.99 m 3.64 eV 0 eV 7.3 m 14.2 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 569 mum 0 fm 0 fm 4.1 eV 0 eV 0 fm 0 fm Tank initStep + 0 469 mum 313 mum 224 mum 2.16 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.085301626,0.99623032,0.015772581) - Old Polarization: (0.99209262,0.086388787,-0.091045097) - New Momentum Direction: (-0.11605984,0.99301037,0.021459888) - New Polarization: (0.9889353,0.1175395,-0.090506599) + Old Momentum Direction: (-0.75452764,-0.65625344,0.004412055) + Old Polarization: (-0.066242642,0.069470452,-0.99538222) + New Momentum Direction: (-0.46957574,-0.88287224,0.005935635) + New Polarization: (-0.095372096,0.044039928,-0.99446702) *** FresnelRefraction *** - 1 -17.1 cm 2 m 3.17 cm 4.1 eV 0 eV 2.01 m 2.01 m Tank Transportation - Photon at Boundary! - Old Momentum Direction: (-0.11605984,0.99301037,0.021459888) - Old Polarization: (0.9889353,0.1175395,-0.090506599) - New Momentum Direction: (-0.085301626,0.99623032,0.015772581) - New Polarization: (0.99208438,0.086389492,-0.091134158) - *** FresnelRefraction *** - 2 -28.8 cm 3 m 5.33 cm 4.1 eV 0 eV 1.01 m 3.01 m Bubble Transportation - Photon at Boundary! - Old Momentum Direction: (-0.085301626,0.99623032,0.015772581) - Old Polarization: (0.99208438,0.086389492,-0.091134158) - New Momentum Direction: (-0.11605984,0.99301037,0.021459888) - New Polarization: (0.98892703,0.11754045,-0.090595612) - *** FresnelRefraction *** - 3 -45.9 cm 5 m 8.49 cm 4.1 eV 0 eV 2.01 m 5.02 m Tank Transportation - 4 -1.04 m 10 m 19.3 cm 4.1 eV 0 eV 5.04 m 10.1 m OutOfWorld Transportation + 1 -5 m -4.35 m 2.95 cm 2.16 eV 0 eV 6.63 m 6.63 m Tank Transportation + 2 -8.01 m -10 m 6.75 cm 2.16 eV 0 eV 6.4 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 418 mum 0 fm 0 fm 4.09 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 -6.8 cm -20.8 cm 3.49 cm 4.09 eV 0 eV 22.2 cm 22.2 cm Tank OpAbsorption + 0 402 mum 268 mum 191 mum 2.99 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.1666561,-0.98229479,-0.08557272) + Old Polarization: (-0.11035288,0.10482263,-0.98834936) + New Momentum Direction: (0.1666561,0.98229479,0.08557272) + New Polarization: (0.11035288,-0.10482263,0.98834936) + *** BackScattering *** + 1 -84.8 cm -5 m -43.5 cm 2.99 eV 0 eV 5.09 m 5.09 m Tank Transportation + 2 -84.8 cm -5 m -43.5 cm 2.99 eV 0 eV 0 fm 5.09 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.1666561,0.98229479,0.08557272) + Old Polarization: (0.11035288,-0.10482263,0.98834936) + New Momentum Direction: (0.22568913,0.9672824,0.11588434) + New Polarization: (-0.86053094,0.14217894,0.48915402) + *** FresnelRefraction *** + 3 34 cm 2 m 17.4 cm 2.99 eV 0 eV 7.13 m 12.2 m Tank Transportation + Photon at Boundary! + Old Momentum Direction: (0.22568913,0.9672824,0.11588434) + Old Polarization: (-0.86053094,0.14217894,0.48915402) + New Momentum Direction: (-0.22568913,0.9672824,0.11588434) + New Polarization: (-0.74722768,-0.095554687,-0.6576626) + *** FresnelReflection *** + 4 50 cm 2.69 m 25.7 cm 2.99 eV 0 eV 71 cm 12.9 m Bubble Transportation + 5 50 cm 2.69 m 25.7 cm 2.99 eV 0 eV 0 fm 12.9 m Tank Transportation + Photon at Boundary! + Old Momentum Direction: (-0.22568913,0.9672824,0.11588434) + Old Polarization: (-0.74722768,-0.095554687,-0.6576626) + New Momentum Direction: (-0.1666561,0.98229479,0.08557272) + New Polarization: (-0.093220344,0.070701051,-0.99313208) + *** FresnelRefraction *** + 6 42.7 cm 3 m 29.4 cm 2.99 eV 0 eV 32.3 cm 13.3 m Bubble Transportation + Photon at Boundary! + Old Momentum Direction: (-0.1666561,0.98229479,0.08557272) + Old Polarization: (-0.093220344,0.070701051,-0.99313208) + New Momentum Direction: (-0.22568913,0.9672824,0.11588434) + New Polarization: (-0.097474716,0.095935213,-0.99060341) + *** FresnelRefraction *** + 7 8.77 cm 5 m 46.8 cm 2.99 eV 0 eV 2.04 m 15.3 m Tank Transportation + 8 -1.08 m 10 m 1.07 m 2.99 eV 0 eV 5.17 m 20.5 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 456 mum 0 fm 0 fm 2.88 eV 0 eV 0 fm 0 fm Tank initStep + 0 425 mum 284 mum 202 mum 2.3 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.64218903,0.7587243,0.10922766) - Old Polarization: (-0.1556018,-0.26855483,0.95061369) - New Momentum Direction: (-0.86919216,0.47185694,0.14783781) - New Polarization: (0.35396295,0.384972,0.85235368) + Old Momentum Direction: (0.68080695,-0.30554464,-0.6656909) + Old Polarization: (0.73241767,0.29407876,0.61407006) + New Momentum Direction: (0.1629109,-0.41157416,-0.89669769) + New Polarization: (0.98659845,0.076374086,0.14418911) *** FresnelRefraction *** - 1 -4.23 m 5 m 72 cm 2.88 eV 0 eV 6.59 m 6.59 m Tank Transportation - 2 -10 m 8.13 m 1.7 m 2.88 eV 0 eV 6.64 m 13.2 m OutOfWorld Transportation + 1 5 m -2.24 m -4.89 m 2.3 eV 0 eV 7.34 m 7.34 m Tank Transportation + 2 5.93 m -4.59 m -10 m 2.3 eV 0 eV 5.7 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 699 mum 0 fm 0 fm 3.48 eV 0 eV 0 fm 0 fm Tank initStep + 0 908 mum 606 mum 433 mum 3.13 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.3191864,0.28562051,-0.90362656) - Old Polarization: (-0.94760845,0.10884696,-0.30031743) - New Momentum Direction: (0.4332881,0.38772318,-0.81359213) - New Polarization: (-0.90025675,0.14370886,-0.41095687) + Old Momentum Direction: (-0.5401547,0.088621898,-0.83688653) + Old Polarization: (-0.16371311,0.96437649,0.20778836) + New Momentum Direction: (-0.63927416,0.0036158559,0.7689704) + New Polarization: (0.14325192,-0.98192425,0.12370795) + *** LambertianReflection *** + 1 -3.23 m 53 cm -5 m 3.13 eV 0 eV 5.98 m 5.98 m Tank Transportation + 2 -3.23 m 53 cm -5 m 3.13 eV 0 eV 0 fm 5.98 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.63927416,0.0036158559,0.7689704) + Old Polarization: (0.14325192,-0.98192425,0.12370795) + New Momentum Direction: (0.63927416,0.0036158559,0.7689704) + New Polarization: (0.14325192,0.98192425,-0.12370795) + *** LobeReflection *** + 3 -5 m 54 cm -2.87 m 3.13 eV 0 eV 2.77 m 8.75 m Tank Transportation + 4 -5 m 54 cm -2.87 m 3.13 eV 0 eV 0 fm 8.75 m World Transportation +Scattering Photon! +Old Momentum Direction: (0.63927416,0.0036158559,0.7689704) +Old Polarization: (0.14325192,0.98192425,-0.12370795) +New Polarization: (0.22264896,0.51685869,0.82661026) +Polarization Change: (0.22264896,0.51685869,0.82661026) +New Momentum Direction: (-0.051057344,-0.84054786,0.53932591) +Momentum Change: (-0.051057344,-0.84054786,0.53932591) + 5 -1.94 m 55.7 cm 81.6 cm 3.13 eV 0 eV 4.79 m 13.5 m Tank OpRayleigh + Photon at Boundary! + Old Momentum Direction: (-0.051057344,-0.84054786,0.53932591) + Old Polarization: (0.22264896,0.51685869,0.82661026) + New Momentum Direction: (-0.069192068,-0.67898362,0.73088556) + New Polarization: (0.35085033,-0.70239921,-0.61930558) *** FresnelRefraction *** - 1 1.77 m 1.58 m -5 m 3.48 eV 0 eV 5.53 m 5.53 m Tank Transportation - 2 4.43 m 3.96 m -10 m 3.48 eV 0 eV 6.15 m 11.7 m OutOfWorld Transportation + 6 -2.28 m -5 m 4.38 m 3.13 eV 0 eV 6.61 m 20.2 m Tank Transportation + 7 -2.79 m -10 m 9.76 m 3.13 eV 0 eV 7.36 m 27.5 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 771 mum 0 fm 0 fm 3.29 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 8.87 cm 7.18 cm -1.3 cm 3.29 eV 0 eV 11.4 cm 11.4 cm Tank OpAbsorption + 0 531 mum 355 mum 253 mum 3.37 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.31541138,0.55773754,-0.76775289) + Old Polarization: (0.81307967,0.25832887,0.52169689) + New Momentum Direction: (0.42797219,0.75677726,-0.4940931) + New Polarization: (0.28109633,-0.63103088,-0.72303865) + *** FresnelRefraction *** + 1 2.05 m 3.63 m -5 m 3.37 eV 0 eV 6.51 m 6.51 m Tank Transportation + 2 5.66 m 10 m -9.16 m 3.37 eV 0 eV 8.41 m 14.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 742 mum 0 fm 0 fm 3.41 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (0.43844391,0.89657956,-0.062546253) -Old Polarization: (0.69282795,-0.29283549,0.65896646) -New Polarization: (0.74394422,-0.41664507,0.52244989) -Polarization Change: (0.74394422,-0.41664507,0.52244989) -New Momentum Direction: (0.19702907,-0.61030778,-0.76727046) -Momentum Change: (0.19702907,-0.61030778,-0.76727046) - 1 1.2 m 2.46 m -17.1 cm 3.41 eV 0 eV 2.74 m 2.74 m Tank OpRayleigh - Photon at Boundary! - Old Momentum Direction: (0.19702907,-0.61030778,-0.76727046) - Old Polarization: (0.74394422,-0.41664507,0.52244989) - New Momentum Direction: (0.26737895,-0.82822021,-0.49250359) - New Polarization: (0.40180596,0.56038671,-0.72423664) - *** FresnelRefraction *** - 2 2.44 m -1.38 m -5 m 3.41 eV 0 eV 6.29 m 9.03 m Tank Transportation - 3 5.16 m -9.79 m -10 m 3.41 eV 0 eV 10.2 m 19.2 m OutOfWorld Transportation + 0 507 mum 338 mum 241 mum 2.21 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 51.7 cm 2.5 m -1.64 m 2.21 eV 0 eV 3.04 m 3.04 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 647 mum 0 fm 0 fm 4.02 eV 0 eV 0 fm 0 fm Tank initStep + 0 390 mum 260 mum 186 mum 3.34 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.71269582,0.67722866,0.18282783) - Old Polarization: (-0.23374276,0.47501327,-0.84836709) - New Momentum Direction: (0.29961162,0.92108666,0.24866088) - New Polarization: (0.35459097,0.13445769,-0.9253034) + Old Momentum Direction: (-0.32456565,-0.66003842,0.67750013) + Old Polarization: (-0.59545905,-0.41394146,-0.68853539) + New Momentum Direction: (-0.32456565,-0.66003842,-0.67750013) + New Polarization: (-0.62547629,-0.38753984,0.67719442) + *** LobeReflection *** + 1 -2.39 m -4.87 m 5 m 3.34 eV 0 eV 7.38 m 7.38 m Tank Transportation + 2 -2.39 m -4.87 m 5 m 3.34 eV 0 eV 0 fm 7.38 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.32456565,-0.66003842,-0.67750013) + Old Polarization: (-0.62547629,-0.38753984,0.67719442) + New Momentum Direction: (0.32456565,0.66003842,0.67750013) + New Polarization: (0.62547629,0.38753984,-0.67719442) + *** BackScattering *** + 3 -2.46 m -5 m 4.87 m 3.34 eV 0 eV 19.6 cm 7.58 m Tank Transportation + 4 -2.46 m -5 m 4.87 m 3.34 eV 0 eV 0 fm 7.58 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.32456565,0.66003842,0.67750013) + Old Polarization: (0.62547629,0.38753984,-0.67719442) + New Momentum Direction: (0.44033009,0.8954576,0.065307675) + New Polarization: (0.25374946,-0.19389142,0.94763776) *** FresnelRefraction *** - 1 5 m 4.75 m 1.28 m 4.02 eV 0 eV 7.01 m 7.01 m Tank Transportation - 2 6.71 m 10 m 2.7 m 4.02 eV 0 eV 5.7 m 12.7 m OutOfWorld Transportation + 5 -2.39 m -4.87 m 5 m 3.34 eV 0 eV 19.6 cm 7.77 m Tank Transportation + 6 4.92 m 10 m 6.08 m 3.34 eV 0 eV 16.6 m 24.4 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 135 mum 0 fm 0 fm 3.24 eV 0 eV 0 fm 0 fm Tank initStep + 0 195 mum 130 mum 92.9 mum 2.41 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.40741802,0.69626168,0.59095705) - Old Polarization: (0.3782559,-0.7176375,0.58473831) - New Momentum Direction: (0.55238675,0.22998747,0.8012332) - New Polarization: (-0.14500002,0.97304308,-0.17933809) + Old Momentum Direction: (-0.36958309,0.9010553,-0.22695303) + Old Polarization: (0.32417943,0.35393485,0.87729004) + New Momentum Direction: (-0.49829374,0.81121672,-0.30599147) + New Polarization: (0.26774792,0.47965716,0.8356076) *** FresnelRefraction *** - 1 2.93 m 5 m 4.24 m 3.24 eV 0 eV 7.18 m 7.18 m Tank Transportation - 2 6.89 m 6.65 m 10 m 3.24 eV 0 eV 7.18 m 14.4 m OutOfWorld Transportation + 1 -2.05 m 5 m -1.26 m 2.41 eV 0 eV 5.55 m 5.55 m Tank Transportation + 2 -5.12 m 10 m -3.15 m 2.41 eV 0 eV 6.16 m 11.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 515 mum 0 fm 0 fm 3.44 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.61105452,0.27895939,0.74080634) - Old Polarization: (-0.084101052,0.95342929,-0.28965427) - New Momentum Direction: (0.61105452,0.27895939,-0.74080634) - New Polarization: (-0.30325042,0.94694671,0.1064477) - *** SpikeReflection *** - 1 4.12 m 1.88 m 5 m 3.44 eV 0 eV 6.75 m 6.75 m Tank Transportation - 2 4.12 m 1.88 m 5 m 3.44 eV 0 eV 0 fm 6.75 m World Transportation - Photon at Boundary! - Old Momentum Direction: (0.61105452,0.27895939,-0.74080634) - Old Polarization: (-0.30325042,0.94694671,0.1064477) - New Momentum Direction: (-0.61105452,0.27895939,-0.74080634) - New Polarization: (-0.30325042,-0.94694671,-0.1064477) - *** LobeReflection *** - 3 5 m 2.28 m 3.94 m 3.44 eV 0 eV 1.43 m 8.18 m Tank Transportation - 4 5 m 2.28 m 3.94 m 3.44 eV 0 eV 0 fm 8.18 m World Transportation + 0 124 mum 82.5 mum 58.9 mum 3.46 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 5 4.05 m 2.71 m 2.79 m 3.44 eV 0 eV 1.55 m 9.73 m Tank OpAbsorption + 1 -1.82 m -1.92 m 1.57 m 3.46 eV 0 eV 3.07 m 3.07 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 206 mum 0 fm 0 fm 3.91 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.15420853,-0.98795999,-0.012441754) - Old Polarization: (-0.89175948,-0.14459267,0.42878665) - New Momentum Direction: (-0.15420853,0.98795999,0.012441754) - New Polarization: (0.89175948,0.14459267,-0.42878665) - *** BackScattering *** - 1 78.1 cm -5 m -6.3 cm 3.91 eV 0 eV 5.06 m 5.06 m Tank Transportation - 2 78.1 cm -5 m -6.3 cm 3.91 eV 0 eV 0 fm 5.06 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.15420853,0.98795999,0.012441754) - Old Polarization: (0.89175948,0.14459267,-0.42878665) - New Momentum Direction: (-0.20966717,0.97762647,0.016916233) - New Polarization: (0.88235741,0.19663293,-0.42752883) - *** FresnelRefraction *** - 3 -31.2 cm 2 m 2.52 cm 3.91 eV 0 eV 7.09 m 12.1 m Tank Transportation - Photon at Boundary! - Old Momentum Direction: (-0.20966717,0.97762647,0.016916233) - Old Polarization: (0.88235741,0.19663293,-0.42752883) - New Momentum Direction: (-0.69486096,0.71903647,0.012441754) - New Polarization: (-0.66648564,-0.63738581,-0.38669914) - *** FresnelRefraction *** - 4 -50 cm 2.88 m 4.04 cm 3.91 eV 0 eV 89.7 cm 13 m Bubble Transportation - Photon at Boundary! - Old Momentum Direction: (-0.69486096,0.71903647,0.012441754) - Old Polarization: (-0.66648564,-0.63738581,-0.38669914) - New Momentum Direction: (-0.94475663,0.32733583,0.016916233) - New Polarization: (0.29868447,0.88102199,-0.36686216) - *** FresnelRefraction *** - 5 -2.55 m 5 m 7.71 cm 3.91 eV 0 eV 2.95 m 16 m Tank Transportation - 6 -10 m 7.58 m 21 cm 3.91 eV 0 eV 7.88 m 23.9 m OutOfWorld Transportation + 0 483 mum 322 mum 230 mum 3.5 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 -77.8 cm 70.5 cm -8.48 cm 3.5 eV 0 eV 1.05 m 1.05 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 454 mum 0 fm 0 fm 2.16 eV 0 eV 0 fm 0 fm Tank initStep + 0 547 mum 365 mum 261 mum 3.28 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.54325085,-0.82649986,-0.14756858) - Old Polarization: (-0.81899119,0.48300711,0.30977019) - New Momentum Direction: (-0.73080113,-0.65308622,-0.19851471) - New Polarization: (0.4143463,-0.65555162,0.63132339) + Old Momentum Direction: (0.60496306,0.10101273,0.78982031) + Old Polarization: (0.66776176,0.47594018,-0.57234184) + New Momentum Direction: (0.82041143,0.13698688,0.55512132) + New Polarization: (-0.57080682,0.2526596,0.78124433) *** FresnelRefraction *** - 1 -3.29 m -5 m -89.3 cm 2.16 eV 0 eV 6.05 m 6.05 m Tank Transportation - 2 -8.88 m -10 m -2.41 m 2.16 eV 0 eV 7.66 m 13.7 m OutOfWorld Transportation + 1 3.83 m 64 cm 5 m 3.28 eV 0 eV 6.33 m 6.33 m Tank Transportation + 2 10 m 1.67 m 9.17 m 3.28 eV 0 eV 7.52 m 13.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 88.3 mum 0 fm 0 fm 3.03 eV 0 eV 0 fm 0 fm Tank initStep + 0 405 mum 270 mum 193 mum 2.48 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.19798401,0.96839314,0.15171373) - Old Polarization: (0.51346623,-0.23430376,0.82550238) - New Momentum Direction: (0.26817286,0.94119791,0.20549894) - New Polarization: (-0.90992302,0.3175281,-0.26686328) + Old Momentum Direction: (0.90569417,-0.37565161,0.19647884) + Old Polarization: (-0.11475134,0.22892963,0.96665576) + New Momentum Direction: (0.82029269,-0.5068073,0.26507783) + New Polarization: (0.15693818,0.64512868,0.74778298) *** FresnelRefraction *** - 1 40.9 cm 2 m 31.3 cm 3.03 eV 0 eV 2.07 m 2.07 m Tank Transportation - Photon at Boundary! - Old Momentum Direction: (0.26817286,0.94119791,0.20549894) - Old Polarization: (-0.90992302,0.3175281,-0.26686328) - New Momentum Direction: (0.70296151,0.6948583,0.15171373) - New Polarization: (0.68051247,-0.59511207,-0.42748614) - *** FresnelRefraction *** - 2 50 cm 2.32 m 38.3 cm 3.03 eV 0 eV 33.9 cm 2.4 m Bubble Transportation - Photon at Boundary! - Old Momentum Direction: (0.70296151,0.6948583,0.15171373) - Old Polarization: (0.68051247,-0.59511207,-0.42748614) - New Momentum Direction: (0.95217385,0.22613082,0.20549894) - New Polarization: (-0.084954475,0.84194209,-0.53283792) - *** FresnelRefraction *** - 3 3.21 m 5 m 96.8 cm 3.03 eV 0 eV 3.86 m 6.26 m Tank Transportation - 4 10 m 6.61 m 2.43 m 3.03 eV 0 eV 7.13 m 13.4 m OutOfWorld Transportation + 1 5 m -2.07 m 1.08 m 2.48 eV 0 eV 5.52 m 5.52 m Tank Transportation + 2 10 m -5.16 m 2.7 m 2.48 eV 0 eV 6.1 m 11.6 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 337 mum 0 fm 0 fm 3.59 eV 0 eV 0 fm 0 fm Tank initStep + 0 409 mum 273 mum 195 mum 2.75 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.17437712,0.97416294,0.14352417) - Old Polarization: (-0.96075518,-0.13638901,-0.24155232) - New Momentum Direction: (-0.23684526,0.95178929,0.19493968) - New Polarization: (-0.061082465,0.18566376,-0.98071296) + Old Momentum Direction: (-0.68530144,-0.055639576,-0.72613096) + Old Polarization: (-0.1163685,0.992632,0.033765085) + New Momentum Direction: (-0.92661377,-0.075231707,-0.36841161) + New Polarization: (-0.060921833,0.99687238,-0.050338809) *** FresnelRefraction *** - 1 -35.8 cm 2 m 29.5 cm 3.59 eV 0 eV 2.05 m 2.05 m Tank Transportation - Photon at Boundary! - Old Momentum Direction: (-0.23684526,0.95178929,0.19493968) - Old Polarization: (-0.061082465,0.18566376,-0.98071296) - New Momentum Direction: (-0.69881656,0.70075404,0.14352417) - New Polarization: (-0.052228775,0.15012561,-0.98728641) - *** FresnelRefraction *** - 2 -50 cm 2.57 m 41.2 cm 3.59 eV 0 eV 60.1 cm 2.65 m Bubble Transportation - Photon at Boundary! - Old Momentum Direction: (-0.69881656,0.70075404,0.14352417) - Old Polarization: (-0.052228775,0.15012561,-0.98728641) - New Momentum Direction: (-0.94915773,0.24718034,0.19493968) - New Polarization: (-0.1367181,0.2341255,-0.96254528) - *** FresnelRefraction *** - 3 -2.92 m 5 m 90.9 cm 3.59 eV 0 eV 3.46 m 6.12 m Tank Transportation - 4 -10 m 6.84 m 2.36 m 3.59 eV 0 eV 7.46 m 13.6 m OutOfWorld Transportation + 1 -4.72 m -38.3 cm -5 m 2.75 eV 0 eV 6.89 m 6.89 m Tank Transportation + 2 -10 m -81.2 cm -7.1 m 2.75 eV 0 eV 5.7 m 12.6 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 725 mum 0 fm 0 fm 2.2 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 1.02 m -1.04 m 7.59 cm 2.2 eV 0 eV 1.46 m 1.46 m Tank OpAbsorption + 0 452 mum 302 mum 215 mum 3.99 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.56952241,0.81810066,0.07972157) + Old Polarization: (-0.35734567,0.33376974,-0.87229687) + New Momentum Direction: (0.77452287,0.62318534,0.10841747) + New Polarization: (-0.2567062,0.46632277,-0.84654888) + *** FresnelRefraction *** + 1 3.48 m 5 m 48.7 cm 3.99 eV 0 eV 6.11 m 6.11 m Tank Transportation + 2 9.7 m 10 m 1.36 m 3.99 eV 0 eV 8.02 m 14.1 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 386 mum 0 fm 0 fm 3.36 eV 0 eV 0 fm 0 fm Tank initStep + 0 858 mum 0 fm 0 fm 4.09 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.71235308,-0.69839193,0.069295049) - Old Polarization: (-0.2513067,-0.34602053,-0.90394399) - New Momentum Direction: (0.30531744,-0.94759761,0.094021451) - New Polarization: (0.37833907,0.030104544,-0.92517742) + Old Momentum Direction: (0.85181825,0.2904508,-0.43594037) + Old Polarization: (-0.52383745,0.47230547,-0.70888777) + New Momentum Direction: (0.70146641,0.39517033,-0.59311491) + New Polarization: (0.71270252,-0.38894027,0.58376415) *** FresnelRefraction *** - 1 5 m -4.9 m 48.6 cm 3.36 eV 0 eV 7.02 m 7.02 m Tank Transportation - 2 6.64 m -10 m 99.2 cm 3.36 eV 0 eV 5.38 m 12.4 m OutOfWorld Transportation + 1 5 m 1.7 m -2.56 m 4.09 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m 4.52 m -6.79 m 4.09 eV 0 eV 7.13 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 734 mum 0 fm 0 fm 4.09 eV 0 eV 0 fm 0 fm Tank initStep + 0 280 mum 0 fm 0 fm 2.42 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.67591971,0.45034008,0.58337498) - Old Polarization: (0.71971555,-0.23304715,-0.65398666) - New Momentum Direction: (-0.67591971,0.45034008,0.58337498) - New Polarization: (0.71971555,0.23304715,0.65398666) - *** LobeReflection *** - 1 5 m 3.33 m 4.31 m 4.09 eV 0 eV 7.4 m 7.4 m Tank Transportation - 2 5 m 3.33 m 4.31 m 4.09 eV 0 eV 0 fm 7.4 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.67591971,0.45034008,0.58337498) - Old Polarization: (0.71971555,0.23304715,0.65398666) - New Momentum Direction: (0.67591971,-0.45034008,-0.58337498) - New Polarization: (-0.71971555,-0.23304715,-0.65398666) - *** BackScattering *** - 3 4.21 m 3.86 m 5 m 4.09 eV 0 eV 1.17 m 8.57 m Tank Transportation - 4 4.21 m 3.86 m 5 m 4.09 eV 0 eV 0 fm 8.57 m World Transportation - Photon at Boundary! - Old Momentum Direction: (0.67591971,-0.45034008,-0.58337498) - Old Polarization: (-0.71971555,-0.23304715,-0.65398666) - New Momentum Direction: (-0.67591971,-0.45034008,-0.58337498) - New Polarization: (-0.71971555,0.23304715,0.65398666) - *** LobeReflection *** - 5 5 m 3.33 m 4.31 m 4.09 eV 0 eV 1.17 m 9.75 m Tank Transportation - 6 5 m 3.33 m 4.31 m 4.09 eV 0 eV 0 fm 9.75 m World Transportation - -** Photon absorbed! ** - 7 -3.46 m -2.31 m -2.99 m 4.09 eV 0 eV 12.5 m 22.3 m Tank OpAbsorption + Old Momentum Direction: (0.8595015,-0.44787952,0.24629478) + Old Polarization: (-0.51113323,-0.75313654,0.4141596) + New Momentum Direction: (0.72456979,-0.60391144,0.33209877) + New Polarization: (0.68920143,0.6349029,-0.34914137) + *** FresnelRefraction *** + 1 5 m -2.61 m 1.43 m 2.42 eV 0 eV 5.82 m 5.82 m Tank Transportation + 2 10 m -6.77 m 3.72 m 2.42 eV 0 eV 6.9 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 563 mum 0 fm 0 fm 4.01 eV 0 eV 0 fm 0 fm Tank initStep + 0 669 mum 0 fm 0 fm 2.72 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.36643756,0.83837074,-0.4035567) - Old Polarization: (0.26041278,0.32398155,0.90951698) - New Momentum Direction: (0.49837158,0.67110629,-0.54885528) - New Polarization: (0.31416242,0.45025313,0.83580745) + Old Momentum Direction: (0.85724849,-0.1900385,-0.4785503) + Old Polarization: (-0.51490292,-0.31639017,-0.79672595) + New Momentum Direction: (0.71793601,-0.25691743,-0.64696316) + New Polarization: (0.69610911,0.26497322,0.66724906) *** FresnelRefraction *** - 1 2.19 m 5 m -2.41 m 4.01 eV 0 eV 5.96 m 5.96 m Tank Transportation - 2 5.9 m 10 m -6.5 m 4.01 eV 0 eV 7.45 m 13.4 m OutOfWorld Transportation + 1 5 m -1.11 m -2.79 m 2.72 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m -2.9 m -7.3 m 2.72 eV 0 eV 6.96 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 272 mum 0 fm 0 fm 4.13 eV 0 eV 0 fm 0 fm Tank initStep + 0 908 mum 0 fm 0 fm 4.13 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 -90 cm -3.5 cm 31.6 cm 4.13 eV 0 eV 95.5 cm 95.5 cm Tank OpAbsorption + 1 1.84 m -4.39 cm 1.13 m 4.13 eV 0 eV 2.16 m 2.16 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 181 mum 0 fm 0 fm 2.48 eV 0 eV 0 fm 0 fm Tank initStep + 0 450 mum 0 fm 0 fm 2.59 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.081608771,0.96169841,0.26167953) - Old Polarization: (0.21004477,-0.24006296,0.94776103) - New Momentum Direction: (-0.1101012,0.92910703,0.35304087) - New Polarization: (0.70153815,0.32426254,-0.63458492) + Old Momentum Direction: (0.85813547,0.50155418,-0.10975845) + Old Polarization: (-0.51342332,0.83829739,-0.18345021) + New Momentum Direction: (0.72056118,0.67736178,-0.1482316) + New Polarization: (0.69339136,-0.70390349,0.1540399) *** FresnelRefraction *** - 1 -42.4 cm 5 m 1.36 m 2.48 eV 0 eV 5.2 m 5.2 m Tank Transportation - 2 -1.02 m 10 m 3.26 m 2.48 eV 0 eV 5.38 m 10.6 m OutOfWorld Transportation + 1 5 m 2.92 m -63.9 cm 2.59 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m 7.62 m -1.67 m 2.59 eV 0 eV 6.94 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 54.7 mum 0 fm 0 fm 2.21 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.10144571,-0.75895524,0.64319181) - Old Polarization: (0.022224895,0.64809479,0.76123531) - New Momentum Direction: (0.13654397,-0.4815372,0.86572378) - New Polarization: (-0.16413349,-0.8728272,-0.45960078) - *** FresnelRefraction *** - 1 66.8 cm -5 m 4.24 m 2.21 eV 0 eV 6.59 m 6.59 m Tank Transportation - 2 1.58 m -8.21 m 10 m 2.21 eV 0 eV 6.66 m 13.2 m OutOfWorld Transportation + 0 352 mum 0 fm 0 fm 2.17 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 4.83 m 2.76 m -70 cm 2.17 eV 0 eV 5.61 m 5.61 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 42.2 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 1.9 m 1.99 m -94.3 cm 3.56 eV 0 eV 2.91 m 2.91 m Tank OpAbsorption + 0 461 mum 0 fm 0 fm 2.21 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.86103311,-0.50406594,-0.067375947) + Old Polarization: (-0.5085489,-0.85344292,-0.1140754) + New Momentum Direction: (0.72901566,-0.67846303,-0.090686726) + New Polarization: (0.68449702,0.72258923,0.096584852) + *** FresnelRefraction *** + 1 5 m -2.93 m -39.1 cm 2.21 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m -7.58 m -1.01 m 2.21 eV 0 eV 6.86 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 306 mum 0 fm 0 fm 2.03 eV 0 eV 0 fm 0 fm Tank initStep + 0 680 mum 0 fm 0 fm 2.3 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 5.11 cm 6.56 cm 10.2 cm 2.03 eV 0 eV 13.2 cm 13.2 cm Tank OpAbsorption + 1 2.27 m 41.8 cm -1.28 m 2.3 eV 0 eV 2.64 m 2.64 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 598 mum 0 fm 0 fm 3.95 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.021135295,-0.91329033,-0.40676045) - Old Polarization: (-0.43102505,0.37542315,-0.82053328) - New Momentum Direction: (-0.028739619,-0.83261244,-0.5531099) - New Polarization: (-0.34281971,-0.51156811,0.78789131) - *** FresnelRefraction *** - 1 -11.5 cm -5 m -2.23 m 3.95 eV 0 eV 5.47 m 5.47 m Tank Transportation - 2 -28.8 cm -10 m -5.55 m 3.95 eV 0 eV 6.01 m 11.5 m OutOfWorld Transportation + 0 632 mum 0 fm 0 fm 2.8 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 2.17 m -1.29 m 21.3 cm 2.8 eV 0 eV 2.53 m 2.53 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 814 mum 0 fm 0 fm 2.16 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.8614644,0.18526703,-0.47281625) - Old Polarization: (-0.50781796,0.31428772,-0.80208737) - New Momentum Direction: (0.73025845,0.24924101,-0.63608295) - New Polarization: (0.68317098,-0.26641991,0.67992488) - *** FresnelRefraction *** - 1 5 m 1.08 m -2.74 m 2.16 eV 0 eV 5.8 m 5.8 m Tank Transportation - 2 10 m 2.78 m -7.1 m 2.16 eV 0 eV 6.85 m 12.7 m OutOfWorld Transportation + 0 432 mum 0 fm 0 fm 2.03 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 4.03 m 1.87 m -1.45 m 2.03 eV 0 eV 4.67 m 4.67 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 761 mum 0 fm 0 fm 2.65 eV 0 eV 0 fm 0 fm Tank initStep + 0 65.1 mum 0 fm 0 fm 3.6 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.85771274,0.49374885,-0.14332104) - Old Polarization: (-0.51412921,0.82371254,-0.23909997) - New Momentum Direction: (0.71931225,0.66714913,-0.19365414) - New Polarization: (0.6946869,-0.69079832,0.20051881) + Old Momentum Direction: (0.85323787,-0.50655797,0.12403288) + Old Polarization: (-0.52152194,-0.82875602,0.20292445) + New Momentum Direction: (0.70583968,-0.68804639,0.16847109) + New Polarization: (0.70837161,0.68558711,-0.16786893) *** FresnelRefraction *** - 1 5 m 2.88 m -83.5 cm 2.65 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m 7.52 m -2.18 m 2.65 eV 0 eV 6.95 m 12.8 m OutOfWorld Transportation + 1 5 m -2.97 m 72.7 cm 3.6 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -7.84 m 1.92 m 3.6 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 775 mum 0 fm 0 fm 3.36 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85414724,0.43698842,0.28191065) - Old Polarization: (-0.52003124,0.71775006,0.46303603) - New Momentum Direction: (0.70861551,0.5929197,0.38250527) - New Polarization: (0.70559482,-0.59545802,-0.3841428) - *** FresnelRefraction *** - 1 5 m 2.56 m 1.65 m 3.36 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m 6.74 m 4.35 m 3.36 eV 0 eV 7.06 m 12.9 m OutOfWorld Transportation + 0 671 mum 0 fm 0 fm 4.07 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 1.97 m -63.9 cm -1.03 m 4.07 eV 0 eV 2.31 m 2.31 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 597 mum 0 fm 0 fm 3.21 eV 0 eV 0 fm 0 fm Tank initStep + 0 56.7 mum 0 fm 0 fm 3.94 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.85486238,-0.41739089,0.30821285) - Old Polarization: (-0.51885481,-0.68769097,0.50780982) - New Momentum Direction: (0.71078467,-0.56585538,0.41784309) - New Polarization: (0.70340967,0.57178817,-0.42222402) + Old Momentum Direction: (0.85231549,0.50714935,0.12789775) + Old Polarization: (-0.52302801,0.82643996,0.20841949) + New Momentum Direction: (0.7030038,0.68959513,0.17390866) + New Polarization: (0.7111861,-0.68166124,-0.17190782) *** FresnelRefraction *** - 1 5 m -2.44 m 1.8 m 3.21 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m -6.42 m 4.74 m 3.21 eV 0 eV 7.03 m 12.9 m OutOfWorld Transportation + 1 5 m 2.98 m 75 cm 3.94 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m 7.88 m 1.99 m 3.94 eV 0 eV 7.11 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 590 mum 0 fm 0 fm 3.18 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85499089,0.21837555,0.47042821) - Old Polarization: (-0.51864302,0.3599954,0.77550804) - New Momentum Direction: (0.71117318,0.29600648,0.63766204) - New Polarization: (0.70301686,-0.29944071,-0.64506012) - *** FresnelRefraction *** - 1 5 m 1.28 m 2.75 m 3.18 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m 3.36 m 7.23 m 3.18 eV 0 eV 7.03 m 12.9 m OutOfWorld Transportation + 0 196 mum 0 fm 0 fm 3.97 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 1.12 m -26.9 cm -63.4 cm 3.97 eV 0 eV 1.32 m 1.32 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 247 mum 0 fm 0 fm 2.51 eV 0 eV 0 fm 0 fm Tank initStep + 0 325 mum 0 fm 0 fm 4.12 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.85868991,0.2552028,-0.44443578) - Old Polarization: (-0.5124955,0.42759413,-0.74465537) - New Momentum Direction: (0.72219318,0.34443538,-0.59983437) - New Polarization: (0.69169141,-0.35962408,0.62628549) + Old Momentum Direction: (0.85169957,0.45236164,-0.26453125) + Old Polarization: (-0.52403038,0.73521734,-0.4299391) + New Momentum Direction: (0.70109859,0.61554248,-0.35995586) + New Polarization: (0.71306435,-0.60521321,0.35391552) *** FresnelRefraction *** - 1 5 m 1.49 m -2.59 m 2.51 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m 3.87 m -6.74 m 2.51 eV 0 eV 6.92 m 12.7 m OutOfWorld Transportation + 1 5 m 2.66 m -1.55 m 4.12 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m 7.05 m -4.12 m 4.12 eV 0 eV 7.13 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 343 mum 0 fm 0 fm 3.44 eV 0 eV 0 fm 0 fm Tank initStep + 0 625 mum 0 fm 0 fm 3.49 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 3.59 m -2.19 m -2.8 cm 3.44 eV 0 eV 4.2 m 4.2 m Tank OpAbsorption + 1 3.12 m -1.85 m 46.2 cm 3.49 eV 0 eV 3.66 m 3.66 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 121 mum 0 fm 0 fm 3.76 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85279769,-0.32424198,-0.40939375) - Old Polarization: (-0.52224142,-0.52947315,-0.66852231) - New Momentum Direction: (0.70448889,-0.44063797,-0.55635742) - New Polarization: (0.70971501,0.43739325,0.55226058) - *** FresnelRefraction *** - 1 5 m -1.9 m -2.4 m 3.76 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -5.03 m -6.35 m 3.76 eV 0 eV 7.1 m 13 m OutOfWorld Transportation + 0 536 mum 0 fm 0 fm 3.75 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 4.34 m -2.54 m 78.2 cm 3.75 eV 0 eV 5.09 m 5.09 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 142 mum 0 fm 0 fm 2.3 eV 0 eV 0 fm 0 fm Tank initStep + 0 520 mum 0 fm 0 fm 2.4 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.86036636,0.50948848,0.013827935) - Old Polarization: (-0.50967609,0.86004966,0.023342452) - New Momentum Direction: (0.72708653,0.6862931,0.018626557) - New Polarization: (0.68654583,-0.72681889,-0.01972646) + Old Momentum Direction: (0.85964915,0.49094728,0.14132979) + Old Polarization: (-0.51088486,0.82610084,0.23781099) + New Momentum Direction: (0.72500062,0.66186941,0.19053343) + New Polarization: (0.68874822,-0.69670704,-0.20056219) *** FresnelRefraction *** - 1 5 m 2.96 m 8.04 cm 2.3 eV 0 eV 5.81 m 5.81 m Tank Transportation - 2 10 m 7.68 m 20.8 cm 2.3 eV 0 eV 6.88 m 12.7 m OutOfWorld Transportation + 1 5 m 2.86 m 82.2 cm 2.4 eV 0 eV 5.82 m 5.82 m Tank Transportation + 2 10 m 7.42 m 2.14 m 2.4 eV 0 eV 6.9 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 756 mum 0 fm 0 fm 2.63 eV 0 eV 0 fm 0 fm Tank initStep + 0 216 mum 0 fm 0 fm 3.16 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.85790484,-0.37315496,-0.35320626) - Old Polarization: (-0.51380861,-0.62305582,-0.58974753) - New Momentum Direction: (0.71988027,-0.50409083,-0.47714235) - New Polarization: (0.69409826,0.52281509,0.49486563) + Old Momentum Direction: (0.85506263,0.2825014,0.4348113) + Old Polarization: (-0.51852474,0.46585316,0.71701668) + New Momentum Direction: (0.71138989,0.38289648,0.58933412) + New Polarization: (0.70279757,-0.38757773,-0.59653925) *** FresnelRefraction *** - 1 5 m -2.17 m -2.06 m 2.63 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m -5.68 m -5.37 m 2.63 eV 0 eV 6.95 m 12.8 m OutOfWorld Transportation + 1 5 m 1.65 m 2.54 m 3.16 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m 4.34 m 6.68 m 3.16 eV 0 eV 7.03 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 83.9 mum 0 fm 0 fm 2.31 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 2.22 m 1.31 m 16.8 cm 2.31 eV 0 eV 2.59 m 2.59 m Tank OpAbsorption + 0 639 mum 0 fm 0 fm 3.76 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.85278639,0.41130284,-0.32184678) + Old Polarization: (-0.52225988,0.67160714,-0.52553636) + New Momentum Direction: (0.70445415,0.55895924,-0.43738875) + New Polarization: (0.7097495,-0.55478892,0.43412545) + *** FresnelRefraction *** + 1 5 m 2.41 m -1.89 m 3.76 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 6.38 m -4.99 m 3.76 eV 0 eV 7.1 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 433 mum 0 fm 0 fm 3.94 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 1.8 m -1.09 m -13.6 cm 3.94 eV 0 eV 2.11 m 2.11 m Tank OpAbsorption + 0 781 mum 0 fm 0 fm 2.48 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.85894039,0.44810215,-0.24784243) + Old Polarization: (-0.51207559,0.75163325,-0.41572353) + New Momentum Direction: (0.72292822,0.60460634,-0.33440389) + New Polarization: (0.69092314,-0.63261304,0.34989421) + *** FresnelRefraction *** + 1 5 m 2.61 m -1.44 m 2.48 eV 0 eV 5.82 m 5.82 m Tank Transportation + 2 10 m 6.79 m -3.76 m 2.48 eV 0 eV 6.92 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 376 mum 0 fm 0 fm 3.35 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 1.12 m -68.2 cm -2.45 cm 3.35 eV 0 eV 1.31 m 1.31 m Tank OpAbsorption + 0 121 mum 0 fm 0 fm 3.72 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.85289719,-0.30751821,-0.4218992) + Old Polarization: (-0.5220789,-0.50237888,-0.68923804) + New Momentum Direction: (0.70479465,-0.41786196,-0.57328517) + New Polarization: (0.70941138,0.41514259,0.56955433) + *** FresnelRefraction *** + 1 5 m -1.8 m -2.47 m 3.72 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -4.77 m -6.54 m 3.72 eV 0 eV 7.09 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 74.3 mum 0 fm 0 fm 2.61 eV 0 eV 0 fm 0 fm Tank initStep + 0 269 mum 0 fm 0 fm 2.25 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.85803548,-0.33212135,-0.39175315) - Old Polarization: (-0.51359042,-0.55486218,-0.6544867) - New Momentum Direction: (0.7202661,-0.44859067,-0.52913434) - New Polarization: (0.69369787,0.46577144,0.54939988) + Old Momentum Direction: (0.86072262,0.2988851,-0.41209739) + Old Polarization: (-0.50907422,0.50534314,-0.69675803) + New Momentum Direction: (0.72811851,0.4024387,-0.55487523) + New Polarization: (0.68545126,-0.42748928,0.58941453) *** FresnelRefraction *** - 1 5 m -1.94 m -2.28 m 2.61 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m -5.05 m -5.96 m 2.61 eV 0 eV 6.94 m 12.8 m OutOfWorld Transportation + 1 5 m 1.74 m -2.39 m 2.25 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m 4.5 m -6.2 m 2.25 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 746 mum 0 fm 0 fm 3.87 eV 0 eV 0 fm 0 fm Tank initStep + 0 127 mum 0 fm 0 fm 2.16 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 53.4 cm -31.1 cm -9.87 cm 3.87 eV 0 eV 62.5 cm 62.5 cm Tank OpAbsorption + 1 2.75 m -16.4 cm 1.61 m 2.16 eV 0 eV 3.19 m 3.19 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 137 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 1.18 m -11.9 cm -70.9 cm 3.56 eV 0 eV 1.38 m 1.38 m Tank OpAbsorption + 0 863 mum 0 fm 0 fm 2.69 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.8574164,0.16457695,0.48759773) + Old Polarization: (-0.51462328,0.27420247,0.812389) + New Momentum Direction: (0.71843431,0.22245179,0.6590655) + New Polarization: (0.69559481,-0.22975588,-0.68070559) + *** FresnelRefraction *** + 1 5 m 96 cm 2.84 m 2.69 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m 2.51 m 7.43 m 2.69 eV 0 eV 6.96 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 744 mum 0 fm 0 fm 4.06 eV 0 eV 0 fm 0 fm Tank initStep + 0 597 mum 0 fm 0 fm 2.2 eV 0 eV 0 fm 0 fm Tank initStep ** Photon absorbed! ** - 1 1.02 m -48.6 cm -39.3 cm 4.06 eV 0 eV 1.19 m 1.19 m Tank OpAbsorption + 1 3.87 m 1.2 m -1.94 m 2.2 eV 0 eV 4.49 m 4.49 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 214 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep + 0 259 mum 0 fm 0 fm 2.74 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.85337283,-0.27498308,-0.44287597) - Old Polarization: (-0.52130108,-0.45014887,-0.72499047) - New Momentum Direction: (0.70625288,-0.37344432,-0.60145341) - New Polarization: (0.70795965,0.37254401,0.60000341) + Old Momentum Direction: (0.85714229,-0.33130843,-0.3943879) + Old Polarization: (-0.51507969,-0.55132919,-0.6562995) + New Momentum Direction: (0.71762049,-0.44795899,-0.53324814) + New Polarization: (0.69643437,0.46158628,0.54946999) *** FresnelRefraction *** - 1 5 m -1.61 m -2.59 m 3.56 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -4.25 m -6.85 m 3.56 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation + 1 5 m -1.93 m -2.3 m 2.74 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m -5.05 m -6.02 m 2.74 eV 0 eV 6.97 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 356 mum 0 fm 0 fm 3.89 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 2.16 m -98.3 cm 88.5 cm 3.89 eV 0 eV 2.53 m 2.53 m Tank OpAbsorption + 0 831 mum 0 fm 0 fm 3.12 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.85523123,0.44391052,-0.26743782) + Old Polarization: (-0.5182466,0.73255887,-0.44133656) + New Momentum Direction: (0.71189876,0.60154841,-0.36240815) + New Polarization: (0.70228211,-0.60978567,0.36737077) + *** FresnelRefraction *** + 1 5 m 2.59 m -1.56 m 3.12 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m 6.82 m -4.11 m 3.12 eV 0 eV 7.02 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 19.9 mum 0 fm 0 fm 3.42 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85399031,-0.52001286,-0.016946191) - Old Polarization: (-0.52028891,-0.85353721,-0.02781509) - New Momentum Direction: (0.70813791,-0.70569953,-0.022997352) - New Polarization: (0.70607415,0.70776219,0.02306457) - *** FresnelRefraction *** - 1 5 m -3.04 m -9.92 cm 3.42 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m -8.03 m -26.2 cm 3.42 eV 0 eV 7.06 m 12.9 m OutOfWorld Transportation + 0 692 mum 0 fm 0 fm 3.03 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 95.2 cm -37.9 cm -43.4 cm 3.03 eV 0 eV 1.11 m 1.11 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 663 mum 0 fm 0 fm 3.51 eV 0 eV 0 fm 0 fm Tank initStep + 0 918 mum 0 fm 0 fm 4.09 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.85358018,0.11602502,-0.50787702) - Old Polarization: (-0.52096149,0.19010361,-0.83214166) - New Momentum Direction: (0.7068869,0.157531,-0.68956138) - New Polarization: (0.7073266,-0.15743307,0.68913273) + Old Momentum Direction: (0.85184268,0.5235039,0.0175418) + Old Polarization: (-0.52379772,0.85136485,0.028527909) + New Momentum Direction: (0.70154208,0.71222829,0.02386566) + New Polarization: (0.71262803,-0.70114856,-0.023494396) *** FresnelRefraction *** - 1 5 m 68 cm -2.97 m 3.51 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 1.79 m -7.85 m 3.51 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation + 1 5 m 3.07 m 10.3 cm 4.09 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m 8.15 m 27.3 cm 4.09 eV 0 eV 7.13 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 376 mum 0 fm 0 fm 4.12 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (0.85169757,-0.43324649,-0.29480287) -Old Polarization: (-0.52403364,-0.7041437,-0.47913505) -New Polarization: (0.67908503,0.0034355302,0.73405158) -Polarization Change: (0.67908503,0.0034355302,0.73405158) -New Momentum Direction: (0.059482971,0.99644297,-0.059692406) -Momentum Change: (0.059482971,0.99644297,-0.059692406) - 1 3.02 m -1.54 m -1.05 m 4.12 eV 0 eV 3.55 m 3.55 m Tank OpRayleigh + 0 692 mum 0 fm 0 fm 3.84 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.059482971,0.99644297,-0.059692406) - Old Polarization: (0.67908503,0.0034355302,0.73405158) - New Momentum Direction: (0.08094051,0.99340377,-0.081225495) - New Polarization: (0.67915861,0.0046770222,0.73397664) + Old Momentum Direction: (0.85256339,0.24150677,0.46347616) + Old Polarization: (-0.52262383,0.39397328,0.75607498) + New Momentum Direction: (0.70376798,0.32829277,0.63002737) + New Polarization: (0.71042989,-0.32521427,-0.62411942) *** FresnelRefraction *** - 2 3.41 m 5 m -1.44 m 4.12 eV 0 eV 6.56 m 10.1 m Tank Transportation - 3 3.82 m 10 m -1.85 m 4.12 eV 0 eV 5.03 m 15.1 m OutOfWorld Transportation + 1 5 m 1.42 m 2.72 m 3.84 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 3.75 m 7.19 m 3.84 eV 0 eV 7.1 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 379 mum 0 fm 0 fm 2.37 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (0.85984173,-0.39473035,-0.32382117) -Old Polarization: (-0.51056067,-0.66477041,-0.54535136) -New Polarization: (0.6049506,-0.39923248,-0.68894717) -Polarization Change: (0.6049506,-0.39923248,-0.68894717) -New Momentum Direction: (-0.75441473,-0.56417499,-0.33550709) -Momentum Change: (-0.75441473,-0.56417499,-0.33550709) - 1 4.74 m -2.18 m -1.79 m 2.37 eV 0 eV 5.52 m 5.52 m Tank OpRayleigh + 0 844 mum 0 fm 0 fm 3.9 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.75441473,-0.56417499,-0.33550709) - Old Polarization: (0.6049506,-0.39923248,-0.68894717) - New Momentum Direction: (0.75441473,0.56417499,0.33550709) - New Polarization: (-0.6049506,0.39923248,0.68894717) - *** BackScattering *** - 2 97.1 cm -5 m -3.46 m 2.37 eV 0 eV 5 m 10.5 m Tank Transportation - 3 97.1 cm -5 m -3.46 m 2.37 eV 0 eV 0 fm 10.5 m World Transportation - Photon at Boundary! - Old Momentum Direction: (0.75441473,0.56417499,0.33550709) - Old Polarization: (-0.6049506,0.39923248,0.68894717) - New Momentum Direction: (0.4661166,0.76042082,0.45221178) - New Polarization: (0.82352441,-0.55971404,0.092345705) + Old Momentum Direction: (0.85241053,0.077581535,-0.51708547) + Old Polarization: (-0.5228731,0.1264768,-0.84297529) + New Momentum Direction: (0.70329696,0.10547955,-0.70302735) + New Polarization: (0.71089619,-0.10435201,0.69551223) *** FresnelRefraction *** - 4 5 m -1.99 m -1.67 m 2.37 eV 0 eV 5.34 m 15.9 m Tank Transportation - 5 10 m 6.17 m 3.18 m 2.37 eV 0 eV 10.7 m 26.6 m OutOfWorld Transportation + 1 5 m 45.5 cm -3.03 m 3.9 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 1.2 m -8.03 m 3.9 eV 0 eV 7.11 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 289 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep + 0 628 mum 0 fm 0 fm 3.16 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (0.85337681,0.18084146,-0.48892165) - Old Polarization: (-0.52129456,0.29604359,-0.80038127) - New Momentum Direction: (0.70626507,0.24559293,-0.66398325) - New Polarization: (0.70794749,-0.24500929,0.66240532) + Old Momentum Direction: (0.85507637,-0.50273565,-0.1268908) + Old Polarization: (-0.51850208,-0.8290755,-0.20925919) + New Momentum Direction: (0.71143139,-0.68138641,-0.17198236) + New Polarization: (0.70275556,0.68979843,0.17410556) *** FresnelRefraction *** - 1 5 m 1.06 m -2.86 m 3.56 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 2.8 m -7.57 m 3.56 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation + 1 5 m -2.94 m -74.2 cm 3.16 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m -7.73 m -1.95 m 3.16 eV 0 eV 7.03 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 766 mum 0 fm 0 fm 3.74 eV 0 eV 0 fm 0 fm Tank initStep + 0 671 mum 0 fm 0 fm 2.98 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.85583959,-0.0091349129,-0.51716066) + Old Polarization: (-0.51724133,-0.01511484,-0.85570611) + New Momentum Direction: (0.71372934,-0.012370029,-0.70031237) + New Polarization: (0.70042161,0.012605055,0.71361802) + *** FresnelRefraction *** + 1 5 m -5.34 cm -3.02 m 2.98 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -14 cm -7.93 m 2.98 eV 0 eV 7.01 m 12.8 m OutOfWorld Transportation -** Photon absorbed! ** - 1 2.21 m 96.4 cm -95.1 cm 3.74 eV 0 eV 2.59 m 2.59 m Tank OpAbsorption -Number of optical photons produces in this event : 53 -number of event = 1 User=0.21s Real=0.27s Sys=0.02s +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 1 954 mum 637 mum 454 mum 43 keV 0 eV 0 fm 1.49 mm Tank initStep + + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 4 + 2 965 mum 639 mum 467 mum 0 eV 43 keV 30.8 mum 1.52 mm Tank eIoni + 3 965 mum 639 mum 467 mum 0 eV 0 eV 0 fm 1.52 mm Tank Scintillation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 965 mum 639 mum 467 mum 511 keV 0 eV 0 fm 0 fm Tank initStep + 1 -5 m 4.88 m -4.28 m 511 keV 0 eV 8.19 m 8.19 m Tank Transportation + 2 -10 m 9.76 m -8.55 m 511 keV 0 eV 8.19 m 16.4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 965 mum 639 mum 467 mum 511 keV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -4.88 m 4.27 m 511 keV 0 eV 8.19 m 8.19 m Tank Transportation + 2 10 m -9.76 m 8.55 m 511 keV 0 eV 8.19 m 16.4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 67, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 961 mum 638 mum 461 mum 2.24 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.83018016,0.036163763,0.55632102) + Old Polarization: (-0.54579392,-0.15065622,0.82426434) + New Momentum Direction: (0.66077606,0.048689046,0.74900225) + New Polarization: (0.73582146,-0.23895479,-0.63361455) + *** FresnelRefraction *** + 1 5 m 21.8 cm 3.35 m 2.24 eV 0 eV 6.02 m 6.02 m Tank Transportation + 2 10 m 58.7 cm 9.02 m 2.24 eV 0 eV 7.57 m 13.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 66, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 955 mum 637 mum 456 mum 2.79 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.41599532,-0.1230935,0.90099716) + Old Polarization: (0.26078471,0.93303211,0.24787582) + New Momentum Direction: (-0.56270897,-0.16650625,0.80971247) + New Polarization: (0.21677779,0.91550379,0.33891031) + *** FresnelRefraction *** + 1 -2.31 m -68.2 cm 5 m 2.79 eV 0 eV 5.55 m 5.55 m Tank Transportation + 2 -5.78 m -1.71 m 10 m 2.79 eV 0 eV 6.18 m 11.7 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 65, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 959 mum 638 mum 460 mum 3.11 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.3963132,-0.60773963,0.68817759) + Old Polarization: (-0.19930186,-0.67473377,-0.71064274) + New Momentum Direction: (0.3963132,0.60773963,-0.68817759) + New Polarization: (0.19930186,0.67473377,0.71064274) + *** BackScattering *** + 1 -2.88 m -4.41 m 5 m 3.11 eV 0 eV 7.26 m 7.26 m Tank Transportation + 2 -2.88 m -4.41 m 5 m 3.11 eV 0 eV 0 fm 7.26 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.3963132,0.60773963,-0.68817759) + Old Polarization: (0.19930186,0.67473377,0.71064274) + New Momentum Direction: (0.53702154,0.8235135,-0.18284798) + New Polarization: (-0.24099572,-0.057949556,-0.96879457) + *** FresnelRefraction *** + 3 2.88 m 4.42 m -5 m 3.11 eV 0 eV 14.5 m 21.8 m Tank Transportation + 4 6.52 m 10 m -6.24 m 3.11 eV 0 eV 6.78 m 28.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 64, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 960 mum 638 mum 461 mum 2.77 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.65242199,-0.74392016,-0.14466631) + Old Polarization: (0.72255438,-0.55301218,-0.41484058) + New Momentum Direction: (-0.88232194,-0.42805552,-0.19564372) + New Polarization: (0.46909541,-0.76611303,-0.43934077) + *** FresnelRefraction *** + 1 -4.38 m -5 m -97.2 cm 2.77 eV 0 eV 6.72 m 6.72 m Tank Transportation + 2 -10 m -7.72 m -2.22 m 2.77 eV 0 eV 6.36 m 13.1 m OutOfWorld Transportation +Number of optical photons produces in this event : 66 +number of event = 1 User=0.23s Real=0.3s Sys=0.01s # /process/inactivate Scintillation /N06/phys/verbose 0 @@ -1060,361 +1181,337 @@ number of event = 1 User=0.21s Real=0.27s Sys=0.02s Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process 0 0 fm 0 fm 0 fm 500 keV 0 eV 0 fm 0 fm Tank initStep - 1 607 mum 0 fm 0 fm 0 eV 500 keV 1.74 mm 1.74 mm Tank eIoni - 2 607 mum 0 fm 0 fm 0 eV 0 eV 0 fm 1.74 mm Tank annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 607 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep - 1 -5 m -1.77 m -1.32 m 511 keV 0 eV 5.47 m 5.47 m Tank Transportation - 2 -10 m -3.55 m -2.64 m 511 keV 0 eV 5.47 m 10.9 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 607 mum 0 fm 0 fm 511 keV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 1.77 m 1.32 m 511 keV 0 eV 5.47 m 5.47 m Tank Transportation - 2 10 m 3.55 m 2.64 m 511 keV 0 eV 5.47 m 10.9 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 350 mum 0 fm 0 fm 4.08 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 92.4 cm 2.93 m 4.08 eV 0 eV 5.87 m 5.87 m Tank Transportation - 2 10 m 2.45 m 7.77 m 4.08 eV 0 eV 7.13 m 13 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 201 mum 0 fm 0 fm 2.45 eV 0 eV 0 fm 0 fm Tank initStep - 1 97.3 cm -56.5 cm -12.4 cm 2.45 eV 0 eV 1.13 m 1.13 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 70.3 mum 0 fm 0 fm 3.47 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 91.7 cm -2.91 m 3.47 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 2.42 m -7.67 m 3.47 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 164 mum 0 fm 0 fm 2.38 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.07 m 2.13 m 2.38 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m 5.38 m 5.53 m 2.38 eV 0 eV 6.89 m 12.7 m OutOfWorld Transportation + 1 954 mum -513 mum 591 mum 195 keV 305 keV 1.49 mm 1.49 mm Tank eIoni ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 562 mum 0 fm 0 fm 3.59 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -14.7 cm -3.05 m 3.59 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -38.9 cm -8.06 m 3.59 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation + 0 257 mum 0 fm 0 fm 2.19 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.91 m -47.1 cm 2.19 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m -7.54 m -1.22 m 2.19 eV 0 eV 6.85 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 423 mum 0 fm 0 fm 3.99 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -1.75 m -2.52 m 3.99 eV 0 eV 5.87 m 5.87 m Tank Transportation - 2 10 m -4.63 m -6.69 m 3.99 eV 0 eV 7.12 m 13 m OutOfWorld Transportation + 0 556 mum 0 fm 0 fm 2.08 eV 0 eV 0 fm 0 fm Tank initStep + 1 33.4 cm 14.2 cm 13.5 cm 2.08 eV 0 eV 38.6 cm 38.6 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 33, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 518 mum 0 fm 0 fm 3.81 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -3.05 m -25.5 cm 3.81 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -8.08 m -67.5 cm 3.81 eV 0 eV 7.1 m 13 m OutOfWorld Transportation + 0 713 mum 0 fm 0 fm 3.98 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -1.25 m 2.8 m 3.98 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m -3.3 m 7.43 m 3.98 eV 0 eV 7.12 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 559 mum 0 fm 0 fm 2.86 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 16.6 cm -3.01 m 2.86 eV 0 eV 5.84 m 5.84 m Tank Transportation - 2 10 m 43.5 cm -7.89 m 2.86 eV 0 eV 6.99 m 12.8 m OutOfWorld Transportation + 0 519 mum 0 fm 0 fm 3.45 eV 0 eV 0 fm 0 fm Tank initStep + 1 2.26 m 1.2 m 67.9 cm 3.45 eV 0 eV 2.65 m 2.65 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 507 mum 0 fm 0 fm 3.27 eV 0 eV 0 fm 0 fm Tank initStep - 1 25.3 cm 1.04 cm 15.3 cm 3.27 eV 0 eV 29.6 cm 29.6 cm Tank OpAbsorption + 0 492 mum 0 fm 0 fm 2.39 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.96 m -21.6 cm 2.39 eV 0 eV 5.82 m 5.82 m Tank Transportation + 2 10 m 7.7 m -56 cm 2.39 eV 0 eV 6.89 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 30, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 602 mum 0 fm 0 fm 3.88 eV 0 eV 0 fm 0 fm Tank initStep - 1 1.75 m 1.08 m 2.19 cm 3.88 eV 0 eV 2.06 m 2.06 m Tank OpRayleigh - 2 1.42 m 2.61 m -1.38 m 3.88 eV 0 eV 2.1 m 4.16 m Tank OpAbsorption + 0 404 mum 0 fm 0 fm 2.24 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.92 m 43.8 cm 2.24 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m -7.57 m 1.13 m 2.24 eV 0 eV 6.86 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 109 mum 0 fm 0 fm 3.09 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.16 m -2.12 m 3.09 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m -5.67 m -5.58 m 3.09 eV 0 eV 7.02 m 12.9 m OutOfWorld Transportation + 0 314 mum 0 fm 0 fm 2.64 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.54 m -1.58 m 2.64 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m 6.64 m -4.13 m 2.64 eV 0 eV 6.95 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 512 mum 0 fm 0 fm 2.42 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -45.2 cm -2.94 m 2.42 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m -1.17 m -7.64 m 2.42 eV 0 eV 6.9 m 12.7 m OutOfWorld Transportation + 0 186 mum 0 fm 0 fm 2.96 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.83 m -1.07 m 2.96 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m 7.41 m -2.8 m 2.96 eV 0 eV 7 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 85.6 mum 0 fm 0 fm 2.4 eV 0 eV 0 fm 0 fm Tank initStep - 1 2.8 m -23.5 cm 1.65 m 2.4 eV 0 eV 3.26 m 3.26 m Tank OpAbsorption + 0 750 mum 0 fm 0 fm 2.77 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 44.4 cm 2.97 m 2.77 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m 1.16 m 7.78 m 2.77 eV 0 eV 6.97 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 546 mum 0 fm 0 fm 3.32 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.3 m -1.98 m 3.32 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m 6.07 m -5.23 m 3.32 eV 0 eV 7.05 m 12.9 m OutOfWorld Transportation + 0 97 mum 0 fm 0 fm 2.57 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.8 m 1.05 m 2.57 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m 7.3 m 2.73 m 2.57 eV 0 eV 6.94 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 316 mum 0 fm 0 fm 2.78 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.8 m 1.09 m 2.78 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m -7.33 m 2.85 m 2.78 eV 0 eV 6.97 m 12.8 m OutOfWorld Transportation + 0 45.3 mum 0 fm 0 fm 3.29 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.95 m -73.3 cm 3.29 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m 7.77 m -1.93 m 3.29 eV 0 eV 7.04 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 235 mum 0 fm 0 fm 2.22 eV 0 eV 0 fm 0 fm Tank initStep - 1 1.26 m -71.9 cm -18.3 cm 2.22 eV 0 eV 1.46 m 1.46 m Tank OpAbsorption + 0 133 mum 0 fm 0 fm 2.61 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.38 m -1.81 m 2.61 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m 6.21 m -4.73 m 2.61 eV 0 eV 6.94 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 48.4 mum 0 fm 0 fm 3.63 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 76.4 cm 2.96 m 3.63 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 2.02 m 7.82 m 3.63 eV 0 eV 7.09 m 12.9 m OutOfWorld Transportation + 0 180 mum 0 fm 0 fm 3.49 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.32 m -1.98 m 3.49 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -6.11 m -5.23 m 3.49 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 500 mum 0 fm 0 fm 3.13 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 96.4 cm -2.87 m 3.13 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m 2.53 m -7.55 m 3.13 eV 0 eV 7.02 m 12.9 m OutOfWorld Transportation + 0 916 mum 0 fm 0 fm 4.08 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.92 m -95.5 cm 4.08 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m -7.75 m -2.53 m 4.08 eV 0 eV 7.13 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.2 mum 0 fm 0 fm 2.44 eV 0 eV 0 fm 0 fm Tank initStep - 1 1.93 m 1.13 m -20.2 cm 2.44 eV 0 eV 2.24 m 2.24 m Tank OpAbsorption + 0 672 mum 0 fm 0 fm 3.52 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -1.65 m 2.57 m 3.52 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -4.35 m 6.78 m 3.52 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 59.3 mum 0 fm 0 fm 2.14 eV 0 eV 0 fm 0 fm Tank initStep - 1 2.28 m -1.1 m 76.8 cm 2.14 eV 0 eV 2.65 m 2.65 m Tank OpAbsorption + 0 666 mum 0 fm 0 fm 2.97 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.78 m 1.19 m 2.97 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m 7.29 m 3.11 m 2.97 eV 0 eV 7.01 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 220 mum 0 fm 0 fm 2.1 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 70.7 cm 2.85 m 2.1 eV 0 eV 5.8 m 5.8 m Tank Transportation - 2 10 m 1.83 m 7.37 m 2.1 eV 0 eV 6.83 m 12.6 m OutOfWorld Transportation + 0 8.37 mum 0 fm 0 fm 2.19 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.33 m -1.81 m 2.19 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m 6.03 m -4.68 m 2.19 eV 0 eV 6.85 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 399 mum 0 fm 0 fm 2.84 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.5 m -1.68 m 2.84 eV 0 eV 5.84 m 5.84 m Tank Transportation - 2 10 m 6.55 m -4.4 m 2.84 eV 0 eV 6.99 m 12.8 m OutOfWorld Transportation + 0 355 mum 0 fm 0 fm 2.97 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.64 m 1.47 m 2.97 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -6.93 m 3.85 m 2.97 eV 0 eV 7 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 311 mum 0 fm 0 fm 3.24 eV 0 eV 0 fm 0 fm Tank initStep - 1 4.77 m 2.63 m -1.21 m 3.24 eV 0 eV 5.58 m 5.58 m Tank OpAbsorption + 0 761 mum 0 fm 0 fm 4.06 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 2.17 m 2.17 m 4.06 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m 5.76 m 5.76 m 4.06 eV 0 eV 7.12 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 213 mum 0 fm 0 fm 3.44 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.45 m -1.81 m 3.44 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -6.46 m -4.78 m 3.44 eV 0 eV 7.06 m 12.9 m OutOfWorld Transportation + 0 31.2 mum 0 fm 0 fm 4.13 eV 0 eV 0 fm 0 fm Tank initStep + 1 64.2 cm -2.2 cm -39.5 cm 4.13 eV 0 eV 75.4 cm 75.4 cm Tank OpRayleigh + 2 34 cm 5 m 4.93 m 4.13 eV 0 eV 7.32 m 8.08 m Tank Transportation + 3 5.09 cm 5.71 m 10 m 4.13 eV 0 eV 5.13 m 13.2 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 269 mum 0 fm 0 fm 2.97 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -2.98 m 47.7 cm 2.97 eV 0 eV 5.84 m 5.84 m Tank Transportation - 2 10 m -7.83 m 1.25 m 2.97 eV 0 eV 7 m 12.8 m OutOfWorld Transportation + 0 842 mum 0 fm 0 fm 3.81 eV 0 eV 0 fm 0 fm Tank initStep + 1 2.86 m -1.27 m -1.21 m 3.81 eV 0 eV 3.35 m 3.35 m Tank OpRayleigh + 2 5 m -16.2 cm -1.17 m 3.81 eV 0 eV 2.41 m 5.76 m Tank Transportation + 3 10 m 3.82 m -1.04 m 3.81 eV 0 eV 6.39 m 12.2 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 460 mum 0 fm 0 fm 2.75 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -3 m 11.9 cm 2.75 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m -7.85 m 31.2 cm 2.75 eV 0 eV 6.97 m 12.8 m OutOfWorld Transportation + 0 828 mum 0 fm 0 fm 2.33 eV 0 eV 0 fm 0 fm Tank initStep + 1 2.01 m 43.7 cm -1.11 m 2.33 eV 0 eV 2.33 m 2.33 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 21.1 mum 0 fm 0 fm 4.02 eV 0 eV 0 fm 0 fm Tank initStep - 1 3.43 m 2.09 m 28.9 cm 4.02 eV 0 eV 4.03 m 4.03 m Tank OpAbsorption + 0 232 mum 0 fm 0 fm 2.9 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.37 m 1.86 m 2.9 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -6.22 m 4.89 m 2.9 eV 0 eV 7 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 517 mum 0 fm 0 fm 2.26 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.96 m -1.07 cm 2.26 eV 0 eV 5.81 m 5.81 m Tank Transportation - 2 10 m 7.67 m -2.77 cm 2.26 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation + 0 160 mum 0 fm 0 fm 3.81 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 33.9 cm 3.05 m 3.81 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m 89.7 cm 8.06 m 3.81 eV 0 eV 7.1 m 13 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 358 mum 0 fm 0 fm 3.5 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 80 cm -2.94 m 3.5 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 2.11 m -7.77 m 3.5 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation + 0 171 mum 0 fm 0 fm 3.16 eV 0 eV 0 fm 0 fm Tank initStep + 1 1.1 m 44.7 cm -49.1 cm 3.16 eV 0 eV 1.28 m 1.28 m Tank OpRayleigh + 2 2.17 m -3.98 m 5 m 3.16 eV 0 eV 7.13 m 8.41 m Tank Transportation + 3 3.63 m -10 m 8.6 m 3.16 eV 0 eV 7.17 m 15.6 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 51.8 mum 0 fm 0 fm 2.28 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 1.43 m 2.59 m 2.28 eV 0 eV 5.81 m 5.81 m Tank Transportation - 2 10 m 3.7 m 6.72 m 2.28 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation + 0 876 mum 0 fm 0 fm 2.27 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 1.53 m -2.53 m 2.27 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m 3.96 m -6.57 m 2.27 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 237 mum 0 fm 0 fm 3.78 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.82 m -1.18 m 3.78 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 7.47 m -3.13 m 3.78 eV 0 eV 7.1 m 13 m OutOfWorld Transportation + 0 607 mum 0 fm 0 fm 4.09 eV 0 eV 0 fm 0 fm Tank initStep + 1 1.36 m -10.1 cm -83 cm 4.09 eV 0 eV 1.6 m 1.6 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 589 mum 0 fm 0 fm 2.05 eV 0 eV 0 fm 0 fm Tank initStep - 1 11.9 cm 4.04 cm -5.62 cm 2.05 eV 0 eV 13.7 cm 13.7 cm Tank OpAbsorption + 0 434 mum 0 fm 0 fm 3.03 eV 0 eV 0 fm 0 fm Tank initStep + 1 8.17 cm -1.15 cm 4.78 cm 3.03 eV 0 eV 9.5 cm 9.5 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 139 mum 0 fm 0 fm 3.48 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m -15.6 cm 3.05 m 3.48 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -41.1 cm 8.04 m 3.48 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation + 0 72.6 mum 0 fm 0 fm 2.06 eV 0 eV 0 fm 0 fm Tank initStep + 1 72.8 cm 13.3 cm -40.7 cm 2.06 eV 0 eV 84.5 cm 84.5 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 602 mum 0 fm 0 fm 3.62 eV 0 eV 0 fm 0 fm Tank initStep - 1 1.63 m 48.5 cm -87.2 cm 3.62 eV 0 eV 1.91 m 1.91 m Tank OpRayleigh - 2 11.5 cm 5 m -20.9 cm 3.62 eV 0 eV 4.81 m 6.72 m Tank Transportation - 3 -2.31 m 10 m 85 cm 3.62 eV 0 eV 5.66 m 12.4 m OutOfWorld Transportation + 0 161 mum 0 fm 0 fm 3.87 eV 0 eV 0 fm 0 fm Tank initStep + 1 4.93 m -2.97 m 56.1 cm 3.87 eV 0 eV 5.78 m 5.78 m Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 176 mum 0 fm 0 fm 4.08 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 3.06 m 26.3 cm 4.08 eV 0 eV 5.87 m 5.87 m Tank Transportation - 2 10 m 8.12 m 69.7 cm 4.08 eV 0 eV 7.13 m 13 m OutOfWorld Transportation + 0 637 mum 0 fm 0 fm 2.04 eV 0 eV 0 fm 0 fm Tank initStep + 1 77.2 cm 45.2 cm -2.42 cm 2.04 eV 0 eV 89.5 cm 89.5 cm Tank OpAbsorption ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 503 mum 0 fm 0 fm 3.75 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.8 m -1.23 m 3.75 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 7.41 m -3.26 m 3.75 eV 0 eV 7.1 m 13 m OutOfWorld Transportation + 0 644 mum 0 fm 0 fm 2.89 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -2.51 m 1.68 m 2.89 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -6.57 m 4.4 m 2.89 eV 0 eV 6.99 m 12.8 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 364 mum 0 fm 0 fm 3.53 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 2.02 m -2.29 m 3.53 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m 5.33 m -6.05 m 3.53 eV 0 eV 7.08 m 12.9 m OutOfWorld Transportation + 0 919 mum 0 fm 0 fm 2.21 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -1.7 m -2.42 m 2.21 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m -4.4 m -6.26 m 2.21 eV 0 eV 6.86 m 12.7 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 433 mum 0 fm 0 fm 2.27 eV 0 eV 0 fm 0 fm Tank initStep - 1 5 m 1.84 m 2.32 m 2.27 eV 0 eV 5.81 m 5.81 m Tank Transportation - 2 10 m 4.77 m 6.01 m 2.27 eV 0 eV 6.87 m 12.7 m OutOfWorld Transportation -Number of optical photons produces in this event : 38 -number of event = 1 User=0.08s Real=0.12s Sys=0.04s + 0 59.6 mum 0 fm 0 fm 2.81 eV 0 eV 0 fm 0 fm Tank initStep + 1 5 m -1.24 m 2.75 m 2.81 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -3.24 m 7.19 m 2.81 eV 0 eV 6.98 m 12.8 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 1 954 mum -513 mum 591 mum 195 keV 0 eV 0 fm 1.49 mm Tank initStep + 2 986 mum -543 mum 585 mum 186 keV 9.59 keV 45.4 mum 1.54 mm Tank msc + 3 1.17 mm -653 mum 573 mum 0 eV 186 keV 383 mum 1.92 mm Tank eIoni + 4 1.17 mm -653 mum 573 mum 0 eV 0 eV 0 fm 1.92 mm Tank annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm -653 mum 573 mum 511 keV 0 eV 0 fm 0 fm Tank initStep + 1 5 m 28.7 cm 78.2 cm 511 keV 0 eV 5.07 m 5.07 m Tank Transportation + 2 10 m 57.4 cm 1.56 m 511 keV 0 eV 5.07 m 10.1 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm -653 mum 573 mum 511 keV 0 eV 0 fm 0 fm Tank initStep + 1 -5 m -28.8 cm -78.1 cm 511 keV 0 eV 5.07 m 5.07 m Tank Transportation + 2 -10 m -57.5 cm -1.56 m 511 keV 0 eV 5.07 m 10.1 m OutOfWorld Transportation +Number of optical photons produces in this event : 34 +number of event = 1 User=0.11s Real=0.12s Sys=0s Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N06/include/ExN06DetectorConstruction.hh b/examples/novice/N06/include/ExN06DetectorConstruction.hh index 09871190d5..b4f655e5e0 100644 --- a/examples/novice/N06/include/ExN06DetectorConstruction.hh +++ b/examples/novice/N06/include/ExN06DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06DetectorConstruction.hh,v 1.4 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06EventAction.hh b/examples/novice/N06/include/ExN06EventAction.hh index 4a1402a705..b143af3534 100644 --- a/examples/novice/N06/include/ExN06EventAction.hh +++ b/examples/novice/N06/include/ExN06EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06EventAction.hh,v 1.1 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06PhysicsList.hh b/examples/novice/N06/include/ExN06PhysicsList.hh index ca569a54ee..649ae745af 100644 --- a/examples/novice/N06/include/ExN06PhysicsList.hh +++ b/examples/novice/N06/include/ExN06PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06PhysicsList.hh,v 1.6 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06PhysicsListMessenger.hh b/examples/novice/N06/include/ExN06PhysicsListMessenger.hh index 1d24d604a8..e5ebc327d6 100644 --- a/examples/novice/N06/include/ExN06PhysicsListMessenger.hh +++ b/examples/novice/N06/include/ExN06PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06PhysicsListMessenger.hh,v 1.1 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh b/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh index 495a745187..f2b0594384 100644 --- a/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh +++ b/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06PrimaryGeneratorAction.hh,v 1.4 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06PrimaryGeneratorMessenger.hh b/examples/novice/N06/include/ExN06PrimaryGeneratorMessenger.hh index 607c299747..a0198c24ae 100644 --- a/examples/novice/N06/include/ExN06PrimaryGeneratorMessenger.hh +++ b/examples/novice/N06/include/ExN06PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06PrimaryGeneratorMessenger.hh,v 1.1 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N06/include/ExN06RunAction.hh b/examples/novice/N06/include/ExN06RunAction.hh index 296747b59f..1735e474c0 100644 --- a/examples/novice/N06/include/ExN06RunAction.hh +++ b/examples/novice/N06/include/ExN06RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06RunAction.hh,v 1.8 2003/01/23 15:34:23 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06StackingAction.hh b/examples/novice/N06/include/ExN06StackingAction.hh index 166450ca25..df916722b7 100644 --- a/examples/novice/N06/include/ExN06StackingAction.hh +++ b/examples/novice/N06/include/ExN06StackingAction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN06StackingAction.hh,v 1.4 2003/01/23 15:34:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06SteppingVerbose.hh b/examples/novice/N06/include/ExN06SteppingVerbose.hh index f9b6a6021b..ce062800df 100644 --- a/examples/novice/N06/include/ExN06SteppingVerbose.hh +++ b/examples/novice/N06/include/ExN06SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06SteppingVerbose.hh,v 1.1 2003/01/23 15:34:24 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06DetectorConstruction.cc b/examples/novice/N06/src/ExN06DetectorConstruction.cc index 81982e1cb2..5d24dc4991 100644 --- a/examples/novice/N06/src/ExN06DetectorConstruction.cc +++ b/examples/novice/N06/src/ExN06DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06DetectorConstruction.cc,v 1.14 2004/03/17 22:41:12 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06EventAction.cc b/examples/novice/N06/src/ExN06EventAction.cc index ce97837782..bbb50a4c74 100644 --- a/examples/novice/N06/src/ExN06EventAction.cc +++ b/examples/novice/N06/src/ExN06EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN06EventAction.cc,v 1.1 2003/01/23 15:34:31 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN06EventAction.cc,v 1.2 2005/12/04 00:45:09 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,24 +53,10 @@ void ExN06EventAction::BeginOfEventAction(const G4Event*) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ExN06EventAction::EndOfEventAction(const G4Event* evt) +void ExN06EventAction::EndOfEventAction(const G4Event*) { - // get number of stored trajectories - // - G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); - G4int n_trajectories = 0; - if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); - - // extract the trajectories and draw them - // - if (G4VVisManager::GetConcreteInstance()) - { - for (G4int i=0; iGetTrajectoryContainer()))[i]); - trj->DrawTrajectory(50); - } - } + // Trajectory drawing now done by vis mananger under vis comamnds. + // See vis.mac. } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06PhysicsList.cc b/examples/novice/N06/src/ExN06PhysicsList.cc index 967f45ea56..10740eea3f 100644 --- a/examples/novice/N06/src/ExN06PhysicsList.cc +++ b/examples/novice/N06/src/ExN06PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06PhysicsList.cc,v 1.12 2005/05/17 00:19:45 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06PhysicsListMessenger.cc b/examples/novice/N06/src/ExN06PhysicsListMessenger.cc index bbab254aca..0b306d0835 100644 --- a/examples/novice/N06/src/ExN06PhysicsListMessenger.cc +++ b/examples/novice/N06/src/ExN06PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06PhysicsListMessenger.cc,v 1.2 2005/05/11 16:26:20 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc b/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc index e6ce0d1b48..8de911c86c 100644 --- a/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc +++ b/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06PrimaryGeneratorMessenger.cc,v 1.1 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc b/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc index 0d018ab6aa..c9e8fce1f6 100644 --- a/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc +++ b/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06PrimaryGeneratorAction.cc,v 1.4 2005/06/27 15:28:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06RunAction.cc b/examples/novice/N06/src/ExN06RunAction.cc index 16521e4e51..d410f0678e 100644 --- a/examples/novice/N06/src/ExN06RunAction.cc +++ b/examples/novice/N06/src/ExN06RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06RunAction.cc,v 1.9 2004/04/02 12:14:12 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06StackingAction.cc b/examples/novice/N06/src/ExN06StackingAction.cc index 3a3f6a0613..71dbfaaf1a 100644 --- a/examples/novice/N06/src/ExN06StackingAction.cc +++ b/examples/novice/N06/src/ExN06StackingAction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN06StackingAction.cc,v 1.4 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06SteppingVerbose.cc b/examples/novice/N06/src/ExN06SteppingVerbose.cc index 83cf8e926b..17efccde49 100644 --- a/examples/novice/N06/src/ExN06SteppingVerbose.cc +++ b/examples/novice/N06/src/ExN06SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06SteppingVerbose.cc,v 1.3 2003/06/16 16:50:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/vis.mac b/examples/novice/N06/vis.mac index 57d8a20458..89e169265d 100644 --- a/examples/novice/N06/vis.mac +++ b/examples/novice/N06/vis.mac @@ -21,7 +21,14 @@ /vis/viewer/flush # # for drawing the tracks +# Draw trajectories at end of event, showing trajectory points as +# markers of size 2 pixels (parameter/1000). +/vis/scene/add/trajectories 2000 # (if too many tracks cause core dump => storeTrajectory 0) -# /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate +# +# Refresh ready for run +/vis/viewer/refresh +# +# Now ready for /run/beamOn. diff --git a/examples/novice/N07/History b/examples/novice/N07/History index 8551136794..f6d2b64cd1 100644 --- a/examples/novice/N07/History +++ b/examples/novice/N07/History @@ -1,4 +1,4 @@ -$Id: History,v 1.10 2005/05/03 10:05:49 allison Exp $ +$Id: History,v 1.11 2005/11/22 22:20:55 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov. 22, 2005 M.Asai (exampleN07-V07-01-00) +- Fully revised with new G4VPrimitiveScorer and G4VSDFilter. + 3rd May 2005 John Allison (examples-V07-00-03) - Replaced vis manager with G4VisExecutive. diff --git a/examples/novice/N07/README b/examples/novice/N07/README index 731c3867f0..3f0a4abd9c 100644 --- a/examples/novice/N07/README +++ b/examples/novice/N07/README @@ -1,4 +1,4 @@ -$Id: README,v 1.2 2003/04/09 23:20:58 asaim Exp $ +$Id: README,v 1.3 2005/11/22 22:20:55 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,11 +15,10 @@ $Id: README,v 1.2 2003/04/09 23:20:58 asaim Exp $ 1. Utilizing a concrete run class derived from G4Run base class for accumulating physics quantities and hits as a run 2. Changing calorimeter geometries without re-building a world volume - 3. Changing materials used in parameterized volumes - 4. Instantiating more than one sensitive detectors with different - module names from one concrete sensitive detector class - 5. Defining geometrical regions ans setting production thresholds + 3. Defining geometrical regions ans setting production thresholds for each region + 4. Demonstrating the use of primitive scorer and filter classes without + implementing sensitive detector class 1- Utilizing a concrete run class derived from G4Run base class for accumulating physics quantities and hits as a run @@ -60,25 +59,7 @@ $Id: README,v 1.2 2003/04/09 23:20:58 asaim Exp $ ExN07DetectorConstruction::SetSerialGeometry(G4bool) for changing the position of placed volumes. - 3- Changing materials used in parameterized volumes - - Materials of absorber and sensitive gap in calorimeters are defined by - ExN07GapParameterisation::ComputeMaterial(const G4int,G4VPhysicalVolume*), - as well as positions of each layer to be defined by - ExN07GapParameterisation::ComputeTransformation(const G4int, - G4VPhysicalVolume*). - - 4- Instantiating more than one sensitive detectors with different - module names from one concrete sensitive detector class - - ExN07CalorimeterSD is constructed three times with deferent module names - in ExN07DetectorConstruction::Construct(). In addition, each detector - create two hits collections of ExN07CalorHit. Thus, in total, six hits - collections of same type are created for each event. To access to each - of these collections in ExN07EventAction, both module name and collection - name are combinedly used. - - 5- Defining geometrical regions ans setting production thresholds + 3- Defining geometrical regions ans setting production thresholds for each region Setting production thresholds (so-called production cuts) to individual @@ -110,7 +91,21 @@ $Id: README,v 1.2 2003/04/09 23:20:58 asaim Exp $ particular region. Please note that some EM processes still generate such secondary below threshold. - 6- Macro files + 4- Demonstrating the use of primitive scorer and filter classes without + implementing sensitive detector class + + In ExN07DetectorConstruction::SetupDetector() method, concrete classes + G4PSEnergyDeposit, G4PSNofSecondary, G4PSTrackLength, G4PSNofStep and + G4PSMinKinEAtGeneration, all of thich are derivalable of G4VPrimitiveScorer, + are used to define the sensitivity of the calorimeter. All of them are + registered to G4MultiFunctionalDetector and this detector object is set + to the logical volume. G4SDParticleFilter is used to define the particle + type(s) to be scored. + + In ExN07Run::RecordEvent() method, the way of retreiving G4THitsMap + from each primitive scorer via G4HCofThisEvent is demonstrated. + + 5- Macro files exampleN07.in To be used for batch mode. The reference output file is made by this @@ -124,7 +119,7 @@ $Id: README,v 1.2 2003/04/09 23:20:58 asaim Exp $ Setting visualization parameters. This macro file will be called automatically when interactive execution starts. - 7- UI commands defined in this example + 6- UI commands defined in this example Command /N07/setAbsMat Guidance : @@ -167,16 +162,4 @@ Parameter : serialize Parameter type : b Omittable : False - - -Command /N07/verbose -Guidance : -Set verbosity of each event. - Range of parameters : vl>=0 && vl<10 - -Parameter : vl - Parameter type : i - Omittable : True - Default value : taken from the current value - diff --git a/examples/novice/N07/exampleN07.cc b/examples/novice/N07/exampleN07.cc index 4374def66a..71eeedfc67 100644 --- a/examples/novice/N07/exampleN07.cc +++ b/examples/novice/N07/exampleN07.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN07.cc,v 1.5 2005/05/03 10:21:16 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: exampleN07.cc,v 1.6 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -45,8 +45,6 @@ #include "ExN07PhysicsList.hh" #include "ExN07PrimaryGeneratorAction.hh" #include "ExN07RunAction.hh" -#include "ExN07EventAction.hh" -#include "ExN07StackingAction.hh" int main(int argc,char** argv) { @@ -56,6 +54,10 @@ int main(int argc,char** argv) { // set mandatory initialization classes runManager->SetUserInitialization(new ExN07DetectorConstruction); runManager->SetUserInitialization(new ExN07PhysicsList); + + // set user action classes + runManager->SetUserAction(new ExN07PrimaryGeneratorAction); + runManager->SetUserAction(new ExN07RunAction); #ifdef G4VIS_USE // visualization manager @@ -63,15 +65,9 @@ int main(int argc,char** argv) { visManager->Initialize(); #endif - // set user action classes - runManager->SetUserAction(new ExN07PrimaryGeneratorAction); - runManager->SetUserAction(new ExN07RunAction); - runManager->SetUserAction(new ExN07EventAction); - runManager->SetUserAction(new ExN07StackingAction); - // Initialize G4 kernel - // runManager->Initialize(); - + runManager->Initialize(); + // get the pointer to the User Interface manager G4UImanager* UI = G4UImanager::GetUIpointer(); diff --git a/examples/novice/N07/exampleN07.out b/examples/novice/N07/exampleN07.out index 0cedc57ba8..bdb6a3fb92 100644 --- a/examples/novice/N07/exampleN07.out +++ b/examples/novice/N07/exampleN07.out @@ -1,17 +1,45 @@ ************************************************************* - Geant4 version Name: run-V07-00-05 (30-June-2005) + Geant4 version Name: geant4-08-00-cand-01 (16-December-2005) Copyright : Geant4 Collaboration Reference : NIM A 506 (2003), 250-303 WWW : http://cern.ch/geant4 ************************************************************* +Visualization Manager instantiating... +Visualization Manager initialising... +Registering graphics systems... -***** Table : Nb of materials = 7 ***** +You have successfully chosen to use the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + GAGTree (GAGTree) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +Registering model factories... + +***** Table : Nb of materials = 11 ***** 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: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm + ---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 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: ArgonGas density: 1.782 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 109.708 m + ---> Element: ArgonGas ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: He density: 0.179 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.278 km + ---> Element: He ( ) Z = 2.0 N = 4.0 A = 4.00 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 % @@ -34,43 +62,29 @@ ---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 % -Visualization Manager instantiating... -Visualization Manager initialising... -Registering graphics systems... - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - ASCIITree (ATree) - DAWNFILE (DAWNFILE) - GAGTree (GAGTree) - G4HepRep (HepRepXML) - G4HepRepFile (HepRepFile) - RayTracer (RayTracer) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) -/run/verbose 1 -/run/initialize -------------------------------------------------------- Calorimeters are placed in parallel. Absorber is made of Lead Gap is made of liquidArgon -------------------------------------------------------- ExN07PhysicsList::SetCuts: default cut length : 1 mm +/run/verbose 1 +/run/initialize /run/dumpRegion -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Galactic Production cuts : gamma 1 mm e- 1 mm e+ 1 mm -Region Calor-A +Region -- appears in world volume Materials : Lead liquidArgon Production cuts : gamma 1 mm e- 1 mm e+ 1 mm -Region Calor-B +Region -- appears in world volume Materials : Lead liquidArgon Production cuts : gamma 1 cm e- 1 cm e+ 1 cm -Region Calor-C +Region -- appears in world volume Materials : Lead liquidArgon Production cuts : gamma 10 cm e- 10 cm e+ 10 cm /run/beamOn 10 @@ -89,13 +103,13 @@ phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -107,7 +121,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -128,9 +142,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -msc: Model variant of multiple scattering for GenericIon + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -141,7 +153,7 @@ muIoni: tables are built for mu+ msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -172,7 +184,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -231,7 +243,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=62.86s Real=66.12s Sys=3.05s + User=28.83s Real=31.51s Sys=2.63s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -239,55 +251,55 @@ Region : Calor-A Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 8.9686271 GeV Gap 875.98411 MeV + Absorber 2.4284624 GeV Gap 309.34732 MeV Number of secondaries in an event : - gamma in Absorber 4705.7 in Gap 244.8 - e- in Absorber 7511.1 in Gap 676.2 - e+ in Absorber 469.1 in Gap 15.2 + gamma in Absorber 644.2 in Gap 38.3 + e- in Absorber 1062.1 in Gap 123.7 + e+ in Absorber 58.4 in Gap 1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 100.51337 keV in Gap 6.2120631 keV - e- in Absorber 9.1229807 eV in Gap 0.034980807 eV - e+ in Absorber 2.2152892 keV in Gap 47.191483 keV + gamma in Absorber 100.54686 keV in Gap 6.2236658 keV + e- in Absorber 120.39139 eV in Gap 30.751359 eV + e+ in Absorber 6.545165 keV in Gap 1.1667508 MeV Total track length of e+/e- in an event : - Absorber 5.2987347 m Gap 3.3130876 m + Absorber 75.010991 cm Gap 54.878736 cm Total number of steps of e+/e- in an event : - Absorber 12934.2 Gap 1171.8 + Absorber 2480 Gap 791.8 ############################################################ Region : Calor-B Production thresholds : gamma 1 cm e- 1 cm e+ 1 cm Energy deposition in an event : - Absorber 2.8810051 GeV Gap 345.55323 MeV + Absorber 3.0626272 GeV Gap 357.42323 MeV Number of secondaries in an event : - gamma in Absorber 614 in Gap 37.2 - e- in Absorber 1107.2 in Gap 109.5 - e+ in Absorber 81.1 in Gap 2.2 + gamma in Absorber 682 in Gap 45.5 + e- in Absorber 1232.8 in Gap 108.8 + e+ in Absorber 95.7 in Gap 3.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 282.53203 keV in Gap 19.353277 keV - e- in Absorber 56.266022 eV in Gap 17.61185 eV - e+ in Absorber 2.6702333 keV in Gap 460.62732 keV + gamma in Absorber 277.13986 keV in Gap 19.332636 keV + e- in Absorber 232.16119 eV in Gap 56.364311 eV + e+ in Absorber 2.2130442 keV in Gap 671.17741 keV Total track length of e+/e- in an event : - Absorber 90.704934 cm Gap 61.607549 cm + Absorber 1.0181902 m Gap 68.331733 cm Total number of steps of e+/e- in an event : - Absorber 1829.8 Gap 181.4 + Absorber 2858.8 Gap 720 ############################################################ Region : Calor-C Production thresholds : gamma 10 cm e- 10 cm e+ 10 cm Energy deposition in an event : - Absorber 4.0477757 GeV Gap 392.95566 MeV + Absorber 2.5025394 GeV Gap 259.55482 MeV Number of secondaries in an event : - gamma in Absorber 226.4 in Gap 41.5 - e- in Absorber 450.7 in Gap 56.5 - e+ in Absorber 128.3 in Gap 4.1 + gamma in Absorber 28.9 in Gap 6.3 + e- in Absorber 61 in Gap 7.2 + e+ in Absorber 16.1 in Gap 0.4 Minimum kinetic energy of generated secondaries : - gamma in Absorber 288.44008 keV in Gap 58.654223 keV - e- in Absorber 282.97634 eV in Gap 112.79606 eV - e+ in Absorber 10.342407 keV in Gap 391.47674 keV + gamma in Absorber 484.72254 keV in Gap 56.812037 keV + e- in Absorber 6.1546807 keV in Gap 331.74205 eV + e+ in Absorber 16.762321 keV in Gap 1.2880094 MeV Total track length of e+/e- in an event : - Absorber 1.1384109 m Gap 72.674822 cm + Absorber 15.429351 cm Gap 9.857978 cm Total number of steps of e+/e- in an event : - Absorber 1024.9 Gap 139.5 + Absorber 318.3 Gap 97.5 ############################################################ /run/dumpCouples @@ -352,19 +364,19 @@ Index : 6 used in the geometry : Yes recalculation needed : No /run/setCutForRegion Calor-C 2 cm /run/dumpRegion -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Galactic Production cuts : gamma 1 mm e- 1 mm e+ 1 mm -Region Calor-A +Region -- appears in world volume Materials : Lead liquidArgon Production cuts : gamma 200 mum e- 200 mum e+ 200 mum -Region Calor-B +Region -- appears in world volume Materials : Lead liquidArgon Production cuts : gamma 2 mm e- 2 mm e+ 2 mm -Region Calor-C +Region -- appears in world volume Materials : Lead liquidArgon Production cuts : gamma 2 cm e- 2 cm e+ 2 cm /run/beamOn 10 @@ -383,13 +395,13 @@ phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -401,7 +413,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -422,9 +434,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -msc: Model variant of multiple scattering for GenericIon + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -435,7 +445,7 @@ muIoni: tables are built for mu+ msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -466,7 +476,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -525,7 +535,7 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=49.02s Real=51.58s Sys=2.34s + User=59.14s Real=63.89s Sys=4.75s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -533,55 +543,55 @@ Region : Calor-A Production thresholds : gamma 200 mum e- 200 mum e+ 200 mum Energy deposition in an event : - Absorber 5.6508837 GeV Gap 608.68169 MeV + Absorber 3.247877 GeV Gap 383.9923 MeV Number of secondaries in an event : - gamma in Absorber 3304.5 in Gap 163.2 - e- in Absorber 5278.1 in Gap 559.5 - e+ in Absorber 256.5 in Gap 10.2 + gamma in Absorber 1487.8 in Gap 72.9 + e- in Absorber 2474.4 in Gap 291.2 + e+ in Absorber 107 in Gap 3.8 Minimum kinetic energy of generated secondaries : - gamma in Absorber 47.190904 keV in Gap 2.7882931 keV - e- in Absorber 7.2505289 eV in Gap 1.124437 eV - e+ in Absorber 11.388807 keV in Gap 62.122344 keV + gamma in Absorber 47.184863 keV in Gap 2.8140475 keV + e- in Absorber 29.939493 eV in Gap 6.8343585 eV + e+ in Absorber 15.467467 keV in Gap 214.19799 keV Total track length of e+/e- in an event : - Absorber 3.1516543 m Gap 2.0763725 m + Absorber 1.4274336 m Gap 95.539233 cm Total number of steps of e+/e- in an event : - Absorber 9265.1 Gap 978.6 + Absorber 6638.5 Gap 1729.2 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 2.4800242 GeV Gap 307.91587 MeV + Absorber 2.821078 GeV Gap 349.12247 MeV Number of secondaries in an event : - gamma in Absorber 612.6 in Gap 36.6 - e- in Absorber 1021.8 in Gap 106.9 - e+ in Absorber 62 in Gap 2.5 + gamma in Absorber 814.4 in Gap 49 + e- in Absorber 1342.3 in Gap 133.2 + e+ in Absorber 82.7 in Gap 2.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 120.59693 keV in Gap 8.8267583 keV - e- in Absorber 49.154675 eV in Gap 56.595748 eV - e+ in Absorber 21.91929 keV in Gap 83.935656 keV + gamma in Absorber 120.5942 keV in Gap 8.7052846 keV + e- in Absorber 75.719946 eV in Gap 185.18028 eV + e+ in Absorber 7.0719999 keV in Gap 258.95143 keV Total track length of e+/e- in an event : - Absorber 74.318077 cm Gap 51.980794 cm + Absorber 97.958814 cm Gap 72.784565 cm Total number of steps of e+/e- in an event : - Absorber 1731 Gap 176.8 + Absorber 3116.3 Gap 946.5 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 2.6880661 GeV Gap 316.47545 MeV + Absorber 3.2258225 GeV Gap 358.43908 MeV Number of secondaries in an event : - gamma in Absorber 424.4 in Gap 30 - e- in Absorber 812.3 in Gap 75.1 - e+ in Absorber 67.2 in Gap 2.1 + gamma in Absorber 634 in Gap 41.4 + e- in Absorber 1179.2 in Gap 107.9 + e+ in Absorber 101.4 in Gap 3.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 347.35522 keV in Gap 27.0338 keV - e- in Absorber 96.330414 eV in Gap 430.20605 eV - e+ in Absorber 16.337466 keV in Gap 276.14154 keV + gamma in Absorber 324.37976 keV in Gap 27.096627 keV + e- in Absorber 24.871327 eV in Gap 48.069777 eV + e+ in Absorber 8.6995096 keV in Gap 452.56701 keV Total track length of e+/e- in an event : - Absorber 71.397488 cm Gap 45.129951 cm + Absorber 1.0557456 m Gap 63.707086 cm Total number of steps of e+/e- in an event : - Absorber 1321.3 Gap 130.7 + Absorber 2757.9 Gap 737 ############################################################ /run/dumpCouples @@ -645,20 +655,20 @@ Index : 6 used in the geometry : Yes recalculation needed : No /N07/setGapMat Water /run/dumpRegion -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Galactic Production cuts : gamma 1 mm e- 1 mm e+ 1 mm -Region Calor-A - Materials : Aluminium Water +Region -- appears in world volume + Materials : Aluminium Production cuts : gamma 200 mum e- 200 mum e+ 200 mum -Region Calor-B - Materials : Aluminium Water +Region -- appears in world volume + Materials : Aluminium Production cuts : gamma 2 mm e- 2 mm e+ 2 mm -Region Calor-C - Materials : Aluminium Water +Region -- appears in world volume + Materials : Aluminium Production cuts : gamma 2 cm e- 2 cm e+ 2 cm /run/beamOn 10 @@ -676,13 +686,13 @@ phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -694,7 +704,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -715,9 +725,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -msc: Model variant of multiple scattering for GenericIon + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -728,7 +736,7 @@ muIoni: tables are built for mu+ msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -759,7 +767,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -808,47 +816,26 @@ Index : 7 used in the geometry : Yes recalculation needed : No Calor-A Index : 8 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 200 mum e- 200 mum e+ 200 mum - Energy thresholds : gamma 1.47052 keV e- 126.50293 keV e+ 124.95517 keV - Region(s) which use this couple : - Calor-A - -Index : 9 used in the geometry : Yes recalculation needed : No Material : Aluminium Range cuts : gamma 2 mm e- 2 mm e+ 2 mm Energy thresholds : gamma 9.5619691 keV e- 1.0256085 MeV e+ 976.32895 keV Region(s) which use this couple : Calor-B -Index : 10 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 2 mm e- 2 mm e+ 2 mm - Energy thresholds : gamma 3.8944955 keV e- 568.01052 keV e+ 547.41576 keV - Region(s) which use this couple : - Calor-B - -Index : 11 used in the geometry : Yes recalculation needed : No +Index : 9 used in the geometry : Yes recalculation needed : No Material : Aluminium Range cuts : gamma 2 cm e- 2 cm e+ 2 cm Energy thresholds : gamma 28.180732 keV e- 9.404294 MeV e+ 8.7347011 MeV Region(s) which use this couple : Calor-C -Index : 12 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 2 cm e- 2 cm e+ 2 cm - Energy thresholds : gamma 10.314103 keV e- 4.1731742 MeV e+ 3.9726571 MeV - Region(s) which use this couple : - Calor-C - ==================================================================== Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=6.82s Real=7.13s Sys=0.25s + User=19.12s Real=20.57s Sys=1.45s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -856,55 +843,55 @@ Region : Calor-A Production thresholds : gamma 200 mum e- 200 mum e+ 200 mum Energy deposition in an event : - Absorber 593.8102 MeV Gap 262.78978 MeV + Absorber 693.93322 MeV Gap 680.90113 MeV Number of secondaries in an event : - gamma in Absorber 59.3 in Gap 16.2 - e- in Absorber 339 in Gap 176.9 - e+ in Absorber 2.3 in Gap 0.4 + gamma in Absorber 86.9 in Gap 87.5 + e- in Absorber 528.3 in Gap 520.3 + e+ in Absorber 3.8 in Gap 4 Minimum kinetic energy of generated secondaries : - gamma in Absorber 3.2258906 keV in Gap 1.5098577 keV - e- in Absorber 7.6312885 eV in Gap 16.36413 eV - e+ in Absorber 329.86815 keV in Gap 4.8093377 MeV + gamma in Absorber 3.2141102 keV in Gap 3.213496 keV + e- in Absorber 1.4035306 eV in Gap 8.2607053 eV + e+ in Absorber 877.17324 keV in Gap 232.42042 keV Total track length of e+/e- in an event : - Absorber 50.350296 cm Gap 48.743703 cm + Absorber 74.307251 cm Gap 71.353845 cm Total number of steps of e+/e- in an event : - Absorber 484.6 Gap 253.2 + Absorber 1661.4 Gap 1509.4 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 566.6096 MeV Gap 254.62662 MeV + Absorber 521.26146 MeV Gap 527.32776 MeV Number of secondaries in an event : - gamma in Absorber 38.4 in Gap 12.4 - e- in Absorber 200.8 in Gap 87.7 - e+ in Absorber 1.7 in Gap 0.3 + gamma in Absorber 24.5 in Gap 21.2 + e- in Absorber 125.8 in Gap 127.1 + e+ in Absorber 0.6 in Gap 0.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 9.6420252 keV in Gap 3.9687822 keV - e- in Absorber 5.1699139 eV in Gap 3.2362212 eV - e+ in Absorber 747.83167 keV in Gap 495.02894 keV + gamma in Absorber 9.5859142 keV in Gap 10.234409 keV + e- in Absorber 3.2300958 eV in Gap 59.569315 eV + e+ in Absorber 5.7729008 MeV in Gap 3.6361288 MeV Total track length of e+/e- in an event : - Absorber 36.182879 cm Gap 38.627644 cm + Absorber 26.374983 cm Gap 26.884537 cm Total number of steps of e+/e- in an event : - Absorber 284.1 Gap 131.1 + Absorber 413.6 Gap 461.6 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 577.21587 MeV Gap 249.04719 MeV + Absorber 607.20463 MeV Gap 605.81438 MeV Number of secondaries in an event : - gamma in Absorber 27.1 in Gap 8.3 - e- in Absorber 151.6 in Gap 66.2 - e+ in Absorber 1.9 in Gap 0.2 + gamma in Absorber 33.7 in Gap 29.2 + e- in Absorber 190.9 in Gap 196.7 + e+ in Absorber 2.4 in Gap 1.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 28.685662 keV in Gap 10.345352 keV - e- in Absorber 20.103865 eV in Gap 35.789319 eV - e+ in Absorber 657.16605 keV in Gap 2.4312984 MeV + gamma in Absorber 28.222226 keV in Gap 28.3736 keV + e- in Absorber 0.9084252 eV in Gap 0.27242816 eV + e+ in Absorber 383.19082 keV in Gap 509.27174 keV Total track length of e+/e- in an event : - Absorber 27.659297 cm Gap 26.111762 cm + Absorber 32.463885 cm Gap 32.298238 cm Total number of steps of e+/e- in an event : - Absorber 196.7 Gap 86.1 + Absorber 373.7 Gap 395.4 ############################################################ /run/dumpCouples @@ -955,40 +942,19 @@ Index : 7 used in the geometry : Yes recalculation needed : No Calor-A Index : 8 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 200 mum e- 200 mum e+ 200 mum - Energy thresholds : gamma 1.47052 keV e- 126.50293 keV e+ 124.95517 keV - Region(s) which use this couple : - Calor-A - -Index : 9 used in the geometry : Yes recalculation needed : No Material : Aluminium Range cuts : gamma 2 mm e- 2 mm e+ 2 mm Energy thresholds : gamma 9.5619691 keV e- 1.0256085 MeV e+ 976.32895 keV Region(s) which use this couple : Calor-B -Index : 10 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 2 mm e- 2 mm e+ 2 mm - Energy thresholds : gamma 3.8944955 keV e- 568.01052 keV e+ 547.41576 keV - Region(s) which use this couple : - Calor-B - -Index : 11 used in the geometry : Yes recalculation needed : No +Index : 9 used in the geometry : Yes recalculation needed : No Material : Aluminium Range cuts : gamma 2 cm e- 2 cm e+ 2 cm Energy thresholds : gamma 28.180732 keV e- 9.404294 MeV e+ 8.7347011 MeV Region(s) which use this couple : Calor-C -Index : 12 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 2 cm e- 2 cm e+ 2 cm - Energy thresholds : gamma 10.314103 keV e- 4.1731742 MeV e+ 3.9726571 MeV - Region(s) which use this couple : - Calor-C - ==================================================================== ## @@ -999,20 +965,20 @@ Index : 12 used in the geometry : Yes recalculation needed : No /run/setCutForRegion Calor-C 1 mm /run/dumpRegion -Region DefaultRegionForTheWorld +Region -- appears in world volume Materials : Galactic Production cuts : gamma 1 mm e- 1 mm e+ 1 mm -Region Calor-A - Materials : Aluminium Water +Region -- appears in world volume + Materials : Aluminium Production cuts : gamma 10 mum e- 10 mum e+ 10 mum -Region Calor-B - Materials : Aluminium Water +Region -- appears in world volume + Materials : Aluminium Production cuts : gamma 100 mum e- 100 mum e+ 100 mum -Region Calor-C - Materials : Aluminium Water +Region -- appears in world volume + Materials : Aluminium Production cuts : gamma 1 mm e- 1 mm e+ 1 mm /run/beamOn 10 @@ -1030,13 +996,13 @@ phot: Total cross sections from Sandia parametrisation. msc: Model variant of multiple scattering for e- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 eIoni: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e- dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -1048,7 +1014,7 @@ eIoni: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. Lambda tables from threshold to 100 TeV in 120 bins. Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1 eBrem: tables are built for e+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -1069,9 +1035,7 @@ hIoni: tables are built for proton msc: Model variant of multiple scattering for proton Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 - -msc: Model variant of multiple scattering for GenericIon + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muIoni: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -1082,7 +1046,7 @@ muIoni: tables are built for mu+ msc: Model variant of multiple scattering for mu+ Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 muBrems: tables are built for mu+ dE/dx and range tables from 100 eV to 100 TeV in 120 bins. @@ -1113,7 +1077,7 @@ muPairProd: tables are built for mu- msc: Model variant of multiple scattering for pi- Lambda tables from 100 eV to 100 TeV in 120 bins. - Boundary algorithm is active with facrange= 0.199 + Boundary/stepping algorithm is active with facrange= 0.02 Step limitation 1 ========= Table of registered couples ============================== @@ -1162,47 +1126,26 @@ Index : 7 used in the geometry : Yes recalculation needed : No Calor-A Index : 8 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 10 mum e- 10 mum e+ 10 mum - Energy thresholds : gamma 990 eV e- 6.4497414 keV e+ 6.370829 keV - Region(s) which use this couple : - Calor-A - -Index : 9 used in the geometry : Yes recalculation needed : No Material : Aluminium Range cuts : gamma 100 mum e- 100 mum e+ 100 mum Energy thresholds : gamma 2.3144796 keV e- 129.65621 keV e+ 128.06986 keV Region(s) which use this couple : Calor-B -Index : 10 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 100 mum e- 100 mum e+ 100 mum - Energy thresholds : gamma 1.09571 keV e- 84.269564 keV e+ 83.238528 keV - Region(s) which use this couple : - Calor-B - -Index : 11 used in the geometry : Yes recalculation needed : No +Index : 9 used in the geometry : Yes recalculation needed : No Material : Aluminium Range cuts : gamma 1 mm e- 1 mm e+ 1 mm Energy thresholds : gamma 6.8873065 keV e- 596.68045 keV e+ 568.01052 keV Region(s) which use this couple : Calor-C -Index : 12 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 2.9018564 keV e- 347.13789 keV e+ 338.6954 keV - Region(s) which use this couple : - Calor-C - ==================================================================== Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=34.52s Real=37.21s Sys=2.35s + User=35.13s Real=39.07s Sys=3.94s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -1210,55 +1153,55 @@ Region : Calor-A Production thresholds : gamma 10 mum e- 10 mum e+ 10 mum Energy deposition in an event : - Absorber 912.06875 MeV Gap 393.95918 MeV + Absorber 537.47567 MeV Gap 530.00178 MeV Number of secondaries in an event : - gamma in Absorber 197.8 in Gap 43.2 - e- in Absorber 2052.1 in Gap 3527.7 - e+ in Absorber 9.2 in Gap 1.5 + gamma in Absorber 53.9 in Gap 50.1 + e- in Absorber 957.1 in Gap 942.2 + e+ in Absorber 1 in Gap 0.5 Minimum kinetic energy of generated secondaries : - gamma in Absorber 1.0003597 keV in Gap 1.0049838 keV - e- in Absorber 1.6193201 eV in Gap 0.48480534 eV - e+ in Absorber 237.73553 keV in Gap 372.66473 keV + gamma in Absorber 1.0134502 keV in Gap 1.0002151 keV + e- in Absorber 9.5994242 eV in Gap 2.6142916 eV + e+ in Absorber 1.9566867 MeV in Gap 1.9652729 MeV Total track length of e+/e- in an event : - Absorber 1.3277171 m Gap 1.2371474 m + Absorber 38.909373 cm Gap 36.827325 cm Total number of steps of e+/e- in an event : - Absorber 3163.7 Gap 6537.1 + Absorber 4246.6 Gap 4204.1 ############################################################ Region : Calor-B Production thresholds : gamma 100 mum e- 100 mum e+ 100 mum Energy deposition in an event : - Absorber 573.98233 MeV Gap 247.68113 MeV + Absorber 509.64069 MeV Gap 503.37748 MeV Number of secondaries in an event : - gamma in Absorber 56.4 in Gap 12.5 - e- in Absorber 414.7 in Gap 203.1 - e+ in Absorber 1.4 in Gap 0.4 + gamma in Absorber 33.8 in Gap 31.9 + e- in Absorber 289.3 in Gap 278.2 + e+ in Absorber 0.3 in Gap 0.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 2.3346826 keV in Gap 1.1455228 keV - e- in Absorber 27.649571 eV in Gap 47.678321 eV - e+ in Absorber 517.2278 keV in Gap 702.65262 keV + gamma in Absorber 2.324601 keV in Gap 2.3461428 keV + e- in Absorber 6.4837041 eV in Gap 1.8926856 eV + e+ in Absorber 4.0447402 MeV in Gap 1.7033493 MeV Total track length of e+/e- in an event : - Absorber 45.765516 cm Gap 40.960394 cm + Absorber 30.45633 cm Gap 29.146154 cm Total number of steps of e+/e- in an event : - Absorber 569.7 Gap 273.6 + Absorber 1112.6 Gap 1065.2 ############################################################ Region : Calor-C Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 598.5019 MeV Gap 267.58739 MeV + Absorber 520.45476 MeV Gap 518.58183 MeV Number of secondaries in an event : - gamma in Absorber 48.9 in Gap 13.7 - e- in Absorber 260.8 in Gap 114.1 - e+ in Absorber 2.1 in Gap 0.1 + gamma in Absorber 25.8 in Gap 29.1 + e- in Absorber 151.6 in Gap 153.3 + e+ in Absorber 0.6 in Gap 0.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 6.9285199 keV in Gap 3.0398056 keV - e- in Absorber 4.7916533 eV in Gap 6.1215625 eV - e+ in Absorber 704.27102 keV in Gap 4.1083894 MeV + gamma in Absorber 6.9066411 keV in Gap 7.0314109 keV + e- in Absorber 1.5537537 eV in Gap 20.023047 eV + e+ in Absorber 867.58042 keV in Gap 9.2988423 MeV Total track length of e+/e- in an event : - Absorber 46.025647 cm Gap 48.483391 cm + Absorber 28.247215 cm Gap 27.702494 cm Total number of steps of e+/e- in an event : - Absorber 355.4 Gap 161.6 + Absorber 479.8 Gap 450.3 ############################################################ /run/dumpCouples @@ -1309,40 +1252,19 @@ Index : 7 used in the geometry : Yes recalculation needed : No Calor-A Index : 8 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 10 mum e- 10 mum e+ 10 mum - Energy thresholds : gamma 990 eV e- 6.4497414 keV e+ 6.370829 keV - Region(s) which use this couple : - Calor-A - -Index : 9 used in the geometry : Yes recalculation needed : No Material : Aluminium Range cuts : gamma 100 mum e- 100 mum e+ 100 mum Energy thresholds : gamma 2.3144796 keV e- 129.65621 keV e+ 128.06986 keV Region(s) which use this couple : Calor-B -Index : 10 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 100 mum e- 100 mum e+ 100 mum - Energy thresholds : gamma 1.09571 keV e- 84.269564 keV e+ 83.238528 keV - Region(s) which use this couple : - Calor-B - -Index : 11 used in the geometry : Yes recalculation needed : No +Index : 9 used in the geometry : Yes recalculation needed : No Material : Aluminium Range cuts : gamma 1 mm e- 1 mm e+ 1 mm Energy thresholds : gamma 6.8873065 keV e- 596.68045 keV e+ 568.01052 keV Region(s) which use this couple : Calor-C -Index : 12 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 2.9018564 keV e- 347.13789 keV e+ 338.6954 keV - Region(s) which use this couple : - Calor-C - ==================================================================== Graphics systems deleted. diff --git a/examples/novice/N07/include/ExN07DetectorConstruction.hh b/examples/novice/N07/include/ExN07DetectorConstruction.hh index d37c429cee..6ef3fc099c 100644 --- a/examples/novice/N07/include/ExN07DetectorConstruction.hh +++ b/examples/novice/N07/include/ExN07DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07DetectorConstruction.hh,v 1.2 2004/11/17 03:07:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07DetectorConstruction.hh,v 1.3 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -34,10 +34,9 @@ class G4LogicalVolume; class G4VPhysicalVolume; -class G4PVParameterised; +class G4PVReplica; class G4Material; class G4Box; -class ExN07GapParameterisation; class ExN07DetectorMessenger; class ExN07DetectorConstruction : public G4VUserDetectorConstruction @@ -50,8 +49,6 @@ class ExN07DetectorConstruction : public G4VUserDetectorConstruction virtual G4VPhysicalVolume* Construct(); public: - void CreateMaterial(G4String materialChoice); - void UpdateGeometry(); void PrintCalorParameters() const; void SetAbsorberMaterial(G4String materialChoice); G4String GetAbsorberMaterial() const; @@ -66,27 +63,37 @@ class ExN07DetectorConstruction : public G4VUserDetectorConstruction private: void DefineMaterials(); + void SetupGeometry(); + void SetupDetectors(); private: G4int numberOfLayers; + G4double totalThickness; // total thinkness of one calorimeter + G4double layerThickness; // = totalThickness / numberOfLayers + + G4bool constructed; + + G4String calName[3]; G4Material* worldMaterial; G4Material* absorberMaterial; G4Material* gapMaterial; + G4Box* layerSolid; G4Box* gapSolid; G4LogicalVolume* worldLogical; G4LogicalVolume* calorLogical[3]; G4LogicalVolume* layerLogical[3]; + G4LogicalVolume* gapLogical[3]; G4VPhysicalVolume* worldPhysical; G4VPhysicalVolume* calorPhysical[3]; - G4PVParameterised* layerPhysical[3]; + G4PVReplica* layerPhysical[3]; + G4VPhysicalVolume* gapPhysical[3]; G4bool serial; - ExN07GapParameterisation* gapParam; ExN07DetectorMessenger* detectorMessenger; }; diff --git a/examples/novice/N07/include/ExN07DetectorMessenger.hh b/examples/novice/N07/include/ExN07DetectorMessenger.hh index ad17e2557f..76450838ef 100644 --- a/examples/novice/N07/include/ExN07DetectorMessenger.hh +++ b/examples/novice/N07/include/ExN07DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07DetectorMessenger.hh,v 1.3 2004/11/17 03:07:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07DetectorMessenger.hh,v 1.4 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN07DetectorMessenger_h @@ -50,12 +50,10 @@ class ExN07DetectorMessenger: public G4UImessenger ExN07DetectorConstruction* ExN07Detector; G4UIdirectory* N07Dir; - G4UIcmdWithAString* AddMaterCmd; G4UIcmdWithAString* AbsMaterCmd; G4UIcmdWithAString* GapMaterCmd; G4UIcmdWithAnInteger* numLayerCmd; G4UIcmdWithABool* SerialCmd; - G4UIcmdWithAnInteger* verboseCmd; }; diff --git a/examples/novice/N07/include/ExN07PhysicsList.hh b/examples/novice/N07/include/ExN07PhysicsList.hh index d86d070678..708d4a44ab 100644 --- a/examples/novice/N07/include/ExN07PhysicsList.hh +++ b/examples/novice/N07/include/ExN07PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07PhysicsList.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07PhysicsList.hh,v 1.2 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN07PhysicsList_h diff --git a/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh b/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh index 9d8be45ddc..af70727e4b 100644 --- a/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh +++ b/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07PrimaryGeneratorAction.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07PrimaryGeneratorAction.hh,v 1.2 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN07PrimaryGeneratorAction_h diff --git a/examples/novice/N07/include/ExN07Run.hh b/examples/novice/N07/include/ExN07Run.hh index ad92273fc8..dba8188167 100644 --- a/examples/novice/N07/include/ExN07Run.hh +++ b/examples/novice/N07/include/ExN07Run.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07Run.hh,v 1.3 2003/04/09 23:20:58 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07Run.hh,v 1.4 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN07Run_h @@ -30,68 +30,66 @@ #include "globals.hh" #include "G4Run.hh" -#include "G4Allocator.hh" + +#include "G4THitsMap.hh" class G4Event; -class G4HCtable; -class G4DCtable; class ExN07Run : public G4Run { public: ExN07Run(); virtual ~ExN07Run(); - inline void *operator new(size_t); - inline void operator delete(void* aRun); public: virtual void RecordEvent(const G4Event*); private: - G4double totE[6]; - G4double totL[6]; - G4int nStep[6]; - G4int nGamma[6]; - G4int nElectron[6]; - G4int nPositron[6]; - G4double eMinGamma[6]; - G4double eMinElectron[6]; - G4double eMinPositron[6]; + G4double GetTotal(const G4THitsMap &map) const; + G4double FindMinimum(const G4THitsMap &map) const; + + private: + // Maps for accumulation + // mapSum[i][j] + // i = 0 : Calor-A_abs j = 0 : total eDep + // i = 1 : Calor-A_gap j = 1 : number of gamma + // i = 2 : Calor-B_abs j = 2 : number of electron + // i = 3 : Calor-B_gap j = 3 : number of positron + // i = 4 : Calor-C_abs j = 4 : total step length for e+/e- + // i = 5 : Calor-C_gap j = 5 : total number of steps for e+/e- + G4THitsMap mapSum[6][6]; + G4int colIDSum[6][6]; + + // Maps for minimum value + // i = 0 : Calor-A_abs j = 0 : minimum kinE at generation for gamma + // i = 1 : Calor-A_gap j = 1 : minimum kinE at generation for electron + // i = 2 : Calor-B_abs j = 2 : minimum kinE at generation for positron + // i = 3 : Calor-B_gap + // i = 4 : Calor-C_abs + // i = 5 : Calor-C_gap + G4THitsMap mapMin[6][3]; + G4int colIDMin[6][3]; public: inline G4double GetTotalE(G4int i) const - { return totE[i]; } + { return GetTotal(mapSum[i][0]); } + inline G4double GetNGamma(G4int i) const + { return GetTotal(mapSum[i][1]); } + inline G4double GetNElectron(G4int i) const + { return GetTotal(mapSum[i][2]); } + inline G4double GetNPositron(G4int i) const + { return GetTotal(mapSum[i][3]); } inline G4double GetTotalL(G4int i) const - { return totL[i]; } - inline G4int GetNStep(G4int i) const - { return nStep[i]; } - inline G4int GetNGamma(G4int i) const - { return nGamma[i]; } - inline G4int GetNElectron(G4int i) const - { return nElectron[i]; } - inline G4int GetNPositron(G4int i) const - { return nPositron[i]; } + { return GetTotal(mapSum[i][4]); } + inline G4double GetNStep(G4int i) const + { return GetTotal(mapSum[i][5]); } inline G4double GetEMinGamma(G4int i) const - { return eMinGamma[i]; } + { return FindMinimum(mapMin[i][0]); } inline G4double GetEMinElectron(G4int i) const - { return eMinElectron[i]; } + { return FindMinimum(mapMin[i][1]); } inline G4double GetEMinPositron(G4int i) const - { return eMinPositron[i]; } + { return FindMinimum(mapMin[i][2]); } }; -extern G4Allocator anExN07RunAllocator; - -inline void* ExN07Run::operator new(size_t) -{ - void* aRun; - aRun = (void*)anExN07RunAllocator.MallocSingle(); - return aRun; -} - -inline void ExN07Run::operator delete(void* aRun) -{ - anExN07RunAllocator.FreeSingle((ExN07Run*)aRun); -} - #endif diff --git a/examples/novice/N07/include/ExN07RunAction.hh b/examples/novice/N07/include/ExN07RunAction.hh index 2c3f98ec52..041ee58227 100644 --- a/examples/novice/N07/include/ExN07RunAction.hh +++ b/examples/novice/N07/include/ExN07RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07RunAction.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07RunAction.hh,v 1.2 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef ExN07RunAction_h diff --git a/examples/novice/N07/src/ExN07CalorimeterSD.cc b/examples/novice/N07/src/ExN07CalorimeterSD.cc deleted file mode 100644 index 03079dc86b..0000000000 --- a/examples/novice/N07/src/ExN07CalorimeterSD.cc +++ /dev/null @@ -1,115 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN07CalorimeterSD.cc,v 1.2 2003/05/21 22:01:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// - -#include "ExN07CalorimeterSD.hh" - -#include "G4VPhysicalVolume.hh" -#include "G4Step.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" -#include "G4SDManager.hh" -#include "G4ParticleDefinition.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4Track.hh" -#include "G4ios.hh" - -G4int ExN07CalorimeterSD::numberOfLayers = 40; - -ExN07CalorimeterSD::ExN07CalorimeterSD(G4String name) -:G4VSensitiveDetector(name),AbsCollID(-1),GapCollID(-1) -{ - collectionName.insert("AbsCollection"); - collectionName.insert("GapCollection"); -} - -ExN07CalorimeterSD::~ExN07CalorimeterSD() -{;} - -void ExN07CalorimeterSD::Initialize(G4HCofThisEvent*HCE) -{ - AbsCollection = new ExN07CalorHitsCollection - (SensitiveDetectorName,collectionName[0]); - for(int i=0;iinsert(new ExN07CalorHit); } - if(AbsCollID<0) - { AbsCollID = GetCollectionID(0); } - HCE->AddHitsCollection(AbsCollID,AbsCollection); - - GapCollection = new ExN07CalorHitsCollection - (SensitiveDetectorName,collectionName[1]); - for(int j=0;jinsert(new ExN07CalorHit); } - if(GapCollID<0) - { GapCollID = GetCollectionID(1); } - HCE->AddHitsCollection(GapCollID,GapCollection); -} - -G4bool ExN07CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) -{ - G4double edep = aStep->GetTotalEnergyDeposit(); - - G4double stepl = aStep->GetStepLength(); - G4ParticleDefinition* particle = aStep->GetTrack()->GetDefinition(); - - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - - G4int LayerNumber = theTouchable->GetReplicaNumber(); - - G4int copyNo = LayerNumber/2; - if(LayerNumber%2) - { // odd number corresponds to Gap - (*GapCollection)[copyNo]->AddEnergy(edep); - if(particle==G4Electron::ElectronDefinition() - || particle==G4Positron::PositronDefinition()) - (*GapCollection)[copyNo]->AddStep(stepl); - } - else - { // even number corresponds to Abs - (*AbsCollection)[copyNo]->AddEnergy(edep); - if(particle==G4Electron::ElectronDefinition() - || particle==G4Positron::PositronDefinition()) - (*AbsCollection)[copyNo]->AddStep(stepl); - } - - return true; -} - -void ExN07CalorimeterSD::EndOfEvent(G4HCofThisEvent*) -{;} - -void ExN07CalorimeterSD::clear() -{;} - -void ExN07CalorimeterSD::DrawAll() -{;} - -void ExN07CalorimeterSD::PrintAll() -{;} - - diff --git a/examples/novice/N07/src/ExN07DetectorConstruction.cc b/examples/novice/N07/src/ExN07DetectorConstruction.cc index a7ae8506df..4b4c61fd36 100644 --- a/examples/novice/N07/src/ExN07DetectorConstruction.cc +++ b/examples/novice/N07/src/ExN07DetectorConstruction.cc @@ -21,56 +21,85 @@ // ******************************************************************** // // -// $Id: ExN07DetectorConstruction.cc,v 1.4 2004/11/17 03:07:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07DetectorConstruction.cc,v 1.5 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "ExN07DetectorConstruction.hh" + #include "G4RunManager.hh" + #include "G4Material.hh" #include "G4Box.hh" #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" -#include "G4PVParameterised.hh" -#include "G4SDManager.hh" +#include "G4PVReplica.hh" + #include "G4VisAttributes.hh" #include "G4Colour.hh" + +#include "G4SDManager.hh" +#include "G4MultiFunctionalDetector.hh" +#include "G4VPrimitiveScorer.hh" +#include "G4PSEnergyDeposit.hh" +#include "G4PSNofSecondary.hh" +#include "G4PSTrackLength.hh" +#include "G4PSNofStep.hh" +#include "G4PSMinKinEAtGeneration.hh" +#include "G4VSDFilter.hh" +#include "G4SDParticleFilter.hh" #include "G4ios.hh" + #include "ExN07DetectorMessenger.hh" -#include "ExN07CalorimeterSD.hh" -#include "ExN07GapParameterisation.hh" #include "ExN07PrimaryGeneratorAction.hh" ExN07DetectorConstruction::ExN07DetectorConstruction() -:numberOfLayers(40),worldMaterial(0),absorberMaterial(0),gapMaterial(0), - gapSolid(0),worldLogical(0),worldPhysical(0),serial(false) +:constructed(false),worldMaterial(0),absorberMaterial(0),gapMaterial(0), + layerSolid(0),gapSolid(0),worldLogical(0),worldPhysical(0),serial(false) { + numberOfLayers = 40; + totalThickness = 2.0*m; + layerThickness = totalThickness / numberOfLayers; + for(size_t i=0;i<3;i++) { calorLogical[i] = 0; layerLogical[i] = 0; + gapLogical[i] = 0; calorPhysical[i] = 0; layerPhysical[i] = 0; + gapPhysical[i] = 0; } - gapParam = new ExN07GapParameterisation; - gapParam->SetNumberOfLayers(numberOfLayers); - ExN07CalorimeterSD::SetNumberOfLayers(numberOfLayers); - DefineMaterials(); + calName[0] = "Calor-A"; + calName[1] = "Calor-B"; + calName[2] = "Calor-C"; + detectorMessenger = new ExN07DetectorMessenger(this); } ExN07DetectorConstruction::~ExN07DetectorConstruction() { delete detectorMessenger;} +G4VPhysicalVolume* ExN07DetectorConstruction::Construct() +{ + if(!constructed) + { + constructed = true; + DefineMaterials(); + SetupGeometry(); + SetupDetectors(); + } + return worldPhysical; +} void ExN07DetectorConstruction::DefineMaterials() { G4String name, symbol; //a=mass of a mole; G4double a, z, density; //z=mean number of protons; - G4int iz, n; //iz=number of protons in an isotope; - // n=number of nucleons in an isotope; + G4int iz; //iz=number of protons in an isotope; + G4int n; // n=number of nucleons in an isotope; G4int ncomponents, natoms; G4double abundance, fractionmass; @@ -108,6 +137,10 @@ void ExN07DetectorConstruction::DefineMaterials() // new G4Material(name="Aluminium", z=13., a=26.98*g/mole, density=2.700*g/cm3); + new G4Material(name="Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); + new G4Material(name="Iron", z=26., a=55.85*g/mole, density=7.87*g/cm3); + new G4Material(name="ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); + new G4Material(name="He", z=2., a=4.0*g/mole, density=0.1786e-03*g/cm3); density = 1.390*g/cm3; a = 39.95*g/mole; @@ -156,16 +189,14 @@ void ExN07DetectorConstruction::DefineMaterials() worldMaterial = Vacuum; absorberMaterial = Pb; gapMaterial = lAr; - gapParam->SetAbsorberMaterial(absorberMaterial); - gapParam->SetGapMaterial(gapMaterial); } -G4VPhysicalVolume* ExN07DetectorConstruction::Construct() +void ExN07DetectorConstruction::SetupGeometry() { // // World // - G4VSolid* worldSolid = new G4Box("World",2.*m,2.*m,4.*m); + G4VSolid* worldSolid = new G4Box("World",2.*m,2.*m,totalThickness*2.); worldLogical = new G4LogicalVolume(worldSolid,worldMaterial,"World"); worldPhysical = new G4PVPlacement(0,G4ThreeVector(),worldLogical,"World", 0,false,0); @@ -173,61 +204,57 @@ G4VPhysicalVolume* ExN07DetectorConstruction::Construct() // // Calorimeter // - G4VSolid* calorSolid = new G4Box("Calor",0.5*m,0.5*m,1.*m); + G4VSolid* calorSolid = new G4Box("Calor",0.5*m,0.5*m,totalThickness/2.); G4int i; - G4String calNam[3] = {"Cal-A","Cal-B","Cal-C"}; for(i=0;i<3;i++) { - calorLogical[i] = new G4LogicalVolume(calorSolid,absorberMaterial,calNam[i]); + calorLogical[i] = new G4LogicalVolume(calorSolid,absorberMaterial,calName[i]); if(serial) { calorPhysical[i] = new G4PVPlacement(0, - G4ThreeVector(0.,0.,G4double(i-1)*2.*m), - calorLogical[i],calNam[i],worldLogical,false,i); + G4ThreeVector(0.,0.,G4double(i-1)*totalThickness), + calorLogical[i],calName[i],worldLogical,false,i); } else { calorPhysical[i] = new G4PVPlacement(0, G4ThreeVector(0.,G4double(i-1)*m,0.), - calorLogical[i],calNam[i],worldLogical,false,i); + calorLogical[i],calName[i],worldLogical,false,i); } } // - // Layers -- material is parameterised + // Layers --- as absorbers // - gapSolid = new G4Box("Gap",0.5*m,0.5*m,1.*m/G4double(2*numberOfLayers)); + layerSolid = new G4Box("Layer",0.5*m,0.5*m,layerThickness/2.); for(i=0;i<3;i++) { - layerLogical[i] = new G4LogicalVolume(gapSolid,absorberMaterial,"Layer"); - layerPhysical[i] = - new G4PVParameterised("Layer",layerLogical[i],calorLogical[i],kZAxis, - 2*numberOfLayers,gapParam); + layerLogical[i] = new G4LogicalVolume(layerSolid,absorberMaterial,"Layer"); + layerPhysical[i] = new G4PVReplica(calName[i]+"_Layer",layerLogical[i],calorLogical[i],kZAxis, + numberOfLayers,layerThickness); } // - // Regions + // Gap // - G4String regName[] = {"Calor-A","Calor-B","Calor-C"}; + gapSolid = new G4Box("Gap",0.5*m,0.5*m,layerThickness/4.); for(i=0;i<3;i++) { - G4Region* aRegion = new G4Region(regName[i]); + gapLogical[i] = new G4LogicalVolume(gapSolid,gapMaterial,"Gap"); + gapPhysical[i] = new G4PVPlacement(0,G4ThreeVector(0.,0.,layerThickness/4.), + gapLogical[i],calName[i]+"_gap",layerLogical[i],false,0); + } + + // + // Regions + // + for(i=0;i<3;i++) + { + G4Region* aRegion = new G4Region(calName[i]); calorLogical[i]->SetRegion(aRegion); aRegion->AddRootLogicalVolume(calorLogical[i]); } - // - // Sensitive Detectors: Absorber and Gap - // - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - G4String detName[] = {"CalorSD-A","CalorSD-B","CalorSD-C"}; - for(i=0;i<3;i++) - { - G4VSensitiveDetector* calorSD = new ExN07CalorimeterSD(detName[i]); - SDman->AddNewDetector(calorSD); - layerLogical[i]->SetSensitiveDetector(calorSD); - } - // // Visualization attributes // @@ -238,10 +265,77 @@ G4VPhysicalVolume* ExN07DetectorConstruction::Construct() { calorLogical[i]->SetVisAttributes(simpleBoxVisAtt); layerLogical[i]->SetVisAttributes(simpleBoxVisAtt); + gapLogical[i]->SetVisAttributes(simpleBoxVisAtt); } PrintCalorParameters(); - return worldPhysical; +} + +void ExN07DetectorConstruction::SetupDetectors() +{ + G4String filterName, particleName; + + G4SDParticleFilter* gammaFilter = new G4SDParticleFilter(filterName="gammaFilter",particleName="gamma"); + G4SDParticleFilter* electronFilter = new G4SDParticleFilter(filterName="electronFilter",particleName="e-"); + G4SDParticleFilter* positronFilter = new G4SDParticleFilter(filterName="positronFilter",particleName="e+"); + G4SDParticleFilter* epFilter = new G4SDParticleFilter(filterName="epFilter"); + epFilter->add(particleName="e-"); + epFilter->add(particleName="e+"); + + + for(G4int i=0;i<3;i++) + { + for(G4int j=0;j<2;j++) + { + // Loop counter j = 0 : absorber + // = 1 : gap + G4String detName = calName[i]; + if(j==0) + { detName += "_abs"; } + else + { detName += "_gap"; } + G4MultiFunctionalDetector* det = new G4MultiFunctionalDetector(detName); + + // The second argument in each primitive means the "level" of geometrical hierarchy, + // the copy number of that level is used as the key of the G4THitsMap. + // For absorber (j = 0), the copy number of its own physical volume is used. + // For gap (j = 1), the copy number of its mother physical volume is used, since there + // is only one physical volume of gap is placed with respect to its mother. + G4VPrimitiveScorer* primitive; + primitive = new G4PSEnergyDeposit("eDep",j); + det->RegisterPrimitive(primitive); + primitive = new G4PSNofSecondary("nGamma",j); + primitive->SetFilter(gammaFilter); + det->RegisterPrimitive(primitive); + primitive = new G4PSNofSecondary("nElectron",j); + primitive->SetFilter(electronFilter); + det->RegisterPrimitive(primitive); + primitive = new G4PSNofSecondary("nPositron",j); + primitive->SetFilter(positronFilter); + det->RegisterPrimitive(primitive); + primitive = new G4PSMinKinEAtGeneration("minEkinGamma",j); + primitive->SetFilter(gammaFilter); + det->RegisterPrimitive(primitive); + primitive = new G4PSMinKinEAtGeneration("minEkinElectron",j); + primitive->SetFilter(electronFilter); + det->RegisterPrimitive(primitive); + primitive = new G4PSMinKinEAtGeneration("minEkinPositron",j); + primitive->SetFilter(positronFilter); + det->RegisterPrimitive(primitive); + primitive = new G4PSTrackLength("trackLength",j); + primitive->SetFilter(epFilter); + det->RegisterPrimitive(primitive); + primitive = new G4PSNofStep("nStep",j); + primitive->SetFilter(epFilter); + det->RegisterPrimitive(primitive); + + G4SDManager::GetSDMpointer()->AddNewDetector(det); + if(j==0) + { layerLogical[i]->SetSensitiveDetector(det); } + else + { gapLogical[i]->SetSensitiveDetector(det); } + } + } } void ExN07DetectorConstruction::PrintCalorParameters() const @@ -263,8 +357,7 @@ void ExN07DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) if(pttoMaterial) { absorberMaterial = pttoMaterial; - gapParam->SetAbsorberMaterial(pttoMaterial); - for(size_t i=0;i<3;i++) + if(constructed) for(size_t i=0;i<3;i++) { calorLogical[i]->SetMaterial(absorberMaterial); layerLogical[i]->SetMaterial(absorberMaterial); @@ -284,7 +377,8 @@ void ExN07DetectorConstruction::SetGapMaterial(G4String materialChoice) if(pttoMaterial) { gapMaterial = pttoMaterial; - gapParam->SetGapMaterial(pttoMaterial); + if(constructed) for(size_t i=0;i<3;i++) + { gapLogical[i]->SetMaterial(absorberMaterial); } } else { G4cerr << materialChoice << " is not defined. - Command is ignored." << G4endl; } @@ -297,6 +391,10 @@ void ExN07DetectorConstruction::SetSerialGeometry(G4bool ser) { if(serial==ser) return; serial=ser; + ExN07PrimaryGeneratorAction* gen = (ExN07PrimaryGeneratorAction*) + (G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction()); + if(gen) gen->SetSerial(serial); + if(!constructed) return; for(G4int i=0;i<3;i++) { if(serial) @@ -304,49 +402,25 @@ void ExN07DetectorConstruction::SetSerialGeometry(G4bool ser) else { calorPhysical[i]->SetTranslation(G4ThreeVector(0.,G4double(i-1)*m,0.)); } } - ExN07PrimaryGeneratorAction* gen = (ExN07PrimaryGeneratorAction*) - G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction(); - gen->SetSerial(serial); G4RunManager::GetRunManager()->GeometryHasBeenModified(); } void ExN07DetectorConstruction::SetNumberOfLayers(G4int nl) { numberOfLayers = nl; - gapSolid->SetZHalfLength(1.*m/G4double(2*numberOfLayers)); - gapParam->SetNumberOfLayers(nl); + layerThickness = totalThickness/numberOfLayers; + if(!constructed) return; + + layerSolid->SetZHalfLength(layerThickness/2.); + gapSolid->SetZHalfLength(layerThickness/4.); for(size_t i=0;i<3;i++) { - if(layerPhysical[i]) - { - calorLogical[i]->RemoveDaughter(layerPhysical[i]); - delete layerPhysical[i]; - } - layerPhysical[i] = - new G4PVParameterised("Layer",layerLogical[i],calorLogical[i],kZAxis, - 2*numberOfLayers,gapParam); + calorLogical[i]->RemoveDaughter(layerPhysical[i]); + delete layerPhysical[i]; + layerPhysical[i] = new G4PVReplica(calName[i]+"_Layer",layerLogical[i],calorLogical[i],kZAxis, + numberOfLayers,layerThickness); + gapPhysical[i]->SetTranslation(G4ThreeVector(0.,0.,layerThickness/4.)); } - ExN07CalorimeterSD::SetNumberOfLayers(nl); G4RunManager::GetRunManager()->GeometryHasBeenModified(); } - -void ExN07DetectorConstruction::CreateMaterial(G4String materialChoice) -{ - if ( G4Material::GetMaterial(materialChoice) != 0) return; - - G4double a,z,density; - if (materialChoice == "Silicon"){ - new G4Material("Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); - - } else if (materialChoice =="Iron"){ - new G4Material("Iron", z=26., a=55.85*g/mole, density=7.87*g/cm3); - - } else if (materialChoice =="ArgonGas"){ - new G4Material("ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); - - } else if (materialChoice =="He"){ - new G4Material("He", z=2., a=4.0*g/mole, density=0.1786e-03*g/cm3); - - } -} diff --git a/examples/novice/N07/src/ExN07DetectorMessenger.cc b/examples/novice/N07/src/ExN07DetectorMessenger.cc index fb585686ba..18c11774ac 100644 --- a/examples/novice/N07/src/ExN07DetectorMessenger.cc +++ b/examples/novice/N07/src/ExN07DetectorMessenger.cc @@ -21,14 +21,13 @@ // ******************************************************************** // // -// $Id: ExN07DetectorMessenger.cc,v 1.3 2004/11/17 03:07:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07DetectorMessenger.cc,v 1.4 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN07DetectorMessenger.hh" #include "ExN07DetectorConstruction.hh" -#include "ExN07EventAction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithABool.hh" @@ -42,11 +41,6 @@ ExN07DetectorMessenger::ExN07DetectorMessenger( N07Dir = new G4UIdirectory("/N07/"); N07Dir->SetGuidance("UI commands of this example"); - AddMaterCmd = new G4UIcmdWithAString("/N07/addMat",this); - AddMaterCmd->SetGuidance("Add Material"); - AddMaterCmd->SetParameterName("choice",false); - AddMaterCmd->AvailableForStates(G4State_PreInit); - G4String matList; const G4MaterialTable* matTbl = G4Material::GetMaterialTable(); for(size_t i=0;iSetParameterName("serialize",false); SerialCmd->AvailableForStates(G4State_Idle); - verboseCmd = new G4UIcmdWithAnInteger("/N07/verbose", this); - verboseCmd->SetGuidance("Set verbosity of each event."); - verboseCmd->SetParameterName("vl",true,true); - verboseCmd->SetRange("vl>=0 && vl<10"); } ExN07DetectorMessenger::~ExN07DetectorMessenger() { - delete AddMaterCmd; delete AbsMaterCmd; delete GapMaterCmd; delete numLayerCmd; delete SerialCmd; - delete verboseCmd; delete N07Dir; } void ExN07DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { - if( command == AddMaterCmd ){ - ExN07Detector->CreateMaterial(newValue); - // update candidate list - G4String matList; - const G4MaterialTable* matTbl = G4Material::GetMaterialTable(); - for(size_t i=0;iGetName(); - matList += " "; - } - GapMaterCmd->SetCandidates(matList); - AbsMaterCmd->SetCandidates(matList); - - } else if( command == AbsMaterCmd ) { + if( command == AbsMaterCmd ) { ExN07Detector->SetAbsorberMaterial(newValue); } else if( command == GapMaterCmd ){ ExN07Detector->SetGapMaterial(newValue); } else if( command == numLayerCmd ) { - ExN07Detector->SetNumberOfLayers(numLayerCmd->GetNewIntValue(newValue)); + ExN07Detector->SetNumberOfLayers(numLayerCmd->GetNewIntValue(newValue)); } else if( command == SerialCmd ) { ExN07Detector->SetSerialGeometry(SerialCmd->GetNewBoolValue(newValue)); - - }else if( command == verboseCmd ) { - ExN07EventAction::SetVerboseLevel(verboseCmd->GetNewIntValue(newValue)); } } @@ -137,8 +110,6 @@ G4String ExN07DetectorMessenger::GetCurrentValue(G4UIcommand * command) { ans=numLayerCmd->ConvertToString(ExN07Detector->GetNumberOfLayers()); } else if( command == SerialCmd ) { ans=SerialCmd->ConvertToString(ExN07Detector->IsSerial()); } - else if( command == verboseCmd ) - { ans=verboseCmd->ConvertToString(ExN07EventAction::GetVerboseLevel()); } return ans; } diff --git a/examples/novice/N07/src/ExN07EventAction.cc b/examples/novice/N07/src/ExN07EventAction.cc deleted file mode 100644 index b1646d6338..0000000000 --- a/examples/novice/N07/src/ExN07EventAction.cc +++ /dev/null @@ -1,149 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: ExN07EventAction.cc,v 1.5 2003/06/16 16:50:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// - -#include "ExN07EventAction.hh" - -#include "ExN07CalorHit.hh" -#include "ExN07StackingAction.hh" - -#include "G4Event.hh" -#include "G4EventManager.hh" -#include "G4HCofThisEvent.hh" -#include "G4VHitsCollection.hh" -#include "G4TrajectoryContainer.hh" -#include "G4Trajectory.hh" -#include "G4VVisManager.hh" -#include "G4SDManager.hh" -#include "G4UImanager.hh" -#include "G4ios.hh" -#include "G4UnitsTable.hh" - -G4int ExN07EventAction::verboseLevel=0; - -ExN07EventAction::ExN07EventAction() -{ - for(size_t i=0;i<6;i++) - { calorimeterCollID[i] = -1; } -} - -ExN07EventAction::~ExN07EventAction() -{;} - -void ExN07EventAction::BeginOfEventAction(const G4Event*) -{ - for(size_t i=0;i<6;i++) - { - if(calorimeterCollID[i]==-1) - { - G4String colName; - switch(i) - { - case 0: - colName = "CalorSD-A/AbsCollection"; break; - case 1: - colName = "CalorSD-A/GapCollection"; break; - case 2: - colName = "CalorSD-B/AbsCollection"; break; - case 3: - colName = "CalorSD-B/GapCollection"; break; - case 4: - colName = "CalorSD-C/AbsCollection"; break; - case 5: - colName = "CalorSD-C/GapCollection"; break; - } - calorimeterCollID[i] = - G4SDManager::GetSDMpointer()->GetCollectionID(colName); - } - } -} - -void ExN07EventAction::EndOfEventAction(const G4Event* evt) -{ - if(verboseLevel==0) return; - if(evt->GetEventID()>4 && (evt->GetEventID())%10>(verboseLevel-1)) return; - - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - if(!HCE) return; - G4cout << G4endl << "Event : " << evt->GetEventID() << G4endl; - - ExN07CalorHitsCollection* CHC = 0; - for(size_t i=0;i<6;i++) - { - G4double totE=0.; - G4double totL=0.; - G4int nStep=0; - - if (HCE) CHC = (ExN07CalorHitsCollection*)(HCE->GetHC(calorimeterCollID[i])); - if (CHC) - { - G4int nHit = CHC->entries(); - for (G4int ii=0;iiGetEdep(); - totL += (*CHC)[ii]->GetTrak(); - nStep += (*CHC)[ii]->GetNStep(); - } - } - - switch(i) - { - case 0: - G4cout << "Calor-A : Absorber" << G4endl; break; - case 1: - G4cout << "Calor-A : SensitiveGap" << G4endl; break; - case 2: - G4cout << "Calor-B : Absorber" << G4endl; break; - case 3: - G4cout << "Calor-B : SensitiveGap" << G4endl; break; - case 4: - G4cout << "Calor-C : Absorber" << G4endl; break; - case 5: - G4cout << "Calor-C : SensitiveGap" << G4endl; break; - } - G4cout - << " total energy deposition : " << std::setw(7) - << G4BestUnit(totE,"Energy") << G4endl; - G4cout - << " number of particles generated :" << G4endl - << " gamma " << ExN07StackingAction::GetNGamma(i) - << " e- " << ExN07StackingAction::GetNElectron(i) - << " e+ " << ExN07StackingAction::GetNPositron(i) << G4endl; - G4cout - << " minimum kinetic energy of generated secondaries :" << G4endl << std::setw(7) - << " gamma " << G4BestUnit(ExN07StackingAction::GetEMinGamma(i),"Energy") - << " e- " << G4BestUnit(ExN07StackingAction::GetEMinElectron(i),"Energy") - << " e+ " << G4BestUnit(ExN07StackingAction::GetEMinPositron(i),"Energy") - << G4endl; - G4cout - << " total track length of e+/e- : " << std::setw(7) - << G4BestUnit(totL,"Length") << G4endl; - G4cout - << " number of steps of e+/e- : " << nStep - << G4endl; - } -} - diff --git a/examples/novice/N07/src/ExN07PhysicsList.cc b/examples/novice/N07/src/ExN07PhysicsList.cc index f7f3938841..09953afaee 100644 --- a/examples/novice/N07/src/ExN07PhysicsList.cc +++ b/examples/novice/N07/src/ExN07PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07PhysicsList.cc,v 1.4 2003/10/24 12:42:10 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07PhysicsList.cc,v 1.5 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN07PhysicsList.hh" diff --git a/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc b/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc index 21817655ea..7817866ed7 100644 --- a/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc +++ b/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07PrimaryGeneratorAction.cc,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07PrimaryGeneratorAction.cc,v 1.2 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN07PrimaryGeneratorAction.hh" diff --git a/examples/novice/N07/src/ExN07Run.cc b/examples/novice/N07/src/ExN07Run.cc index e48dc0a986..8019b04fbd 100644 --- a/examples/novice/N07/src/ExN07Run.cc +++ b/examples/novice/N07/src/ExN07Run.cc @@ -21,32 +21,35 @@ // ******************************************************************** // // -// $Id: ExN07Run.cc,v 1.3 2003/04/09 23:20:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07Run.cc,v 1.4 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN07Run.hh" -#include "ExN07CalorHit.hh" -#include "ExN07StackingAction.hh" - #include "G4Event.hh" #include "G4HCofThisEvent.hh" - -G4Allocator anExN07RunAllocator; +#include "G4SDManager.hh" ExN07Run::ExN07Run() { + G4String detName[6] = {"Calor-A_abs","Calor-A_gap","Calor-B_abs","Calor-B_gap","Calor-C_abs","Calor-C_gap"}; + G4String primNameSum[6] = {"eDep","nGamma","nElectron","nPositron","trackLength","nStep"}; + G4String primNameMin[3] = {"minEkinGamma","minEkinElectron","minEkinPositron"}; + + G4SDManager* SDMan = G4SDManager::GetSDMpointer(); + G4String fullName; for(size_t i=0;i<6;i++) { - totE[i] = 0.; - totL[i] = 0.; - nStep[i] = 0; - nGamma[i] = 0; - nElectron[i] = 0; - nPositron[i] = 0; - eMinGamma[i] = DBL_MAX; - eMinElectron[i] = DBL_MAX; - eMinPositron[i] = DBL_MAX; + for(size_t j=0;j<6;j++) + { + fullName = detName[i]+"/"+primNameSum[j]; + colIDSum[i][j] = SDMan->GetCollectionID(fullName); + } + for(size_t k=0;k<3;k++) + { + fullName = detName[i]+"/"+primNameMin[k]; + colIDMin[i][k] = SDMan->GetCollectionID(fullName); + } } } @@ -58,33 +61,46 @@ void ExN07Run::RecordEvent(const G4Event* evt) G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); if(!HCE) return; numberOfEvent++; - for(int j=0;j<6;j++) - { - nGamma[j] += ExN07StackingAction::GetNGamma(j); - nElectron[j] += ExN07StackingAction::GetNElectron(j); - nPositron[j] += ExN07StackingAction::GetNPositron(j); - if(eMinGamma[j]>ExN07StackingAction::GetEMinGamma(j)) - { eMinGamma[j] = ExN07StackingAction::GetEMinGamma(j); } - if(eMinElectron[j]>ExN07StackingAction::GetEMinElectron(j)) - { eMinElectron[j] = ExN07StackingAction::GetEMinElectron(j); } - if(eMinPositron[j]>ExN07StackingAction::GetEMinPositron(j)) - { eMinPositron[j] = ExN07StackingAction::GetEMinPositron(j); } - } - ExN07CalorHitsCollection* CHC = 0; for(size_t i=0;i<6;i++) { - if (HCE) CHC = (ExN07CalorHitsCollection*)(HCE->GetHC(i)); - if (CHC) + for(size_t j=0;j<6;j++) { - G4int nHit = CHC->entries(); - for (G4int ii=0;ii* evtMap = (G4THitsMap*)(HCE->GetHC(colIDSum[i][j])); + mapSum[i][j] += *evtMap; + } + for(size_t k=0;k<3;k++) + { + G4THitsMap* evtMap = (G4THitsMap*)(HCE->GetHC(colIDMin[i][k])); + std::map::iterator itr = evtMap->GetMap()->begin(); + for(; itr != evtMap->GetMap()->end(); itr++) { - totE[i] += (*CHC)[ii]->GetEdep(); - totL[i] += (*CHC)[ii]->GetTrak(); - nStep[i] += (*CHC)[ii]->GetNStep(); + G4int key = (itr->first); + G4double val = *(itr->second); + G4double* mapP = mapMin[i][k][key]; + if( mapP && (val>*mapP) ) continue; + mapMin[i][k].set(key,val); } } } } +G4double ExN07Run::GetTotal(const G4THitsMap &map) const +{ + G4double tot = 0.; + std::map::iterator itr = map.GetMap()->begin(); + for(; itr != map.GetMap()->end(); itr++) + { tot += *(itr->second); } + return tot; +} + +G4double ExN07Run::FindMinimum(const G4THitsMap &map) const +{ + G4double val = DBL_MAX; + std::map::iterator itr = map.GetMap()->begin(); + for(; itr != map.GetMap()->end(); itr++) + { if(val>*(itr->second)) val = *(itr->second); } + return val; +} + + diff --git a/examples/novice/N07/src/ExN07RunAction.cc b/examples/novice/N07/src/ExN07RunAction.cc index 814f942336..8c66198445 100644 --- a/examples/novice/N07/src/ExN07RunAction.cc +++ b/examples/novice/N07/src/ExN07RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07RunAction.cc,v 1.3 2003/04/09 23:20:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ExN07RunAction.cc,v 1.4 2005/11/22 22:20:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "ExN07RunAction.hh" diff --git a/examples/novice/N07/src/ExN07StackingAction.cc b/examples/novice/N07/src/ExN07StackingAction.cc deleted file mode 100644 index c537e54472..0000000000 --- a/examples/novice/N07/src/ExN07StackingAction.cc +++ /dev/null @@ -1,97 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - -#include "ExN07StackingAction.hh" -#include "G4Track.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTypes.hh" -#include "G4TouchableHistory.hh" -#include "G4VPhysicalVolume.hh" -#include "G4VProcess.hh" - -G4int ExN07StackingAction::nGamma[6] = {0,0,0,0,0,0}; -G4int ExN07StackingAction::nElectron[6] = {0,0,0,0,0,0}; -G4int ExN07StackingAction::nPositron[6] = {0,0,0,0,0,0}; -G4double ExN07StackingAction::eMinGamma[6] = {DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX}; -G4double ExN07StackingAction::eMinElectron[6] = {DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX}; -G4double ExN07StackingAction::eMinPositron[6] = {DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX,DBL_MAX}; - -ExN07StackingAction::ExN07StackingAction() -{;} - -ExN07StackingAction::~ExN07StackingAction() -{;} - -G4ClassificationOfNewTrack -ExN07StackingAction::ClassifyNewTrack(const G4Track * aTrack) -{ - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aTrack->GetTouchable()); - if(theTouchable&&theTouchable->GetHistoryDepth()>1) - { - G4VPhysicalVolume* calPhys = theTouchable->GetVolume(1); - if(calPhys) - { - G4int i = 0; - if(calPhys->GetName()=="Cal-B") { i = 2; } - else if(calPhys->GetName()=="Cal-C") { i = 4; } - G4int layerNumber = theTouchable->GetReplicaNumber(); - i += layerNumber%2; - G4ParticleDefinition * particleType = aTrack->GetDefinition(); - if(particleType==G4Gamma::GammaDefinition()) - { - nGamma[i]++; - if(eMinGamma[i]>aTrack->GetKineticEnergy()) - { eMinGamma[i]=aTrack->GetKineticEnergy(); } - } - else if(particleType==G4Electron::ElectronDefinition()) - { - nElectron[i]++; - if(eMinElectron[i]>aTrack->GetKineticEnergy()) - { eMinElectron[i]=aTrack->GetKineticEnergy(); } - } - else if(particleType==G4Positron::PositronDefinition()) - { - nPositron[i]++; - if(eMinPositron[i]>aTrack->GetKineticEnergy()) - { eMinPositron[i]=aTrack->GetKineticEnergy(); } - } - } - } - return fUrgent; -} - -void ExN07StackingAction::PrepareNewEvent() -{ - for(int i=0;i<6;i++) - { - nGamma[i] = 0; - nElectron[i] = 0; - nPositron[i] = 0; - eMinGamma[i] = DBL_MAX; - eMinElectron[i] = DBL_MAX; - eMinPositron[i] = DBL_MAX; - } -} - - diff --git a/physics_lists/History b/physics_lists/History index 452c619037..0fc06c1c9a 100644 --- a/physics_lists/History +++ b/physics_lists/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ +$Id: History,v 1.3 2005/12/03 14:35:25 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +02.12.2005, G.Folger & V.Ivantchenko - phys-lists-V07-01-01 +- Includes tags: emphys-V07-01-01 and hadr-lists-V07-01-02. +- Implemented migration of physics lists to non static particles scheme. + +02.08.2005, G.Cosmo - phys-lists-V07-01-00 +- Corrected README of hadronic lists for build instructions. + 13.12.2004, G.Cosmo - phys-lists-V06-02-00 - Imported hadronic lists and electromagnetic lists from top-level. - Created. diff --git a/physics_lists/electromagnetic/History b/physics_lists/electromagnetic/History index d2f41dd3e5..18815a53da 100644 --- a/physics_lists/electromagnetic/History +++ b/physics_lists/electromagnetic/History @@ -1,4 +1,4 @@ -$Id: History,v 1.2 2005/05/04 16:41:53 vnivanch Exp $ +$Id: History,v 1.5 2005/12/06 15:26:39 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,12 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +06-12-05 V.Ivanchenko (emphys-V07-01-02) +- Use the same list of hadrons for hIoni and msc as hadronic Physics List + +02-12-05 V.Ivanchenko (emphys-V07-01-01) +- Fix problem of non-static particles + 04-05-05 V.Ivanchenko (emphys-V07-00-00) - Change gamma and e+ classes in G4EmQEDBuilder52 diff --git a/physics_lists/electromagnetic/README b/physics_lists/electromagnetic/README index 3b36323807..9aad9503e8 100644 --- a/physics_lists/electromagnetic/README +++ b/physics_lists/electromagnetic/README @@ -1,4 +1,4 @@ -$Id: README,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ +$Id: README,v 1.2 2005/12/02 18:48:06 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -19,7 +19,8 @@ $Id: README,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ The following modules can be activated: 1. "standard" - (alternative) standard EM physics (current version) - 2. "standard70" - (alternative) standard EM physics (development version) + 2. "standard71" - (alternative) standard EM physics with multiple + scattering process version from G4 7.1p01 3. "g4v52" - (alternative) standard EM physics (version G4 5.2p02) 4. "high_energy" - add high energy processes 5. "step_limit" - add step limit for charged particles @@ -45,4 +46,5 @@ $Id: README,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ The direct test of this PhysicsList is performed in the example examples/extended/electromagnetic/TestEm2, TestEm9 + example/extended/medical/GammaTherapy diff --git a/physics_lists/electromagnetic/standard/DecaysBuilder.cc b/physics_lists/electromagnetic/standard/DecaysBuilder.cc index ccaa87207d..9d2b48ca15 100644 --- a/physics_lists/electromagnetic/standard/DecaysBuilder.cc +++ b/physics_lists/electromagnetic/standard/DecaysBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.cc,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/DecaysBuilder.hh b/physics_lists/electromagnetic/standard/DecaysBuilder.hh index 2538ce1a2e..e09e967669 100644 --- a/physics_lists/electromagnetic/standard/DecaysBuilder.hh +++ b/physics_lists/electromagnetic/standard/DecaysBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: DecaysBuilder.hh,v 1.1 2004/12/13 16:38:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder.cc b/physics_lists/electromagnetic/standard/G4EmHadronBuilder.cc index 20c6b055b5..f291e25b46 100644 --- a/physics_lists/electromagnetic/standard/G4EmHadronBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EmHadronBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmHadronBuilder.cc,v 1.2 2005/12/06 15:26:39 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -90,9 +90,24 @@ void G4EmHadronBuilder::ConstructProcess() pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4ionIonisation, -1, 2,2); - } else if ((!particle->IsShortLived()) && - (particle->GetPDGCharge() != 0.0) && - (particle->GetParticleName() != "chargedgeantino")) { + } else if (particleName == "anti_omega-" || + particleName == "anti_proton" || + particleName == "anti_sigma+" || + particleName == "anti_sigma-" || + particleName == "anti_xi-" || + particleName == "deuteron" || + particleName == "kaon+" || + particleName == "kaon-" || + particleName == "omega-" || + particleName == "pi+" || + particleName == "pi-" || + particleName == "proton" || + particleName == "sigma+" || + particleName == "sigma-" || + particleName == "tau+" || + particleName == "tau-" || + particleName == "triton" || + particleName == "xi-" ) { pmanager->AddProcess(new G4MultipleScattering,-1,1,1); pmanager->AddProcess(new G4hIonisation, -1,2,2); diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder.hh b/physics_lists/electromagnetic/standard/G4EmHadronBuilder.hh index c034c8baf9..8e03cf8565 100644 --- a/physics_lists/electromagnetic/standard/G4EmHadronBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.cc b/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.cc index d9a481a943..271acb86b5 100644 --- a/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.cc +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.hh b/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.hh index d2569e54e9..43ab8816fb 100644 --- a/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.hh +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHadronBuilder52.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder71.cc b/physics_lists/electromagnetic/standard/G4EmHadronBuilder71.cc new file mode 100644 index 0000000000..dfd9beb7b1 --- /dev/null +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder71.cc @@ -0,0 +1,122 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmHadronBuilder71.cc,v 1.2 2005/12/06 15:26:39 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmHadronBuilder71 +// +// Author: V.Ivanchenko 03.10.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4EmHadronBuilder71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +#include "G4Electron.hh" +#include "G4Proton.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmHadronBuilder71::G4EmHadronBuilder71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmHadronBuilder71::~G4EmHadronBuilder71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmHadronBuilder71::ConstructParticle() +{ + G4Electron::Electron(); + G4Proton::Proton(); + G4GenericIon::GenericIon(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmHadronBuilder71::ConstructProcess() +{ + // Add standard EM Processes + theParticleIterator->reset(); + + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + + if(particle->GetPDGMass() > 110.*MeV) { + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "GenericIon" || + particleName == "alpha" || + particleName == "He3") { + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); + + } else if (particleName == "anti_omega-" || + particleName == "anti_proton" || + particleName == "anti_sigma+" || + particleName == "anti_sigma-" || + particleName == "anti_xi-" || + particleName == "deuteron" || + particleName == "kaon+" || + particleName == "kaon-" || + particleName == "omega-" || + particleName == "pi+" || + particleName == "pi-" || + particleName == "proton" || + particleName == "sigma+" || + particleName == "sigma-" || + particleName == "tau+" || + particleName == "tau-" || + particleName == "triton" || + particleName == "xi-" ) { + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4hIonisation, -1, 2, 2); + } + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/physics_lists/electromagnetic/standard/G4EmHadronBuilder71.hh b/physics_lists/electromagnetic/standard/G4EmHadronBuilder71.hh new file mode 100644 index 0000000000..b0b0511012 --- /dev/null +++ b/physics_lists/electromagnetic/standard/G4EmHadronBuilder71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmHadronBuilder71.hh,v 1.1 2005/10/03 01:40:34 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4EmHadronBuilder71_h +#define G4EmHadronBuilder71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmHadronBuilder71 : public G4VPhysicsConstructor +{ +public: + G4EmHadronBuilder71(const G4String& name = "EM_stand_had"); + virtual ~G4EmHadronBuilder71(); + +public: + // This method is dummy for physics + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + +private: + + // hide assignment operator + G4EmHadronBuilder71 & operator=(const G4EmHadronBuilder71 &right); + G4EmHadronBuilder71(const G4EmHadronBuilder71&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.cc b/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.cc index e8d27e6441..a21b0f215e 100644 --- a/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmHighEnergyBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.hh b/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.hh index 44374d1bb0..f1464aed3b 100644 --- a/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4EmHighEnergyBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmHighEnergyBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder.cc b/physics_lists/electromagnetic/standard/G4EmMuonBuilder.cc index 820f7a5525..b010084ca0 100644 --- a/physics_lists/electromagnetic/standard/G4EmMuonBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder.hh b/physics_lists/electromagnetic/standard/G4EmMuonBuilder.hh index 96f53caa8c..0fabe1105c 100644 --- a/physics_lists/electromagnetic/standard/G4EmMuonBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.cc b/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.cc index b69ad840a1..eaf0d21a48 100644 --- a/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.cc +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.cc,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.hh b/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.hh index b0462b7530..6d38774e2d 100644 --- a/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.hh +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmMuonBuilder52.hh,v 1.1 2004/12/13 16:38:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder71.cc b/physics_lists/electromagnetic/standard/G4EmMuonBuilder71.cc new file mode 100644 index 0000000000..8ad1854c45 --- /dev/null +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder71.cc @@ -0,0 +1,105 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmMuonBuilder71.cc,v 1.2 2005/12/06 15:26:39 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmMuonBuilder71 +// +// Author: V.Ivanchenko 03.10.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4EmMuonBuilder71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmMuonBuilder71::G4EmMuonBuilder71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmMuonBuilder71::~G4EmMuonBuilder71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmMuonBuilder71::ConstructParticle() +{ + // Minimal set of particles + G4Gamma::Gamma(); + G4Electron::Electron(); + G4Positron::Positron(); + G4MuonPlus::MuonPlus(); + G4MuonMinus::MuonMinus(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmMuonBuilder71::ConstructProcess() +{ + // Add standard EM Processes for mu+ + const G4ParticleDefinition* particle = G4MuonPlus::MuonPlus(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering71,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1, 4); + + + // Add standard EM Processes for mu- + particle = G4MuonMinus::MuonMinus(); + pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering71,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1, 4); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/physics_lists/electromagnetic/standard/G4EmMuonBuilder71.hh b/physics_lists/electromagnetic/standard/G4EmMuonBuilder71.hh new file mode 100644 index 0000000000..3c37a4223f --- /dev/null +++ b/physics_lists/electromagnetic/standard/G4EmMuonBuilder71.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmMuonBuilder71.hh,v 1.1 2005/10/03 01:40:34 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4EmMuonBuilder71_h +#define G4EmMuonBuilder71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmMuonBuilder71 : public G4VPhysicsConstructor +{ +public: + G4EmMuonBuilder71(const G4String& name = "EM_stan_muons"); + virtual ~G4EmMuonBuilder71(); + +public: + // This method is dummy for physics + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + +private: + + // hide assignment operator + G4EmMuonBuilder71 & operator=(const G4EmMuonBuilder71 &right); + G4EmMuonBuilder71(const G4EmMuonBuilder71&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder.cc b/physics_lists/electromagnetic/standard/G4EmQEDBuilder.cc index 7a02556330..d3855085f1 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder.hh b/physics_lists/electromagnetic/standard/G4EmQEDBuilder.hh index f420d7ecea..4135e3aeca 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.cc b/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.cc index a71207b678..da19480d64 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.cc +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.cc @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.cc,v 1.2 2005/05/04 16:41:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.hh b/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.hh index 5bd0123e27..4d4f4e3f12 100644 --- a/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.hh +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder52.hh @@ -22,7 +22,7 @@ // // // $Id: G4EmQEDBuilder52.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder71.cc b/physics_lists/electromagnetic/standard/G4EmQEDBuilder71.cc new file mode 100644 index 0000000000..5e33c82036 --- /dev/null +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder71.cc @@ -0,0 +1,111 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmQEDBuilder71.cc,v 1.1 2005/10/03 01:40:34 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmQEDBuilder71 +// +// Author: V.Ivanchenko 03.10.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4EmQEDBuilder71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmQEDBuilder71::G4EmQEDBuilder71(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmQEDBuilder71::~G4EmQEDBuilder71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmQEDBuilder71::ConstructParticle() +{ + G4Gamma::Gamma(); + G4Electron::Electron(); + G4Positron::Positron(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmQEDBuilder71::ConstructProcess() +{ + // Add standard EM Processes for gamma + G4ParticleDefinition* particle = G4Gamma::Gamma(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + pmanager->AddDiscreteProcess( new G4PhotoElectricEffect() ); + pmanager->AddDiscreteProcess( new G4ComptonScattering() ); + pmanager->AddDiscreteProcess( new G4GammaConversion() ); + + // Add standard EM Processes for e- + particle = G4Electron::Electron(); + pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1, 3); + + // Add standard EM Processes for e+ + particle = G4Positron::Positron(); + pmanager = particle->GetProcessManager(); + + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1, 3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/physics_lists/electromagnetic/standard/G4EmQEDBuilder71.hh b/physics_lists/electromagnetic/standard/G4EmQEDBuilder71.hh new file mode 100644 index 0000000000..f1ee475dc7 --- /dev/null +++ b/physics_lists/electromagnetic/standard/G4EmQEDBuilder71.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmQEDBuilder71.hh,v 1.1 2005/10/03 01:40:34 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4EmQEDBuilder71_h +#define G4EmQEDBuilder71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmQEDBuilder71 : public G4VPhysicsConstructor +{ +public: + G4EmQEDBuilder71(const G4String& name = "EM_stan_QED"); + virtual ~G4EmQEDBuilder71(); + +public: + // This method is dummy for physics + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + +private: + + // hide assignment operator + G4EmQEDBuilder71 & operator=(const G4EmQEDBuilder71 &right); + G4EmQEDBuilder71(const G4EmQEDBuilder71&); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.cc b/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.cc index 8c2e133878..77f55c5774 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.cc +++ b/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.cc,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.hh b/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.hh index 74df3c831d..9062f5a6e6 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.hh +++ b/physics_lists/electromagnetic/standard/G4StepLimiterBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiterBuilder.hh,v 1.1 2004/12/13 16:38:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.cc b/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.cc index 6bc1ff5dd1..9c20098450 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.cc +++ b/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.hh b/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.hh index 3a03aeafef..f4a4f4abcd 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.hh +++ b/physics_lists/electromagnetic/standard/G4StepLimiterMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterMessenger.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.cc b/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.cc index e5e58f1c94..9ad6bc0f1d 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.cc +++ b/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.hh b/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.hh index dc2e330cc4..b337f23f66 100644 --- a/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.hh +++ b/physics_lists/electromagnetic/standard/G4StepLimiterPerRegion.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4StepLimiterPerRegion.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/ParticlesBuilder.cc b/physics_lists/electromagnetic/standard/ParticlesBuilder.cc index 135027177b..e64633c1d9 100644 --- a/physics_lists/electromagnetic/standard/ParticlesBuilder.cc +++ b/physics_lists/electromagnetic/standard/ParticlesBuilder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ParticlesBuilder.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: ParticlesBuilder.cc,v 1.2 2005/12/02 17:35:10 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -57,34 +57,10 @@ #include "G4NeutrinoE.hh" #include "G4AntiNeutrinoE.hh" -// Mesons -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" -#include "G4Eta.hh" -#include "G4EtaPrime.hh" - -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4KaonZero.hh" -#include "G4AntiKaonZero.hh" -#include "G4KaonZeroLong.hh" -#include "G4KaonZeroShort.hh" - -// Baryons -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4Neutron.hh" -#include "G4AntiNeutron.hh" - -// Nuclei -#include "G4Alpha.hh" -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4He3.hh" -#include "G4GenericIon.hh" - -//#include "IonC12.hh" +// Hadrons +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -124,31 +100,16 @@ void ParticlesBuilder::ConstructParticle() G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4EtaPrime::EtaPrimeDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); + G4MesonConstructor mConstructor; + mConstructor.ConstructParticle(); // barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); + G4BaryonConstructor bConstructor; + bConstructor.ConstructParticle(); // ions - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); - G4He3::He3Definition(); - G4Alpha::AlphaDefinition(); - G4GenericIon::GenericIonDefinition(); -// IonC12::IonDefinition(); + G4IonConstructor iConstructor; + iConstructor.ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/ParticlesBuilder.hh b/physics_lists/electromagnetic/standard/ParticlesBuilder.hh index 911ce3fb65..ad1af27a8a 100644 --- a/physics_lists/electromagnetic/standard/ParticlesBuilder.hh +++ b/physics_lists/electromagnetic/standard/ParticlesBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: ParticlesBuilder.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/PhysicsList.cc b/physics_lists/electromagnetic/standard/PhysicsList.cc index a551da4890..641506d39b 100644 --- a/physics_lists/electromagnetic/standard/PhysicsList.cc +++ b/physics_lists/electromagnetic/standard/PhysicsList.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: PhysicsList.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: PhysicsList.cc,v 1.2 2005/10/03 01:40:34 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -29,7 +29,8 @@ // // Author: V.Ivanchenko 03.05.2004 // -// Modified: +// Modified: +// 03-10-05 Add Builders 71 (V.Ivanchenko) // //---------------------------------------------------------------------------- // @@ -44,9 +45,11 @@ #include "G4EmQEDBuilder.hh" #include "G4EmMuonBuilder.hh" #include "G4EmHadronBuilder.hh" +#include "G4EmQEDBuilder71.hh" +#include "G4EmMuonBuilder71.hh" +#include "G4EmHadronBuilder71.hh" #include "G4EmHighEnergyBuilder.hh" #include "G4EmQEDBuilder52.hh" -#include "G4EmQEDBuilder70.hh" #include "G4EmMuonBuilder52.hh" #include "G4EmHadronBuilder52.hh" #include "G4StepLimiterBuilder.hh" @@ -92,6 +95,7 @@ void PhysicsList::ConstructParticle() { if(verbose > 0) G4cout << "Construte Particles" << G4endl; + G4VModularPhysicsList::ConstructParticle(); } @@ -137,10 +141,10 @@ void PhysicsList::AddPhysicsList(const G4String& name) emBuilderIsRegisted = true; G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; - } else if (name == "standard70" && !emBuilderIsRegisted) { - RegisterPhysics(new G4EmQEDBuilder70()); - RegisterPhysics(new G4EmMuonBuilder()); - RegisterPhysics(new G4EmHadronBuilder()); + } else if (name == "g4v71" && !emBuilderIsRegisted) { + RegisterPhysics(new G4EmQEDBuilder71()); + RegisterPhysics(new G4EmMuonBuilder71()); + RegisterPhysics(new G4EmHadronBuilder71()); emBuilderIsRegisted = true; G4cout << "PhysicsList::AddPhysicsList <" << name << ">" << G4endl; diff --git a/physics_lists/electromagnetic/standard/PhysicsList.hh b/physics_lists/electromagnetic/standard/PhysicsList.hh index 186ab28aa7..7b4feeaf88 100644 --- a/physics_lists/electromagnetic/standard/PhysicsList.hh +++ b/physics_lists/electromagnetic/standard/PhysicsList.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsList.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Modified: // diff --git a/physics_lists/electromagnetic/standard/PhysicsListMessenger.cc b/physics_lists/electromagnetic/standard/PhysicsListMessenger.cc index cf7f195787..f8b34e8dcc 100644 --- a/physics_lists/electromagnetic/standard/PhysicsListMessenger.cc +++ b/physics_lists/electromagnetic/standard/PhysicsListMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.cc,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/electromagnetic/standard/PhysicsListMessenger.hh b/physics_lists/electromagnetic/standard/PhysicsListMessenger.hh index 1881dd2607..4fbd7d6b1f 100644 --- a/physics_lists/electromagnetic/standard/PhysicsListMessenger.hh +++ b/physics_lists/electromagnetic/standard/PhysicsListMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: PhysicsListMessenger.hh,v 1.1 2004/12/13 16:38:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/hadronic/FTFC/include/FTFC.hh b/physics_lists/hadronic/FTFC/include/FTFC.hh index dd4026b53a..dddd6b4213 100644 --- a/physics_lists/hadronic/FTFC/include/FTFC.hh +++ b/physics_lists/hadronic/FTFC/include/FTFC.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: FTFC.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 05.12.2005 V.Ivanchenko add controlled verbosity +// +//---------------------------------------------------------------------------- +// #ifndef TTFTFC_h #define TTFTFC_h 1 @@ -31,7 +45,7 @@ template class TFTFC: public T { public: - TFTFC(); + TFTFC(G4int ver = 1); virtual ~TFTFC(); public: diff --git a/physics_lists/hadronic/FTFC/include/FTFC.icc b/physics_lists/hadronic/FTFC/include/FTFC.icc index 7c1d3baa79..3372c92044 100644 --- a/physics_lists/hadronic/FTFC/include/FTFC.icc +++ b/physics_lists/hadronic/FTFC/include/FTFC.icc @@ -20,7 +20,24 @@ // * statement, and all its terms. * // ******************************************************************** // - +// $Id: FTFC.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 28.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// 02.12.2005 V.Ivanchenko: rename components +// 05.12.2005 V.Ivanchenko add controlled verbosity +// +//---------------------------------------------------------------------------- +// + #include "globals.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" @@ -34,40 +51,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" #include "G4DataQuestionaire.hh" #include "HadronPhysicsFTFC.hh" -#include "HadronPhysicsFTFC.hh" -template TFTFC::TFTFC(): T() +template TFTFC::TFTFC(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: FTFC 2.8"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM", ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay", ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsFTFC("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -85,8 +100,8 @@ template void TFTFC::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - +// if (this->verboseLevel > 0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/FTFC/include/HadronPhysicsFTFC.hh b/physics_lists/hadronic/FTFC/include/HadronPhysicsFTFC.hh index be4548deb7..9a958a0802 100644 --- a/physics_lists/hadronic/FTFC/include/HadronPhysicsFTFC.hh +++ b/physics_lists/hadronic/FTFC/include/HadronPhysicsFTFC.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsFTFC.hh,v 1.2 2005/11/29 16:59:40 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsFTFC_h #define HadronPhysicsFTFC_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -54,21 +67,21 @@ class HadronPhysicsFTFC : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4FTFCNeutronBuilder theFTFCNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4FTFCNeutronBuilder * theFTFCNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4FTFCPiKBuilder theFTFCPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4FTFCPiKBuilder * theFTFCPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4FTFCProtonBuilder theFTFCPro; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4FTFCProtonBuilder * theFTFCPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/FTFC/src/HadronPhysicsFTFC.cc b/physics_lists/hadronic/FTFC/src/HadronPhysicsFTFC.cc index 79dc43cf6b..6b5b9f29e1 100644 --- a/physics_lists/hadronic/FTFC/src/HadronPhysicsFTFC.cc +++ b/physics_lists/hadronic/FTFC/src/HadronPhysicsFTFC.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsFTFC.cc,v 1.2 2005/11/29 16:59:40 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 28.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsFTFC.hh" #include "globals.hh" @@ -34,21 +48,46 @@ HadronPhysicsFTFC::HadronPhysicsFTFC(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theFTFCNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); +{} - thePro.RegisterMe(&theFTFCPro); - thePro.RegisterMe(&theLEPPro); - theLEPPro.SetMaxEnergy(25*GeV); +void HadronPhysicsFTFC::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theFTFCNeutron=new G4FTFCNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theFTFCPro=new G4FTFCProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMaxEnergy(25*GeV); - thePiK.RegisterMe(&theFTFCPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theFTFCPiK=new G4FTFCPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsFTFC::~HadronPhysicsFTFC() {} +HadronPhysicsFTFC::~HadronPhysicsFTFC() +{ + delete theNeutrons; + delete theLEPNeutron; + delete theFTFCNeutron; + + delete thePiK; + delete theLEPPiK; + delete theFTFCPiK; + + delete thePro; + delete theLEPPro; + delete theFTFCPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsFTFC::ConstructParticle() { @@ -65,11 +104,11 @@ void HadronPhysicsFTFC::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsFTFC::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/FTFC/templ.html b/physics_lists/hadronic/FTFC/templ.html deleted file mode 100644 index 27966ca977..0000000000 --- a/physics_lists/hadronic/FTFC/templ.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The @@@ physics list. -

-
-Click - here to down-load the source code of @@@ Version @.@ -
-Click - here to down-load the Packaging re-use library 1.2 -

- The LHEP physics list models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/FTFP/include/FTFP.hh b/physics_lists/hadronic/FTFP/include/FTFP.hh index 444cf6f5e2..ff94a3b2a4 100644 --- a/physics_lists/hadronic/FTFP/include/FTFP.hh +++ b/physics_lists/hadronic/FTFP/include/FTFP.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: FTFP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TFTFP_h #define TFTFP_h 1 @@ -31,7 +44,7 @@ template class TFTFP: public T { public: - TFTFP(); + TFTFP(G4int ver = 1); virtual ~TFTFP(); public: diff --git a/physics_lists/hadronic/FTFP/include/FTFP.icc b/physics_lists/hadronic/FTFP/include/FTFP.icc index 7316eff3d2..0bcb90146b 100644 --- a/physics_lists/hadronic/FTFP/include/FTFP.icc +++ b/physics_lists/hadronic/FTFP/include/FTFP.icc @@ -20,6 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: FTFP.icc,v 1.7 2005/12/15 20:57:53 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 28.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// 02.12.2005 V.Ivanchenko: rename components +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,39 +50,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsFTFP.hh" -template TFTFP::TFTFP(): T() +template TFTFP::TFTFP(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: FTFP 2.8"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsFTFP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - - + this->RegisterPhysics( new G4IonPhysics("ion")); } template TFTFP::~TFTFP() @@ -83,9 +98,8 @@ template void TFTFP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel > 0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/FTFP/include/HadronPhysicsFTFP.hh b/physics_lists/hadronic/FTFP/include/HadronPhysicsFTFP.hh index dd01c0b721..414f78b4dc 100644 --- a/physics_lists/hadronic/FTFP/include/HadronPhysicsFTFP.hh +++ b/physics_lists/hadronic/FTFP/include/HadronPhysicsFTFP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsFTFP.hh,v 1.2 2005/11/29 17:00:07 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsFTFP_h #define HadronPhysicsFTFP_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -54,21 +67,21 @@ class HadronPhysicsFTFP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4FTFPNeutronBuilder theFTFPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4FTFPNeutronBuilder * theFTFPNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4FTFPPiKBuilder theFTFPPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4FTFPPiKBuilder * theFTFPPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4FTFPProtonBuilder theFTFPPro; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4FTFPProtonBuilder * theFTFPPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/FTFP/src/HadronPhysicsFTFP.cc b/physics_lists/hadronic/FTFP/src/HadronPhysicsFTFP.cc index ed08f80486..7897fb495a 100644 --- a/physics_lists/hadronic/FTFP/src/HadronPhysicsFTFP.cc +++ b/physics_lists/hadronic/FTFP/src/HadronPhysicsFTFP.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsFTFP.cc,v 1.2 2005/11/29 17:00:07 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsFTFP.hh" #include "globals.hh" @@ -34,21 +48,47 @@ HadronPhysicsFTFP::HadronPhysicsFTFP(const G4String& name) : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsFTFP::CreateModels() { - theNeutrons.RegisterMe(&theFTFPNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); - thePro.RegisterMe(&theFTFPPro); - thePro.RegisterMe(&theLEPPro); - theLEPPro.SetMaxEnergy(25*GeV); + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theFTFPNeutron=new G4FTFPNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); - thePiK.RegisterMe(&theFTFPPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theFTFPPro=new G4FTFPProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMaxEnergy(25*GeV); + + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theFTFPPiK=new G4FTFPPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsFTFP::~HadronPhysicsFTFP() {} +HadronPhysicsFTFP::~HadronPhysicsFTFP() +{ + delete theNeutrons; + delete theLEPNeutron; + delete theFTFPNeutron; + + delete thePiK; + delete theLEPPiK; + delete theFTFPPiK; + + delete thePro; + delete theLEPPro; + delete theFTFPPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsFTFP::ConstructParticle() { @@ -65,11 +105,11 @@ void HadronPhysicsFTFP::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsFTFP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/GNUmakefile b/physics_lists/hadronic/GNUmakefile index 48caeeee29..73aed82dc6 100644 --- a/physics_lists/hadronic/GNUmakefile +++ b/physics_lists/hadronic/GNUmakefile @@ -1,8 +1,8 @@ -# $Id: GNUmakefile,v 1.1 2004/12/13 16:38:57 gcosmo Exp $ +# $Id: GNUmakefile,v 1.4 2005/12/16 09:59:31 gunter Exp $ # ----------------------------------------------------------------- -SUBDIR1 = FTFC FTFP LBE LHEP LHEP_GN LHEP_HP LHEP_LEAD LHEP_LEAD_HP LHEP_PRECO QGSP_BERT -SUBDIR2 = LHEP_PRECO_HP Packaging QGSC QGSC_LEAD QGSC_LEAD_HP QGSP QGSP_GN QGSP_HP LHEP_BERT LHEP_BERT_HP LHEP_BIC LHEP_BIC_HP QGSP_BIC +SUBDIR1 = FTFC FTFP LBE LHEP LHEP_LEAD LHEP_LEAD_HP LHEP_PRECO QGSP_BERT QGSP_BERT_HP QGSP_EMV LHEP_EMV +SUBDIR2 = LHEP_PRECO_HP Packaging QGSC QGSC_LEAD QGSC_LEAD_HP QGSP QGSP_HP LHEP_BERT LHEP_BERT_HP LHEP_BIC LHEP_BIC_HP QGSP_BIC .PHONY: all clean diff --git a/physics_lists/hadronic/GNUmakefile.user.code.example b/physics_lists/hadronic/GNUmakefile.user.code.example index b764ef7426..44ff7b7479 100644 --- a/physics_lists/hadronic/GNUmakefile.user.code.example +++ b/physics_lists/hadronic/GNUmakefile.user.code.example @@ -15,8 +15,9 @@ endif include $(G4INSTALL)/config/architecture.gmk # -# define G4LISTS_BASE, if you have your own physics lists area installed point -# G4LISTS_BASE to the directory, that contains the subdirectory 'hadronic'. +# define G4LISTS_BASE, if you have your own physics lists area install point +# different from the default one, G4LISTS_BASE should point to the directory +# that contains the subdirectory 'hadronic'. # ifndef G4LISTS_BASE EXTRALIBS += -L$(G4LIB)/plists/$(G4SYSTEM) @@ -32,49 +33,50 @@ endif # EXTRALIBS += -lFTFP # EXTRALIBS += -lLBE # EXTRALIBS += -lLHEP -# EXTRALIBS += -lLHEP_GN -# EXTRALIBS += -lLHEP_HP # EXTRALIBS += -lLHEP_LEAD # EXTRALIBS += -lLHEP_BERT_HP # EXTRALIBS += -lLHEP_BIC_HP # EXTRALIBS += -lLHEP_LEAD_HP # EXTRALIBS += -lLHEP_PRECO +# EXTRALIBS += -lLHEP_EMV # EXTRALIBS += -lQGSP_BERT +# EXTRALIBS += -lQGSP_BERT_HP # EXTRALIBS += -lLHEP_PRECO_HP # EXTRALIBS += -lQGSC # EXTRALIBS += -lQGSC_LEAD # EXTRALIBS += -lQGSC_LEAD_HP # EXTRALIBS += -lQGSP -# EXTRALIBS += -lQGSP_GN # EXTRALIBS += -lQGSP_HP +# EXTRALIBS += -lQGSP_EMV # EXTRALIBS += -lLHEP_BERT # EXTRALIBS += -lLHEP_BIC # EXTRALIBS += -lQGSP_BIC -# EXTRALIBS += -lPackaging + + EXTRALIBS += -lPackaging CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/FTFC/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/FTFP/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LBE/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BERT/include -CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC/include -CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_GN/include -CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_HP/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BERT_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC_HP/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_LEAD/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_LEAD_HP/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_PRECO/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_PRECO_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_EMV/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/Packaging/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC_LEAD/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC_LEAD_HP/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BERT/include +CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BERT_HP/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BIC/include -CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_GN/include CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_EMV/include .PHONY: all diff --git a/physics_lists/hadronic/History b/physics_lists/hadronic/History index 10b428dc97..5bae620544 100644 --- a/physics_lists/hadronic/History +++ b/physics_lists/hadronic/History @@ -1,4 +1,4 @@ -$Id: History,v 1.4 2005/02/17 11:49:25 gcosmo Exp $ +$Id: History,v 1.15 2005/12/16 09:59:31 gunter Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,43 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +16.12.2005, G.Folger - hadr-lists-V07-01-08 +- Add QGSP_EMV, LHEP_EMV physics lists, both using multiple scattering 71. + +16.12.2005, G.Folger - hadr-lists-V07-01-07 +- Add QGSP_BERT_HP physics list, used for background radiation studies for LHCb + +15.12.2005, G.Folger - hadr-lists-V07-01-06 +- Change version number for Packaging, FTFP, and QGSC. + +07.12.2005, G.Cosmo - hadr-lists-V07-01-05 +- Do not allow installation of shared libraries when Geant4 granular + libraries are installed and used. Coworks with tag "config-V07-01-06". + +06.12.2005, V.Ivanchenko - hadr-lists-V07-01-04 +- Defined hIoni and msc to the same list of hadrons as in version 7.1. +- Fixed bug in EmPhysics71. + +05.12.2005, V.Ivanchenko - hadr-lists-V07-01-03 +- Add verbosity level as a parameter of Physics Lists +- Update cout + +02.12.2005, G.Folger - hadr-lists-V07-01-02 +- Completed migration of physics lists to non static particles scheme. + Package 3.0. + +02.12.2005, V.Ivanchenko - hadr-lists-V07-01-01 +- Rename Builder -> Physics for all PhysicsConstructors. +- Fixed compilation problems for non migrated lists. + +29.11.2005, G.Folger - hadr-lists-V07-01-00 +- (Partial) migration of physics lists to non static particles scheme. + A copy of the standard EM Builder is also used. + +Nov-2005, G.Folger - hadr-lists-V07-01-00 +- numerous changes to adopt lists to non static particle scheme. +- use standard EM physics builder + 17.02.2005, G.Cosmo - ghad-lists-V07-00-01 - Added missing fix in LBE physics-list for usage of 'this' pointer for porting on gcc-3.4.X compiler series. diff --git a/physics_lists/hadronic/LBE/include/MinEkineCuts.hh b/physics_lists/hadronic/LBE/include/MinEkineCuts.hh index 73500a1c37..6231bbc632 100644 --- a/physics_lists/hadronic/LBE/include/MinEkineCuts.hh +++ b/physics_lists/hadronic/LBE/include/MinEkineCuts.hh @@ -22,7 +22,7 @@ // // // $Id: MinEkineCuts.hh,v 1.1 2004/12/13 16:50:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/physics_lists/hadronic/LBE/src/MinEkineCuts.cc b/physics_lists/hadronic/LBE/src/MinEkineCuts.cc index 05e2269482..cd8f568fb0 100644 --- a/physics_lists/hadronic/LBE/src/MinEkineCuts.cc +++ b/physics_lists/hadronic/LBE/src/MinEkineCuts.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/physics_lists/hadronic/LHEP/include/HadronPhysicsLHEP.hh b/physics_lists/hadronic/LHEP/include/HadronPhysicsLHEP.hh index 0a283420bd..de07c9b263 100644 --- a/physics_lists/hadronic/LHEP/include/HadronPhysicsLHEP.hh +++ b/physics_lists/hadronic/LHEP/include/HadronPhysicsLHEP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP.hh,v 1.2 2005/11/29 17:01:20 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 21.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_h #define HadronPhysicsLHEP_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -51,18 +64,18 @@ class HadronPhysicsLHEP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP/include/LHEP.hh b/physics_lists/hadronic/LHEP/include/LHEP.hh index 6976dca183..1619104db1 100644 --- a/physics_lists/hadronic/LHEP/include/LHEP.hh +++ b/physics_lists/hadronic/LHEP/include/LHEP.hh @@ -31,7 +31,7 @@ template class TLHEP: public T { public: - TLHEP(); + TLHEP(G4int ver = 1); virtual ~TLHEP(); public: diff --git a/physics_lists/hadronic/LHEP/include/LHEP.icc b/physics_lists/hadronic/LHEP/include/LHEP.icc index c6ce8d9d99..a55ac13d05 100644 --- a/physics_lists/hadronic/LHEP/include/LHEP.icc +++ b/physics_lists/hadronic/LHEP/include/LHEP.icc @@ -20,7 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // - +// $Id: LHEP.icc,v 1.8 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 25.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// 02.12.2005 V.Ivanchenko: rename components +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" @@ -34,38 +49,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP.hh" -template TLHEP::TLHEP(): T() +template TLHEP::TLHEP(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: LHEP 3.7"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // General Physics - i.e. decay + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -83,9 +98,9 @@ template void TLHEP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); + } diff --git a/physics_lists/hadronic/LHEP/src/HadronPhysicsLHEP.cc b/physics_lists/hadronic/LHEP/src/HadronPhysicsLHEP.cc index 7aa94934d8..5a8c50b5d1 100644 --- a/physics_lists/hadronic/LHEP/src/HadronPhysicsLHEP.cc +++ b/physics_lists/hadronic/LHEP/src/HadronPhysicsLHEP.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP.cc,v 1.2 2005/11/29 17:01:20 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 21.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP.hh" #include "globals.hh" @@ -34,13 +48,29 @@ HadronPhysicsLHEP::HadronPhysicsLHEP(const G4String& name) : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsLHEP::CreateModels() { - theNeutrons.RegisterMe(&theLHEPNeutron); - thePro.RegisterMe(&theLHEPPro); - thePiK.RegisterMe(&theLHEPPiK); + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); } -HadronPhysicsLHEP::~HadronPhysicsLHEP() {} +HadronPhysicsLHEP::~HadronPhysicsLHEP() +{ + delete theLHEPNeutron; + delete theNeutrons; + delete theLHEPPro; + delete thePro; + delete theLHEPPiK; + delete thePiK; +} void HadronPhysicsLHEP::ConstructParticle() { @@ -52,16 +82,19 @@ void HadronPhysicsLHEP::ConstructParticle() G4ShortLivedConstructor pShortLivedConstructor; pShortLivedConstructor.ConstructParticle(); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } #include "G4ProcessManager.hh" void HadronPhysicsLHEP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP/templ.html b/physics_lists/hadronic/LHEP/templ.html deleted file mode 100644 index 27966ca977..0000000000 --- a/physics_lists/hadronic/LHEP/templ.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - -  -
- - - - - -
-


-The @@@ physics list. -

-
-Click - here to down-load the source code of @@@ Version @.@ -
-Click - here to down-load the Packaging re-use library 1.2 -

- The LHEP physics list models and cross-section: -
    -
  • - FixME: Some text and links to documentation to be added. -
  • - Verification plots for these cross-sections and models can be found - here. - FixME: Add verification page. -
-
- - - - - - -

-In case of questions, please contact -J.P Wellisch.
-
-J.P. Wellisch, 2002
-
- - - - diff --git a/physics_lists/hadronic/LHEP_BERT/include/HadronPhysicsLHEP_BERT.hh b/physics_lists/hadronic/LHEP_BERT/include/HadronPhysicsLHEP_BERT.hh index cffe91f8e5..771743c72d 100644 --- a/physics_lists/hadronic/LHEP_BERT/include/HadronPhysicsLHEP_BERT.hh +++ b/physics_lists/hadronic/LHEP_BERT/include/HadronPhysicsLHEP_BERT.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_BERT.hh,v 1.3 2005/12/02 16:09:51 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_BERT_h #define HadronPhysicsLHEP_BERT_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -54,21 +67,21 @@ class HadronPhysicsLHEP_BERT : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4BertiniNeutronBuilder theBertiniNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; + G4BertiniNeutronBuilder * theBertiniNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; - G4BertiniPiKBuilder theBertiniPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; + G4BertiniPiKBuilder * theBertiniPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; - G4BertiniProtonBuilder theBertiniPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + G4BertiniProtonBuilder * theBertiniPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.hh b/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.hh index eb0db05b7a..1c884c644a 100644 --- a/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.hh +++ b/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_BERT.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TLHEP_BERT_h #define TLHEP_BERT_h 1 @@ -31,7 +44,7 @@ template class TLHEP_BERT: public T { public: - TLHEP_BERT(); + TLHEP_BERT(G4int ver = 1); virtual ~TLHEP_BERT(); public: diff --git a/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.icc b/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.icc index 0d486312d4..a87d9eabbe 100644 --- a/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.icc +++ b/physics_lists/hadronic/LHEP_BERT/include/LHEP_BERT.icc @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_BERT.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,41 +49,40 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP_BERT.hh" -template TLHEP_BERT::TLHEP_BERT(): T() +template TLHEP_BERT::TLHEP_BERT(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: LHEP_BERT 1.1"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // General Physics - i.e. decay + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP_BERT("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -78,7 +92,7 @@ template TLHEP_BERT::~TLHEP_BERT() template void TLHEP_BERT::SetCuts() { - if (this->verboseLevel >1){ + if (this->verboseLevel >1) { G4cout << "LHEP_BERT::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets @@ -86,9 +100,8 @@ template void TLHEP_BERT::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel > 0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_BERT/src/HadronPhysicsLHEP_BERT.cc b/physics_lists/hadronic/LHEP_BERT/src/HadronPhysicsLHEP_BERT.cc index 499d1dceae..d8499e8968 100644 --- a/physics_lists/hadronic/LHEP_BERT/src/HadronPhysicsLHEP_BERT.cc +++ b/physics_lists/hadronic/LHEP_BERT/src/HadronPhysicsLHEP_BERT.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_BERT.cc,v 1.3 2005/12/02 16:09:51 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP_BERT.hh" #include "globals.hh" @@ -34,25 +48,50 @@ HadronPhysicsLHEP_BERT::HadronPhysicsLHEP_BERT(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theLHEPNeutron); - theNeutrons.RegisterMe(&theBertiniNeutron); - theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV); - theBertiniNeutron.SetMaxEnergy(9.9*GeV); +{} - thePro.RegisterMe(&theLHEPPro); - thePro.RegisterMe(&theBertiniPro); - theLHEPPro.SetMinEnergy(9.5*GeV); - theBertiniPro.SetMaxEnergy(9.9*GeV); - - thePiK.RegisterMe(&theLHEPPiK); - thePiK.RegisterMe(&theBertiniPiK); - theLHEPPiK.SetMinPionEnergy(9.5*GeV); - theBertiniPiK.SetMaxEnergy(9.9*GeV); +void HadronPhysicsLHEP_BERT::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder); + theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV); + theBertiniNeutron->SetMaxEnergy(9.9*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder); + theLHEPPro->SetMinEnergy(9.5*GeV); + theBertiniPro->SetMaxEnergy(9.9*GeV); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); + thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder); + theLHEPPiK->SetMinPionEnergy(9.5*GeV); + theBertiniPiK->SetMaxEnergy(9.9*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsLHEP_BERT::~HadronPhysicsLHEP_BERT() {} +HadronPhysicsLHEP_BERT::~HadronPhysicsLHEP_BERT() +{ + delete theNeutrons; + delete theLHEPNeutron; + delete theBertiniNeutron; + + delete thePiK; + delete theLHEPPiK; + delete theBertiniPiK; + + delete thePro; + delete theLHEPPro; + delete theBertiniPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsLHEP_BERT::ConstructParticle() { @@ -69,11 +108,11 @@ void HadronPhysicsLHEP_BERT::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsLHEP_BERT::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_BERT_HP/include/HadronPhysicsLHEP_BERT_HP.hh b/physics_lists/hadronic/LHEP_BERT_HP/include/HadronPhysicsLHEP_BERT_HP.hh index 9f5337736c..104b6c1e08 100644 --- a/physics_lists/hadronic/LHEP_BERT_HP/include/HadronPhysicsLHEP_BERT_HP.hh +++ b/physics_lists/hadronic/LHEP_BERT_HP/include/HadronPhysicsLHEP_BERT_HP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_BERT_HP.hh,v 1.3 2005/12/02 16:16:59 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BERT_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_BERT_HP_h #define HadronPhysicsLHEP_BERT_HP_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -54,21 +67,21 @@ class HadronPhysicsLHEP_BERT_HP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4BertiniNeutronBuilder theBertiniNeutron; - G4NeutronHPBuilder theHPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; + G4BertiniNeutronBuilder * theBertiniNeutron; + G4NeutronHPBuilder * theHPNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; - G4BertiniProtonBuilder theBertiniPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + G4BertiniProtonBuilder * theBertiniPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.hh b/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.hh index bf06dee2a7..ca727f1314 100644 --- a/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.hh +++ b/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.hh @@ -31,7 +31,7 @@ template class TLHEP_BERT_HP: public T { public: - TLHEP_BERT_HP(); + TLHEP_BERT_HP(G4int ver = 1); virtual ~TLHEP_BERT_HP(); public: diff --git a/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.icc b/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.icc index 5f34e848ce..3ea93e5ef6 100644 --- a/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.icc +++ b/physics_lists/hadronic/LHEP_BERT_HP/include/LHEP_BERT_HP.icc @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_BERT_HP.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,39 +49,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP_BERT_HP.hh" -template TLHEP_BERT_HP::TLHEP_BERT_HP(): T() +template TLHEP_BERT_HP::TLHEP_BERT_HP(G4int ver): T() { G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: LHEP_BERT_HP 1.1"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); - // Hadron Physics + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); + + // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP_BERT_HP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -84,9 +98,8 @@ template void TLHEP_BERT_HP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel > 0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_BERT_HP/src/HadronPhysicsLHEP_BERT_HP.cc b/physics_lists/hadronic/LHEP_BERT_HP/src/HadronPhysicsLHEP_BERT_HP.cc index d2c9f5b13e..546fba2f09 100644 --- a/physics_lists/hadronic/LHEP_BERT_HP/src/HadronPhysicsLHEP_BERT_HP.cc +++ b/physics_lists/hadronic/LHEP_BERT_HP/src/HadronPhysicsLHEP_BERT_HP.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_BERT_HP.cc,v 1.3 2005/12/02 16:16:59 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BERT_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP_BERT_HP.hh" #include "globals.hh" @@ -34,25 +48,49 @@ HadronPhysicsLHEP_BERT_HP::HadronPhysicsLHEP_BERT_HP(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theLHEPNeutron); - theNeutrons.RegisterMe(&theBertiniNeutron); - theNeutrons.RegisterMe(&theHPNeutron); - theLHEPNeutron.SetMinEnergy(19.9*MeV); - theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV); - theBertiniNeutron.SetMaxEnergy(9.9*GeV); - theBertiniNeutron.SetMinEnergy(19.9*MeV); +{} - thePro.RegisterMe(&theLHEPPro); - thePro.RegisterMe(&theBertiniPro); - theLHEPPro.SetMinEnergy(9.5*GeV); - theBertiniPro.SetMaxEnergy(9.9*GeV); +void HadronPhysicsLHEP_BERT_HP::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder); + theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder); + theLHEPNeutron->SetMinEnergy(19.9*MeV); + theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV); + theBertiniNeutron->SetMaxEnergy(9.9*GeV); + theBertiniNeutron->SetMinEnergy(19.9*MeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder); + theLHEPPro->SetMinEnergy(9.5*GeV); + theBertiniPro->SetMaxEnergy(9.9*GeV); - thePiK.RegisterMe(&theLHEPPiK); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsLHEP_BERT_HP::~HadronPhysicsLHEP_BERT_HP() {} +HadronPhysicsLHEP_BERT_HP::~HadronPhysicsLHEP_BERT_HP() +{ + delete theNeutrons; + delete theLHEPNeutron; + delete theBertiniNeutron; + delete theHPNeutron; + + delete thePiK; + delete theLHEPPiK; + + delete thePro; + delete theLHEPPro; + delete theBertiniPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsLHEP_BERT_HP::ConstructParticle() { @@ -69,11 +107,11 @@ void HadronPhysicsLHEP_BERT_HP::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsLHEP_BERT_HP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_BIC/include/HadronPhysicsLHEP_BIC.hh b/physics_lists/hadronic/LHEP_BIC/include/HadronPhysicsLHEP_BIC.hh index 8cc8acf182..5538a682e2 100644 --- a/physics_lists/hadronic/LHEP_BIC/include/HadronPhysicsLHEP_BIC.hh +++ b/physics_lists/hadronic/LHEP_BIC/include/HadronPhysicsLHEP_BIC.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_BIC.hh,v 1.3 2005/12/02 16:13:42 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BIC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_BIC_h #define HadronPhysicsLHEP_BIC_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -53,20 +66,20 @@ class HadronPhysicsLHEP_BIC : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4BinaryNeutronBuilder theBinaryNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; + G4BinaryNeutronBuilder * theBinaryNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; - G4BinaryProtonBuilder theBinaryPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + G4BinaryProtonBuilder * theBinaryPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.hh b/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.hh index eee4658c9f..786ce216a6 100644 --- a/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.hh +++ b/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_BIC.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BIC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TLHEP_BIC_h #define TLHEP_BIC_h 1 @@ -31,7 +44,7 @@ template class TLHEP_BIC: public T { public: - TLHEP_BIC(); + TLHEP_BIC(G4int ver = 1); virtual ~TLHEP_BIC(); public: diff --git a/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.icc b/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.icc index 7b87ed54cb..b08351d16e 100644 --- a/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.icc +++ b/physics_lists/hadronic/LHEP_BIC/include/LHEP_BIC.icc @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_BIC.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_BIC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,41 +49,40 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP_BIC.hh" -template TLHEP_BIC::TLHEP_BIC(): T() +template TLHEP_BIC::TLHEP_BIC(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: LHEP_BIC 1.1"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP_BIC("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -86,9 +100,8 @@ template void TLHEP_BIC::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_BIC/src/HadronPhysicsLHEP_BIC.cc b/physics_lists/hadronic/LHEP_BIC/src/HadronPhysicsLHEP_BIC.cc index 2b8a4e4b0b..68db0d3013 100644 --- a/physics_lists/hadronic/LHEP_BIC/src/HadronPhysicsLHEP_BIC.cc +++ b/physics_lists/hadronic/LHEP_BIC/src/HadronPhysicsLHEP_BIC.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_BIC.cc,v 1.3 2005/12/02 16:13:42 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BIC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP_BIC.hh" #include "globals.hh" @@ -34,22 +48,46 @@ HadronPhysicsLHEP_BIC::HadronPhysicsLHEP_BIC(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theLHEPNeutron); - theNeutrons.RegisterMe(&theBinaryNeutron); - theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV); - theBinaryNeutron.SetMaxEnergy(9.9*GeV); +{} - thePro.RegisterMe(&theLHEPPro); - thePro.RegisterMe(&theBinaryPro); - theLHEPPro.SetMinEnergy(9.5*GeV); - theBinaryPro.SetMaxEnergy(9.9*GeV); +void HadronPhysicsLHEP_BIC::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder); + theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV); + theBinaryNeutron->SetMaxEnergy(9.9*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder); + theLHEPPro->SetMinEnergy(9.5*GeV); + theBinaryPro->SetMaxEnergy(9.9*GeV); - thePiK.RegisterMe(&theLHEPPiK); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsLHEP_BIC::~HadronPhysicsLHEP_BIC() {} +HadronPhysicsLHEP_BIC::~HadronPhysicsLHEP_BIC() +{ + delete theNeutrons; + delete theLHEPNeutron; + delete theBinaryNeutron; + + delete thePiK; + delete theLHEPPiK; + + delete thePro; + delete theLHEPPro; + delete theBinaryPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsLHEP_BIC::ConstructParticle() { @@ -66,11 +104,11 @@ void HadronPhysicsLHEP_BIC::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsLHEP_BIC::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_BIC_HP/include/HadronPhysicsLHEP_BIC_HP.hh b/physics_lists/hadronic/LHEP_BIC_HP/include/HadronPhysicsLHEP_BIC_HP.hh index eb0ea6fa0d..d58f7cce7e 100644 --- a/physics_lists/hadronic/LHEP_BIC_HP/include/HadronPhysicsLHEP_BIC_HP.hh +++ b/physics_lists/hadronic/LHEP_BIC_HP/include/HadronPhysicsLHEP_BIC_HP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_BIC_HP.hh,v 1.3 2005/12/02 16:51:45 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BIC_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_BIC_HP_h #define HadronPhysicsLHEP_BIC_HP_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -54,21 +67,21 @@ class HadronPhysicsLHEP_BIC_HP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4BinaryNeutronBuilder theBinaryNeutron; - G4NeutronHPBuilder theHPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; + G4BinaryNeutronBuilder * theBinaryNeutron; + G4NeutronHPBuilder * theHPNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; - G4BinaryProtonBuilder theBinaryPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + G4BinaryProtonBuilder * theBinaryPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.hh b/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.hh index 8d10274796..14ed890d37 100644 --- a/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.hh +++ b/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_BIC_HP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_BIC_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef TLHEP_BIC_HP_h #define TLHEP_BIC_HP_h 1 @@ -31,7 +45,7 @@ template class TLHEP_BIC_HP: public T { public: - TLHEP_BIC_HP(); + TLHEP_BIC_HP(G4int ver = 1); virtual ~TLHEP_BIC_HP(); public: diff --git a/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.icc b/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.icc index a175258b57..d384f921bc 100644 --- a/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.icc +++ b/physics_lists/hadronic/LHEP_BIC_HP/include/LHEP_BIC_HP.icc @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_BIC_HP.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_BIC_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,42 +49,40 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP_BIC_HP.hh" -template TLHEP_BIC_HP::TLHEP_BIC_HP(): T() +template TLHEP_BIC_HP::TLHEP_BIC_HP(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: LHEP_BIC_HP 1.1"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); - // Hadron Physics + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); + + // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP_BIC_HP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - - + this->RegisterPhysics( new G4IonPhysics("ion")); } template TLHEP_BIC_HP::~TLHEP_BIC_HP() @@ -86,9 +99,8 @@ template void TLHEP_BIC_HP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_BIC_HP/src/HadronPhysicsLHEP_BIC_HP.cc b/physics_lists/hadronic/LHEP_BIC_HP/src/HadronPhysicsLHEP_BIC_HP.cc index 60bede60b4..27d70a213f 100644 --- a/physics_lists/hadronic/LHEP_BIC_HP/src/HadronPhysicsLHEP_BIC_HP.cc +++ b/physics_lists/hadronic/LHEP_BIC_HP/src/HadronPhysicsLHEP_BIC_HP.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_BIC_HP.cc,v 1.3 2005/12/02 16:51:45 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_BIC_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP_BIC_HP.hh" #include "globals.hh" @@ -34,25 +48,50 @@ HadronPhysicsLHEP_BIC_HP::HadronPhysicsLHEP_BIC_HP(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theLHEPNeutron); - theNeutrons.RegisterMe(&theBinaryNeutron); - theNeutrons.RegisterMe(&theHPNeutron); - theLHEPNeutron.SetMinEnergy(19.9*MeV); - theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV); - theBinaryNeutron.SetMaxEnergy(9.9*GeV); - theBinaryNeutron.SetMinEnergy(19.9*MeV); +{} - thePro.RegisterMe(&theLHEPPro); - thePro.RegisterMe(&theBinaryPro); - theLHEPPro.SetMinEnergy(9.5*GeV); - theBinaryPro.SetMaxEnergy(9.9*GeV); +void HadronPhysicsLHEP_BIC_HP::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder); + theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder); + theLHEPNeutron->SetMinEnergy(19.9*MeV); + theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV); + theBinaryNeutron->SetMaxEnergy(9.9*GeV); + theBinaryNeutron->SetMinEnergy(19.9*MeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder); + theLHEPPro->SetMinEnergy(9.5*GeV); + theBinaryPro->SetMaxEnergy(9.9*GeV); - thePiK.RegisterMe(&theLHEPPiK); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsLHEP_BIC_HP::~HadronPhysicsLHEP_BIC_HP() {} +HadronPhysicsLHEP_BIC_HP::~HadronPhysicsLHEP_BIC_HP() +{ + delete theNeutrons; + delete theLHEPNeutron; + delete theBinaryNeutron; + delete theHPNeutron; + + delete thePiK; + delete theLHEPPiK; + + delete thePro; + delete theLHEPPro; + delete theBinaryPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsLHEP_BIC_HP::ConstructParticle() { @@ -69,11 +108,11 @@ void HadronPhysicsLHEP_BIC_HP::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsLHEP_BIC_HP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_GN/GNUmakefile b/physics_lists/hadronic/LHEP_EMV/GNUmakefile similarity index 56% rename from physics_lists/hadronic/LHEP_GN/GNUmakefile rename to physics_lists/hadronic/LHEP_EMV/GNUmakefile index 56c82921f9..23751ac08f 100644 --- a/physics_lists/hadronic/LHEP_GN/GNUmakefile +++ b/physics_lists/hadronic/LHEP_EMV/GNUmakefile @@ -1,2 +1,2 @@ -name := LHEP_GN +name := LHEP_EMV include ../common.gmk diff --git a/physics_lists/hadronic/LHEP_HP/include/HadronPhysicsLHEP_HP.hh b/physics_lists/hadronic/LHEP_EMV/include/HadronPhysicsLHEP_EMV.hh similarity index 66% rename from physics_lists/hadronic/LHEP_HP/include/HadronPhysicsLHEP_HP.hh rename to physics_lists/hadronic/LHEP_EMV/include/HadronPhysicsLHEP_EMV.hh index 0f9c454a06..dfa89126b1 100644 --- a/physics_lists/hadronic/LHEP_HP/include/HadronPhysicsLHEP_HP.hh +++ b/physics_lists/hadronic/LHEP_EMV/include/HadronPhysicsLHEP_EMV.hh @@ -20,47 +20,62 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef HadronPhysicsLHEP_HP_h -#define HadronPhysicsLHEP_HP_h 1 +// $Id: HadronPhysicsLHEP_EMV.hh,v 1.1 2005/12/16 09:57:06 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_EMV +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 16.12.2005 G.Folger: create from LHEP_GN +// +//---------------------------------------------------------------------------- +// +#ifndef HadronPhysicsLHEP_EMV_h +#define HadronPhysicsLHEP_EMV_h 1 #include "globals.hh" #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" + #include "G4LHEPPiKBuilder.hh" #include "G4PiKBuilder.hh" -#include "G4LHEPProtonBuilder.hh" -#include "G4ProtonBuilder.hh" -#include "G4LHEPNeutronBuilder.hh" -#include "G4NeutronBuilder.hh" -#include "G4NeutronHPBuilder.hh" -class HadronPhysicsLHEP_HP : public G4VPhysicsConstructor +#include "G4ProtonBuilder.hh" +#include "G4LHEPProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LHEPNeutronBuilder.hh" + +class HadronPhysicsLHEP_EMV : public G4VPhysicsConstructor { public: - HadronPhysicsLHEP_HP(const G4String& name ="hadron"); - virtual ~HadronPhysicsLHEP_HP(); + HadronPhysicsLHEP_EMV(const G4String& name ="hadron"); + virtual ~HadronPhysicsLHEP_EMV(); public: virtual void ConstructParticle(); virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4NeutronHPBuilder theHPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; - G4LHEPPiKBuilder theLHEPPiK; - G4PiKBuilder thePiK; - G4LHEPProtonBuilder theLHEPProton; - G4ProtonBuilder theProton; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_EMV/include/LHEP_EMV.hh b/physics_lists/hadronic/LHEP_EMV/include/LHEP_EMV.hh new file mode 100644 index 0000000000..c21da3c7d1 --- /dev/null +++ b/physics_lists/hadronic/LHEP_EMV/include/LHEP_EMV.hh @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: LHEP_EMV.hh,v 1.1 2005/12/16 09:57:06 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_EMV +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 16.12.2005 G.Folger: create from HadronPhysicsLHEP_GN +// +//---------------------------------------------------------------------------- +// +#ifndef TLHEP_EMV_h +#define TLHEP_EMV_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_EMV: public T +{ +public: + TLHEP_EMV(G4int ver = 1); + virtual ~TLHEP_EMV(); + +public: + // SetCuts() + virtual void SetCuts(); +private: + enum {ok = CompileTimeConstraints::IsA::ok }; + +}; +#include "LHEP_EMV.icc" +typedef TLHEP_EMV LHEP_EMV; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/physics_lists/hadronic/LHEP_GN/include/LHEP_GN.icc b/physics_lists/hadronic/LHEP_EMV/include/LHEP_EMV.icc similarity index 61% rename from physics_lists/hadronic/LHEP_GN/include/LHEP_GN.icc rename to physics_lists/hadronic/LHEP_EMV/include/LHEP_EMV.icc index 60bc8dffa7..b541f92a90 100644 --- a/physics_lists/hadronic/LHEP_GN/include/LHEP_GN.icc +++ b/physics_lists/hadronic/LHEP_EMV/include/LHEP_EMV.icc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_EMV.icc,v 1.1 2005/12/16 09:57:06 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_EMV +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 16.12.2005 G.Folger: create from LHEP_GN +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,56 +48,56 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EM_GNPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" -#include "G4DataQuestionaire.hh" -#include "HadronPhysicsLHEP_GN.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics71.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" -template TLHEP_GN::TLHEP_GN(): T() +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_EMV.hh" + +template TLHEP_EMV::TLHEP_EMV(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: LHEP_GN 2.5"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); + this->SetVerboseLevel(ver); - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + // EM Physics - without multiple scattering limiting the step + this->RegisterPhysics( new G4EmStandardPhysics71("standard EM msc 7.1",ver)); - // EM Physics - this->RegisterPhysics( new EM_GNPhysics("standard EM plus gamma nuclear")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Decays + this->RegisterPhysics( new G4DecayPhysics("general",ver) ); // Hadron Physics - this->RegisterPhysics( new HadronPhysicsLHEP_GN("hadron")); + this->RegisterPhysics( new HadronPhysicsLHEP_EMV("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - - + this->RegisterPhysics( new G4IonPhysics("ion")); } -template TLHEP_GN::~TLHEP_GN() +template TLHEP_EMV::~TLHEP_EMV() { } -template void TLHEP_GN::SetCuts() +template void TLHEP_EMV::SetCuts() { if (this->verboseLevel >1){ - G4cout << "LHEP_GN::SetCuts:"; + G4cout << "LHEP_EMV::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); + if (this->verboseLevel >0) + G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/QGSP_GN/src/HadronPhysicsQGSP.cc b/physics_lists/hadronic/LHEP_EMV/src/HadronPhysicsLHEP_EMV.cc similarity index 60% rename from physics_lists/hadronic/QGSP_GN/src/HadronPhysicsQGSP.cc rename to physics_lists/hadronic/LHEP_EMV/src/HadronPhysicsLHEP_EMV.cc index 7d74aaceb9..cfd36941ea 100644 --- a/physics_lists/hadronic/QGSP_GN/src/HadronPhysicsQGSP.cc +++ b/physics_lists/hadronic/LHEP_EMV/src/HadronPhysicsLHEP_EMV.cc @@ -20,11 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "HadronPhysicsQGSP.hh" +// $Id: HadronPhysicsLHEP_EMV.cc,v 1.1 2005/12/16 09:57:06 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_EMV +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 16.12.2005 G.Folger: create from HadronPhysicsLHEP_GN +// +//---------------------------------------------------------------------------- +#include "HadronPhysicsLHEP_EMV.hh" #include "globals.hh" #include "G4ios.hh" #include + +HadronPhysicsLHEP_EMV::HadronPhysicsLHEP_EMV(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsLHEP_EMV::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); +} + +HadronPhysicsLHEP_EMV::~HadronPhysicsLHEP_EMV() +{ + delete theLHEPNeutron; + delete theNeutrons; + delete theLHEPPro; + delete thePro; + delete theLHEPPiK; + delete thePiK; +} + #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" @@ -32,25 +72,7 @@ #include "G4BaryonConstructor.hh" #include "G4ShortLivedConstructor.hh" -HadronPhysicsQGSP::HadronPhysicsQGSP(const G4String& name) - : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theQGSPNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); - - thePro.RegisterMe(&theQGSPPro); - thePro.RegisterMe(&theLEPPro); - theLEPPro.SetMaxEnergy(25*GeV); - - thePiK.RegisterMe(&theQGSPPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); -} - -HadronPhysicsQGSP::~HadronPhysicsQGSP() {} - -void HadronPhysicsQGSP::ConstructParticle() +void HadronPhysicsLHEP_EMV::ConstructParticle() { G4MesonConstructor pMesonConstructor; pMesonConstructor.ConstructParticle(); @@ -60,16 +82,19 @@ void HadronPhysicsQGSP::ConstructParticle() G4ShortLivedConstructor pShortLivedConstructor; pShortLivedConstructor.ConstructParticle(); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } #include "G4ProcessManager.hh" -void HadronPhysicsQGSP::ConstructProcess() +void HadronPhysicsLHEP_EMV::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_GN/include/HadronPhysicsLHEP_GN.hh b/physics_lists/hadronic/LHEP_GN/include/HadronPhysicsLHEP_GN.hh deleted file mode 100644 index 80d9adc381..0000000000 --- a/physics_lists/hadronic/LHEP_GN/include/HadronPhysicsLHEP_GN.hh +++ /dev/null @@ -1,65 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -#ifndef HadronPhysicsLHEP_GN_h -#define HadronPhysicsLHEP_GN_h 1 - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" -#include "G4StoppingHadronBuilder.hh" -#include "G4MiscLHEPBuilder.hh" -#include "G4LHEPPiKBuilder.hh" -#include "G4PiKBuilder.hh" -#include "G4LHEPProtonBuilder.hh" -#include "G4ProtonBuilder.hh" -#include "G4LHEPNeutronBuilder.hh" -#include "G4NeutronBuilder.hh" - -class HadronPhysicsLHEP_GN : public G4VPhysicsConstructor -{ - public: - HadronPhysicsLHEP_GN(const G4String& name ="hadron"); - virtual ~HadronPhysicsLHEP_GN(); - - public: - virtual void ConstructParticle(); - virtual void ConstructProcess(); - - private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4LHEPPiKBuilder theLHEPPiK; - G4PiKBuilder thePiK; - G4LHEPProtonBuilder theLHEPProton; - G4ProtonBuilder theProton; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/physics_lists/hadronic/LHEP_LEAD/include/HadronPhysicsLHEP_LEAD.hh b/physics_lists/hadronic/LHEP_LEAD/include/HadronPhysicsLHEP_LEAD.hh index c5660ff865..f83d6dbcbc 100644 --- a/physics_lists/hadronic/LHEP_LEAD/include/HadronPhysicsLHEP_LEAD.hh +++ b/physics_lists/hadronic/LHEP_LEAD/include/HadronPhysicsLHEP_LEAD.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_LEAD.hh,v 1.3 2005/12/02 18:24:30 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_LEAD +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_LEAD_h #define HadronPhysicsLHEP_LEAD_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -54,21 +67,21 @@ class HadronPhysicsLHEP_LEAD : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4LEADNeutronBuilder theLEADNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; + G4LEADNeutronBuilder * theLEADNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; - G4LEADPiKBuilder theLEADPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; + G4LEADPiKBuilder * theLEADPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; - G4LEADProtonBuilder theLEADPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + G4LEADProtonBuilder * theLEADPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.hh b/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.hh index 8e0bd0fd96..e988650040 100644 --- a/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.hh +++ b/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_LEAD.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_LEAD +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TLHEP_LEAD_h #define TLHEP_LEAD_h 1 @@ -31,7 +44,7 @@ template class TLHEP_LEAD: public T { public: - TLHEP_LEAD(); + TLHEP_LEAD(G4int ver = 1); virtual ~TLHEP_LEAD(); public: diff --git a/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.icc b/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.icc index e9c71ae2e7..8e2b6c0cfa 100644 --- a/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.icc +++ b/physics_lists/hadronic/LHEP_LEAD/include/LHEP_LEAD.icc @@ -20,7 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // - +// $Id: LHEP_LEAD.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_LEAD +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" @@ -34,37 +48,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP_LEAD.hh" -template TLHEP_LEAD::TLHEP_LEAD(): T() +template TLHEP_LEAD::TLHEP_LEAD(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: LHEP_LEAD 1.5"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP_LEAD("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -83,9 +98,8 @@ template void TLHEP_LEAD::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_LEAD/src/HadronPhysicsLHEP_LEAD.cc b/physics_lists/hadronic/LHEP_LEAD/src/HadronPhysicsLHEP_LEAD.cc index 8de2e9dbb1..41b6d85bc5 100644 --- a/physics_lists/hadronic/LHEP_LEAD/src/HadronPhysicsLHEP_LEAD.cc +++ b/physics_lists/hadronic/LHEP_LEAD/src/HadronPhysicsLHEP_LEAD.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_LEAD.cc,v 1.3 2005/12/02 18:24:30 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_LEAD +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP_LEAD.hh" #include "globals.hh" @@ -34,21 +48,46 @@ HadronPhysicsLHEP_LEAD::HadronPhysicsLHEP_LEAD(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theLEADNeutron); - theNeutrons.RegisterMe(&theLHEPNeutron); - theLHEPNeutron.SetMinInelasticEnergy(4.99*GeV); +{} - thePro.RegisterMe(&theLEADPro); - thePro.RegisterMe(&theLHEPPro); - theLHEPPro.SetMinEnergy(4.99*GeV); +void HadronPhysicsLHEP_LEAD::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder); + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + theLHEPNeutron->SetMinInelasticEnergy(4.99*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLEADPro=new G4LEADProtonBuilder); + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + theLHEPPro->SetMinEnergy(4.99*GeV); - thePiK.RegisterMe(&theLEADPiK); - thePiK.RegisterMe(&theLHEPPiK); - theLHEPPiK.SetMinEnergy(4.99*GeV); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder); + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); + theLHEPPiK->SetMinEnergy(4.99*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsLHEP_LEAD::~HadronPhysicsLHEP_LEAD() {} +HadronPhysicsLHEP_LEAD::~HadronPhysicsLHEP_LEAD() +{ + delete theNeutrons; + delete theLHEPNeutron; + delete theLEADNeutron; + + delete thePiK; + delete theLHEPPiK; + delete theLEADPiK; + + delete thePro; + delete theLHEPPro; + delete theLEADPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsLHEP_LEAD::ConstructParticle() { @@ -65,11 +104,11 @@ void HadronPhysicsLHEP_LEAD::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsLHEP_LEAD::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_LEAD_HP/include/HadronPhysicsLHEP_LEAD_HP.hh b/physics_lists/hadronic/LHEP_LEAD_HP/include/HadronPhysicsLHEP_LEAD_HP.hh index 798ce35f8f..17a7c9a0c9 100644 --- a/physics_lists/hadronic/LHEP_LEAD_HP/include/HadronPhysicsLHEP_LEAD_HP.hh +++ b/physics_lists/hadronic/LHEP_LEAD_HP/include/HadronPhysicsLHEP_LEAD_HP.hh @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_LEAD_HP.hh,v 1.3 2005/12/02 18:29:46 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_LEAD_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_LEAD_HP_h #define HadronPhysicsLHEP_LEAD_HP_h 1 @@ -27,7 +42,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -55,22 +69,22 @@ class HadronPhysicsLHEP_LEAD_HP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4LEADNeutronBuilder theLEADNeutron; - G4NeutronHPBuilder theHPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; + G4LEADNeutronBuilder * theLEADNeutron; + G4NeutronHPBuilder * theHPNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; - G4LEADPiKBuilder theLEADPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; + G4LEADPiKBuilder * theLEADPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; - G4LEADProtonBuilder theLEADPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + G4LEADProtonBuilder * theLEADPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.hh b/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.hh index b8e986372e..c19d7ed8e2 100644 --- a/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.hh +++ b/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_LEAD_HP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_LEAD_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TLHEP_LEAD_HP_h #define TLHEP_LEAD_HP_h 1 @@ -31,7 +44,7 @@ template class TLHEP_LEAD_HP: public T { public: - TLHEP_LEAD_HP(); + TLHEP_LEAD_HP(G4int ver = 1); virtual ~TLHEP_LEAD_HP(); public: diff --git a/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc b/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc index 4d4512caf2..f7a5cf5325 100644 --- a/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc +++ b/physics_lists/hadronic/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_LEAD_HP.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_LEAD_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,38 +49,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP_LEAD_HP.hh" -template TLHEP_LEAD_HP::TLHEP_LEAD_HP(): T() +template TLHEP_LEAD_HP::TLHEP_LEAD_HP(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon, neutron); - G4cout << "You are using the simulation engine: LHEP_LEAD_HP 1.6"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); - // Hadron Physics + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); + + // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP_LEAD_HP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -83,9 +98,8 @@ template void TLHEP_LEAD_HP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - + if (this->verboseLevel > 0) + G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_LEAD_HP/src/HadronPhysicsLHEP_LEAD_HP.cc b/physics_lists/hadronic/LHEP_LEAD_HP/src/HadronPhysicsLHEP_LEAD_HP.cc index 167e532043..3d63df0ffc 100644 --- a/physics_lists/hadronic/LHEP_LEAD_HP/src/HadronPhysicsLHEP_LEAD_HP.cc +++ b/physics_lists/hadronic/LHEP_LEAD_HP/src/HadronPhysicsLHEP_LEAD_HP.cc @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_LEAD_HP.cc,v 1.3 2005/12/02 18:29:46 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_LEAD_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP_LEAD_HP.hh" #include "globals.hh" @@ -34,24 +49,50 @@ HadronPhysicsLHEP_LEAD_HP::HadronPhysicsLHEP_LEAD_HP(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theLHEPNeutron); - theLHEPNeutron.SetMinEnergy(19.9*MeV); - theLHEPNeutron.SetMinInelasticEnergy(4.99*GeV); - theNeutrons.RegisterMe(&theLEADNeutron); - theLEADNeutron.SetMinEnergy(19.9*MeV); - theNeutrons.RegisterMe(&theHPNeutron); +{} - thePro.RegisterMe(&theLHEPPro); - theLHEPPro.SetMinEnergy(4.99*GeV); - thePro.RegisterMe(&theLEADPro); +void HadronPhysicsLHEP_LEAD_HP::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + theLHEPNeutron->SetMinEnergy(19.9*MeV); + theLHEPNeutron->SetMinInelasticEnergy(4.99*GeV); + theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder); + theLEADNeutron->SetMinEnergy(19.9*MeV); + theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + theLHEPPro->SetMinEnergy(4.99*GeV); + thePro->RegisterMe(theLEADPro=new G4LEADProtonBuilder); - thePiK.RegisterMe(&theLHEPPiK); - theLHEPPiK.SetMinEnergy(4.99*GeV); - thePiK.RegisterMe(&theLEADPiK); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); + theLHEPPiK->SetMinEnergy(4.99*GeV); + thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsLHEP_LEAD_HP::~HadronPhysicsLHEP_LEAD_HP() {} +HadronPhysicsLHEP_LEAD_HP::~HadronPhysicsLHEP_LEAD_HP() +{ + delete theNeutrons; + delete theLHEPNeutron; + delete theLEADNeutron; + delete theHPNeutron; + + delete thePiK; + delete theLHEPPiK; + delete theLEADPiK; + + delete thePro; + delete theLHEPPro; + delete theLEADPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsLHEP_LEAD_HP::ConstructParticle() { @@ -68,11 +109,11 @@ void HadronPhysicsLHEP_LEAD_HP::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsLHEP_LEAD_HP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_PRECO/include/HadronPhysicsLHEP_PRECO.hh b/physics_lists/hadronic/LHEP_PRECO/include/HadronPhysicsLHEP_PRECO.hh index 4f54f8f8fb..794fdf25f2 100644 --- a/physics_lists/hadronic/LHEP_PRECO/include/HadronPhysicsLHEP_PRECO.hh +++ b/physics_lists/hadronic/LHEP_PRECO/include/HadronPhysicsLHEP_PRECO.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_PRECO.hh,v 1.3 2005/12/02 17:30:34 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_PRECO +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_PRECO_h #define HadronPhysicsLHEP_PRECO_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -53,20 +66,20 @@ class HadronPhysicsLHEP_PRECO : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4PrecoNeutronBuilder thePrecoNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; + G4PrecoNeutronBuilder * thePrecoNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; - G4PrecoProtonBuilder thePrecoPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + G4PrecoProtonBuilder * thePrecoPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.hh b/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.hh index 3f6673f66d..3110f4fc85 100644 --- a/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.hh +++ b/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_PRECO.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_PRECO +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TLHEP_PRECO_h #define TLHEP_PRECO_h 1 @@ -31,7 +44,7 @@ template class TLHEP_PRECO: public T { public: - TLHEP_PRECO(); + TLHEP_PRECO(G4int ver = 1); virtual ~TLHEP_PRECO(); public: diff --git a/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.icc b/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.icc index 07ea5490d9..8d8cc859c8 100644 --- a/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.icc +++ b/physics_lists/hadronic/LHEP_PRECO/include/LHEP_PRECO.icc @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_PRECO.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_PRECO +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 25.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,38 +49,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP_PRECO.hh" -template TLHEP_PRECO::TLHEP_PRECO(): T() +template TLHEP_PRECO::TLHEP_PRECO(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: LHEP_PRECO 2.7"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP_PRECO("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -83,9 +98,8 @@ template void TLHEP_PRECO::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel > 0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_PRECO/src/HadronPhysicsLHEP_PRECO.cc b/physics_lists/hadronic/LHEP_PRECO/src/HadronPhysicsLHEP_PRECO.cc index 64f4b7aa0c..f93d859b3b 100644 --- a/physics_lists/hadronic/LHEP_PRECO/src/HadronPhysicsLHEP_PRECO.cc +++ b/physics_lists/hadronic/LHEP_PRECO/src/HadronPhysicsLHEP_PRECO.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_PRECO.cc,v 1.3 2005/12/02 17:30:34 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_PRECO +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP_PRECO.hh" #include "globals.hh" @@ -34,19 +48,43 @@ HadronPhysicsLHEP_PRECO::HadronPhysicsLHEP_PRECO(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&thePrecoNeutron); - theNeutrons.RegisterMe(&theLHEPNeutron); - theLHEPNeutron.SetMinInelasticEnergy(0.15*GeV); +{} - thePro.RegisterMe(&thePrecoPro); - thePro.RegisterMe(&theLHEPPro); - theLHEPPro.SetMinEnergy(0.15*GeV); +void HadronPhysicsLHEP_PRECO::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(thePrecoNeutron=new G4PrecoNeutronBuilder); + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + theLHEPNeutron->SetMinInelasticEnergy(0.15*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(thePrecoPro=new G4PrecoProtonBuilder); + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + theLHEPPro->SetMinEnergy(0.15*GeV); - thePiK.RegisterMe(&theLHEPPiK); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsLHEP_PRECO::~HadronPhysicsLHEP_PRECO() {} +HadronPhysicsLHEP_PRECO::~HadronPhysicsLHEP_PRECO() +{ + delete theNeutrons; + delete theLHEPNeutron; + delete thePrecoNeutron; + + delete thePiK; + delete theLHEPPiK; + + delete thePro; + delete theLHEPPro; + delete thePrecoPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsLHEP_PRECO::ConstructParticle() { @@ -63,11 +101,11 @@ void HadronPhysicsLHEP_PRECO::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsLHEP_PRECO::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_PRECO_HP/include/HadronPhysicsLHEP_PRECO_HP.hh b/physics_lists/hadronic/LHEP_PRECO_HP/include/HadronPhysicsLHEP_PRECO_HP.hh index 32bb21b5e9..175ae7186e 100644 --- a/physics_lists/hadronic/LHEP_PRECO_HP/include/HadronPhysicsLHEP_PRECO_HP.hh +++ b/physics_lists/hadronic/LHEP_PRECO_HP/include/HadronPhysicsLHEP_PRECO_HP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_PRECO_HP.hh,v 1.3 2005/12/02 17:42:10 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_PRECO_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsLHEP_PRECO_HP_h #define HadronPhysicsLHEP_PRECO_HP_h 1 @@ -27,10 +41,9 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" - +# #include "G4PiKBuilder.hh" #include "G4LHEPPiKBuilder.hh" @@ -54,21 +67,21 @@ class HadronPhysicsLHEP_PRECO_HP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LHEPNeutronBuilder theLHEPNeutron; - G4PrecoNeutronBuilder thePrecoNeutron; - G4NeutronHPBuilder theHPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LHEPNeutronBuilder * theLHEPNeutron; + G4PrecoNeutronBuilder * thePrecoNeutron; + G4NeutronHPBuilder * theHPNeutron; - G4PiKBuilder thePiK; - G4LHEPPiKBuilder theLHEPPiK; + G4PiKBuilder * thePiK; + G4LHEPPiKBuilder * theLHEPPiK; - G4ProtonBuilder thePro; - G4LHEPProtonBuilder theLHEPPro; - G4PrecoProtonBuilder thePrecoPro; + G4ProtonBuilder * thePro; + G4LHEPProtonBuilder * theLHEPPro; + G4PrecoProtonBuilder * thePrecoPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.hh b/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.hh index 7999887a09..46da7f2b32 100644 --- a/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.hh +++ b/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_PRECO_HP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_PRECO_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TLHEP_PRECO_HP_h #define TLHEP_PRECO_HP_h 1 @@ -31,7 +44,7 @@ template class TLHEP_PRECO_HP: public T { public: - TLHEP_PRECO_HP(); + TLHEP_PRECO_HP(G4int ver = 1); virtual ~TLHEP_PRECO_HP(); public: diff --git a/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc b/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc index b7d968f311..f5c48c3d70 100644 --- a/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc +++ b/physics_lists/hadronic/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: LHEP_PRECO_HP.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: LHEP_PRECO_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,39 +48,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsLHEP_PRECO_HP.hh" -template TLHEP_PRECO_HP::TLHEP_PRECO_HP(): T() +template TLHEP_PRECO_HP::TLHEP_PRECO_HP(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon, neutron); - G4cout << "You are using the simulation engine: LHEP_PRECO_HP 2.5"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsLHEP_PRECO_HP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - - + this->RegisterPhysics( new G4IonPhysics("ion")); } template TLHEP_PRECO_HP::~TLHEP_PRECO_HP() @@ -83,7 +96,8 @@ template void TLHEP_PRECO_HP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_PRECO_HP/src/HadronPhysicsLHEP_PRECO_HP.cc b/physics_lists/hadronic/LHEP_PRECO_HP/src/HadronPhysicsLHEP_PRECO_HP.cc index 619ceeeeb6..3061ebd053 100644 --- a/physics_lists/hadronic/LHEP_PRECO_HP/src/HadronPhysicsLHEP_PRECO_HP.cc +++ b/physics_lists/hadronic/LHEP_PRECO_HP/src/HadronPhysicsLHEP_PRECO_HP.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsLHEP_PRECO_HP.cc,v 1.3 2005/12/02 17:42:10 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsLHEP_PRECO_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsLHEP_PRECO_HP.hh" #include "globals.hh" @@ -34,22 +48,47 @@ HadronPhysicsLHEP_PRECO_HP::HadronPhysicsLHEP_PRECO_HP(const G4String& name) : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsLHEP_PRECO_HP::CreateModels() { - theNeutrons.RegisterMe(&theLHEPNeutron); - theLHEPNeutron.SetMinEnergy(19.9*MeV); - theLHEPNeutron.SetMinInelasticEnergy(0.15*GeV); - theNeutrons.RegisterMe(&thePrecoNeutron); - thePrecoNeutron.SetMinEnergy(19.9*MeV); - theNeutrons.RegisterMe(&theHPNeutron); + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder); + theLHEPNeutron->SetMinEnergy(19.9*MeV); + theLHEPNeutron->SetMinInelasticEnergy(0.15*GeV); + theNeutrons->RegisterMe(thePrecoNeutron=new G4PrecoNeutronBuilder); + thePrecoNeutron->SetMinEnergy(19.9*MeV); + theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder); - thePro.RegisterMe(&theLHEPPro); - theLHEPPro.SetMinEnergy(0.15*GeV); - thePro.RegisterMe(&thePrecoPro); + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder); + theLHEPPro->SetMinEnergy(0.15*GeV); + thePro->RegisterMe(thePrecoPro=new G4PrecoProtonBuilder); - thePiK.RegisterMe(&theLHEPPiK); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsLHEP_PRECO_HP::~HadronPhysicsLHEP_PRECO_HP() {} +HadronPhysicsLHEP_PRECO_HP::~HadronPhysicsLHEP_PRECO_HP() +{ + delete theNeutrons; + delete theLHEPNeutron; + delete thePrecoNeutron; + delete theHPNeutron; + + delete thePiK; + delete theLHEPPiK; + + delete thePro; + delete theLHEPPro; + delete thePrecoPro; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsLHEP_PRECO_HP::ConstructParticle() { @@ -66,11 +105,11 @@ void HadronPhysicsLHEP_PRECO_HP::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsLHEP_PRECO_HP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/include/G4BertiniNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4BertiniNeutronBuilder.hh index a6ad648752..d3fbcd21f1 100644 --- a/physics_lists/hadronic/Packaging/include/G4BertiniNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4BertiniNeutronBuilder.hh @@ -41,10 +41,10 @@ class G4BertiniNeutronBuilder : public G4VNeutronBuilder virtual ~G4BertiniNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} void SetMaxEnergy(G4double aM) {theMax = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4BertiniPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4BertiniPiKBuilder.hh index 65c30a5b44..4bc0e5dd10 100644 --- a/physics_lists/hadronic/Packaging/include/G4BertiniPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4BertiniPiKBuilder.hh @@ -41,13 +41,13 @@ class G4BertiniPiKBuilder : public G4VPiKBuilder virtual ~G4BertiniPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} void SetMaxEnergy(G4double aM) {theMax = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4BertiniProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4BertiniProtonBuilder.hh index 96776a8908..c9934a2ae3 100644 --- a/physics_lists/hadronic/Packaging/include/G4BertiniProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4BertiniProtonBuilder.hh @@ -41,8 +41,8 @@ class G4BertiniProtonBuilder : public G4VProtonBuilder virtual ~G4BertiniProtonBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4ProtonInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} void SetMaxEnergy(G4double aM) {theMax = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4BinaryNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4BinaryNeutronBuilder.hh index 6657f081e6..e34e4b5fbc 100644 --- a/physics_lists/hadronic/Packaging/include/G4BinaryNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4BinaryNeutronBuilder.hh @@ -41,10 +41,10 @@ class G4BinaryNeutronBuilder : public G4VNeutronBuilder virtual ~G4BinaryNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} void SetMaxEnergy(G4double aM) {theMax = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4BinaryPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4BinaryPiKBuilder.hh index 67cdb84f04..3a2a40f20d 100644 --- a/physics_lists/hadronic/Packaging/include/G4BinaryPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4BinaryPiKBuilder.hh @@ -41,13 +41,13 @@ class G4BinaryPiKBuilder : public G4VPiKBuilder virtual ~G4BinaryPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} void SetMaxEnergy(G4double aM) {theMax = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4BinaryProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4BinaryProtonBuilder.hh index 37afe49713..95c58f87a7 100644 --- a/physics_lists/hadronic/Packaging/include/G4BinaryProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4BinaryProtonBuilder.hh @@ -41,8 +41,8 @@ class G4BinaryProtonBuilder : public G4VProtonBuilder virtual ~G4BinaryProtonBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4ProtonInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} void SetMaxEnergy(G4double aM) {theMax = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4DataQuestionaire.hh b/physics_lists/hadronic/Packaging/include/G4DataQuestionaire.hh index cb6f2804f9..c6a68ca09b 100644 --- a/physics_lists/hadronic/Packaging/include/G4DataQuestionaire.hh +++ b/physics_lists/hadronic/Packaging/include/G4DataQuestionaire.hh @@ -35,9 +35,9 @@ class G4DataQuestionaire public: G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no) { - G4cout < theStringModel; - G4QGSMFragmentation theFragmentation; + G4QGSModel< G4GammaParticipants > * theStringModel; + G4QGSMFragmentation * theFragmentation; G4ExcitedStringDecay * theStringDecay; G4bool wasActivated; }; diff --git a/physics_lists/hadronic/Packaging/include/G4EmExtraPhysics.hh b/physics_lists/hadronic/Packaging/include/G4EmExtraPhysics.hh new file mode 100644 index 0000000000..74bad0a63e --- /dev/null +++ b/physics_lists/hadronic/Packaging/include/G4EmExtraPhysics.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4EmExtraPhysics.hh,v 1.2 2005/12/01 18:19:45 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmExtraPhysics +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 10.11.2005 V.Ivanchenko edit to provide a standard +// +//---------------------------------------------------------------------------- +// + +#ifndef G4EmExtraPhysics_h +#define G4EmExtraPhysics_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +#include "G4EmMessenger.hh" + +#include "G4SynchrotronRadiation.hh" +#include "G4ElectroNuclearBuilder.hh" + +class G4EmExtraPhysics : public G4VPhysicsConstructor +{ +public: + G4EmExtraPhysics(const G4String& name = "EM extra"); + virtual ~G4EmExtraPhysics(); + + void ConstructParticle(); + void ConstructProcess(); + + void Synch(G4String & aState); + void GammaNuclear(G4String & aState); + +private: + + G4bool wasActivated; + G4bool synchOn; + G4bool gammNucOn; + + G4EmMessenger* theMessenger; + G4SynchrotronRadiation* theElectronSynch; + G4SynchrotronRadiation* thePositronSynch; + G4ElectroNuclearBuilder* theGNPhysics; +}; + +#endif + + + + + diff --git a/physics_lists/hadronic/Packaging/include/G4EmMessenger.hh b/physics_lists/hadronic/Packaging/include/G4EmMessenger.hh new file mode 100644 index 0000000000..54d51e4983 --- /dev/null +++ b/physics_lists/hadronic/Packaging/include/G4EmMessenger.hh @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4EmMessenger.hh,v 1.2 2005/11/30 18:28:52 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmMessenger +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 09.11.2005 V.Ivanchenko edit to provide a standard +// +//---------------------------------------------------------------------------- +// + +#ifndef G4EmMessenger_h +#define G4EmMessenger_h 1 + +class G4EmExtraPhysics; + +#include "G4UImessenger.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" + +class G4EmMessenger: public G4UImessenger +{ +public: + G4EmMessenger(G4EmExtraPhysics* af); + virtual ~G4EmMessenger(); + + void SetNewValue(G4UIcommand* aComm, G4String aS); + +private: + G4EmExtraPhysics* theB; + G4UIcmdWithAString* theSynch; + G4UIcmdWithAString* theGN; + G4UIdirectory* aDir1; + G4UIdirectory* aDir2; +}; + +#endif diff --git a/physics_lists/hadronic/Packaging/include/G4EmStandardPhysics.hh b/physics_lists/hadronic/Packaging/include/G4EmStandardPhysics.hh new file mode 100644 index 0000000000..e88fee6b94 --- /dev/null +++ b/physics_lists/hadronic/Packaging/include/G4EmStandardPhysics.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmStandardPhysics.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmStandardPhysics +// +// Author: V.Ivanchenko 09.11.2005 +// +// Modified: +// 05.12.2005 V.Ivanchenko add controlled verbosity +// +//---------------------------------------------------------------------------- +// + +#ifndef G4EmStandardPhysics_h +#define G4EmStandardPhysics_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +// for lib list detection.... +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4EmProcessOptions.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmStandardPhysics : public G4VPhysicsConstructor +{ +public: + G4EmStandardPhysics(const G4String& name = "EMstandard", G4int ver = 1, + G4bool msc=true); + virtual ~G4EmStandardPhysics(); + +public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + +private: + G4int verbose; + G4bool mscStepLimit; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + diff --git a/physics_lists/hadronic/Packaging/include/G4EmStandardPhysics71.hh b/physics_lists/hadronic/Packaging/include/G4EmStandardPhysics71.hh new file mode 100644 index 0000000000..8a69910027 --- /dev/null +++ b/physics_lists/hadronic/Packaging/include/G4EmStandardPhysics71.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EmStandardPhysics71.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmStandardPhysics71 +// +// Author: V.Ivanchenko 09.11.2005 +// +// Modified: +// 05.12.2005 V.Ivanchenko add controlled verbosity +// +//---------------------------------------------------------------------------- +// + +#ifndef G4EmStandardPhysics71_h +#define G4EmStandardPhysics71_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +// for lib list detection.... +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4EmProcessOptions.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4EmStandardPhysics71 : public G4VPhysicsConstructor +{ +public: + G4EmStandardPhysics71(const G4String& name = "EMstandard71", G4int ver = 1, + G4bool msc=true); + virtual ~G4EmStandardPhysics71(); + +public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + +private: + G4int verbose; + G4bool mscStepLimit; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + diff --git a/physics_lists/hadronic/Packaging/include/G4FTFCNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4FTFCNeutronBuilder.hh index 30611f7810..4e85f7142c 100644 --- a/physics_lists/hadronic/Packaging/include/G4FTFCNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4FTFCNeutronBuilder.hh @@ -45,18 +45,17 @@ class G4FTFCNeutronBuilder : public G4VNeutronBuilder virtual ~G4FTFCNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4TheoFSGenerator * theModel; G4StringChipsParticleLevelInterface * theCascade; - G4FTFModel theStringModel; - G4LundStringFragmentation theFragmentation; + G4FTFModel * theStringModel; G4ExcitedStringDecay * theStringDecay; G4NeutronInelasticCrossSection theXSec; diff --git a/physics_lists/hadronic/Packaging/include/G4FTFCPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4FTFCPiKBuilder.hh index ab57edbfb8..3ba77bcab8 100644 --- a/physics_lists/hadronic/Packaging/include/G4FTFCPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4FTFCPiKBuilder.hh @@ -46,13 +46,13 @@ class G4FTFCPiKBuilder : public G4VPiKBuilder virtual ~G4FTFCPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} @@ -60,8 +60,7 @@ class G4FTFCPiKBuilder : public G4VPiKBuilder G4PiNuclearCrossSection thePiData; G4TheoFSGenerator * theModel; G4StringChipsParticleLevelInterface * theCascade; - G4FTFModel theStringModel; - G4LundStringFragmentation theFragmentation; + G4FTFModel * theStringModel; G4ExcitedStringDecay * theStringDecay; G4double theMin; diff --git a/physics_lists/hadronic/Packaging/include/G4FTFCProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4FTFCProtonBuilder.hh index 67e4328a0c..1e84f303ef 100644 --- a/physics_lists/hadronic/Packaging/include/G4FTFCProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4FTFCProtonBuilder.hh @@ -47,8 +47,8 @@ class G4FTFCProtonBuilder : public G4VProtonBuilder virtual ~G4FTFCProtonBuilder(){}; public: - virtual void Build(G4HadronElasticProcess & ){}; - virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * ){}; + virtual void Build(G4ProtonInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4FTFPNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4FTFPNeutronBuilder.hh index 2ea656e609..e9e04182f9 100644 --- a/physics_lists/hadronic/Packaging/include/G4FTFPNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4FTFPNeutronBuilder.hh @@ -47,20 +47,18 @@ class G4FTFPNeutronBuilder : public G4VNeutronBuilder virtual ~G4FTFPNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4TheoFSGenerator * theModel; - G4ExcitationHandler theHandler; G4PreCompoundModel * thePreEquilib; G4GeneratorPrecompoundInterface * theCascade; - G4FTFModel theStringModel; - G4LundStringFragmentation theFragmentation; + G4FTFModel * theStringModel; G4ExcitedStringDecay * theStringDecay; G4NeutronInelasticCrossSection theXSec; diff --git a/physics_lists/hadronic/Packaging/include/G4FTFPPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4FTFPPiKBuilder.hh index f4f81441b6..984341c97c 100644 --- a/physics_lists/hadronic/Packaging/include/G4FTFPPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4FTFPPiKBuilder.hh @@ -48,24 +48,22 @@ class G4FTFPPiKBuilder : public G4VPiKBuilder virtual ~G4FTFPPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4PiNuclearCrossSection thePiData; G4TheoFSGenerator * theModel; - G4ExcitationHandler theHandler; G4PreCompoundModel * thePreEquilib; G4GeneratorPrecompoundInterface * theCascade; - G4FTFModel theStringModel; - G4LundStringFragmentation theFragmentation; + G4FTFModel * theStringModel; G4ExcitedStringDecay * theStringDecay; G4double theMin; diff --git a/physics_lists/hadronic/Packaging/include/G4FTFPProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4FTFPProtonBuilder.hh index dd49820b29..b6c29f41ab 100644 --- a/physics_lists/hadronic/Packaging/include/G4FTFPProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4FTFPProtonBuilder.hh @@ -49,19 +49,17 @@ class G4FTFPProtonBuilder : public G4VProtonBuilder virtual ~G4FTFPProtonBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4ProtonInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4ProtonInelasticCrossSection theXSec; G4TheoFSGenerator * theModel; - G4ExcitationHandler theHandler; G4PreCompoundModel * thePreEquilib; G4GeneratorPrecompoundInterface * theCascade; - G4FTFModel theStringModel; - G4LundStringFragmentation theFragmentation; + G4FTFModel * theStringModel; G4ExcitedStringDecay * theStringDecay; G4double theMin; diff --git a/physics_lists/hadronic/Packaging/include/G4HadronQEDBuilder.hh b/physics_lists/hadronic/Packaging/include/G4HadronQEDBuilder.hh deleted file mode 100644 index f01f91ca01..0000000000 --- a/physics_lists/hadronic/Packaging/include/G4HadronQEDBuilder.hh +++ /dev/null @@ -1,115 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -#ifndef G4HadronQEDBuilder_h -#define G4HadronQEDBuilder_h 1 - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4MultipleScattering.hh" -#include "G4hIonisation.hh" -#include "G4ProcessManager.hh" -#include "G4ParticleTable.hh" - -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4SigmaMinus.hh" -#include "G4AntiSigmaMinus.hh" -#include "G4SigmaPlus.hh" -#include "G4AntiSigmaPlus.hh" -#include "G4XiMinus.hh" -#include "G4AntiXiMinus.hh" -#include "G4OmegaMinus.hh" -#include "G4AntiOmegaMinus.hh" -#include "plist.tmp" -#include "ParticleCodeMap.hh" - -class G4HadronQEDBuilder -{ - public: - G4HadronQEDBuilder(); - virtual ~G4HadronQEDBuilder(); - - public: - virtual void Build(); - - private: - void RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI); - - public: // to get gcc 2.95 satisfied... - typedef Plist theParticles; - - typedef std::pair > entryType; - - static std::vector< entryType > & theCache() - { - static std::vector< entryType > cache; - return cache; - } - private: - - G4bool wasActivated; - - struct Clear - { void operator () (entryType & aE) - { - G4ProcessManager * aP = aE.first->GetProcessManager(); - if(aP) aP->RemoveProcess(aE.second.first); - if(aP) aP->RemoveProcess(aE.second.second); - } - }; - - struct Register - { - template - struct Fun // to get gcc 2.95 satisfied... - { - void operator()() - { - G4ParticleDefinition * aPart = - G4ParticleTable::GetParticleTable()->FindParticle(ParticleCodeMap::PDG_CODE); - // G4cout << aPart< Calling for "<GetParticleName()<GetProcessManager(); - G4hIonisation * aI = new G4hIonisation; - G4MultipleScattering * aM = new G4MultipleScattering; - aP->AddProcess(aI, ordInActive,2, 2); - aP->AddProcess(aM); - aP->SetProcessOrdering(aM, idxAlongStep, 1); - aP->SetProcessOrdering(aM, idxPostStep, 1); - G4HadronQEDBuilder::theCache().push_back(std::make_pair(aPart, std::pair(aM, aI) ) ); - } - }; - }; -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/physics_lists/hadronic/Packaging/include/G4IonPhysics.hh b/physics_lists/hadronic/Packaging/include/G4IonPhysics.hh new file mode 100644 index 0000000000..8343d6f669 --- /dev/null +++ b/physics_lists/hadronic/Packaging/include/G4IonPhysics.hh @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4IonPhysics.hh,v 1.2 2005/12/02 12:40:04 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4IonBuilder +// +// Author: V.Ivanchenko 09.11.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// + +#ifndef G4IonPhysics_h +#define G4IonPhysics_h 1 + +#include "globals.hh" + +#include "G4VPhysicsConstructor.hh" + +class G4LElastic; +class G4HadronElasticProcess; +class G4DeuteronInelasticProcess; +class G4LEDeuteronInelastic; +class G4TritonInelasticProcess; +class G4LETritonInelastic; +class G4AlphaInelasticProcess; +class G4LEAlphaInelastic; + +class G4IonPhysics : public G4VPhysicsConstructor +{ +public: + G4IonPhysics(const G4String& name="ions"); + virtual ~G4IonPhysics(); + + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + virtual void ConstructParticle(); + + // This method will be invoked in the Construct() method. + // each physics process will be instantiated and + // registered to the process manager of each particle type + virtual void ConstructProcess(); + +private: + // Elastic Process + G4LElastic* theElasticModel; + + // Generic Ion physics + G4HadronElasticProcess* theIonElasticProcess; + + // Deuteron physics + G4HadronElasticProcess* theDElasticProcess; + G4DeuteronInelasticProcess* fDeuteronProcess; + G4LEDeuteronInelastic* fDeuteronModel; + + // Triton physics + G4HadronElasticProcess* theTElasticProcess; + G4TritonInelasticProcess* fTritonProcess; + G4LETritonInelastic* fTritonModel; + + // Alpha physics + G4HadronElasticProcess* theAElasticProcess; + G4AlphaInelasticProcess* fAlphaProcess; + G4LEAlphaInelastic* fAlphaModel; + + // He3 physics + G4HadronElasticProcess* theHe3ElasticProcess; + + G4bool wasActivated; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/physics_lists/hadronic/Packaging/include/G4LEADNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LEADNeutronBuilder.hh index 31569d2ff3..4d8b74d837 100644 --- a/physics_lists/hadronic/Packaging/include/G4LEADNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LEADNeutronBuilder.hh @@ -41,10 +41,10 @@ class G4LEADNeutronBuilder : public G4VNeutronBuilder virtual ~G4LEADNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4LEADPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LEADPiKBuilder.hh index 96f4c14db6..47922c6f6c 100644 --- a/physics_lists/hadronic/Packaging/include/G4LEADPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LEADPiKBuilder.hh @@ -41,13 +41,13 @@ class G4LEADPiKBuilder : public G4VPiKBuilder virtual ~G4LEADPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4LEADProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LEADProtonBuilder.hh index 3de0a31a36..7b75d31238 100644 --- a/physics_lists/hadronic/Packaging/include/G4LEADProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LEADProtonBuilder.hh @@ -41,8 +41,8 @@ class G4LEADProtonBuilder : public G4VProtonBuilder virtual ~G4LEADProtonBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4ProtonInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} diff --git a/physics_lists/hadronic/Packaging/include/G4LEPNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LEPNeutronBuilder.hh index c0e3531a24..4d6e983661 100644 --- a/physics_lists/hadronic/Packaging/include/G4LEPNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LEPNeutronBuilder.hh @@ -43,10 +43,10 @@ class G4LEPNeutronBuilder : public G4VNeutronBuilder virtual ~G4LEPNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) { diff --git a/physics_lists/hadronic/Packaging/include/G4LEPPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LEPPiKBuilder.hh index cb343d0d47..474af4909c 100644 --- a/physics_lists/hadronic/Packaging/include/G4LEPPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LEPPiKBuilder.hh @@ -44,13 +44,13 @@ class G4LEPPiKBuilder : public G4VPiKBuilder virtual ~G4LEPPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) { diff --git a/physics_lists/hadronic/Packaging/include/G4LEPProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LEPProtonBuilder.hh index 6a34f5c41c..21254dd04f 100644 --- a/physics_lists/hadronic/Packaging/include/G4LEPProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LEPProtonBuilder.hh @@ -39,8 +39,8 @@ class G4LEPProtonBuilder : public G4VProtonBuilder virtual ~G4LEPProtonBuilder(); public: - virtual void Build(G4ProtonInelasticProcess & aP); - virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4ProtonInelasticProcess * aP); + virtual void Build(G4HadronElasticProcess * aP); void SetMinEnergy(G4double aM) { diff --git a/physics_lists/hadronic/Packaging/include/G4LHEPNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LHEPNeutronBuilder.hh index b2191be0ef..995edde842 100644 --- a/physics_lists/hadronic/Packaging/include/G4LHEPNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LHEPNeutronBuilder.hh @@ -44,10 +44,10 @@ class G4LHEPNeutronBuilder : public G4VNeutronBuilder virtual ~G4LHEPNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) { diff --git a/physics_lists/hadronic/Packaging/include/G4LHEPPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LHEPPiKBuilder.hh index d14546ac78..d5bab8ec30 100644 --- a/physics_lists/hadronic/Packaging/include/G4LHEPPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LHEPPiKBuilder.hh @@ -50,13 +50,13 @@ class G4LHEPPiKBuilder : public G4VPiKBuilder virtual ~G4LHEPPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) { diff --git a/physics_lists/hadronic/Packaging/include/G4LHEPProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4LHEPProtonBuilder.hh index 51f8906a31..8523f37258 100644 --- a/physics_lists/hadronic/Packaging/include/G4LHEPProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4LHEPProtonBuilder.hh @@ -40,8 +40,8 @@ class G4LHEPProtonBuilder : public G4VProtonBuilder virtual ~G4LHEPProtonBuilder(); public: - virtual void Build(G4ProtonInelasticProcess & aP); - virtual void Build(G4HadronElasticProcess & aP); + virtual void Build(G4ProtonInelasticProcess * aP); + virtual void Build(G4HadronElasticProcess * aP); void SetMinEnergy(G4double aM) { diff --git a/physics_lists/hadronic/Packaging/include/G4NeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4NeutronBuilder.hh index 6bec694c63..c3200caf9a 100644 --- a/physics_lists/hadronic/Packaging/include/G4NeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4NeutronBuilder.hh @@ -44,10 +44,10 @@ class G4NeutronBuilder void RegisterMe(G4VNeutronBuilder * aB) {theModelCollections.push_back(aB);} private: - G4HadronElasticProcess theNeutronElasticProcess; - G4NeutronInelasticProcess theNeutronInelastic; - G4HadronFissionProcess theNeutronFission; - G4HadronCaptureProcess theNeutronCapture; + G4HadronElasticProcess * theNeutronElasticProcess; + G4NeutronInelasticProcess * theNeutronInelastic; + G4HadronFissionProcess * theNeutronFission; + G4HadronCaptureProcess * theNeutronCapture; std::vector theModelCollections; diff --git a/physics_lists/hadronic/Packaging/include/G4NeutronHPBuilder.hh b/physics_lists/hadronic/Packaging/include/G4NeutronHPBuilder.hh index c90f577473..7a4babf9c7 100644 --- a/physics_lists/hadronic/Packaging/include/G4NeutronHPBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4NeutronHPBuilder.hh @@ -47,10 +47,10 @@ class G4NeutronHPBuilder : public G4VNeutronBuilder virtual ~G4NeutronHPBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); private: G4NeutronHPElastic * theHPElastic; diff --git a/physics_lists/hadronic/Packaging/include/G4PiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4PiKBuilder.hh index 0f11c88e1d..6da25a87a6 100644 --- a/physics_lists/hadronic/Packaging/include/G4PiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4PiKBuilder.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4PiKBuilder.hh,v 1.2 2005/11/25 15:38:50 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4PiKBuilder +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 16.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- +// #ifndef G4PiKBuilder_h #define G4PiKBuilder_h 1 @@ -42,19 +56,19 @@ class G4PiKBuilder void RegisterMe(G4VPiKBuilder * aB) {theModelCollections.push_back(aB);} private: - G4HadronElasticProcess thePionPlusElasticProcess; - G4HadronElasticProcess thePionMinusElasticProcess; - G4HadronElasticProcess theKaonPlusElasticProcess; - G4HadronElasticProcess theKaonMinusElasticProcess; - G4HadronElasticProcess theKaonZeroLElasticProcess; - G4HadronElasticProcess theKaonZeroSElasticProcess; + G4HadronElasticProcess* thePionPlusElasticProcess; + G4HadronElasticProcess* thePionMinusElasticProcess; + G4HadronElasticProcess* theKaonPlusElasticProcess; + G4HadronElasticProcess* theKaonMinusElasticProcess; + G4HadronElasticProcess* theKaonZeroLElasticProcess; + G4HadronElasticProcess* theKaonZeroSElasticProcess; - G4PionPlusInelasticProcess thePionPlusInelastic; - G4PionMinusInelasticProcess thePionMinusInelastic; - G4KaonPlusInelasticProcess theKaonPlusInelastic; - G4KaonMinusInelasticProcess theKaonMinusInelastic; - G4KaonZeroLInelasticProcess theKaonZeroLInelastic; - G4KaonZeroSInelasticProcess theKaonZeroSInelastic; + G4PionPlusInelasticProcess* thePionPlusInelastic; + G4PionMinusInelasticProcess* thePionMinusInelastic; + G4KaonPlusInelasticProcess* theKaonPlusInelastic; + G4KaonMinusInelasticProcess* theKaonMinusInelastic; + G4KaonZeroLInelasticProcess* theKaonZeroLInelastic; + G4KaonZeroSInelasticProcess* theKaonZeroSInelastic; std::vector theModelCollections; diff --git a/physics_lists/hadronic/Packaging/include/G4PrecoNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4PrecoNeutronBuilder.hh index 6acc31bda6..18f04aa2ef 100644 --- a/physics_lists/hadronic/Packaging/include/G4PrecoNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4PrecoNeutronBuilder.hh @@ -42,16 +42,15 @@ class G4PrecoNeutronBuilder : public G4VNeutronBuilder virtual ~G4PrecoNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4PreCompoundModel * theModel; - G4ExcitationHandler theHandler; G4NeutronInelasticCrossSection theXSec; G4double theMin; G4double theMax; diff --git a/physics_lists/hadronic/Packaging/include/G4PrecoProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4PrecoProtonBuilder.hh index b196d74966..70cf45b824 100644 --- a/physics_lists/hadronic/Packaging/include/G4PrecoProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4PrecoProtonBuilder.hh @@ -31,7 +31,6 @@ #include "G4ProtonInelasticProcess.hh" #include "G4VProtonBuilder.hh" -#include "G4ExcitationHandler.hh" #include "G4PreCompoundModel.hh" #include "G4ProtonInelasticCrossSection.hh" @@ -42,14 +41,13 @@ class G4PrecoProtonBuilder : public G4VProtonBuilder virtual ~G4PrecoProtonBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4ProtonInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4ProtonInelasticCrossSection theXSec; - G4ExcitationHandler theHandler; G4PreCompoundModel * theModel; G4double theMin; G4double theMax; diff --git a/physics_lists/hadronic/Packaging/include/G4ProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4ProtonBuilder.hh index 84394533c7..5cddafab97 100644 --- a/physics_lists/hadronic/Packaging/include/G4ProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4ProtonBuilder.hh @@ -42,8 +42,8 @@ class G4ProtonBuilder void RegisterMe(G4VProtonBuilder * aB) {theModelCollections.push_back(aB);} private: - G4HadronElasticProcess theProtonElasticProcess; - G4ProtonInelasticProcess theProtonInelastic; + G4HadronElasticProcess * theProtonElasticProcess; + G4ProtonInelasticProcess * theProtonInelastic; std::vector theModelCollections; diff --git a/physics_lists/hadronic/Packaging/include/G4QGSCNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4QGSCNeutronBuilder.hh index cccb0e62a3..7938a57e52 100644 --- a/physics_lists/hadronic/Packaging/include/G4QGSCNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4QGSCNeutronBuilder.hh @@ -46,18 +46,17 @@ class G4QGSCNeutronBuilder : public G4VNeutronBuilder virtual ~G4QGSCNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & ){} - virtual void Build(G4HadronFissionProcess & ){} - virtual void Build(G4HadronCaptureProcess & ){} - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * ){} + virtual void Build(G4HadronFissionProcess * ){} + virtual void Build(G4HadronCaptureProcess * ){} + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: - G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSModel< G4QGSParticipants > * theStringModel; G4StringChipsParticleLevelInterface * theCascade; G4TheoFSGenerator * theModel; - G4QGSMFragmentation theFragmentation; G4ExcitedStringDecay * theStringDecay; G4NeutronInelasticCrossSection theXSec; diff --git a/physics_lists/hadronic/Packaging/include/G4QGSCPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4QGSCPiKBuilder.hh index 37404a1715..a55d98cc87 100644 --- a/physics_lists/hadronic/Packaging/include/G4QGSCPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4QGSCPiKBuilder.hh @@ -47,13 +47,13 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder virtual ~G4QGSCPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} @@ -62,7 +62,7 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder G4TheoFSGenerator * theModel; G4StringChipsParticleLevelInterface * theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSModel< G4QGSParticipants > * theStringModel; G4QGSMFragmentation theFragmentation; G4ExcitedStringDecay * theStringDecay; G4double theMin; diff --git a/physics_lists/hadronic/Packaging/include/G4QGSCProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4QGSCProtonBuilder.hh index 1e31cd83d6..70045f0ab6 100644 --- a/physics_lists/hadronic/Packaging/include/G4QGSCProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4QGSCProtonBuilder.hh @@ -48,8 +48,8 @@ class G4QGSCProtonBuilder : public G4VProtonBuilder virtual ~G4QGSCProtonBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4ProtonInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} @@ -57,8 +57,7 @@ class G4QGSCProtonBuilder : public G4VProtonBuilder G4ProtonInelasticCrossSection theXSec; G4TheoFSGenerator * theModel; G4StringChipsParticleLevelInterface * theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; - G4QGSMFragmentation theFragmentation; + G4QGSModel< G4QGSParticipants > * theStringModel; G4ExcitedStringDecay * theStringDecay; G4double theMin; diff --git a/physics_lists/hadronic/Packaging/include/G4QGSPNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4QGSPNeutronBuilder.hh index 5f36947d4b..0c575fa8d7 100644 --- a/physics_lists/hadronic/Packaging/include/G4QGSPNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4QGSPNeutronBuilder.hh @@ -48,20 +48,18 @@ class G4QGSPNeutronBuilder : public G4VNeutronBuilder virtual ~G4QGSPNeutronBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4HadronFissionProcess * aP); + virtual void Build(G4HadronCaptureProcess * aP); + virtual void Build(G4NeutronInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4TheoFSGenerator * theModel; - G4ExcitationHandler theHandler; G4PreCompoundModel * thePreEquilib; G4GeneratorPrecompoundInterface * theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; - G4QGSMFragmentation theFragmentation; + G4QGSModel< G4QGSParticipants > * theStringModel; G4ExcitedStringDecay * theStringDecay; G4NeutronInelasticCrossSection theXSec; diff --git a/physics_lists/hadronic/Packaging/include/G4QGSPPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4QGSPPiKBuilder.hh index 0edea947e8..303dea6ed3 100644 --- a/physics_lists/hadronic/Packaging/include/G4QGSPPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4QGSPPiKBuilder.hh @@ -49,24 +49,22 @@ class G4QGSPPiKBuilder : public G4VPiKBuilder virtual ~G4QGSPPiKBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4PionPlusInelasticProcess & aP); - virtual void Build(G4PionMinusInelasticProcess & aP); - virtual void Build(G4KaonPlusInelasticProcess & aP); - virtual void Build(G4KaonMinusInelasticProcess & aP); - virtual void Build(G4KaonZeroLInelasticProcess & aP); - virtual void Build(G4KaonZeroSInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4PionPlusInelasticProcess * aP); + virtual void Build(G4PionMinusInelasticProcess * aP); + virtual void Build(G4KaonPlusInelasticProcess * aP); + virtual void Build(G4KaonMinusInelasticProcess * aP); + virtual void Build(G4KaonZeroLInelasticProcess * aP); + virtual void Build(G4KaonZeroSInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4PiNuclearCrossSection thePiData; G4TheoFSGenerator * theModel; - G4ExcitationHandler theHandler; G4PreCompoundModel * thePreEquilib; G4GeneratorPrecompoundInterface * theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; - G4QGSMFragmentation theFragmentation; + G4QGSModel< G4QGSParticipants > * theStringModel; G4ExcitedStringDecay * theStringDecay; G4double theMin; diff --git a/physics_lists/hadronic/Packaging/include/G4QGSPProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4QGSPProtonBuilder.hh index 3e178cef93..b1904a0051 100644 --- a/physics_lists/hadronic/Packaging/include/G4QGSPProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4QGSPProtonBuilder.hh @@ -50,19 +50,17 @@ class G4QGSPProtonBuilder : public G4VProtonBuilder virtual ~G4QGSPProtonBuilder(); public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4ProtonInelasticProcess & aP); + virtual void Build(G4HadronElasticProcess * aP); + virtual void Build(G4ProtonInelasticProcess * aP); void SetMinEnergy(G4double aM) {theMin = aM;} private: G4ProtonInelasticCrossSection theXSec; G4TheoFSGenerator * theModel; - G4ExcitationHandler theHandler; G4PreCompoundModel * thePreEquilib; G4GeneratorPrecompoundInterface * theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; - G4QGSMFragmentation theFragmentation; + G4QGSModel< G4QGSParticipants > * theStringModel; G4ExcitedStringDecay * theStringDecay; G4double theMin; diff --git a/physics_lists/hadronic/Packaging/include/G4StoppingHadronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4StoppingHadronBuilder.hh index 9ae8e97333..a168d0792e 100644 --- a/physics_lists/hadronic/Packaging/include/G4StoppingHadronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4StoppingHadronBuilder.hh @@ -20,38 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4StoppingHadronBuilder.hh,v 1.3 2005/11/25 15:38:50 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4StoppingHadronBuilder +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 10.11.2005 V.Ivanchenko edit to provide a standard and add mu- +// +//---------------------------------------------------------------------------- +// + #ifndef G4StoppingHadronBuilder_h #define G4StoppingHadronBuilder_h 1 #include "globals.hh" -#include "G4ios.hh" -// At rest processes +#include "G4MuonMinusCaptureAtRest.hh" #include "G4AntiProtonAnnihilationAtRest.hh" #include "G4AntiNeutronAnnihilationAtRest.hh" #include "G4PionMinusAbsorptionAtRest.hh" #include "G4KaonMinusAbsorption.hh" -class G4StoppingHadronBuilder + +class G4StoppingHadronBuilder { - public: - G4StoppingHadronBuilder(); - virtual ~G4StoppingHadronBuilder(); +public: + G4StoppingHadronBuilder(); + virtual ~G4StoppingHadronBuilder(); - public: - virtual void Build(); + virtual void Build(); - private: +private: - G4PionMinusAbsorptionAtRest thePionMinusAbsorption; - G4KaonMinusAbsorption theKaonMinusAbsorption; - G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation; - G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation; - - G4bool wasActivated; + G4MuonMinusCaptureAtRest* theMuonMinusAbsorption; + G4PionMinusAbsorptionAtRest* thePionMinusAbsorption; + G4KaonMinusAbsorption* theKaonMinusAbsorption; + G4AntiProtonAnnihilationAtRest* theAntiProtonAnnihilation; + G4AntiNeutronAnnihilationAtRest* theAntiNeutronAnnihilation; + + G4bool wasActivated; }; -// 2002 by J.P. Wellisch - #endif diff --git a/physics_lists/hadronic/Packaging/include/G4VNeutronBuilder.hh b/physics_lists/hadronic/Packaging/include/G4VNeutronBuilder.hh index 7ee1913f04..c76bc5d89b 100644 --- a/physics_lists/hadronic/Packaging/include/G4VNeutronBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4VNeutronBuilder.hh @@ -33,10 +33,10 @@ class G4VNeutronBuilder public: G4VNeutronBuilder() {} virtual ~G4VNeutronBuilder() {} - virtual void Build(G4HadronElasticProcess & aP) = 0; - virtual void Build(G4HadronFissionProcess & aP) = 0; - virtual void Build(G4HadronCaptureProcess & aP) = 0; - virtual void Build(G4NeutronInelasticProcess & aP) = 0; + virtual void Build(G4HadronElasticProcess * aP) = 0; + virtual void Build(G4HadronFissionProcess * aP) = 0; + virtual void Build(G4HadronCaptureProcess * aP) = 0; + virtual void Build(G4NeutronInelasticProcess * aP) = 0; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/include/G4VPiKBuilder.hh b/physics_lists/hadronic/Packaging/include/G4VPiKBuilder.hh index da20d1bf5a..a48e38b8a2 100644 --- a/physics_lists/hadronic/Packaging/include/G4VPiKBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4VPiKBuilder.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VPiKBuilder.hh,v 1.2 2005/11/25 15:38:50 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4VPiKBuilder +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 16.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- +// #ifndef G4VPiKBuilder_h #define G4VPiKBuilder_h @@ -36,13 +50,13 @@ class G4VPiKBuilder public: G4VPiKBuilder() {} virtual ~G4VPiKBuilder() {} - virtual void Build(G4HadronElasticProcess & aP) = 0; - virtual void Build(G4PionPlusInelasticProcess & aP) = 0; - virtual void Build(G4PionMinusInelasticProcess & aP) = 0; - virtual void Build(G4KaonPlusInelasticProcess & aP) = 0; - virtual void Build(G4KaonMinusInelasticProcess & aP) = 0; - virtual void Build(G4KaonZeroLInelasticProcess & aP) = 0; - virtual void Build(G4KaonZeroSInelasticProcess & aP) = 0; + virtual void Build(G4HadronElasticProcess * aP) = 0; + virtual void Build(G4PionPlusInelasticProcess * aP) = 0; + virtual void Build(G4PionMinusInelasticProcess * aP) = 0; + virtual void Build(G4KaonPlusInelasticProcess * aP) = 0; + virtual void Build(G4KaonMinusInelasticProcess * aP) = 0; + virtual void Build(G4KaonZeroLInelasticProcess * aP) = 0; + virtual void Build(G4KaonZeroSInelasticProcess * aP) = 0; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/include/G4VProtonBuilder.hh b/physics_lists/hadronic/Packaging/include/G4VProtonBuilder.hh index ef94fb216c..64bee33e66 100644 --- a/physics_lists/hadronic/Packaging/include/G4VProtonBuilder.hh +++ b/physics_lists/hadronic/Packaging/include/G4VProtonBuilder.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VProtonBuilder.hh,v 1.2 2005/11/25 15:38:50 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4VProtonBuilder +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 21.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- +// #ifndef G4VProtonBuilder_h #define G4VProtonBuilder_h @@ -31,8 +45,8 @@ class G4VProtonBuilder public: G4VProtonBuilder() {} virtual ~G4VProtonBuilder() {} - virtual void Build(G4HadronElasticProcess & aP) = 0; - virtual void Build(G4ProtonInelasticProcess & aP) = 0; + virtual void Build(G4HadronElasticProcess * aP) = 0; + virtual void Build(G4ProtonInelasticProcess * aP) = 0; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/include/IonPhysics.hh b/physics_lists/hadronic/Packaging/include/IonPhysics.hh deleted file mode 100644 index 79fe079c53..0000000000 --- a/physics_lists/hadronic/Packaging/include/IonPhysics.hh +++ /dev/null @@ -1,107 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -//======================== -// taken from example N04 of G4 distribution -//======================== -#ifndef IonPhysics_h -#define IonPhysics_h 1 - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4VPhysicsConstructor.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4LElastic.hh" - -#include "G4DeuteronInelasticProcess.hh" -#include "G4LEDeuteronInelastic.hh" - -#include "G4TritonInelasticProcess.hh" -#include "G4LETritonInelastic.hh" - -#include "G4AlphaInelasticProcess.hh" -#include "G4LEAlphaInelastic.hh" - -#include "G4hIonisation.hh" -#include "G4ionIonisation.hh" -#include "G4MultipleScattering.hh" - -class IonPhysics : public G4VPhysicsConstructor -{ - public: - IonPhysics(const G4String& name="ion"); - virtual ~IonPhysics(); - - public: - // This method will be invoked in the Construct() method. - // each particle type will be instantiated - virtual void ConstructParticle(); - - // This method will be invoked in the Construct() method. - // each physics process will be instantiated and - // registered to the process manager of each particle type - virtual void ConstructProcess(); - - protected: - // Elastic Process - G4LElastic* theElasticModel; - - // Generic Ion physics - G4HadronElasticProcess theIonElasticProcess; - G4MultipleScattering fIonMultipleScattering; - G4ionIonisation fIonIonisation; - - // Deuteron physics - G4HadronElasticProcess theDElasticProcess; - G4MultipleScattering fDeuteronMultipleScattering; - G4hIonisation fDeuteronIonisation; - G4DeuteronInelasticProcess fDeuteronProcess; - G4LEDeuteronInelastic* fDeuteronModel; - - // Triton physics - G4HadronElasticProcess theTElasticProcess; - G4MultipleScattering fTritonMultipleScattering; - G4hIonisation fTritonIonisation; - G4TritonInelasticProcess fTritonProcess; - G4LETritonInelastic* fTritonModel; - - // Alpha physics - G4HadronElasticProcess theAElasticProcess; - G4MultipleScattering fAlphaMultipleScattering; - G4hIonisation fAlphaIonisation; - G4AlphaInelasticProcess fAlphaProcess; - G4LEAlphaInelastic* fAlphaModel; - - // He3 physics - G4HadronElasticProcess theHe3ElasticProcess; - G4MultipleScattering fHe3MultipleScattering; - G4hIonisation fHe3Ionisation; - - G4bool wasActivated; -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/physics_lists/hadronic/Packaging/include/ParticleCodeMap.hh b/physics_lists/hadronic/Packaging/include/ParticleCodeMap.hh deleted file mode 100644 index da6f742d70..0000000000 --- a/physics_lists/hadronic/Packaging/include/ParticleCodeMap.hh +++ /dev/null @@ -1,60 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -#ifndef ParticleCodeMap_hh -#define ParticleCodeMap_hh - -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4SigmaMinus.hh" -#include "G4AntiSigmaMinus.hh" -#include "G4SigmaPlus.hh" -#include "G4AntiSigmaPlus.hh" -#include "G4XiMinus.hh" -#include "G4AntiXiMinus.hh" -#include "G4OmegaMinus.hh" -#include "G4AntiOmegaMinus.hh" - -template struct ParticleCodeMap; - -template<> struct ParticleCodeMap { enum {PDG_CODE = 211}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = -211}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = 321}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = -321}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = 2212}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = -2212}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = 3112}; }; -template<> struct ParticleCodeMap{ enum {PDG_CODE = -3112}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = 3222}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = -3222}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = 3312}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = -3312}; }; -template<> struct ParticleCodeMap { enum {PDG_CODE = 3334}; }; -template<> struct ParticleCodeMap{ enum {PDG_CODE = -3334}; }; - -#endif - - diff --git a/physics_lists/hadronic/Packaging/include/PortingDisclaimer.hh b/physics_lists/hadronic/Packaging/include/PortingDisclaimer.hh deleted file mode 100644 index 8acb5313b0..0000000000 --- a/physics_lists/hadronic/Packaging/include/PortingDisclaimer.hh +++ /dev/null @@ -1,69 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -#ifndef PortingDisclaimer_h -#define PortingDisclaimer_h - -class PortingDisclaimer -{ - protected: - PortingDisclaimer() - { - G4Exception("PortingDisclaimer", "007", FatalException, - "The disclaimer is not to be instanciated" ); - } - private: - struct LocalDisclaimer - { - LocalDisclaimer() - { - G4cout << G4endl; - G4cout << "========================== porting disclaimer =================================="< -struct Plist -{ - typedef T0 first; - typedef Plist< - T1,T2,T3,T4,T5,T6,T7,T8,T9,T10, - T11,T12,T13,T14,T15,T16,T17,T18,T19,T20, - T21,T22,T23,T24,T25,T26,T27,T28,T29,T30, - T31,T32,T33,T34,T35,T36,T37,T38,T39,T40, - T41,T42,T43,T44,T45,T46,T47,T48,T49,T50, - T51,T52,T53,T54,T55,T56,T57,T58,T59,T60, - T61,T62,T63 - > rest; -}; - -template -struct Apply -{ - template struct CallBack { - static void Call_Back() { - typedef typename functor::template Fun it; - it aF; aF(); - typedef typename Rest::first first; - typedef typename Rest::rest second; - Apply::template CallBack::Call_Back(); - } - }; - template struct CallBack { - static void Call_Back(){} - }; - template static void ForEachIn() { - CallBack::Call_Back(); - } -}; - - diff --git a/physics_lists/hadronic/Packaging/src/G4BertiniNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4BertiniNeutronBuilder.cc index 2ff9ec95a3..98f899c3a1 100644 --- a/physics_lists/hadronic/Packaging/src/G4BertiniNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4BertiniNeutronBuilder.cc @@ -34,29 +34,29 @@ G4BertiniNeutronBuilder() } void G4BertiniNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) +Build(G4NeutronInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } G4BertiniNeutronBuilder:: ~G4BertiniNeutronBuilder() {} void G4BertiniNeutronBuilder:: -Build(G4HadronElasticProcess & ) +Build(G4HadronElasticProcess * ) { } void G4BertiniNeutronBuilder:: -Build(G4HadronFissionProcess & ) +Build(G4HadronFissionProcess * ) { } void G4BertiniNeutronBuilder:: -Build(G4HadronCaptureProcess & ) +Build(G4HadronCaptureProcess * ) { } diff --git a/physics_lists/hadronic/Packaging/src/G4BertiniPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4BertiniPiKBuilder.cc index 719298ca31..b7af38363f 100644 --- a/physics_lists/hadronic/Packaging/src/G4BertiniPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4BertiniPiKBuilder.cc @@ -39,42 +39,42 @@ ~G4BertiniPiKBuilder() {} void G4BertiniPiKBuilder:: - Build(G4PionPlusInelasticProcess & aP) + Build(G4PionPlusInelasticProcess * aP) { - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); } void G4BertiniPiKBuilder:: - Build(G4PionMinusInelasticProcess & aP) + Build(G4PionMinusInelasticProcess * aP) { - aP.RegisterMe(theModel); - aP.AddDataSet(&thePiData); + aP->RegisterMe(theModel); + aP->AddDataSet(&thePiData); theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); } void G4BertiniPiKBuilder:: - Build(G4HadronElasticProcess & ) {} + Build(G4HadronElasticProcess * ) {} void G4BertiniPiKBuilder:: - Build(G4KaonPlusInelasticProcess & ) + Build(G4KaonPlusInelasticProcess * ) { } void G4BertiniPiKBuilder:: - Build(G4KaonMinusInelasticProcess & ) + Build(G4KaonMinusInelasticProcess * ) { } void G4BertiniPiKBuilder:: - Build(G4KaonZeroLInelasticProcess & ) + Build(G4KaonZeroLInelasticProcess * ) { } void G4BertiniPiKBuilder:: - Build(G4KaonZeroSInelasticProcess & ) + Build(G4KaonZeroSInelasticProcess * ) { } diff --git a/physics_lists/hadronic/Packaging/src/G4BertiniProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4BertiniProtonBuilder.cc index c7d685c39a..c1a5a51039 100644 --- a/physics_lists/hadronic/Packaging/src/G4BertiniProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4BertiniProtonBuilder.cc @@ -37,17 +37,17 @@ G4BertiniProtonBuilder:: ~G4BertiniProtonBuilder() {} void G4BertiniProtonBuilder:: -Build(G4HadronElasticProcess & ) +Build(G4HadronElasticProcess * ) { } void G4BertiniProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) +Build(G4ProtonInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4BinaryNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4BinaryNeutronBuilder.cc index 0ef124c8cf..2e79997559 100644 --- a/physics_lists/hadronic/Packaging/src/G4BinaryNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4BinaryNeutronBuilder.cc @@ -34,29 +34,29 @@ } void G4BinaryNeutronBuilder:: - Build(G4NeutronInelasticProcess & aP) + Build(G4NeutronInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } G4BinaryNeutronBuilder:: ~G4BinaryNeutronBuilder() {} void G4BinaryNeutronBuilder:: - Build(G4HadronElasticProcess & ) + Build(G4HadronElasticProcess * ) { } void G4BinaryNeutronBuilder:: - Build(G4HadronFissionProcess & ) + Build(G4HadronFissionProcess * ) { } void G4BinaryNeutronBuilder:: - Build(G4HadronCaptureProcess & ) + Build(G4HadronCaptureProcess * ) { } diff --git a/physics_lists/hadronic/Packaging/src/G4BinaryPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4BinaryPiKBuilder.cc index 4e4bd1a542..d736c7d55f 100644 --- a/physics_lists/hadronic/Packaging/src/G4BinaryPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4BinaryPiKBuilder.cc @@ -39,43 +39,43 @@ G4BinaryPiKBuilder:: ~G4BinaryPiKBuilder() {} void G4BinaryPiKBuilder:: -Build(G4HadronElasticProcess & ) {} +Build(G4HadronElasticProcess * ) {} void G4BinaryPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) +Build(G4PionPlusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - aP.AddDataSet(&thePiData); + aP->RegisterMe(theModel); + aP->AddDataSet(&thePiData); } void G4BinaryPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) +Build(G4PionMinusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - aP.AddDataSet(&thePiData); + aP->RegisterMe(theModel); + aP->AddDataSet(&thePiData); } void G4BinaryPiKBuilder:: -Build(G4KaonPlusInelasticProcess & ) +Build(G4KaonPlusInelasticProcess * ) { } void G4BinaryPiKBuilder:: -Build(G4KaonMinusInelasticProcess & ) +Build(G4KaonMinusInelasticProcess * ) { } void G4BinaryPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & ) +Build(G4KaonZeroLInelasticProcess * ) { } void G4BinaryPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & ) +Build(G4KaonZeroSInelasticProcess * ) { } diff --git a/physics_lists/hadronic/Packaging/src/G4BinaryProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4BinaryProtonBuilder.cc index 7380e2041c..501b9b9e1f 100644 --- a/physics_lists/hadronic/Packaging/src/G4BinaryProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4BinaryProtonBuilder.cc @@ -34,19 +34,19 @@ G4BinaryProtonBuilder() } void G4BinaryProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) +Build(G4ProtonInelasticProcess * aP) { - aP.AddDataSet(&theXSec); + aP->AddDataSet(&theXSec); theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } G4BinaryProtonBuilder:: ~G4BinaryProtonBuilder() {} void G4BinaryProtonBuilder:: -Build(G4HadronElasticProcess & ) +Build(G4HadronElasticProcess * ) { } diff --git a/physics_lists/hadronic/Packaging/src/G4DecayPhysics.cc b/physics_lists/hadronic/Packaging/src/G4DecayPhysics.cc new file mode 100644 index 0000000000..5a6b48002b --- /dev/null +++ b/physics_lists/hadronic/Packaging/src/G4DecayPhysics.cc @@ -0,0 +1,110 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4DecayPhysics.cc,v 1.4 2005/12/05 12:55:27 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4DecayPhysics +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 10.11.2005 V.Ivanchenko edit to provide a standard +// 05.12.2005 V.Ivanchenko add controlled verbosity +// +//---------------------------------------------------------------------------- +// + +#include "G4DecayPhysics.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4BosonConstructor.hh" +#include "G4LeptonConstructor.hh" +#include "G4MesonConstructor.hh" +#include "G4BosonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4IonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + + +G4DecayPhysics::G4DecayPhysics(const G4String& name, G4int ver) + : G4VPhysicsConstructor(name), verbose(ver), wasActivated(false) +{} + +G4DecayPhysics::~G4DecayPhysics() +{ + if(wasActivated) delete fDecayProcess; +} + +void G4DecayPhysics::ConstructParticle() +{ + +// G4cout << "G4DecayPhysics::ConstructParticle" << G4endl; + G4BosonConstructor pBosonConstructor; + pBosonConstructor.ConstructParticle(); + + G4LeptonConstructor pLeptonConstructor; + pLeptonConstructor.ConstructParticle(); + + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4IonConstructor pIonConstructor; + pIonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +void G4DecayPhysics::ConstructProcess() +{ + wasActivated = true; + + // Add Decay Process + fDecayProcess = new G4Decay(); + theParticleIterator->reset(); + G4ParticleDefinition* particle=0; + G4ProcessManager* pmanager=0; + + while( (*theParticleIterator)() ) + { + particle = theParticleIterator->value(); + pmanager = particle->GetProcessManager(); + if( fDecayProcess->IsApplicable(*particle) ) + { + if(verbose > 1) + G4cout << "### Decays for " << particle->GetParticleName() << G4endl; + pmanager -> AddProcess(fDecayProcess); + pmanager -> SetProcessOrdering(fDecayProcess, idxPostStep); + pmanager -> SetProcessOrdering(fDecayProcess, idxAtRest); + } + } +} + + diff --git a/physics_lists/hadronic/Packaging/src/G4EMBuilder.cc b/physics_lists/hadronic/Packaging/src/G4EMBuilder.cc deleted file mode 100644 index 5775c01c1f..0000000000 --- a/physics_lists/hadronic/Packaging/src/G4EMBuilder.cc +++ /dev/null @@ -1,157 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - #include "G4EMBuilder.hh" - - #include "globals.hh" - #include "G4ios.hh" - - #include "G4ParticleDefinition.hh" - #include "G4ParticleTable.hh" - #include "G4Gamma.hh" - #include "G4Electron.hh" - #include "G4Positron.hh" - #include "G4ProcessManager.hh" - - G4EMBuilder:: - G4EMBuilder(): wasActivated(false), synchOn(false), - gammNucOn(false) - { - theT = new G4EMTailorer(this); - } - - void G4EMBuilder:: - Synch (G4String & newState) - { - if(newState == "on") - { - if(synchOn) - { - } - else if(wasActivated) - { - G4ProcessManager * pManager = 0; - pManager = G4Electron::ElectronDefinition()->GetProcessManager(); - pManager->AddDiscreteProcess(&theElectronSynch); - pManager = G4Positron::PositronDefinition()->GetProcessManager(); - pManager->AddDiscreteProcess(&thePositronSynch); - } - synchOn = true; - } - else if(synchOn) - { - synchOn = false; - G4ProcessManager * pManager = 0; - pManager = G4Electron::ElectronDefinition()->GetProcessManager(); - pManager->RemoveProcess(&theElectronSynch); - pManager = G4Positron::PositronDefinition()->GetProcessManager(); - pManager->RemoveProcess(&thePositronSynch); - } - } - - void G4EMBuilder:: - GammaNuclear (G4String & newState) - { - if(newState == "on") - { - if(gammNucOn) - { - } - else if(wasActivated) - { - theGNPhysics.Build(); - } - gammNucOn = true; - } - else if(gammNucOn) - { - G4Exception("G4EMBuilder", "007", FatalException, - "Switching off of gamma nuclear currently not supported."); - } - } - - G4EMBuilder:: - ~G4EMBuilder() - { - if(wasActivated) - { - G4ProcessManager * pManager = 0; - pManager = G4Gamma::Gamma()->GetProcessManager(); - if(pManager) - { - pManager->RemoveProcess(&thePhotoEffect); - pManager->RemoveProcess(&theComptonEffect); - pManager->RemoveProcess(&thePairProduction); - } - - pManager = G4Electron::Electron()->GetProcessManager(); - if(pManager) - { - pManager->RemoveProcess(&theElectronBremsStrahlung); - pManager->RemoveProcess(&theElectronIonisation); - pManager->RemoveProcess(&theElectronMultipleScattering); - if(synchOn) pManager->RemoveProcess(&theElectronSynch); - } - - pManager = G4Positron::Positron()->GetProcessManager(); - if(pManager) - { - pManager->RemoveProcess(&thePositronBremsStrahlung); - pManager->RemoveProcess(&theAnnihilation); - pManager->RemoveProcess(&thePositronIonisation); - pManager->RemoveProcess(&thePositronMultipleScattering); - if(synchOn) pManager->RemoveProcess(&thePositronSynch); - } - } - } - - void G4EMBuilder::Build() - { - G4ProcessManager * pManager = 0; - wasActivated = true; - - pManager = G4Gamma::Gamma()->GetProcessManager(); - pManager->AddDiscreteProcess(&thePhotoEffect); - pManager->AddDiscreteProcess(&theComptonEffect); - pManager->AddDiscreteProcess(&thePairProduction); - - pManager = G4Electron::Electron()->GetProcessManager(); - pManager->AddDiscreteProcess(&theElectronBremsStrahlung); - pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); - pManager->AddProcess(&theElectronMultipleScattering); - if(synchOn) pManager->AddDiscreteProcess(&theElectronSynch); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); - - pManager = G4Positron::Positron()->GetProcessManager(); - pManager->AddDiscreteProcess(&thePositronBremsStrahlung); - pManager->AddDiscreteProcess(&theAnnihilation); - pManager->AddRestProcess(&theAnnihilation); - pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); - pManager->AddProcess(&thePositronMultipleScattering); - if(synchOn) pManager->AddDiscreteProcess(&thePositronSynch); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); - if (gammNucOn) theGNPhysics.Build(); - - } - // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4ElectroNuclearBuilder.cc b/physics_lists/hadronic/Packaging/src/G4ElectroNuclearBuilder.cc index 76dff994ce..7a266078af 100644 --- a/physics_lists/hadronic/Packaging/src/G4ElectroNuclearBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4ElectroNuclearBuilder.cc @@ -34,19 +34,16 @@ G4ElectroNuclearBuilder::G4ElectroNuclearBuilder() : wasActivated(false) { - theElectroReaction = new G4ElectroNuclearReaction; - theGammaReaction = new G4GammaNuclearReaction; - theModel = new G4TheoFSGenerator; - theCascade = new G4GeneratorPrecompoundInterface; - theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); } G4ElectroNuclearBuilder::~G4ElectroNuclearBuilder() { + delete theFragmentation; delete theStringDecay; + delete theStringModel; + delete thePhotoNuclearProcess; + delete theElectronNuclearProcess; + delete thePositronNuclearProcess; delete theElectroReaction; delete theGammaReaction; delete theModel; @@ -55,33 +52,52 @@ G4ElectroNuclearBuilder::~G4ElectroNuclearBuilder() { G4ProcessManager * pManager = 0; pManager = G4Gamma::Gamma()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&thePhotoNuclearProcess); + if(pManager) pManager->RemoveProcess(thePhotoNuclearProcess); pManager = G4Electron::Electron()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&theElectronNuclearProcess); + if(pManager) pManager->RemoveProcess(theElectronNuclearProcess); pManager = G4Positron::Positron()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&thePositronNuclearProcess); + if(pManager) pManager->RemoveProcess(thePositronNuclearProcess); } } void G4ElectroNuclearBuilder::Build() { + wasActivated=true; + + thePhotoNuclearProcess = new G4PhotoNuclearProcess; + theElectronNuclearProcess = new G4ElectronNuclearProcess; + thePositronNuclearProcess = new G4PositronNuclearProcess; + theElectroReaction = new G4ElectroNuclearReaction; + theGammaReaction = new G4GammaNuclearReaction; + + theModel = new G4TheoFSGenerator; + + theStringModel = new G4QGSModel< G4GammaParticipants >; + theStringDecay = new G4ExcitedStringDecay(theFragmentation=new G4QGSMFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + + theCascade = new G4GeneratorPrecompoundInterface; + + theModel->SetTransport(theCascade); + theModel->SetHighEnergyGenerator(theStringModel); + G4ProcessManager * aProcMan = 0; aProcMan = G4Gamma::Gamma()->GetProcessManager(); theGammaReaction->SetMaxEnergy(3.5*GeV); - thePhotoNuclearProcess.RegisterMe(theGammaReaction); + thePhotoNuclearProcess->RegisterMe(theGammaReaction); theModel->SetMinEnergy(3.*GeV); theModel->SetMaxEnergy(100*TeV); - thePhotoNuclearProcess.RegisterMe(theModel); - aProcMan->AddDiscreteProcess(&thePhotoNuclearProcess); + thePhotoNuclearProcess->RegisterMe(theModel); + aProcMan->AddDiscreteProcess(thePhotoNuclearProcess); aProcMan = G4Electron::Electron()->GetProcessManager(); - theElectronNuclearProcess.RegisterMe(theElectroReaction); - aProcMan->AddDiscreteProcess(&theElectronNuclearProcess); + theElectronNuclearProcess->RegisterMe(theElectroReaction); + aProcMan->AddDiscreteProcess(theElectronNuclearProcess); aProcMan = G4Positron::Positron()->GetProcessManager(); - thePositronNuclearProcess.RegisterMe(theElectroReaction); - aProcMan->AddDiscreteProcess(&thePositronNuclearProcess); + thePositronNuclearProcess->RegisterMe(theElectroReaction); + aProcMan->AddDiscreteProcess(thePositronNuclearProcess); } diff --git a/physics_lists/hadronic/Packaging/src/G4EmExtraPhysics.cc b/physics_lists/hadronic/Packaging/src/G4EmExtraPhysics.cc new file mode 100644 index 0000000000..211846d15e --- /dev/null +++ b/physics_lists/hadronic/Packaging/src/G4EmExtraPhysics.cc @@ -0,0 +1,102 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4EmExtraPhysics.cc,v 1.2 2005/12/01 18:19:45 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmExtraPhysics +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 10.11.2005 V.Ivanchenko edit to provide a standard +// +//---------------------------------------------------------------------------- +// + +#include "G4EmExtraPhysics.hh" + +#include "G4SynchrotronRadiation.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4ProcessManager.hh" + +G4EmExtraPhysics::G4EmExtraPhysics(const G4String& name): G4VPhysicsConstructor(name), + wasActivated(false), synchOn(false), + gammNucOn(true), theElectronSynch(0), thePositronSynch(0), + theGNPhysics(0) +{ + theMessenger = new G4EmMessenger(this); +} + +G4EmExtraPhysics::~G4EmExtraPhysics() +{ + delete theMessenger; + if(theElectronSynch) delete theElectronSynch; + if(thePositronSynch) delete thePositronSynch; + if(theGNPhysics) delete theGNPhysics; +} + +void G4EmExtraPhysics::Synch(G4String & newState) +{ + if(newState == "on") synchOn = true; + else synchOn = false; +} + +void G4EmExtraPhysics::GammaNuclear(G4String & newState) +{ + if(newState == "on") gammNucOn = true; + else gammNucOn = false; +} + +void G4EmExtraPhysics::ConstructParticle() +{ + G4Gamma::Gamma(); + G4Electron::Electron(); + G4Positron::Positron(); +} + +void G4EmExtraPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + wasActivated = true; + + if(synchOn) { + pManager = G4Electron::Electron()->GetProcessManager(); + theElectronSynch = new G4SynchrotronRadiation(); + pManager->AddDiscreteProcess(theElectronSynch); + + pManager = G4Positron::Positron()->GetProcessManager(); + thePositronSynch = new G4SynchrotronRadiation(); + pManager->AddDiscreteProcess(thePositronSynch); + } + if (gammNucOn) { + theGNPhysics = new G4ElectroNuclearBuilder(); + theGNPhysics->Build(); + } +} diff --git a/physics_lists/hadronic/Packaging/src/G4EMTailorer.cc b/physics_lists/hadronic/Packaging/src/G4EmMessenger.cc similarity index 72% rename from physics_lists/hadronic/Packaging/src/G4EMTailorer.cc rename to physics_lists/hadronic/Packaging/src/G4EmMessenger.cc index af34a4696c..bd0e7996c5 100644 --- a/physics_lists/hadronic/Packaging/src/G4EMTailorer.cc +++ b/physics_lists/hadronic/Packaging/src/G4EmMessenger.cc @@ -20,45 +20,59 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "G4EMTailorer.hh" -#include "G4EMBuilder.hh" +// $Id: G4EmMessenger.cc,v 1.2 2005/11/30 18:28:52 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmMessenger +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 09.11.2005 V.Ivanchenko edit to provide a standard +// +//---------------------------------------------------------------------------- +// -void G4EMTailorer::SetNewValue(G4UIcommand* aComm, G4String aS) -{ - if(aComm==theSynch) - { - theB->Synch(aS); - } - if(aComm==theGN) - { - theB->GammaNuclear(aS); - } -} +#include "G4EmMessenger.hh" +#include "G4EmExtraPhysics.hh" -G4EMTailorer::G4EMTailorer(G4EMBuilder * ab) +G4EmMessenger::G4EmMessenger(G4EmExtraPhysics* ab) { theB = ab; aDir1 = new G4UIdirectory("/physics_engine/"); aDir1->SetGuidance("commands related to the physics simulation engine."); - + // general stuff. aDir2 = new G4UIdirectory("/physics_engine/tailor/"); aDir2->SetGuidance("tailoring the processes"); - + // command for synchrotron radiation. theSynch = new G4UIcmdWithAString("/physics_engine/tailor/SyncRadiation",this); theSynch->SetGuidance("Switching on/off synchrotron radiation."); theSynch->SetParameterName("status","off"); theSynch->SetCandidates("on off"); theSynch->SetDefaultValue("off"); - theSynch->AvailableForStates(G4State_PreInit); - - // command for gamma nuclear physics. + theSynch->AvailableForStates(G4State_PreInit); + + // command for gamma nuclear physics. theGN = new G4UIcmdWithAString("/physics_engine/tailor/GammaNuclear",this); theGN->SetGuidance("Switching on gamma nuclear physics."); theGN->SetParameterName("status","off"); theGN->SetCandidates("on off"); theGN->SetDefaultValue("off"); - theGN->AvailableForStates(G4State_PreInit); + theGN->AvailableForStates(G4State_PreInit); +} + +G4EmMessenger::~G4EmMessenger() +{ + delete theSynch; + delete theGN; +} + +void G4EmMessenger::SetNewValue(G4UIcommand* aComm, G4String aS) +{ + if(aComm==theSynch) theB->Synch(aS); + if(aComm==theGN) theB->GammaNuclear(aS); } - diff --git a/physics_lists/hadronic/Packaging/src/G4EmStandardPhysics.cc b/physics_lists/hadronic/Packaging/src/G4EmStandardPhysics.cc new file mode 100644 index 0000000000..535293ca29 --- /dev/null +++ b/physics_lists/hadronic/Packaging/src/G4EmStandardPhysics.cc @@ -0,0 +1,211 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4EmStandardPhysics.cc,v 1.7 2005/12/06 14:53:52 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmStandardPhysics +// +// Author: V.Ivanchenko 09.11.2005 +// +// Modified: +// 05.12.2005 V.Ivanchenko add controlled verbosity +// +//---------------------------------------------------------------------------- +// + +#include "G4EmStandardPhysics.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4LossTableManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4KaonPlus.hh" +#include "G4KaonMinus.hh" +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4Deuteron.hh" +#include "G4Triton.hh" +#include "G4He3.hh" +#include "G4Alpha.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmStandardPhysics::G4EmStandardPhysics(const G4String& name, G4int ver, + G4bool msc): G4VPhysicsConstructor(name), verbose(ver), mscStepLimit(msc) +{ + G4LossTableManager::Instance(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmStandardPhysics::~G4EmStandardPhysics() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmStandardPhysics::ConstructParticle() +{ +// gamma + G4Gamma::Gamma(); + +// leptons + G4Electron::Electron(); + G4Positron::Positron(); + G4MuonPlus::MuonPlus(); + G4MuonMinus::MuonMinus(); + +// mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + +// barions + G4Proton::Proton(); + G4AntiProton::AntiProton(); + +// ions + G4Deuteron::Deuteron(); + G4Triton::Triton(); + G4He3::He3(); + G4Alpha::Alpha(); + G4GenericIon::GenericIonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmStandardPhysics::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + + if(verbose > 1) + G4cout << "### EmStandard instantiates eIoni and msc80 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung(), -1, 3, 3); + + } else if (particleName == "e+") { + + if(verbose > 1) + G4cout << "### EmStandard instantiates eIoni and msc80 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3, 3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); + + } else if (particleName == "mu+" || + particleName == "mu-" ) { + + if(verbose > 1) + G4cout << "### EmStandard instantiates muIoni and msc80 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3, 3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4, 4); + + } else if (particleName == "alpha" || + particleName == "He3" || + particleName == "GenericIon") { + + if(verbose > 1) + G4cout << "### EmStandard instantiates ionIoni and msc80 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering, -1, 1, 1); + pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); + + } else if (particleName == "anti_omega-" || + particleName == "anti_proton" || + particleName == "anti_sigma+" || + particleName == "anti_sigma-" || + particleName == "anti_xi-" || + particleName == "deuteron" || + particleName == "kaon+" || + particleName == "kaon-" || + particleName == "omega-" || + particleName == "pi+" || + particleName == "pi-" || + particleName == "proton" || + particleName == "sigma+" || + particleName == "sigma-" || + particleName == "tau+" || + particleName == "tau-" || + particleName == "triton" || + particleName == "xi-" ) { + + if(verbose > 1) + G4cout << "### EmStandard instantiates hIoni and msc80 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering,-1, 1, 1); + pmanager->AddProcess(new G4hIonisation, -1, 2, 2); + } + } + G4EmProcessOptions opt; + opt.SetVerbose(verbose); + if(!mscStepLimit) + opt.SetMscStepLimitation(false); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/hadronic/Packaging/src/G4EmStandardPhysics71.cc b/physics_lists/hadronic/Packaging/src/G4EmStandardPhysics71.cc new file mode 100644 index 0000000000..962077a91a --- /dev/null +++ b/physics_lists/hadronic/Packaging/src/G4EmStandardPhysics71.cc @@ -0,0 +1,209 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4EmStandardPhysics71.cc,v 1.8 2005/12/06 14:53:52 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmStandardPhysics71 +// +// Author: V.Ivanchenko 09.11.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// + +#include "G4EmStandardPhysics71.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4LossTableManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering71.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4KaonPlus.hh" +#include "G4KaonMinus.hh" +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4Deuteron.hh" +#include "G4Triton.hh" +#include "G4He3.hh" +#include "G4Alpha.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmStandardPhysics71::G4EmStandardPhysics71(const G4String& name, G4int ver, + G4bool msc): G4VPhysicsConstructor(name), verbose(ver), mscStepLimit(msc) +{ + G4LossTableManager::Instance(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmStandardPhysics71::~G4EmStandardPhysics71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmStandardPhysics71::ConstructParticle() +{ +// gamma + G4Gamma::Gamma(); + +// leptons + G4Electron::Electron(); + G4Positron::Positron(); + G4MuonPlus::MuonPlus(); + G4MuonMinus::MuonMinus(); + +// mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + +// barions + G4Proton::Proton(); + G4AntiProton::AntiProton(); + +// ions + G4Deuteron::Deuteron(); + G4Triton::Triton(); + G4He3::He3(); + G4Alpha::Alpha(); + G4GenericIon::GenericIonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmStandardPhysics71::ConstructProcess() +{ + // Add standard EM Processes + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "gamma") { + + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + + if(verbose > 1) + G4cout << "### EmStandard71 instantiates eIoni and msc71 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung(), -1, 3, 3); + + } else if (particleName == "e+") { + + if(verbose > 1) + G4cout << "### EmStandard71 instantiates eIoni and msc71 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4eIonisation, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3, 3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); + + } else if (particleName == "mu+" || + particleName == "mu-" ) { + + if(verbose > 1) + G4cout << "### EmStandard71 instantiates muIoni and msc71 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering71,-1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3, 3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4, 4); + + } else if (particleName == "alpha" || + particleName == "He3" || + particleName == "GenericIon") { + + if(verbose > 1) + G4cout << "### EmStandard71 instantiates ionIoni and msc71 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); + + } else if (particleName == "anti_omega-" || + particleName == "anti_proton" || + particleName == "anti_sigma+" || + particleName == "anti_sigma-" || + particleName == "anti_xi-" || + particleName == "deuteron" || + particleName == "kaon+" || + particleName == "kaon-" || + particleName == "omega-" || + particleName == "pi+" || + particleName == "pi-" || + particleName == "proton" || + particleName == "sigma+" || + particleName == "sigma-" || + particleName == "tau+" || + particleName == "tau-" || + particleName == "triton" || + particleName == "xi-" ) { + if(verbose > 1) + G4cout << "### EmStandard71 instantiates hIoni and msc71 for " + << particleName << G4endl; + pmanager->AddProcess(new G4MultipleScattering71, -1, 1, 1); + pmanager->AddProcess(new G4hIonisation, -1, 2, 2); + } + } + G4EmProcessOptions opt; + opt.SetVerbose(verbose); + // if(!mscStepLimit) + // opt.SetMscStepLimitation(false); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/physics_lists/hadronic/Packaging/src/G4FTFCNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4FTFCNeutronBuilder.cc index 90c3a02493..258bb61769 100644 --- a/physics_lists/hadronic/Packaging/src/G4FTFCNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4FTFCNeutronBuilder.cc @@ -30,42 +30,48 @@ { theMin = 15*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4FTFModel; + theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4StringChipsParticleLevelInterface; + + theModel->SetHighEnergyGenerator(theStringModel); theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); } G4FTFCNeutronBuilder:: ~G4FTFCNeutronBuilder() { + delete theCascade; delete theStringDecay; + delete theStringModel; } void G4FTFCNeutronBuilder:: - Build(G4HadronElasticProcess & ) + Build(G4HadronElasticProcess * ) { } void G4FTFCNeutronBuilder:: - Build(G4HadronFissionProcess & ) + Build(G4HadronFissionProcess * ) { } void G4FTFCNeutronBuilder:: - Build(G4HadronCaptureProcess & ) + Build(G4HadronCaptureProcess * ) { } void G4FTFCNeutronBuilder:: - Build(G4NeutronInelasticProcess & aP) + Build(G4NeutronInelasticProcess * aP) { - aP.AddDataSet(&theXSec); + aP->AddDataSet(&theXSec); theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4FTFCPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4FTFCPiKBuilder.cc index 2b85932525..809185bb64 100644 --- a/physics_lists/hadronic/Packaging/src/G4FTFCPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4FTFCPiKBuilder.cc @@ -30,70 +30,77 @@ { theMin = 15*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4FTFModel; + theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4StringChipsParticleLevelInterface; - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); + theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringModel.SetFragmentationModel(theStringDecay); + theModel->SetHighEnergyGenerator(theStringModel); } G4FTFCPiKBuilder:: ~G4FTFCPiKBuilder() { + delete theCascade; delete theStringDecay; + delete theStringModel; + delete theModel; } void G4FTFCPiKBuilder:: - Build(G4HadronElasticProcess & ) {} + Build(G4HadronElasticProcess * ) {} void G4FTFCPiKBuilder:: - Build(G4PionPlusInelasticProcess & aP) + Build(G4PionPlusInelasticProcess * aP) { - aP.AddDataSet(&thePiData); + aP->AddDataSet(&thePiData); theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4FTFCPiKBuilder:: - Build(G4PionMinusInelasticProcess & aP) + Build(G4PionMinusInelasticProcess * aP) { - aP.AddDataSet(&thePiData); + aP->AddDataSet(&thePiData); theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4FTFCPiKBuilder:: - Build(G4KaonPlusInelasticProcess & aP) + Build(G4KaonPlusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4FTFCPiKBuilder:: - Build(G4KaonMinusInelasticProcess & aP) + Build(G4KaonMinusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4FTFCPiKBuilder:: - Build(G4KaonZeroLInelasticProcess & aP) + Build(G4KaonZeroLInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4FTFCPiKBuilder:: - Build(G4KaonZeroSInelasticProcess & aP) + Build(G4KaonZeroSInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4FTFCProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4FTFCProtonBuilder.cc index 4ba0a8de15..fa079394d3 100644 --- a/physics_lists/hadronic/Packaging/src/G4FTFCProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4FTFCProtonBuilder.cc @@ -35,12 +35,12 @@ G4FTFCProtonBuilder() } void G4FTFCProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) +Build(G4ProtonInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4FTFPNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4FTFPNeutronBuilder.cc index abcd17a902..34e81f3691 100644 --- a/physics_lists/hadronic/Packaging/src/G4FTFPNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4FTFPNeutronBuilder.cc @@ -30,43 +30,50 @@ { theMin = 15*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4FTFModel; + theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); + thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler); theCascade->SetDeExcitation(thePreEquilib); + theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); + theModel->SetHighEnergyGenerator(theStringModel); } G4FTFPNeutronBuilder:: ~G4FTFPNeutronBuilder() { delete theStringDecay; + delete theStringModel; + delete thePreEquilib; + delete theCascade; } void G4FTFPNeutronBuilder:: - Build(G4HadronElasticProcess & ) + Build(G4HadronElasticProcess * ) { } void G4FTFPNeutronBuilder:: - Build(G4HadronFissionProcess & ) + Build(G4HadronFissionProcess * ) { } void G4FTFPNeutronBuilder:: - Build(G4HadronCaptureProcess & ) + Build(G4HadronCaptureProcess * ) { } void G4FTFPNeutronBuilder:: - Build(G4NeutronInelasticProcess & aP) + Build(G4NeutronInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4FTFPPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4FTFPPiKBuilder.cc index 41dbd21090..d938f6d74f 100644 --- a/physics_lists/hadronic/Packaging/src/G4FTFPPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4FTFPPiKBuilder.cc @@ -30,72 +30,79 @@ { theMin = 15*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4FTFModel; + theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); + thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler); theCascade->SetDeExcitation(thePreEquilib); + + theModel->SetHighEnergyGenerator(theStringModel); theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); } G4FTFPPiKBuilder:: ~G4FTFPPiKBuilder() { + delete theCascade; delete theStringDecay; + delete theStringModel; + delete theModel; } void G4FTFPPiKBuilder:: - Build(G4HadronElasticProcess & ) {} + Build(G4HadronElasticProcess * ) {} void G4FTFPPiKBuilder:: - Build(G4PionPlusInelasticProcess & aP) + Build(G4PionPlusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.AddDataSet(&thePiData); - aP.RegisterMe(theModel); + aP->AddDataSet(&thePiData); + aP->RegisterMe(theModel); } void G4FTFPPiKBuilder:: - Build(G4PionMinusInelasticProcess & aP) + Build(G4PionMinusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.AddDataSet(&thePiData); - aP.RegisterMe(theModel); + aP->AddDataSet(&thePiData); + aP->RegisterMe(theModel); } void G4FTFPPiKBuilder:: - Build(G4KaonPlusInelasticProcess & aP) + Build(G4KaonPlusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4FTFPPiKBuilder:: - Build(G4KaonMinusInelasticProcess & aP) + Build(G4KaonMinusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4FTFPPiKBuilder:: - Build(G4KaonZeroLInelasticProcess & aP) + Build(G4KaonZeroLInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4FTFPPiKBuilder:: - Build(G4KaonZeroSInelasticProcess & aP) + Build(G4KaonZeroSInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4FTFPProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4FTFPProtonBuilder.cc index aa94bb4de1..069ee1b898 100644 --- a/physics_lists/hadronic/Packaging/src/G4FTFPProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4FTFPProtonBuilder.cc @@ -30,22 +30,26 @@ { theMin = 15*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4FTFModel; + theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); + thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler); theCascade->SetDeExcitation(thePreEquilib); + + theModel->SetHighEnergyGenerator(theStringModel); theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); } void G4FTFPProtonBuilder:: - Build(G4ProtonInelasticProcess & aP) + Build(G4ProtonInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } G4FTFPProtonBuilder:: @@ -55,7 +59,7 @@ } void G4FTFPProtonBuilder:: - Build(G4HadronElasticProcess & ) + Build(G4HadronElasticProcess * ) { } diff --git a/physics_lists/hadronic/Packaging/src/G4IonPhysics.cc b/physics_lists/hadronic/Packaging/src/G4IonPhysics.cc new file mode 100644 index 0000000000..dec1d845f1 --- /dev/null +++ b/physics_lists/hadronic/Packaging/src/G4IonPhysics.cc @@ -0,0 +1,150 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4IonPhysics.cc,v 1.2 2005/12/02 12:40:04 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4IonPhysics +// +// Author: V.Ivanchenko 09.11.2005 +// +// Modified: +// +//---------------------------------------------------------------------------- +// + +#include "G4IonPhysics.hh" +#include "G4HadronElasticProcess.hh" +#include "G4LElastic.hh" + +#include "G4DeuteronInelasticProcess.hh" +#include "G4LEDeuteronInelastic.hh" + +#include "G4TritonInelasticProcess.hh" +#include "G4LETritonInelastic.hh" + +#include "G4AlphaInelasticProcess.hh" +#include "G4LEAlphaInelastic.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +// Nuclei +#include "G4IonConstructor.hh" + +G4IonPhysics::G4IonPhysics(const G4String& name) + : G4VPhysicsConstructor(name), wasActivated(false) +{ +} + +G4IonPhysics::~G4IonPhysics() +{ + if(wasActivated) { + + delete theElasticModel; + delete theIonElasticProcess; + delete theDElasticProcess; + delete fDeuteronProcess; + delete fDeuteronModel; + delete theTElasticProcess; + delete fTritonProcess; + delete fTritonModel; + delete theAElasticProcess; + delete fAlphaProcess; + delete fAlphaModel; + delete theHe3ElasticProcess; + + } + } + +void G4IonPhysics::ConstructProcess() +{ + G4ProcessManager * pManager = 0; + + // Elastic Process + theElasticModel = new G4LElastic(); + + theIonElasticProcess = new G4HadronElasticProcess(); + theDElasticProcess = new G4HadronElasticProcess(); + theTElasticProcess = new G4HadronElasticProcess(); + theAElasticProcess = new G4HadronElasticProcess(); + theHe3ElasticProcess = new G4HadronElasticProcess(); + + theIonElasticProcess->RegisterMe(theElasticModel); + theDElasticProcess->RegisterMe(theElasticModel); + theTElasticProcess->RegisterMe(theElasticModel); + theAElasticProcess->RegisterMe(theElasticModel); + theHe3ElasticProcess->RegisterMe(theElasticModel); + + // Generic Ion + pManager = G4GenericIon::GenericIon()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(theIonElasticProcess); + + // Deuteron + pManager = G4Deuteron::Deuteron()->GetProcessManager(); + // add process + fDeuteronModel = new G4LEDeuteronInelastic(); + fDeuteronProcess = new G4DeuteronInelasticProcess(); + fDeuteronProcess->RegisterMe(fDeuteronModel); + pManager->AddDiscreteProcess(theDElasticProcess); + pManager->AddDiscreteProcess(fDeuteronProcess); + + // Triton + pManager = G4Triton::Triton()->GetProcessManager(); + // add process + fTritonModel = new G4LETritonInelastic(); + fTritonProcess = new G4TritonInelasticProcess(); + fTritonProcess->RegisterMe(fTritonModel); + pManager->AddDiscreteProcess(theTElasticProcess); + pManager->AddDiscreteProcess(fTritonProcess); + + // Alpha + pManager = G4Alpha::Alpha()->GetProcessManager(); + // add process + fAlphaModel = new G4LEAlphaInelastic(); + fAlphaProcess = new G4AlphaInelasticProcess(); + fAlphaProcess->RegisterMe(fAlphaModel); + pManager->AddDiscreteProcess(theAElasticProcess); + pManager->AddDiscreteProcess(fAlphaProcess); + + // He3 + pManager = G4He3::He3()->GetProcessManager(); + // add process + pManager->AddDiscreteProcess(theHe3ElasticProcess); + + wasActivated = true; +} + + void G4IonPhysics::ConstructParticle() + { + // Construct light ions + G4IonConstructor pConstructor; + pConstructor.ConstructParticle(); + } + + + + // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4LEADNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LEADNeutronBuilder.cc index 84f4401179..990ed407e8 100644 --- a/physics_lists/hadronic/Packaging/src/G4LEADNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LEADNeutronBuilder.cc @@ -36,20 +36,20 @@ ~G4LEADNeutronBuilder() {} void G4LEADNeutronBuilder:: - Build(G4NeutronInelasticProcess & aP) + Build(G4NeutronInelasticProcess * aP) { - aP.AddDataSet(&theXSec); + aP->AddDataSet(&theXSec); theModel->SetMinEnergy(theMin); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4LEADNeutronBuilder:: - Build(G4HadronElasticProcess & ){} + Build(G4HadronElasticProcess * ){} void G4LEADNeutronBuilder:: - Build(G4HadronFissionProcess & ){} + Build(G4HadronFissionProcess * ){} void G4LEADNeutronBuilder:: - Build(G4HadronCaptureProcess & ){} + Build(G4HadronCaptureProcess * ){} // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4LEADPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LEADPiKBuilder.cc index 8645b48dfb..b6a20b8a6f 100644 --- a/physics_lists/hadronic/Packaging/src/G4LEADPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LEADPiKBuilder.cc @@ -36,49 +36,49 @@ G4LEADPiKBuilder:: ~G4LEADPiKBuilder() {} void G4LEADPiKBuilder:: -Build(G4HadronElasticProcess & ) {} +Build(G4HadronElasticProcess * ) {} void G4LEADPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) +Build(G4PionPlusInelasticProcess * aP) { - aP.RegisterMe(theModel); - aP.AddDataSet(&thePiData); + aP->RegisterMe(theModel); + aP->AddDataSet(&thePiData); theModel->SetMinEnergy(theMin); } void G4LEADPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) +Build(G4PionMinusInelasticProcess * aP) { - aP.RegisterMe(theModel); - aP.AddDataSet(&thePiData); + aP->RegisterMe(theModel); + aP->AddDataSet(&thePiData); theModel->SetMinEnergy(theMin); } void G4LEADPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) +Build(G4KaonPlusInelasticProcess * aP) { - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); theModel->SetMinEnergy(theMin); } void G4LEADPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) +Build(G4KaonMinusInelasticProcess * aP) { - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); theModel->SetMinEnergy(theMin); } void G4LEADPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) +Build(G4KaonZeroLInelasticProcess * aP) { - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); theModel->SetMinEnergy(theMin); } void G4LEADPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) +Build(G4KaonZeroSInelasticProcess * aP) { - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); theModel->SetMinEnergy(theMin); } diff --git a/physics_lists/hadronic/Packaging/src/G4LEADProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LEADProtonBuilder.cc index 55a6af168e..9391bb47bc 100644 --- a/physics_lists/hadronic/Packaging/src/G4LEADProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LEADProtonBuilder.cc @@ -36,16 +36,16 @@ G4LEADProtonBuilder:: ~G4LEADProtonBuilder() {} void G4LEADProtonBuilder:: -Build(G4HadronElasticProcess & ) +Build(G4HadronElasticProcess * ) { } void G4LEADProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) +Build(G4ProtonInelasticProcess * aP) { theModel->SetMinEnergy(theMin); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4LEPNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LEPNeutronBuilder.cc index dec3b49046..ff986202d0 100644 --- a/physics_lists/hadronic/Packaging/src/G4LEPNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LEPNeutronBuilder.cc @@ -38,39 +38,39 @@ G4LEPNeutronBuilder:: ~G4LEPNeutronBuilder() {} void G4LEPNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess * aP) { theElasticModel = new G4LElastic(); theElasticModel->SetMinEnergy(theMin); theElasticModel->SetMaxEnergy(theMax); - aP.RegisterMe(theElasticModel); + aP->RegisterMe(theElasticModel); } void G4LEPNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess * aP) { theNeutronFissionModel = new G4LFission(); theNeutronFissionModel->SetMinEnergy(theMin); theNeutronFissionModel->SetMaxEnergy(theMax); - aP.RegisterMe(theNeutronFissionModel); + aP->RegisterMe(theNeutronFissionModel); } void G4LEPNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess * aP) { theNeutronCaptureModel = new G4LCapture(); theNeutronCaptureModel->SetMinEnergy(theMin); theNeutronCaptureModel->SetMaxEnergy(theMax); - aP.RegisterMe(theNeutronCaptureModel); + aP->RegisterMe(theNeutronCaptureModel); } void G4LEPNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) +Build(G4NeutronInelasticProcess * aP) { theLENeutronModel = new G4LENeutronInelastic(); theLENeutronModel->SetMinEnergy(theIMin); theLENeutronModel->SetMaxEnergy(theIMax); - aP.RegisterMe(theLENeutronModel); + aP->RegisterMe(theLENeutronModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4LEPPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LEPPiKBuilder.cc index f699c77c17..e499e7b93a 100644 --- a/physics_lists/hadronic/Packaging/src/G4LEPPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LEPPiKBuilder.cc @@ -43,63 +43,63 @@ G4LEPPiKBuilder:: ~G4LEPPiKBuilder() {} void G4LEPPiKBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess * aP) { - aP.RegisterMe(theElasticModel); + aP->RegisterMe(theElasticModel); } void G4LEPPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) +Build(G4PionPlusInelasticProcess * aP) { theLEPionPlusModel = new G4LEPionPlusInelastic(); theLEPionPlusModel->SetMinEnergy(theMinPion); theLEPionPlusModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLEPionPlusModel); + aP->RegisterMe(theLEPionPlusModel); } void G4LEPPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) +Build(G4PionMinusInelasticProcess * aP) { theLEPionMinusModel = new G4LEPionMinusInelastic(); theLEPionMinusModel->SetMinEnergy(theMinPion); theLEPionMinusModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLEPionMinusModel); + aP->RegisterMe(theLEPionMinusModel); } void G4LEPPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) +Build(G4KaonPlusInelasticProcess * aP) { theLEKaonPlusModel = new G4LEKaonPlusInelastic(); theLEKaonPlusModel->SetMinEnergy(theMin); theLEKaonPlusModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLEKaonPlusModel); + aP->RegisterMe(theLEKaonPlusModel); } void G4LEPPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) +Build(G4KaonMinusInelasticProcess * aP) { theLEKaonMinusModel = new G4LEKaonMinusInelastic(); theLEKaonMinusModel->SetMaxEnergy(theMax); theLEKaonMinusModel->SetMinEnergy(theMin); - aP.RegisterMe(theLEKaonMinusModel); + aP->RegisterMe(theLEKaonMinusModel); } void G4LEPPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) +Build(G4KaonZeroLInelasticProcess * aP) { theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); theLEKaonZeroLModel->SetMaxEnergy(theMax); theLEKaonZeroLModel->SetMinEnergy(theMin); - aP.RegisterMe(theLEKaonZeroLModel); + aP->RegisterMe(theLEKaonZeroLModel); } void G4LEPPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) +Build(G4KaonZeroSInelasticProcess * aP) { theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); theLEKaonZeroSModel->SetMaxEnergy(theMax); theLEKaonZeroSModel->SetMinEnergy(theMin); - aP.RegisterMe(theLEKaonZeroSModel); + aP->RegisterMe(theLEKaonZeroSModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4LEPProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LEPProtonBuilder.cc index 90e06655c9..d55a24092f 100644 --- a/physics_lists/hadronic/Packaging/src/G4LEPProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LEPProtonBuilder.cc @@ -36,19 +36,20 @@ G4LEPProtonBuilder:: ~G4LEPProtonBuilder() {} void G4LEPProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess * aP) { theElasticModel = new G4LElastic(); - aP.RegisterMe(theElasticModel); + aP->RegisterMe(theElasticModel); } void G4LEPProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) +Build(G4ProtonInelasticProcess * aP) { +// G4cout << "adding inelastic Proton in LHEP" << G4endl; theLEProtonModel = new G4LEProtonInelastic(); theLEProtonModel->SetMinEnergy(theMin); theLEProtonModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLEProtonModel); + aP->RegisterMe(theLEProtonModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4LHEPNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LHEPNeutronBuilder.cc index 7754d03802..0d1d91e72c 100644 --- a/physics_lists/hadronic/Packaging/src/G4LHEPNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LHEPNeutronBuilder.cc @@ -36,39 +36,39 @@ ~G4LHEPNeutronBuilder() {} void G4LHEPNeutronBuilder:: - Build(G4NeutronInelasticProcess & aP) + Build(G4NeutronInelasticProcess * aP) { theLENeutronModel = new G4LENeutronInelastic(); theHENeutronModel = new G4HENeutronInelastic(); theLENeutronModel->SetMinEnergy(theIMin); theLENeutronModel->SetMaxEnergy(55*GeV); theHENeutronModel->SetMinEnergy(25*GeV); - aP.RegisterMe(theLENeutronModel); - aP.RegisterMe(theHENeutronModel); + aP->RegisterMe(theLENeutronModel); + aP->RegisterMe(theHENeutronModel); } void G4LHEPNeutronBuilder:: - Build(G4HadronFissionProcess & aP) + Build(G4HadronFissionProcess * aP) { theNeutronFissionModel = new G4LFission(); theNeutronFissionModel->SetMinEnergy(theMin); - aP.RegisterMe(theNeutronFissionModel); + aP->RegisterMe(theNeutronFissionModel); } void G4LHEPNeutronBuilder:: - Build(G4HadronElasticProcess & aP) + Build(G4HadronElasticProcess * aP) { theElasticModel = new G4LElastic(); theElasticModel->SetMinEnergy(theMin); - aP.RegisterMe(theElasticModel); + aP->RegisterMe(theElasticModel); } void G4LHEPNeutronBuilder:: - Build(G4HadronCaptureProcess & aP) + Build(G4HadronCaptureProcess * aP) { theNeutronCaptureModel = new G4LCapture(); theNeutronCaptureModel->SetMinEnergy(theMin); - aP.RegisterMe(theNeutronCaptureModel); + aP->RegisterMe(theNeutronCaptureModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4LHEPPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LHEPPiKBuilder.cc index fc1aaa3995..0676258144 100644 --- a/physics_lists/hadronic/Packaging/src/G4LHEPPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LHEPPiKBuilder.cc @@ -42,73 +42,73 @@ G4LHEPPiKBuilder:: ~G4LHEPPiKBuilder() {} void G4LHEPPiKBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess * aP) { - aP.RegisterMe(theElasticModel); + aP->RegisterMe(theElasticModel); } void G4LHEPPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) +Build(G4PionPlusInelasticProcess * aP) { theLEPionPlusModel = new G4LEPionPlusInelastic(); theHEPionPlusModel = new G4HEPionPlusInelastic(); theLEPionPlusModel->SetMinEnergy(theMinPion); theLEPionPlusModel->SetMaxEnergy(55*GeV); theHEPionPlusModel->SetMinEnergy(25*GeV); - aP.RegisterMe(theLEPionPlusModel); - aP.RegisterMe(theHEPionPlusModel); + aP->RegisterMe(theLEPionPlusModel); + aP->RegisterMe(theHEPionPlusModel); } void G4LHEPPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) +Build(G4PionMinusInelasticProcess * aP) { theLEPionMinusModel = new G4LEPionMinusInelastic(); theHEPionMinusModel = new G4HEPionMinusInelastic(); theLEPionMinusModel->SetMinEnergy(theMinPion); theLEPionMinusModel->SetMaxEnergy(55*GeV); theHEPionMinusModel->SetMinEnergy(25*GeV); - aP.RegisterMe(theLEPionMinusModel); - aP.RegisterMe(theHEPionMinusModel); + aP->RegisterMe(theLEPionMinusModel); + aP->RegisterMe(theHEPionMinusModel); } void G4LHEPPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) +Build(G4KaonPlusInelasticProcess * aP) { theLEKaonPlusModel = new G4LEKaonPlusInelastic(); theHEKaonPlusModel = new G4HEKaonPlusInelastic(); theLEKaonPlusModel->SetMinEnergy(theM); - aP.RegisterMe(theLEKaonPlusModel); - aP.RegisterMe(theHEKaonPlusModel); + aP->RegisterMe(theLEKaonPlusModel); + aP->RegisterMe(theHEKaonPlusModel); } void G4LHEPPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) +Build(G4KaonMinusInelasticProcess * aP) { theLEKaonMinusModel = new G4LEKaonMinusInelastic(); theHEKaonMinusModel = new G4HEKaonMinusInelastic(); theLEKaonMinusModel->SetMinEnergy(theM); - aP.RegisterMe(theLEKaonMinusModel); - aP.RegisterMe(theHEKaonMinusModel); + aP->RegisterMe(theLEKaonMinusModel); + aP->RegisterMe(theHEKaonMinusModel); } void G4LHEPPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) +Build(G4KaonZeroLInelasticProcess * aP) { theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); theHEKaonZeroLModel = new G4HEKaonZeroInelastic(); theLEKaonZeroLModel->SetMinEnergy(theM); - aP.RegisterMe(theLEKaonZeroLModel); - aP.RegisterMe(theHEKaonZeroLModel); + aP->RegisterMe(theLEKaonZeroLModel); + aP->RegisterMe(theHEKaonZeroLModel); } void G4LHEPPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) +Build(G4KaonZeroSInelasticProcess * aP) { theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); theHEKaonZeroSModel = new G4HEKaonZeroInelastic(); theLEKaonZeroSModel->SetMinEnergy(theM); - aP.RegisterMe(theLEKaonZeroSModel); - aP.RegisterMe(theHEKaonZeroSModel); + aP->RegisterMe(theLEKaonZeroSModel); + aP->RegisterMe(theHEKaonZeroSModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4LHEPProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4LHEPProtonBuilder.cc index 421070c1f0..bf3466adcc 100644 --- a/physics_lists/hadronic/Packaging/src/G4LHEPProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4LHEPProtonBuilder.cc @@ -35,22 +35,22 @@ G4LHEPProtonBuilder:: ~G4LHEPProtonBuilder() {} void G4LHEPProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess * aP) { theElasticModel = new G4LElastic(); - aP.RegisterMe(theElasticModel); + aP->RegisterMe(theElasticModel); } void G4LHEPProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) +Build(G4ProtonInelasticProcess * aP) { theLEProtonModel = new G4LEProtonInelastic(); theHEProtonModel = new G4HEProtonInelastic(); theLEProtonModel->SetMinEnergy(theMin); theLEProtonModel->SetMaxEnergy(55*GeV); theHEProtonModel->SetMinEnergy(25*GeV); - aP.RegisterMe(theLEProtonModel); - aP.RegisterMe(theHEProtonModel); + aP->RegisterMe(theLEProtonModel); + aP->RegisterMe(theHEProtonModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4NeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4NeutronBuilder.cc index e6b89372fa..d4e26639bd 100644 --- a/physics_lists/hadronic/Packaging/src/G4NeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4NeutronBuilder.cc @@ -26,7 +26,14 @@ #include "G4ProcessManager.hh" G4NeutronBuilder:: -G4NeutronBuilder(): wasActivated(false) {} +G4NeutronBuilder(): wasActivated(false) +{ + theNeutronElasticProcess = new G4HadronElasticProcess; + theNeutronInelastic = new G4NeutronInelasticProcess; + theNeutronCapture = new G4HadronCaptureProcess; + theNeutronFission = new G4HadronFissionProcess; + +} G4NeutronBuilder:: ~G4NeutronBuilder() @@ -34,11 +41,15 @@ G4NeutronBuilder:: if(wasActivated) { G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager(); - if(theProcMan) theProcMan->RemoveProcess(&theNeutronElasticProcess); - if(theProcMan) theProcMan->RemoveProcess(&theNeutronInelastic); - if(theProcMan) theProcMan->RemoveProcess(&theNeutronCapture); - if(theProcMan) theProcMan->RemoveProcess(&theNeutronFission); + if(theProcMan) theProcMan->RemoveProcess(theNeutronElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(theNeutronInelastic); + if(theProcMan) theProcMan->RemoveProcess(theNeutronCapture); + if(theProcMan) theProcMan->RemoveProcess(theNeutronFission); } + delete theNeutronElasticProcess; + delete theNeutronInelastic; + delete theNeutronCapture; + delete theNeutronFission; } void G4NeutronBuilder:: @@ -54,9 +65,9 @@ Build() (*i)->Build(theNeutronFission); } G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theNeutronElasticProcess); - theProcMan->AddDiscreteProcess(&theNeutronInelastic); - theProcMan->AddDiscreteProcess(&theNeutronCapture); - theProcMan->AddDiscreteProcess(&theNeutronFission); + theProcMan->AddDiscreteProcess(theNeutronElasticProcess); + theProcMan->AddDiscreteProcess(theNeutronInelastic); + theProcMan->AddDiscreteProcess(theNeutronCapture); + theProcMan->AddDiscreteProcess(theNeutronFission); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4NeutronHPBuilder.cc b/physics_lists/hadronic/Packaging/src/G4NeutronHPBuilder.cc index 1b5c94bab7..95222a8012 100644 --- a/physics_lists/hadronic/Packaging/src/G4NeutronHPBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4NeutronHPBuilder.cc @@ -28,17 +28,17 @@ G4NeutronHPBuilder:: G4NeutronHPBuilder() { - theHPElastic = NULL; - theHPElasticData = NULL; + theHPElastic = 0; + theHPElasticData = 0; - theHPFission = NULL; - theHPFissionData = NULL; + theHPFission = 0; + theHPFissionData = 0; - theHPCapture = NULL; - theHPCaptureData = NULL; + theHPCapture = 0; + theHPCaptureData = 0; - theHPInelastic = NULL; - theHPInelasticData = NULL; + theHPInelastic = 0; + theHPInelasticData = 0; } G4NeutronHPBuilder:: @@ -51,38 +51,38 @@ G4NeutronHPBuilder:: } void G4NeutronHPBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess * aP) { - if(theHPElastic==NULL) theHPElastic = new G4NeutronHPElastic; - if(theHPElasticData == NULL) theHPElasticData = new G4NeutronHPElasticData; - aP.AddDataSet(theHPElasticData); - aP.RegisterMe(theHPElastic); + if(theHPElastic==0) theHPElastic = new G4NeutronHPElastic; + if(theHPElasticData == 0) theHPElasticData = new G4NeutronHPElasticData; + aP->AddDataSet(theHPElasticData); + aP->RegisterMe(theHPElastic); } void G4NeutronHPBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess * aP) { - if(theHPFission == NULL) theHPFission = new G4NeutronHPFission; - if(theHPFissionData==NULL) theHPFissionData=new G4NeutronHPFissionData; - aP.AddDataSet(theHPFissionData); - aP.RegisterMe(theHPFission); + if(theHPFission == 0) theHPFission = new G4NeutronHPFission; + if(theHPFissionData==0) theHPFissionData=new G4NeutronHPFissionData; + aP->AddDataSet(theHPFissionData); + aP->RegisterMe(theHPFission); } void G4NeutronHPBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess * aP) { - if(theHPCapture==NULL) theHPCapture = new G4NeutronHPCapture; - if(theHPCaptureData==NULL) theHPCaptureData = new G4NeutronHPCaptureData; - aP.AddDataSet(theHPCaptureData); - aP.RegisterMe(theHPCapture); + if(theHPCapture==0) theHPCapture = new G4NeutronHPCapture; + if(theHPCaptureData==0) theHPCaptureData = new G4NeutronHPCaptureData; + aP->AddDataSet(theHPCaptureData); + aP->RegisterMe(theHPCapture); } void G4NeutronHPBuilder:: -Build(G4NeutronInelasticProcess & aP) +Build(G4NeutronInelasticProcess * aP) { - if(theHPInelastic==NULL) theHPInelastic = new G4NeutronHPInelastic; - if(theHPInelasticData==NULL) theHPInelasticData = new G4NeutronHPInelasticData; - aP.AddDataSet(theHPInelasticData); - aP.RegisterMe(theHPInelastic); + if(theHPInelastic==0) theHPInelastic = new G4NeutronHPInelastic; + if(theHPInelasticData==0) theHPInelasticData = new G4NeutronHPInelasticData; + aP->AddDataSet(theHPInelasticData); + aP->RegisterMe(theHPInelastic); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4PiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4PiKBuilder.cc index 91e0f031c2..306eea52e3 100644 --- a/physics_lists/hadronic/Packaging/src/G4PiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4PiKBuilder.cc @@ -20,13 +20,42 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4PiKBuilder.cc,v 1.3 2005/11/29 16:55:45 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4PiKBuilder +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 16.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- +// #include "G4PiKBuilder.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" #include "G4ProcessManager.hh" G4PiKBuilder:: -G4PiKBuilder(): wasActivated(false) {} +G4PiKBuilder(): wasActivated(false) +{ + thePionPlusElasticProcess=new G4HadronElasticProcess; + thePionMinusElasticProcess=new G4HadronElasticProcess; + theKaonPlusElasticProcess=new G4HadronElasticProcess; + theKaonMinusElasticProcess=new G4HadronElasticProcess; + theKaonZeroLElasticProcess=new G4HadronElasticProcess; + theKaonZeroSElasticProcess=new G4HadronElasticProcess; + + thePionPlusInelastic=new G4PionPlusInelasticProcess; + thePionMinusInelastic=new G4PionMinusInelasticProcess; + theKaonPlusInelastic=new G4KaonPlusInelasticProcess; + theKaonMinusInelastic=new G4KaonMinusInelasticProcess; + theKaonZeroLInelastic=new G4KaonZeroLInelasticProcess; + theKaonZeroSInelastic=new G4KaonZeroSInelasticProcess; +} G4PiKBuilder:: ~G4PiKBuilder(){ @@ -34,23 +63,23 @@ G4PiKBuilder:: { G4ProcessManager * theProcMan; theProcMan = G4PionPlus::PionPlus()->GetProcessManager(); - if(theProcMan) theProcMan->RemoveProcess(&thePionPlusElasticProcess); - if(theProcMan) theProcMan->RemoveProcess(&thePionPlusInelastic); + if(theProcMan) theProcMan->RemoveProcess(thePionPlusElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(thePionPlusInelastic); theProcMan = G4PionMinus::PionMinus()->GetProcessManager(); - if(theProcMan) theProcMan->RemoveProcess(&thePionMinusElasticProcess); - if(theProcMan) theProcMan->RemoveProcess(&thePionMinusInelastic); + if(theProcMan) theProcMan->RemoveProcess(thePionMinusElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(thePionMinusInelastic); theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager(); - if(theProcMan) theProcMan->RemoveProcess(&theKaonPlusElasticProcess); - if(theProcMan) theProcMan->RemoveProcess(&theKaonPlusInelastic); + if(theProcMan) theProcMan->RemoveProcess(theKaonPlusElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(theKaonPlusInelastic); theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager(); - if(theProcMan) theProcMan->RemoveProcess(&theKaonMinusElasticProcess); - if(theProcMan) theProcMan->RemoveProcess(&theKaonMinusInelastic); + if(theProcMan) theProcMan->RemoveProcess(theKaonMinusElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(theKaonMinusInelastic); theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); - if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroLElasticProcess); - if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroLInelastic); + if(theProcMan) theProcMan->RemoveProcess(theKaonZeroLElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(theKaonZeroLInelastic); theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); - if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroSElasticProcess); - if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroSInelastic); + if(theProcMan) theProcMan->RemoveProcess(theKaonZeroSElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(theKaonZeroSInelastic); } } @@ -58,6 +87,7 @@ void G4PiKBuilder:: Build() { wasActivated = true; + std::vector::iterator i; for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) { @@ -77,22 +107,27 @@ Build() } G4ProcessManager * theProcMan; theProcMan = G4PionPlus::PionPlus()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&thePionPlusElasticProcess); - theProcMan->AddDiscreteProcess(&thePionPlusInelastic); + theProcMan->AddDiscreteProcess(thePionPlusElasticProcess); + theProcMan->AddDiscreteProcess(thePionPlusInelastic); + theProcMan = G4PionMinus::PionMinus()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&thePionMinusElasticProcess); - theProcMan->AddDiscreteProcess(&thePionMinusInelastic); + theProcMan->AddDiscreteProcess(thePionMinusElasticProcess); + theProcMan->AddDiscreteProcess(thePionMinusInelastic); + theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theKaonPlusElasticProcess); - theProcMan->AddDiscreteProcess(&theKaonPlusInelastic); + theProcMan->AddDiscreteProcess(theKaonPlusElasticProcess); + theProcMan->AddDiscreteProcess(theKaonPlusInelastic); + theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theKaonMinusElasticProcess); - theProcMan->AddDiscreteProcess(&theKaonMinusInelastic); + theProcMan->AddDiscreteProcess(theKaonMinusElasticProcess); + theProcMan->AddDiscreteProcess(theKaonMinusInelastic); + theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theKaonZeroLElasticProcess); - theProcMan->AddDiscreteProcess(&theKaonZeroLInelastic); + theProcMan->AddDiscreteProcess(theKaonZeroLElasticProcess); + theProcMan->AddDiscreteProcess(theKaonZeroLInelastic); + theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theKaonZeroSElasticProcess); - theProcMan->AddDiscreteProcess(&theKaonZeroSInelastic); + theProcMan->AddDiscreteProcess(theKaonZeroSElasticProcess); + theProcMan->AddDiscreteProcess(theKaonZeroSInelastic); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4PrecoNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4PrecoNeutronBuilder.cc index d6242d9086..3c6c70dfa8 100644 --- a/physics_lists/hadronic/Packaging/src/G4PrecoNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4PrecoNeutronBuilder.cc @@ -30,34 +30,34 @@ G4PrecoNeutronBuilder() { theMin = 0; theMax = 170.*MeV; - theModel = new G4PreCompoundModel(&theHandler); + theModel = new G4PreCompoundModel(new G4ExcitationHandler); } G4PrecoNeutronBuilder:: ~G4PrecoNeutronBuilder() {} void G4PrecoNeutronBuilder:: -Build(G4HadronElasticProcess & ) +Build(G4HadronElasticProcess * ) { } void G4PrecoNeutronBuilder:: -Build(G4HadronFissionProcess & ) +Build(G4HadronFissionProcess * ) { } void G4PrecoNeutronBuilder:: -Build(G4HadronCaptureProcess & ) +Build(G4HadronCaptureProcess * ) { } void G4PrecoNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) +Build(G4NeutronInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4PrecoProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4PrecoProtonBuilder.cc index 758ddbe465..15a49c80a1 100644 --- a/physics_lists/hadronic/Packaging/src/G4PrecoProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4PrecoProtonBuilder.cc @@ -25,29 +25,31 @@ #include "G4ParticleTable.hh" #include "G4ProcessManager.hh" +#include "G4ExcitationHandler.hh" + G4PrecoProtonBuilder:: G4PrecoProtonBuilder() { theMin = 0; theMax = 170.*MeV; - theModel = new G4PreCompoundModel(&theHandler); + theModel = new G4PreCompoundModel(new G4ExcitationHandler); } G4PrecoProtonBuilder:: ~G4PrecoProtonBuilder() {} void G4PrecoProtonBuilder:: -Build(G4HadronElasticProcess & ) +Build(G4HadronElasticProcess * ) { } void G4PrecoProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) +Build(G4ProtonInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4ProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4ProtonBuilder.cc index fe53ed99b2..0b766be8c9 100644 --- a/physics_lists/hadronic/Packaging/src/G4ProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4ProtonBuilder.cc @@ -25,8 +25,8 @@ #include "G4ParticleTable.hh" #include "G4ProcessManager.hh" - void G4ProtonBuilder:: - Build() + + void G4ProtonBuilder::Build() { wasActivated = true; std::vector::iterator i; @@ -36,12 +36,16 @@ (*i)->Build(theProtonInelastic); } G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theProtonElasticProcess); - theProcMan->AddDiscreteProcess(&theProtonInelastic); + theProcMan->AddDiscreteProcess(theProtonElasticProcess); + theProcMan->AddDiscreteProcess(theProtonInelastic); } G4ProtonBuilder:: - G4ProtonBuilder(): wasActivated(false) {} + G4ProtonBuilder(): wasActivated(false) + { + theProtonElasticProcess=new G4HadronElasticProcess; + theProtonInelastic=new G4ProtonInelasticProcess; + } G4ProtonBuilder:: ~G4ProtonBuilder() @@ -49,9 +53,11 @@ if(wasActivated) { G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager(); - if(theProcMan) theProcMan->RemoveProcess(&theProtonElasticProcess); - if(theProcMan) theProcMan->RemoveProcess(&theProtonInelastic); + if(theProcMan) theProcMan->RemoveProcess(theProtonElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(theProtonInelastic); } + delete theProtonElasticProcess; + delete theProtonInelastic; } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4QGSCNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4QGSCNeutronBuilder.cc index fb8a25d910..2994435f7b 100644 --- a/physics_lists/hadronic/Packaging/src/G4QGSCNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4QGSCNeutronBuilder.cc @@ -30,26 +30,32 @@ { theMin = 8*GeV; theModel = new G4TheoFSGenerator; + + theStringModel= new G4QGSModel< G4QGSParticipants >; + theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4StringChipsParticleLevelInterface; + theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); + theModel->SetHighEnergyGenerator(theStringModel); } G4QGSCNeutronBuilder:: ~G4QGSCNeutronBuilder() { delete theStringDecay; + delete theStringModel; + delete theCascade; } void G4QGSCNeutronBuilder:: - Build(G4NeutronInelasticProcess & aP) + Build(G4NeutronInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4QGSCPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4QGSCPiKBuilder.cc index f4b111b17b..657e350ebf 100644 --- a/physics_lists/hadronic/Packaging/src/G4QGSCPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4QGSCPiKBuilder.cc @@ -30,70 +30,77 @@ G4QGSCPiKBuilder() { theMin = 8*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4QGSModel< G4QGSParticipants >; + theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4StringChipsParticleLevelInterface; + theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); + theModel->SetHighEnergyGenerator(theStringModel); } G4QGSCPiKBuilder:: ~G4QGSCPiKBuilder() { + delete theCascade; delete theStringDecay; + delete theStringModel; + delete theModel; } void G4QGSCPiKBuilder:: -Build(G4HadronElasticProcess & ) {} +Build(G4HadronElasticProcess * ) {} void G4QGSCPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) +Build(G4PionPlusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.AddDataSet(&thePiCross); - aP.RegisterMe(theModel); + aP->AddDataSet(&thePiCross); + aP->RegisterMe(theModel); } void G4QGSCPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) +Build(G4PionMinusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.AddDataSet(&thePiCross); - aP.RegisterMe(theModel); + aP->AddDataSet(&thePiCross); + aP->RegisterMe(theModel); } void G4QGSCPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) +Build(G4KaonPlusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4QGSCPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) +Build(G4KaonMinusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4QGSCPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) +Build(G4KaonZeroLInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4QGSCPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) +Build(G4KaonZeroSInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4QGSCProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4QGSCProtonBuilder.cc index bfec356981..dab3adced6 100644 --- a/physics_lists/hadronic/Packaging/src/G4QGSCProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4QGSCProtonBuilder.cc @@ -30,31 +30,37 @@ G4QGSCProtonBuilder() { theMin = 8*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4QGSModel< G4QGSParticipants >; + theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4StringChipsParticleLevelInterface; + + theModel->SetHighEnergyGenerator(theStringModel); theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); } G4QGSCProtonBuilder:: ~G4QGSCProtonBuilder() { + delete theCascade; delete theStringDecay; + delete theStringModel; } void G4QGSCProtonBuilder:: -Build(G4HadronElasticProcess & ) +Build(G4HadronElasticProcess * ) { } void G4QGSCProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) +Build(G4ProtonInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4QGSPNeutronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4QGSPNeutronBuilder.cc index e1660a6240..cf35c30c1b 100644 --- a/physics_lists/hadronic/Packaging/src/G4QGSPNeutronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4QGSPNeutronBuilder.cc @@ -30,43 +30,50 @@ G4QGSPNeutronBuilder() { theMin = 12*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4QGSModel< G4QGSParticipants >; + theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); + thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler); theCascade->SetDeExcitation(thePreEquilib); + theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); + theModel->SetHighEnergyGenerator(theStringModel); } G4QGSPNeutronBuilder:: ~G4QGSPNeutronBuilder() { delete theStringDecay; + delete theStringModel; + delete thePreEquilib; + delete theCascade; } void G4QGSPNeutronBuilder:: -Build(G4HadronElasticProcess & ) +Build(G4HadronElasticProcess * ) { } void G4QGSPNeutronBuilder:: -Build(G4HadronFissionProcess & ) +Build(G4HadronFissionProcess * ) { } void G4QGSPNeutronBuilder:: -Build(G4HadronCaptureProcess & ) +Build(G4HadronCaptureProcess * ) { } void G4QGSPNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) +Build(G4NeutronInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - aP.AddDataSet(&theXSec); + aP->RegisterMe(theModel); + aP->AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4QGSPPiKBuilder.cc b/physics_lists/hadronic/Packaging/src/G4QGSPPiKBuilder.cc index b99bd73476..f0abf89b01 100644 --- a/physics_lists/hadronic/Packaging/src/G4QGSPPiKBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4QGSPPiKBuilder.cc @@ -30,72 +30,79 @@ G4QGSPPiKBuilder() { theMin = 12*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4QGSModel< G4QGSParticipants >; + theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); + thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler); theCascade->SetDeExcitation(thePreEquilib); + + theModel->SetHighEnergyGenerator(theStringModel); theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); } G4QGSPPiKBuilder:: ~G4QGSPPiKBuilder() { + delete theCascade; delete theStringDecay; + delete theStringModel; + delete theModel; } void G4QGSPPiKBuilder:: -Build(G4HadronElasticProcess & ) {} +Build(G4HadronElasticProcess * ) {} void G4QGSPPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) +Build(G4PionPlusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.AddDataSet(&thePiData); - aP.RegisterMe(theModel); + aP->AddDataSet(&thePiData); + aP->RegisterMe(theModel); } void G4QGSPPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) +Build(G4PionMinusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.AddDataSet(&thePiData); - aP.RegisterMe(theModel); + aP->AddDataSet(&thePiData); + aP->RegisterMe(theModel); } void G4QGSPPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) +Build(G4KaonPlusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4QGSPPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) +Build(G4KaonMinusInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4QGSPPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) +Build(G4KaonZeroLInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4QGSPPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) +Build(G4KaonZeroSInelasticProcess * aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4QGSPProtonBuilder.cc b/physics_lists/hadronic/Packaging/src/G4QGSPProtonBuilder.cc index a1e387b6ae..affb44de11 100644 --- a/physics_lists/hadronic/Packaging/src/G4QGSPProtonBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4QGSPProtonBuilder.cc @@ -30,33 +30,41 @@ { theMin = 12*GeV; theModel = new G4TheoFSGenerator; + + theStringModel = new G4QGSModel< G4QGSParticipants >; + theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation); + theStringModel->SetFragmentationModel(theStringDecay); + theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); + thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler); theCascade->SetDeExcitation(thePreEquilib); + theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); + theModel->SetHighEnergyGenerator(theStringModel); } void G4QGSPProtonBuilder:: - Build(G4ProtonInelasticProcess & aP) + Build(G4ProtonInelasticProcess * aP) { - aP.AddDataSet(&theXSec); +// G4cout << "adding inelastic Proton in QGSP" << G4endl; + aP->AddDataSet(&theXSec); theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); + aP->RegisterMe(theModel); } void G4QGSPProtonBuilder:: - Build(G4HadronElasticProcess & ) + Build(G4HadronElasticProcess * ) { } G4QGSPProtonBuilder:: ~G4QGSPProtonBuilder() { + delete thePreEquilib; + delete theCascade; delete theStringDecay; + delete theStringModel; } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/G4StoppingHadronBuilder.cc b/physics_lists/hadronic/Packaging/src/G4StoppingHadronBuilder.cc index 0de13921e2..65d487b092 100644 --- a/physics_lists/hadronic/Packaging/src/G4StoppingHadronBuilder.cc +++ b/physics_lists/hadronic/Packaging/src/G4StoppingHadronBuilder.cc @@ -20,10 +20,23 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4StoppingHadronBuilder.cc,v 1.4 2005/12/02 12:40:04 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4StoppingHadronBuilder +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 10.11.2005 V.Ivanchenko edit to provide a standard and add mu- +// +//---------------------------------------------------------------------------- +// + #include "G4StoppingHadronBuilder.hh" -#include "globals.hh" -#include "G4ios.hh" #include "G4ParticleTable.hh" #include "G4ProcessManager.hh" #include "G4PionMinus.hh" @@ -31,23 +44,17 @@ #include "G4AntiProton.hh" #include "G4AntiNeutron.hh" -G4StoppingHadronBuilder:: -G4StoppingHadronBuilder(): wasActivated(false) {} +G4StoppingHadronBuilder::G4StoppingHadronBuilder(): wasActivated(false) +{} -G4StoppingHadronBuilder:: -~G4StoppingHadronBuilder() +G4StoppingHadronBuilder::~G4StoppingHadronBuilder() { - if(wasActivated) - { - G4ProcessManager * aProcMan = 0; - aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager(); - if(aProcMan) aProcMan->RemoveProcess(&thePionMinusAbsorption); - aProcMan = G4KaonMinus::KaonMinusDefinition()->GetProcessManager(); - if(aProcMan) aProcMan->RemoveProcess(&theKaonMinusAbsorption); - aProcMan = G4AntiProton::AntiProtonDefinition()->GetProcessManager(); - if(aProcMan) aProcMan->RemoveProcess(&theAntiProtonAnnihilation); - aProcMan = G4AntiNeutron::AntiNeutronDefinition()->GetProcessManager(); - if(aProcMan) aProcMan->RemoveProcess(&theAntiNeutronAnnihilation); + if(wasActivated) { + delete theMuonMinusAbsorption; + delete thePionMinusAbsorption; + delete theKaonMinusAbsorption; + delete theAntiProtonAnnihilation; + delete theAntiNeutronAnnihilation; } } @@ -55,27 +62,31 @@ void G4StoppingHadronBuilder::Build() { G4ProcessManager * aProcMan = 0; wasActivated=true; - +//G4cout << " adding stopping hadron Physics" << G4endl; + + // Muon Minus Physics + aProcMan = G4MuonMinus::MuonMinus()->GetProcessManager(); + theMuonMinusAbsorption = new G4MuonMinusCaptureAtRest(); + aProcMan->AddRestProcess(theMuonMinusAbsorption); + // PionMinus - aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager(); - aProcMan->AddRestProcess(&thePionMinusAbsorption, ordDefault); + aProcMan = G4PionMinus::PionMinus()->GetProcessManager(); + thePionMinusAbsorption = new G4PionMinusAbsorptionAtRest(); + aProcMan->AddRestProcess(thePionMinusAbsorption); // KaonMinus - aProcMan = G4KaonMinus::KaonMinusDefinition()->GetProcessManager(); - aProcMan->AddRestProcess(&theKaonMinusAbsorption, ordDefault); + aProcMan = G4KaonMinus::KaonMinus()->GetProcessManager(); + theKaonMinusAbsorption = new G4KaonMinusAbsorption(); + aProcMan->AddRestProcess(theKaonMinusAbsorption); // anti-Proton - aProcMan = G4AntiProton::AntiProtonDefinition()->GetProcessManager(); - aProcMan->AddRestProcess(&theAntiProtonAnnihilation); + aProcMan = G4AntiProton::AntiProton()->GetProcessManager(); + theAntiProtonAnnihilation = new G4AntiProtonAnnihilationAtRest(); + aProcMan->AddRestProcess(theAntiProtonAnnihilation); // AntiNeutron - aProcMan = G4AntiNeutron::AntiNeutronDefinition()->GetProcessManager(); - aProcMan->AddRestProcess(&theAntiNeutronAnnihilation); + aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager(); + theAntiNeutronAnnihilation = new G4AntiNeutronAnnihilationAtRest(); + aProcMan->AddRestProcess(theAntiNeutronAnnihilation); } - - - - - -// 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/GeneralPhysics.cc b/physics_lists/hadronic/Packaging/src/GeneralPhysics.cc deleted file mode 100644 index 1479a5b0c9..0000000000 --- a/physics_lists/hadronic/Packaging/src/GeneralPhysics.cc +++ /dev/null @@ -1,81 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -#include "GeneralPhysics.hh" - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ProcessManager.hh" -// Bosons -#include "G4ChargedGeantino.hh" -#include "G4Geantino.hh" - -GeneralPhysics::GeneralPhysics(const G4String& name) - : G4VPhysicsConstructor(name), wasActivated(false) -{ -} - -GeneralPhysics::~GeneralPhysics() -{ - if(wasActivated) - { - theParticleIterator->reset(); - while( (*theParticleIterator)() ) - { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (fDecayProcess.IsApplicable(*particle) && pmanager) pmanager ->RemoveProcess(&fDecayProcess); - } - } -} - -void GeneralPhysics::ConstructParticle() -{ - // pseudo-particles - G4Geantino::GeantinoDefinition(); - G4ChargedGeantino::ChargedGeantinoDefinition(); -} - -void GeneralPhysics::ConstructProcess() -{ - // Add Decay Process - theParticleIterator->reset(); - G4ParticleDefinition* particle=0; - G4ProcessManager* pmanager=0; - while( (*theParticleIterator)() ) - { - particle = theParticleIterator->value(); - pmanager = particle->GetProcessManager(); - if( fDecayProcess.IsApplicable(*particle) ) - { - pmanager -> AddProcess(&fDecayProcess); - pmanager -> SetProcessOrdering(&fDecayProcess, idxPostStep); - pmanager -> SetProcessOrdering(&fDecayProcess, idxAtRest); - } - } -} - - -// 2002 by J.P. Wellisch - diff --git a/physics_lists/hadronic/Packaging/src/IonPhysics.cc b/physics_lists/hadronic/Packaging/src/IonPhysics.cc deleted file mode 100644 index b9184fe2ed..0000000000 --- a/physics_lists/hadronic/Packaging/src/IonPhysics.cc +++ /dev/null @@ -1,163 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - #include "IonPhysics.hh" - #include "G4ParticleDefinition.hh" - #include "G4ParticleTable.hh" - #include "G4ProcessManager.hh" - - // Nuclei - #include "G4IonConstructor.hh" - - #include "globals.hh" - #include "G4ios.hh" - - IonPhysics::IonPhysics(const G4String& name) - : G4VPhysicsConstructor(name), wasActivated(false) - { - } - - IonPhysics::~IonPhysics() - { - if(wasActivated) - { - G4ProcessManager * pManager = 0; - - pManager = G4GenericIon::GenericIon()->GetProcessManager(); - //if(pManager) pManager->RemoveProcess(&theIonElasticProcess); - //if(pManager) pManager->RemoveProcess(&fIonIonisation); - // if(pManager) pManager->RemoveProcess(&fIonMultipleScattering); - - pManager = G4Deuteron::Deuteron()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&theDElasticProcess); - if(pManager) pManager->RemoveProcess(&fDeuteronProcess); - if(pManager) pManager->RemoveProcess(&fDeuteronIonisation); - if(pManager) pManager->RemoveProcess(&fDeuteronMultipleScattering); - - pManager = G4Triton::Triton()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&theTElasticProcess); - if(pManager) pManager->RemoveProcess(&fTritonProcess); - if(pManager) pManager->RemoveProcess(&fTritonIonisation); - if(pManager) pManager->RemoveProcess(&fTritonMultipleScattering); - - pManager = G4Alpha::Alpha()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&theAElasticProcess); - if(pManager) pManager->RemoveProcess(&fAlphaProcess); - if(pManager) pManager->RemoveProcess(&fAlphaIonisation); - if(pManager) pManager->RemoveProcess(&fAlphaMultipleScattering); - - pManager = G4He3::He3()->GetProcessManager(); - //if(pManager) pManager->RemoveProcess(&theHe3ElasticProcess); - //if(pManager) pManager->RemoveProcess(&fHe3Ionisation); - //if(pManager) pManager->RemoveProcess(&fHe3MultipleScattering); - } - } - - void IonPhysics::ConstructProcess() - { - G4ProcessManager * pManager = 0; - - // Elastic Process - theElasticModel = new G4LElastic(); - theIonElasticProcess.RegisterMe(theElasticModel); - theDElasticProcess.RegisterMe(theElasticModel); - theTElasticProcess.RegisterMe(theElasticModel); - theAElasticProcess.RegisterMe(theElasticModel); - theHe3ElasticProcess.RegisterMe(theElasticModel); - - // Generic Ion - pManager = G4GenericIon::GenericIon()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theIonElasticProcess); - pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); - - pManager->AddProcess(&fIonMultipleScattering); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); - - // Deuteron - pManager = G4Deuteron::Deuteron()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theDElasticProcess); - - fDeuteronModel = new G4LEDeuteronInelastic(); - fDeuteronProcess.RegisterMe(fDeuteronModel); - pManager->AddDiscreteProcess(&fDeuteronProcess); - - pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); - - pManager->AddProcess(&fDeuteronMultipleScattering); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); - - // Triton - pManager = G4Triton::Triton()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theTElasticProcess); - - fTritonModel = new G4LETritonInelastic(); - fTritonProcess.RegisterMe(fTritonModel); - pManager->AddDiscreteProcess(&fTritonProcess); - - pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2); - - pManager->AddProcess(&fTritonMultipleScattering); - pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep, 1); - - // Alpha - pManager = G4Alpha::Alpha()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theAElasticProcess); - - fAlphaModel = new G4LEAlphaInelastic(); - fAlphaProcess.RegisterMe(fAlphaModel); - pManager->AddDiscreteProcess(&fAlphaProcess); - pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); - - pManager->AddProcess(&fAlphaMultipleScattering); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); - - // He3 - pManager = G4He3::He3()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theHe3ElasticProcess); - pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); - - pManager->AddProcess(&fHe3MultipleScattering); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); - - wasActivated = true; - } - - void IonPhysics::ConstructParticle() - { - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); - } - - - - // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/Packaging/src/MuonPhysics.cc b/physics_lists/hadronic/Packaging/src/MuonPhysics.cc deleted file mode 100644 index 4aa9e4b058..0000000000 --- a/physics_lists/hadronic/Packaging/src/MuonPhysics.cc +++ /dev/null @@ -1,133 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - #include "MuonPhysics.hh" - #include "G4ParticleDefinition.hh" - #include "G4ParticleTable.hh" - - #include "G4MuonPlus.hh" - #include "G4MuonMinus.hh" - #include "G4TauMinus.hh" - #include "G4TauPlus.hh" - #include "G4NeutrinoTau.hh" - #include "G4AntiNeutrinoTau.hh" - #include "G4NeutrinoMu.hh" - #include "G4AntiNeutrinoMu.hh" - - #include "G4ProcessManager.hh" - - #include "globals.hh" - #include "G4ios.hh" - - MuonPhysics::MuonPhysics(const G4String& name) - : G4VPhysicsConstructor(name) - { - } - - MuonPhysics::~MuonPhysics() - { - if(wasActivated) - { - G4ProcessManager * pManager = 0; - pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&fMuPlusIonisation); - if(pManager) pManager->RemoveProcess(&fMuPlusBremsstrahlung); - if(pManager) pManager->RemoveProcess(&fMuPlusPairProduction); - if(pManager) pManager->RemoveProcess(&fMuPlusMultipleScattering); - pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&fMuMinusIonisation); - if(pManager) pManager->RemoveProcess(&fMuMinusBremsstrahlung); - if(pManager) pManager->RemoveProcess(&fMuMinusPairProduction); - if(pManager) pManager->RemoveProcess(&fMuMinusMultipleScattering); - if(pManager) pManager->RemoveProcess(&fMuMinusCaptureAtRest); - pManager = G4TauPlus::TauPlus()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&fTauPlusIonisation); - if(pManager) pManager->RemoveProcess(&fTauPlusMultipleScattering); - pManager = G4TauMinus::TauMinus()->GetProcessManager(); - if(pManager) pManager->RemoveProcess(&fTauMinusIonisation); - if(pManager) pManager->RemoveProcess(&fTauMinusMultipleScattering); - } - } - - void MuonPhysics::ConstructProcess() - { - G4ProcessManager * pManager = 0; - - wasActivated = true; - // Muon Plus Physics - pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); - // add processes - pManager->AddProcess(&fMuPlusIonisation, ordInActive,2, 2); - pManager->AddDiscreteProcess(&fMuPlusBremsstrahlung); - pManager->AddDiscreteProcess(&fMuPlusPairProduction); - - pManager->AddProcess(&fMuPlusMultipleScattering); - pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxPostStep, 1); - - // Muon Minus Physics - pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); - // add processes - pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); - pManager->AddDiscreteProcess(&fMuMinusBremsstrahlung); - pManager->AddDiscreteProcess(&fMuMinusPairProduction); - - pManager->AddProcess(&fMuMinusMultipleScattering); - pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxPostStep, 1); - pManager->AddRestProcess(&fMuMinusCaptureAtRest); - - // Tau Plus Physics - pManager = G4TauPlus::TauPlus()->GetProcessManager(); - // add processes - pManager->AddProcess(&fTauPlusIonisation, ordInActive,2, 2); - - pManager->AddProcess(&fTauPlusMultipleScattering); - pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1); - - // Tau Minus Physics - pManager = G4TauMinus::TauMinus()->GetProcessManager(); - // add processes - pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2); - - pManager->AddProcess(&fTauMinusMultipleScattering); - pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1); - } - - void MuonPhysics::ConstructParticle() - { - G4TauMinus::TauMinusDefinition(); - G4TauPlus::TauPlusDefinition(); - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); - G4NeutrinoTau::NeutrinoTauDefinition(); - G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); - } - - - - // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSC/include/HadronPhysicsQGSC.hh b/physics_lists/hadronic/QGSC/include/HadronPhysicsQGSC.hh index bfa93b462f..bfe92b6ce1 100644 --- a/physics_lists/hadronic/QGSC/include/HadronPhysicsQGSC.hh +++ b/physics_lists/hadronic/QGSC/include/HadronPhysicsQGSC.hh @@ -20,6 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- #ifndef HadronPhysicsQGSC_h #define HadronPhysicsQGSC_h 1 @@ -27,7 +37,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -54,21 +63,21 @@ class HadronPhysicsQGSC : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4QGSCNeutronBuilder theQGSCNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSCNeutronBuilder * theQGSCNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4QGSCPiKBuilder theQGSCPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSCPiKBuilder * theQGSCPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4QGSCProtonBuilder theQGSCPro; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSCProtonBuilder * theQGSCPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSC/include/QGSC.hh b/physics_lists/hadronic/QGSC/include/QGSC.hh index 40e0256dc7..8573b80d11 100644 --- a/physics_lists/hadronic/QGSC/include/QGSC.hh +++ b/physics_lists/hadronic/QGSC/include/QGSC.hh @@ -31,7 +31,7 @@ template class TQGSC: public T { public: - TQGSC(); + TQGSC(G4int ver = 1); virtual ~TQGSC(); public: diff --git a/physics_lists/hadronic/QGSC/include/QGSC.icc b/physics_lists/hadronic/QGSC/include/QGSC.icc index f5d76d31f1..2635661ccb 100644 --- a/physics_lists/hadronic/QGSC/include/QGSC.icc +++ b/physics_lists/hadronic/QGSC/include/QGSC.icc @@ -20,7 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // - +// $Id: QGSC.icc,v 1.8 2005/12/15 20:57:53 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 21.11.2005 G.Folger: don't keep processes as data members, but new these +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// 02.12.2005 V.Ivanchenko: rename components +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" @@ -34,38 +49,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsQGSC.hh" -template TQGSC::TQGSC(): T() +template TQGSC::TQGSC(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: QGSC 2.9"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsQGSC("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -83,7 +98,8 @@ template void TQGSC::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/QGSC/src/HadronPhysicsQGSC.cc b/physics_lists/hadronic/QGSC/src/HadronPhysicsQGSC.cc index 2618b01eb9..34e359aa17 100644 --- a/physics_lists/hadronic/QGSC/src/HadronPhysicsQGSC.cc +++ b/physics_lists/hadronic/QGSC/src/HadronPhysicsQGSC.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSC.cc,v 1.2 2005/11/29 17:01:51 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 21.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsQGSC.hh" #include "globals.hh" @@ -34,21 +48,40 @@ HadronPhysicsQGSC::HadronPhysicsQGSC(const G4String& name) : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsQGSC::CreateModels() { - theNeutrons.RegisterMe(&theQGSCNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theQGSCNeutron=new G4QGSCNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); - thePro.RegisterMe(&theQGSCPro); - thePro.RegisterMe(&theLEPPro); - theLEPPro.SetMaxEnergy(25*GeV); + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSCPro=new G4QGSCProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMaxEnergy(25*GeV); - thePiK.RegisterMe(&theQGSCPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSCPiK=new G4QGSCPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsQGSC::~HadronPhysicsQGSC() {} +HadronPhysicsQGSC::~HadronPhysicsQGSC() +{ + delete theStoppingHadron; + delete theMiscLHEP; + delete theQGSCPro; + delete theLEPPro; + delete thePro; + delete theQGSCPiK; + delete theLEPPiK; + delete thePiK; +} void HadronPhysicsQGSC::ConstructParticle() { @@ -65,11 +98,11 @@ void HadronPhysicsQGSC::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsQGSC::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSC_LEAD/include/HadronPhysicsQGSC_LEAD.hh b/physics_lists/hadronic/QGSC_LEAD/include/HadronPhysicsQGSC_LEAD.hh index 8fd8b6c752..095a1a4eb3 100644 --- a/physics_lists/hadronic/QGSC_LEAD/include/HadronPhysicsQGSC_LEAD.hh +++ b/physics_lists/hadronic/QGSC_LEAD/include/HadronPhysicsQGSC_LEAD.hh @@ -27,7 +27,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -57,24 +56,24 @@ class HadronPhysicsQGSC_LEAD : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4QGSCNeutronBuilder theQGSCNeutron; - G4LEADNeutronBuilder theLEADNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSCNeutronBuilder * theQGSCNeutron; + G4LEADNeutronBuilder * theLEADNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4QGSCPiKBuilder theQGSCPiK; - G4LEADPiKBuilder theLEADPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSCPiKBuilder * theQGSCPiK; + G4LEADPiKBuilder * theLEADPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4QGSCProtonBuilder theQGSCPro; - G4LEADProtonBuilder theLEADProton; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSCProtonBuilder * theQGSCPro; + G4LEADProtonBuilder * theLEADProton; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.hh b/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.hh index eaf68521b7..ba47a13809 100644 --- a/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.hh +++ b/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSC_LEAD.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSC_LEAD +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TQGSC_LEAD_h #define TQGSC_LEAD_h 1 @@ -31,7 +44,7 @@ template class TQGSC_LEAD: public T { public: - TQGSC_LEAD(); + TQGSC_LEAD(G4int ver = 1); virtual ~TQGSC_LEAD(); public: diff --git a/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.icc b/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.icc index 8e8bb2c630..3542ac14b0 100644 --- a/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.icc +++ b/physics_lists/hadronic/QGSC_LEAD/include/QGSC_LEAD.icc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSC_LEAD.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSC_LEAD +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,38 +48,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsQGSC_LEAD.hh" -template TQGSC_LEAD::TQGSC_LEAD(): T() +template TQGSC_LEAD::TQGSC_LEAD(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: QGSC_LEAD 1.7"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsQGSC_LEAD("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -83,7 +97,8 @@ template void TQGSC_LEAD::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/QGSC_LEAD/src/HadronPhysicsQGSC_LEAD.cc b/physics_lists/hadronic/QGSC_LEAD/src/HadronPhysicsQGSC_LEAD.cc index 1bade86451..f0f7789c46 100644 --- a/physics_lists/hadronic/QGSC_LEAD/src/HadronPhysicsQGSC_LEAD.cc +++ b/physics_lists/hadronic/QGSC_LEAD/src/HadronPhysicsQGSC_LEAD.cc @@ -34,27 +34,55 @@ HadronPhysicsQGSC_LEAD::HadronPhysicsQGSC_LEAD(const G4String& name) : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsQGSC_LEAD::CreateModels() { - theNeutrons.RegisterMe(&theQGSCNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); - theLEPNeutron.SetMinInelasticEnergy(4.99*GeV); - theNeutrons.RegisterMe(&theLEADNeutron); + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theQGSCNeutron=new G4QGSCNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + theLEPNeutron->SetMinInelasticEnergy(4.99*GeV); + theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder); - thePro.RegisterMe(&theQGSCPro); - thePro.RegisterMe(&theLEPPro); - theLEPPro.SetMaxEnergy(25*GeV); - theLEPPro.SetMinEnergy(4.99*GeV); - thePro.RegisterMe(&theLEADProton); + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSCPro=new G4QGSCProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMaxEnergy(25*GeV); + theLEPPro->SetMinEnergy(4.99*GeV); + thePro->RegisterMe(theLEADProton=new G4LEADProtonBuilder); - thePiK.RegisterMe(&theQGSCPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); - theLEPPiK.SetMinEnergy(4.99*GeV); - thePiK.RegisterMe(&theLEADPiK); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSCPiK=new G4QGSCPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + theLEPPiK->SetMinEnergy(4.99*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsQGSC_LEAD::~HadronPhysicsQGSC_LEAD() {} +HadronPhysicsQGSC_LEAD::~HadronPhysicsQGSC_LEAD() +{ + delete theNeutrons; + delete theLEPNeutron; + delete theQGSCNeutron; + delete theLEADNeutron; + + delete thePiK; + delete theLEPPiK; + delete theQGSCPiK; + delete theLEADPiK; + + delete thePro; + delete theLEPPro; + delete theQGSCPro; + delete theLEADProton; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsQGSC_LEAD::ConstructParticle() { @@ -71,11 +99,11 @@ void HadronPhysicsQGSC_LEAD::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsQGSC_LEAD::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSC_LEAD_HP/include/HadronPhysicsQGSC_LEAD_HP.hh b/physics_lists/hadronic/QGSC_LEAD_HP/include/HadronPhysicsQGSC_LEAD_HP.hh index 560cfe0aea..23cbef10ca 100644 --- a/physics_lists/hadronic/QGSC_LEAD_HP/include/HadronPhysicsQGSC_LEAD_HP.hh +++ b/physics_lists/hadronic/QGSC_LEAD_HP/include/HadronPhysicsQGSC_LEAD_HP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSC_LEAD_HP.hh,v 1.3 2005/12/02 18:04:01 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSC_LEAD_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsQGSC_LEAD_HP_h #define HadronPhysicsQGSC_LEAD_HP_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -58,25 +71,25 @@ class HadronPhysicsQGSC_LEAD_HP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4QGSCNeutronBuilder theQGSCNeutron; - G4LEADNeutronBuilder theLEADNeutron; - G4NeutronHPBuilder theHPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSCNeutronBuilder * theQGSCNeutron; + G4LEADNeutronBuilder * theLEADNeutron; + G4NeutronHPBuilder * theHPNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4QGSCPiKBuilder theQGSCPiK; - G4LEADPiKBuilder theLEADPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSCPiKBuilder * theQGSCPiK; + G4LEADPiKBuilder * theLEADPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4QGSCProtonBuilder theQGSCPro; - G4LEADProtonBuilder theLEADProton; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSCProtonBuilder * theQGSCPro; + G4LEADProtonBuilder * theLEADProton; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.hh b/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.hh index a987250659..a0fd564461 100644 --- a/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.hh +++ b/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSC_LEAD_HP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSC_LEAD_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TQGSC_LEAD_HP_h #define TQGSC_LEAD_HP_h 1 @@ -31,7 +44,7 @@ template class TQGSC_LEAD_HP: public T { public: - TQGSC_LEAD_HP(); + TQGSC_LEAD_HP(G4int ver = 1); virtual ~TQGSC_LEAD_HP(); public: diff --git a/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc b/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc index 81867258dc..54e4d62035 100644 --- a/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc +++ b/physics_lists/hadronic/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSC_LEAD_HP.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName:QGSC_LEAD_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,39 +48,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsQGSC_LEAD_HP.hh" -template TQGSC_LEAD_HP::TQGSC_LEAD_HP(): T() +template TQGSC_LEAD_HP::TQGSC_LEAD_HP(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon, neutron); - G4cout << "You are using the simulation engine: QGSC_LEAD_HP 1.7"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsQGSC_LEAD_HP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - - + this->RegisterPhysics( new G4IonPhysics("ion")); } template TQGSC_LEAD_HP::~TQGSC_LEAD_HP() @@ -83,7 +96,8 @@ template void TQGSC_LEAD_HP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/QGSC_LEAD_HP/src/HadronPhysicsQGSC_LEAD_HP.cc b/physics_lists/hadronic/QGSC_LEAD_HP/src/HadronPhysicsQGSC_LEAD_HP.cc index 1cf8cfa57a..c83344ba13 100644 --- a/physics_lists/hadronic/QGSC_LEAD_HP/src/HadronPhysicsQGSC_LEAD_HP.cc +++ b/physics_lists/hadronic/QGSC_LEAD_HP/src/HadronPhysicsQGSC_LEAD_HP.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSC_LEAD_HP.cc,v 1.4 2005/12/02 18:26:58 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSC_LEAD_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 1.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsQGSC_LEAD_HP.hh" #include "globals.hh" @@ -34,30 +48,59 @@ HadronPhysicsQGSC_LEAD_HP::HadronPhysicsQGSC_LEAD_HP(const G4String& name) : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsQGSC_LEAD_HP::CreateModels() { - theNeutrons.RegisterMe(&theQGSCNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); - theLEPNeutron.SetMinEnergy(19.9*MeV); - theLEPNeutron.SetMinInelasticEnergy(4.99*GeV); - theNeutrons.RegisterMe(&theLEADNeutron); - theLEADNeutron.SetMinEnergy(19.9*MeV); - theNeutrons.RegisterMe(&theHPNeutron); + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theQGSCNeutron=new G4QGSCNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + theLEPNeutron->SetMinEnergy(19.9*MeV); + theLEPNeutron->SetMinInelasticEnergy(4.99*GeV); + theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder); + theLEADNeutron->SetMinEnergy(19.9*MeV); + theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder); - thePro.RegisterMe(&theQGSCPro); - thePro.RegisterMe(&theLEPPro); - theLEPPro.SetMaxEnergy(25*GeV); - theLEPPro.SetMinEnergy(4.99*GeV); - thePro.RegisterMe(&theLEADProton); + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSCPro=new G4QGSCProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMaxEnergy(25*GeV); + theLEPPro->SetMinEnergy(4.99*GeV); + thePro->RegisterMe(theLEADProton=new G4LEADProtonBuilder); - thePiK.RegisterMe(&theQGSCPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); - theLEPPiK.SetMinEnergy(4.99*GeV); - thePiK.RegisterMe(&theLEADPiK); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSCPiK=new G4QGSCPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + theLEPPiK->SetMinEnergy(4.99*GeV); + thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsQGSC_LEAD_HP::~HadronPhysicsQGSC_LEAD_HP() {} +HadronPhysicsQGSC_LEAD_HP::~HadronPhysicsQGSC_LEAD_HP() +{ + delete theNeutrons; + delete theLEPNeutron; + delete theQGSCNeutron; + delete theLEADNeutron; + delete theHPNeutron; + + delete thePiK; + delete theLEPPiK; + delete theQGSCPiK; + delete theLEADPiK; + + delete thePro; + delete theLEPPro; + delete theQGSCPro; + delete theLEADProton; + + delete theMiscLHEP; + delete theStoppingHadron; +} void HadronPhysicsQGSC_LEAD_HP::ConstructParticle() { @@ -74,11 +117,11 @@ void HadronPhysicsQGSC_LEAD_HP::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsQGSC_LEAD_HP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP/include/HadronPhysicsQGSP.hh b/physics_lists/hadronic/QGSP/include/HadronPhysicsQGSP.hh index 3c1582be13..fb4aab626d 100644 --- a/physics_lists/hadronic/QGSP/include/HadronPhysicsQGSP.hh +++ b/physics_lists/hadronic/QGSP/include/HadronPhysicsQGSP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSP.hh,v 1.2 2005/11/25 17:33:40 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 21.11.2005 G.Folger: don't keep processes as data members, but new these +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsQGSP_h #define HadronPhysicsQGSP_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -54,21 +67,21 @@ class HadronPhysicsQGSP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4QGSPNeutronBuilder theQGSPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSPNeutronBuilder * theQGSPNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4QGSPPiKBuilder theQGSPPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSPPiKBuilder * theQGSPPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4QGSPProtonBuilder theQGSPPro; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSPProtonBuilder * theQGSPPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP/include/QGSP.hh b/physics_lists/hadronic/QGSP/include/QGSP.hh index c1eae039f6..4db0094001 100644 --- a/physics_lists/hadronic/QGSP/include/QGSP.hh +++ b/physics_lists/hadronic/QGSP/include/QGSP.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: QGSP.hh,v 1.4 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- #ifndef TQGSP_h #define TQGSP_h 1 @@ -31,7 +44,7 @@ template class TQGSP: public T { public: - TQGSP(); + TQGSP(G4int ver = 1); virtual ~TQGSP(); public: diff --git a/physics_lists/hadronic/QGSP/include/QGSP.icc b/physics_lists/hadronic/QGSP/include/QGSP.icc index 8ef940824c..dd3e199d17 100644 --- a/physics_lists/hadronic/QGSP/include/QGSP.icc +++ b/physics_lists/hadronic/QGSP/include/QGSP.icc @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSP.icc,v 1.10 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 25.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,41 +49,40 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" #include "G4DataQuestionaire.hh" #include "HadronPhysicsQGSP.hh" -template TQGSP::TQGSP(): T() +template TQGSP::TQGSP(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: QGSP 2.8"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics - this->RegisterPhysics( new HadronPhysicsQGSP("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -86,9 +100,8 @@ template void TQGSP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel > 0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/QGSP/src/HadronPhysicsQGSP.cc b/physics_lists/hadronic/QGSP/src/HadronPhysicsQGSP.cc index 19d9bfc458..f62e37c02f 100644 --- a/physics_lists/hadronic/QGSP/src/HadronPhysicsQGSP.cc +++ b/physics_lists/hadronic/QGSP/src/HadronPhysicsQGSP.cc @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: HadronPhysicsQGSP.cc,v 1.2 2005/11/25 17:35:00 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 21.11.2005 G.Folger: migration to non static particles +// #include "HadronPhysicsQGSP.hh" #include "globals.hh" @@ -34,21 +47,43 @@ HadronPhysicsQGSP::HadronPhysicsQGSP(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theQGSPNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); +{} - thePro.RegisterMe(&theQGSPPro); - thePro.RegisterMe(&theLEPPro); - theLEPPro.SetMaxEnergy(25*GeV); +void HadronPhysicsQGSP::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMaxEnergy(25*GeV); - thePiK.RegisterMe(&theQGSPPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; +} + +HadronPhysicsQGSP::~HadronPhysicsQGSP() +{ + delete theStoppingHadron; + delete theMiscLHEP; + delete theQGSPNeutron; + delete theLEPNeutron; + delete theQGSPPro; + delete theLEPPro; + delete thePro; + delete theQGSPPiK; + delete theLEPPiK; + delete thePiK; } -HadronPhysicsQGSP::~HadronPhysicsQGSP() {} void HadronPhysicsQGSP::ConstructParticle() { @@ -65,11 +100,11 @@ void HadronPhysicsQGSP::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsQGSP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_BERT/include/HadronPhysicsQGSP_BERT.hh b/physics_lists/hadronic/QGSP_BERT/include/HadronPhysicsQGSP_BERT.hh index b7887c3006..82e5bc4342 100644 --- a/physics_lists/hadronic/QGSP_BERT/include/HadronPhysicsQGSP_BERT.hh +++ b/physics_lists/hadronic/QGSP_BERT/include/HadronPhysicsQGSP_BERT.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSP_BERT.hh,v 1.2 2005/11/29 17:02:23 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsQGSP_BERT_h #define HadronPhysicsQGSP_BERT_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -56,24 +69,24 @@ class HadronPhysicsQGSP_BERT : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4QGSPNeutronBuilder theQGSPNeutron; - G4BertiniNeutronBuilder theBertiniNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSPNeutronBuilder * theQGSPNeutron; + G4BertiniNeutronBuilder * theBertiniNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4QGSPPiKBuilder theQGSPPiK; - G4BertiniPiKBuilder theBertiniPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSPPiKBuilder * theQGSPPiK; + G4BertiniPiKBuilder * theBertiniPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4QGSPProtonBuilder theQGSPPro; - G4BertiniProtonBuilder theBertiniPro; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSPProtonBuilder * theQGSPPro; + G4BertiniProtonBuilder * theBertiniPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.hh b/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.hh index de9717d541..2986a04976 100644 --- a/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.hh +++ b/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSP_BERT.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TQGSP_BERT_h #define TQGSP_BERT_h 1 @@ -31,7 +44,7 @@ template class TQGSP_BERT: public T { public: - TQGSP_BERT(); + TQGSP_BERT(G4int ver = 1); virtual ~TQGSP_BERT(); public: @@ -41,6 +54,7 @@ public: private: enum {ok = CompileTimeConstraints::IsA::ok }; }; + #include "QGSP_BERT.icc" typedef TQGSP_BERT QGSP_BERT; diff --git a/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.icc b/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.icc index f02cb59294..cd1ea31746 100644 --- a/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.icc +++ b/physics_lists/hadronic/QGSP_BERT/include/QGSP_BERT.icc @@ -20,6 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSP_BERT.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 25.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// 02.12.2005 V.Ivanchenko: rename components +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,41 +50,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" #include "G4DataQuestionaire.hh" #include "HadronPhysicsQGSP_BERT.hh" -template TQGSP_BERT::TQGSP_BERT(): T() +template TQGSP_BERT::TQGSP_BERT(G4int ver): T() { - // default cut value (1.0mm) - // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: QGSP_BERT 1.2"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); - // Hadron Physics - this->RegisterPhysics( new HadronPhysicsQGSP_BERT("hadron")); + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); + + // Hadron Physics + this->RegisterPhysics( new HadronPhysicsQGSP_BERT("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -86,9 +99,8 @@ template void TQGSP_BERT::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/QGSP_BERT/src/HadronPhysicsQGSP_BERT.cc b/physics_lists/hadronic/QGSP_BERT/src/HadronPhysicsQGSP_BERT.cc index 7f6ffd1f52..e48bd89198 100644 --- a/physics_lists/hadronic/QGSP_BERT/src/HadronPhysicsQGSP_BERT.cc +++ b/physics_lists/hadronic/QGSP_BERT/src/HadronPhysicsQGSP_BERT.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSP_BERT.cc,v 1.2 2005/11/29 17:02:23 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsQGSP_BERT.hh" #include "globals.hh" @@ -34,32 +48,60 @@ HadronPhysicsQGSP_BERT::HadronPhysicsQGSP_BERT(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theQGSPNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theNeutrons.RegisterMe(&theBertiniNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); - theLEPNeutron.SetMinInelasticEnergy(9.5*GeV); - theBertiniNeutron.SetMaxEnergy(9.9*GeV); - theBertiniNeutron.SetMinEnergy(0.0*GeV); +{} - thePro.RegisterMe(&theQGSPPro); - thePro.RegisterMe(&theLEPPro); - thePro.RegisterMe(&theBertiniPro); - theLEPPro.SetMaxEnergy(25*GeV); - theLEPPro.SetMinEnergy(9.5*GeV); - theBertiniPro.SetMaxEnergy(9.9*GeV); +void HadronPhysicsQGSP_BERT::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMinInelasticEnergy(9.5*GeV); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + + theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder); + theBertiniNeutron->SetMinEnergy(0.0*GeV); + theBertiniNeutron->SetMaxEnergy(9.9*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMinEnergy(9.5*GeV); + theLEPPro->SetMaxEnergy(25*GeV); + + thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder); + theBertiniPro->SetMaxEnergy(9.9*GeV); - thePiK.RegisterMe(&theQGSPPiK); - thePiK.RegisterMe(&theLEPPiK); - thePiK.RegisterMe(&theBertiniPiK); - theLEPPiK.SetMaxEnergy(25*GeV); - theLEPPiK.SetMinPionEnergy(9.5*GeV); - theBertiniPiK.SetMaxEnergy(9.9*GeV); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + theLEPPiK->SetMinPionEnergy(9.5*GeV); + + thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder); + theBertiniPiK->SetMaxEnergy(9.9*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; + } -HadronPhysicsQGSP_BERT::~HadronPhysicsQGSP_BERT() {} +HadronPhysicsQGSP_BERT::~HadronPhysicsQGSP_BERT() +{ + delete theStoppingHadron; + delete theMiscLHEP; + delete theQGSPNeutron; + delete theLEPNeutron; + delete theBertiniNeutron; + delete theQGSPPro; + delete theLEPPro; + delete thePro; + delete theBertiniPro; + delete theQGSPPiK; + delete theLEPPiK; + delete theBertiniPiK; + delete thePiK; +} void HadronPhysicsQGSP_BERT::ConstructParticle() { @@ -76,11 +118,11 @@ void HadronPhysicsQGSP_BERT::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsQGSP_BERT::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_GN/GNUmakefile b/physics_lists/hadronic/QGSP_BERT_HP/GNUmakefile similarity index 51% rename from physics_lists/hadronic/QGSP_GN/GNUmakefile rename to physics_lists/hadronic/QGSP_BERT_HP/GNUmakefile index 84894c6944..4a99120432 100644 --- a/physics_lists/hadronic/QGSP_GN/GNUmakefile +++ b/physics_lists/hadronic/QGSP_BERT_HP/GNUmakefile @@ -1,2 +1,2 @@ -name := QGSP_GN +name := QGSP_BERT_HP include ../common.gmk diff --git a/physics_lists/hadronic/QGSP_BERT_HP/include/HadronPhysicsQGSP_BERT_HP.hh b/physics_lists/hadronic/QGSP_BERT_HP/include/HadronPhysicsQGSP_BERT_HP.hh new file mode 100644 index 0000000000..4e5713fc0b --- /dev/null +++ b/physics_lists/hadronic/QGSP_BERT_HP/include/HadronPhysicsQGSP_BERT_HP.hh @@ -0,0 +1,98 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * * the following disclaimer summarizes all * the specific disclaimers * +// * of contributors to this software. * the specific disclaimers,which * +// * govern, are listed with * their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither * the authors of this software system, nor * their employing * +// * institutes,nor * the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is * the intellectual property of * the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying * the Program (or any work * +// * based on * the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HadronPhysicsQGSP_BERT_HP.hh,v 1.2 2005/12/15 20:33:01 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP_BERT_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 15.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// +#ifndef HadronPhysicsQGSP_BERT_HP_h +#define HadronPhysicsQGSP_BERT_HP_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4QGSPPiKBuilder.hh" +#include "G4BertiniPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4QGSPProtonBuilder.hh" +#include "G4BertiniProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4QGSPNeutronBuilder.hh" +#include "G4BertiniNeutronBuilder.hh" +#include "G4NeutronHPBuilder.hh" + +class HadronPhysicsQGSP_BERT_HP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSP_BERT_HP(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSP_BERT_HP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSPNeutronBuilder * theQGSPNeutron; + G4BertiniNeutronBuilder * theBertiniNeutron; + G4NeutronHPBuilder * theHPNeutron; + + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSPPiKBuilder * theQGSPPiK; + G4BertiniPiKBuilder * theBertiniPiK; + + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSPProtonBuilder * theQGSPPro; + G4BertiniProtonBuilder * theBertiniPro; + + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/novice/N07/src/ExN07CalorHit.cc b/physics_lists/hadronic/QGSP_BERT_HP/include/QGSP_BERT_HP.hh similarity index 65% rename from examples/novice/N07/src/ExN07CalorHit.cc rename to physics_lists/hadronic/QGSP_BERT_HP/include/QGSP_BERT_HP.hh index 2f426fa4eb..ae12220b4e 100644 --- a/examples/novice/N07/src/ExN07CalorHit.cc +++ b/physics_lists/hadronic/QGSP_BERT_HP/include/QGSP_BERT_HP.hh @@ -20,45 +20,46 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSP_BERT_HP.hh,v 1.2 2005/12/15 20:33:01 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// $Id: ExN07CalorHit.cc,v 1.2 2003/05/21 22:01:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +//--------------------------------------------------------------------------- // +// ClassName: QGSP_BERT_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// +#ifndef TQGSP_BERT_HP_h +#define TQGSP_BERT_HP_h 1 -#include "ExN07CalorHit.hh" +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" -G4Allocator ExN07CalorHitAllocator; - -ExN07CalorHit::ExN07CalorHit() -:Edep(0.),TrackLength(0.),nStep(0) -{;} - -ExN07CalorHit::~ExN07CalorHit() -{;} - -ExN07CalorHit::ExN07CalorHit(const ExN07CalorHit& right):G4VHit() +template +class TQGSP_BERT_HP: public T { - Edep = right.Edep; - TrackLength = right.TrackLength; - nStep= right.nStep; -} +public: + TQGSP_BERT_HP(G4int ver=1); + virtual ~TQGSP_BERT_HP(); + +public: + // SetCuts() + virtual void SetCuts(); -const ExN07CalorHit& ExN07CalorHit::operator=(const ExN07CalorHit& right) -{ - Edep = right.Edep; - TrackLength = right.TrackLength; - nStep= right.nStep; - return *this; -} +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "QGSP_BERT_HP.icc" +typedef TQGSP_BERT_HP QGSP_BERT_HP; -int ExN07CalorHit::operator==(const ExN07CalorHit& right) const -{ - return (this==&right); -} +// 2002 by J.P. Wellisch + +#endif -void ExN07CalorHit::Draw() -{;} -void ExN07CalorHit::Print() -{;} diff --git a/physics_lists/hadronic/LHEP_HP/include/LHEP_HP.icc b/physics_lists/hadronic/QGSP_BERT_HP/include/QGSP_BERT_HP.icc similarity index 61% rename from physics_lists/hadronic/LHEP_HP/include/LHEP_HP.icc rename to physics_lists/hadronic/QGSP_BERT_HP/include/QGSP_BERT_HP.icc index d3b895ef59..69ba8f5e37 100644 --- a/physics_lists/hadronic/LHEP_HP/include/LHEP_HP.icc +++ b/physics_lists/hadronic/QGSP_BERT_HP/include/QGSP_BERT_HP.icc @@ -20,7 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // - +// $Id: QGSP_BERT_HP.icc,v 1.2 2005/12/15 20:33:01 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSP_BERT +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 15.12.2005 G.Folger: migration to non static particles, rename components, +// ordering of registrations +// #include "globals.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" @@ -34,56 +46,57 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EM_GNPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" -#include "HadronPhysicsLHEP_HP.hh" +#include "HadronPhysicsQGSP_BERT_HP.hh" -template TLHEP_HP::TLHEP_HP(): T() +template TQGSP_BERT_HP::TQGSP_BERT_HP(G4int ver): T() { - // default cut value (1.0mm) - // defaultCutValue = 1.0*mm; - G4DataQuestionaire it(photon, neutron); - G4cout << "You are using the simulation engine: LHEP_HP 1.7"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + G4DataQuestionaire it(photon, neutron); + G4cout << "You are using the simulation engine: QGSP_BERT_HP 2.0"<defaultCutValue = 0.7*mm; + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EM_GNPhysics("standard EM plus electro nuclear")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); - // Hadron Physics - this->RegisterPhysics( new HadronPhysicsLHEP_HP("hadron")); + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); + + // Hadron Physics + this->RegisterPhysics( new HadronPhysicsQGSP_BERT_HP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } -template TLHEP_HP::~TLHEP_HP() +template TQGSP_BERT_HP::~TQGSP_BERT_HP() { } -template void TLHEP_HP::SetCuts() +template void TQGSP_BERT_HP::SetCuts() { if (this->verboseLevel >1){ - G4cout << "LHEP_HP::SetCuts:"; + G4cout << "QGSP_BERT_HP::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types this->SetCutsWithDefault(); - - G4VUserPhysicsList::DumpCutValuesTable(); + +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/QGSP_BERT_HP/src/HadronPhysicsQGSP_BERT_HP.cc b/physics_lists/hadronic/QGSP_BERT_HP/src/HadronPhysicsQGSP_BERT_HP.cc new file mode 100644 index 0000000000..216a5b21bd --- /dev/null +++ b/physics_lists/hadronic/QGSP_BERT_HP/src/HadronPhysicsQGSP_BERT_HP.cc @@ -0,0 +1,132 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: HadronPhysicsQGSP_BERT_HP.cc,v 1.2 2005/12/15 20:33:01 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP_BERT_HP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 15.12.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// +#include "HadronPhysicsQGSP_BERT_HP.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsQGSP_BERT_HP::HadronPhysicsQGSP_BERT_HP(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsQGSP_BERT_HP::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMinEnergy(19.9*MeV); + theLEPNeutron->SetMinInelasticEnergy(9.5*GeV); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + + theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder); + theBertiniNeutron->SetMinEnergy(19.9*MeV); + theBertiniNeutron->SetMaxEnergy(9.9*GeV); + + theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMinEnergy(9.5*GeV); + theLEPPro->SetMaxEnergy(25*GeV); + + thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder); + theBertiniPro->SetMaxEnergy(9.9*GeV); + + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + theLEPPiK->SetMinPionEnergy(9.5*GeV); + + thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder); + theBertiniPiK->SetMaxEnergy(9.9*GeV); + + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; + +} + +HadronPhysicsQGSP_BERT_HP::~HadronPhysicsQGSP_BERT_HP() +{ + delete theStoppingHadron; + delete theMiscLHEP; + delete theQGSPNeutron; + delete theLEPNeutron; + delete theBertiniNeutron; + delete theHPNeutron; + delete theQGSPPro; + delete theLEPPro; + delete thePro; + delete theBertiniPro; + delete theQGSPPiK; + delete theLEPPiK; + delete theBertiniPiK; + delete thePiK; +} + +void HadronPhysicsQGSP_BERT_HP::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSP_BERT_HP::ConstructProcess() +{ + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); +} +// 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_BIC/include/HadronPhysicsQGSP_BIC.hh b/physics_lists/hadronic/QGSP_BIC/include/HadronPhysicsQGSP_BIC.hh index 5de37c6812..41ccbe381f 100644 --- a/physics_lists/hadronic/QGSP_BIC/include/HadronPhysicsQGSP_BIC.hh +++ b/physics_lists/hadronic/QGSP_BIC/include/HadronPhysicsQGSP_BIC.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSP_BIC.hh,v 1.2 2005/11/29 17:02:44 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP_BIC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsQGSP_BIC_h #define HadronPhysicsQGSP_BIC_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -56,23 +69,23 @@ class HadronPhysicsQGSP_BIC : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4QGSPNeutronBuilder theQGSPNeutron; - G4BinaryNeutronBuilder theBinaryNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSPNeutronBuilder * theQGSPNeutron; + G4BinaryNeutronBuilder * theBinaryNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4QGSPPiKBuilder theQGSPPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSPPiKBuilder * theQGSPPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4QGSPProtonBuilder theQGSPPro; - G4BinaryProtonBuilder theBinaryPro; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSPProtonBuilder * theQGSPPro; + G4BinaryProtonBuilder * theBinaryPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.hh b/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.hh index 3a5cd8dba3..0e32fcafd7 100644 --- a/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.hh +++ b/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSP_BIC.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TQGSP_BIC_h #define TQGSP_BIC_h 1 @@ -31,7 +44,7 @@ template class TQGSP_BIC: public T { public: - TQGSP_BIC(); + TQGSP_BIC(G4int ver = 1); virtual ~TQGSP_BIC(); public: diff --git a/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.icc b/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.icc index ac0b846b77..58c529a542 100644 --- a/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.icc +++ b/physics_lists/hadronic/QGSP_BIC/include/QGSP_BIC.icc @@ -20,7 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // - +// $Id: QGSP_BIC.icc,v 1.8 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSP +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// 02.12.2005 V.Ivanchenko: rename components +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleWithCuts.hh" @@ -34,41 +49,40 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EMPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" #include "G4DataQuestionaire.hh" #include "HadronPhysicsQGSP_BIC.hh" -template TQGSP_BIC::TQGSP_BIC(): T() +template TQGSP_BIC::TQGSP_BIC(G4int ver): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: QGSP_BIC 1.2"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EMPhysics("standard EM")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsQGSP_BIC("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -86,9 +100,9 @@ template void TQGSP_BIC::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); - - +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); + } diff --git a/physics_lists/hadronic/QGSP_BIC/src/HadronPhysicsQGSP_BIC.cc b/physics_lists/hadronic/QGSP_BIC/src/HadronPhysicsQGSP_BIC.cc index bd23a463c9..cfe07c5d8c 100644 --- a/physics_lists/hadronic/QGSP_BIC/src/HadronPhysicsQGSP_BIC.cc +++ b/physics_lists/hadronic/QGSP_BIC/src/HadronPhysicsQGSP_BIC.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSP_BIC.cc,v 1.3 2005/12/02 16:26:26 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP_BIC +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsQGSP_BIC.hh" #include "globals.hh" @@ -34,28 +48,53 @@ HadronPhysicsQGSP_BIC::HadronPhysicsQGSP_BIC(const G4String& name) : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theQGSPNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theNeutrons.RegisterMe(&theBinaryNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); - theLEPNeutron.SetMinInelasticEnergy(9.5*GeV); - theBinaryNeutron.SetMaxEnergy(9.9*GeV); +{} - thePro.RegisterMe(&theQGSPPro); - thePro.RegisterMe(&theLEPPro); - thePro.RegisterMe(&theBinaryPro); - theLEPPro.SetMaxEnergy(25*GeV); - theLEPPro.SetMinEnergy(9.5*GeV); - theBinaryPro.SetMaxEnergy(9.9*GeV); - - thePiK.RegisterMe(&theQGSPPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); +void HadronPhysicsQGSP_BIC::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + + theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMinInelasticEnergy(9.5*GeV); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + + theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder); + theBinaryNeutron->SetMaxEnergy(9.9*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMinEnergy(9.5*GeV); + theLEPPro->SetMaxEnergy(25*GeV); + + thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder); + theBinaryPro->SetMaxEnergy(9.9*GeV); + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsQGSP_BIC::~HadronPhysicsQGSP_BIC() {} +HadronPhysicsQGSP_BIC::~HadronPhysicsQGSP_BIC() +{ + delete theStoppingHadron; + delete theMiscLHEP; + delete theQGSPNeutron; + delete theLEPNeutron; + delete theBinaryNeutron; + delete theQGSPPro; + delete theLEPPro; + delete thePro; + delete theBinaryPro; + delete theQGSPPiK; + delete theLEPPiK; + delete thePiK; +} void HadronPhysicsQGSP_BIC::ConstructParticle() { @@ -72,11 +111,11 @@ void HadronPhysicsQGSP_BIC::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsQGSP_BIC::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/LHEP_HP/GNUmakefile b/physics_lists/hadronic/QGSP_EMV/GNUmakefile similarity index 56% rename from physics_lists/hadronic/LHEP_HP/GNUmakefile rename to physics_lists/hadronic/QGSP_EMV/GNUmakefile index 75e9ce70e6..9058fac868 100644 --- a/physics_lists/hadronic/LHEP_HP/GNUmakefile +++ b/physics_lists/hadronic/QGSP_EMV/GNUmakefile @@ -1,2 +1,2 @@ -name := LHEP_HP +name := QGSP_EMV include ../common.gmk diff --git a/physics_lists/hadronic/QGSP_GN/include/HadronPhysicsQGSP.hh b/physics_lists/hadronic/QGSP_EMV/include/HadronPhysicsQGSP_EMV.hh similarity index 75% rename from physics_lists/hadronic/QGSP_GN/include/HadronPhysicsQGSP.hh rename to physics_lists/hadronic/QGSP_EMV/include/HadronPhysicsQGSP_EMV.hh index 3c1582be13..1c5e126759 100644 --- a/physics_lists/hadronic/QGSP_GN/include/HadronPhysicsQGSP.hh +++ b/physics_lists/hadronic/QGSP_EMV/include/HadronPhysicsQGSP_EMV.hh @@ -20,14 +20,13 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef HadronPhysicsQGSP_h -#define HadronPhysicsQGSP_h 1 +#ifndef HadronPhysicsQGSP_EMV_h +#define HadronPhysicsQGSP_EMV_h 1 #include "globals.hh" #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -43,32 +42,32 @@ #include "G4LEPNeutronBuilder.hh" #include "G4QGSPNeutronBuilder.hh" -class HadronPhysicsQGSP : public G4VPhysicsConstructor +class HadronPhysicsQGSP_EMV : public G4VPhysicsConstructor { public: - HadronPhysicsQGSP(const G4String& name ="hadron"); - virtual ~HadronPhysicsQGSP(); + HadronPhysicsQGSP_EMV(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSP_EMV(); public: virtual void ConstructParticle(); virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4QGSPNeutronBuilder theQGSPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSPNeutronBuilder * theQGSPNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4QGSPPiKBuilder theQGSPPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSPPiKBuilder * theQGSPPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4QGSPProtonBuilder theQGSPPro; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSPProtonBuilder * theQGSPPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_GN/include/QGSP_GN.hh b/physics_lists/hadronic/QGSP_EMV/include/QGSP_EMV.hh similarity index 89% rename from physics_lists/hadronic/QGSP_GN/include/QGSP_GN.hh rename to physics_lists/hadronic/QGSP_EMV/include/QGSP_EMV.hh index 1cdce45a64..b0c3e7cbac 100644 --- a/physics_lists/hadronic/QGSP_GN/include/QGSP_GN.hh +++ b/physics_lists/hadronic/QGSP_EMV/include/QGSP_EMV.hh @@ -20,19 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef TQGSP_GN_h -#define TQGSP_GN_h 1 +#ifndef TQGSP_EMV_h +#define TQGSP_EMV_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" #include "CompileTimeConstraints.hh" template -class TQGSP_GN: public T +class TQGSP_EMV: public T { public: - TQGSP_GN(); - virtual ~TQGSP_GN(); + TQGSP_EMV(G4int ver = 1); + virtual ~TQGSP_EMV(); public: // SetCuts() @@ -41,8 +41,8 @@ public: private: enum {ok = CompileTimeConstraints::IsA::ok }; }; -#include "QGSP_GN.icc" -typedef TQGSP_GN QGSP_GN; +#include "QGSP_EMV.icc" +typedef TQGSP_EMV QGSP_EMV; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_GN/include/QGSP_GN.icc b/physics_lists/hadronic/QGSP_EMV/include/QGSP_EMV.icc similarity index 59% rename from physics_lists/hadronic/QGSP_GN/include/QGSP_GN.icc rename to physics_lists/hadronic/QGSP_EMV/include/QGSP_EMV.icc index 1f3d54357a..a664db825d 100644 --- a/physics_lists/hadronic/QGSP_GN/include/QGSP_GN.icc +++ b/physics_lists/hadronic/QGSP_EMV/include/QGSP_EMV.icc @@ -20,6 +20,23 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSP_EMV.icc,v 1.1 2005/12/16 09:56:57 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: QGSP_EMV +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, +// Use EmStandard71 +// 02.12.2005 V.Ivanchenko: rename components +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,57 +51,55 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EM_GNPhysics.hh" -#include "MuonPhysics.hh" -#include "HadronPhysicsQGSP.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics71.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" -#include "HadronPhysicsQGSP.hh" +#include "HadronPhysicsQGSP_EMV.hh" -template TQGSP_GN::TQGSP_GN(): T() +template TQGSP_EMV::TQGSP_EMV(G4int ver): T() { - // default cut value (1.0mm) - // defaultCutValue = 1.0*mm; G4DataQuestionaire it(photon); - G4cout << "You are using the simulation engine: QGSP_GN 2.6"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EM_GNPhysics("standard EM plus electron nuclear")); + this->RegisterPhysics( new G4EmStandardPhysics71("standard EM msc 7.1",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // General Physics - i.e. decay + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics - this->RegisterPhysics( new HadronPhysicsQGSP("hadron")); + this->RegisterPhysics( new HadronPhysicsQGSP_EMV("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } -template TQGSP_GN::~TQGSP_GN() +template TQGSP_EMV::~TQGSP_EMV() { } -template void TQGSP_GN::SetCuts() +template void TQGSP_EMV::SetCuts() { if (this->verboseLevel >1){ - G4cout << "QGSP_GN::SetCuts:"; + G4cout << "QGSP_EMV::SetCuts:"; } // " G4VUserPhysicsList::SetCutsWithDefault" method sets // the default cut value for all particle types this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/physics_lists/hadronic/LHEP_GN/src/HadronPhysicsLHEP_GN.cc b/physics_lists/hadronic/QGSP_EMV/src/HadronPhysicsQGSP_EMV.cc similarity index 55% rename from physics_lists/hadronic/LHEP_GN/src/HadronPhysicsLHEP_GN.cc rename to physics_lists/hadronic/QGSP_EMV/src/HadronPhysicsQGSP_EMV.cc index a3358bc4fe..8dff848cd0 100644 --- a/physics_lists/hadronic/LHEP_GN/src/HadronPhysicsLHEP_GN.cc +++ b/physics_lists/hadronic/QGSP_EMV/src/HadronPhysicsQGSP_EMV.cc @@ -20,22 +20,24 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "HadronPhysicsLHEP_GN.hh" +// +// $Id: HadronPhysicsQGSP_EMV.cc,v 1.1 2005/12/16 09:56:57 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: HadronPhysicsQGSP_EMV +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 21.11.2005 G.Folger: migration to non static particles +// +#include "HadronPhysicsQGSP_EMV.hh" #include "globals.hh" #include "G4ios.hh" #include - -HadronPhysicsLHEP_GN::HadronPhysicsLHEP_GN(const G4String& name) - : G4VPhysicsConstructor(name) -{ - theNeutrons.RegisterMe(&theLHEPNeutron); - theProton.RegisterMe(&theLHEPProton); - thePiK.RegisterMe(&theLHEPPiK); -} - -HadronPhysicsLHEP_GN::~HadronPhysicsLHEP_GN() {} - #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" @@ -43,7 +45,45 @@ HadronPhysicsLHEP_GN::~HadronPhysicsLHEP_GN() {} #include "G4BaryonConstructor.hh" #include "G4ShortLivedConstructor.hh" -void HadronPhysicsLHEP_GN::ConstructParticle() +HadronPhysicsQGSP_EMV::HadronPhysicsQGSP_EMV(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsQGSP_EMV::CreateModels() +{ + theNeutrons=new G4NeutronBuilder; + theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMaxEnergy(25*GeV); + + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; +} + +HadronPhysicsQGSP_EMV::~HadronPhysicsQGSP_EMV() +{ + delete theStoppingHadron; + delete theMiscLHEP; + delete theQGSPPro; + delete theLEPPro; + delete thePro; + delete theQGSPPiK; + delete theLEPPiK; + delete thePiK; +} + + +void HadronPhysicsQGSP_EMV::ConstructParticle() { G4MesonConstructor pMesonConstructor; pMesonConstructor.ConstructParticle(); @@ -56,13 +96,14 @@ void HadronPhysicsLHEP_GN::ConstructParticle() } #include "G4ProcessManager.hh" -void HadronPhysicsLHEP_GN::ConstructProcess() +void HadronPhysicsQGSP_EMV::ConstructProcess() { - theNeutrons.Build(); - thePiK.Build(); - theProton.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); +// theHadronQED.Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_HP/include/HadronPhysicsQGSP_HP.hh b/physics_lists/hadronic/QGSP_HP/include/HadronPhysicsQGSP_HP.hh index 1b24257617..7a91f33641 100644 --- a/physics_lists/hadronic/QGSP_HP/include/HadronPhysicsQGSP_HP.hh +++ b/physics_lists/hadronic/QGSP_HP/include/HadronPhysicsQGSP_HP.hh @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSP_HP.hh,v 1.2 2005/11/29 17:03:28 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 24.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #ifndef HadronPhysicsQGSP_HP_h #define HadronPhysicsQGSP_HP_h 1 @@ -27,7 +41,6 @@ #include "G4ios.hh" #include "G4VPhysicsConstructor.hh" -#include "G4HadronQEDBuilder.hh" #include "G4StoppingHadronBuilder.hh" #include "G4MiscLHEPBuilder.hh" @@ -55,22 +68,22 @@ class HadronPhysicsQGSP_HP : public G4VPhysicsConstructor virtual void ConstructProcess(); private: - G4NeutronBuilder theNeutrons; - G4LEPNeutronBuilder theLEPNeutron; - G4QGSPNeutronBuilder theQGSPNeutron; - G4NeutronHPBuilder theHPNeutron; + void CreateModels(); + G4NeutronBuilder * theNeutrons; + G4LEPNeutronBuilder * theLEPNeutron; + G4QGSPNeutronBuilder * theQGSPNeutron; + G4NeutronHPBuilder * theHPNeutron; - G4PiKBuilder thePiK; - G4LEPPiKBuilder theLEPPiK; - G4QGSPPiKBuilder theQGSPPiK; + G4PiKBuilder * thePiK; + G4LEPPiKBuilder * theLEPPiK; + G4QGSPPiKBuilder * theQGSPPiK; - G4ProtonBuilder thePro; - G4LEPProtonBuilder theLEPPro; - G4QGSPProtonBuilder theQGSPPro; + G4ProtonBuilder * thePro; + G4LEPProtonBuilder * theLEPPro; + G4QGSPProtonBuilder * theQGSPPro; - G4MiscLHEPBuilder theMiscLHEP; - G4StoppingHadronBuilder theStoppingHadron; - G4HadronQEDBuilder theHadronQED; + G4MiscLHEPBuilder * theMiscLHEP; + G4StoppingHadronBuilder * theStoppingHadron; }; // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.hh b/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.hh index 33fe54019c..642083ab32 100644 --- a/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.hh +++ b/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.hh @@ -20,6 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSP_HP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// +//---------------------------------------------------------------------------- +// #ifndef TQGSP_HP_h #define TQGSP_HP_h 1 @@ -31,7 +44,7 @@ template class TQGSP_HP: public T { public: - TQGSP_HP(); + TQGSP_HP(G4int ver = 1); virtual ~TQGSP_HP(); public: diff --git a/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.icc b/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.icc index 2cdb20c13b..f8100ba68f 100644 --- a/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.icc +++ b/physics_lists/hadronic/QGSP_HP/include/QGSP_HP.icc @@ -20,6 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: QGSP_HP.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra +// 02.12.2005 V.Ivanchenko: rename components +// +//---------------------------------------------------------------------------- +// #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -34,38 +50,38 @@ #include "G4ios.hh" #include -#include "GeneralPhysics.hh" -#include "EM_GNPhysics.hh" -#include "MuonPhysics.hh" -#include "IonPhysics.hh" +#include "G4DecayPhysics.hh" +#include "G4EmStandardPhysics.hh" +#include "G4EmExtraPhysics.hh" +#include "G4IonPhysics.hh" + #include "G4DataQuestionaire.hh" #include "HadronPhysicsQGSP_HP.hh" -template TQGSP_HP::TQGSP_HP(): T() +template TQGSP_HP::TQGSP_HP(G4int ver): T() { G4DataQuestionaire it(photon, neutron); - G4cout << "You are using the simulation engine: QGSP_HP 2.3"<defaultCutValue = 0.7*mm; - this->SetVerboseLevel(1); - - // General Physics - this->RegisterPhysics( new GeneralPhysics("general") ); + this->SetVerboseLevel(ver); // EM Physics - this->RegisterPhysics( new EM_GNPhysics("standard EM plus electro nuclear")); + this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver)); - // Muon Physics - this->RegisterPhysics( new MuonPhysics("muon")); + // Synchroton Radiation & GN Physics + this->RegisterPhysics( new G4EmExtraPhysics("extra EM")); + + // Decays + this->RegisterPhysics( new G4DecayPhysics("decay",ver) ); // Hadron Physics this->RegisterPhysics( new HadronPhysicsQGSP_HP("hadron")); // Ion Physics - this->RegisterPhysics( new IonPhysics("ion")); - + this->RegisterPhysics( new G4IonPhysics("ion")); } @@ -83,7 +99,8 @@ template void TQGSP_HP::SetCuts() this->SetCutsWithDefault(); - G4VUserPhysicsList::DumpCutValuesTable(); +// if (this->verboseLevel >0) +// G4VUserPhysicsList::DumpCutValuesTable(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/QGSP_HP/src/HadronPhysicsQGSP_HP.cc b/physics_lists/hadronic/QGSP_HP/src/HadronPhysicsQGSP_HP.cc index e40801a23c..4450d79264 100644 --- a/physics_lists/hadronic/QGSP_HP/src/HadronPhysicsQGSP_HP.cc +++ b/physics_lists/hadronic/QGSP_HP/src/HadronPhysicsQGSP_HP.cc @@ -20,6 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: HadronPhysicsQGSP_HP.cc,v 1.2 2005/11/29 17:03:28 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +//--------------------------------------------------------------------------- +// +// ClassName: +// +// Author: 2002 J.P. Wellisch +// +// Modified: +// 23.11.2005 G.Folger: migration to non static particles +// +//---------------------------------------------------------------------------- +// #include "HadronPhysicsQGSP_HP.hh" #include "globals.hh" @@ -34,23 +48,47 @@ HadronPhysicsQGSP_HP::HadronPhysicsQGSP_HP(const G4String& name) : G4VPhysicsConstructor(name) +{} + +void HadronPhysicsQGSP_HP::CreateModels() { - theNeutrons.RegisterMe(&theQGSPNeutron); - theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxInelasticEnergy(25*GeV); - theLEPNeutron.SetMinEnergy(19.9*MeV); - theNeutrons.RegisterMe(&theHPNeutron); + theNeutrons=new G4NeutronBuilder; - thePro.RegisterMe(&theQGSPPro); - thePro.RegisterMe(&theLEPPro); - theLEPPro.SetMaxEnergy(25*GeV); + theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder); + theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder); + theLEPNeutron->SetMinEnergy(19.9*MeV); + theLEPNeutron->SetMaxInelasticEnergy(25*GeV); + theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder); - thePiK.RegisterMe(&theQGSPPiK); - thePiK.RegisterMe(&theLEPPiK); - theLEPPiK.SetMaxEnergy(25*GeV); + thePro=new G4ProtonBuilder; + thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder); + thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder); + theLEPPro->SetMaxEnergy(25*GeV); + + thePiK=new G4PiKBuilder; + thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder); + thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder); + theLEPPiK->SetMaxEnergy(25*GeV); + + + theMiscLHEP=new G4MiscLHEPBuilder; + theStoppingHadron=new G4StoppingHadronBuilder; } -HadronPhysicsQGSP_HP::~HadronPhysicsQGSP_HP() {} +HadronPhysicsQGSP_HP::~HadronPhysicsQGSP_HP() +{ + delete theStoppingHadron; + delete theMiscLHEP; + delete theQGSPNeutron; + delete theLEPNeutron; + delete theHPNeutron; + delete theQGSPPro; + delete theLEPPro; + delete thePro; + delete theQGSPPiK; + delete theLEPPiK; + delete thePiK; +} void HadronPhysicsQGSP_HP::ConstructParticle() { @@ -67,11 +105,11 @@ void HadronPhysicsQGSP_HP::ConstructParticle() #include "G4ProcessManager.hh" void HadronPhysicsQGSP_HP::ConstructProcess() { - theNeutrons.Build(); - thePro.Build(); - thePiK.Build(); - theMiscLHEP.Build(); - theStoppingHadron.Build(); - theHadronQED.Build(); + CreateModels(); + theNeutrons->Build(); + thePro->Build(); + thePiK->Build(); + theMiscLHEP->Build(); + theStoppingHadron->Build(); } // 2002 by J.P. Wellisch diff --git a/physics_lists/hadronic/README b/physics_lists/hadronic/README index c6ad1ed53b..70c3cc7dfc 100644 --- a/physics_lists/hadronic/README +++ b/physics_lists/hadronic/README @@ -1,21 +1,36 @@ -Installation instructions: - - - Download the tar files of the physics simulation engine you want to use. - - 'tar -xvf', whereever you want into the directory 'hadronic'. - - set the environment: +Installation instructions +------------------------- + + set the environment: - G4INSTALL as usual to point to your geant4 installation. - - G4LISTS_BASE to point to the directory that contains the 'hadronic' - directory for your specific installation of the hadronic physics-lists. - - If you wish to work against the 'central' physics-lists installation, - do NOT set G4LISTS_BASE, and use G4WORKDIR as usual. - - type 'gmake' for each physics list, and the packaging library. - - copy the example GNUmakefile (GNUmakefile.user.code.example), that comes - with the package, to our application area and uncomment the physics lists - you wish to use. - - To clean the installation of the physics-lists, you can type - "gmake clean_lists" from $G4INSTALL/source in your Geant4 installation. - -Setting default cut values: + * [optional] set G4LISTS_BASE, if you have your own physics lists area + installation point different from the default one. G4LISTS_BASE must + point to the 'physics_lists' directory that contains the subdirectory + 'hadronic'. + + type 'make' from physics_lists/hadronic directory + + to build your own application/example: copy the provided + GNUmakefile.user.code.example file to your application area and + uncomment the physics lists you decide to employ. + + NOTE for Linux/Unix users: + - Shared libraries of the physics-lists are NOT allowed if granular + kernel libraries of Geant4 are installed and used. In this specific + case, physics-lists must be built only with -static- libraries, + (i.e. - must have the variable G4LIB_BUILD_SHARED -unset-) ! + + NOTE for Windows users: + - If DLL libraries of the kernel libraries of Geant4 are installed, + the physics-lists must be installed using the variable G4LIB_USE_DLL + -set- (i.e. - use 'make G4LIB_USE_DLL=1' to build the physics-lists). + Similar for building any Geant4 example or application. + +Setting default cut values +-------------------------- - The default is: defaultCutValue = 0.7*mm; - To override this value, please call the - "void SetDefaultCutValue(G4double newCutValue)" method. + "void SetDefaultCutValue(G4double newCutValue)" method of the Physics List. + +Verbosity Level +--------------- + - verbosity level of any Physics List can be established via its + constructor, e.g. "new QGSP(0)" means 0 verbosity level for + the Physics List. The default level is 1. diff --git a/physics_lists/hadronic/common.gmk b/physics_lists/hadronic/common.gmk index c855e2c0f4..2e16e95c51 100644 --- a/physics_lists/hadronic/common.gmk +++ b/physics_lists/hadronic/common.gmk @@ -1,4 +1,4 @@ -# $Id: common.gmk,v 1.1 2004/12/13 16:38:57 gcosmo Exp $ +# $Id: common.gmk,v 1.2 2005/12/07 09:57:46 gcosmo Exp $ # -------------------------------------------------------------- # Setup for hadronic physics-lists libraries # -------------------------------------------------------------- @@ -31,6 +31,13 @@ endif LISTS_INCLUDE = $(G4LISTS_BASE) +# Shared libraries for the physics lists are currently NOT supported +# if granular libraries of Geant4 are installed and used. +# +ifdef G4LIB_USE_GRANULAR + G4LIB_NO_SHARED := 1 +endif + include $(G4INSTALL)/config/architecture.gmk CPPFLAGS += -I$(G4BASE)/global/management/include \ diff --git a/source/GNUmakefile b/source/GNUmakefile index 5c571b7352..43421b35e9 100644 --- a/source/GNUmakefile +++ b/source/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.74 2005/06/20 10:16:54 gcosmo Exp $ +# $Id: GNUmakefile,v 1.75 2005/12/07 13:28:42 gcosmo Exp $ # ----------------------------------------------------------------- # "gmake" makes default libraries for each subdomain. # "gmake global" makes global libraries for each subdomain. @@ -31,13 +31,13 @@ unique := $(shell echo $$$$) .PHONY: all glob global kernel_global kernel libmap dll win32def includes clean_libs clean clean_lists clean_all -all: kernel +all: banner kernel ifdef G4LIB_USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE)); done;: endif @$(MAKE) libmap -glob global: kernel_global +glob global: banner kernel_global ifdef G4LIB_USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE)); done;: endif @@ -48,10 +48,6 @@ kernel_global: @for dir in $(SUBDIR3); do (cd $$dir && $(MAKE) global); done;: kernel: - @echo "*************************************************************" - @echo " Installation Geant4 version $$Name: geant4-07-01 $ " - @echo " Copyright : Geant4 Collaboration " - @echo "*************************************************************" @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE)); done;: @for dir in $(SUBDIR2); do (cd $$dir && $(MAKE)); done;: @for dir in $(SUBDIR3); do (cd $$dir && $(MAKE)); done;: @@ -94,7 +90,7 @@ $(G4LIBDIR)/liblist: $(G4INSTALL)/config/liblist.c @if [ ! -d $(G4LIBDIR) ] ; then mkdir $(G4LIBDIR) ;fi @$(CC) $(CCFLAGS) -o $(G4LIBDIR)/liblist $(G4INSTALL)/config/liblist.c -dll: win32def +dll: banner win32def ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) @echo "Verifying existence of global libraries for DLLs ..." @$(MAKE) kernel_global G4LIB_BUILD_DLL=1 @@ -131,6 +127,12 @@ ifdef G4LIB_USE_G3TOG4 @for dir in $(SUBDIR4); do (cd $$dir && $(MAKE) $@); done endif +banner: + @echo "*************************************************************" + @echo " Installation Geant4 version $$Name: geant4-08-00 $ " + @echo " Copyright : Geant4 Collaboration " + @echo "*************************************************************" + clean_libs:: @echo Removing all libraries ... @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE) clean_libs); done diff --git a/source/digits_hits/GNUmakefile b/source/digits_hits/GNUmakefile index 9dbb9943d9..921d853137 100644 --- a/source/digits_hits/GNUmakefile +++ b/source/digits_hits/GNUmakefile @@ -1,12 +1,12 @@ -# $Id: GNUmakefile,v 1.3 2004/06/01 15:34:51 gcosmo Exp $ +# $Id: GNUmakefile,v 1.4 2005/11/16 22:59:01 asaim Exp $ # -------------------------------------------------------------- # GNUmakefile for digits+hits library. Makoto Asai, 1/11/96. # -------------------------------------------------------------- name := G4digits_hits -SUBDIRS := detector hits digits -SUBLIBS = G4detector G4digits G4hits +SUBDIRS := detector hits digits utils +SUBLIBS = G4detector G4digits G4hits G4detutils GLOBLIBS = libG4track.lib libG4particles.lib libG4geometry.lib GLOBLIBS += libG4materials.lib libG4intercoms.lib libG4global.lib diff --git a/source/digits_hits/History b/source/digits_hits/History index 9dabe569d9..6bc03d4358 100644 --- a/source/digits_hits/History +++ b/source/digits_hits/History @@ -1,4 +1,4 @@ -$Id: History,v 1.11 2005/06/01 17:15:35 allison Exp $ +$Id: History,v 1.16 2005/11/22 21:41:55 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,24 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 22, 2005, M.Asai (digits_hits-V07-01-04) +- G4SDParticleFilter: Protection against null pointer. + +Nov 18, 2005, M.Asai (digits_hits-V07-01-03) +- Introducing G4THitsMap template class. +- Introducing concrete primitive scorer and filter classes. + +Nov 16, 2005, M.Asai (digits_hits-V07-01-02) +- Adding a new sub-directory "utils" where new concrete primitive scorers and + concrete filters are stored. + +Sept 27, 2005, M.Asai (digits_hits-V07-01-01) +- Updating new classes. + +Sept 22, 2005, M.Asai (digits_hits-V07-01-00) +- Introducing G4MultiFunctionalDetector, G4VPrimitiveSensitivity and G4VSDFilter + classes. + June 1, 2005, J.Allison (digits_hits-V07-00-00) - G4VHit: Fixed interface to CreateAttValues (removed const). Improved description. diff --git a/source/digits_hits/detector/include/G4CellScoreComposer.hh b/source/digits_hits/detector/include/G4CellScoreComposer.hh index 49a20b3799..219bf50cd5 100644 --- a/source/digits_hits/detector/include/G4CellScoreComposer.hh +++ b/source/digits_hits/detector/include/G4CellScoreComposer.hh @@ -22,7 +22,7 @@ // // // $Id: G4CellScoreComposer.hh,v 1.1 2003/10/03 10:06:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CellScoreComposer diff --git a/source/digits_hits/detector/include/G4CellScoreValues.hh b/source/digits_hits/detector/include/G4CellScoreValues.hh index 60e1137d87..6ba3b748c6 100644 --- a/source/digits_hits/detector/include/G4CellScoreValues.hh +++ b/source/digits_hits/detector/include/G4CellScoreValues.hh @@ -22,7 +22,7 @@ // // // $Id: G4CellScoreValues.hh,v 1.1 2003/10/03 10:07:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CellScoreValues diff --git a/source/digits_hits/detector/include/G4CellStoreScorer.hh b/source/digits_hits/detector/include/G4CellStoreScorer.hh index 1892e6c2b7..51711f17f7 100644 --- a/source/digits_hits/detector/include/G4CellStoreScorer.hh +++ b/source/digits_hits/detector/include/G4CellStoreScorer.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4CellStoreScorer.hh,v 1.1 2003/10/03 10:07:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CellStoreScorer diff --git a/source/digits_hits/detector/include/G4CollectionNameVector.hh b/source/digits_hits/detector/include/G4CollectionNameVector.hh index 920f9be107..a4ba1bc494 100644 --- a/source/digits_hits/detector/include/G4CollectionNameVector.hh +++ b/source/digits_hits/detector/include/G4CollectionNameVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4CollectionNameVector.hh,v 1.1 2003/10/03 10:07:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4CollectionNameVector_H diff --git a/source/digits_hits/detector/include/G4HCtable.hh b/source/digits_hits/detector/include/G4HCtable.hh index 03e91c7007..cbbfe4eba1 100644 --- a/source/digits_hits/detector/include/G4HCtable.hh +++ b/source/digits_hits/detector/include/G4HCtable.hh @@ -22,7 +22,7 @@ // // // $Id: G4HCtable.hh,v 1.2 2004/03/09 19:33:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4HCtable_H diff --git a/examples/novice/N07/include/ExN07CalorHit.hh b/source/digits_hits/detector/include/G4MultiFunctionalDetector.hh similarity index 51% rename from examples/novice/N07/include/ExN07CalorHit.hh rename to source/digits_hits/detector/include/G4MultiFunctionalDetector.hh index 31ea0eaadd..8c32b14958 100644 --- a/examples/novice/N07/include/ExN07CalorHit.hh +++ b/source/digits_hits/detector/include/G4MultiFunctionalDetector.hh @@ -21,70 +21,63 @@ // ******************************************************************** // // -// $Id: ExN07CalorHit.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MultiFunctionalDetector.hh,v 1.2 2005/11/16 22:59:01 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -#ifndef ExN07CalorHit_h -#define ExN07CalorHit_h 1 +#ifndef G4MultiFunctionalDetector_h +#define G4MultiFunctionalDetector_h 1 +#include "G4VSensitiveDetector.hh" #include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" +#include "G4Step.hh" +#include "G4HCofThisEvent.hh" +#include "G4VReadOutGeometry.hh" +#include "G4TouchableHistory.hh" +#include "G4CollectionNameVector.hh" +#include +class G4VPrimitiveScorer; -class ExN07CalorHit : public G4VHit +// class description: +// +// This is the base class of the sensitive detector which owns +// one or more G4VPrimitiveScorer class objects. + +class G4MultiFunctionalDetector : public G4VSensitiveDetector { - public: - ExN07CalorHit(); - virtual ~ExN07CalorHit(); - ExN07CalorHit(const ExN07CalorHit&); - const ExN07CalorHit& operator=(const ExN07CalorHit&); - int operator==(const ExN07CalorHit&) const; - inline void* operator new(size_t); - inline void operator delete(void*); + public: // with description + G4MultiFunctionalDetector(G4String); + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + + std::vector primitives; + + public: // with description + G4bool RegisterPrimitive(G4VPrimitiveScorer*); + G4bool RemovePrimitive(G4VPrimitiveScorer*); + inline G4int GetNumberOfPrimitives() const + { return primitives.size(); } + G4VPrimitiveScorer* GetPrimitive(G4int id) const + { return primitives[id]; } + + public: + virtual ~G4MultiFunctionalDetector(); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + + public: + virtual void DrawAll(); + virtual void PrintAll(); + - virtual void Draw(); - virtual void Print(); - - public: - inline void AddEnergy(G4double de) - { Edep += de; } - inline void AddStep(G4double dl) - { - TrackLength += dl; - nStep++; - } - inline G4double GetEdep() const - { return Edep; } - inline G4double GetTrak() const - { return TrackLength; } - inline G4int GetNStep() const - { return nStep; } - - private: - G4double Edep; - G4double TrackLength; - G4int nStep; }; -typedef G4THitsCollection ExN07CalorHitsCollection; - -extern G4Allocator ExN07CalorHitAllocator; - -inline void* ExN07CalorHit::operator new(size_t) -{ - void* aHit; - aHit = (void*) ExN07CalorHitAllocator.MallocSingle(); - return aHit; -} - -inline void ExN07CalorHit::operator delete(void* aHit) -{ - ExN07CalorHitAllocator.FreeSingle((ExN07CalorHit*) aHit); -} #endif - diff --git a/source/digits_hits/detector/include/G4SDManager.hh b/source/digits_hits/detector/include/G4SDManager.hh index 631ed547ca..93b880747f 100644 --- a/source/digits_hits/detector/include/G4SDManager.hh +++ b/source/digits_hits/detector/include/G4SDManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SDManager.hh,v 1.2 2004/05/03 08:14:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SDManager.hh,v 1.3 2005/09/22 22:21:35 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4SDManager_h @@ -74,6 +74,8 @@ class G4SDManager G4VSensitiveDetector* FindSensitiveDetector(G4String dName, G4bool warning = true); G4HCofThisEvent* PrepareNewEvent(); void TerminateCurrentEvent(G4HCofThisEvent* HCE); + void AddNewCollection(G4String SDname,G4String DCname); + private: static G4SDManager * fSDManager; diff --git a/source/digits_hits/detector/include/G4SDStructure.hh b/source/digits_hits/detector/include/G4SDStructure.hh index 275ad2cc07..9416d69c81 100644 --- a/source/digits_hits/detector/include/G4SDStructure.hh +++ b/source/digits_hits/detector/include/G4SDStructure.hh @@ -22,7 +22,7 @@ // // // $Id: G4SDStructure.hh,v 1.2 2004/05/03 08:14:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4SDStructure_h diff --git a/source/digits_hits/detector/include/G4SDmessenger.hh b/source/digits_hits/detector/include/G4SDmessenger.hh index 4e26671acd..6eedb693a3 100644 --- a/source/digits_hits/detector/include/G4SDmessenger.hh +++ b/source/digits_hits/detector/include/G4SDmessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4SDmessenger.hh,v 1.1 2003/10/03 10:09:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4SDmessenger_h diff --git a/source/digits_hits/detector/include/G4SensitiveVolumeList.hh b/source/digits_hits/detector/include/G4SensitiveVolumeList.hh index 8b3da1163b..b127b6cdec 100644 --- a/source/digits_hits/detector/include/G4SensitiveVolumeList.hh +++ b/source/digits_hits/detector/include/G4SensitiveVolumeList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SensitiveVolumeList.hh,v 1.1 2003/10/03 10:09:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1996 diff --git a/source/digits_hits/detector/include/G4SensitiveVolumeList.icc b/source/digits_hits/detector/include/G4SensitiveVolumeList.icc index 8fe35ab70d..1261537fd4 100644 --- a/source/digits_hits/detector/include/G4SensitiveVolumeList.icc +++ b/source/digits_hits/detector/include/G4SensitiveVolumeList.icc @@ -22,7 +22,7 @@ // // // $Id: G4SensitiveVolumeList.icc,v 1.1 2003/10/03 10:09:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------- // Inline functions of GEANT 4 class header file. diff --git a/source/digits_hits/detector/include/G4TrackLogger.hh b/source/digits_hits/detector/include/G4TrackLogger.hh index 30e87f0220..6ec3ba5560 100644 --- a/source/digits_hits/detector/include/G4TrackLogger.hh +++ b/source/digits_hits/detector/include/G4TrackLogger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4TrackLogger.hh,v 1.1 2003/10/03 10:09:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4TrackLogger diff --git a/source/digits_hits/detector/include/G4VPrimitiveScorer.hh b/source/digits_hits/detector/include/G4VPrimitiveScorer.hh new file mode 100644 index 0000000000..3cd94bf926 --- /dev/null +++ b/source/digits_hits/detector/include/G4VPrimitiveScorer.hh @@ -0,0 +1,114 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VPrimitiveScorer.hh,v 1.1 2005/11/16 22:59:01 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4VPrimitiveScorer_h +#define G4VPrimitiveScorer_h 1 + +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; +#include "globals.hh" +#include "G4VSDFilter.hh" +#include "G4MultiFunctionalDetector.hh" + +// class description: +// +// This is the base class of the sensitive detector which owns +// only one hits collection. +// A concrete class object derived from this base class can be +// used either as a sensitive detector or to be registered to +// G4MultiFunctionalDetector to define multiple functionalities. + +class G4VPrimitiveScorer +{ + friend class G4MultiFunctionalDetector; + + public: // with description + G4VPrimitiveScorer(G4String name, G4int depth=0); + virtual ~G4VPrimitiveScorer(); + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*)=0; + // This is the method must be implemented in each concrete class. + + virtual G4int GetIndex(G4Step*); + // This is a function mapping from copy number(s) to an index of + // the hit collection. In the default implementation, just the + // copy number of the physical volume is taken. + + public: // with description + G4int GetCollectionID(G4int); + // This method returns the ID of its hitsCollection. This mehod + // gives valid value only after it is registered to G4MultiFunctionalDetector + // and the G4MultiFunctionalDetector is registered to G4SDManager. + + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + // These five methods are exactly identical to those in G4VSensitiveDetector. + // These methods are invoked by G4SDManager through G4MultiFunctionalDetector. + + protected: + G4String primitiveName; + G4MultiFunctionalDetector* detector; + G4VSDFilter* filter; + G4int verboseLevel; + G4int indexDepth; + + public: // with description + // Set/Get methods + inline void SetMultiFunctionalDetector(G4MultiFunctionalDetector* d) + { detector = d; } + inline G4MultiFunctionalDetector* GetMultiFunctionalDetector() const + { return detector; } + inline G4String GetName() const + { return primitiveName; } + inline void SetFilter(G4VSDFilter* f) + { filter = f; } + inline G4VSDFilter* GetFilter() const + { return filter; } + inline void SetVerboseLevel(G4int vl) + { verboseLevel = vl; } + inline G4int GetVerboseLevel() const + { return verboseLevel; } + + private: + inline G4bool HitPrimitive(G4Step*aStep,G4TouchableHistory*ROhis) + { + if(filter) + { if(!(filter->Accept(aStep))) return false; } + return ProcessHits(aStep,ROhis); + } + +}; + + + +#endif + diff --git a/source/digits_hits/detector/include/G4VReadOutGeometry.hh b/source/digits_hits/detector/include/G4VReadOutGeometry.hh index d1aa9ca8e4..c3e2bd14f7 100644 --- a/source/digits_hits/detector/include/G4VReadOutGeometry.hh +++ b/source/digits_hits/detector/include/G4VReadOutGeometry.hh @@ -22,7 +22,7 @@ // // // $Id: G4VReadOutGeometry.hh,v 1.1 2003/10/03 10:10:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ diff --git a/source/digits_hits/detector/include/G4VSDFilter.hh b/source/digits_hits/detector/include/G4VSDFilter.hh new file mode 100644 index 0000000000..ad522b7db5 --- /dev/null +++ b/source/digits_hits/detector/include/G4VSDFilter.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VSDFilter.hh,v 1.1 2005/09/22 22:21:36 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4VSDFilter_h +#define G4VSDFilter_h 1 + +class G4Step; +#include "globals.hh" + +// class description: +// +// This is the abstract base class of a filter to be associated with a +// sensitive detector. + +class G4VSDFilter +{ + + public: // with description + G4VSDFilter(G4String name); + + public: + virtual ~G4VSDFilter(); + + public: // with description + virtual G4bool Accept(const G4Step*) const = 0; + + protected: + G4String filterName; + + public: + inline G4String GetName() const + { return filterName; } +}; + +#endif + diff --git a/source/digits_hits/detector/include/G4VSensitiveDetector.hh b/source/digits_hits/detector/include/G4VSensitiveDetector.hh index 071d8b90b1..42562d9f62 100644 --- a/source/digits_hits/detector/include/G4VSensitiveDetector.hh +++ b/source/digits_hits/detector/include/G4VSensitiveDetector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSensitiveDetector.hh,v 1.1 2003/10/03 10:10:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VSensitiveDetector.hh,v 1.3 2005/09/22 22:21:36 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VSensitiveDetector_h @@ -34,6 +34,7 @@ #include "G4VReadOutGeometry.hh" #include "G4TouchableHistory.hh" #include "G4CollectionNameVector.hh" +#include "G4VSDFilter.hh" // class description: // @@ -89,7 +90,7 @@ class G4VSensitiveDetector // "ROhist" will be given only is a Readout geometry is defined to this // sensitive detector. The G4TouchableHistory object of the tracking geometry // is stored in the PreStepPoint object of G4Step. - G4int GetCollectionID(G4int i); + virtual G4int GetCollectionID(G4int i); // This is a utility method which returns the hits collection ID of the // "i"-th collection. "i" is the order (starting with zero) of the collection // whose name is stored to the collectionName protected vector. @@ -104,22 +105,19 @@ class G4VSensitiveDetector G4String fullPathName; // path + detector name G4int verboseLevel; G4bool active; - - private: G4VReadOutGeometry * ROgeometry; + G4VSDFilter* filter; public: // with description inline G4bool Hit(G4Step*aStep) { - G4bool ack = true; G4TouchableHistory* ROhis = 0; - if(!isActive()) - { ack = false; } - else if(ROgeometry) - { ack = ROgeometry->CheckROVolume(aStep,ROhis); } - if(ack) - { ack = ProcessHits(aStep,ROhis); } - return ack; + if(!isActive()) return false; + if(filter) + { if(!(filter->Accept(aStep))) return false; } + if(ROgeometry) + { if(!(ROgeometry->CheckROVolume(aStep,ROhis))) return false; } + return ProcessHits(aStep,ROhis); } // This is the public method invoked by G4SteppingManager for generating // hit(s). The actual user's implementation for generating hit(s) must be @@ -128,26 +126,31 @@ class G4VSensitiveDetector inline void SetROgeometry(G4VReadOutGeometry*value) { ROgeometry = value; } // Register the Readout geometry. + inline void SetFilter(G4VSDFilter*value) + { filter = value; } + // Register a filter public: - inline G4int GetNumberOfCollections() + inline G4int GetNumberOfCollections() const { return collectionName.size(); } - inline G4String GetCollectionName(G4int id) + inline G4String GetCollectionName(G4int id) const { return collectionName[id]; } inline void SetVerboseLevel(G4int vl) { verboseLevel = vl; } inline void Activate(G4bool activeFlag) { active = activeFlag; } - inline G4bool isActive() + inline G4bool isActive() const { return active; } - inline G4String GetName() + inline G4String GetName() const { return SensitiveDetectorName; } - inline G4String GetPathName() + inline G4String GetPathName() const { return thePathName; } - inline G4String GetFullPathName() + inline G4String GetFullPathName() const { return fullPathName; } - inline G4VReadOutGeometry* GetROgeometry() + inline G4VReadOutGeometry* GetROgeometry() const { return ROgeometry; } + inline G4VSDFilter* GetFilter() const + { return filter; } }; diff --git a/source/digits_hits/detector/src/G4CellScoreComposer.cc b/source/digits_hits/detector/src/G4CellScoreComposer.cc index a7342a01bf..ba4bf48179 100644 --- a/source/digits_hits/detector/src/G4CellScoreComposer.cc +++ b/source/digits_hits/detector/src/G4CellScoreComposer.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellScoreComposer.cc,v 1.2 2004/07/01 09:19:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/digits_hits/detector/src/G4CellStoreScorer.cc b/source/digits_hits/detector/src/G4CellStoreScorer.cc index aaaa4022cf..19aff879db 100644 --- a/source/digits_hits/detector/src/G4CellStoreScorer.cc +++ b/source/digits_hits/detector/src/G4CellStoreScorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellStoreScorer.cc,v 1.1 2003/10/03 10:10:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/digits_hits/detector/src/G4HCtable.cc b/source/digits_hits/detector/src/G4HCtable.cc index 33c6a221fc..ddb1fae174 100644 --- a/source/digits_hits/detector/src/G4HCtable.cc +++ b/source/digits_hits/detector/src/G4HCtable.cc @@ -22,7 +22,7 @@ // // // $Id: G4HCtable.cc,v 1.3 2004/03/15 19:16:07 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4HCtable.hh" diff --git a/source/digits_hits/detector/src/G4MultiFunctionalDetector.cc b/source/digits_hits/detector/src/G4MultiFunctionalDetector.cc new file mode 100644 index 0000000000..360a78f7dc --- /dev/null +++ b/source/digits_hits/detector/src/G4MultiFunctionalDetector.cc @@ -0,0 +1,124 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MultiFunctionalDetector.cc,v 1.3 2005/11/16 22:59:01 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4MultiFunctionalDetector +#include "G4MultiFunctionalDetector.hh" +#include "G4SDManager.hh" +#include "G4VPrimitiveScorer.hh" + +G4MultiFunctionalDetector::G4MultiFunctionalDetector(G4String name) +:G4VSensitiveDetector(name) +{;} + +G4MultiFunctionalDetector::~G4MultiFunctionalDetector() +{;} + +G4bool G4MultiFunctionalDetector::ProcessHits(G4Step* aStep,G4TouchableHistory* aTH) +{ + G4int nPrim = primitives.size(); + for(G4int iPrim=0;iPrimHitPrimitive(aStep,aTH); } + return true; +} + +G4bool G4MultiFunctionalDetector::RegisterPrimitive(G4VPrimitiveScorer* aPS) +{ + G4int nPrim = primitives.size(); + for(G4int iPrim=0;iPrimGetName() << "> is already defined in <" << SensitiveDetectorName + << ">." << G4endl << "Method RegisterPrimitive() is ignored." << G4endl; + return false; + } + } + primitives.push_back(aPS); + aPS->SetMultiFunctionalDetector(this); + collectionName.insert(aPS->GetName()); + if(G4SDManager::GetSDMpointer()->FindSensitiveDetector(SensitiveDetectorName,false)) + { + // This G4MultiFunctionalDetector has already been registered to G4SDManager. + // Make sure this new primitive is registered as well. + G4SDManager::GetSDMpointer()->AddNewCollection(SensitiveDetectorName,aPS->GetName()); + } + return true; +} + +G4bool G4MultiFunctionalDetector::RemovePrimitive(G4VPrimitiveScorer* aPS) +{ + std::vector::iterator iterPS; + std::vector::iterator iterName = collectionName.begin(); + for(iterPS=primitives.begin();iterPS!=primitives.end();iterPS++) + { + if(*iterPS==aPS) + { + primitives.erase(iterPS); + aPS->SetMultiFunctionalDetector(0); + return true; + } + iterName++; + } + G4cerr << "Primitive <" << aPS->GetName() << "> is not defined in <" << SensitiveDetectorName + << ">." << G4endl << "Method RemovePrimitive() is ignored." << G4endl; + return false; +} + +void G4MultiFunctionalDetector::Initialize(G4HCofThisEvent* HC) +{ + G4int nPrim = primitives.size(); + for(G4int iPrim=0;iPrimInitialize(HC); } +} + +void G4MultiFunctionalDetector::EndOfEvent(G4HCofThisEvent* HC) +{ + G4int nPrim = primitives.size(); + for(G4int iPrim=0;iPrimEndOfEvent(HC); } +} + +void G4MultiFunctionalDetector::clear() +{ + G4int nPrim = primitives.size(); + for(G4int iPrim=0;iPrimclear(); } +} + +void G4MultiFunctionalDetector::DrawAll() +{ + G4int nPrim = primitives.size(); + for(G4int iPrim=0;iPrimDrawAll(); } +} + +void G4MultiFunctionalDetector::PrintAll() +{ + G4int nPrim = primitives.size(); + for(G4int iPrim=0;iPrimPrintAll(); } +} + diff --git a/source/digits_hits/detector/src/G4SDManager.cc b/source/digits_hits/detector/src/G4SDManager.cc index 04c6264e70..374fb95bbd 100644 --- a/source/digits_hits/detector/src/G4SDManager.cc +++ b/source/digits_hits/detector/src/G4SDManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SDManager.cc,v 1.2 2004/05/03 08:14:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SDManager.cc,v 1.3 2005/09/22 22:21:36 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4SDManager.hh" @@ -64,16 +64,17 @@ G4SDManager::~G4SDManager() void G4SDManager::AddNewDetector(G4VSensitiveDetector*aSD) { - G4String pathName = aSD->GetPathName(); G4int numberOfCollections = aSD->GetNumberOfCollections(); + G4String pathName = aSD->GetPathName(); if( pathName(0) != '/' ) pathName.prepend("/"); if( pathName(pathName.length()-1) != '/' ) pathName += "/"; treeTop->AddNewDetector(aSD,pathName); + if(numberOfCollections<1) return; for(G4int i=0;iGetName(); G4String DCname = aSD->GetCollectionName(i); - HCtable->Registor(SDname,DCname); + AddNewCollection(SDname,DCname); } if( verboseLevel > 0 ) { @@ -82,6 +83,18 @@ void G4SDManager::AddNewDetector(G4VSensitiveDetector*aSD) } } +void G4SDManager::AddNewCollection(G4String SDname,G4String DCname) +{ + G4int i = HCtable->Registor(SDname,DCname); + if(verboseLevel>0) + { + if(i<0) G4cerr << "G4SDManager::AddNewCollection : the collection <" + << SDname << "/" << DCname << "> has already been reginstered." << G4endl; + else G4cout << "G4SDManager::AddNewCollection : the collection <" + << SDname << "/" << DCname << "> is registered at " << i << G4endl; + } +} + G4HCofThisEvent* G4SDManager::PrepareNewEvent() { G4HCofThisEvent* HCE = new G4HCofThisEvent(HCtable->entries()); diff --git a/source/digits_hits/detector/src/G4SDStructure.cc b/source/digits_hits/detector/src/G4SDStructure.cc index c8d9b6fd30..4b21e808d7 100644 --- a/source/digits_hits/detector/src/G4SDStructure.cc +++ b/source/digits_hits/detector/src/G4SDStructure.cc @@ -22,7 +22,7 @@ // // // $Id: G4SDStructure.cc,v 1.2 2004/05/03 08:14:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4SDStructure diff --git a/source/digits_hits/detector/src/G4SDmessenger.cc b/source/digits_hits/detector/src/G4SDmessenger.cc index a3547d5a56..a3f5a52c1c 100644 --- a/source/digits_hits/detector/src/G4SDmessenger.cc +++ b/source/digits_hits/detector/src/G4SDmessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4SDmessenger.cc,v 1.1 2003/10/03 10:11:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // --------------------------------------------------------------------- diff --git a/source/digits_hits/detector/src/G4SensitiveVolumeList.cc b/source/digits_hits/detector/src/G4SensitiveVolumeList.cc index 578be060c8..47efc6d4f4 100644 --- a/source/digits_hits/detector/src/G4SensitiveVolumeList.cc +++ b/source/digits_hits/detector/src/G4SensitiveVolumeList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SensitiveVolumeList.cc,v 1.1 2003/10/03 10:12:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/digits_hits/detector/src/G4TrackLogger.cc b/source/digits_hits/detector/src/G4TrackLogger.cc index 7e2bb55660..f0b6abf1e2 100644 --- a/source/digits_hits/detector/src/G4TrackLogger.cc +++ b/source/digits_hits/detector/src/G4TrackLogger.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrackLogger.cc,v 1.2 2004/07/01 09:19:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/novice/N07/src/ExN07GapParameterisation.cc b/source/digits_hits/detector/src/G4VPrimitiveScorer.cc similarity index 57% rename from examples/novice/N07/src/ExN07GapParameterisation.cc rename to source/digits_hits/detector/src/G4VPrimitiveScorer.cc index 4d1951caee..05712479e4 100644 --- a/examples/novice/N07/src/ExN07GapParameterisation.cc +++ b/source/digits_hits/detector/src/G4VPrimitiveScorer.cc @@ -21,42 +21,52 @@ // ******************************************************************** // // -// $Id: ExN07GapParameterisation.cc,v 1.2 2003/05/28 11:24:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VPrimitiveScorer.cc,v 1.1 2005/11/16 22:59:01 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // +// G4VPrimitiveScorer +#include "G4VPrimitiveScorer.hh" +#include "G4MultiFunctionalDetector.hh" +#include "G4SDManager.hh" +#include "G4Step.hh" +#include "G4TouchableHistory.hh" -#include "ExN07GapParameterisation.hh" -#include "G4VPhysicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4Material.hh" +G4VPrimitiveScorer::G4VPrimitiveScorer(G4String name, G4int depth) + :primitiveName(name),detector(0),filter(0),verboseLevel(0),indexDepth(depth) +{;} -ExN07GapParameterisation::ExN07GapParameterisation() -:numberOfLayers(40),absMaterial(0),gapMaterial(0) +G4VPrimitiveScorer::~G4VPrimitiveScorer() {;} -ExN07GapParameterisation::~ExN07GapParameterisation() -{;} - -void ExN07GapParameterisation::ComputeTransformation -(const G4int copyNo, G4VPhysicalVolume* physVol) const +G4int G4VPrimitiveScorer::GetCollectionID(G4int) { - G4double halfZ = 1.*m/G4double(2*numberOfLayers); - G4double Zposition= G4double(copyNo)*2.*halfZ - (1.*m-halfZ); - G4ThreeVector origin(0,0,Zposition); - physVol->SetTranslation(origin); - physVol->SetRotation(0); - if(copyNo%2==0) - { physVol->SetName("Abs"); } + if(detector) + return G4SDManager::GetSDMpointer() + ->GetCollectionID(detector->GetName()+"/"+primitiveName); else - { physVol->SetName("Gap"); } + return -1; } -G4Material* -ExN07GapParameterisation:: -ComputeMaterial (const G4int copyNo, G4VPhysicalVolume*) +void G4VPrimitiveScorer::Initialize(G4HCofThisEvent*) +{;} + +void G4VPrimitiveScorer::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4VPrimitiveScorer::clear() +{;} + +void G4VPrimitiveScorer::DrawAll() +{;} + +void G4VPrimitiveScorer::PrintAll() +{;} + +G4int G4VPrimitiveScorer::GetIndex(G4Step* aStep) { - if(copyNo%2==0) { return absMaterial; } - return gapMaterial; + G4StepPoint* preStep = aStep->GetPreStepPoint(); + G4TouchableHistory* th = (G4TouchableHistory*)(preStep->GetTouchable()); + return th->GetReplicaNumber(indexDepth); } - + diff --git a/source/digits_hits/detector/src/G4VReadOutGeometry.cc b/source/digits_hits/detector/src/G4VReadOutGeometry.cc index a8269b7896..ee0b97afe7 100644 --- a/source/digits_hits/detector/src/G4VReadOutGeometry.cc +++ b/source/digits_hits/detector/src/G4VReadOutGeometry.cc @@ -22,7 +22,7 @@ // // // $Id: G4VReadOutGeometry.cc,v 1.1 2003/10/03 10:12:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VReadOutGeometry.hh" diff --git a/examples/advanced/radioprotection/src/RemSimVPrimaryGeneratorFactory.cc b/source/digits_hits/detector/src/G4VSDFilter.cc similarity index 81% rename from examples/advanced/radioprotection/src/RemSimVPrimaryGeneratorFactory.cc rename to source/digits_hits/detector/src/G4VSDFilter.cc index f6b79bd03e..12fb38b3de 100644 --- a/examples/advanced/radioprotection/src/RemSimVPrimaryGeneratorFactory.cc +++ b/source/digits_hits/detector/src/G4VSDFilter.cc @@ -20,16 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RemSimVPrimaryGeneratorFactory.cc,v 1.5 2004/05/22 12:57:07 guatelli Exp $Name: geant4-07-01 $ // -// Code developed by: S.Guatelli, guatelli@ge.infn.it +// $Id: G4VSDFilter.cc,v 1.1 2005/09/22 22:21:36 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -#include "RemSimVPrimaryGeneratorFactory.hh" +// G4VSensitiveDetector +#include "G4VSDFilter.hh" -RemSimVPrimaryGeneratorFactory::RemSimVPrimaryGeneratorFactory() -{ -} +G4VSDFilter::G4VSDFilter(G4String name) +:filterName(name) +{;} -RemSimVPrimaryGeneratorFactory::~RemSimVPrimaryGeneratorFactory() -{ -} +G4VSDFilter::~G4VSDFilter() +{;} diff --git a/source/digits_hits/detector/src/G4VSensitiveDetector.cc b/source/digits_hits/detector/src/G4VSensitiveDetector.cc index f79e88061a..1723c574ba 100644 --- a/source/digits_hits/detector/src/G4VSensitiveDetector.cc +++ b/source/digits_hits/detector/src/G4VSensitiveDetector.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4VSensitiveDetector.cc,v 1.1 2003/10/03 10:12:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VSensitiveDetector.cc,v 1.2 2005/09/22 22:21:36 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VSensitiveDetector #include "G4VSensitiveDetector.hh" #include "G4SDManager.hh" G4VSensitiveDetector::G4VSensitiveDetector(G4String name) -:verboseLevel(0),active(true),ROgeometry(0) +:verboseLevel(0),active(true),ROgeometry(0),filter(0) { size_t sLast = name.last('/'); if(sLast==std::string::npos) @@ -56,6 +56,7 @@ G4VSensitiveDetector::G4VSensitiveDetector(const G4VSensitiveDetector &right) verboseLevel = right.verboseLevel; active = right.active; ROgeometry = right.ROgeometry; + filter = right.filter; } G4VSensitiveDetector::~G4VSensitiveDetector() @@ -70,6 +71,7 @@ const G4VSensitiveDetector & G4VSensitiveDetector::operator=(const G4VSensitiveD verboseLevel = right.verboseLevel; active = right.active; ROgeometry = right.ROgeometry; + filter = right.filter; return *this; } diff --git a/source/digits_hits/digits/include/G4DCofThisEvent.hh b/source/digits_hits/digits/include/G4DCofThisEvent.hh index 0ff3152c74..faf3561f82 100644 --- a/source/digits_hits/digits/include/G4DCofThisEvent.hh +++ b/source/digits_hits/digits/include/G4DCofThisEvent.hh @@ -22,7 +22,7 @@ // // // $Id: G4DCofThisEvent.hh,v 1.4 2004/06/11 14:10:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4DCofThisEvent_h diff --git a/source/digits_hits/digits/include/G4TDigiCollection.hh b/source/digits_hits/digits/include/G4TDigiCollection.hh index dcc718bea2..99c5a9b76c 100644 --- a/source/digits_hits/digits/include/G4TDigiCollection.hh +++ b/source/digits_hits/digits/include/G4TDigiCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4TDigiCollection.hh,v 1.4 2004/06/11 14:10:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4TDigiCollection_h diff --git a/source/digits_hits/digits/include/G4VDigi.hh b/source/digits_hits/digits/include/G4VDigi.hh index 30f034083c..ed0291f06a 100644 --- a/source/digits_hits/digits/include/G4VDigi.hh +++ b/source/digits_hits/digits/include/G4VDigi.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDigi.hh,v 1.3 2005/06/01 17:15:35 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VDigi_h diff --git a/source/digits_hits/digits/include/G4VDigiCollection.hh b/source/digits_hits/digits/include/G4VDigiCollection.hh index 6a1a6dcda3..44a4dd2a5d 100644 --- a/source/digits_hits/digits/include/G4VDigiCollection.hh +++ b/source/digits_hits/digits/include/G4VDigiCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDigiCollection.hh,v 1.1 2003/10/03 10:14:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VDigiCollection_h diff --git a/source/digits_hits/digits/src/G4DCofThisEvent.cc b/source/digits_hits/digits/src/G4DCofThisEvent.cc index 864491ec69..74fd5436f0 100644 --- a/source/digits_hits/digits/src/G4DCofThisEvent.cc +++ b/source/digits_hits/digits/src/G4DCofThisEvent.cc @@ -22,7 +22,7 @@ // // // $Id: G4DCofThisEvent.cc,v 1.3 2004/06/11 14:10:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4DCofThisEvent.hh" diff --git a/source/digits_hits/digits/src/G4TDigiCollection.cc b/source/digits_hits/digits/src/G4TDigiCollection.cc index 760a979fe0..b59f4b7647 100644 --- a/source/digits_hits/digits/src/G4TDigiCollection.cc +++ b/source/digits_hits/digits/src/G4TDigiCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4TDigiCollection.cc,v 1.3 2004/06/11 14:10:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4TDigiCollection.hh" diff --git a/source/digits_hits/digits/src/G4VDigi.cc b/source/digits_hits/digits/src/G4VDigi.cc index a467826d55..58f1699b15 100644 --- a/source/digits_hits/digits/src/G4VDigi.cc +++ b/source/digits_hits/digits/src/G4VDigi.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDigi.cc,v 1.1 2003/10/03 10:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VDigi diff --git a/source/digits_hits/digits/src/G4VDigiCollection.cc b/source/digits_hits/digits/src/G4VDigiCollection.cc index 2f5aef8ef7..0f8ba7f379 100644 --- a/source/digits_hits/digits/src/G4VDigiCollection.cc +++ b/source/digits_hits/digits/src/G4VDigiCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDigiCollection.cc,v 1.1 2003/10/03 10:15:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VDigiCollection diff --git a/source/digits_hits/hits/include/G4HCofThisEvent.hh b/source/digits_hits/hits/include/G4HCofThisEvent.hh index 21916cb486..53033e9e97 100644 --- a/source/digits_hits/hits/include/G4HCofThisEvent.hh +++ b/source/digits_hits/hits/include/G4HCofThisEvent.hh @@ -22,7 +22,7 @@ // // // $Id: G4HCofThisEvent.hh,v 1.4 2004/06/11 14:10:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4HCofThisEvent_h diff --git a/source/digits_hits/hits/include/G4THitsCollection.hh b/source/digits_hits/hits/include/G4THitsCollection.hh index 882d460143..f06e9311cc 100644 --- a/source/digits_hits/hits/include/G4THitsCollection.hh +++ b/source/digits_hits/hits/include/G4THitsCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4THitsCollection.hh,v 1.4 2004/06/11 14:10:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4THitsCollection_h diff --git a/source/digits_hits/hits/include/G4THitsMap.hh b/source/digits_hits/hits/include/G4THitsMap.hh new file mode 100644 index 0000000000..dd7742c705 --- /dev/null +++ b/source/digits_hits/hits/include/G4THitsMap.hh @@ -0,0 +1,206 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4THitsMap.hh,v 1.5 2005/11/18 22:47:06 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +#ifndef G4THitsMap_h +#define G4THitsMap_h 1 + +#include "G4THitsCollection.hh" +#include "globals.hh" +#include + +// class description: +// +// This is a template class of hits map and parametrized by +// The concrete class of G4VHit. This is a uniform collection for +// a particular concrete hit class objects. +// An intermediate layer class G4HitsMap appeared in this +// header file is used just for G4Allocator, because G4Allocator +// cannot be instansiated with a template class. Thus G4HitsMap +// class MUST NOT be directly used by the user. + +template class G4THitsMap : public G4HitsCollection +{ + public: + G4THitsMap(); + public: // with description + G4THitsMap(G4String detName,G4String colNam); + // constructor. + public: + virtual ~G4THitsMap(); + G4int operator==(const G4THitsMap &right) const; + G4THitsMap & operator+=(const G4THitsMap &right) const; + + public: // with description + virtual void DrawAllHits(); + virtual void PrintAllHits(); + // These two methods invokes Draw() and Print() methods of all of + // hit objects stored in this map, respectively. + + public: // with description + inline T* operator[](G4int key) const; + + // Returns a pointer to a concrete hit object. + inline std::map* GetMap() const + { return (std::map*)theCollection; } + // Returns a collection map. + inline G4int add(const G4int & key, T * &aHit) const; + inline G4int add(const G4int & key, T &aHit) const; + // Insert a hit object. Total number of hit objects stored in this + // map is returned. + inline G4int set(const G4int & key, T * &aHit) const; + inline G4int set(const G4int & key, T &aHit) const; + // Overwrite a hit object. Total number of hit objects stored in this + // map is returned. + inline G4int entries() const + { return ((std::map*)theCollection)->size(); } + // Returns the number of hit objects stored in this map + inline void clear(); + + public: + virtual G4VHit* GetHit(size_t) const {return 0;} + virtual size_t GetSize() const + { return ((std::map*)theCollection)->size(); } + +}; + +template G4THitsMap::G4THitsMap() +{ + theCollection = (void*)new std::map; +} + +template G4THitsMap::G4THitsMap(G4String detName,G4String colNam) + : G4HitsCollection(detName,colNam) +{ + theCollection = (void*)new std::map; +} + +template G4THitsMap::~G4THitsMap() +{ + typename std::map * theHitsMap = GetMap(); + typename std::map::iterator itr = theHitsMap->begin(); + for(; itr != theHitsMap->end(); itr++) { + delete itr->second; + } + + delete theHitsMap; +} + +template G4int G4THitsMap::operator==(const G4THitsMap &right) const +{ return (collectionName==right.collectionName); } + +template G4THitsMap & +G4THitsMap::operator+=(const G4THitsMap &right) const +{ + std::map * aHitsMap = right.GetMap(); + typename std::map::iterator itr = aHitsMap->begin(); + for(; itr != aHitsMap->end(); itr++) { + add(itr->first, *(itr->second)); + } + return (G4THitsMap&)(*this); +} + +template inline T* +G4THitsMap::operator[](G4int key) const { + std::map * theHitsMap = GetMap(); + if(theHitsMap->find(key) != theHitsMap->end()) { + return theHitsMap->find(key)->second; + } else { + return 0; + } +} + +template inline G4int +G4THitsMap::add(const G4int & key, T * &aHit) const { + + typename std::map * theHitsMap = GetMap(); + if(theHitsMap->find(key) != theHitsMap->end()) { + *(*theHitsMap)[key] += *aHit; + } else { + (*theHitsMap)[key] = aHit; + } + return theHitsMap->size(); +} + +template inline G4int +G4THitsMap::add(const G4int & key, T &aHit) const { + + typename std::map * theHitsMap = GetMap(); + if(theHitsMap->find(key) != theHitsMap->end()) { + *(*theHitsMap)[key] += aHit; + } else { + T * hit = new T; + *hit = aHit; + (*theHitsMap)[key] = hit; + } + + return theHitsMap->size(); +} + +template inline G4int +G4THitsMap::set(const G4int & key, T * &aHit) const { + + typename std::map * theHitsMap = GetMap(); + if(theHitsMap->find(key) != theHitsMap->end()) { + delete (*theHitsMap)[key]->second; + } + (*theHitsMap)[key] = aHit; + return theHitsMap->size(); +} + +template inline G4int +G4THitsMap::set(const G4int & key, T &aHit) const { + + typename std::map * theHitsMap = GetMap(); + if(theHitsMap->find(key) != theHitsMap->end()) { + *(*theHitsMap)[key] = aHit; + } else { + T * hit = new T; + *hit = aHit; + (*theHitsMap)[key] = hit; + } + + return theHitsMap->size(); +} + +template void G4THitsMap::DrawAllHits() +{;} + +template void G4THitsMap::PrintAllHits() +{;} + +template void G4THitsMap::clear() { + + std::map * theHitsMap = GetMap(); + typename std::map::iterator itr = theHitsMap->begin(); + for(; itr != theHitsMap->end(); itr++) { + delete itr->second; + } + theHitsMap->clear(); + +} + +#endif + diff --git a/source/digits_hits/hits/include/G4VHit.hh b/source/digits_hits/hits/include/G4VHit.hh index e5360cc6b1..72106e537f 100644 --- a/source/digits_hits/hits/include/G4VHit.hh +++ b/source/digits_hits/hits/include/G4VHit.hh @@ -22,7 +22,7 @@ // // // $Id: G4VHit.hh,v 1.2 2005/06/01 17:15:35 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VHit_h diff --git a/source/digits_hits/hits/include/G4VHitsCollection.hh b/source/digits_hits/hits/include/G4VHitsCollection.hh index 9882dc1107..5bdc6d38d5 100644 --- a/source/digits_hits/hits/include/G4VHitsCollection.hh +++ b/source/digits_hits/hits/include/G4VHitsCollection.hh @@ -22,7 +22,7 @@ // // // $Id: G4VHitsCollection.hh,v 1.1 2003/10/03 10:17:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VHitsCollection_h diff --git a/source/digits_hits/hits/src/G4HCofThisEvent.cc b/source/digits_hits/hits/src/G4HCofThisEvent.cc index a9eb3b9624..49116ad28d 100644 --- a/source/digits_hits/hits/src/G4HCofThisEvent.cc +++ b/source/digits_hits/hits/src/G4HCofThisEvent.cc @@ -22,7 +22,7 @@ // // // $Id: G4HCofThisEvent.cc,v 1.3 2004/06/11 14:10:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4HCofThisEvent.hh" diff --git a/source/digits_hits/hits/src/G4THitsCollection.cc b/source/digits_hits/hits/src/G4THitsCollection.cc index 9a96bda33a..36bd86adae 100644 --- a/source/digits_hits/hits/src/G4THitsCollection.cc +++ b/source/digits_hits/hits/src/G4THitsCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4THitsCollection.cc,v 1.3 2004/06/11 14:10:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4THitsCollection.hh" diff --git a/source/digits_hits/hits/src/G4VHit.cc b/source/digits_hits/hits/src/G4VHit.cc index 46f9acb80c..4e158b5122 100644 --- a/source/digits_hits/hits/src/G4VHit.cc +++ b/source/digits_hits/hits/src/G4VHit.cc @@ -22,7 +22,7 @@ // // // $Id: G4VHit.cc,v 1.1 2003/10/03 10:18:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VHit diff --git a/source/digits_hits/hits/src/G4VHitsCollection.cc b/source/digits_hits/hits/src/G4VHitsCollection.cc index c8559ad40f..c276b30bc6 100644 --- a/source/digits_hits/hits/src/G4VHitsCollection.cc +++ b/source/digits_hits/hits/src/G4VHitsCollection.cc @@ -22,7 +22,7 @@ // // // $Id: G4VHitsCollection.cc,v 1.1 2003/10/03 10:20:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VHitsCollection diff --git a/source/digits_hits/utils/GNUmakefile b/source/digits_hits/utils/GNUmakefile new file mode 100644 index 0000000000..758036b6ca --- /dev/null +++ b/source/digits_hits/utils/GNUmakefile @@ -0,0 +1,30 @@ +# $Id: GNUmakefile,v 1.2 2005/11/16 23:24:08 asaim Exp $ +# -------------------------------------------------------------- +# GNUmakefile for digits+hits library. Makoto Asai, 1/11/96. +# -------------------------------------------------------------- + +name := G4detutils + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -DG4DIGI_ALLOC_EXPORT +CPPFLAGS += \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/materials/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/solids/CSG/include \ + -I$(G4BASE)/digits_hits/hits/include \ + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/intercoms/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/digits_hits/utils/History b/source/digits_hits/utils/History new file mode 100644 index 0000000000..ce09ad8473 --- /dev/null +++ b/source/digits_hits/utils/History @@ -0,0 +1,25 @@ +$Id: History,v 1.2 2005/11/19 00:59:10 asaim Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Category History file + --------------------- +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +and keep track of all category-tags. +It DOES NOT substitute the CVS log-message one should put at every +committal in the CVS repository ! + + ---------------------------------------------------------- + * Reverse chronological order (last date on top), please * + ---------------------------------------------------------- + +November 18, 2007 M.Asai (detutils-V07-01-01) +- Introducing concrete primitive scorer and filter classes. + +November 16, 2007 M.Asai (detutils-V07-01-00) +- Created. + diff --git a/source/digits_hits/utils/include/G4PSCellFlux.hh b/source/digits_hits/utils/include/G4PSCellFlux.hh new file mode 100644 index 0000000000..01f5c874b2 --- /dev/null +++ b/source/digits_hits/utils/include/G4PSCellFlux.hh @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSCellFlux.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4PSCellFlux_h +#define G4PSCellFlux_h 1 + +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +/////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring cell flux. +// The Cell Flux is defined by a sum of track length divided +// by the geometry volume, where all of the tracks in the geometry +// are taken into account. e.g. the unit of Cell Flux is mm/mm3. +// +// +// If you want to score only tracks passing through the geometry volume, +// please use G4PSPassageCellFlux. +// +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + + +class G4PSCellFlux : public G4VPrimitiveScorer +{ + public: // with description + G4PSCellFlux(G4String name, G4int depth=0); + virtual ~G4PSCellFlux(); + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4THitsMap* EvtMap; +}; +#endif + diff --git a/source/digits_hits/utils/include/G4PSDirectionFlag.hh b/source/digits_hits/utils/include/G4PSDirectionFlag.hh new file mode 100644 index 0000000000..277ba93962 --- /dev/null +++ b/source/digits_hits/utils/include/G4PSDirectionFlag.hh @@ -0,0 +1,67 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSDirectionFlag.hh,v 1.1 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// +// G4PSDirectionFlag.hh +// +// Class Description: +// This is an enumerator to define the direction of +// the particle's Surface Current or Flux for PrimitiveScorer +// +// +//--------------------------------------------------------------- + +#ifndef G4PSDirectionFlag_h +#define G4PSDirectionFlag_h 1 + +////////////////// +enum G4PSFluxFlag +////////////////// +{ + fFlux_InOut, + // For both direction In / Out. + fFlux_In, + // IN : Direction which comes into the geometry + fFlux_Out +}; + +///////////////////// +enum G4PSCurrentFlag +///////////////////// +{ + fCurrent_InOut, + // For both direction In / Out. + fCurrent_In, + // IN : Direction which comes into the geometry + fCurrent_Out + // OUT : Direction which goes out fromthe geometry +}; + +#endif + + diff --git a/source/parameterisations/trd_clusters/include/G4FoamXTRdEdx.hh b/source/digits_hits/utils/include/G4PSDoseDeposit.hh similarity index 61% rename from source/parameterisations/trd_clusters/include/G4FoamXTRdEdx.hh rename to source/digits_hits/utils/include/G4PSDoseDeposit.hh index a6d2b51354..4f913be232 100644 --- a/source/parameterisations/trd_clusters/include/G4FoamXTRdEdx.hh +++ b/source/digits_hits/utils/include/G4PSDoseDeposit.hh @@ -21,41 +21,42 @@ // ******************************************************************** // // -// $Id: G4FoamXTRdEdx.hh,v 1.1 2004/11/09 09:20:31 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// Rough model describing a radiator of X-ray transition radiation. -// Thicknesses of plates and gas gaps are exponentially distributed. -// We suppose that: -// formation zone ~ mean thickness << absorption length -// for each material and in the range 1-100 keV. This allows us to simplify -// interference effects in radiator stack (GetStackFactor method). -// -// -// History: -// 27.02.01 V. Grichine, first version +// $Id: G4PSDoseDeposit.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // +#ifndef G4PSDoseDeposit_h +#define G4PSDoseDeposit_h 1 -#ifndef G4FoamXTRdEdx_h -#define G4FoamXTRdEdx_h 1 +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" -#include "G4VXTRdEdx.hh" -#include "G4VFastSimulationModel.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// Primitive scorer class for scoring dose deposit in the geometry volume. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// -class G4FoamXTRdEdx : public G4VXTRdEdx +class G4PSDoseDeposit : public G4VPrimitiveScorer { -public: + public: // with description + G4PSDoseDeposit(G4String name, G4int depth=0); + virtual ~G4PSDoseDeposit(); - G4FoamXTRdEdx (G4LogicalVolume *anEnvelope,G4double,G4double); - ~G4FoamXTRdEdx (); + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); - // Pure virtual function from base class + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + private: + G4int HCID; + G4THitsMap* EvtMap; }; - #endif diff --git a/source/parameterisations/trd_clusters/include/G4FoamXrayTRmodel.hh b/source/digits_hits/utils/include/G4PSEnergyDeposit.hh similarity index 61% rename from source/parameterisations/trd_clusters/include/G4FoamXrayTRmodel.hh rename to source/digits_hits/utils/include/G4PSEnergyDeposit.hh index b61544e308..b2418be933 100644 --- a/source/parameterisations/trd_clusters/include/G4FoamXrayTRmodel.hh +++ b/source/digits_hits/utils/include/G4PSEnergyDeposit.hh @@ -21,41 +21,43 @@ // ******************************************************************** // // -// $Id: G4FoamXrayTRmodel.hh,v 1.1 2004/11/09 09:20:31 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// Rough model describing a radiator of X-ray transition radiation. -// Thicknesses of plates and gas gaps are exponentially distributed. -// We suppose that: -// formation zone ~ mean thickness << absorption length -// for each material and in the range 1-100 keV. This allows us to simplify -// interference effects in radiator stack (GetStackFactor method). -// -// -// History: -// 09.02.00 V. Grichine, first version +// $Id: G4PSEnergyDeposit.hh,v 1.1 2005/11/16 23:12:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // +#ifndef G4PSEnergyDeposit_h +#define G4PSEnergyDeposit_h 1 -#ifndef G4FoamXrayTRmodel_h -#define G4FoamXrayTRmodel_h 1 +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" -#include "G4VXrayTRadModel.hh" -#include "G4VFastSimulationModel.hh" +//////////////////////////////////////////////////////////////////////////////// +// Description: +// This is a primitive scorer class for scoring energy deposit. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura +// +/////////////////////////////////////////////////////////////////////////////// -class G4FoamXrayTRmodel : public G4VXrayTRadModel +class G4PSEnergyDeposit : public G4VPrimitiveScorer { -public: + + public: // with description + G4PSEnergyDeposit(G4String name, G4int depth=0); + virtual ~G4PSEnergyDeposit(); - G4FoamXrayTRmodel (G4LogicalVolume *anEnvelope,G4double,G4double); - ~G4FoamXrayTRmodel (); + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); - // Pure virtual function from base class + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); + private: + G4int HCID; + G4THitsMap* EvtMap; }; - #endif diff --git a/source/digits_hits/utils/include/G4PSFlatSurfaceCurrent.hh b/source/digits_hits/utils/include/G4PSFlatSurfaceCurrent.hh new file mode 100644 index 0000000000..c704f14acc --- /dev/null +++ b/source/digits_hits/utils/include/G4PSFlatSurfaceCurrent.hh @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSFlatSurfaceCurrent.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4PSFlatSurfaceCurrent_h +#define G4PSFlatSurfaceCurrent_h 1 + +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +#include "G4Box.hh" +#include "G4PSDirectionFlag.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring Surface Current. +// Current version assumes only for G4Box shape, and the surface +// is defined at the -Z plane of the box. +// The current is given in the unit of area. +// e.g. (Number of tracks)/mm2. +// +// Surface is defined at the -Z surface. +// Direction -Z +Z +// 0 IN || OUT ->|<- | fCurrent_InOut +// 1 IN ->| | fCurrent_In +// 2 OUT |<- | fCurrent_Out +// +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// 17-Nov-2005 T.Aso, Bug fix for area definition. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4PSFlatSurfaceCurrent : public G4VPrimitiveScorer +{ + + public: // with description + G4PSFlatSurfaceCurrent(G4String name ,G4int direction, G4int depth=0); + virtual ~G4PSFlatSurfaceCurrent(); + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + G4int IsSelectedSurface(G4Step*,G4Box*); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4int fDirection; + G4THitsMap* EvtMap; + +}; + +#endif + diff --git a/source/digits_hits/utils/include/G4PSFlatSurfaceFlux.hh b/source/digits_hits/utils/include/G4PSFlatSurfaceFlux.hh new file mode 100644 index 0000000000..39e00bfea7 --- /dev/null +++ b/source/digits_hits/utils/include/G4PSFlatSurfaceFlux.hh @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSFlatSurfaceFlux.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4PSFlatSurfaceFlux_h +#define G4PSFlatSurfaceFlux_h 1 + +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" +#include "G4Box.hh" +#include "G4PSDirectionFlag.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring Surface Flux. +// Current version assumes only for G4Box shape, and the surface +// is defined at the -Z plane of the box. +// The surface flux is given in the unit of area. +// e.g. sum of 1/cos(T)/mm2, where T is a incident angle of the +// track on the surface. +// +// +// Surface is defined at the -Z surface. +// Direction -Z +Z +// 0 IN || OUT ->|<- | fFlux_InOut +// 1 IN ->| | fFlux_In +// 2 OUT |<- | fFlux_Out +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +// 18-Nov-2005 T.Aso, To use always positive value for anglefactor. +// Bug fix. Area definition. +/////////////////////////////////////////////////////////////////////////////// + +class G4PSFlatSurfaceFlux : public G4VPrimitiveScorer +{ + public: // with description + G4PSFlatSurfaceFlux(G4String name,G4int direction, G4int depth=0); + virtual ~G4PSFlatSurfaceFlux(); + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + G4int IsSelectedSurface(G4Step*,G4Box*); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4int fDirection; + G4THitsMap* EvtMap; + +}; + +#endif + diff --git a/source/digits_hits/utils/include/G4PSMinKinEAtGeneration.hh b/source/digits_hits/utils/include/G4PSMinKinEAtGeneration.hh new file mode 100755 index 0000000000..5936de1aed --- /dev/null +++ b/source/digits_hits/utils/include/G4PSMinKinEAtGeneration.hh @@ -0,0 +1,76 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSMinKinEAtGeneration.hh,v 1.1 2005/11/18 22:43:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4PSMinKinEAtGeneration_h +#define G4PSMinKinEAtGeneration_h 1 + +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring Number of particles +// generated in the geometry. +// +// Created: 2005-11-18 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + + +class G4PSMinKinEAtGeneration : public G4VPrimitiveScorer +{ + + public: // with description + G4PSMinKinEAtGeneration(G4String name, G4int depth=0); + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + + public: + virtual ~G4PSMinKinEAtGeneration(); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + + public: + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4THitsMap* EvtMap; + + public: + + +}; + + + +#endif diff --git a/source/parameterisations/trd_clusters/include/G4PhotoClusterModel.hh b/source/digits_hits/utils/include/G4PSNofSecondary.hh old mode 100644 new mode 100755 similarity index 59% rename from source/parameterisations/trd_clusters/include/G4PhotoClusterModel.hh rename to source/digits_hits/utils/include/G4PSNofSecondary.hh index a3de9709f9..80ce290366 --- a/source/parameterisations/trd_clusters/include/G4PhotoClusterModel.hh +++ b/source/digits_hits/utils/include/G4PSNofSecondary.hh @@ -21,66 +21,56 @@ // ******************************************************************** // // -// $Id: G4PhotoClusterModel.hh,v 1.2 2004/11/30 10:27:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// Class for 'fast' parametrisation model describing X-ray ionisation clusters -// created in some G4Envelope. -// -// History: -// 14.07.00 V. Grichine first version +// $Id: G4PSNofSecondary.hh,v 1.1 2005/11/18 22:43:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // +#ifndef G4PSNofSecondary_h +#define G4PSNofSecondary_h 1 -#ifndef G4PhotoClusterModel_h -#define G4PhotoClusterModel_h 1 +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring Number of particles +// generated in the geometry. +// +// Created: 2005-11-18 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// -#include "globals.hh" - -#include "G4VClusterModel.hh" -#include "G4Step.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" - - -class G4PhotoClusterModel : public G4VClusterModel +class G4PSNofSecondary : public G4VPrimitiveScorer { -public: - - G4PhotoClusterModel (G4LogicalVolume* anEnvelope); - - ~G4PhotoClusterModel (); - - // Pure virtual functions from base class - - G4bool IsApplicable(const G4ParticleDefinition&); - G4bool ModelTrigger(const G4FastTrack &); - - void DoIt(const G4FastTrack&, G4FastStep&) ; + public: // with description + G4PSNofSecondary(G4String name, G4int depth=0); -protected: + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); - void ComputePhotoAbsCof() ; - G4double GetLinearPhotoAbs(G4double) ; + public: + virtual ~G4PSNofSecondary(); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + + public: + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4THitsMap* EvtMap; + + public: - -private: - - G4int fMatIndex ; - G4double** fPhotoAbsCof ; - G4int fIntervalNumber ; - }; + + #endif - - - - - diff --git a/examples/novice/N07/include/ExN07CalorimeterSD.hh b/source/digits_hits/utils/include/G4PSNofStep.hh similarity index 68% rename from examples/novice/N07/include/ExN07CalorimeterSD.hh rename to source/digits_hits/utils/include/G4PSNofStep.hh index ab4d13af50..fae913c40b 100644 --- a/examples/novice/N07/include/ExN07CalorimeterSD.hh +++ b/source/digits_hits/utils/include/G4PSNofStep.hh @@ -21,44 +21,55 @@ // ******************************************************************** // // -// $Id: ExN07CalorimeterSD.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PSNofStep.hh,v 1.1 2005/11/16 23:12:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -#ifndef ExN07CalorimeterSD_h -#define ExN07CalorimeterSD_h 1 +#ifndef G4PSNofStep_h +#define G4PSNofStep_h 1 -class G4HCofThisEvent; -class G4Step; -class G4TouchableHistory; -#include "G4VSensitiveDetector.hh" -#include "globals.hh" -#include "ExN07CalorHit.hh" +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" -class ExN07CalorimeterSD : public G4VSensitiveDetector +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring Number of Steps in the cell. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + + +class G4PSNofStep : public G4VPrimitiveScorer { - public: - ExN07CalorimeterSD(G4String); - virtual ~ExN07CalorimeterSD(); + + public: // with description + G4PSNofStep(G4String name, G4int depth=0); - virtual void Initialize(G4HCofThisEvent*); + protected: // with description virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + + public: + virtual ~G4PSNofStep(); + + public: + virtual void Initialize(G4HCofThisEvent*); virtual void EndOfEvent(G4HCofThisEvent*); virtual void clear(); + + public: virtual void DrawAll(); virtual void PrintAll(); private: - static G4int numberOfLayers; - ExN07CalorHitsCollection* AbsCollection; - ExN07CalorHitsCollection* GapCollection; - G4int AbsCollID; - G4int GapCollID; + G4int HCID; + G4THitsMap* EvtMap; public: - static void SetNumberOfLayers(G4int nl) - { numberOfLayers = nl; } + + }; -#endif + +#endif diff --git a/source/digits_hits/utils/include/G4PSPassageCellFlux.hh b/source/digits_hits/utils/include/G4PSPassageCellFlux.hh new file mode 100644 index 0000000000..f5d9994e67 --- /dev/null +++ b/source/digits_hits/utils/include/G4PSPassageCellFlux.hh @@ -0,0 +1,75 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSPassageCellFlux.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4PSPassageCellFlux_h +#define G4PSPassageCellFlux_h 1 + +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring cell flux. +// The Cell Flux is defined by a track length divided by a geometry +// volume, where only tracks passing through the geometry are taken +// into account. e.g. the unit of Cell Flux is mm/mm3. +// +// If you want to score all tracks in the geometry volume, +// please use G4PSCellFlux. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4PSPassageCellFlux : public G4VPrimitiveScorer +{ + + public: // with description + G4PSPassageCellFlux(G4String name, G4int depth=0); + virtual ~G4PSPassageCellFlux(); + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + virtual G4bool IsPassed(G4Step*); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4int fCurrentTrkID; + G4double fCellFlux; + G4THitsMap* EvtMap; + +}; + +#endif + diff --git a/source/parameterisations/trd_clusters/include/G4VXrayTRadModel.hh b/source/digits_hits/utils/include/G4PSPassageCurrent.hh similarity index 56% rename from source/parameterisations/trd_clusters/include/G4VXrayTRadModel.hh rename to source/digits_hits/utils/include/G4PSPassageCurrent.hh index b075aa6ba9..dfc91c8423 100644 --- a/source/parameterisations/trd_clusters/include/G4VXrayTRadModel.hh +++ b/source/digits_hits/utils/include/G4PSPassageCurrent.hh @@ -21,56 +21,56 @@ // ******************************************************************** // // -// $Id: G4VXrayTRadModel.hh,v 1.1 2004/11/09 09:20:34 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// base class for 'fast' parametrisation model describing X-ray transition -// created in some G4Envelope. Anglur distribuiton is very rough !!! (see DoIt -// method -// -// History: -// 26.02.01 V. Grichine first version -// 26.02.01 V. Grichine, DoIt was transformed from virtual +// $Id: G4PSPassageCurrent.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // +#ifndef G4PSPassageCurrent_h +#define G4PSPassageCurrent_h 1 -#ifndef G4VXrayTRadModel_h -#define G4VXrayTRadModel_h 1 +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring current. +// The number of tracks passing through the geometry are taken +// into account. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// -#include -#include "globals.hh" - -#include "G4PhysicsTable.hh" -#include "G4PhysicsLogVector.hh" -#include "G4Gamma.hh" - -#include "G4VXrayTRmodel.hh" - - -class G4VXrayTRadModel : public G4VXrayTRmodel +class G4PSPassageCurrent : public G4VPrimitiveScorer { -public: - - G4VXrayTRadModel (G4LogicalVolume *anEnvelope,G4double,G4double); - virtual ~G4VXrayTRadModel (); - - // Pure virtual functions from base class - void DoIt(const G4FastTrack&, G4FastStep&) ; + public: // with description + G4PSPassageCurrent(G4String name, G4int depth=0); - // Pure virtuals must be implemented in inherited particular TR radiators + public: + virtual ~G4PSPassageCurrent(); - virtual G4double GetStackFactor( G4double energy, G4double gamma, - G4double varAngle ) = 0 ; + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + virtual G4bool IsPassed(G4Step*); - void BuildTable() ; - void BuildEnergyTable() ; - void BuildAngleTable() ; + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + + public: + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4int fCurrentTrkID; + G4double fCurrent; + G4double fCurrentSquare; + G4THitsMap* EvtMap; }; diff --git a/source/digits_hits/utils/include/G4PSPassageTrackLength.hh b/source/digits_hits/utils/include/G4PSPassageTrackLength.hh new file mode 100644 index 0000000000..50c9bc52a0 --- /dev/null +++ b/source/digits_hits/utils/include/G4PSPassageTrackLength.hh @@ -0,0 +1,75 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSPassageTrackLength.hh,v 1.2 2005/11/19 00:44:00 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4PSPassageTrackLength_h +#define G4PSPassageTrackLength_h 1 + +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring only track length. +// The tracks which passed a geometry is taken into account. +// +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4PSPassageTrackLength : public G4VPrimitiveScorer +{ + + public: // with description + G4PSPassageTrackLength(G4String name, G4int depth=0); + virtual ~G4PSPassageTrackLength(); + + inline void Weighted(G4bool flg=true) { weighted = flg; } + // Multiply track weight + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + G4bool IsPassed(G4Step*); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4int fCurrentTrkID; + G4double fTrackLength; + G4THitsMap* EvtMap; + G4bool weighted; + +}; + +#endif + diff --git a/source/digits_hits/utils/include/G4PSSphereSurfaceCurrent.hh b/source/digits_hits/utils/include/G4PSSphereSurfaceCurrent.hh new file mode 100644 index 0000000000..ea0ec1dcf4 --- /dev/null +++ b/source/digits_hits/utils/include/G4PSSphereSurfaceCurrent.hh @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSSphereSurfaceCurrent.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4PSSphereSurfaceCurrent_h +#define G4PSSphereSurfaceCurrent_h 1 + +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +#include "G4Sphere.hh" +#include "G4PSDirectionFlag.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring Surface Current. +// Current version assumes only for G4Sphere shape, and the surface +// is defined at the inside of the sphere. +// The current is given in the unit of area. +// e.g. (Number of tracks)/mm2. +// +// Surface is defined at the inside of sphere. +// Direction -Rmin +Rmax +// 0 IN || OUT ->|<- | fCurrent_InOut +// 1 IN ->| | fCurrent_In +// 2 OUT |<- | fCurrent_Out +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// 17-Nov-2005 Bug fix. square definition. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4PSSphereSurfaceCurrent : public G4VPrimitiveScorer +{ + + public: // with description + G4PSSphereSurfaceCurrent(G4String name, G4int direction, G4int depth=0); + virtual ~G4PSSphereSurfaceCurrent(); + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + G4int IsSelectedSurface(G4Step*,G4Sphere*); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4int fDirection; + G4THitsMap* EvtMap; + +}; + +#endif + diff --git a/source/digits_hits/utils/include/G4PSTrackLength.hh b/source/digits_hits/utils/include/G4PSTrackLength.hh new file mode 100644 index 0000000000..599102f9a0 --- /dev/null +++ b/source/digits_hits/utils/include/G4PSTrackLength.hh @@ -0,0 +1,68 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSTrackLength.hh,v 1.3 2005/11/19 00:44:00 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4PSTrackLength_h +#define G4PSTrackLength_h 1 + +#include "G4VPrimitiveScorer.hh" +#include "G4THitsMap.hh" + +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring track length. +// +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4PSTrackLength : public G4VPrimitiveScorer +{ + + public: // with description + G4PSTrackLength(G4String name, G4int depth=0); + virtual ~G4PSTrackLength(); + + inline void Weighted(G4bool flg=true) { weighted = flg; } + // Multiply track weight + + protected: // with description + virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*); + + public: + virtual void Initialize(G4HCofThisEvent*); + virtual void EndOfEvent(G4HCofThisEvent*); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + + private: + G4int HCID; + G4THitsMap* EvtMap; + G4bool weighted; +}; +#endif diff --git a/source/digits_hits/utils/include/G4SDChargedFilter.hh b/source/digits_hits/utils/include/G4SDChargedFilter.hh new file mode 100644 index 0000000000..040c0ed64e --- /dev/null +++ b/source/digits_hits/utils/include/G4SDChargedFilter.hh @@ -0,0 +1,59 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4SDChargedFilter.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4SDChargedFilter_h +#define G4SDChargedFilter_h 1 + +class G4Step; +class G4ChargedDefinition; +#include "globals.hh" +#include "G4VSDFilter.hh" + +//////////////////////////////////////////////////////////////////////////////// +// class description: +// +// This is the class of a filter to be associated with a +// sensitive detector. +// This fileter accepts charged particles. +// +// Created: 2005-11-14 Tsukasa ASO. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4SDChargedFilter : public G4VSDFilter +{ + + public: // with description + G4SDChargedFilter(G4String name); + virtual ~G4SDChargedFilter(); + + public: // with description + virtual G4bool Accept(const G4Step*) const; + +}; +#endif + diff --git a/source/digits_hits/utils/include/G4SDKineticEnergyFilter.hh b/source/digits_hits/utils/include/G4SDKineticEnergyFilter.hh new file mode 100644 index 0000000000..b100a83828 --- /dev/null +++ b/source/digits_hits/utils/include/G4SDKineticEnergyFilter.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4SDKineticEnergyFilter.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4SDKineticEnergyFilter_h +#define G4SDKineticEnergyFilter_h 1 + +#include "globals.hh" +#include "G4VSDFilter.hh" + +//////////////////////////////////////////////////////////////////////////////// +// class description: +// +// This is the class of a filter to be associated with a +// sensitive detector. +// +// This filter accepts particles defined energy range. +// The energy range is given at constructor, or Set methods. +// +// +// +// Created: 2005-11-14 Tsukasa ASO. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4SDKineticEnergyFilter : public G4VSDFilter +{ + +//------- + public: // with description + G4SDKineticEnergyFilter(G4String name, + G4double elow=0.0, + G4double ehigh=DBL_MAX); + // Constructor. Filter name and kinetic energy range( elow, ehigh). + + virtual ~G4SDKineticEnergyFilter(); + + public: // with description + virtual G4bool Accept(const G4Step*) const; + + void SetKineticEnergy(G4double elow, G4double ehigh); + void SetLowEnergy(G4double elow); + void SetHighEnergy(G4double ehigh); + // Set methods for kinetic energy range. + // + void show(); + + private: + G4double fLowEnergy; + G4double fHighEnergy; + +}; + +#endif + diff --git a/source/digits_hits/utils/include/G4SDNeutralFilter.hh b/source/digits_hits/utils/include/G4SDNeutralFilter.hh new file mode 100644 index 0000000000..ad1e466564 --- /dev/null +++ b/source/digits_hits/utils/include/G4SDNeutralFilter.hh @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4SDNeutralFilter.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4SDNeutralFilter_h +#define G4SDNeutralFilter_h 1 + +class G4Step; +class G4NeutralDefinition; +#include "globals.hh" +#include "G4VSDFilter.hh" + +//////////////////////////////////////////////////////////////////////////////// +// class description: +// +// This is the class of a filter to be associated with a +// sensitive detector. +// +// This filter accepts neutral tracks. +// +// Created: 2005-11-14 Tsukasa ASO. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4SDNeutralFilter : public G4VSDFilter +{ + + public: // with description + G4SDNeutralFilter(G4String name); + virtual ~G4SDNeutralFilter(); + + public: // with description + virtual G4bool Accept(const G4Step*) const; + +}; + +#endif + diff --git a/source/parameterisations/trd_clusters/include/G4VClusterModel.hh b/source/digits_hits/utils/include/G4SDParticleFilter.hh similarity index 53% rename from source/parameterisations/trd_clusters/include/G4VClusterModel.hh rename to source/digits_hits/utils/include/G4SDParticleFilter.hh index c84b08ca9b..f3b8e03599 100644 --- a/source/parameterisations/trd_clusters/include/G4VClusterModel.hh +++ b/source/digits_hits/utils/include/G4SDParticleFilter.hh @@ -21,69 +21,59 @@ // ******************************************************************** // // -// $Id: G4VClusterModel.hh,v 1.2 2004/11/30 10:27:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// Base class for 'fast' parametrisation models describing ionisation clusters -// created in some G4Envelope. -// -// History: -// 14.07.00 V. Grichine first version +// $Id: G4SDParticleFilter.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // +#ifndef G4SDParticleFilter_h +#define G4SDParticleFilter_h 1 -#ifndef G4VClusterModel_h -#define G4VClusterModel_h 1 - - +class G4Step; +class G4ParticleDefinition; #include "globals.hh" +#include "G4VSDFilter.hh" + #include -#include "G4VFastSimulationModel.hh" -#include "G4Step.hh" -#include "G4TouchableHandle.hh" -#include "G4TouchableHistoryHandle.hh" +//////////////////////////////////////////////////////////////////////////////// +// class description: +// +// This is the class of a filter to be associated with a +// sensitive detector. +// This class filters steps by partilce definition. +// The particles are given at constructor or add() method. +// +// Created: 2005-11-14 Tsukasa ASO. +// +/////////////////////////////////////////////////////////////////////////////// - -class G4VClusterModel : public G4VFastSimulationModel +class G4SDParticleFilter : public G4VSDFilter { -public: - G4VClusterModel (const G4String& modelName,G4LogicalVolume* anEnvelope); - virtual ~G4VClusterModel (); + public: // with description + G4SDParticleFilter(G4String name); + G4SDParticleFilter(G4String name,const G4String& particleName); + G4SDParticleFilter(G4String name, + const std::vector& particleNames); + G4SDParticleFilter(G4String name, + const std::vector& particleDef); + // Constructors. Filter name and particle's name. + // - // Pure virtual functions from base class + virtual ~G4SDParticleFilter(); - virtual G4bool IsApplicable(const G4ParticleDefinition&) = 0 ; - - virtual G4bool ModelTrigger(const G4FastTrack &) = 0 ; - - virtual void DoIt(const G4FastTrack&, G4FastStep&) = 0 ; + public: // with description + virtual G4bool Accept(const G4Step*) const; -protected: + void add(const G4String& particleName); + // set method for acceptable particle name. + // + void show(); - void BuildDetectorResponse(); + private: + std::vector thePdef; - void AssignClusterHit(const G4ThreeVector& position, G4double energy) ; - - void FillFakeStep(const G4ThreeVector& position, G4double energy) ; - -protected: - - G4Step* fFakeStep ; - G4StepPoint* fFakePreStepPoint ; - G4StepPoint* fFakePostStepPoint ; - - G4TouchableHandle fTouchable ; - - G4Navigator* fNavigator ; - G4bool fNavigatorSetup ; - - std::vector fClusterPositionVector ; - std::vector fClusterEnergyVector ; }; #endif + diff --git a/source/digits_hits/utils/include/G4SDParticleWithEnergyFilter.hh b/source/digits_hits/utils/include/G4SDParticleWithEnergyFilter.hh new file mode 100644 index 0000000000..fd3527d996 --- /dev/null +++ b/source/digits_hits/utils/include/G4SDParticleWithEnergyFilter.hh @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4SDParticleWithEnergyFilter.hh,v 1.2 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +#ifndef G4SDParticleWithEnergyFilter_h +#define G4SDParticleWithEnergyFilter_h 1 + +class G4Step; +class G4ParticleDefinition; +#include "globals.hh" +#include "G4VSDFilter.hh" +#include "G4SDParticleFilter.hh" +#include "G4SDKineticEnergyFilter.hh" + +//////////////////////////////////////////////////////////////////////////////// +// class description: +// +// This is the class of a filter to be associated with a +// sensitive detector. +// This class filters steps by partilce definition and kinetic energy. +// +// Created: 2005-11-14 Tsukasa ASO. +// +/////////////////////////////////////////////////////////////////////////////// + +class G4SDParticleWithEnergyFilter : public G4VSDFilter +{ + public: // with description + G4SDParticleWithEnergyFilter(G4String name, + G4double elow=0.0, G4double ehigh=DBL_MAX); + virtual ~G4SDParticleWithEnergyFilter(); + + public: // with description + virtual G4bool Accept(const G4Step*) const; + + void add(const G4String& particleName); + // add the particle into accepatable particle list. + // + void SetKineticEnergy(G4double elow, G4double ehigh); + // Set acceptable kinetic energy range. + // + void show(); + + private: + G4SDParticleFilter* fParticleFilter; + G4SDKineticEnergyFilter* fKineticFilter; +}; + +#endif + diff --git a/source/digits_hits/utils/src/G4PSCellFlux.cc b/source/digits_hits/utils/src/G4PSCellFlux.cc new file mode 100644 index 0000000000..b272db6497 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSCellFlux.cc @@ -0,0 +1,99 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSCellFlux.cc,v 1.3 2005/11/19 03:16:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSCellFlux +#include "G4PSCellFlux.hh" +#include "G4Track.hh" +#include "G4VSolid.hh" +#include "G4UnitsTable.hh" + +/////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring cell flux. +// The Cell Flux is defined by a sum of track length divided +// by the geometry volume, where all of the tracks in the geometry +// are taken into account. +// +// If you want to score only tracks passing through the geometry volume, +// please use G4PSPassageCellFlux. +// +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +G4PSCellFlux::G4PSCellFlux(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1) +{;} + +G4PSCellFlux::~G4PSCellFlux() +{;} + +G4bool G4PSCellFlux::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4double stepLength = aStep->GetStepLength(); + if ( stepLength == 0. ) return FALSE; + G4double volume = aStep->GetPreStepPoint()->GetPhysicalVolume() + ->GetLogicalVolume()->GetSolid()->GetCubicVolume(); + G4double CellFlux = stepLength / volume ; + CellFlux *= aStep->GetPreStepPoint()->GetWeight(); + G4int index = GetIndex(aStep); + EvtMap->add(index,CellFlux); + + return TRUE; +} + +void G4PSCellFlux::Initialize(G4HCofThisEvent* HCE) +{ + EvtMap = new G4THitsMap(detector->GetName(), + GetName()); + if ( HCID < 0 ) HCID = GetCollectionID(0); + HCE->AddHitsCollection(HCID,EvtMap); +} + +void G4PSCellFlux::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSCellFlux::clear(){ + EvtMap->clear(); +} + +void G4PSCellFlux::DrawAll() +{;} + +void G4PSCellFlux::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() <entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " cell flux : " << *(itr->second)*cm*cm << " [cm^-2]" + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSDoseDeposit.cc b/source/digits_hits/utils/src/G4PSDoseDeposit.cc new file mode 100644 index 0000000000..0029103045 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSDoseDeposit.cc @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSDoseDeposit.cc,v 1.3 2005/12/13 08:43:39 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSDoseDeposit +#include "G4PSDoseDeposit.hh" +#include "G4VSolid.hh" +#include "G4UnitsTable.hh" + +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring only energy deposit. +// +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +G4PSDoseDeposit::G4PSDoseDeposit(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1) +{;} + +G4PSDoseDeposit::~G4PSDoseDeposit() +{;} + +G4bool G4PSDoseDeposit::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if ( edep == 0. ) return FALSE; + G4double volume = aStep->GetPreStepPoint()->GetPhysicalVolume() + ->GetLogicalVolume()->GetSolid()->GetCubicVolume(); + G4double density = aStep->GetTrack()->GetMaterial()->GetDensity(); + G4double dose = edep / ( density * volume ); + dose *= aStep->GetPreStepPoint()->GetWeight(); + G4int index = GetIndex(aStep); + EvtMap->add(index,dose); + return TRUE; +} + +void G4PSDoseDeposit::Initialize(G4HCofThisEvent* HCE) +{ + EvtMap = new G4THitsMap(GetMultiFunctionalDetector()->GetName(), + GetName()); + if(HCID < 0) {HCID = GetCollectionID(0);} + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSDoseDeposit::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSDoseDeposit::clear() +{ + EvtMap->clear(); +} + +void G4PSDoseDeposit::DrawAll() +{;} + +void G4PSDoseDeposit::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() << G4endl; + G4cout << " Number of entries " << EvtMap->entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " dose deposit: " << G4BestUnit(*(itr->second),"Dose") + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSEnergyDeposit.cc b/source/digits_hits/utils/src/G4PSEnergyDeposit.cc new file mode 100644 index 0000000000..ddf3db8d27 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSEnergyDeposit.cc @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSEnergyDeposit.cc,v 1.3 2005/12/13 08:43:41 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSEnergyDeposit +#include "G4PSEnergyDeposit.hh" +#include "G4UnitsTable.hh" +//////////////////////////////////////////////////////////////////////////////// +// Description: +// This is a primitive scorer class for scoring energy deposit. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +G4PSEnergyDeposit::G4PSEnergyDeposit(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1) +{;} + +G4PSEnergyDeposit::~G4PSEnergyDeposit() +{;} + +G4bool G4PSEnergyDeposit::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if ( edep == 0. ) return FALSE; + edep *= aStep->GetPreStepPoint()->GetWeight(); // (Particle Weight) + G4int index = GetIndex(aStep); + EvtMap->add(index,edep); + return TRUE; +} + +void G4PSEnergyDeposit::Initialize(G4HCofThisEvent* HCE) +{ + EvtMap = new G4THitsMap(GetMultiFunctionalDetector()->GetName(), + GetName()); + if(HCID < 0) {HCID = GetCollectionID(0);} + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSEnergyDeposit::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSEnergyDeposit::clear() +{ + EvtMap->clear(); +} + +void G4PSEnergyDeposit::DrawAll() +{;} + +void G4PSEnergyDeposit::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() << G4endl; + G4cout << " Number of entries " << EvtMap->entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " energy deposit: " << G4BestUnit(*(itr->second),"Energy") + << G4endl; + } +} diff --git a/source/digits_hits/utils/src/G4PSFlatSurfaceCurrent.cc b/source/digits_hits/utils/src/G4PSFlatSurfaceCurrent.cc new file mode 100644 index 0000000000..5b9acad9da --- /dev/null +++ b/source/digits_hits/utils/src/G4PSFlatSurfaceCurrent.cc @@ -0,0 +1,145 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSFlatSurfaceCurrent.cc,v 1.3 2005/11/19 03:16:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSFlatSurfaceCurrent +#include "G4PSFlatSurfaceCurrent.hh" +#include "G4StepStatus.hh" +#include "G4Track.hh" +#include "G4UnitsTable.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring only Surface Flux. +// Current version assumes only for G4Box shape. +// +// Surface is defined at the -Z surface. +// Direction -Z +Z +// 0 IN || OUT ->|<- | +// 1 IN ->| | +// 2 OUT |<- | +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + + +G4PSFlatSurfaceCurrent::G4PSFlatSurfaceCurrent(G4String name, + G4int direction, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1),fDirection(direction) +{;} + +G4PSFlatSurfaceCurrent::~G4PSFlatSurfaceCurrent() +{;} + +G4bool G4PSFlatSurfaceCurrent::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4StepPoint* preStep = aStep->GetPreStepPoint(); + G4VSolid * solid = + preStep->GetPhysicalVolume()->GetLogicalVolume()->GetSolid(); + if( solid->GetEntityType() != "G4Box" ){ + G4Exception("G4PSFlatSurfaceCurrentScorer. - Solid type is not supported."); + return FALSE; + } + G4Box* boxSolid = (G4Box*)(solid); + + G4int dirFlag =IsSelectedSurface(aStep,boxSolid); + if ( dirFlag > 0 ) { + G4int index = GetIndex(aStep); + G4double square = 4.*boxSolid->GetXHalfLength()*boxSolid->GetYHalfLength(); + G4TouchableHandle theTouchable = preStep->GetTouchableHandle(); + G4ThreeVector pdirection = preStep->GetMomentumDirection(); + G4ThreeVector localdir = + theTouchable->GetHistory()->GetTopTransform().TransformAxis(pdirection); + G4double current = preStep->GetWeight(); // Current (Particle Weight) + current = current/square; // Current with angle. + + if ( fDirection == fCurrent_InOut || fDirection == dirFlag ){ + EvtMap->add(index,current); + } + + } + + return TRUE; +} + +G4int G4PSFlatSurfaceCurrent::IsSelectedSurface(G4Step* aStep, G4Box* boxSolid){ + + G4TouchableHandle theTouchable = + aStep->GetPreStepPoint()->GetTouchableHandle(); + + + if (aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary ){ + // Entering Geometry + G4ThreeVector stppos1= aStep->GetPreStepPoint()->GetPosition(); + G4ThreeVector localpos1 = + theTouchable->GetHistory()->GetTopTransform().TransformPoint(stppos1); + if(fabs( localpos1.z() + boxSolid->GetZHalfLength())GetPostStepPoint()->GetStepStatus() == fGeomBoundary ){ + // Exiting Geometry + G4ThreeVector stppos2= aStep->GetPostStepPoint()->GetPosition(); + G4ThreeVector localpos2 = + theTouchable->GetHistory()->GetTopTransform().TransformPoint(stppos2); + if(fabs( localpos2.z() + boxSolid->GetZHalfLength())(detector->GetName(), GetName()); + if ( HCID < 0 ) HCID = GetCollectionID(0); + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSFlatSurfaceCurrent::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSFlatSurfaceCurrent::clear(){ + EvtMap->clear(); +} + +void G4PSFlatSurfaceCurrent::DrawAll() +{;} + +void G4PSFlatSurfaceCurrent::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() <entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " current : " << *(itr->second)*cm*cm << " [cm^-2]" + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSFlatSurfaceFlux.cc b/source/digits_hits/utils/src/G4PSFlatSurfaceFlux.cc new file mode 100644 index 0000000000..323c28f36f --- /dev/null +++ b/source/digits_hits/utils/src/G4PSFlatSurfaceFlux.cc @@ -0,0 +1,152 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSFlatSurfaceFlux.cc,v 1.3 2005/11/19 03:16:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSFlatSurfaceFlux +#include "G4PSFlatSurfaceFlux.hh" +#include "G4StepStatus.hh" +#include "G4Track.hh" +#include "G4UnitsTable.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring Surface Flux. +// Current version assumes only for G4Box shape, and the surface +// is fixed on -Z plane. +// +// Surface is defined at the -Z surface. +// Direction -Z +Z +// 0 IN || OUT ->|<- | +// 1 IN ->| | +// 2 OUT |<- | +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +// 18-Nov-2005 T.Aso, To use always positive value for anglefactor. +/////////////////////////////////////////////////////////////////////////////// + +G4PSFlatSurfaceFlux::G4PSFlatSurfaceFlux(G4String name, + G4int direction, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1),fDirection(direction) +{;} + +G4PSFlatSurfaceFlux::~G4PSFlatSurfaceFlux() +{;} + +G4bool G4PSFlatSurfaceFlux::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4StepPoint* preStep = aStep->GetPreStepPoint(); + G4VSolid * solid = + preStep->GetPhysicalVolume()->GetLogicalVolume()->GetSolid(); + if( solid->GetEntityType() != "G4Box" ){ + G4Exception("G4PSFlatSurfaceFluxScorer. - Solid type is not supported."); + return FALSE; + } + G4Box* boxSolid = (G4Box*)(solid); + + G4int dirFlag =IsSelectedSurface(aStep,boxSolid); + if ( dirFlag > 0 ) { + G4int index = GetIndex(aStep); + G4double square = 4.*boxSolid->GetXHalfLength()*boxSolid->GetYHalfLength(); + G4TouchableHandle theTouchable = preStep->GetTouchableHandle(); + G4ThreeVector pdirection = preStep->GetMomentumDirection(); + G4ThreeVector localdir = + theTouchable->GetHistory()->GetTopTransform().TransformAxis(pdirection); + G4double angleFactor = localdir.z(); + if ( angleFactor < 0 ) angleFactor *= -1.; + G4double flux = preStep->GetWeight(); // Current (Particle Weight) + flux = flux/angleFactor/square; // Flux with angle. + + if ( fDirection == fFlux_InOut || fDirection == dirFlag ){ + EvtMap->add(index,flux); + } + +#ifdef debug + G4cout << " PASSED vol " + << index << " trk "<GetPreStepPoint()->GetTouchableHandle(); + + if (aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary ){ + // Entering Geometry + G4ThreeVector stppos1= aStep->GetPreStepPoint()->GetPosition(); + G4ThreeVector localpos1 = + theTouchable->GetHistory()->GetTopTransform().TransformPoint(stppos1); + if(fabs( localpos1.z() + boxSolid->GetZHalfLength())GetPostStepPoint()->GetStepStatus() == fGeomBoundary ){ + // Exiting Geometry + G4ThreeVector stppos2= aStep->GetPostStepPoint()->GetPosition(); + G4ThreeVector localpos2 = + theTouchable->GetHistory()->GetTopTransform().TransformPoint(stppos2); + if(fabs( localpos2.z() + boxSolid->GetZHalfLength())(GetMultiFunctionalDetector()->GetName(), + GetName()); + if ( HCID < 0 ) HCID = GetCollectionID(0); + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSFlatSurfaceFlux::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSFlatSurfaceFlux::clear(){ + EvtMap->clear(); +} + +void G4PSFlatSurfaceFlux::DrawAll() +{;} + +void G4PSFlatSurfaceFlux::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer" << GetName() <entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " flux : " << *(itr->second)*cm*cm << " [cm^-2]" + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSMinKinEAtGeneration.cc b/source/digits_hits/utils/src/G4PSMinKinEAtGeneration.cc new file mode 100755 index 0000000000..7449d47981 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSMinKinEAtGeneration.cc @@ -0,0 +1,113 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSMinKinEAtGeneration.cc,v 1.4 2005/12/13 08:43:45 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSMinKinEAtGeneration +#include "G4PSMinKinEAtGeneration.hh" +#include "G4UnitsTable.hh" + +// (Description) +// This is a primitive scorer class for scoring minimum energy of +// newly produced particles in the geometry. +// +// Created: 2005-11-17 Tsukasa ASO, Akinori Kimura. +// + +G4PSMinKinEAtGeneration::G4PSMinKinEAtGeneration(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1) +{;} + +G4PSMinKinEAtGeneration::~G4PSMinKinEAtGeneration() +{;} + +G4bool G4PSMinKinEAtGeneration::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + // =============== + // First Step, + // Confirm this is a newly produced secondary. + // + //- check for newly produced particle. e.g. Step number is 1. + if ( aStep->GetTrack()->GetCurrentStepNumber() != 1) return FALSE; + //- check for this is not a primary particle. e.g. ParentID != 0 . + if ( aStep->GetTrack()->GetParentID() == 0 ) return FALSE; + + //=============================================== + //- This is a newly produced secondary particle. + //=============================================== + + // =============== + // Second Step, + // Confirm this track has lower energy than previous one. + // + + // -Kinetic energy of this particle at the starting point. + G4double kinetic = aStep->GetPreStepPoint()->GetKineticEnergy(); + + // -Stored value in the current HitsMap. + G4int index = GetIndex(aStep); + G4double* mapValue= ((*EvtMap)[index]); + + // - + // If mapValue exits (e.g not NULL ), compare it with + // current track's kinetic energy. + if ( mapValue && ( kinetic > *mapValue ) ) return FALSE; + + // - + // Current Track is a newly produced secondary and has lower + // kinetic energy than previous one in this geometry. + // + EvtMap->set(index, kinetic); + return TRUE; +} + +void G4PSMinKinEAtGeneration::Initialize(G4HCofThisEvent* HCE) +{ + EvtMap = new G4THitsMap(detector->GetName(),GetName()); + if(HCID < 0) {HCID = GetCollectionID(0);} + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSMinKinEAtGeneration::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSMinKinEAtGeneration::clear(){ + EvtMap->clear(); +} + +void G4PSMinKinEAtGeneration::DrawAll() +{;} + +void G4PSMinKinEAtGeneration::PrintAll() +{ + G4cout << " PrimitiveScorer " << GetName() << G4endl; + G4cout << " Number of entries " << EvtMap->entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " num of step: " << G4BestUnit(*(itr->second),"Energy") + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSNofSecondary.cc b/source/digits_hits/utils/src/G4PSNofSecondary.cc new file mode 100755 index 0000000000..583d786e7f --- /dev/null +++ b/source/digits_hits/utils/src/G4PSNofSecondary.cc @@ -0,0 +1,86 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSNofSecondary.cc,v 1.2 2005/12/13 08:43:49 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSNofSecondary +#include "G4PSNofSecondary.hh" + +// (Description) +// This is a primitive scorer class for scoring number of steps in the +// Cell. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// + +G4PSNofSecondary::G4PSNofSecondary(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1) +{;} + +G4PSNofSecondary::~G4PSNofSecondary() +{;} + +G4bool G4PSNofSecondary::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + //- check for newly produced particle. e.g. first step. + if ( aStep->GetTrack()->GetCurrentStepNumber() != 1) return FALSE; + //- check for this is not a primary particle. e.g. ParentID > 0 . + if ( aStep->GetTrack()->GetParentID() == 0 ) return FALSE; + // + //- This is a newly produced secondary particle. + G4int index = GetIndex(aStep); + G4double weight = aStep->GetPreStepPoint()->GetWeight(); + EvtMap->add(index,weight); + return TRUE; +} + +void G4PSNofSecondary::Initialize(G4HCofThisEvent* HCE) +{ + EvtMap = new G4THitsMap(detector->GetName(),GetName()); + if(HCID < 0) {HCID = GetCollectionID(0);} + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSNofSecondary::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSNofSecondary::clear(){ + EvtMap->clear(); +} + +void G4PSNofSecondary::DrawAll() +{;} + +void G4PSNofSecondary::PrintAll() +{ + G4cout << " PrimitiveScorer " << GetName() << G4endl; + G4cout << " Number of entries " << EvtMap->entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " num of step: " << *(itr->second) + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSNofStep.cc b/source/digits_hits/utils/src/G4PSNofStep.cc new file mode 100644 index 0000000000..5b55b8edf3 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSNofStep.cc @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSNofStep.cc,v 1.4 2005/12/13 08:43:51 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSNofStep +#include "G4PSNofStep.hh" + +// (Description) +// This is a primitive scorer class for scoring number of steps in the +// Cell. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// + +G4PSNofStep::G4PSNofStep(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1) +{;} + +G4PSNofStep::~G4PSNofStep() +{;} + +G4bool G4PSNofStep::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4int index = GetIndex(aStep); + G4double val = 1.0; + EvtMap->add(index,val); + return TRUE; +} + +void G4PSNofStep::Initialize(G4HCofThisEvent* HCE) +{ + EvtMap = new G4THitsMap(detector->GetName(),GetName()); + if(HCID < 0) {HCID = GetCollectionID(0);} + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSNofStep::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSNofStep::clear(){ + EvtMap->clear(); +} + +void G4PSNofStep::DrawAll() +{;} + +void G4PSNofStep::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() << G4endl; + G4cout << " Number of entries " << EvtMap->entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " num of step: " << *(itr->second) + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSPassageCellFlux.cc b/source/digits_hits/utils/src/G4PSPassageCellFlux.cc new file mode 100644 index 0000000000..ca2f9b41f4 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSPassageCellFlux.cc @@ -0,0 +1,131 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSPassageCellFlux.cc,v 1.4 2005/11/19 03:16:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSPassageCellFlux +#include "G4PSPassageCellFlux.hh" +#include "G4StepStatus.hh" +#include "G4Track.hh" +#include "G4VSolid.hh" +#include "G4UnitsTable.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring cell flux. +// The Cell Flux is defined by a track length divided by a geometry +// volume, where only tracks passing through the geometry are taken +// into account. e.g. the unit of Cell Flux is mm/mm3. +// +// If you want to score all tracks in the geometry volume, +// please use G4PSCellFlux. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +G4PSPassageCellFlux::G4PSPassageCellFlux(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1),fCurrentTrkID(-1),fCellFlux(0) +{;} + +G4PSPassageCellFlux::~G4PSPassageCellFlux() +{;} + +G4bool G4PSPassageCellFlux::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + + if ( IsPassed(aStep) ) { + fCellFlux /= + aStep->GetPreStepPoint()->GetPhysicalVolume() + ->GetLogicalVolume()->GetSolid()->GetCubicVolume(); + G4int index = GetIndex(aStep); + EvtMap->add(index,fCellFlux); + } + + return TRUE; +} + +G4bool G4PSPassageCellFlux::IsPassed(G4Step* aStep){ + G4bool Passed = FALSE; + + G4bool IsEnter = aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary; + G4bool IsExit = aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary; + + G4int trkid = aStep->GetTrack()->GetTrackID(); + G4double trklength = aStep->GetStepLength(); + trklength *= aStep->GetPreStepPoint()->GetWeight(); + + if ( IsEnter &&IsExit ){ // Passed at one step + fCellFlux = trklength; // Track length is absolutely given. + Passed = TRUE; + }else if ( IsEnter ){ // Enter a new geometry + fCurrentTrkID = trkid; // Resetting the current track. + fCellFlux = trklength; + }else if ( IsExit ){ // Exit a current geometry + if ( fCurrentTrkID == trkid ) {// if the track is same as entered, + fCellFlux += trklength; // add the track length to current one. + Passed = TRUE; + } + }else{ // Inside geometry + if ( fCurrentTrkID == trkid ){ // if the track is same as entered, + fCellFlux += trklength; // adding the track length to current one. + } + } + + return Passed; +} + +void G4PSPassageCellFlux::Initialize(G4HCofThisEvent* HCE) +{ + fCurrentTrkID = -1; + + EvtMap = new G4THitsMap(detector->GetName(), + GetName()); + if ( HCID < 0 ) HCID = GetCollectionID(0); + HCE->AddHitsCollection(HCID,EvtMap); + +} + +void G4PSPassageCellFlux::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSPassageCellFlux::clear(){ + EvtMap->clear(); +} + +void G4PSPassageCellFlux::DrawAll() +{;} + +void G4PSPassageCellFlux::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() <entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " cell flux : " << *(itr->second)*cm*cm << " [cm^-2]" + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSPassageCurrent.cc b/source/digits_hits/utils/src/G4PSPassageCurrent.cc new file mode 100644 index 0000000000..3e8fa90493 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSPassageCurrent.cc @@ -0,0 +1,119 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSPassageCurrent.cc,v 1.3 2005/11/19 03:16:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSPassageCurrent +#include "G4PSPassageCurrent.hh" +#include "G4StepStatus.hh" +#include "G4Track.hh" +#include "G4VSolid.hh" +#include "G4UnitsTable.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring number of tracks, +// where only tracks passing through the geometry are taken +// into account. +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +G4PSPassageCurrent::G4PSPassageCurrent(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1),fCurrentTrkID(-1),fCurrent(0) +{;} + +G4PSPassageCurrent::~G4PSPassageCurrent() +{;} + +G4bool G4PSPassageCurrent::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + + if ( IsPassed(aStep) ) { + fCurrent = aStep->GetPreStepPoint()->GetWeight(); + G4int index = GetIndex(aStep); + EvtMap->add(index,fCurrent); + } + + return TRUE; +} + +G4bool G4PSPassageCurrent::IsPassed(G4Step* aStep){ + G4bool Passed = FALSE; + + G4bool IsEnter = aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary; + G4bool IsExit = aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary; + + G4int trkid = aStep->GetTrack()->GetTrackID(); + + if ( IsEnter &&IsExit ){ // Passed at one step + Passed = TRUE; + }else if ( IsEnter ){ // Enter a new geometry + fCurrentTrkID = trkid; // Resetting the current track. + }else if ( IsExit ){ // Exit a current geometry + if ( fCurrentTrkID == trkid ) { + Passed = TRUE; // if the track is same as entered. + } + }else{ // Inside geometry + if ( fCurrentTrkID == trkid ){ // Adding the track length to current one , + } + } + return Passed; +} + +void G4PSPassageCurrent::Initialize(G4HCofThisEvent* HCE) +{ + fCurrentTrkID = -1; + + EvtMap = new G4THitsMap(detector->GetName(), + GetName()); + if ( HCID < 0 ) HCID = GetCollectionID(0); + HCE->AddHitsCollection(HCID,EvtMap); + +} + +void G4PSPassageCurrent::EndOfEvent(G4HCofThisEvent*) +{ +} + +void G4PSPassageCurrent::clear(){ + EvtMap->clear(); +} + +void G4PSPassageCurrent::DrawAll() +{;} + +void G4PSPassageCurrent::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() <entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " cell current : " << *(itr->second) + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSPassageTrackLength.cc b/source/digits_hits/utils/src/G4PSPassageTrackLength.cc new file mode 100644 index 0000000000..a19231b78b --- /dev/null +++ b/source/digits_hits/utils/src/G4PSPassageTrackLength.cc @@ -0,0 +1,123 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSPassageTrackLength.cc,v 1.2 2005/11/19 00:44:00 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSPassageTrackLength +#include "G4PSPassageTrackLength.hh" +#include "G4StepStatus.hh" +#include "G4Track.hh" +#include "G4UnitsTable.hh" + +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring only track length. +// The tracks which passed a geometry is taken into account. +// +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +G4PSPassageTrackLength::G4PSPassageTrackLength(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1),fCurrentTrkID(-1),fTrackLength(0.), + weighted(false) +{;} + +G4PSPassageTrackLength::~G4PSPassageTrackLength() +{;} + +G4bool G4PSPassageTrackLength::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + + if ( IsPassed(aStep) ) { + G4int index = GetIndex(aStep); + EvtMap->add(index,fTrackLength); + } + + return TRUE; +} + +G4bool G4PSPassageTrackLength::IsPassed(G4Step* aStep){ + G4bool Passed = FALSE; + + G4bool IsEnter = aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary; + G4bool IsExit = aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary; + + G4int trkid = aStep->GetTrack()->GetTrackID(); + G4double trklength = aStep->GetStepLength(); + if(weighted) trklength *= aStep->GetPreStepPoint()->GetWeight(); + + if ( IsEnter &&IsExit ){ // Passed at one step + fTrackLength = trklength; // Track length is absolutely given. + Passed = TRUE; + }else if ( IsEnter ){ // Enter a new geometry + fCurrentTrkID = trkid; // Resetting the current track. + fTrackLength = trklength; + }else if ( IsExit ){ // Exit a current geometry + if ( fCurrentTrkID == trkid ) { + fTrackLength += trklength; // Adding the track length to current one, + Passed = TRUE; // if the track is same as entered. + } + }else{ // Inside geometry + if ( fCurrentTrkID == trkid ){ // Adding the track length to current one , + fTrackLength += trklength; // if the track is same as entered. + } + } + + return Passed; +} + +void G4PSPassageTrackLength::Initialize(G4HCofThisEvent* HCE) +{ + fCurrentTrkID = -1; + + EvtMap = new G4THitsMap(detector->GetName(),GetName()); + if ( HCID < 0 ) HCID = GetCollectionID(0); + HCE->AddHitsCollection(HCID,EvtMap); +} + +void G4PSPassageTrackLength::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSPassageTrackLength::clear(){ + EvtMap->clear(); +} + +void G4PSPassageTrackLength::DrawAll() +{;} + +void G4PSPassageTrackLength::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveSenstivity " << GetName() << G4endl; + G4cout << " Number of entries " << EvtMap->entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " track length : " << G4BestUnit(*(itr->second),"Length") + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSSphereSurfaceCurrent.cc b/source/digits_hits/utils/src/G4PSSphereSurfaceCurrent.cc new file mode 100644 index 0000000000..9717d1b9b6 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSSphereSurfaceCurrent.cc @@ -0,0 +1,153 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSSphereSurfaceCurrent.cc,v 1.3 2005/11/17 22:53:38 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSSphereSurfaceCurrent +#include "G4PSSphereSurfaceCurrent.hh" +#include "G4StepStatus.hh" +#include "G4Track.hh" +#include "G4UnitsTable.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring only Surface Current. +// Current version assumes only for G4Sphere shape. +// +// Surface is defined at the inside of sphere. +// Direction -Rmin +Rmax +// 0 IN || OUT ->|<- | +// 1 IN ->| | +// 2 OUT |<- | +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +G4PSSphereSurfaceCurrent::G4PSSphereSurfaceCurrent(G4String name, + G4int direction, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1),fDirection(direction) +{;} + +G4PSSphereSurfaceCurrent::~G4PSSphereSurfaceCurrent() +{;} + +G4bool G4PSSphereSurfaceCurrent::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4StepPoint* preStep = aStep->GetPreStepPoint(); + G4VSolid * solid = + preStep->GetPhysicalVolume()->GetLogicalVolume()->GetSolid(); + if( solid->GetEntityType() != "G4Sphere" ){ + G4Exception("G4PSSphereSurfaceCurrentScorer. - Solid type is not supported."); + return FALSE; + } + G4Sphere* sphereSolid = (G4Sphere*)(solid); + + G4int dirFlag =IsSelectedSurface(aStep,sphereSolid); + if ( dirFlag > 0 ) { + + G4double radi = sphereSolid->GetInsideRadius(); + G4double dph = sphereSolid->GetDeltaPhiAngle()/radian; + G4double stth = sphereSolid->GetStartThetaAngle()/radian; + G4double enth = stth+sphereSolid->GetDeltaThetaAngle()/radian; + G4double square = radi*radi*dph*( -std::cos(enth) + std::cos(stth) ); + + G4double current = preStep->GetWeight(); // Current (Particle Weight) + current = current/square; // Current with angle. + if ( fDirection == fCurrent_InOut || fDirection == dirFlag ){ + G4int index = GetIndex(aStep); + EvtMap->add(index,current); + } + } + + return TRUE; +} + +G4int G4PSSphereSurfaceCurrent::IsSelectedSurface(G4Step* aStep, G4Sphere* sphereSolid){ + + G4TouchableHandle theTouchable = + aStep->GetPreStepPoint()->GetTouchableHandle(); + + if (aStep->GetPreStepPoint()->GetStepStatus() == fGeomBoundary ){ + // Entering Geometry + G4ThreeVector stppos1= aStep->GetPreStepPoint()->GetPosition(); + G4ThreeVector localpos1 = + theTouchable->GetHistory()->GetTopTransform().TransformPoint(stppos1); + G4double localR2 = localpos1.x()*localpos1.x() + +localpos1.y()*localpos1.y() + +localpos1.z()*localpos1.z(); + G4double InsideRadius2 = + sphereSolid->GetInsideRadius()*sphereSolid->GetInsideRadius(); + if(fabs( localR2 - InsideRadius2 ) < kCarTolerance ){ + return fCurrent_In; + } + } + + if (aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary ){ + // Exiting Geometry + G4ThreeVector stppos2= aStep->GetPostStepPoint()->GetPosition(); + G4ThreeVector localpos2 = + theTouchable->GetHistory()->GetTopTransform().TransformPoint(stppos2); + G4double localR2 = localpos2.x()*localpos2.x() + +localpos2.y()*localpos2.y() + +localpos2.z()*localpos2.z(); + G4double InsideRadius2 = + sphereSolid->GetInsideRadius()*sphereSolid->GetInsideRadius(); + if(fabs( localR2 - InsideRadius2 ) < kCarTolerance ){ + return fCurrent_Out; + } + } + + return -1; +} + +void G4PSSphereSurfaceCurrent::Initialize(G4HCofThisEvent* HCE) +{ + EvtMap = new G4THitsMap(detector->GetName(), GetName()); + if ( HCID < 0 ) HCID = GetCollectionID(0); + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSSphereSurfaceCurrent::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSSphereSurfaceCurrent::clear(){ + EvtMap->clear(); +} + +void G4PSSphereSurfaceCurrent::DrawAll() +{;} + +void G4PSSphereSurfaceCurrent::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() <entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " current : " << *(itr->second) + << G4endl; + } +} + diff --git a/source/digits_hits/utils/src/G4PSTrackLength.cc b/source/digits_hits/utils/src/G4PSTrackLength.cc new file mode 100644 index 0000000000..a9da2f1b45 --- /dev/null +++ b/source/digits_hits/utils/src/G4PSTrackLength.cc @@ -0,0 +1,85 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PSTrackLength.cc,v 1.4 2005/12/13 08:43:54 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4PSTrackLength +#include "G4PSTrackLength.hh" +#include "G4UnitsTable.hh" +//////////////////////////////////////////////////////////////////////////////// +// (Description) +// This is a primitive scorer class for scoring sum of track length. +// +// +// Created: 2005-11-14 Tsukasa ASO, Akinori Kimura. +// +/////////////////////////////////////////////////////////////////////////////// + +G4PSTrackLength::G4PSTrackLength(G4String name, G4int depth) + :G4VPrimitiveScorer(name,depth),HCID(-1),weighted(false) +{;} + +G4PSTrackLength::~G4PSTrackLength() +{;} + +G4bool G4PSTrackLength::ProcessHits(G4Step* aStep,G4TouchableHistory*) +{ + G4double trklength = aStep->GetStepLength(); + if ( trklength == 0. ) return FALSE; + if(weighted) trklength *= aStep->GetPreStepPoint()->GetWeight(); + G4int index = GetIndex(aStep); + EvtMap->add(index,trklength); + return TRUE; +} + +void G4PSTrackLength::Initialize(G4HCofThisEvent* HCE) +{ + EvtMap = new G4THitsMap(detector->GetName(),GetName()); + if(HCID < 0) {HCID = GetCollectionID(0);} + HCE->AddHitsCollection(HCID, (G4VHitsCollection*)EvtMap); +} + +void G4PSTrackLength::EndOfEvent(G4HCofThisEvent*) +{;} + +void G4PSTrackLength::clear(){ + EvtMap->clear(); +} + +void G4PSTrackLength::DrawAll() +{;} + +void G4PSTrackLength::PrintAll() +{ + G4cout << " MultiFunctionalDet " << detector->GetName() << G4endl; + G4cout << " PrimitiveScorer " << GetName() << G4endl; + G4cout << " Number of entries " << EvtMap->entries() << G4endl; + std::map::iterator itr = EvtMap->GetMap()->begin(); + for(; itr != EvtMap->GetMap()->end(); itr++) { + G4cout << " copy no.: " << itr->first + << " track length: " << G4BestUnit(*(itr->second),"Length") + << G4endl; + } +} + diff --git a/physics_lists/hadronic/Packaging/src/EM_GNPhysics.cc b/source/digits_hits/utils/src/G4SDChargedFilter.cc similarity index 65% rename from physics_lists/hadronic/Packaging/src/EM_GNPhysics.cc rename to source/digits_hits/utils/src/G4SDChargedFilter.cc index b5aa322138..9fb2828224 100644 --- a/physics_lists/hadronic/Packaging/src/EM_GNPhysics.cc +++ b/source/digits_hits/utils/src/G4SDChargedFilter.cc @@ -20,44 +20,37 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "EM_GNPhysics.hh" -#include "globals.hh" -#include "G4ios.hh" -#include "G4ProcessManager.hh" -#include "G4ParticleDefinition.hh" +// +// $Id: G4SDChargedFilter.cc,v 1.1 2005/11/16 23:04:04 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4VSensitiveDetector +#include "G4SDChargedFilter.hh" +#include "G4Step.hh" +#include "G4TouchableHistory.hh" #include "G4ParticleTable.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4NeutrinoE.hh" -#include "G4AntiNeutrinoE.hh" +#include "G4ParticleDefinition.hh" +//////////////////////////////////////////////////////////////////////////////// +// class description: +// +// This is the class of a filter to be associated with a +// sensitive detector. +// +// Created: 2005-11-14 Tsukasa ASO. +// +/////////////////////////////////////////////////////////////////////////////// -EM_GNPhysics:: -EM_GNPhysics(const G4String& name) : G4VPhysicsConstructor(name) {} +G4SDChargedFilter::G4SDChargedFilter(G4String name) + :G4VSDFilter(name) +{;} -EM_GNPhysics:: -~EM_GNPhysics() {} +G4SDChargedFilter::~G4SDChargedFilter() +{;} -void EM_GNPhysics:: -ConstructParticle() +G4bool G4SDChargedFilter::Accept(const G4Step* aStep) const { - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + if (aStep->GetPreStepPoint()->GetCharge() != 0. ) return TRUE; + return FALSE; } -void EM_GNPhysics:: -ConstructProcess() -{ - theEMPhysics.Build(); - #ifndef NO_ELECTRO_AND_GAMMA_NUCLEAR - theGNPhysics.Build(); - #endif -} - - - -// 2002 by J.P. Wellisch diff --git a/source/parameterisations/trd_clusters/include/G4IrregularXrayTRmodel.hh b/source/digits_hits/utils/src/G4SDKineticEnergyFilter.cc similarity index 54% rename from source/parameterisations/trd_clusters/include/G4IrregularXrayTRmodel.hh rename to source/digits_hits/utils/src/G4SDKineticEnergyFilter.cc index dc22206651..db360dc9fb 100644 --- a/source/parameterisations/trd_clusters/include/G4IrregularXrayTRmodel.hh +++ b/source/digits_hits/utils/src/G4SDKineticEnergyFilter.cc @@ -21,43 +21,51 @@ // ******************************************************************** // // -// $Id: G4IrregularXrayTRmodel.hh,v 1.1 2004/11/09 09:20:32 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SDKineticEnergyFilter.cc,v 1.4 2005/11/22 21:41:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// -/////////////////////////////////////////////////////////////////////////// -// -// Very rough model describing a radiator of X-ray transition radiation. -// Thicknesses of plates and gas gaps are exponentially distributed. -// We suppose that: -// formation zone << mean thickness << absorption length -// for each material and in the range 1-100 keV. This allows us to simplify -// essentially interference effects in radiator stack (GetStackFactor method). -// The price is decreasing of X-ray TR photon yield. -// -// History: -// 23.01.00 V. Grichine first version based on ExN05PiModel class -// 08.02.00 V. Grichine, DoIt was placed in base class +// G4VSensitiveDetector +#include "G4SDKineticEnergyFilter.hh" +#include "G4Step.hh" +#include "G4UnitsTable.hh" +//////////////////////////////////////////////////////////////////////////////// +// class description: // +// This is the class of a filter to be associated with a +// sensitive detector. +// +// +// Created: 2005-11-14 Tsukasa ASO. +// +/////////////////////////////////////////////////////////////////////////////// +G4SDKineticEnergyFilter::G4SDKineticEnergyFilter(G4String name, + G4double elow, + G4double ehigh) + :G4VSDFilter(name),fLowEnergy(elow),fHighEnergy(ehigh) +{;} -#ifndef G4IrregularXrayTRmodel_h -#define G4IrregularXrayTRmodel_h 1 +G4SDKineticEnergyFilter::~G4SDKineticEnergyFilter() +{;} -#include "G4VXrayTRadModel.hh" -#include "G4VFastSimulationModel.hh" - -class G4IrregularXrayTRmodel : public G4VXrayTRadModel +G4bool G4SDKineticEnergyFilter::Accept(const G4Step* aStep) const { -public: + G4double kinetic = aStep->GetPreStepPoint()->GetKineticEnergy(); + if ( kinetic < fLowEnergy ) return FALSE; + if ( kinetic >= fHighEnergy ) return FALSE; + return TRUE; +} - G4IrregularXrayTRmodel (G4LogicalVolume *anEnvelope,G4double,G4double); - ~G4IrregularXrayTRmodel (); +void G4SDKineticEnergyFilter::SetKineticEnergy(G4double elow, G4double ehigh){ + fLowEnergy = elow; + fHighEnergy = ehigh; +} - // Pure virtual function from base class +void G4SDKineticEnergyFilter::show() { + G4cout << " G4SDKineticEnergyFilter:: " << GetName() + << " LowE " << G4BestUnit(fLowEnergy,"Energy") + << " HighE " << G4BestUnit(fHighEnergy,"Energy") + <GetPreStepPoint()->GetCharge()== 0. ) return TRUE; + return FALSE; +} - G4PAIclusterModel (G4LogicalVolume* anEnvelope); - - ~G4PAIclusterModel (); - - // Pure virtual functions from base class - - G4bool IsApplicable(const G4ParticleDefinition&); - - G4bool ModelTrigger(const G4FastTrack &); - - void DoIt(const G4FastTrack&, G4FastStep&) ; - - -private: - - G4PAIModel* fPAIonisation ; -}; - -#endif diff --git a/source/digits_hits/utils/src/G4SDParticleFilter.cc b/source/digits_hits/utils/src/G4SDParticleFilter.cc new file mode 100644 index 0000000000..ffd9e696b1 --- /dev/null +++ b/source/digits_hits/utils/src/G4SDParticleFilter.cc @@ -0,0 +1,136 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4SDParticleFilter.cc,v 1.2 2005/11/22 21:41:55 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// G4VSensitiveDetector +#include "G4SDParticleFilter.hh" +#include "G4Step.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" + +//////////////////////////////////////////////////////////////////////////////// +// class description: +// +// This is the class of a filter to be associated with a +// sensitive detector. +// This class filters steps by partilce definition. +// +// Created: 2005-11-14 Tsukasa ASO. +// +/////////////////////////////////////////////////////////////////////////////// + +G4SDParticleFilter::G4SDParticleFilter(G4String name) + :G4VSDFilter(name) +{ + thePdef.clear(); +} + +G4SDParticleFilter::G4SDParticleFilter(G4String name, + const G4String& particleName) + :G4VSDFilter(name) +{ + thePdef.clear(); + G4ParticleDefinition* pd = G4ParticleTable::GetParticleTable()->FindParticle(particleName); + if(!pd) + { + G4String msg = "Particle <"; + msg += particleName; + msg += "> not found."; + G4Exception("G4SDParticleFilter::G4SDParticleFilter()", + "DetUtil0000",FatalException,msg); + } + thePdef.push_back(pd); +} + +G4SDParticleFilter::G4SDParticleFilter(G4String name, + const std::vector& particleNames) + :G4VSDFilter(name) +{ + thePdef.clear(); + for ( size_t i = 0; i < particleNames.size(); i++){ + G4ParticleDefinition* pd = G4ParticleTable::GetParticleTable()->FindParticle(particleNames[i]); + if(!pd) + { + G4String msg = "Particle <"; + msg += particleNames[i]; + msg += "> not found."; + G4Exception("G4SDParticleFilter::G4SDParticleFilter()", + "DetUtil0000",FatalException,msg); + } + thePdef.push_back(pd); + } +} + +G4SDParticleFilter::G4SDParticleFilter(G4String name, + const std::vector& particleDef) + :G4VSDFilter(name), thePdef(particleDef) +{ + for ( size_t i = 0; i < particleDef.size(); i++){ + if(!particleDef[i]) G4Exception("G4SDParticleFilter::G4SDParticleFilter()","DetUtil0001",FatalException, + "NULL pointer is found in the given particleDef vector."); + } +} + +G4SDParticleFilter::~G4SDParticleFilter() +{ + thePdef.clear(); +} + +G4bool G4SDParticleFilter::Accept(const G4Step* aStep) const +{ + for ( size_t i = 0; i < thePdef.size(); i++){ + if ( thePdef[i] == aStep->GetTrack()->GetDefinition() ) return TRUE; + } + return FALSE; +} + +void G4SDParticleFilter::add(const G4String& particleName) +{ + G4ParticleDefinition* pd = + G4ParticleTable::GetParticleTable()->FindParticle(particleName); + if(!pd) + { + G4String msg = "Particle <"; + msg += particleName; + msg += "> not found."; + G4Exception("G4SDParticleFilter::add()", + "DetUtil0002",FatalException,msg); + } + for ( size_t i = 0; i < thePdef.size(); i++){ + if ( thePdef[i] == pd ) return; + } + thePdef.push_back(pd); +} + +void G4SDParticleFilter::show(){ + G4cout << "----G4SDParticleFileter particle list------"<GetParticleName() << G4endl; + } + G4cout << "-------------------------------------------"<Accept(aStep) ) return FALSE; + if ( ! fKineticFilter->Accept(aStep) ) return FALSE; + return TRUE; +} + +void G4SDParticleWithEnergyFilter::add(const G4String& particleName) +{ + fParticleFilter->add(particleName); +} + +void G4SDParticleWithEnergyFilter::SetKineticEnergy(G4double elow, + G4double ehigh) +{ + fKineticFilter->SetKineticEnergy(elow,ehigh); +} + +void G4SDParticleWithEnergyFilter::show(){ + fParticleFilter->show(); + fKineticFilter->show(); +} diff --git a/source/event/GNUmakefile b/source/event/GNUmakefile index 40ecb95f68..2a398b38f6 100644 --- a/source/event/GNUmakefile +++ b/source/event/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2004/06/11 14:11:15 gcosmo Exp $ +# $Id: GNUmakefile,v 1.8 2005/10/17 21:21:53 tinslay Exp $ # ------------------------------------------------------------ # GNUmakefile for events library. Makoto Asai, 5/9/95. # ------------------------------------------------------------ @@ -41,7 +41,8 @@ CPPFLAGS += \ -I$(G4BASE)/digits_hits/detector/include \ -I$(G4BASE)/digits_hits/hits/include \ -I$(G4BASE)/digits_hits/digits/include \ - -I$(G4BASE)/intercoms/include + -I$(G4BASE)/intercoms/include \ + -I$(G4BASE)/graphics_reps/include ifdef G4_STORE_TRAJECTORY CPPFLAGS += -DG4_STORE_TRAJECTORY diff --git a/source/event/History b/source/event/History index e7e4dc28b7..d198f82362 100644 --- a/source/event/History +++ b/source/event/History @@ -1,4 +1,4 @@ -$Id: History,v 1.90 2005/06/13 14:05:05 gcosmo Exp $ +$Id: History,v 1.97 2005/11/30 15:23:49 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,34 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 30, 2005, G.Cosmo (event-V07-01-05) +- Trivial fixes to G4SPSAngDistribution and G4SPSPosDistribution for + support of CLHEP-2.0.X series. + +November 22, 2005, M.Asai (event-V07-01-04) +- Put G4Exception to the constructors of G4UserEventAction and + G4UserStackingAction to protect against their instantiation before + G4VUserPhysicsList is instantiated and set to G4RunManager. +- Put protection against null pointer to + G4ParticleGun::SetParticleDefinition(). + +November 21, 2005, M.Asai (event-V07-01-03) +- Fix a bug in the previous tag. + +November 18, 2005, M.Asai (event-V07-01-02) +- Migration to sstream. +- Move G4HepMC classes to examples/extended/eventgenerator/HepMC. + +October 20, 2005, Joseph Perl (event-V07-01-01) +- Tag to co-work with vis-V07-01-05. + +Oct 17, 2005 Jane Tinslay +- Modify GNUmakefile to follow intercoms->graphics_reps migration for + G4VGraphicsScene and G4VVisManager + +Sep 05, 2005, F.Lei (event-V07-01-00) +- Corrected typo in printout in G4GeneralParticleMessenger.cc (bug #786) + Jun 13, 2005, G.Cosmo (event-V07-00-05) - Corrected typo in printout in G4GeneralParticleMessenger.cc. diff --git a/source/event/include/G4CellScorer.hh b/source/event/include/G4CellScorer.hh index ccf3ce84e3..9a8a0a3fda 100644 --- a/source/event/include/G4CellScorer.hh +++ b/source/event/include/G4CellScorer.hh @@ -22,7 +22,7 @@ // // // $Id: G4CellScorer.hh,v 1.1 2002/10/28 10:06:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CellScorer diff --git a/source/event/include/G4CellScorerStore.hh b/source/event/include/G4CellScorerStore.hh index b794987375..a2e007cdeb 100644 --- a/source/event/include/G4CellScorerStore.hh +++ b/source/event/include/G4CellScorerStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4CellScorerStore.hh,v 1.2 2003/06/16 16:50:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CellScorerStore diff --git a/source/event/include/G4ClassificationOfNewTrack.hh b/source/event/include/G4ClassificationOfNewTrack.hh index 0f4f4c0451..be7f58f75f 100644 --- a/source/event/include/G4ClassificationOfNewTrack.hh +++ b/source/event/include/G4ClassificationOfNewTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4ClassificationOfNewTrack.hh,v 1.5 2001/07/19 00:14:15 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/event/include/G4EvManMessenger.hh b/source/event/include/G4EvManMessenger.hh index 1680e74022..d7f3b0633d 100644 --- a/source/event/include/G4EvManMessenger.hh +++ b/source/event/include/G4EvManMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4EvManMessenger.hh,v 1.4 2001/07/11 09:58:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4EvManMessenger_h diff --git a/source/event/include/G4Event.hh b/source/event/include/G4Event.hh index 6fb2cacdba..dcce8a697c 100644 --- a/source/event/include/G4Event.hh +++ b/source/event/include/G4Event.hh @@ -22,7 +22,7 @@ // // // $Id: G4Event.hh,v 1.10 2004/06/11 14:11:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4Event_h diff --git a/source/event/include/G4EventManager.hh b/source/event/include/G4EventManager.hh index d18074762b..7bc44c48d9 100644 --- a/source/event/include/G4EventManager.hh +++ b/source/event/include/G4EventManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EventManager.hh,v 1.15 2004/08/10 23:59:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EventManager.hh,v 1.16 2005/11/21 23:45:48 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -48,8 +48,7 @@ class G4SDManager; #include "globals.hh" class G4VUserEventInformation; -#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP - // will support the HepMC module +#ifdef CLHEP_HepMC // Temporarly disabled #include "CLHEP/HepMC/GenEvent.h" #endif @@ -80,7 +79,7 @@ class G4EventManager void ProcessOneEvent(G4Event* anEvent); // This method is the main entry to this class for simulating an event. -#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP +#ifdef CLHEP_HepMC // Temporarly disabled on Windows, until CLHEP // will support the HepMC module void ProcessOneEvent(const HepMC::GenEvent* hepmcevt,G4Event* anEvent=0); // This is an alternative entry for large HEP experiments which use diff --git a/source/event/include/G4HEPEvtInterface.hh b/source/event/include/G4HEPEvtInterface.hh index 02cd04a954..009622e9b5 100644 --- a/source/event/include/G4HEPEvtInterface.hh +++ b/source/event/include/G4HEPEvtInterface.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtInterface.hh,v 1.7 2003/06/16 16:50:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4HEPEvtInterface_h diff --git a/source/event/include/G4HEPEvtParticle.hh b/source/event/include/G4HEPEvtParticle.hh index 2d319bfd79..4d9575320f 100644 --- a/source/event/include/G4HEPEvtParticle.hh +++ b/source/event/include/G4HEPEvtParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtParticle.hh,v 1.8 2004/06/11 14:11:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/event/include/G4ParticleGun.hh b/source/event/include/G4ParticleGun.hh index 2341f9c81e..1ddb43d8ea 100644 --- a/source/event/include/G4ParticleGun.hh +++ b/source/event/include/G4ParticleGun.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleGun.hh,v 1.7 2001/11/20 23:21:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4ParticleGun_h diff --git a/source/event/include/G4ParticleGunMessenger.hh b/source/event/include/G4ParticleGunMessenger.hh index 9a3626e9ba..cb5f9726d5 100644 --- a/source/event/include/G4ParticleGunMessenger.hh +++ b/source/event/include/G4ParticleGunMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleGunMessenger.hh,v 1.7 2002/02/26 16:34:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/event/include/G4PrimaryTransformer.hh b/source/event/include/G4PrimaryTransformer.hh index d6525f5aff..c3e75be294 100644 --- a/source/event/include/G4PrimaryTransformer.hh +++ b/source/event/include/G4PrimaryTransformer.hh @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryTransformer.hh,v 1.10 2005/04/27 01:32:46 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4PromaryTransformer_h diff --git a/source/event/include/G4ScoreTable.hh b/source/event/include/G4ScoreTable.hh index 0d848b6bf4..438eee9ef0 100644 --- a/source/event/include/G4ScoreTable.hh +++ b/source/event/include/G4ScoreTable.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ScoreTable.hh,v 1.2 2003/06/16 16:50:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ScoreTable diff --git a/source/event/include/G4Scorer.hh b/source/event/include/G4Scorer.hh index d889424e59..7fa4053622 100644 --- a/source/event/include/G4Scorer.hh +++ b/source/event/include/G4Scorer.hh @@ -22,7 +22,7 @@ // // // $Id: G4Scorer.hh,v 1.1 2002/10/28 10:06:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Scorer diff --git a/source/event/include/G4StackChecker.hh b/source/event/include/G4StackChecker.hh index 616fbee65b..a06f8d6273 100644 --- a/source/event/include/G4StackChecker.hh +++ b/source/event/include/G4StackChecker.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackChecker.hh,v 1.1 2003/06/12 15:14:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4StackChecker_h diff --git a/source/event/include/G4StackManager.hh b/source/event/include/G4StackManager.hh index 24b1681e66..dd2100fd80 100644 --- a/source/event/include/G4StackManager.hh +++ b/source/event/include/G4StackManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackManager.hh,v 1.11 2003/06/16 16:50:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/event/include/G4StackedTrack.hh b/source/event/include/G4StackedTrack.hh index 9c94c6027c..cd1055a9e5 100644 --- a/source/event/include/G4StackedTrack.hh +++ b/source/event/include/G4StackedTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackedTrack.hh,v 1.9 2004/06/11 14:11:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/include/G4StackingMessenger.hh b/source/event/include/G4StackingMessenger.hh index 9afc5db016..b051c000eb 100644 --- a/source/event/include/G4StackingMessenger.hh +++ b/source/event/include/G4StackingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackingMessenger.hh,v 1.4 2001/07/11 09:58:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4StackingMessenger_h diff --git a/source/event/include/G4TrackStack.hh b/source/event/include/G4TrackStack.hh index b56c85b94f..7efeed1c1c 100644 --- a/source/event/include/G4TrackStack.hh +++ b/source/event/include/G4TrackStack.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackStack.hh,v 1.5 2001/07/13 15:01:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Last Modification : 09/Dec/96 M.Asai diff --git a/source/event/include/G4TrajectoryContainer.hh b/source/event/include/G4TrajectoryContainer.hh index 159d038c16..79dbe0bf04 100644 --- a/source/event/include/G4TrajectoryContainer.hh +++ b/source/event/include/G4TrajectoryContainer.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryContainer.hh,v 1.14 2004/06/11 14:11:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4TrajectoryContainer diff --git a/source/event/include/G4UserEventAction.hh b/source/event/include/G4UserEventAction.hh index d6eabc2b64..75f5c3ef39 100644 --- a/source/event/include/G4UserEventAction.hh +++ b/source/event/include/G4UserEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserEventAction.hh,v 1.5 2001/07/11 09:58:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/event/include/G4UserStackingAction.hh b/source/event/include/G4UserStackingAction.hh index c3c20ad48b..be873fe1f1 100644 --- a/source/event/include/G4UserStackingAction.hh +++ b/source/event/include/G4UserStackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserStackingAction.hh,v 1.5 2001/07/11 09:58:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4UserStackingAction_h diff --git a/source/event/include/G4VPrimaryGenerator.hh b/source/event/include/G4VPrimaryGenerator.hh index 34738e8559..75d71e672a 100644 --- a/source/event/include/G4VPrimaryGenerator.hh +++ b/source/event/include/G4VPrimaryGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPrimaryGenerator.hh,v 1.7 2003/08/02 00:18:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VPrimaryGenerator_h diff --git a/source/event/include/G4VUserEventInformation.hh b/source/event/include/G4VUserEventInformation.hh index c2dc156112..55a1e955f5 100644 --- a/source/event/include/G4VUserEventInformation.hh +++ b/source/event/include/G4VUserEventInformation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserEventInformation.hh,v 1.1 2003/09/09 20:09:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/event/include/eventgendefs.hh b/source/event/include/eventgendefs.hh index b7b44fdd46..46caff2039 100644 --- a/source/event/include/eventgendefs.hh +++ b/source/event/include/eventgendefs.hh @@ -22,7 +22,7 @@ // // // $Id: eventgendefs.hh,v 1.3 2001/07/11 09:58:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef EventGenerator_DEBUG #define EventGenerator_DEBUG diff --git a/source/event/include/evmandefs.hh b/source/event/include/evmandefs.hh index 8ec8a1bddb..a78cf66f5b 100644 --- a/source/event/include/evmandefs.hh +++ b/source/event/include/evmandefs.hh @@ -22,7 +22,7 @@ // // // $Id: evmandefs.hh,v 1.3 2001/07/11 09:58:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ///#define G4EVENTMANAGER_DEBUG 1 diff --git a/source/event/include/trajectoryControl.hh b/source/event/include/trajectoryControl.hh index 210b131e06..8baf7463b5 100644 --- a/source/event/include/trajectoryControl.hh +++ b/source/event/include/trajectoryControl.hh @@ -22,7 +22,7 @@ // // // $Id: trajectoryControl.hh,v 1.3 2001/07/11 09:58:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ////#define G4_STORE_TRAJECTORY 1 diff --git a/source/event/src/G4CellScorer.cc b/source/event/src/G4CellScorer.cc index 37199e38ca..4b1614d3fa 100644 --- a/source/event/src/G4CellScorer.cc +++ b/source/event/src/G4CellScorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellScorer.cc,v 1.3 2003/04/29 07:05:38 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4CellScorerStore.cc b/source/event/src/G4CellScorerStore.cc index 4b3f438bdb..7f45bf4876 100644 --- a/source/event/src/G4CellScorerStore.cc +++ b/source/event/src/G4CellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellScorerStore.cc,v 1.3 2004/07/01 10:05:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4EvManMessenger.cc b/source/event/src/G4EvManMessenger.cc index be038dc64d..b539bae729 100644 --- a/source/event/src/G4EvManMessenger.cc +++ b/source/event/src/G4EvManMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvManMessenger.cc,v 1.4 2002/12/04 18:43:15 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/event/src/G4Event.cc b/source/event/src/G4Event.cc index 7b86cf56a0..401849610c 100644 --- a/source/event/src/G4Event.cc +++ b/source/event/src/G4Event.cc @@ -22,7 +22,7 @@ // // // $Id: G4Event.cc,v 1.8 2004/06/11 14:11:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4Event diff --git a/source/event/src/G4EventManager.cc b/source/event/src/G4EventManager.cc index 07167114c3..63b95d6798 100644 --- a/source/event/src/G4EventManager.cc +++ b/source/event/src/G4EventManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EventManager.cc,v 1.21 2004/08/10 23:59:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EventManager.cc,v 1.22 2005/11/21 23:45:48 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // @@ -324,8 +324,7 @@ void G4EventManager::ProcessOneEvent(G4Event* anEvent) DoProcessing(anEvent); } -#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP - // will support the HepMC module +#ifdef CLHEP_HepMC // Temporarly disabled #include "G4HepMCInterface.hh" void G4EventManager::ProcessOneEvent(const HepMC::GenEvent* hepmcevt,G4Event* anEvent) { diff --git a/source/event/src/G4GeneralParticleSourceMessenger.cc b/source/event/src/G4GeneralParticleSourceMessenger.cc index 913733f4e4..0226f06f0e 100644 --- a/source/event/src/G4GeneralParticleSourceMessenger.cc +++ b/source/event/src/G4GeneralParticleSourceMessenger.cc @@ -58,12 +58,6 @@ #include "G4UIcmdWithABool.hh" #include "G4ios.hh" -//#include -#include - -#include -#include - #include "G4Tokenizer.hh" #include "G4GeneralParticleSourceMessenger.hh" #include "G4SingleParticleSource.hh" @@ -166,7 +160,7 @@ G4GeneralParticleSourceMessenger::G4GeneralParticleSourceMessenger ionCmd = new G4UIcommand("/gps/ion",this); ionCmd->SetGuidance("Set properties of ion to be generated."); - ionCmd->SetGuidance("[usage] /gun/ion Z A Q E"); + ionCmd->SetGuidance("[usage] /gps/ion Z A Q E"); ionCmd->SetGuidance(" Z:(int) AtomicNumber"); ionCmd->SetGuidance(" A:(int) AtomicMass"); ionCmd->SetGuidance(" Q:(int) Charge of Ion (in unit of e)"); diff --git a/source/event/src/G4HEPEvtInterface.cc b/source/event/src/G4HEPEvtInterface.cc index 6cb1251053..2804c50dd5 100644 --- a/source/event/src/G4HEPEvtInterface.cc +++ b/source/event/src/G4HEPEvtInterface.cc @@ -21,14 +21,13 @@ // ******************************************************************** // // -// $Id: G4HEPEvtInterface.cc,v 1.9 2003/06/16 16:50:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4HEPEvtInterface.cc,v 1.10 2005/11/18 21:46:24 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- #include "G4Types.hh" -#include #include "G4ios.hh" #include "G4HEPEvtInterface.hh" diff --git a/source/event/src/G4HEPEvtParticle.cc b/source/event/src/G4HEPEvtParticle.cc index 06d220d52e..10a188b9dc 100644 --- a/source/event/src/G4HEPEvtParticle.cc +++ b/source/event/src/G4HEPEvtParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtParticle.cc,v 1.7 2004/06/11 14:11:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/event/src/G4ParticleGun.cc b/source/event/src/G4ParticleGun.cc index d1b436efaa..f9e487592b 100644 --- a/source/event/src/G4ParticleGun.cc +++ b/source/event/src/G4ParticleGun.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleGun.cc,v 1.9 2005/04/27 01:32:46 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParticleGun.cc,v 1.10 2005/11/22 21:06:29 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4ParticleGun @@ -73,6 +73,11 @@ G4ParticleGun::~G4ParticleGun() void G4ParticleGun::SetParticleDefinition (G4ParticleDefinition * aParticleDefinition) { + if(!aParticleDefinition) + { + G4Exception("G4ParticleGun::SetParticleDefinition()","Event00003",FatalException, + "Null pointer is given."); + } if(aParticleDefinition->IsShortLived()) { if(!(aParticleDefinition->GetDecayTable())) diff --git a/source/event/src/G4ParticleGunMessenger.cc b/source/event/src/G4ParticleGunMessenger.cc index b4c1b15b20..7a57709d3c 100644 --- a/source/event/src/G4ParticleGunMessenger.cc +++ b/source/event/src/G4ParticleGunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleGunMessenger.cc,v 1.12 2005/04/27 01:32:46 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParticleGunMessenger.cc,v 1.13 2005/11/18 21:46:24 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4ParticleGunMessenger.hh" @@ -41,9 +41,6 @@ #include "G4ios.hh" #include "G4Tokenizer.hh" -#include -#include - G4ParticleGunMessenger::G4ParticleGunMessenger(G4ParticleGun * fPtclGun) :fParticleGun(fPtclGun),fShootIon(false) { diff --git a/source/event/src/G4PrimaryTransformer.cc b/source/event/src/G4PrimaryTransformer.cc index 15402f484f..292ed024ea 100644 --- a/source/event/src/G4PrimaryTransformer.cc +++ b/source/event/src/G4PrimaryTransformer.cc @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryTransformer.cc,v 1.23 2005/05/30 07:05:47 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4PrimaryTransformer.hh" diff --git a/source/event/src/G4SPSAngDistribution.cc b/source/event/src/G4SPSAngDistribution.cc index 94fff2a40b..58da9fe338 100644 --- a/source/event/src/G4SPSAngDistribution.cc +++ b/source/event/src/G4SPSAngDistribution.cc @@ -43,8 +43,6 @@ /////////////////////////////////////////////////////////////////////////////// // #include "Randomize.hh" -//#include - #include "G4SPSAngDistribution.hh" G4SPSAngDistribution::G4SPSAngDistribution() @@ -54,9 +52,9 @@ G4SPSAngDistribution::G4SPSAngDistribution() particle_momentum_direction = G4ParticleMomentum(0,0,-1); AngDistType = "planar"; - AngRef1 = HepXHat; - AngRef2 = HepYHat; - AngRef3 = HepZHat; + AngRef1 = CLHEP::HepXHat; + AngRef2 = CLHEP::HepYHat; + AngRef3 = CLHEP::HepZHat; MinTheta = 0.; MaxTheta = pi; MinPhi = 0.; diff --git a/source/event/src/G4SPSPosDistribution.cc b/source/event/src/G4SPSPosDistribution.cc index becd9f1562..84d4492e76 100644 --- a/source/event/src/G4SPSPosDistribution.cc +++ b/source/event/src/G4SPSPosDistribution.cc @@ -42,7 +42,6 @@ /////////////////////////////////////////////////////////////////////////////// // #include "Randomize.hh" -//#include #include "G4TransportationManager.hh" #include "G4VPhysicalVolume.hh" #include "G4PhysicalVolumeStore.hh" @@ -69,14 +68,14 @@ G4SPSPosDistribution::G4SPSPosDistribution() ParTheta = 0.; ParPhi = 0.; CentreCoords = G4ThreeVector(0., 0., 0.); - Rotx = HepXHat; - Roty = HepYHat; - Rotz = HepZHat; + Rotx = CLHEP::HepXHat; + Roty = CLHEP::HepYHat; + Rotz = CLHEP::HepZHat; Confine = false; //If true confines source distribution to VolName VolName = "NULL"; - SideRefVec1 = HepXHat; // x-axis - SideRefVec2 = HepYHat; // y-axis - SideRefVec3 = HepZHat; // z-axis + SideRefVec1 = CLHEP::HepXHat; // x-axis + SideRefVec2 = CLHEP::HepYHat; // y-axis + SideRefVec3 = CLHEP::HepZHat; // z-axis verbosityLevel = 0 ; gNavigator = G4TransportationManager::GetTransportationManager() ->GetNavigatorForTracking(); diff --git a/source/event/src/G4ScoreTable.cc b/source/event/src/G4ScoreTable.cc index b946390bb1..d7ee2b40e5 100644 --- a/source/event/src/G4ScoreTable.cc +++ b/source/event/src/G4ScoreTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ScoreTable.cc,v 1.3 2003/06/16 16:50:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ScoreTable.cc,v 1.5 2005/12/09 17:23:19 ahoward Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -32,7 +32,7 @@ // ---------------------------------------------------------------------- #include "G4ScoreTable.hh" -#include +#include #include "G4VPhysicalVolume.hh" #include "G4VIStore.hh" @@ -86,12 +86,10 @@ void G4ScoreTable::PrintHeader(std::ostream *out) G4String G4ScoreTable::CreateName(const G4GeometryCell &gCell) { - char st[200]; - std::ostrstream os(st,200); + std::ostringstream os; os << gCell.GetPhysicalVolume().GetName() - << "_rep:" << gCell.GetReplicaNumber() - << '\0'; - G4String name(st); + << "_rep:" << gCell.GetReplicaNumber(); + G4String name = os.str(); return name; } @@ -125,7 +123,6 @@ void G4ScoreTable::PrintTable(const G4MapGeometryCellCellScorer &mcs, G4String name((*it).first); PrintLine(name, (*it).second.GetStandardCellScoreValues(), out); } - *out << '\0'; out->flush(); } diff --git a/source/event/src/G4Scorer.cc b/source/event/src/G4Scorer.cc index 720147916b..cecc227e19 100644 --- a/source/event/src/G4Scorer.cc +++ b/source/event/src/G4Scorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4Scorer.cc,v 1.1 2002/10/28 10:06:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4StackChecker.cc b/source/event/src/G4StackChecker.cc index 29edcdd3c8..171c5aa93b 100644 --- a/source/event/src/G4StackChecker.cc +++ b/source/event/src/G4StackChecker.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackChecker.cc,v 1.1 2003/06/12 15:14:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4StackChecker.hh" diff --git a/source/event/src/G4StackManager.cc b/source/event/src/G4StackManager.cc index 3abe880768..bf9b356231 100644 --- a/source/event/src/G4StackManager.cc +++ b/source/event/src/G4StackManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackManager.cc,v 1.9 2003/08/13 23:44:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Last Modification : 09/Dec/96 M.Asai diff --git a/source/event/src/G4StackedTrack.cc b/source/event/src/G4StackedTrack.cc index 88906e68c0..4441cc12a1 100644 --- a/source/event/src/G4StackedTrack.cc +++ b/source/event/src/G4StackedTrack.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackedTrack.cc,v 1.8 2004/06/11 14:11:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/src/G4StackingMessenger.cc b/source/event/src/G4StackingMessenger.cc index 46f758ec22..eb482b418e 100644 --- a/source/event/src/G4StackingMessenger.cc +++ b/source/event/src/G4StackingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackingMessenger.cc,v 1.4 2002/12/04 18:43:15 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/event/src/G4TrackStack.cc b/source/event/src/G4TrackStack.cc index c7f17b83e6..29aff85557 100644 --- a/source/event/src/G4TrackStack.cc +++ b/source/event/src/G4TrackStack.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrackStack.cc,v 1.5 2002/12/03 17:04:22 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4TrackStack.hh" diff --git a/source/event/src/G4TrajectoryContainer.cc b/source/event/src/G4TrajectoryContainer.cc index 05cb7bed0b..7180284201 100644 --- a/source/event/src/G4TrajectoryContainer.cc +++ b/source/event/src/G4TrajectoryContainer.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryContainer.cc,v 1.4 2004/06/11 14:11:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4TrajectoryContainer.hh" diff --git a/source/event/src/G4UserEventAction.cc b/source/event/src/G4UserEventAction.cc index c9e40f9b83..bef3d891bc 100644 --- a/source/event/src/G4UserEventAction.cc +++ b/source/event/src/G4UserEventAction.cc @@ -21,16 +21,33 @@ // ******************************************************************** // // -// $Id: G4UserEventAction.cc,v 1.5 2003/05/21 20:52:54 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UserEventAction.cc,v 1.6 2005/11/22 21:06:29 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UserEventAction.hh" #include "G4Event.hh" #include "G4EventManager.hh" +#include "G4ParticleTable.hh" +#include "globals.hh" + void G4UserEventAction::BeginOfEventAction(const G4Event*) -{;} +{ + if(!(G4ParticleTable::GetParticleTable()->GetReadiness())) + { + G4String msg; + msg = " You are instantiating G4UserEventAction BEFORE your\n"; + msg += "G4VUserPhysicsList is instantiated and assigned to G4RunManager.\n"; + msg += " Such an instantiation is prohibited by Geant4 version 8.0. To fix this problem,\n"; + msg += "please make sure that your main() instantiates G4VUserPhysicsList AND\n"; + msg += "set it to G4RunManager before instantiating other user action classes\n"; + msg += "such as G4UserEventAction."; + G4Exception("G4UserEventAction::G4UserEventAction()", + "Event0001",FatalException,msg); + } +} + void G4UserEventAction::EndOfEventAction(const G4Event*) {;} diff --git a/source/event/src/G4UserStackingAction.cc b/source/event/src/G4UserStackingAction.cc index 101f20937c..4d714f70ef 100644 --- a/source/event/src/G4UserStackingAction.cc +++ b/source/event/src/G4UserStackingAction.cc @@ -21,16 +21,33 @@ // ******************************************************************** // // -// $Id: G4UserStackingAction.cc,v 1.5 2003/05/21 20:52:54 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UserStackingAction.cc,v 1.6 2005/11/22 21:06:29 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UserStackingAction.hh" #include "G4Track.hh" #include "G4ios.hh" +#include "G4ParticleTable.hh" +#include "globals.hh" + G4UserStackingAction::G4UserStackingAction() -{;} +{ + if(!(G4ParticleTable::GetParticleTable()->GetReadiness())) + { + G4String msg; + msg = " You are instantiating G4UserStackingAction BEFORE your\n"; + msg += "G4VUserPhysicsList is instantiated and assigned to G4RunManager.\n"; + msg += " Such an instantiation is prohibited by Geant4 version 8.0. To fix this problem,\n"; + msg += "please make sure that your main() instantiates G4VUserPhysicsList AND\n"; + msg += "set it to G4RunManager before instantiating other user action classes\n"; + msg += "such as G4UserStackingAction."; + G4Exception("G4UserStackingAction::G4UserStackingAction()", + "Event0002",FatalException,msg); + } +} + G4UserStackingAction::~G4UserStackingAction() {;} diff --git a/source/event/src/G4VPrimaryGenerator.cc b/source/event/src/G4VPrimaryGenerator.cc index 53d648b048..d6f12a5eb2 100644 --- a/source/event/src/G4VPrimaryGenerator.cc +++ b/source/event/src/G4VPrimaryGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPrimaryGenerator.cc,v 1.4 2003/08/02 00:18:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VPrimaryGenerator diff --git a/source/g3tog4/GNUmakefile b/source/g3tog4/GNUmakefile index 986d5eb0f1..7cdab3a4c7 100644 --- a/source/g3tog4/GNUmakefile +++ b/source/g3tog4/GNUmakefile @@ -91,9 +91,6 @@ endif ### versions. You can use cernlib -v option to specify the cernlib version ############################################################################### -cernlibv = pro -cernlibs := $(shell cernlib -v $(cernlibv) geant321 packlib) - ### .PHONY targets are executed regardless of time-stamp of any file of same ### name @@ -141,7 +138,7 @@ $(G4BINDIR)/$(G4TARGET) : $(Fbinobjects) $(G4LIBDIR)/lib$(name)F.a @echo Linking $(G4TARGET) $(RM) $@ echo $(G4TARGET) dependencies: $^ - $(FC) $(Fbinobjects) -o $@ $(G4LIBDIR)/lib$(name)F.a $(cernlibs) + $(FC) $(Fbinobjects) -o $@ $(G4LIBDIR)/lib$(name)F.a $(shell cernlib -v pro geant321 packlib) @echo Finished linking $(G4TARGET) ###-------------------- locally defined pattern rules ------------------------ diff --git a/source/g3tog4/History b/source/g3tog4/History index a405e6ffda..fa86176fcb 100644 --- a/source/g3tog4/History +++ b/source/g3tog4/History @@ -1,8 +1,17 @@ -$Id: History,v 1.59 2005/05/26 14:17:36 gcosmo Exp $ +$Id: History,v 1.61 2005/11/14 18:21:56 gcosmo Exp $ G3toG4 Modification History (reverse chronological order, please !) -------------------------------------------------------------------- +g3tog4-V07-01-01 14-Nov-2005 G.Cosmo +- Implemented migration to from deprecated . +- GNUmakefile: moved call to 'cernlib' to 'bin' target. + +g3tog4-V07-01-00 05-Nov-2005 G.Cosmo +- G3EleTable.cc: corrected inclusion of in implementation. + Temporary solution pending migration to . + Fixes compilation problem on gcc/AMD64. + g3tog4-V07-00-01 26-May-2005 G.Cosmo - Initialise local pointer variable 'mothLV' in method G3toG4BuildTree::G3toG4BuildPVTree(). diff --git a/source/g3tog4/include/G3DetTable.hh b/source/g3tog4/include/G3DetTable.hh index 58cae1e3d5..b6b74bbf4a 100644 --- a/source/g3tog4/include/G3DetTable.hh +++ b/source/g3tog4/include/G3DetTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3DetTable.hh,v 1.8 2003/06/16 16:50:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G3DetTable class diff --git a/source/g3tog4/include/G3DetTableEntry.hh b/source/g3tog4/include/G3DetTableEntry.hh index 7b1ded783c..a65487d382 100644 --- a/source/g3tog4/include/G3DetTableEntry.hh +++ b/source/g3tog4/include/G3DetTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3DetTableEntry.hh,v 1.5 2003/06/16 16:50:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G3DetTableEntry class diff --git a/source/g3tog4/include/G3Division.hh b/source/g3tog4/include/G3Division.hh index 28e6e82424..f0527c693b 100644 --- a/source/g3tog4/include/G3Division.hh +++ b/source/g3tog4/include/G3Division.hh @@ -22,7 +22,7 @@ // // // $Id: G3Division.hh,v 1.7 2001/11/21 14:25:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3EleTable.hh b/source/g3tog4/include/G3EleTable.hh index 0d9814b5ad..1943642b0f 100644 --- a/source/g3tog4/include/G3EleTable.hh +++ b/source/g3tog4/include/G3EleTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3EleTable.hh,v 1.7 2001/07/16 15:38:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3G4Interface.hh b/source/g3tog4/include/G3G4Interface.hh index cf0816d675..df7398e3b7 100644 --- a/source/g3tog4/include/G3G4Interface.hh +++ b/source/g3tog4/include/G3G4Interface.hh @@ -22,7 +22,7 @@ // // // $Id: G3G4Interface.hh,v 1.9 2001/11/08 16:07:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Interfaces for G3 equivalent routines // diff --git a/source/g3tog4/include/G3MatTable.hh b/source/g3tog4/include/G3MatTable.hh index eef35b907a..f1198a967b 100644 --- a/source/g3tog4/include/G3MatTable.hh +++ b/source/g3tog4/include/G3MatTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3MatTable.hh,v 1.12 2003/06/16 16:50:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MatTableEntry.hh b/source/g3tog4/include/G3MatTableEntry.hh index 657521ee4c..723a64cf5b 100644 --- a/source/g3tog4/include/G3MatTableEntry.hh +++ b/source/g3tog4/include/G3MatTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3MatTableEntry.hh,v 1.5 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTable.hh b/source/g3tog4/include/G3MedTable.hh index ab4f1082ed..091b51c106 100644 --- a/source/g3tog4/include/G3MedTable.hh +++ b/source/g3tog4/include/G3MedTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3MedTable.hh,v 1.12 2003/06/16 16:50:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTableEntry.hh b/source/g3tog4/include/G3MedTableEntry.hh index 52b5eb2f6b..a894ce8e4c 100644 --- a/source/g3tog4/include/G3MedTableEntry.hh +++ b/source/g3tog4/include/G3MedTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3MedTableEntry.hh,v 1.5 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3PartTable.hh b/source/g3tog4/include/G3PartTable.hh index 9fbdc67533..72102e2b2f 100644 --- a/source/g3tog4/include/G3PartTable.hh +++ b/source/g3tog4/include/G3PartTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3PartTable.hh,v 1.9 2003/06/16 16:50:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3Pos.hh b/source/g3tog4/include/G3Pos.hh index 5147fd7590..09e27422fa 100644 --- a/source/g3tog4/include/G3Pos.hh +++ b/source/g3tog4/include/G3Pos.hh @@ -22,7 +22,7 @@ // // // $Id: G3Pos.hh,v 1.10 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTable.hh b/source/g3tog4/include/G3RotTable.hh index 8274664c20..a4e491c7f5 100644 --- a/source/g3tog4/include/G3RotTable.hh +++ b/source/g3tog4/include/G3RotTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3RotTable.hh,v 1.14 2003/06/16 16:50:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTableEntry.hh b/source/g3tog4/include/G3RotTableEntry.hh index 3be9bd668f..fce8383af4 100644 --- a/source/g3tog4/include/G3RotTableEntry.hh +++ b/source/g3tog4/include/G3RotTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3RotTableEntry.hh,v 1.5 2001/07/11 09:58:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3SensVolVector.hh b/source/g3tog4/include/G3SensVolVector.hh index 5edbdb3db8..f5482398d0 100644 --- a/source/g3tog4/include/G3SensVolVector.hh +++ b/source/g3tog4/include/G3SensVolVector.hh @@ -22,7 +22,7 @@ // // // $Id: G3SensVolVector.hh,v 1.6 2003/06/16 16:50:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // vector of logical volumes that were defined with // tracking medium with ISVOL=1 diff --git a/source/g3tog4/include/G3VolTable.hh b/source/g3tog4/include/G3VolTable.hh index f31a1d0052..ea40f3d740 100644 --- a/source/g3tog4/include/G3VolTable.hh +++ b/source/g3tog4/include/G3VolTable.hh @@ -22,7 +22,7 @@ // // // $Id: G3VolTable.hh,v 1.17 2003/06/16 16:50:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3VolTableEntry.hh b/source/g3tog4/include/G3VolTableEntry.hh index c56c5b026d..e81a72b270 100644 --- a/source/g3tog4/include/G3VolTableEntry.hh +++ b/source/g3tog4/include/G3VolTableEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G3VolTableEntry.hh,v 1.8 2003/06/16 16:50:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3toG4.hh b/source/g3tog4/include/G3toG4.hh index 1fb93d7ead..509a77cb67 100644 --- a/source/g3tog4/include/G3toG4.hh +++ b/source/g3tog4/include/G3toG4.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4.hh,v 1.8 2004/03/26 14:59:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/include/G3toG4.inc b/source/g3tog4/include/G3toG4.inc index ab0f23c88b..b47af20707 100644 --- a/source/g3tog4/include/G3toG4.inc +++ b/source/g3tog4/include/G3toG4.inc @@ -22,7 +22,7 @@ * * * $Id: G3toG4.inc,v 1.3 2001/07/11 09:58:58 gunter Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * integer maxlines parameter (maxlines = 750) ! max no. of cmd lines per C++ source file diff --git a/source/g3tog4/include/G3toG4BuildTree.hh b/source/g3tog4/include/G3toG4BuildTree.hh index 71356793b2..36d3a1a1cc 100644 --- a/source/g3tog4/include/G3toG4BuildTree.hh +++ b/source/g3tog4/include/G3toG4BuildTree.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4BuildTree.hh,v 1.7 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MANY.hh b/source/g3tog4/include/G3toG4MANY.hh index 96cb233efd..feedd3f2dc 100644 --- a/source/g3tog4/include/G3toG4MANY.hh +++ b/source/g3tog4/include/G3toG4MANY.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4MANY.hh,v 1.2 2003/06/16 16:50:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MakeSolid.hh b/source/g3tog4/include/G3toG4MakeSolid.hh index f882fc9c86..546b8b7342 100644 --- a/source/g3tog4/include/G3toG4MakeSolid.hh +++ b/source/g3tog4/include/G3toG4MakeSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4MakeSolid.hh,v 1.6 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4RotationMatrix.hh b/source/g3tog4/include/G3toG4RotationMatrix.hh index a653bc1360..87cb5cc54f 100644 --- a/source/g3tog4/include/G3toG4RotationMatrix.hh +++ b/source/g3tog4/include/G3toG4RotationMatrix.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4RotationMatrix.hh,v 1.5 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ---------------------- // Class description: // diff --git a/source/g3tog4/include/gcbank.inc b/source/g3tog4/include/gcbank.inc index 633ff80508..e06ad1b0ad 100644 --- a/source/g3tog4/include/gcbank.inc +++ b/source/g3tog4/include/gcbank.inc @@ -22,7 +22,7 @@ * * * $Id: gcbank.inc,v 1.3 2001/07/11 09:58:58 gunter Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * INTEGER IQ,LQ,NZEBRA,IXSTOR,IXDIV,IXCONS,LMAIN,LR1,JCG INTEGER KWBANK,KWWORK,IWS diff --git a/source/g3tog4/src/G3DetTable.cc b/source/g3tog4/src/G3DetTable.cc index b30e3789df..54aaa51ed6 100644 --- a/source/g3tog4/src/G3DetTable.cc +++ b/source/g3tog4/src/G3DetTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3DetTable.cc,v 1.11 2003/06/16 16:50:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G3DetTableEntry.cc b/source/g3tog4/src/G3DetTableEntry.cc index 2c321db4e5..399ff5db14 100644 --- a/source/g3tog4/src/G3DetTableEntry.cc +++ b/source/g3tog4/src/G3DetTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3DetTableEntry.cc,v 1.4 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" #include "G3DetTableEntry.hh" diff --git a/source/g3tog4/src/G3Division.cc b/source/g3tog4/src/G3Division.cc index a9ab2b6c46..24f9891774 100644 --- a/source/g3tog4/src/G3Division.cc +++ b/source/g3tog4/src/G3Division.cc @@ -22,7 +22,7 @@ // // // $Id: G3Division.cc,v 1.16 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, V.Berejnoi 13.10.99 diff --git a/source/g3tog4/src/G3EleTable.cc b/source/g3tog4/src/G3EleTable.cc index dfdbdb2202..7b9099207c 100644 --- a/source/g3tog4/src/G3EleTable.cc +++ b/source/g3tog4/src/G3EleTable.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: G3EleTable.cc,v 1.13 2003/06/16 16:50:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G3EleTable.cc,v 1.15 2005/11/14 18:21:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Types.hh" -#include "G4strstreambuf.hh" +#include #include "G4ios.hh" #include "G3EleTable.hh" @@ -63,7 +63,7 @@ G3EleTable::parse(G4double& Z, char* name, char* sym, G4double& A){ G4int rc = 0; if (Z>0 && Z <=_MaxEle){ G4int z = (G4int) Z-1; - std::istrstream in(_EleNames[z]); + std::istringstream in(_EleNames[z]); in >> name >> sym >> A; } else { rc = -1; diff --git a/source/g3tog4/src/G3MatTable.cc b/source/g3tog4/src/G3MatTable.cc index e4591e81ad..5dd3a9ff80 100644 --- a/source/g3tog4/src/G3MatTable.cc +++ b/source/g3tog4/src/G3MatTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3MatTable.cc,v 1.15 2001/07/16 15:38:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MatTableEntry.cc b/source/g3tog4/src/G3MatTableEntry.cc index 408bf713e1..cbfe813e58 100644 --- a/source/g3tog4/src/G3MatTableEntry.cc +++ b/source/g3tog4/src/G3MatTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3MatTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTable.cc b/source/g3tog4/src/G3MedTable.cc index 19f7d298c0..6536821b39 100644 --- a/source/g3tog4/src/G3MedTable.cc +++ b/source/g3tog4/src/G3MedTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3MedTable.cc,v 1.14 2003/01/27 10:45:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTableEntry.cc b/source/g3tog4/src/G3MedTableEntry.cc index 4c263cc734..2c417143a4 100644 --- a/source/g3tog4/src/G3MedTableEntry.cc +++ b/source/g3tog4/src/G3MedTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3MedTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3NegVolPars.cc b/source/g3tog4/src/G3NegVolPars.cc index fc34da0582..9715fc267d 100644 --- a/source/g3tog4/src/G3NegVolPars.cc +++ b/source/g3tog4/src/G3NegVolPars.cc @@ -22,7 +22,7 @@ // // // $Id: G3NegVolPars.cc,v 1.12 2005/06/27 15:28:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3PartTable.cc b/source/g3tog4/src/G3PartTable.cc index cca4ae7378..f2140cc5c2 100644 --- a/source/g3tog4/src/G3PartTable.cc +++ b/source/g3tog4/src/G3PartTable.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: G3PartTable.cc,v 1.12 2003/06/16 16:50:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G3PartTable.cc,v 1.13 2005/11/14 18:21:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Types.hh" -#include +#include #include #include "G3PartTable.hh" @@ -63,10 +63,9 @@ G3PartTable::Put(G4int partid, G4ParticleDefinition *partpt){ void G3PartTable::HashID(G4int partid, G4String& theHashID){ - char s[20]; - std::ostrstream ostr(s, sizeof s); + std::ostringstream ostr; ostr << "Part" << partid << std::ends; - theHashID = s; + theHashID = ostr.str(); } void diff --git a/source/g3tog4/src/G3Pos.cc b/source/g3tog4/src/G3Pos.cc index dc47effd68..03370dac08 100644 --- a/source/g3tog4/src/G3Pos.cc +++ b/source/g3tog4/src/G3Pos.cc @@ -22,7 +22,7 @@ // // // $Id: G3Pos.cc,v 1.8 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3RotTable.cc b/source/g3tog4/src/G3RotTable.cc index c31994ed59..1f757096a5 100644 --- a/source/g3tog4/src/G3RotTable.cc +++ b/source/g3tog4/src/G3RotTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3RotTable.cc,v 1.15 2001/07/16 15:38:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3RotTableEntry.cc b/source/g3tog4/src/G3RotTableEntry.cc index 22b79d80dc..7f12639d4f 100644 --- a/source/g3tog4/src/G3RotTableEntry.cc +++ b/source/g3tog4/src/G3RotTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3RotTableEntry.cc,v 1.3 2001/07/11 09:58:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3VolTable.cc b/source/g3tog4/src/G3VolTable.cc index 32f7667240..d4f0ca3064 100644 --- a/source/g3tog4/src/G3VolTable.cc +++ b/source/g3tog4/src/G3VolTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3VolTable.cc,v 1.21 2003/06/16 16:50:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3VolTableEntry.cc b/source/g3tog4/src/G3VolTableEntry.cc index 21218ad836..c8148191aa 100644 --- a/source/g3tog4/src/G3VolTableEntry.cc +++ b/source/g3tog4/src/G3VolTableEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G3VolTableEntry.cc,v 1.11 2003/06/16 16:50:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3fillParams.cc.archive b/source/g3tog4/src/G3fillParams.cc.archive index b96d3f3b24..c7d57a900e 100644 --- a/source/g3tog4/src/G3fillParams.cc.archive +++ b/source/g3tog4/src/G3fillParams.cc.archive @@ -6,7 +6,7 @@ // and all its terms. // // $Id: G3fillParams.cc.archive,v 1.2 2003/06/16 16:50:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // extracted from clparse.cc by I. Hrivnacova, 30.7.99 diff --git a/source/g3tog4/src/G3toG4BuildTree.cc b/source/g3tog4/src/G3toG4BuildTree.cc index cfeaa9dda1..6c15117505 100644 --- a/source/g3tog4/src/G3toG4BuildTree.cc +++ b/source/g3tog4/src/G3toG4BuildTree.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4BuildTree.cc,v 1.19 2005/05/26 14:18:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I. Hrivnacova, 2.8.99 diff --git a/source/g3tog4/src/G3toG4MANY.cc b/source/g3tog4/src/G3toG4MANY.cc index e617872d3d..abe92dc594 100644 --- a/source/g3tog4/src/G3toG4MANY.cc +++ b/source/g3tog4/src/G3toG4MANY.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4MANY.cc,v 1.1 2001/11/08 16:08:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // By I. Hrivnacova, 22.10.01 diff --git a/source/g3tog4/src/G3toG4MakeSolid.cc b/source/g3tog4/src/G3toG4MakeSolid.cc index e89145459c..75cce9f508 100644 --- a/source/g3tog4/src/G3toG4MakeSolid.cc +++ b/source/g3tog4/src/G3toG4MakeSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4MakeSolid.cc,v 1.9 2001/07/16 15:38:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I.Hrivnacova, V.Berejnoi 27 Sep 99 diff --git a/source/g3tog4/src/G3toG4RotationMatrix.cc b/source/g3tog4/src/G3toG4RotationMatrix.cc index 64437db1d7..92366bf652 100644 --- a/source/g3tog4/src/G3toG4RotationMatrix.cc +++ b/source/g3tog4/src/G3toG4RotationMatrix.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4RotationMatrix.cc,v 1.3 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G3toG4RotationMatrix.hh" diff --git a/source/g3tog4/src/G4BuildGeom.cc b/source/g3tog4/src/G4BuildGeom.cc index 7aa2f7d5c1..6d327b6bfb 100644 --- a/source/g3tog4/src/G4BuildGeom.cc +++ b/source/g3tog4/src/G4BuildGeom.cc @@ -22,7 +22,7 @@ // // // $Id: G4BuildGeom.cc,v 1.16 2003/06/16 16:50:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4ggclos.cc b/source/g3tog4/src/G4ggclos.cc index 92741d9c06..d4c1bec061 100644 --- a/source/g3tog4/src/G4ggclos.cc +++ b/source/g3tog4/src/G4ggclos.cc @@ -22,7 +22,7 @@ // // // $Id: G4ggclos.cc,v 1.7 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsatt.cc b/source/g3tog4/src/G4gsatt.cc index 8e9c36e878..4ea30f5ee5 100644 --- a/source/g3tog4/src/G4gsatt.cc +++ b/source/g3tog4/src/G4gsatt.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsatt.cc,v 1.12 2003/04/03 11:30:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsbool.cc b/source/g3tog4/src/G4gsbool.cc index 753869b38d..6d567c6b09 100644 --- a/source/g3tog4/src/G4gsbool.cc +++ b/source/g3tog4/src/G4gsbool.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsbool.cc,v 1.1 2001/11/08 16:08:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 13.10.01 diff --git a/source/g3tog4/src/G4gsdet.cc b/source/g3tog4/src/G4gsdet.cc index 6e99d6b279..c9114444ee 100644 --- a/source/g3tog4/src/G4gsdet.cc +++ b/source/g3tog4/src/G4gsdet.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdet.cc,v 1.4 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdeta.cc b/source/g3tog4/src/G4gsdeta.cc index 03712f304f..a980e2f3e0 100644 --- a/source/g3tog4/src/G4gsdeta.cc +++ b/source/g3tog4/src/G4gsdeta.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdeta.cc,v 1.5 2001/07/11 09:59:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // modified by I.Hrivnacova, 6 Oct 99 diff --git a/source/g3tog4/src/G4gsdetd.cc b/source/g3tog4/src/G4gsdetd.cc index da39369dec..cff9513597 100644 --- a/source/g3tog4/src/G4gsdetd.cc +++ b/source/g3tog4/src/G4gsdetd.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetd.cc,v 1.7 2003/04/03 11:30:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdeth.cc b/source/g3tog4/src/G4gsdeth.cc index 0ff6be1561..db82eca159 100644 --- a/source/g3tog4/src/G4gsdeth.cc +++ b/source/g3tog4/src/G4gsdeth.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdeth.cc,v 1.7 2003/04/03 11:30:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdetu.cc b/source/g3tog4/src/G4gsdetu.cc index c480e9d07a..2a4d434d97 100644 --- a/source/g3tog4/src/G4gsdetu.cc +++ b/source/g3tog4/src/G4gsdetu.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetu.cc,v 1.5 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdetv.cc b/source/g3tog4/src/G4gsdetv.cc index f8447c562f..90abf5ffef 100644 --- a/source/g3tog4/src/G4gsdetv.cc +++ b/source/g3tog4/src/G4gsdetv.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdetv.cc,v 1.9 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4ios.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdk.cc b/source/g3tog4/src/G4gsdk.cc index f7d34bc1f8..1bd479d9fd 100644 --- a/source/g3tog4/src/G4gsdk.cc +++ b/source/g3tog4/src/G4gsdk.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdk.cc,v 1.6 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4Decay.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdvn.cc b/source/g3tog4/src/G4gsdvn.cc index 86bb187f86..cfb21667ed 100644 --- a/source/g3tog4/src/G4gsdvn.cc +++ b/source/g3tog4/src/G4gsdvn.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvn.cc,v 1.9 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvn2.cc b/source/g3tog4/src/G4gsdvn2.cc index fd2706bf5a..92948a8612 100644 --- a/source/g3tog4/src/G4gsdvn2.cc +++ b/source/g3tog4/src/G4gsdvn2.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvn2.cc,v 1.7 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt.cc b/source/g3tog4/src/G4gsdvt.cc index a495ab86d9..0b1c6219a0 100644 --- a/source/g3tog4/src/G4gsdvt.cc +++ b/source/g3tog4/src/G4gsdvt.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvt.cc,v 1.6 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt2.cc b/source/g3tog4/src/G4gsdvt2.cc index 0f59d5247a..a30e05f4fd 100644 --- a/source/g3tog4/src/G4gsdvt2.cc +++ b/source/g3tog4/src/G4gsdvt2.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvt2.cc,v 1.6 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvx.cc b/source/g3tog4/src/G4gsdvx.cc index 57ee0d80ff..14c16e3530 100644 --- a/source/g3tog4/src/G4gsdvx.cc +++ b/source/g3tog4/src/G4gsdvx.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsdvx.cc,v 1.4 2001/07/11 09:59:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, V.Berejnoi, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmate.cc b/source/g3tog4/src/G4gsmate.cc index 8fa0aa841c..950d7d4564 100644 --- a/source/g3tog4/src/G4gsmate.cc +++ b/source/g3tog4/src/G4gsmate.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsmate.cc,v 1.11 2005/06/27 15:28:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmixt.cc b/source/g3tog4/src/G4gsmixt.cc index 1bf24e2281..33a0bb5f40 100644 --- a/source/g3tog4/src/G4gsmixt.cc +++ b/source/g3tog4/src/G4gsmixt.cc @@ -21,14 +21,13 @@ // ******************************************************************** // // -// $Id: G4gsmixt.cc,v 1.11 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4gsmixt.cc,v 1.12 2005/11/14 18:21:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 27 Sep 99 #include "globals.hh" #include -#include #include #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gspart.cc b/source/g3tog4/src/G4gspart.cc index 8f8e862582..6ff8b04071 100644 --- a/source/g3tog4/src/G4gspart.cc +++ b/source/g3tog4/src/G4gspart.cc @@ -22,7 +22,7 @@ // // // $Id: G4gspart.cc,v 1.6 2003/04/03 11:30:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4ProcessManager.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gspos.cc b/source/g3tog4/src/G4gspos.cc index df01154305..0c11bc8eb4 100644 --- a/source/g3tog4/src/G4gspos.cc +++ b/source/g3tog4/src/G4gspos.cc @@ -22,7 +22,7 @@ // // // $Id: G4gspos.cc,v 1.12 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsposp.cc b/source/g3tog4/src/G4gsposp.cc index 9b4c2642e4..955653a883 100644 --- a/source/g3tog4/src/G4gsposp.cc +++ b/source/g3tog4/src/G4gsposp.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsposp.cc,v 1.15 2002/10/23 17:21:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsrotm.cc b/source/g3tog4/src/G4gsrotm.cc index ce9eee6b3d..0a84ebd31d 100644 --- a/source/g3tog4/src/G4gsrotm.cc +++ b/source/g3tog4/src/G4gsrotm.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsrotm.cc,v 1.11 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G3toG4.hh" #include "G3RotTable.hh" diff --git a/source/g3tog4/src/G4gstmed.cc b/source/g3tog4/src/G4gstmed.cc index 43f2af5e75..48fee721b8 100644 --- a/source/g3tog4/src/G4gstmed.cc +++ b/source/g3tog4/src/G4gstmed.cc @@ -22,7 +22,7 @@ // // // $Id: G4gstmed.cc,v 1.6 2003/04/03 11:30:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // The last G4int argument of G4gstmed(..) is used for sending // info whether the Geant3 tracking medium parameters should diff --git a/source/g3tog4/src/G4gstpar.cc b/source/g3tog4/src/G4gstpar.cc index 66a71b448a..8646cefb3f 100644 --- a/source/g3tog4/src/G4gstpar.cc +++ b/source/g3tog4/src/G4gstpar.cc @@ -22,7 +22,7 @@ // // // $Id: G4gstpar.cc,v 1.7 2003/04/03 11:30:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsvolu.cc b/source/g3tog4/src/G4gsvolu.cc index f5aa57d7ef..fbc4764204 100644 --- a/source/g3tog4/src/G4gsvolu.cc +++ b/source/g3tog4/src/G4gsvolu.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsvolu.cc,v 1.9 2003/06/16 16:50:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/clparse.cc b/source/g3tog4/src/clparse.cc index b1e3c3639c..14a80caaed 100644 --- a/source/g3tog4/src/clparse.cc +++ b/source/g3tog4/src/clparse.cc @@ -22,7 +22,7 @@ // // // $Id: clparse.cc,v 1.17 2004/12/07 08:33:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // modified by I.Hrivnacova // added G3SensVol diff --git a/source/g3tog4/src/g3routines.F b/source/g3tog4/src/g3routines.F index d187605b7a..07173c13a7 100644 --- a/source/g3tog4/src/g3routines.F +++ b/source/g3tog4/src/g3routines.F @@ -22,7 +22,7 @@ * * * $Id: g3routines.F,v 1.4 2001/07/11 09:59:02 gunter Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * #define CALL_GEANT diff --git a/source/g3tog4/src/g3test.F.main b/source/g3tog4/src/g3test.F.main index 05aefad4db..375707af11 100644 --- a/source/g3tog4/src/g3test.F.main +++ b/source/g3tog4/src/g3test.F.main @@ -6,7 +6,7 @@ * and all its terms. * * $Id: g3test.F.main,v 1.2 1999/12/05 17:50:16 gcosmo Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * * * g3test diff --git a/source/g3tog4/src/g3tog4.F b/source/g3tog4/src/g3tog4.F index cb570e148f..26ed233715 100644 --- a/source/g3tog4/src/g3tog4.F +++ b/source/g3tog4/src/g3tog4.F @@ -22,7 +22,7 @@ * * * $Id: g3tog4.F,v 1.4 2001/07/11 09:59:02 gunter Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * * * G3toG4 diff --git a/source/g3tog4/src/g4geom.cc.main b/source/g3tog4/src/g4geom.cc.main index 50f351afbe..0e8971c724 100644 --- a/source/g3tog4/src/g4geom.cc.main +++ b/source/g3tog4/src/g4geom.cc.main @@ -6,7 +6,7 @@ // and all its terms. // // $Id: g4geom.cc.main,v 1.2 1999/12/05 17:50:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // g4geom // diff --git a/source/g3tog4/src/jshape.F b/source/g3tog4/src/jshape.F index b53b5adac3..7347018a65 100644 --- a/source/g3tog4/src/jshape.F +++ b/source/g3tog4/src/jshape.F @@ -22,7 +22,7 @@ * * * $Id: jshape.F,v 1.3 2001/07/11 09:59:03 gunter Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * * *-- Author : Jouko Vuoskoski, CERN, Jouko.Vuoskoski@cern.ch diff --git a/source/g3tog4/src/mztog4.F b/source/g3tog4/src/mztog4.F index ad042d61b3..21f8d96b98 100644 --- a/source/g3tog4/src/mztog4.F +++ b/source/g3tog4/src/mztog4.F @@ -22,7 +22,7 @@ * * * $Id: mztog4.F,v 1.3 2001/07/11 09:59:03 gunter Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * subroutine mztog4 ************************************************************************ diff --git a/source/g3tog4/src/rztog4.F b/source/g3tog4/src/rztog4.F index ed05ef297e..850956823a 100644 --- a/source/g3tog4/src/rztog4.F +++ b/source/g3tog4/src/rztog4.F @@ -22,7 +22,7 @@ * * * $Id: rztog4.F,v 1.3 2001/07/11 09:59:03 gunter Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * program rztog4 ************************************************************************ diff --git a/source/g3tog4/src/tog4.F b/source/g3tog4/src/tog4.F index 29dca39e4c..7e1efdeeb6 100644 --- a/source/g3tog4/src/tog4.F +++ b/source/g3tog4/src/tog4.F @@ -22,7 +22,7 @@ * * * $Id: tog4.F,v 1.4 2001/07/11 09:59:03 gunter Exp $ -* GEANT4 tag $Name: geant4-07-01 $ +* GEANT4 tag $Name: geant4-08-00 $ * subroutine tog4 ************************************************************************ diff --git a/source/geometry/History b/source/geometry/History index d19eecc948..796188d082 100644 --- a/source/geometry/History +++ b/source/geometry/History @@ -1,4 +1,4 @@ -$Id: History,v 1.35 2004/12/10 16:24:41 gcosmo Exp $ +$Id: History,v 1.36 2005/11/09 15:12:31 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,16 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 09, 2005 Gabriele Cosmo geometry-V07-01-00 +----------------------------- +- Includes tags: geomsolids-V07-01-00, geomvol-V07-01-02, geombias-V07-01-00, + geomdiv-V07-01-01, field-V07-01-00, geommng-V07-01-03. +- Implemented changes for support of CLHEP-2.0.X. +- Added fake default constructor for all concrete volumes, solids, base + classes and relevant utility classes for handling of direct object + persistency. +- Implemented migration to from deprecated . + Dec 10, 2004 Gabriele Cosmo geometry-V06-02-02 ----------------------------- - Replaced M_PI with CLHEP's pi. diff --git a/source/geometry/biasing/History b/source/geometry/biasing/History index 0e098f8f09..7ecbf8773a 100644 --- a/source/geometry/biasing/History +++ b/source/geometry/biasing/History @@ -1,4 +1,4 @@ -$Id: History,v 1.38 2003/10/22 13:52:26 gcosmo Exp $ +$Id: History,v 1.39 2005/11/09 14:47:39 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov, 9th 2005 G.Cosmo geombias-V07-01-00 + - Implemented migration to for affected classes: + G4ParallelNavigator and G4ImportanceAlgorithm. + Oct, 22nd 2003 G.Cosmo geombias-V05-02-03 - Migrated calls to G4Exception to new scheme. diff --git a/source/geometry/biasing/include/G4GeometryCell.hh b/source/geometry/biasing/include/G4GeometryCell.hh index 0848af1096..08f0152bec 100644 --- a/source/geometry/biasing/include/G4GeometryCell.hh +++ b/source/geometry/biasing/include/G4GeometryCell.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCell.hh,v 1.5 2002/10/22 13:18:43 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCell diff --git a/source/geometry/biasing/include/G4GeometryCellComp.hh b/source/geometry/biasing/include/G4GeometryCellComp.hh index 3e746ce2eb..b6efe1ef2f 100644 --- a/source/geometry/biasing/include/G4GeometryCellComp.hh +++ b/source/geometry/biasing/include/G4GeometryCellComp.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellComp.hh,v 1.1 2002/10/22 13:18:44 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellComp diff --git a/source/geometry/biasing/include/G4GeometryCellImportance.hh b/source/geometry/biasing/include/G4GeometryCellImportance.hh index ea855ced1c..25ddeb26e7 100644 --- a/source/geometry/biasing/include/G4GeometryCellImportance.hh +++ b/source/geometry/biasing/include/G4GeometryCellImportance.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellImportance.hh,v 1.3 2003/06/16 16:50:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellImportance diff --git a/source/geometry/biasing/include/G4GeometryCellStep.hh b/source/geometry/biasing/include/G4GeometryCellStep.hh index 29276e7d1c..ab81ddaece 100644 --- a/source/geometry/biasing/include/G4GeometryCellStep.hh +++ b/source/geometry/biasing/include/G4GeometryCellStep.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellStep.hh,v 1.1 2002/10/22 13:18:44 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellStep diff --git a/source/geometry/biasing/include/G4GeometryCellStepStream.hh b/source/geometry/biasing/include/G4GeometryCellStepStream.hh index bb33b891c7..e582f974a0 100644 --- a/source/geometry/biasing/include/G4GeometryCellStepStream.hh +++ b/source/geometry/biasing/include/G4GeometryCellStepStream.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellStepStream.hh,v 1.2 2003/06/16 16:51:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Declarations diff --git a/source/geometry/biasing/include/G4GeometryCellWeight.hh b/source/geometry/biasing/include/G4GeometryCellWeight.hh index 9de3ea3b6f..dc9be35f43 100644 --- a/source/geometry/biasing/include/G4GeometryCellWeight.hh +++ b/source/geometry/biasing/include/G4GeometryCellWeight.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellWeight.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellWeight diff --git a/source/geometry/biasing/include/G4IStore.hh b/source/geometry/biasing/include/G4IStore.hh index bab7b7e712..b1c05c07ce 100644 --- a/source/geometry/biasing/include/G4IStore.hh +++ b/source/geometry/biasing/include/G4IStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4IStore.hh,v 1.9 2002/10/22 13:18:44 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4IStore diff --git a/source/geometry/biasing/include/G4ImportanceAlgorithm.hh b/source/geometry/biasing/include/G4ImportanceAlgorithm.hh index a813a0a665..1474203fc2 100644 --- a/source/geometry/biasing/include/G4ImportanceAlgorithm.hh +++ b/source/geometry/biasing/include/G4ImportanceAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4ImportanceAlgorithm.hh,v 1.6 2002/10/14 12:36:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ImportanceAlgorithm diff --git a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh index 2d796aa6af..03bd922dd6 100644 --- a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh +++ b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh @@ -22,7 +22,7 @@ // // // $Id: G4ImportanceSplitExaminer.hh,v 1.7 2003/08/19 16:38:45 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ImportanceSplitExaminer diff --git a/source/geometry/biasing/include/G4Nsplit_Weight.hh b/source/geometry/biasing/include/G4Nsplit_Weight.hh index 12e1d2de16..2c5edcb4f9 100644 --- a/source/geometry/biasing/include/G4Nsplit_Weight.hh +++ b/source/geometry/biasing/include/G4Nsplit_Weight.hh @@ -22,7 +22,7 @@ // // // $Id: G4Nsplit_Weight.hh,v 1.10 2003/06/16 16:51:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Nsplit_Weight diff --git a/source/geometry/biasing/include/G4ParallelNavigator.hh b/source/geometry/biasing/include/G4ParallelNavigator.hh index 724747c9c1..09f865e25d 100644 --- a/source/geometry/biasing/include/G4ParallelNavigator.hh +++ b/source/geometry/biasing/include/G4ParallelNavigator.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelNavigator.hh,v 1.9 2002/10/14 12:36:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelNavigator diff --git a/source/geometry/biasing/include/G4ParallelStepper.hh b/source/geometry/biasing/include/G4ParallelStepper.hh index c9608bba2f..d1760f650d 100644 --- a/source/geometry/biasing/include/G4ParallelStepper.hh +++ b/source/geometry/biasing/include/G4ParallelStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelStepper.hh,v 1.6 2002/10/22 13:18:45 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelStepper diff --git a/source/geometry/biasing/include/G4ParallelWorld.hh b/source/geometry/biasing/include/G4ParallelWorld.hh index 2c3b9a5402..9907ee92d5 100644 --- a/source/geometry/biasing/include/G4ParallelWorld.hh +++ b/source/geometry/biasing/include/G4ParallelWorld.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelWorld.hh,v 1.6 2002/10/14 12:36:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelWorld diff --git a/source/geometry/biasing/include/G4VCellScorer.hh b/source/geometry/biasing/include/G4VCellScorer.hh index 8891d62670..7559f50b6c 100644 --- a/source/geometry/biasing/include/G4VCellScorer.hh +++ b/source/geometry/biasing/include/G4VCellScorer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCellScorer.hh,v 1.6 2002/10/28 09:53:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VCellScorer diff --git a/source/geometry/biasing/include/G4VCellScorerStore.hh b/source/geometry/biasing/include/G4VCellScorerStore.hh index 12cf81facc..ade90adfe0 100644 --- a/source/geometry/biasing/include/G4VCellScorerStore.hh +++ b/source/geometry/biasing/include/G4VCellScorerStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCellScorerStore.hh,v 1.6 2002/10/28 09:53:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VCellScorerStore diff --git a/source/geometry/biasing/include/G4VGCellFinder.hh b/source/geometry/biasing/include/G4VGCellFinder.hh index 8159efe701..efc11d8baa 100644 --- a/source/geometry/biasing/include/G4VGCellFinder.hh +++ b/source/geometry/biasing/include/G4VGCellFinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGCellFinder.hh,v 1.1 2002/10/16 14:30:00 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VGCellFinder diff --git a/source/geometry/biasing/include/G4VIStore.hh b/source/geometry/biasing/include/G4VIStore.hh index 8fef35df71..2e355872db 100644 --- a/source/geometry/biasing/include/G4VIStore.hh +++ b/source/geometry/biasing/include/G4VIStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4VIStore.hh,v 1.8 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VIStore diff --git a/source/geometry/biasing/include/G4VImportanceAlgorithm.hh b/source/geometry/biasing/include/G4VImportanceAlgorithm.hh index e626012039..4a0647dca8 100644 --- a/source/geometry/biasing/include/G4VImportanceAlgorithm.hh +++ b/source/geometry/biasing/include/G4VImportanceAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4VImportanceAlgorithm.hh,v 1.7 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VImportanceAlgorithm diff --git a/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh index 143812ca90..24ba3995b9 100644 --- a/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh +++ b/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VImportanceSplitExaminer.hh,v 1.4 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VImportanceSplitExaminer diff --git a/source/geometry/biasing/include/G4VPGeoDriver.hh b/source/geometry/biasing/include/G4VPGeoDriver.hh index 80ac3c1d5a..11fdd044b3 100644 --- a/source/geometry/biasing/include/G4VPGeoDriver.hh +++ b/source/geometry/biasing/include/G4VPGeoDriver.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPGeoDriver.hh,v 1.6 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VPGeoDriver diff --git a/source/geometry/biasing/include/G4VParallelStepper.hh b/source/geometry/biasing/include/G4VParallelStepper.hh index 27633945ef..8bc44016f3 100644 --- a/source/geometry/biasing/include/G4VParallelStepper.hh +++ b/source/geometry/biasing/include/G4VParallelStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4VParallelStepper.hh,v 1.7 2002/10/22 13:18:46 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VParallelStepper diff --git a/source/geometry/biasing/include/G4VScorer.hh b/source/geometry/biasing/include/G4VScorer.hh index 2c8acb95d5..29b0b2c1e6 100644 --- a/source/geometry/biasing/include/G4VScorer.hh +++ b/source/geometry/biasing/include/G4VScorer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VScorer.hh,v 1.1 2002/10/28 09:53:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VScorer diff --git a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh index 58b5604be9..72b08126bb 100644 --- a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh +++ b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowAlgorithm.hh,v 1.7 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VWeightWindowAlgorithm diff --git a/source/geometry/biasing/include/G4VWeightWindowExaminer.hh b/source/geometry/biasing/include/G4VWeightWindowExaminer.hh index c99bc4abed..7c4987a2a8 100644 --- a/source/geometry/biasing/include/G4VWeightWindowExaminer.hh +++ b/source/geometry/biasing/include/G4VWeightWindowExaminer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowExaminer.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VWeightWindowExaminer diff --git a/source/geometry/biasing/include/G4VWeightWindowStore.hh b/source/geometry/biasing/include/G4VWeightWindowStore.hh index d5a32dabab..4be464b808 100644 --- a/source/geometry/biasing/include/G4VWeightWindowStore.hh +++ b/source/geometry/biasing/include/G4VWeightWindowStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowStore.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VWeightWindowStore diff --git a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh index 5484133507..8b0f3e026d 100644 --- a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh +++ b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowAlgorithm.hh,v 1.6 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4WeightWindowAlgorithm diff --git a/source/geometry/biasing/include/G4WeightWindowExaminer.hh b/source/geometry/biasing/include/G4WeightWindowExaminer.hh index b250e5123b..af7a0afde7 100644 --- a/source/geometry/biasing/include/G4WeightWindowExaminer.hh +++ b/source/geometry/biasing/include/G4WeightWindowExaminer.hh @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowExaminer.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4WeightWindowExaminer diff --git a/source/geometry/biasing/include/G4WeightWindowStore.hh b/source/geometry/biasing/include/G4WeightWindowStore.hh index 7e76d6bbeb..cbf2cddd27 100644 --- a/source/geometry/biasing/include/G4WeightWindowStore.hh +++ b/source/geometry/biasing/include/G4WeightWindowStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowStore.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4WeightWindowStore diff --git a/source/geometry/biasing/src/G4GeometryCell.cc b/source/geometry/biasing/src/G4GeometryCell.cc index a4b4506a86..99942391bd 100644 --- a/source/geometry/biasing/src/G4GeometryCell.cc +++ b/source/geometry/biasing/src/G4GeometryCell.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCell.cc,v 1.5 2002/10/22 13:18:46 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellComp.cc b/source/geometry/biasing/src/G4GeometryCellComp.cc index 38d7346661..5e206bab75 100644 --- a/source/geometry/biasing/src/G4GeometryCellComp.cc +++ b/source/geometry/biasing/src/G4GeometryCellComp.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4GeometryCellComp.cc,v 1.3 2002/12/13 11:54:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellImportance.cc b/source/geometry/biasing/src/G4GeometryCellImportance.cc index 1821bbdf6c..f84434c401 100644 --- a/source/geometry/biasing/src/G4GeometryCellImportance.cc +++ b/source/geometry/biasing/src/G4GeometryCellImportance.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellImportance.cc,v 1.4 2003/06/16 16:51:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellStep.cc b/source/geometry/biasing/src/G4GeometryCellStep.cc index 3d0f2fa3a0..8aec278aa6 100644 --- a/source/geometry/biasing/src/G4GeometryCellStep.cc +++ b/source/geometry/biasing/src/G4GeometryCellStep.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellStep.cc,v 1.1 2002/10/22 13:18:46 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellStepStream.cc b/source/geometry/biasing/src/G4GeometryCellStepStream.cc index 98b0cc90f8..5071e60c71 100644 --- a/source/geometry/biasing/src/G4GeometryCellStepStream.cc +++ b/source/geometry/biasing/src/G4GeometryCellStepStream.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryCellStepStream.cc,v 1.2 2003/06/16 16:51:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4IStore.cc b/source/geometry/biasing/src/G4IStore.cc index 2324f24584..a9128b874e 100644 --- a/source/geometry/biasing/src/G4IStore.cc +++ b/source/geometry/biasing/src/G4IStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4IStore.cc,v 1.13 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc index 87e9c7b385..91e2d342b2 100644 --- a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc +++ b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportanceAlgorithm.cc,v 1.12 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ImportanceAlgorithm.cc,v 1.13 2005/11/09 14:47:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -32,7 +32,7 @@ // ---------------------------------------------------------------------- #include "G4Types.hh" -#include +#include #include "Randomize.hh" #include "G4ImportanceAlgorithm.hh" @@ -61,7 +61,7 @@ G4ImportanceAlgorithm::Calculate(G4double ipre, } G4double ipre_over_ipost = ipre/ipost; if ((ipre_over_ipost<0.25 || ipre_over_ipost> 4) && !fWorned) { - std::ostrstream os; + std::ostringstream os; os << "Calculate: ipre_over_ipost ! in [0.25, 4]: ipre_over_ipost = " << ipre_over_ipost << '\0' << G4endl; Warning(os.str()); diff --git a/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc b/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc index d634901f17..b3ad19d85a 100644 --- a/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc +++ b/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc @@ -22,7 +22,7 @@ // // // $Id: G4ImportanceSplitExaminer.cc,v 1.7 2003/08/19 16:38:47 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4Nsplit_Weight.cc b/source/geometry/biasing/src/G4Nsplit_Weight.cc index 15baf6b1b4..543a87408f 100644 --- a/source/geometry/biasing/src/G4Nsplit_Weight.cc +++ b/source/geometry/biasing/src/G4Nsplit_Weight.cc @@ -22,7 +22,7 @@ // // // $Id: G4Nsplit_Weight.cc,v 1.9 2003/06/16 16:51:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ParallelNavigator.cc b/source/geometry/biasing/src/G4ParallelNavigator.cc index c575a04deb..772654e42a 100644 --- a/source/geometry/biasing/src/G4ParallelNavigator.cc +++ b/source/geometry/biasing/src/G4ParallelNavigator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelNavigator.cc,v 1.18 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParallelNavigator.cc,v 1.19 2005/11/09 14:47:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -33,7 +33,7 @@ #include "G4ParallelNavigator.hh" -#include +#include #include "G4VParallelStepper.hh" @@ -232,13 +232,12 @@ ComputeStepLengthShifted(const G4String &m, kInfinity, newSafety); } if (stepLength<=kCarTolerance) { - char st[200]; - std::ostrstream os(st,200); + std::ostringstream os; os << "still got stepLength<=kCarTolerance: " << shift_pos << "\n" << '\0'; - G4String m(st); + G4String m = os.str(); Error(m, aPosition, aDirection); } return stepLength; diff --git a/source/geometry/biasing/src/G4ParallelStepper.cc b/source/geometry/biasing/src/G4ParallelStepper.cc index 1c918b9d2a..d1e54eaedf 100644 --- a/source/geometry/biasing/src/G4ParallelStepper.cc +++ b/source/geometry/biasing/src/G4ParallelStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParallelStepper.cc,v 1.11 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ParallelWorld.cc b/source/geometry/biasing/src/G4ParallelWorld.cc index a1545430c9..8bd167acb7 100644 --- a/source/geometry/biasing/src/G4ParallelWorld.cc +++ b/source/geometry/biasing/src/G4ParallelWorld.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParallelWorld.cc,v 1.7 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VCellScorer.cc b/source/geometry/biasing/src/G4VCellScorer.cc index 040a92b868..5a06f327fd 100644 --- a/source/geometry/biasing/src/G4VCellScorer.cc +++ b/source/geometry/biasing/src/G4VCellScorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VCellScorer.cc,v 1.5 2002/12/13 11:54:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VCellScorerStore.cc b/source/geometry/biasing/src/G4VCellScorerStore.cc index 70bc1c3955..9e89805372 100644 --- a/source/geometry/biasing/src/G4VCellScorerStore.cc +++ b/source/geometry/biasing/src/G4VCellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4VCellScorerStore.cc,v 1.3 2002/10/28 09:53:51 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VGCellFinder.cc b/source/geometry/biasing/src/G4VGCellFinder.cc index 669bf80dc7..a351618988 100644 --- a/source/geometry/biasing/src/G4VGCellFinder.cc +++ b/source/geometry/biasing/src/G4VGCellFinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGCellFinder.cc,v 1.1 2002/10/16 14:30:01 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VIStore.cc b/source/geometry/biasing/src/G4VIStore.cc index 2d7c8b37e2..da9062f875 100644 --- a/source/geometry/biasing/src/G4VIStore.cc +++ b/source/geometry/biasing/src/G4VIStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4VIStore.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VImportanceAlgorithm.cc b/source/geometry/biasing/src/G4VImportanceAlgorithm.cc index 74a02600b1..e37870adc0 100644 --- a/source/geometry/biasing/src/G4VImportanceAlgorithm.cc +++ b/source/geometry/biasing/src/G4VImportanceAlgorithm.cc @@ -22,7 +22,7 @@ // // // $Id: G4VImportanceAlgorithm.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc b/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc index de3f680eff..e4f6cc7bf3 100644 --- a/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc +++ b/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VImportanceSplitExaminer.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VPGeoDriver.cc b/source/geometry/biasing/src/G4VPGeoDriver.cc index ac0e7133c5..803b64f759 100644 --- a/source/geometry/biasing/src/G4VPGeoDriver.cc +++ b/source/geometry/biasing/src/G4VPGeoDriver.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPGeoDriver.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VParallelStepper.cc b/source/geometry/biasing/src/G4VParallelStepper.cc index 9e759e8800..c1b246efb6 100644 --- a/source/geometry/biasing/src/G4VParallelStepper.cc +++ b/source/geometry/biasing/src/G4VParallelStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4VParallelStepper.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VScorer.cc b/source/geometry/biasing/src/G4VScorer.cc index 78d042d27e..26f6666029 100644 --- a/source/geometry/biasing/src/G4VScorer.cc +++ b/source/geometry/biasing/src/G4VScorer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VScorer.cc,v 1.1 2002/10/28 09:53:51 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc index eb1a01b6da..a1c6a6de7c 100644 --- a/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc +++ b/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowAlgorithm.cc,v 1.1 2002/10/14 12:36:50 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VWeightWindowExaminer.cc b/source/geometry/biasing/src/G4VWeightWindowExaminer.cc index 65b7ebaf16..5513acfd78 100644 --- a/source/geometry/biasing/src/G4VWeightWindowExaminer.cc +++ b/source/geometry/biasing/src/G4VWeightWindowExaminer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowExaminer.cc,v 1.1 2003/08/19 15:17:26 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VWeightWindowStore.cc b/source/geometry/biasing/src/G4VWeightWindowStore.cc index 0d9d59d2ff..53208db246 100644 --- a/source/geometry/biasing/src/G4VWeightWindowStore.cc +++ b/source/geometry/biasing/src/G4VWeightWindowStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4VWeightWindowStore.cc,v 1.2 2003/08/19 15:44:57 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc index 15a1706170..843cca778f 100644 --- a/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc +++ b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowAlgorithm.cc,v 1.7 2003/08/19 15:16:56 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4WeightWindowExaminer.cc b/source/geometry/biasing/src/G4WeightWindowExaminer.cc index f4260173f6..0769a8a800 100644 --- a/source/geometry/biasing/src/G4WeightWindowExaminer.cc +++ b/source/geometry/biasing/src/G4WeightWindowExaminer.cc @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowExaminer.cc,v 1.1 2003/08/19 15:17:26 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4WeightWindowStore.cc b/source/geometry/biasing/src/G4WeightWindowStore.cc index 86a584204e..ee650a259e 100644 --- a/source/geometry/biasing/src/G4WeightWindowStore.cc +++ b/source/geometry/biasing/src/G4WeightWindowStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4WeightWindowStore.cc,v 1.4 2003/10/22 13:52:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/divisions/History b/source/geometry/divisions/History index b18afcd50e..6b3f6b29c3 100644 --- a/source/geometry/divisions/History +++ b/source/geometry/divisions/History @@ -1,4 +1,4 @@ -$Id: History,v 1.16 2005/06/06 09:53:24 gcosmo Exp $ +$Id: History,v 1.19 2005/11/16 19:25:54 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,19 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 16th, 2005 J.Apostolakis (geomdiv-V07-01-02) +- Adapted to revision of G4VPhysicalVolume that identifies some + regular structures + * added two RegularStructure methods for G4PVDivision (IsRS, GetRSId) + +November 9th, 2005 G.Cosmo (geomdiv-V07-01-01) +- Migration to from deprecated for the + unit test ExDivisions. + +November 2nd, 2005 G.Cosmo (geomdiv-V07-01-00) +- Protected case of generic construct for G4Polyhedra and G4Polycone + currently NOT supported for divisions. +- Coworks with tag "geom-specific-V07-01-05". June 6th, 2005 G.Cosmo (geomdiv-V07-00-00) - Fixed compilation problems on unit test. diff --git a/source/geometry/divisions/include/G4PVDivision.hh b/source/geometry/divisions/include/G4PVDivision.hh index 7471fa326d..dea8154aa7 100644 --- a/source/geometry/divisions/include/G4PVDivision.hh +++ b/source/geometry/divisions/include/G4PVDivision.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVDivision.hh,v 1.8 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PVDivision.hh,v 1.9 2005/11/16 19:26:36 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4PVDivision // @@ -130,6 +130,10 @@ class G4PVDivision : public G4VPhysicalVolume G4bool& consuming ) const; G4bool IsParameterised() const; + G4bool IsRegularStructure() const; + G4int GetRegularStructureId() const; + // Methods to identify volume that can have revised 'regular' navigation. + // Currently divisions do not qualify private: void CheckAndSetParameters( const EAxis pAxis, diff --git a/source/geometry/divisions/include/G4PVDivisionFactory.hh b/source/geometry/divisions/include/G4PVDivisionFactory.hh index f4727e65ab..27fb1cc8c2 100644 --- a/source/geometry/divisions/include/G4PVDivisionFactory.hh +++ b/source/geometry/divisions/include/G4PVDivisionFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4PVDivisionFactory.hh,v 1.1 2004/05/13 14:56:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4PVDivisionFactory diff --git a/source/geometry/divisions/include/G4ParameterisationBox.hh b/source/geometry/divisions/include/G4ParameterisationBox.hh index 07a5e7e75b..6a8c277579 100644 --- a/source/geometry/divisions/include/G4ParameterisationBox.hh +++ b/source/geometry/divisions/include/G4ParameterisationBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationBox.hh,v 1.5 2004/07/15 14:25:01 stesting Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // classes G4ParameterisationBoxX, // G4ParameterisationBoxY, diff --git a/source/geometry/divisions/include/G4ParameterisationCons.hh b/source/geometry/divisions/include/G4ParameterisationCons.hh index 9a5d86dbba..e8f20a4d0a 100644 --- a/source/geometry/divisions/include/G4ParameterisationCons.hh +++ b/source/geometry/divisions/include/G4ParameterisationCons.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationCons.hh,v 1.5 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // classes G4ParameterisationConsRho, // G4ParameterisationConsPhi, diff --git a/source/geometry/divisions/include/G4ParameterisationPara.hh b/source/geometry/divisions/include/G4ParameterisationPara.hh index a5787f7850..f852610721 100644 --- a/source/geometry/divisions/include/G4ParameterisationPara.hh +++ b/source/geometry/divisions/include/G4ParameterisationPara.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPara.hh,v 1.6 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // classes G4ParameterisationParaX, // G4ParameterisationParaY, diff --git a/source/geometry/divisions/include/G4ParameterisationPolycone.hh b/source/geometry/divisions/include/G4ParameterisationPolycone.hh index ac6e67e8e1..982ab1752a 100644 --- a/source/geometry/divisions/include/G4ParameterisationPolycone.hh +++ b/source/geometry/divisions/include/G4ParameterisationPolycone.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPolycone.hh,v 1.6 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // classes G4ParameterisationPolyconeRho, // G4ParameterisationPolyconePhi, diff --git a/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh b/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh index 078ddd2d4d..198aba4150 100644 --- a/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh +++ b/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPolyhedra.hh,v 1.7 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // classes G4ParameterisationPolyhedraRho, // G4ParameterisationPolyhedraPhi, diff --git a/source/geometry/divisions/include/G4ParameterisationTrd.hh b/source/geometry/divisions/include/G4ParameterisationTrd.hh index 9f66151036..4ea58706f4 100644 --- a/source/geometry/divisions/include/G4ParameterisationTrd.hh +++ b/source/geometry/divisions/include/G4ParameterisationTrd.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationTrd.hh,v 1.6 2004/05/13 14:57:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // classes G4ParameterisationTrdX // G4ParameterisationTrdY diff --git a/source/geometry/divisions/include/G4ParameterisationTubs.hh b/source/geometry/divisions/include/G4ParameterisationTubs.hh index 27eacba051..f44db7dd27 100644 --- a/source/geometry/divisions/include/G4ParameterisationTubs.hh +++ b/source/geometry/divisions/include/G4ParameterisationTubs.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationTubs.hh,v 1.5 2004/05/13 14:57:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // classes G4ParameterisationTubsRho // G4ParameterisationTubsPhi diff --git a/source/geometry/divisions/include/G4VDivisionParameterisation.hh b/source/geometry/divisions/include/G4VDivisionParameterisation.hh index 05ccd3c439..0d56aed36e 100644 --- a/source/geometry/divisions/include/G4VDivisionParameterisation.hh +++ b/source/geometry/divisions/include/G4VDivisionParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDivisionParameterisation.hh,v 1.9 2004/07/15 14:25:01 stesting Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VDivisionParameterisation // diff --git a/source/geometry/divisions/include/G4VDivisionParameterisation.icc b/source/geometry/divisions/include/G4VDivisionParameterisation.icc index 6f1a722b21..bb4bd2da04 100644 --- a/source/geometry/divisions/include/G4VDivisionParameterisation.icc +++ b/source/geometry/divisions/include/G4VDivisionParameterisation.icc @@ -22,7 +22,7 @@ // // // $Id: G4VDivisionParameterisation.icc,v 1.3 2004/05/13 14:57:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VDivisionParameterisation Inline Implementation file // diff --git a/source/geometry/divisions/src/G4PVDivision.cc b/source/geometry/divisions/src/G4PVDivision.cc index adcace0a2f..2d7fd05aff 100644 --- a/source/geometry/divisions/src/G4PVDivision.cc +++ b/source/geometry/divisions/src/G4PVDivision.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVDivision.cc,v 1.12 2004/08/26 07:58:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PVDivision.cc,v 1.13 2005/11/16 19:27:06 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4PVDivision Implementation file // @@ -458,3 +458,22 @@ void G4PVDivision::ErrorInAxis( EAxis axis, G4VSolid* solid ) G4Exception("G4PVDivision::ErrorInAxis()", "IllegalConstruct", FatalException, error); } +// The next methods are for specialised repeated volumes +// (replicas, parameterised vol.) which are completely regular. +// Currently this is not applicable to divisions ( J.A. Nov 2005 ) +// ---------------------------------------------------------------------- +// IsRegularRepeatedStructure() +// +G4bool G4PVDivision::IsRegularStructure() const +{ + return false; +} + +// ---------------------------------------------------------------------- +// IsRegularRepeatedStructure() +// +G4int G4PVDivision::GetRegularStructureId() const +{ + return 0; +} +// This is for specialised repeated volumes (replicas, parameterised vol.) diff --git a/source/geometry/divisions/src/G4PVDivisionFactory.cc b/source/geometry/divisions/src/G4PVDivisionFactory.cc index 3e773fa5c6..618cb7d454 100644 --- a/source/geometry/divisions/src/G4PVDivisionFactory.cc +++ b/source/geometry/divisions/src/G4PVDivisionFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4PVDivisionFactory.cc,v 1.1 2004/05/13 14:56:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4PVDivisionFactory Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationBox.cc b/source/geometry/divisions/src/G4ParameterisationBox.cc index b77e800237..a603784718 100644 --- a/source/geometry/divisions/src/G4ParameterisationBox.cc +++ b/source/geometry/divisions/src/G4ParameterisationBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationBox.cc,v 1.7 2004/05/17 07:20:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4ParameterisationBox Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationCons.cc b/source/geometry/divisions/src/G4ParameterisationCons.cc index 7e66858211..74ae657593 100644 --- a/source/geometry/divisions/src/G4ParameterisationCons.cc +++ b/source/geometry/divisions/src/G4ParameterisationCons.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationCons.cc,v 1.8 2004/05/17 07:20:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4ParameterisationCons Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationPara.cc b/source/geometry/divisions/src/G4ParameterisationPara.cc index 8dd3c45f03..35e640ea2d 100644 --- a/source/geometry/divisions/src/G4ParameterisationPara.cc +++ b/source/geometry/divisions/src/G4ParameterisationPara.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationPara.cc,v 1.10 2004/12/10 16:20:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4ParameterisationPara Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationPolycone.cc b/source/geometry/divisions/src/G4ParameterisationPolycone.cc index f964657993..315e7bd815 100644 --- a/source/geometry/divisions/src/G4ParameterisationPolycone.cc +++ b/source/geometry/divisions/src/G4ParameterisationPolycone.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParameterisationPolycone.cc,v 1.10 2004/12/02 09:31:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParameterisationPolycone.cc,v 1.11 2005/11/02 16:06:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4ParameterisationPolycone Implementation file // @@ -47,6 +47,12 @@ G4VParameterisationPolycone( EAxis axis, G4int nDiv, G4double width, : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) { G4Polycone* msol = (G4Polycone*)(msolid); + if (msol->IsGeneric()) + { + G4Exception("G4VParameterisationPolycone::G4VParameterisationPolycone()", + "NotSupported", FatalException, + "Sorry, generic construct for G4Polycone NOT supported."); + } if (msolid->GetEntityType() == "G4ReflectedSolid") { // Get constituent solid diff --git a/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc b/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc index f166aefb50..cfc59ae95e 100644 --- a/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc +++ b/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParameterisationPolyhedra.cc,v 1.10 2004/12/10 16:20:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParameterisationPolyhedra.cc,v 1.11 2005/11/02 16:06:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4ParameterisationPolyhedra Implementation file // @@ -48,6 +48,12 @@ G4VParameterisationPolyhedra( EAxis axis, G4int nDiv, G4double width, : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) { G4Polyhedra* msol = (G4Polyhedra*)(msolid); + if (msol->IsGeneric()) + { + G4Exception("G4VParameterisationPolyhedra::G4VParameterisationPolyhedra()", + "NotSupported", FatalException, + "Sorry, generic construct for G4Polyhedra NOT supported."); + } if (msolid->GetEntityType() == "G4ReflectedSolid") { // Get constituent solid diff --git a/source/geometry/divisions/src/G4ParameterisationTrd.cc b/source/geometry/divisions/src/G4ParameterisationTrd.cc index 5c137a799c..c76284c315 100644 --- a/source/geometry/divisions/src/G4ParameterisationTrd.cc +++ b/source/geometry/divisions/src/G4ParameterisationTrd.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationTrd.cc,v 1.11 2004/12/02 09:31:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4ParameterisationTrd Implementation file // diff --git a/source/geometry/divisions/src/G4ParameterisationTubs.cc b/source/geometry/divisions/src/G4ParameterisationTubs.cc index 546f97f1cc..e229d74e89 100644 --- a/source/geometry/divisions/src/G4ParameterisationTubs.cc +++ b/source/geometry/divisions/src/G4ParameterisationTubs.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParameterisationTubs.cc,v 1.7 2004/05/17 07:20:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4ParameterisationTubs Implementation file // diff --git a/source/geometry/divisions/src/G4VDivisionParameterisation.cc b/source/geometry/divisions/src/G4VDivisionParameterisation.cc index 7dd11774fa..80d7684183 100644 --- a/source/geometry/divisions/src/G4VDivisionParameterisation.cc +++ b/source/geometry/divisions/src/G4VDivisionParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDivisionParameterisation.cc,v 1.10 2004/05/17 07:20:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VDivisionParameterisation Implementation file // diff --git a/source/geometry/magneticfield/History b/source/geometry/magneticfield/History index c84547776b..b33a6fd637 100644 --- a/source/geometry/magneticfield/History +++ b/source/geometry/magneticfield/History @@ -1,4 +1,4 @@ -$Id: History,v 1.98 2004/12/02 09:56:48 gcosmo Exp $ +$Id: History,v 1.99 2005/11/09 14:51:07 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 9th, 2005 G.Cosmo - field-V07-01-00 +---------------------- +- Archived source code of field01 unit test, now moved to examples/extended. +- Migrated unit test NTST to use and std:: namespace. Up-to-date + with G4VParticleChange new interface. + Dec 2nd, 2004 G.Cosmo - field-V06-02-02 ---------------------- - Implemented migration to for standard mathematical functions. diff --git a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh index 98c68de793..27dfaa2f0f 100644 --- a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh +++ b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh @@ -22,7 +22,7 @@ // // // $Id: G4CashKarpRKF45.hh,v 1.9 2003/10/31 14:35:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4CashKarpRKF45 diff --git a/source/geometry/magneticfield/include/G4ChordFinder.hh b/source/geometry/magneticfield/include/G4ChordFinder.hh index 11e2087437..3ff29bdf8c 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.hh +++ b/source/geometry/magneticfield/include/G4ChordFinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4ChordFinder.hh,v 1.16 2003/11/13 17:53:47 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ChordFinder diff --git a/source/geometry/magneticfield/include/G4ChordFinder.icc b/source/geometry/magneticfield/include/G4ChordFinder.icc index 7eabbc8cce..0c68d2fe69 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.icc +++ b/source/geometry/magneticfield/include/G4ChordFinder.icc @@ -22,7 +22,7 @@ // // // $Id: G4ChordFinder.icc,v 1.11 2003/11/13 18:04:48 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4ChordFinder inline implementations // diff --git a/source/geometry/magneticfield/include/G4ChordFinderSaf.hh b/source/geometry/magneticfield/include/G4ChordFinderSaf.hh index 5434b3b9b2..3592f173a9 100644 --- a/source/geometry/magneticfield/include/G4ChordFinderSaf.hh +++ b/source/geometry/magneticfield/include/G4ChordFinderSaf.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ChordFinderSaf.hh,v 1.2 2003/12/09 15:35:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ChordFinderRad diff --git a/source/geometry/magneticfield/include/G4ClassicalRK4.hh b/source/geometry/magneticfield/include/G4ClassicalRK4.hh index f10ca8908c..118da83ae2 100644 --- a/source/geometry/magneticfield/include/G4ClassicalRK4.hh +++ b/source/geometry/magneticfield/include/G4ClassicalRK4.hh @@ -22,7 +22,7 @@ // // // $Id: G4ClassicalRK4.hh,v 1.9 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ClassicalRK4 diff --git a/source/geometry/magneticfield/include/G4DELPHIMagField.hh b/source/geometry/magneticfield/include/G4DELPHIMagField.hh index f58a40db83..316ad0b838 100644 --- a/source/geometry/magneticfield/include/G4DELPHIMagField.hh +++ b/source/geometry/magneticfield/include/G4DELPHIMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4DELPHIMagField.hh,v 1.3 2003/10/31 14:35:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4DELPHIMagField diff --git a/source/geometry/magneticfield/include/G4ElectricField.hh b/source/geometry/magneticfield/include/G4ElectricField.hh index 6691b2a307..81ff0854a5 100644 --- a/source/geometry/magneticfield/include/G4ElectricField.hh +++ b/source/geometry/magneticfield/include/G4ElectricField.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElectricField.hh,v 1.1 2003/11/05 10:35:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ElectricField diff --git a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh index aa7546963d..5b2413ca30 100644 --- a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh +++ b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElectroMagneticField.hh,v 1.10 2004/09/01 10:00:10 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ElectroMagneticField diff --git a/source/geometry/magneticfield/include/G4EqMagElectricField.hh b/source/geometry/magneticfield/include/G4EqMagElectricField.hh index fd14a84945..ece19810bc 100644 --- a/source/geometry/magneticfield/include/G4EqMagElectricField.hh +++ b/source/geometry/magneticfield/include/G4EqMagElectricField.hh @@ -22,7 +22,7 @@ // // // $Id: G4EqMagElectricField.hh,v 1.8 2003/11/05 12:46:39 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4EqMagElectricField diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.hh b/source/geometry/magneticfield/include/G4EquationOfMotion.hh index 13207275d1..472c08a6fe 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.hh +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.hh @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.hh,v 1.9 2003/11/05 12:48:45 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4EquationOfMotion diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.icc b/source/geometry/magneticfield/include/G4EquationOfMotion.icc index 7f07afa6af..ebcf856b81 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.icc +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.icc @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.icc,v 1.8 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Inline implementation diff --git a/source/geometry/magneticfield/include/G4ExplicitEuler.hh b/source/geometry/magneticfield/include/G4ExplicitEuler.hh index a8340ad2c9..95a12bcef5 100644 --- a/source/geometry/magneticfield/include/G4ExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ExplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExplicitEuler.hh,v 1.8 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ExplicitEuler diff --git a/source/geometry/magneticfield/include/G4Field.hh b/source/geometry/magneticfield/include/G4Field.hh index 18fa0b09de..2e0588428e 100644 --- a/source/geometry/magneticfield/include/G4Field.hh +++ b/source/geometry/magneticfield/include/G4Field.hh @@ -22,7 +22,7 @@ // // // $Id: G4Field.hh,v 1.9 2004/09/01 09:59:06 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Field diff --git a/source/geometry/magneticfield/include/G4FieldManager.hh b/source/geometry/magneticfield/include/G4FieldManager.hh index 6e75e22460..3e123199d2 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.hh +++ b/source/geometry/magneticfield/include/G4FieldManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.hh,v 1.14 2003/12/09 14:44:59 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4FieldManager diff --git a/source/geometry/magneticfield/include/G4FieldManager.icc b/source/geometry/magneticfield/include/G4FieldManager.icc index 1af5cc70dc..63841bdcf7 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.icc +++ b/source/geometry/magneticfield/include/G4FieldManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.icc,v 1.10 2004/12/02 09:55:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4FieldManager inline implementation diff --git a/source/geometry/magneticfield/include/G4FieldTrack.hh b/source/geometry/magneticfield/include/G4FieldTrack.hh index 21c72cd20a..96126ca59d 100644 --- a/source/geometry/magneticfield/include/G4FieldTrack.hh +++ b/source/geometry/magneticfield/include/G4FieldTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.hh,v 1.10 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4FieldTrack diff --git a/source/geometry/magneticfield/include/G4FieldTrack.icc b/source/geometry/magneticfield/include/G4FieldTrack.icc index 2e82e56e94..e714675e14 100644 --- a/source/geometry/magneticfield/include/G4FieldTrack.icc +++ b/source/geometry/magneticfield/include/G4FieldTrack.icc @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.icc,v 1.12.2.1 2004/12/02 09:55:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh b/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh index 3dc9b490f6..aa046d4dc4 100644 --- a/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh +++ b/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4HarmonicPolMagField.hh,v 1.3 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4HarmonicPolMagField // diff --git a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh index 24488079c5..f17e9c1c9b 100644 --- a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixExplicitEuler.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4HelixExplicitEuler diff --git a/source/geometry/magneticfield/include/G4HelixHeum.hh b/source/geometry/magneticfield/include/G4HelixHeum.hh index 28c47e40b1..f10855efd6 100644 --- a/source/geometry/magneticfield/include/G4HelixHeum.hh +++ b/source/geometry/magneticfield/include/G4HelixHeum.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixHeum.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4HelixHeum diff --git a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh index 611e62f080..bb8fc25b8a 100644 --- a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixImplicitEuler.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4HelixImplicitEuler diff --git a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh index 7c2a620e6a..abbdb7cc39 100644 --- a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh +++ b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh @@ -22,7 +22,7 @@ // // // $Id: G4HelixSimpleRunge.hh,v 1.6 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4HelixSimpleRunge diff --git a/source/geometry/magneticfield/include/G4ImplicitEuler.hh b/source/geometry/magneticfield/include/G4ImplicitEuler.hh index 54ce557fd1..8755bdd386 100644 --- a/source/geometry/magneticfield/include/G4ImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ImplicitEuler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ImplicitEuler.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ImplicitEuler diff --git a/source/geometry/magneticfield/include/G4LineCurrentMagField.hh b/source/geometry/magneticfield/include/G4LineCurrentMagField.hh index 4eda6ca984..e255abfb56 100644 --- a/source/geometry/magneticfield/include/G4LineCurrentMagField.hh +++ b/source/geometry/magneticfield/include/G4LineCurrentMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4LineCurrentMagField.hh,v 1.3 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4LineCurrentMagField diff --git a/source/geometry/magneticfield/include/G4LineSection.hh b/source/geometry/magneticfield/include/G4LineSection.hh index e09105b9f1..6edfa02756 100644 --- a/source/geometry/magneticfield/include/G4LineSection.hh +++ b/source/geometry/magneticfield/include/G4LineSection.hh @@ -22,7 +22,7 @@ // // // $Id: G4LineSection.hh,v 1.8 2003/10/31 14:35:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4LineSection diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.hh b/source/geometry/magneticfield/include/G4MagErrorStepper.hh index 10a5aa9e9b..1a4c3451e8 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.hh,v 1.10 2003/11/05 12:50:00 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4MagErrorStepper diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.icc b/source/geometry/magneticfield/include/G4MagErrorStepper.icc index d15d4ba9e4..5f0bfc65b8 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.icc,v 1.12 2003/11/05 12:50:36 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh index 65a7739e22..55ba0d1702 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagHelicalStepper.hh,v 1.8 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4MagHelicalStepper diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc index e2586b4d5e..8c5fde4b4f 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagHelicalStepper.icc,v 1.9 2004/12/02 09:55:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Linear Step in regions of no field // diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh index 099f4d32f0..a29a22994c 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorDriver.hh,v 1.16 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4MagInt_Driver diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc index 3f84f753a1..4d0aba1f79 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorDriver.icc,v 1.10 2004/12/02 09:55:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh index 7e82493cb7..1cf884ada6 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorStepper.hh,v 1.10 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4MagIntegratorStepper diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc index 5506d95f2d..ba70d578fc 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorStepper.icc,v 1.8 2004/12/02 09:55:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // inline diff --git a/source/geometry/magneticfield/include/G4Mag_EqRhs.hh b/source/geometry/magneticfield/include/G4Mag_EqRhs.hh index 9f34e38b86..1ec8679a3c 100644 --- a/source/geometry/magneticfield/include/G4Mag_EqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_EqRhs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mag_EqRhs.hh,v 1.8 2003/11/05 12:54:13 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Mag_EqRhs diff --git a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh index e12ff5538b..b446782754 100644 --- a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mag_SpinEqRhs.hh,v 1.10 2004/10/20 23:28:00 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Mag_SpinEqRhs diff --git a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh index daf2b9a195..e62a0e38f4 100644 --- a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mag_UsualEqRhs.hh,v 1.6 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Mag_UsualEqRhs diff --git a/source/geometry/magneticfield/include/G4MagneticField.hh b/source/geometry/magneticfield/include/G4MagneticField.hh index 8b33c80998..d515c4de85 100644 --- a/source/geometry/magneticfield/include/G4MagneticField.hh +++ b/source/geometry/magneticfield/include/G4MagneticField.hh @@ -22,7 +22,7 @@ // // // $Id: G4MagneticField.hh,v 1.13 2003/11/05 10:35:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4MagneticField diff --git a/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh b/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh index 5752a26d3e..fba4d9826a 100644 --- a/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh +++ b/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4QuadrupoleMagField.hh,v 1.3 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4QuadrupoleMagField diff --git a/source/geometry/magneticfield/include/G4RKG3_Stepper.hh b/source/geometry/magneticfield/include/G4RKG3_Stepper.hh index 97d7ebb20a..3c9d3357bb 100644 --- a/source/geometry/magneticfield/include/G4RKG3_Stepper.hh +++ b/source/geometry/magneticfield/include/G4RKG3_Stepper.hh @@ -22,7 +22,7 @@ // // // $Id: G4RKG3_Stepper.hh,v 1.10 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4RKG3_Stepper diff --git a/source/geometry/magneticfield/include/G4SimpleHeum.hh b/source/geometry/magneticfield/include/G4SimpleHeum.hh index d29ddefa93..a41c8fa620 100644 --- a/source/geometry/magneticfield/include/G4SimpleHeum.hh +++ b/source/geometry/magneticfield/include/G4SimpleHeum.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleHeum.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4SimpleHeum diff --git a/source/geometry/magneticfield/include/G4SimpleRunge.hh b/source/geometry/magneticfield/include/G4SimpleRunge.hh index ccbb2cd7ca..431d604fda 100644 --- a/source/geometry/magneticfield/include/G4SimpleRunge.hh +++ b/source/geometry/magneticfield/include/G4SimpleRunge.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleRunge.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4SimpleRunge diff --git a/source/geometry/magneticfield/include/G4UniformElectricField.hh b/source/geometry/magneticfield/include/G4UniformElectricField.hh index a661d5ebd9..eab1819a49 100644 --- a/source/geometry/magneticfield/include/G4UniformElectricField.hh +++ b/source/geometry/magneticfield/include/G4UniformElectricField.hh @@ -22,7 +22,7 @@ // // // $Id: G4UniformElectricField.hh,v 1.8 2003/11/05 10:35:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4UniformElectricField diff --git a/source/geometry/magneticfield/include/G4UniformMagField.hh b/source/geometry/magneticfield/include/G4UniformMagField.hh index 39d0b29e35..ef2c445533 100644 --- a/source/geometry/magneticfield/include/G4UniformMagField.hh +++ b/source/geometry/magneticfield/include/G4UniformMagField.hh @@ -22,7 +22,7 @@ // // // $Id: G4UniformMagField.hh,v 1.8 2003/10/31 14:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4UniformMagField diff --git a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc index acd30c80bc..90ae0fe478 100644 --- a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc +++ b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc @@ -22,7 +22,7 @@ // // // $Id: G4CashKarpRKF45.cc,v 1.13 2003/10/31 14:35:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // The Cash-Karp Runge-Kutta-Fehlberg 4/5 method is an embedded fourth // order method (giving fifth-order accuracy) for the solution of an ODE. diff --git a/source/geometry/magneticfield/src/G4ChordFinder.cc b/source/geometry/magneticfield/src/G4ChordFinder.cc index 100985ab89..6158fcc831 100644 --- a/source/geometry/magneticfield/src/G4ChordFinder.cc +++ b/source/geometry/magneticfield/src/G4ChordFinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4ChordFinder.cc,v 1.46 2004/12/02 09:55:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // 25.02.97 John Apostolakis, design and implimentation diff --git a/source/geometry/magneticfield/src/G4ClassicalRK4.cc b/source/geometry/magneticfield/src/G4ClassicalRK4.cc index 4874d4502b..f9918219cf 100644 --- a/source/geometry/magneticfield/src/G4ClassicalRK4.cc +++ b/source/geometry/magneticfield/src/G4ClassicalRK4.cc @@ -22,7 +22,7 @@ // // // $Id: G4ClassicalRK4.cc,v 1.11 2003/11/05 16:31:48 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4DELPHIMagField.cc b/source/geometry/magneticfield/src/G4DELPHIMagField.cc index bfe2ae6d4e..a0612854b6 100644 --- a/source/geometry/magneticfield/src/G4DELPHIMagField.cc +++ b/source/geometry/magneticfield/src/G4DELPHIMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4DELPHIMagField.cc,v 1.5 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------------- #include "G4DELPHIMagField.hh" diff --git a/source/geometry/magneticfield/src/G4ElectricField.cc b/source/geometry/magneticfield/src/G4ElectricField.cc index 08d4e5c8bd..19a7895f9d 100644 --- a/source/geometry/magneticfield/src/G4ElectricField.cc +++ b/source/geometry/magneticfield/src/G4ElectricField.cc @@ -22,7 +22,7 @@ // // // $Id: G4ElectricField.cc,v 1.1 2003/11/05 10:40:59 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4ElectroMagneticField.cc b/source/geometry/magneticfield/src/G4ElectroMagneticField.cc index b1ad331e19..7594cb77be 100644 --- a/source/geometry/magneticfield/src/G4ElectroMagneticField.cc +++ b/source/geometry/magneticfield/src/G4ElectroMagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: G4ElectroMagneticField.cc,v 1.2 2003/11/05 10:41:00 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4EqMagElectricField.cc b/source/geometry/magneticfield/src/G4EqMagElectricField.cc index 706d7493d3..91cf15cb6c 100644 --- a/source/geometry/magneticfield/src/G4EqMagElectricField.cc +++ b/source/geometry/magneticfield/src/G4EqMagElectricField.cc @@ -22,7 +22,7 @@ // // // $Id: G4EqMagElectricField.cc,v 1.12 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // This is the standard right-hand side for equation of motion. diff --git a/source/geometry/magneticfield/src/G4EquationOfMotion.cc b/source/geometry/magneticfield/src/G4EquationOfMotion.cc index 6abebab6ce..8bbb77d6bb 100644 --- a/source/geometry/magneticfield/src/G4EquationOfMotion.cc +++ b/source/geometry/magneticfield/src/G4EquationOfMotion.cc @@ -22,7 +22,7 @@ // // // $Id: G4EquationOfMotion.cc,v 1.8 2003/10/31 14:35:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4ExplicitEuler.cc b/source/geometry/magneticfield/src/G4ExplicitEuler.cc index 496e792fc9..e47c967739 100644 --- a/source/geometry/magneticfield/src/G4ExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ExplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExplicitEuler.cc,v 1.7 2003/11/05 16:31:49 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Explicit Euler: x_1 = x_0 + h * dx_0 diff --git a/source/geometry/magneticfield/src/G4FieldManager.cc b/source/geometry/magneticfield/src/G4FieldManager.cc index e2beddfc88..23f7787f02 100644 --- a/source/geometry/magneticfield/src/G4FieldManager.cc +++ b/source/geometry/magneticfield/src/G4FieldManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4FieldManager.cc,v 1.13 2003/11/08 04:08:13 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4FieldTrack.cc b/source/geometry/magneticfield/src/G4FieldTrack.cc index a309ff9fdd..a34a6c9f13 100644 --- a/source/geometry/magneticfield/src/G4FieldTrack.cc +++ b/source/geometry/magneticfield/src/G4FieldTrack.cc @@ -22,7 +22,7 @@ // // // $Id: G4FieldTrack.cc,v 1.6 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc b/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc index 24e7907b73..76ab838dc6 100644 --- a/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc +++ b/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4HarmonicPolMagField.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc index e74f8a8118..3685ae0995 100644 --- a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixExplicitEuler.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Helix Explicit Euler: x_1 = x_0 + helix(h) diff --git a/source/geometry/magneticfield/src/G4HelixHeum.cc b/source/geometry/magneticfield/src/G4HelixHeum.cc index 4693c2bd93..e7cfa51b73 100644 --- a/source/geometry/magneticfield/src/G4HelixHeum.cc +++ b/source/geometry/magneticfield/src/G4HelixHeum.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixHeum.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Simple Heum: diff --git a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc index cf2df6fa26..5c0788f5fc 100644 --- a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixImplicitEuler.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Helix Implicit Euler: diff --git a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc index ac7207e19f..a0c1630eb3 100644 --- a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc @@ -22,7 +22,7 @@ // // // $Id: G4HelixSimpleRunge.cc,v 1.6 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Simple Runge: diff --git a/source/geometry/magneticfield/src/G4ImplicitEuler.cc b/source/geometry/magneticfield/src/G4ImplicitEuler.cc index 563812ebea..964507a247 100644 --- a/source/geometry/magneticfield/src/G4ImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ImplicitEuler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ImplicitEuler.cc,v 1.8 2003/11/05 16:31:49 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Implicit Euler: diff --git a/source/geometry/magneticfield/src/G4LineCurrentMagField.cc b/source/geometry/magneticfield/src/G4LineCurrentMagField.cc index c57039d996..f74f7ada3d 100644 --- a/source/geometry/magneticfield/src/G4LineCurrentMagField.cc +++ b/source/geometry/magneticfield/src/G4LineCurrentMagField.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LineCurrentMagField.cc,v 1.5 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------------- #include "G4LineCurrentMagField.hh" diff --git a/source/geometry/magneticfield/src/G4LineSection.cc b/source/geometry/magneticfield/src/G4LineSection.cc index c1ce7eb4ab..732f101887 100644 --- a/source/geometry/magneticfield/src/G4LineSection.cc +++ b/source/geometry/magneticfield/src/G4LineSection.cc @@ -22,7 +22,7 @@ // // // $Id: G4LineSection.cc,v 1.9 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4MagErrorStepper.cc b/source/geometry/magneticfield/src/G4MagErrorStepper.cc index 84bbd460fb..105131cb95 100644 --- a/source/geometry/magneticfield/src/G4MagErrorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagErrorStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagErrorStepper.cc,v 1.12 2003/10/31 14:35:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc index 8911d45aba..2e14cb7f85 100644 --- a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc +++ b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagHelicalStepper.cc,v 1.14 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc index 1caafe1ed2..8bdabd1425 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorDriver.cc,v 1.42 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc index 4f8e9d6b7f..f6476b606b 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorStepper.cc,v 1.10 2003/10/31 14:35:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4Mag_EqRhs.cc b/source/geometry/magneticfield/src/G4Mag_EqRhs.cc index 1ed809a67c..6eb15430aa 100644 --- a/source/geometry/magneticfield/src/G4Mag_EqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_EqRhs.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mag_EqRhs.cc,v 1.10 2003/11/05 16:33:55 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This is the standard right-hand side for equation of motion // in a pure Magnetic Field . diff --git a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc index bc66bd9ebc..5b7f704f42 100644 --- a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mag_SpinEqRhs.cc,v 1.11 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // This is the standard right-hand side for equation of motion. // This version of the right-hand side includes the three components diff --git a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc index 4f85274e41..62e0137c6d 100644 --- a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mag_UsualEqRhs.cc,v 1.11 2004/12/02 09:55:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // This is the 'standard' right-hand side for the equation of motion diff --git a/source/geometry/magneticfield/src/G4MagneticField.cc b/source/geometry/magneticfield/src/G4MagneticField.cc index 65e694e25c..7011f96aea 100644 --- a/source/geometry/magneticfield/src/G4MagneticField.cc +++ b/source/geometry/magneticfield/src/G4MagneticField.cc @@ -22,7 +22,7 @@ // // // $Id: G4MagneticField.cc,v 1.2 2003/11/05 10:40:59 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc b/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc index 9a9f3671d1..2c148df528 100644 --- a/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc +++ b/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4QuadrupoleMagField.cc,v 1.3 2003/10/31 14:35:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4RKG3_Stepper.cc b/source/geometry/magneticfield/src/G4RKG3_Stepper.cc index 7d528fa5b9..62e9653cf7 100644 --- a/source/geometry/magneticfield/src/G4RKG3_Stepper.cc +++ b/source/geometry/magneticfield/src/G4RKG3_Stepper.cc @@ -22,7 +22,7 @@ // // // $Id: G4RKG3_Stepper.cc,v 1.9 2003/10/31 14:35:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4SimpleHeum.cc b/source/geometry/magneticfield/src/G4SimpleHeum.cc index e73c929f4b..c9d727db64 100644 --- a/source/geometry/magneticfield/src/G4SimpleHeum.cc +++ b/source/geometry/magneticfield/src/G4SimpleHeum.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleHeum.cc,v 1.7 2003/11/05 16:31:49 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Simple Heum: // x_1 = x_0 + h * diff --git a/source/geometry/magneticfield/src/G4SimpleRunge.cc b/source/geometry/magneticfield/src/G4SimpleRunge.cc index 9a7d163df1..17044d0dc7 100644 --- a/source/geometry/magneticfield/src/G4SimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4SimpleRunge.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleRunge.cc,v 1.9 2003/11/05 16:31:49 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Simple Runge: // diff --git a/source/geometry/magneticfield/src/G4UniformElectricField.cc b/source/geometry/magneticfield/src/G4UniformElectricField.cc index cf7ba28439..cbecefa89a 100644 --- a/source/geometry/magneticfield/src/G4UniformElectricField.cc +++ b/source/geometry/magneticfield/src/G4UniformElectricField.cc @@ -22,7 +22,7 @@ // // // $Id: G4UniformElectricField.cc,v 1.11 2004/12/02 09:55:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/geometry/magneticfield/src/G4UniformMagField.cc b/source/geometry/magneticfield/src/G4UniformMagField.cc index 238a95f2b7..1f79749d09 100644 --- a/source/geometry/magneticfield/src/G4UniformMagField.cc +++ b/source/geometry/magneticfield/src/G4UniformMagField.cc @@ -22,7 +22,7 @@ // // // $Id: G4UniformMagField.cc,v 1.10 2004/12/02 09:55:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class for creation of uniform Magnetic Field diff --git a/source/geometry/management/History b/source/geometry/management/History index 903f32c121..579ebb5048 100644 --- a/source/geometry/management/History +++ b/source/geometry/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.89 2005/05/25 14:58:11 gcosmo Exp $ +$Id: History,v 1.95 2005/11/24 18:16:54 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,40 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 19, 2005 J. Apostolakis geommng-V07-01-05 +- Revised G4VPVParameterisation + Changed signature of ComputeMaterial, adding parent touchable pointer + -> this refinement enables easy use of nested parameterisations + Additional methods allow nested parameterisation to be identified + G4bool IsNested() const; + and to provide their material via new interface class + G4VVolumeMaterialScanner* GetMaterialScanner(); + [ As a result is that G4PhysicalTouchable in volumes is not needed + in the implementation (and is supressed.) + +November 11, 2005 J. Apostolakis geommng-V07-01-04 +- Added methods to identify Regular Structures in Physical volume + New pure virtual methods: + - IsRegularStructure() , returns boolean + - GetRegularStructureId() , returns code for structure type + +November 9, 2005 G.Cosmo geommng-V07-01-03 +- Added fake default constructor for base types of volumes, solids and + regions, for usage of direct object persistency. +- Migrated unit test TestAssemblyVolume to from + deprecated . + +October 28, 2005 M.Asai geommng-V07-01-02 +- Merged concept of "envelope" to G4Region for fast-parameterisation. + +September 15, 2005 V.Grichine geommng-V07-01-01 +- Added concrete implementation for GetPointOnSurface() to G4ReflectedSolid. + +August 10, 2005 G.Cosmo geommng-V07-01-00 +- Added virtual method GetPointOnSurface() to G4VSolid to be implemented in + the concrete solids classed for returning a random-point uniformely + distributed on the surface. + May 25, 2005 G.Cosmo geommng-V07-00-04 - Fixed problem with previous tag, where version of G4LogicalVolume.cc was not correct and untagged. diff --git a/source/geometry/management/include/G4AffineTransform.hh b/source/geometry/management/include/G4AffineTransform.hh index 1fd4f775cb..c90dd68633 100644 --- a/source/geometry/management/include/G4AffineTransform.hh +++ b/source/geometry/management/include/G4AffineTransform.hh @@ -22,7 +22,7 @@ // // // $Id: G4AffineTransform.hh,v 1.5 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4AffineTransform diff --git a/source/geometry/management/include/G4AffineTransform.icc b/source/geometry/management/include/G4AffineTransform.icc index 6d25262dba..77fa4057e0 100644 --- a/source/geometry/management/include/G4AffineTransform.icc +++ b/source/geometry/management/include/G4AffineTransform.icc @@ -22,7 +22,7 @@ // // // $Id: G4AffineTransform.icc,v 1.7 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4AffineTransformation Inline implementation diff --git a/source/geometry/management/include/G4AssemblyTriplet.hh b/source/geometry/management/include/G4AssemblyTriplet.hh index 9aadc0a5e4..7ca8f67110 100644 --- a/source/geometry/management/include/G4AssemblyTriplet.hh +++ b/source/geometry/management/include/G4AssemblyTriplet.hh @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyTriplet.hh,v 1.6 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4AssemblyTriplet diff --git a/source/geometry/management/include/G4AssemblyTriplet.icc b/source/geometry/management/include/G4AssemblyTriplet.icc index 1a08284f74..198d934385 100644 --- a/source/geometry/management/include/G4AssemblyTriplet.icc +++ b/source/geometry/management/include/G4AssemblyTriplet.icc @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyTriplet.icc,v 1.5 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4AssemblyTriplet - inline implementation diff --git a/source/geometry/management/include/G4BlockingList.hh b/source/geometry/management/include/G4BlockingList.hh index 3905c83f06..6043e724fa 100644 --- a/source/geometry/management/include/G4BlockingList.hh +++ b/source/geometry/management/include/G4BlockingList.hh @@ -22,7 +22,7 @@ // // // $Id: G4BlockingList.hh,v 1.3 2005/05/23 07:58:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4BlockingList // diff --git a/source/geometry/management/include/G4BlockingList.icc b/source/geometry/management/include/G4BlockingList.icc index fd48c64b2e..22cb812f58 100644 --- a/source/geometry/management/include/G4BlockingList.icc +++ b/source/geometry/management/include/G4BlockingList.icc @@ -22,7 +22,7 @@ // // // $Id: G4BlockingList.icc,v 1.2 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4BlockingList Inlined Implementation diff --git a/source/geometry/management/include/G4GeometryManager.hh b/source/geometry/management/include/G4GeometryManager.hh index 099df20642..e56ffc9671 100644 --- a/source/geometry/management/include/G4GeometryManager.hh +++ b/source/geometry/management/include/G4GeometryManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryManager.hh,v 1.10 2005/04/14 11:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4GeometryManager // diff --git a/source/geometry/management/include/G4IdentityTrajectoryFilter.hh b/source/geometry/management/include/G4IdentityTrajectoryFilter.hh index 0de00d8ae6..3c36171b03 100644 --- a/source/geometry/management/include/G4IdentityTrajectoryFilter.hh +++ b/source/geometry/management/include/G4IdentityTrajectoryFilter.hh @@ -22,7 +22,7 @@ // // // $Id: G4IdentityTrajectoryFilter.hh,v 1.2 2003/11/02 14:01:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class GIdentityTrajectoryFilter diff --git a/source/geometry/management/include/G4LogicalSurface.hh b/source/geometry/management/include/G4LogicalSurface.hh index 576acf0e30..177514c1f7 100644 --- a/source/geometry/management/include/G4LogicalSurface.hh +++ b/source/geometry/management/include/G4LogicalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSurface.hh,v 1.9 2003/12/01 14:41:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // Class G4LogicalSurface diff --git a/source/geometry/management/include/G4LogicalSurface.icc b/source/geometry/management/include/G4LogicalSurface.icc index 8697b3a088..37f3b3566c 100644 --- a/source/geometry/management/include/G4LogicalSurface.icc +++ b/source/geometry/management/include/G4LogicalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSurface.icc,v 1.8 2003/12/01 14:41:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // Surface Class Inline Methods diff --git a/source/geometry/management/include/G4LogicalVolume.hh b/source/geometry/management/include/G4LogicalVolume.hh index 3cdb2c0c28..02d568d557 100644 --- a/source/geometry/management/include/G4LogicalVolume.hh +++ b/source/geometry/management/include/G4LogicalVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.hh,v 1.23 2005/05/25 14:57:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LogicalVolume.hh,v 1.25 2005/11/09 14:54:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4LogicalVolume @@ -80,16 +80,18 @@ // per content. // const G4VisAttributes* fVisAttributes // - Pointer (possibly 0) to visualization attributes. -// G4FastSimulationManager* fFastSimulationManager -// - Pointer (possibly 0) to G4FastSimulationManager object. // G4Region* fRegion // - Pointer to the cuts region (if any) // G4MaterialCutsCouple* fCutsCouple // - Pointer (possibly 0) to associated production cuts. -// G4bool fIsEnvelope -// - Flags if the Logical Volume is an envelope for a FastSimulationManager. // G4double fBiasWeight // - Weight used in the event biasing technique. +// +// Following data members has been moved to G4Region - M.Asai (Aug/18/2005) +// G4FastSimulationManager* fFastSimulationManager +// - Pointer (possibly 0) to G4FastSimulationManager object. +// G4bool fIsEnvelope +// - Flags if the Logical Volume is an envelope for a FastSimulationManager. // History: // 12.11.04 G.Cosmo: Added GetMass() method for computing mass of the tree @@ -267,31 +269,22 @@ class G4LogicalVolume // Gets and sets visualization attributes. A copy of 'VA' on the heap // will be made in the case the call with a const reference is used. - inline void BecomeEnvelopeForFastSimulation(G4FastSimulationManager* ); - // Makes this an Envelope for given FastSimulationManager. - // Ensures that all its daughter volumes get it too - unless they - // have one already. - void ClearEnvelopeForFastSimulation(G4LogicalVolume* motherLV= 0); - // Erase volume's Envelope status and propagate the FastSimulationManager - // of its mother volume to itself and its daughters. inline G4FastSimulationManager* GetFastSimulationManager () const; - // Gets current FastSimulationManager pointer. + // Gets current FastSimulationManager pointer if exists, otherwise null. inline void SetBiasWeight (G4double w); inline G4double GetBiasWeight() const; // Sets and gets bias weight. + public: // without description + + G4LogicalVolume(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: - void SetFastSimulationManager (G4FastSimulationManager* pPA, - G4bool IsEnvelope); - // Sets the fast simulation manager. Private method called by the - // public SetIsEnvelope method with IsEnvelope = true. It is - // then called recursivaly to the daughters to propagate the - // FastSimulationManager pointer with IsEnvelope = false. - - G4LogicalVolume* FindMotherLogicalVolumeForEnvelope(); - G4LogicalVolume(const G4LogicalVolume&); G4LogicalVolume& operator=(const G4LogicalVolume&); // Private copy-constructor and assignment operator. @@ -327,15 +320,10 @@ class G4LogicalVolume // Mass of the logical volume tree. const G4VisAttributes* fVisAttributes; // Pointer (possibly 0) to visualization attributes. - G4FastSimulationManager* fFastSimulationManager; - // Pointer (possibly 0) to G4FastSimulationManager object. G4Region* fRegion; // Pointer to the cuts region (if any) G4MaterialCutsCouple* fCutsCouple; // Pointer (possibly 0) to associated production cuts. - G4bool fIsEnvelope; - // Flags if the Logical Volume is an envelope for a - // FastSimulationManager. G4double fBiasWeight; // Weight used in the event biasing technique. }; diff --git a/source/geometry/management/include/G4LogicalVolume.icc b/source/geometry/management/include/G4LogicalVolume.icc index 425d7ff86a..f2a4d708bf 100644 --- a/source/geometry/management/include/G4LogicalVolume.icc +++ b/source/geometry/management/include/G4LogicalVolume.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.icc,v 1.21 2005/05/22 16:41:57 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LogicalVolume.icc,v 1.23 2005/11/09 14:54:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4LogicalVolume Inline Implementation file @@ -92,7 +92,9 @@ G4VPhysicalVolume* G4LogicalVolume::GetDaughter(const G4int i) const inline G4FastSimulationManager* G4LogicalVolume::GetFastSimulationManager () const { - return fFastSimulationManager; + G4FastSimulationManager* fFSM = 0; + if(fRegion) fFSM = fRegion->GetFastSimulationManager(); + return fFSM; } // ******************************************************************** @@ -117,23 +119,8 @@ void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter) fMass = 0.; fDaughters.push_back(pNewDaughter); - // Propagates the mother's FastSimulationManager pointer. If we are in - // the World logical volume, propagates only if pointer != 0. - // (one could also parameterise all the World volume for a particle type!) - - G4LogicalVolume* myLogical = pNewDaughter->GetMotherLogical(); G4LogicalVolume* pDaughterLogical = pNewDaughter->GetLogicalVolume(); - if( myLogical !=0 ) - { - if( pDaughterLogical->GetFastSimulationManager()!=fFastSimulationManager ) - pDaughterLogical->SetFastSimulationManager(fFastSimulationManager,false); - } - else - { - pDaughterLogical->SetFastSimulationManager(0, false); - } - // Propagate the Field Manager, if the daughter has no field Manager. // G4FieldManager* pDaughterFieldManager = pDaughterLogical->GetFieldManager(); @@ -475,17 +462,6 @@ void G4LogicalVolume::SetVisAttributes (const G4VisAttributes* pVA) fVisAttributes = pVA; } -// ******************************************************************** -// BecomeEnvelopeForFastSimulation -// ******************************************************************** -// -inline -void -G4LogicalVolume::BecomeEnvelopeForFastSimulation(G4FastSimulationManager* pPA) -{ - SetFastSimulationManager(pPA, true); -} - // ******************************************************************** // SetBiasWeight // ******************************************************************** @@ -505,3 +481,4 @@ G4double G4LogicalVolume::GetBiasWeight() const { return fBiasWeight; } + diff --git a/source/geometry/management/include/G4LogicalVolumeStore.hh b/source/geometry/management/include/G4LogicalVolumeStore.hh index 63a922f300..97af71907e 100644 --- a/source/geometry/management/include/G4LogicalVolumeStore.hh +++ b/source/geometry/management/include/G4LogicalVolumeStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeStore.hh,v 1.10 2004/09/02 07:49:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4LogicalVolumeStore // diff --git a/source/geometry/management/include/G4PhysicalVolumeStore.hh b/source/geometry/management/include/G4PhysicalVolumeStore.hh index 53b627a6ab..58df2ef72f 100644 --- a/source/geometry/management/include/G4PhysicalVolumeStore.hh +++ b/source/geometry/management/include/G4PhysicalVolumeStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeStore.hh,v 1.12 2004/09/02 07:49:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4PhysicalVolume // diff --git a/source/geometry/management/include/G4ReflectedSolid.hh b/source/geometry/management/include/G4ReflectedSolid.hh index 1c7963d485..0f3ba529de 100644 --- a/source/geometry/management/include/G4ReflectedSolid.hh +++ b/source/geometry/management/include/G4ReflectedSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.hh,v 1.2 2004/10/10 10:15:09 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ReflectedSolid.hh,v 1.4 2005/09/21 10:24:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ReflectedSolid @@ -62,32 +62,34 @@ class G4ReflectedSolid : public G4VSolid // Includes all the methods that a solid requires. - EInside Inside( const G4ThreeVector& p ) const ; + EInside Inside( const G4ThreeVector& p ) const; G4bool CalculateExtent( const EAxis pAxis, const G4VoxelLimits& pVoxelLimit, const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const ; + G4double& pMin, G4double& pMax) const; - G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const ; + G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const; G4double DistanceToIn( const G4ThreeVector& p, - const G4ThreeVector& v ) const ; + const G4ThreeVector& v ) const; - G4double DistanceToIn( const G4ThreeVector& p) const ; + G4double DistanceToIn( const G4ThreeVector& p) const; G4double DistanceToOut( const G4ThreeVector& p, const G4ThreeVector& v, const G4bool calcNorm=false, G4bool *validNorm=0, - G4ThreeVector *n=0 ) const ; + G4ThreeVector *n=0 ) const; G4double DistanceToOut( const G4ThreeVector& p ) const ; void ComputeDimensions( G4VPVParameterisation* p, const G4int n, - const G4VPhysicalVolume* pRep ) ; - + const G4VPhysicalVolume* pRep ); + + G4ThreeVector GetPointOnSurface() const; + public: // with description virtual G4GeometryType GetEntityType() const; diff --git a/source/geometry/management/include/G4Region.hh b/source/geometry/management/include/G4Region.hh index da6eca9b6d..81cb8ca05c 100644 --- a/source/geometry/management/include/G4Region.hh +++ b/source/geometry/management/include/G4Region.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Region.hh,v 1.11 2005/03/02 08:24:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Region.hh,v 1.14 2005/11/09 14:54:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4Region // @@ -31,9 +31,6 @@ // Defines a region or a group of regions in the detector geometry // setup, sharing properties associated to materials or production // cuts which may affect or bias specific physics processes. -// -// Member data: -// // History: // 18.09.02 G.Cosmo Initial version @@ -47,6 +44,8 @@ class G4Material; class G4VUserRegionInformation; class G4MaterialCutsCouple; class G4UserLimits; +class G4FastSimulationManager; +class G4VPhysicalVolume; #include #include @@ -115,7 +114,7 @@ class G4Region inline void SetUserLimits(G4UserLimits* ul); inline G4UserLimits* GetUserLimits() const; - // Set and Get methodf for userL-limits associated to a region. + // Set and Get methods for userL-limits associated to a region. // Once user-limits are set, it will propagate to daughter volumes. inline void ClearMap(); @@ -129,6 +128,42 @@ class G4Region // Find a G4MaterialCutsCouple which corresponds to the material // in this region. + inline void SetFastSimulationManager(G4FastSimulationManager* fsm); + inline G4FastSimulationManager* GetFastSimulationManager() const; + // Set and Get methods for G4FastSimulationManager. + // The root logical volume that has the region with G4FastSimulationManager + // becomes an envelope of fast simulation. + + void ClearFastSimulationManager(); + // Set G4FastSimulationManager pointer to the one for the parent region + // if it exists. Otherwise set to null. + + inline G4VPhysicalVolume* GetWorldPhysical() const; + // Get method for the world physical volume which this region + // belongs to. A valid pointer will be assigned by G4RunManagerKernel + // through G4RegionStore when the geometry is to be closed. Thus, this + // pointer may be incorrect at PreInit and Idle state. If the pointer + // is null at the proper state, this particular region does not belong + // to any world (maybe not assigned to any volume, etc.). + + void SetWorld(G4VPhysicalVolume* wp); + // Set the world physical volume if this region belongs to this world. + // If wp is null, reset the pointer. + + G4bool BelongsTo(G4VPhysicalVolume* thePhys) const; + // Returns whether this region belongs to the given physical volume + // (recursively scanned to the bottom of the hierarchy) + + G4Region* GetParentRegion() const; + // Returns a region that contains this region. Otherwise null returned. + + public: // without description + + G4Region(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4Region(const G4Region&); @@ -148,6 +183,10 @@ class G4Region G4VUserRegionInformation* fUserInfo; G4UserLimits* fUserLimits; + + G4FastSimulationManager* fFastSimulationManager; + + G4VPhysicalVolume* fWorldPhys; }; #include "G4Region.icc" diff --git a/source/geometry/management/include/G4Region.icc b/source/geometry/management/include/G4Region.icc index 3f82122c4b..8f3eed795d 100644 --- a/source/geometry/management/include/G4Region.icc +++ b/source/geometry/management/include/G4Region.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Region.icc,v 1.10 2005/03/02 08:24:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Region.icc,v 1.11 2005/08/18 16:51:37 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Region Inline Implementation file @@ -224,3 +224,36 @@ G4MaterialCutsCouple* G4Region::FindCouple(G4Material* mat) if(c!=fMaterialCoupleMap.end()) couple = (*c).second; return couple; } + +// ******************************************************************** +// SetFastSimulationManager +// ******************************************************************** +// +inline +void G4Region::SetFastSimulationManager(G4FastSimulationManager* fsm) +{ + fFastSimulationManager = fsm; +} + +// ******************************************************************** +// GetFastSimulationManager +// ******************************************************************** +// +inline +G4FastSimulationManager* G4Region::GetFastSimulationManager() const +{ + return fFastSimulationManager; +} + +// ******************************************************************** +// GetWorldPhysical +// ******************************************************************** +// +inline +G4VPhysicalVolume* G4Region::GetWorldPhysical() const +{ + return fWorldPhys; +} + + + diff --git a/source/geometry/management/include/G4RegionStore.hh b/source/geometry/management/include/G4RegionStore.hh index 2d290c1ee8..8a0ce9ec2a 100644 --- a/source/geometry/management/include/G4RegionStore.hh +++ b/source/geometry/management/include/G4RegionStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RegionStore.hh,v 1.6 2004/09/02 07:49:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RegionStore.hh,v 1.7 2005/08/18 16:51:37 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4RegionStore // @@ -56,6 +56,7 @@ class G4Region; class G4VStoreNotifier; +class G4VPhysicalVolume; class G4RegionStore : public std::vector { @@ -80,7 +81,7 @@ class G4RegionStore : public std::vector // to FALSE. Used by the run manager to notify that the // physics table has been updated. - void UpdateMaterialList(); + void UpdateMaterialList(G4VPhysicalVolume* currentWorld); // Forces recomputation of material lists in all regions // in the store. @@ -95,6 +96,11 @@ class G4RegionStore : public std::vector virtual ~G4RegionStore(); // Destructor: takes care to delete allocated regions. + void SetWorldVolume(); + // Set a world volume pointer to a region that belongs to it. + // Scan over all world volumes. + // This method should be exclusively used by G4RunManagerKernel. + protected: G4RegionStore(); diff --git a/source/geometry/management/include/G4SmartVoxelHeader.hh b/source/geometry/management/include/G4SmartVoxelHeader.hh index 817e28191c..a5dd671b96 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.hh +++ b/source/geometry/management/include/G4SmartVoxelHeader.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelHeader.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4SmartVoxelHeader // diff --git a/source/geometry/management/include/G4SmartVoxelHeader.icc b/source/geometry/management/include/G4SmartVoxelHeader.icc index ff1e811e36..b9c2cc9a68 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.icc +++ b/source/geometry/management/include/G4SmartVoxelHeader.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelHeader.icc,v 1.5 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4SmartVoxelHeader Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelNode.hh b/source/geometry/management/include/G4SmartVoxelNode.hh index a8a0e6d97b..154f6c84f9 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.hh +++ b/source/geometry/management/include/G4SmartVoxelNode.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4SmartVoxelNode // diff --git a/source/geometry/management/include/G4SmartVoxelNode.icc b/source/geometry/management/include/G4SmartVoxelNode.icc index 9902f5a5d6..8eef0702be 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.icc +++ b/source/geometry/management/include/G4SmartVoxelNode.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.icc,v 1.4 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4SmartVoxelNode Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelProxy.hh b/source/geometry/management/include/G4SmartVoxelProxy.hh index cec3663b64..702f623261 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.hh +++ b/source/geometry/management/include/G4SmartVoxelProxy.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.hh,v 1.7 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4SmartVoxelProxy // diff --git a/source/geometry/management/include/G4SmartVoxelProxy.icc b/source/geometry/management/include/G4SmartVoxelProxy.icc index f02a98b1a0..89b9d23ef1 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.icc +++ b/source/geometry/management/include/G4SmartVoxelProxy.icc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.icc,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4SmartVoxelProxy Inline implementation diff --git a/source/geometry/management/include/G4SmartVoxelStat.hh b/source/geometry/management/include/G4SmartVoxelStat.hh index 0048d7dd13..6a4c3f823f 100644 --- a/source/geometry/management/include/G4SmartVoxelStat.hh +++ b/source/geometry/management/include/G4SmartVoxelStat.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4SmartVoxelStat.hh,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/management/include/G4SolidStore.hh b/source/geometry/management/include/G4SolidStore.hh index c17febf54f..86e5623cc9 100644 --- a/source/geometry/management/include/G4SolidStore.hh +++ b/source/geometry/management/include/G4SolidStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4SolidStore.hh,v 1.10 2004/09/02 07:49:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4SolidStore // diff --git a/source/geometry/management/include/G4TouchableHandle.hh b/source/geometry/management/include/G4TouchableHandle.hh index 2ee331e0f3..7fb9fbe661 100644 --- a/source/geometry/management/include/G4TouchableHandle.hh +++ b/source/geometry/management/include/G4TouchableHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHandle.hh,v 1.5 2001/11/06 17:06:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class G4TouchableHandle // diff --git a/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh b/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh index 2b07a305a2..e86d1a93f9 100644 --- a/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh +++ b/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCurvedTrajectoryFilter.hh,v 1.2 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VCurevedTrajectoryFilter diff --git a/source/geometry/management/include/G4VPVDivisionFactory.hh b/source/geometry/management/include/G4VPVDivisionFactory.hh index 93d963084f..758e01fb3c 100644 --- a/source/geometry/management/include/G4VPVDivisionFactory.hh +++ b/source/geometry/management/include/G4VPVDivisionFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPVDivisionFactory.hh,v 1.1 2004/05/13 14:53:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VPVDivisionFactory diff --git a/source/geometry/management/include/G4VPVParameterisation.hh b/source/geometry/management/include/G4VPVParameterisation.hh index 155855ed81..df03112cc8 100644 --- a/source/geometry/management/include/G4VPVParameterisation.hh +++ b/source/geometry/management/include/G4VPVParameterisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPVParameterisation.hh,v 1.6 2003/11/02 14:00:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VPVParameterisation.hh,v 1.11 2005/11/24 18:09:22 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VPVParamterisation // @@ -42,8 +42,10 @@ #define G4VPVPARAMETERISATION_HH #include "G4Types.hh" +#include "G4VVolumeMaterialScanner.hh" class G4VPhysicalVolume; +class G4VTouchable; class G4VSolid; class G4Material; @@ -62,17 +64,26 @@ class G4Polycone; class G4Polyhedra; class G4Hype; +class G4VVolumeMaterialScanner; + class G4VPVParameterisation { public: virtual void ComputeTransformation(const G4int, - G4VPhysicalVolume *) const = 0; + G4VPhysicalVolume * ) const = 0; virtual G4VSolid* ComputeSolid(const G4int, G4VPhysicalVolume *); - virtual G4Material* ComputeMaterial(const G4int, G4VPhysicalVolume *); - + virtual G4Material* ComputeMaterial(const G4int repNo, + G4VPhysicalVolume *currentVol, + const G4VTouchable *parentTouch=0); + // Refined method, enabling nested parameterisations + + virtual G4bool IsNested() const; + virtual G4VVolumeMaterialScanner* GetMaterialScanner(); + // These enable material scan for nested parameterisations + virtual void ComputeDimensions(G4Box &, const G4int, const G4VPhysicalVolume *) const {} diff --git a/source/geometry/management/include/G4VPhysicalVolume.hh b/source/geometry/management/include/G4VPhysicalVolume.hh index 85e0a65c51..dfa61f1187 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.hh +++ b/source/geometry/management/include/G4VPhysicalVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPhysicalVolume.hh,v 1.10 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VPhysicalVolume.hh,v 1.12 2005/11/11 22:34:37 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VPhysicalVolume @@ -155,6 +155,20 @@ class G4VPhysicalVolume G4double& offset, G4bool& consuming) const = 0; // Return replication information. No-op for no replicated volumes. + virtual G4bool IsRegularStructure() const = 0; + // Returns true if the underlying volume structure is regular. + virtual G4int GetRegularStructureId() const = 0; + // Returns non-zero code in case the underlying volume structure + // is regular, voxel-like. Value is id for structure type. + // If non-zero the volume is a candidate for specialised + // navigation such as 'nearest neighbour' directly on volumes. + + public: // without description + + G4VPhysicalVolume(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. private: diff --git a/source/geometry/management/include/G4VPhysicalVolume.icc b/source/geometry/management/include/G4VPhysicalVolume.icc index e940f85631..a76fda2235 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.icc +++ b/source/geometry/management/include/G4VPhysicalVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicalVolume.icc,v 1.8 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VPhysicalVolume Inline Implementation diff --git a/source/geometry/management/include/G4VSolid.hh b/source/geometry/management/include/G4VSolid.hh index 25b7ab3ea3..091a4945de 100644 --- a/source/geometry/management/include/G4VSolid.hh +++ b/source/geometry/management/include/G4VSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.hh,v 1.19 2005/05/23 07:52:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VSolid.hh,v 1.21 2005/11/09 14:54:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VSolid @@ -176,6 +176,9 @@ class G4VSolid // Provide identification of the class of an object. // (required for persistency and STEP interface) + virtual G4ThreeVector GetPointOnSurface() const; + // Returns a random point located on the surface of the solid. + virtual std::ostream& StreamInfo(std::ostream& os) const = 0; // Dumps contents of the solid to a stream. inline void DumpInfo() const; @@ -206,8 +209,12 @@ class G4VSolid // If the solid is a "G4DisplacedSolid", return a self pointer // else return 0. - // virtual G4ThreeVectorList* - // CreateRotatedVertices(const G4AffineTransform& pTransform) const = 0 ; + public: // without description + + G4VSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. protected: // with description diff --git a/source/geometry/management/include/G4VSolid.icc b/source/geometry/management/include/G4VSolid.icc index 220685ef75..5f5fe4a9a5 100644 --- a/source/geometry/management/include/G4VSolid.icc +++ b/source/geometry/management/include/G4VSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4VSolid.icc,v 1.7 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4VSolid Inline implementation diff --git a/source/geometry/management/include/G4VStoreNotifier.hh b/source/geometry/management/include/G4VStoreNotifier.hh index 514b296d0e..46f683a09e 100644 --- a/source/geometry/management/include/G4VStoreNotifier.hh +++ b/source/geometry/management/include/G4VStoreNotifier.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStoreNotifier.hh,v 1.1 2004/09/02 07:48:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VStoreNotifier // diff --git a/source/geometry/management/include/G4VTouchable.hh b/source/geometry/management/include/G4VTouchable.hh index a60071bcb9..5542d92904 100644 --- a/source/geometry/management/include/G4VTouchable.hh +++ b/source/geometry/management/include/G4VTouchable.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTouchable.hh,v 1.8 2004/11/19 07:30:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VTouchable diff --git a/source/geometry/management/include/G4VTouchable.icc b/source/geometry/management/include/G4VTouchable.icc index b07369fdbf..cdf002dd5e 100644 --- a/source/geometry/management/include/G4VTouchable.icc +++ b/source/geometry/management/include/G4VTouchable.icc @@ -22,7 +22,7 @@ // // // $Id: G4VTouchable.icc,v 1.8 2004/11/19 07:26:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VTouchable Inline implementation diff --git a/source/geometry/management/include/G4VUserRegionInformation.hh b/source/geometry/management/include/G4VUserRegionInformation.hh index b673d00386..7b878206eb 100644 --- a/source/geometry/management/include/G4VUserRegionInformation.hh +++ b/source/geometry/management/include/G4VUserRegionInformation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserRegionInformation.hh,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/physics_lists/hadronic/Packaging/include/G4EMTailorer.hh b/source/geometry/management/include/G4VVolumeMaterialScanner.hh similarity index 68% rename from physics_lists/hadronic/Packaging/include/G4EMTailorer.hh rename to source/geometry/management/include/G4VVolumeMaterialScanner.hh index 7050d29403..c8ada29870 100644 --- a/physics_lists/hadronic/Packaging/include/G4EMTailorer.hh +++ b/source/geometry/management/include/G4VVolumeMaterialScanner.hh @@ -20,33 +20,34 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4EMTailorer_h -#define G4EMTailorer_h +// +// $Id: G4VVolumeMaterialScanner.hh,v 1.2 2005/12/13 08:43:56 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// class G4VVolumeMaterialScanner +// +// Class description: +// +// Interface for repeated volumes or parameterisations that are able to +// tabulate their materials. -class G4EMBuilder; -#include "G4UImessenger.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAString.hh" +// History: +// 18.11.05 J.Apostolakis First version -class G4EMTailorer: public G4UImessenger +#ifndef G4VVOLUMEMATERIALSCANNER_HH +#define G4VVOLUMEMATERIALSCANNER_HH +class G4Material; +// #include "G4Material.hh" + +class G4VVolumeMaterialScanner { public: - G4EMTailorer(G4EMBuilder * af); - - virtual ~G4EMTailorer() - { - delete theSynch; - delete theGN; - } + G4VVolumeMaterialScanner() {} + virtual ~G4VVolumeMaterialScanner() {} - void SetNewValue(G4UIcommand* aComm, G4String aS); - - private: - G4EMBuilder * theB; - G4UIcmdWithAString * theSynch; - G4UIcmdWithAString * theGN; - G4UIdirectory *aDir1; - G4UIdirectory *aDir2; + virtual G4int GetNumberOfMaterials() const =0; + virtual G4Material* GetMaterial(G4int idx) const =0; }; - + #endif + diff --git a/source/geometry/management/include/G4VoxelLimits.hh b/source/geometry/management/include/G4VoxelLimits.hh index 63906d1881..3ec26c2b8a 100644 --- a/source/geometry/management/include/G4VoxelLimits.hh +++ b/source/geometry/management/include/G4VoxelLimits.hh @@ -22,7 +22,7 @@ // // // $Id: G4VoxelLimits.hh,v 1.8 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VoxelLimits // diff --git a/source/geometry/management/include/G4VoxelLimits.icc b/source/geometry/management/include/G4VoxelLimits.icc index 32ce3da9bf..d9727955da 100644 --- a/source/geometry/management/include/G4VoxelLimits.icc +++ b/source/geometry/management/include/G4VoxelLimits.icc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelLimits.icc,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4VoxelLimits Inline implementation diff --git a/source/geometry/management/include/meshdefs.hh b/source/geometry/management/include/meshdefs.hh index d3948bcd80..0ba41c1546 100644 --- a/source/geometry/management/include/meshdefs.hh +++ b/source/geometry/management/include/meshdefs.hh @@ -22,7 +22,7 @@ // // // $Id: meshdefs.hh,v 1.6 2004/12/10 16:20:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Tube/Cone Meshing constants for extent calculations diff --git a/source/geometry/management/include/voxeldefs.hh b/source/geometry/management/include/voxeldefs.hh index 3cff65898b..b3c2b8a126 100644 --- a/source/geometry/management/include/voxeldefs.hh +++ b/source/geometry/management/include/voxeldefs.hh @@ -22,7 +22,7 @@ // // // $Id: voxeldefs.hh,v 1.6 2003/11/02 14:01:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/geometry/management/src/G4BlockingList.cc b/source/geometry/management/src/G4BlockingList.cc index 3ef7e93bb1..c4955ab6fb 100644 --- a/source/geometry/management/src/G4BlockingList.cc +++ b/source/geometry/management/src/G4BlockingList.cc @@ -22,7 +22,7 @@ // // // $Id: G4BlockingList.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4BlockingList Implementation diff --git a/source/geometry/management/src/G4GeometryManager.cc b/source/geometry/management/src/G4GeometryManager.cc index 3ac318cc1e..f392e6f876 100644 --- a/source/geometry/management/src/G4GeometryManager.cc +++ b/source/geometry/management/src/G4GeometryManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryManager.cc,v 1.17 2005/04/14 11:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4GeometryManager // diff --git a/source/geometry/management/src/G4IdentityTrajectoryFilter.cc b/source/geometry/management/src/G4IdentityTrajectoryFilter.cc index 292e3383c9..34d3622304 100644 --- a/source/geometry/management/src/G4IdentityTrajectoryFilter.cc +++ b/source/geometry/management/src/G4IdentityTrajectoryFilter.cc @@ -22,7 +22,7 @@ // // // $Id: G4IdentityTrajectoryFilter.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------------ diff --git a/source/geometry/management/src/G4LogicalVolume.cc b/source/geometry/management/src/G4LogicalVolume.cc index ccc02d2baf..57b7038d1e 100644 --- a/source/geometry/management/src/G4LogicalVolume.cc +++ b/source/geometry/management/src/G4LogicalVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.cc,v 1.28 2005/05/25 14:57:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LogicalVolume.cc,v 1.30 2005/11/09 14:54:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4LogicalVolume Implementation @@ -60,8 +60,7 @@ G4LogicalVolume::G4LogicalVolume( G4VSolid* pSolid, G4bool optimise ) : fDaughters(0,(G4VPhysicalVolume*)0), fFieldManager(pFieldMgr), fVoxel(0), fOptimise(optimise), fRootRegion(false), fSmartless(2.), - fMass(0.), fVisAttributes(0), fFastSimulationManager(0), fRegion(0), - fCutsCouple(0), fIsEnvelope(false) + fMass(0.), fVisAttributes(0), fRegion(0), fCutsCouple(0) { SetSolid(pSolid); SetMaterial(pMaterial); @@ -69,7 +68,23 @@ G4LogicalVolume::G4LogicalVolume( G4VSolid* pSolid, SetSensitiveDetector(pSDetector); SetUserLimits(pULimits); // - // Add to solid Store + // Add to store + // + G4LogicalVolumeStore::Register(this); +} + +// ******************************************************************** +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// ******************************************************************** +// +G4LogicalVolume::G4LogicalVolume( __void__& ) + : fDaughters(0,(G4VPhysicalVolume*)0), fFieldManager(0), + fMaterial(0), fName(""), fSensitiveDetector(0), fSolid(0), fUserLimits(0), + fVoxel(0), fOptimise(true), fRootRegion(false), fSmartless(2.), + fMass(0.), fVisAttributes(0), fRegion(0), fCutsCouple(0), fBiasWeight(0.) +{ + // Add to store // G4LogicalVolumeStore::Register(this); } @@ -85,74 +100,6 @@ G4LogicalVolume::~G4LogicalVolume() G4LogicalVolumeStore::DeRegister(this); } -// ******************************************************************** -// SetFastSimulationManager -// -// NOTE: recursive method, not inlined. -// ******************************************************************** -// -void -G4LogicalVolume:: -SetFastSimulationManager( G4FastSimulationManager* pNewFastSimul, - G4bool IsEnvelope ) -{ - if( !fIsEnvelope || IsEnvelope ) - { - fIsEnvelope = IsEnvelope; - fFastSimulationManager = pNewFastSimul; - - G4int NoDaughters = GetNoDaughters(); - while ( (NoDaughters--)>0 ) - { - G4LogicalVolume* DaughterLogVol; - DaughterLogVol = GetDaughter(NoDaughters)->GetLogicalVolume(); - if( DaughterLogVol->GetFastSimulationManager() != pNewFastSimul ) - { - DaughterLogVol->SetFastSimulationManager(pNewFastSimul,false); - } - } - } -} - -// ******************************************************************** -// ClearEnvelopeForFastSimulation -// ******************************************************************** -// -void -G4LogicalVolume::ClearEnvelopeForFastSimulation( G4LogicalVolume* motherLogVol ) -{ - if( fIsEnvelope ) - { - G4FastSimulationManager* NewFastSimulationVal = 0; - - // This is no longer an envelope ! - // - fIsEnvelope = false; - - if( motherLogVol == 0 ) - { - motherLogVol = this->FindMotherLogicalVolumeForEnvelope(); - } - - // Reset its ParameterisedSimulation values and those of all daughters - // (after ensuring the mother was given correctly or was found) - // - if( motherLogVol != 0 ) - { - NewFastSimulationVal = motherLogVol->GetFastSimulationManager(); - SetFastSimulationManager(NewFastSimulationVal, false); - } - } - else - { - G4cerr << "ERROR - Called ClearEnvelope() for non-envelope logical volume!" - << G4endl; - G4Exception("G4LogicalVolume::ClearEnvelopeForFastSimulation()", - "NotApplicable", FatalException, - "Cannot be called for non-envelope logical volumes."); - } -} - // ******************************************************************** // SetFieldManager // ******************************************************************** @@ -199,42 +146,6 @@ G4LogicalVolume::IsAncestor(const G4VPhysicalVolume* aVolume) const return isDaughter; } - -// ******************************************************************** -// FindMotherLogicalVolumeForEnvelope -// -// Returns a meaningful result IF and only IF the current logical -// volume has exactly one physical volume that uses it. -// ******************************************************************** -// -G4LogicalVolume* -G4LogicalVolume::FindMotherLogicalVolumeForEnvelope() -{ - G4LogicalVolume* motherLogVol = 0; - G4LogicalVolumeStore* Store = G4LogicalVolumeStore::GetInstance(); - - // Look for the current volume's mother volume. - // - for ( size_t LV=0; LV < Store->size(); LV++ ) - { - G4LogicalVolume* aLogVol = (*Store)[LV]; // Don't look for it inside itself! - if( (aLogVol!=this) && (aLogVol->GetFastSimulationManager()!=0) ) - { - for ( G4int daughter=0; daughterGetNoDaughters(); daughter++ ) - { - if( aLogVol->GetDaughter(daughter)->GetLogicalVolume()==this ) - { - // aLogVol is the mother !!! - // - motherLogVol = aLogVol; - break; - } - } - } - } - return motherLogVol; -} - // ******************************************************************** // TotalVolumeEntities // diff --git a/source/geometry/management/src/G4LogicalVolumeStore.cc b/source/geometry/management/src/G4LogicalVolumeStore.cc index 75fdc52c3b..9cd2b55062 100644 --- a/source/geometry/management/src/G4LogicalVolumeStore.cc +++ b/source/geometry/management/src/G4LogicalVolumeStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeStore.cc,v 1.14 2004/09/03 08:17:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4LogicalVolumeStore // diff --git a/source/geometry/management/src/G4PhysicalVolumeStore.cc b/source/geometry/management/src/G4PhysicalVolumeStore.cc index 7214bca3ad..feab56c6b7 100644 --- a/source/geometry/management/src/G4PhysicalVolumeStore.cc +++ b/source/geometry/management/src/G4PhysicalVolumeStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeStore.cc,v 1.15 2004/09/03 08:17:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4PhysicalVolumeStore // diff --git a/source/geometry/management/src/G4ReflectedSolid.cc b/source/geometry/management/src/G4ReflectedSolid.cc index a257209701..dd451aba7d 100644 --- a/source/geometry/management/src/G4ReflectedSolid.cc +++ b/source/geometry/management/src/G4ReflectedSolid.cc @@ -21,9 +21,9 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.cc,v 1.5 2005/03/23 17:16:31 allison Exp $ +// $Id: G4ReflectedSolid.cc,v 1.7 2005/09/21 10:24:35 gcosmo Exp $ // -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation for G4ReflectedSolid class for boolean // operations between other solids @@ -448,7 +448,7 @@ G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p, G4ThreeVector solNorm ; G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; - G4Point3D newDirection = (*fDirectTransform3D)*G4Point3D(v) ; + G4Point3D newDirection = (*fDirectTransform3D)*G4Point3D(v); newDirection.unit() ; G4double dist = @@ -458,9 +458,9 @@ G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p, calcNorm, validNorm, &solNorm) ; if(calcNorm) { - G4Point3D newN = (*fDirectTransform3D)*G4Point3D(solNorm) ; + G4Point3D newN = (*fDirectTransform3D)*G4Point3D(solNorm); newN.unit() ; - *n = G4ThreeVector(newN.x(),newN.y(),newN.z()) ; + *n = G4ThreeVector(newN.x(),newN.y(),newN.z()); } return dist ; } @@ -472,9 +472,9 @@ G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p, G4double G4ReflectedSolid::DistanceToOut( const G4ThreeVector& p ) const { - G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p) ; + G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p); return fPtrSolid->DistanceToOut( - G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z())) ; + G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z())); } ////////////////////////////////////////////////////////////// @@ -492,6 +492,19 @@ G4ReflectedSolid::ComputeDimensions( G4VPVParameterisation*, "Method not applicable in this context!"); } +////////////////////////////////////////////////////////////// +// +// Return a point (G4ThreeVector) randomly and uniformly selected +// on the solid surface + +G4ThreeVector G4ReflectedSolid::GetPointOnSurface() const +{ + G4ThreeVector p = fPtrSolid->GetPointOnSurface(); + G4Point3D newPoint = (*fDirectTransform3D)*G4Point3D(p); + + return G4ThreeVector(newPoint.x(),newPoint.y(),newPoint.z()); +} + ////////////////////////////////////////////////////////////////////////// // // Stream object contents to an output stream diff --git a/source/geometry/management/src/G4Region.cc b/source/geometry/management/src/G4Region.cc index b8cc5e2fe5..fbd34a446e 100644 --- a/source/geometry/management/src/G4Region.cc +++ b/source/geometry/management/src/G4Region.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Region.cc,v 1.14 2005/04/04 09:28:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Region.cc,v 1.17 2005/11/09 14:54:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Region Implementation @@ -42,7 +42,8 @@ // ******************************************************************* // G4Region::G4Region(const G4String& pName) - : fName(pName), fRegionMod(true), fCut(0), fUserInfo(0), fUserLimits(0) + : fName(pName), fRegionMod(true), fCut(0), fUserInfo(0), fUserLimits(0), + fFastSimulationManager(0), fWorldPhys(0) { G4RegionStore* rStore = G4RegionStore::GetInstance(); if (rStore->GetRegion(pName,false)) @@ -59,6 +60,20 @@ G4Region::G4Region(const G4String& pName) } } +// ******************************************************************** +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// ******************************************************************** +// +G4Region::G4Region( __void__& ) + : fName(""), fRegionMod(true), fCut(0), fUserInfo(0), fUserLimits(0), + fFastSimulationManager(0), fWorldPhys(0) +{ + // Register to store + // + G4RegionStore::GetInstance()->Register(this); +} + // ******************************************************************* // Destructor: // - Removes self from region Store @@ -256,3 +271,97 @@ void G4Region::UpdateMaterialList() ScanVolumeTree(*pLV, true); } } + +// ******************************************************************* +// SetWorld: +// - Set the world physical volume if this region belongs to this +// world. If the given pointer is null, reset the pointer. +// ******************************************************************* +// +void G4Region::SetWorld(G4VPhysicalVolume* wp) +{ + if(!wp) + { fWorldPhys = 0; } + else + { if(BelongsTo(wp)) fWorldPhys = wp; } + + return; +} + +// ******************************************************************* +// BelongsTo: +// - Returns whether this region belongs to the given physical volume +// (recursively scanned to the bottom of the hierarchy) +// ******************************************************************* +// +G4bool G4Region::BelongsTo(G4VPhysicalVolume* thePhys) const +{ + if(thePhys->GetLogicalVolume()->GetRegion()==this) return true; + + { + G4int nDaughters = thePhys->GetLogicalVolume()->GetNoDaughters(); + while((nDaughters--)>0) + { + G4VPhysicalVolume* aPhys = thePhys->GetLogicalVolume()->GetDaughter(nDaughters); + if(aPhys->GetLogicalVolume()->GetRegion()==this) return true; + if(BelongsTo(aPhys)) return true; + } + } + return false; +} + +// ******************************************************************* +// ClearFastSimulationManager: +// - Set G4FastSimulationManager pointer to the one for the parent region +// if it exists. Otherwise set to null. +// ******************************************************************* +// +void G4Region::ClearFastSimulationManager() +{ + G4Region* parent = GetParentRegion(); + if(parent) + { fFastSimulationManager = parent->GetFastSimulationManager(); } + else + { fFastSimulationManager = 0; } +} + +// ******************************************************************* +// GetParentRegion: +// - Returns a region that contains this region. Otherwise null +// returned. +// ******************************************************************* +#include "G4LogicalVolumeStore.hh" +// +G4Region* G4Region::GetParentRegion() const +{ + G4Region* parent = 0; + G4LogicalVolumeStore* lvStore = G4LogicalVolumeStore::GetInstance(); + G4LogicalVolumeStore::iterator lvItr; + for(lvItr=lvStore->begin();lvItr!=lvStore->end();lvItr++) + { + G4int nD = (*lvItr)->GetNoDaughters(); + for(G4int iD=0;iDGetDaughter(iD)->GetLogicalVolume()->GetRegion()==this) + { + G4Region* aR = (*lvItr)->GetRegion(); + if(parent) + { + if(parent!=aR) + { + G4cerr << "Region <" << fName << "> belongs to more than one parent regions" << G4endl; + G4cerr << " --- Regions found that directly contains this region are : " + << parent->GetName() << ", " << aR->GetName() << G4endl; + G4Exception("G4Region::GetParentRegion","MoreThanOneParent",FatalException, + "A region must not belong to more than one direct parent region."); + } + } + else + { parent = aR; } + } + } + } + return parent; +} + + diff --git a/source/geometry/management/src/G4RegionStore.cc b/source/geometry/management/src/G4RegionStore.cc index 165201bce1..8810d5830c 100644 --- a/source/geometry/management/src/G4RegionStore.cc +++ b/source/geometry/management/src/G4RegionStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RegionStore.cc,v 1.8 2004/09/03 08:17:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RegionStore.cc,v 1.9 2005/08/18 16:51:37 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4RegionStore // @@ -36,6 +36,7 @@ #include "G4RegionStore.hh" #include "G4GeometryManager.hh" #include "G4VStoreNotifier.hh" +#include "G4VPhysicalVolume.hh" #include "G4ios.hh" @@ -198,11 +199,11 @@ void G4RegionStore::ResetRegionModified() // Forces recomputation of material lists in all regions in the store. // *************************************************************************** // -void G4RegionStore::UpdateMaterialList() +void G4RegionStore::UpdateMaterialList(G4VPhysicalVolume* currentWorld) { for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) { - (*i)->UpdateMaterialList(); + if((*i)->GetWorldPhysical()==currentWorld) (*i)->UpdateMaterialList(); } } @@ -240,3 +241,30 @@ G4Region* G4RegionStore::FindOrCreateRegion(const G4String& name) } return target; } + +// ************************************************************************** +// Set a world physical volume pointer to a region that belongs to it. +// Scan over all world volumes. +// ************************************************************************** +// +#include "G4VPhysicalVolume.hh" +#include "G4PhysicalVolumeStore.hh" +void G4RegionStore::SetWorldVolume() +{ + // Reset all pointers first + for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) + { (*i)->SetWorld(0); } + + // Find world volumes + G4PhysicalVolumeStore* fPhysicalVolumeStore = G4PhysicalVolumeStore::GetInstance(); + size_t nPhys = fPhysicalVolumeStore->size(); + for(size_t iPhys=0;iPhysGetMotherLogical()) continue; // not a world volume + // Now fPhys is a world volume, set it to regions that belong to it. + for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) + { (*i)->SetWorld(fPhys); } + } +} + diff --git a/source/geometry/management/src/G4SmartVoxelHeader.cc b/source/geometry/management/src/G4SmartVoxelHeader.cc index 0d1f72f9eb..b05a9d72c9 100644 --- a/source/geometry/management/src/G4SmartVoxelHeader.cc +++ b/source/geometry/management/src/G4SmartVoxelHeader.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelHeader.cc,v 1.26 2005/04/13 15:53:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4SmartVoxelHeader diff --git a/source/geometry/management/src/G4SmartVoxelNode.cc b/source/geometry/management/src/G4SmartVoxelNode.cc index bd13d8d0b7..99ec97ce36 100644 --- a/source/geometry/management/src/G4SmartVoxelNode.cc +++ b/source/geometry/management/src/G4SmartVoxelNode.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelNode.cc,v 1.5 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class G4SmartVoxelNode // diff --git a/source/geometry/management/src/G4SmartVoxelProxy.cc b/source/geometry/management/src/G4SmartVoxelProxy.cc index 19b3b2e3f6..f09fd40f83 100644 --- a/source/geometry/management/src/G4SmartVoxelProxy.cc +++ b/source/geometry/management/src/G4SmartVoxelProxy.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelProxy.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class G4SmartVoxelProxy // diff --git a/source/geometry/management/src/G4SmartVoxelStat.cc b/source/geometry/management/src/G4SmartVoxelStat.cc index 15028a9be0..4b6202cdf7 100644 --- a/source/geometry/management/src/G4SmartVoxelStat.cc +++ b/source/geometry/management/src/G4SmartVoxelStat.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmartVoxelStat.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/management/src/G4SolidStore.cc b/source/geometry/management/src/G4SolidStore.cc index 80ba77e53d..8b8bc90cdf 100644 --- a/source/geometry/management/src/G4SolidStore.cc +++ b/source/geometry/management/src/G4SolidStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4SolidStore.cc,v 1.13 2004/09/03 08:17:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4SolidStore // diff --git a/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc b/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc index 84e0edc963..2be341b918 100644 --- a/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc +++ b/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc @@ -22,7 +22,7 @@ // // // $Id: G4VCurvedTrajectoryFilter.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // -------------------------------------------------------------------- #include "G4VCurvedTrajectoryFilter.hh" diff --git a/source/geometry/management/src/G4VPVDivisionFactory.cc b/source/geometry/management/src/G4VPVDivisionFactory.cc index 9285d7a92a..33d953f457 100644 --- a/source/geometry/management/src/G4VPVDivisionFactory.cc +++ b/source/geometry/management/src/G4VPVDivisionFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPVDivisionFactory.cc,v 1.1 2004/05/13 14:53:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VPVDivisionFactory Implementation file // diff --git a/source/geometry/management/src/G4VPVParameterisation.cc b/source/geometry/management/src/G4VPVParameterisation.cc index a408388c2c..edec78c90a 100644 --- a/source/geometry/management/src/G4VPVParameterisation.cc +++ b/source/geometry/management/src/G4VPVParameterisation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPVParameterisation.cc,v 1.4 2003/11/02 14:01:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VPVParameterisation.cc,v 1.6 2005/11/24 18:15:42 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Default implementations for Parameterisations that do not // parameterise solid and/or material. @@ -31,6 +31,7 @@ #include "G4VPVParameterisation.hh" #include "G4VPhysicalVolume.hh" #include "G4LogicalVolume.hh" +#include "G4VVolumeMaterialScanner.hh" G4VSolid* G4VPVParameterisation::ComputeSolid(const G4int, @@ -41,7 +42,21 @@ G4VPVParameterisation::ComputeSolid(const G4int, G4Material* G4VPVParameterisation::ComputeMaterial(const G4int, - G4VPhysicalVolume *pPhysicalVol) + G4VPhysicalVolume *pPhysicalVol, + const G4VTouchable *) { return pPhysicalVol->GetLogicalVolume()->GetMaterial(); } + + +G4bool G4VPVParameterisation::IsNested() const +{ + return false; +} + +G4VVolumeMaterialScanner* +G4VPVParameterisation::GetMaterialScanner() +{ + return 0; +} +// These enable material scan for nested parameterisations diff --git a/source/geometry/management/src/G4VPhysicalVolume.cc b/source/geometry/management/src/G4VPhysicalVolume.cc index 2de7ac86bb..d5bf478935 100644 --- a/source/geometry/management/src/G4VPhysicalVolume.cc +++ b/source/geometry/management/src/G4VPhysicalVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPhysicalVolume.cc,v 1.9 2003/11/02 14:01:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VPhysicalVolume.cc,v 1.10 2005/11/09 14:54:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VPhysicalVolume Implementation @@ -47,6 +47,17 @@ G4VPhysicalVolume::G4VPhysicalVolume( G4RotationMatrix *pRot, G4PhysicalVolumeStore::Register(this); } +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4VPhysicalVolume::G4VPhysicalVolume( __void__& ) + : frot(0), flogical(0), fname(""), flmother(0) +{ + // Register to store + // + G4PhysicalVolumeStore::Register(this); +} + // Destructor - remove from Store // G4VPhysicalVolume::~G4VPhysicalVolume() diff --git a/source/geometry/management/src/G4VSolid.cc b/source/geometry/management/src/G4VSolid.cc index f839a78dc9..040700a788 100644 --- a/source/geometry/management/src/G4VSolid.cc +++ b/source/geometry/management/src/G4VSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.cc,v 1.25 2004/10/10 10:15:27 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VSolid.cc,v 1.27 2005/11/09 14:54:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VSolid // @@ -57,6 +57,21 @@ G4VSolid::G4VSolid(const G4String& name) : fshapeName(name) { + // Register to store + // + G4SolidStore::GetInstance()->Register(this); +} + +////////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4VSolid::G4VSolid( __void__& ) + : fshapeName("") +{ + // Register to store + // G4SolidStore::GetInstance()->Register(this); } @@ -93,6 +108,20 @@ void G4VSolid::ComputeDimensions(G4VPVParameterisation*, FatalException, "Illegal call to case class."); } +////////////////////////////////////////////////////////////////////////// +// +// Throw exception (warning) for solids not implementing the method + +G4ThreeVector G4VSolid::GetPointOnSurface() const +{ + G4cerr << "WARNING - G4VSolid::GetPointOnSurface()" << G4endl + << " Not implemented for solid: " + << this->GetEntityType() << " !" << G4endl; + G4Exception("G4VSolid::GetPointOnSurface()", "NotImplemented", + JustWarning, "Not implemented for this solid ! Returning origin."); + return G4ThreeVector(0,0,0); +} + /////////////////////////////////////////////////////////////////////////// // // Calculate the maximum and minimum extents of the polygon described diff --git a/source/geometry/management/src/G4VStoreNotifier.cc b/source/geometry/management/src/G4VStoreNotifier.cc index aae385a64a..9bfec89c4c 100644 --- a/source/geometry/management/src/G4VStoreNotifier.cc +++ b/source/geometry/management/src/G4VStoreNotifier.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStoreNotifier.cc,v 1.1 2004/09/02 07:48:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VStoreNotifier // diff --git a/source/geometry/management/src/G4VoxelLimits.cc b/source/geometry/management/src/G4VoxelLimits.cc index 4948669c56..2dc5f606cb 100644 --- a/source/geometry/management/src/G4VoxelLimits.cc +++ b/source/geometry/management/src/G4VoxelLimits.cc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelLimits.cc,v 1.10 2004/12/02 09:31:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4VoxelLimits // diff --git a/source/geometry/navigation/History b/source/geometry/navigation/History index 87413b7113..bf99329369 100644 --- a/source/geometry/navigation/History +++ b/source/geometry/navigation/History @@ -1,4 +1,4 @@ -$Id: History,v 1.39 2004/12/02 09:36:23 gcosmo Exp $ +$Id: History,v 1.43 2005/11/24 17:48:17 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,25 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 22nd, 2005 - J.Apostolakis (geomnav-V07-01-02) +------------------------------ +- Revised Parameterised Navigation, to use new interface for + ComputeMaterial -- it no longer needs 'Physical Touchable'. + +Sep 19th, 2005 - G.Cosmo (geomnav-V07-01-01) +------------------------ +- G4DrawVoxels: removed unnecessary 'panic' message in ComputeVoxelPolyhedra() + and some code cleanup. + +Jul 25th, 2005 - G.Cosmo (geomnav-V07-01-00) +------------------------ +- Some cleanup and cosmetic changes for Software Reference Manual. + +Jun 14th, 2005 - J.Apostolakis (geomnav-V07-00-00) +------------------------------ +- Added ability to use Nested Parameterisations to Parameterised Navigation + Coworks with tag "geomvol-V07-00-01". + Dec 2nd, 2004 - G.Cosmo (geomnav-V06-02-08) ----------------------- - Implemented migration to for standard mathematical functions. diff --git a/source/geometry/navigation/include/G4AuxiliaryNavServices.hh b/source/geometry/navigation/include/G4AuxiliaryNavServices.hh index b353ecbe63..05bab09331 100644 --- a/source/geometry/navigation/include/G4AuxiliaryNavServices.hh +++ b/source/geometry/navigation/include/G4AuxiliaryNavServices.hh @@ -22,7 +22,7 @@ // // // $Id: G4AuxiliaryNavServices.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4NormalNavigation diff --git a/source/geometry/navigation/include/G4AuxiliaryNavServices.icc b/source/geometry/navigation/include/G4AuxiliaryNavServices.icc index e159b29aa5..8f45765f96 100644 --- a/source/geometry/navigation/include/G4AuxiliaryNavServices.icc +++ b/source/geometry/navigation/include/G4AuxiliaryNavServices.icc @@ -22,7 +22,7 @@ // // // $Id: G4AuxiliaryNavServices.icc,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4AuxiliaryNavServices Inline implementation diff --git a/source/geometry/navigation/include/G4DrawVoxels.hh b/source/geometry/navigation/include/G4DrawVoxels.hh index 101008adcc..34287dc00c 100644 --- a/source/geometry/navigation/include/G4DrawVoxels.hh +++ b/source/geometry/navigation/include/G4DrawVoxels.hh @@ -22,7 +22,7 @@ // // // $Id: G4DrawVoxels.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4DrawVoxels diff --git a/source/geometry/navigation/include/G4GeomTestErrorList.hh b/source/geometry/navigation/include/G4GeomTestErrorList.hh index 5030b9538e..b5394ca8ca 100644 --- a/source/geometry/navigation/include/G4GeomTestErrorList.hh +++ b/source/geometry/navigation/include/G4GeomTestErrorList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestErrorList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestLogger.hh b/source/geometry/navigation/include/G4GeomTestLogger.hh index 6668da3a83..7d791bba47 100644 --- a/source/geometry/navigation/include/G4GeomTestLogger.hh +++ b/source/geometry/navigation/include/G4GeomTestLogger.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestLogger.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestOverlapList.hh b/source/geometry/navigation/include/G4GeomTestOverlapList.hh index 3245a7c9a1..3e0c71b49b 100644 --- a/source/geometry/navigation/include/G4GeomTestOverlapList.hh +++ b/source/geometry/navigation/include/G4GeomTestOverlapList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOverlapList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestOvershootList.hh b/source/geometry/navigation/include/G4GeomTestOvershootList.hh index 67d97ba159..442f146ed3 100644 --- a/source/geometry/navigation/include/G4GeomTestOvershootList.hh +++ b/source/geometry/navigation/include/G4GeomTestOvershootList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOvershootList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestPoint.hh b/source/geometry/navigation/include/G4GeomTestPoint.hh index 0fe15a7df2..b789a3ac3a 100644 --- a/source/geometry/navigation/include/G4GeomTestPoint.hh +++ b/source/geometry/navigation/include/G4GeomTestPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestPoint.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestSegment.hh b/source/geometry/navigation/include/G4GeomTestSegment.hh index 5fa9b044fb..c2a9b8b443 100644 --- a/source/geometry/navigation/include/G4GeomTestSegment.hh +++ b/source/geometry/navigation/include/G4GeomTestSegment.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestSegment.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestStreamLogger.hh b/source/geometry/navigation/include/G4GeomTestStreamLogger.hh index bfa60820bb..3e66b701b8 100644 --- a/source/geometry/navigation/include/G4GeomTestStreamLogger.hh +++ b/source/geometry/navigation/include/G4GeomTestStreamLogger.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestStreamLogger.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestVolPoint.hh b/source/geometry/navigation/include/G4GeomTestVolPoint.hh index 802b89c01c..19dd0a154a 100644 --- a/source/geometry/navigation/include/G4GeomTestVolPoint.hh +++ b/source/geometry/navigation/include/G4GeomTestVolPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolPoint.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeomTestVolume.hh b/source/geometry/navigation/include/G4GeomTestVolume.hh index ed787a3bfc..d3fc12351f 100644 --- a/source/geometry/navigation/include/G4GeomTestVolume.hh +++ b/source/geometry/navigation/include/G4GeomTestVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolume.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4GeometryMessenger.hh b/source/geometry/navigation/include/G4GeometryMessenger.hh index dec32ca3c7..36ed9f2201 100644 --- a/source/geometry/navigation/include/G4GeometryMessenger.hh +++ b/source/geometry/navigation/include/G4GeometryMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4GeometryMessenger.hh,v 1.3 2004/03/10 18:21:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/navigation/include/G4Navigator.hh b/source/geometry/navigation/include/G4Navigator.hh index 11911379d5..d2958946fa 100644 --- a/source/geometry/navigation/include/G4Navigator.hh +++ b/source/geometry/navigation/include/G4Navigator.hh @@ -22,7 +22,7 @@ // // // $Id: G4Navigator.hh,v 1.10 2004/11/24 08:27:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Navigator diff --git a/source/geometry/navigation/include/G4Navigator.icc b/source/geometry/navigation/include/G4Navigator.icc index 3ca56dc23f..f9e9ff7e84 100644 --- a/source/geometry/navigation/include/G4Navigator.icc +++ b/source/geometry/navigation/include/G4Navigator.icc @@ -22,7 +22,7 @@ // // // $Id: G4Navigator.icc,v 1.7 2004/11/24 08:27:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Navigator Inline implementation diff --git a/source/geometry/navigation/include/G4NormalNavigation.hh b/source/geometry/navigation/include/G4NormalNavigation.hh index e039569b20..3b5a90fe63 100644 --- a/source/geometry/navigation/include/G4NormalNavigation.hh +++ b/source/geometry/navigation/include/G4NormalNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.hh,v 1.3 2004/03/10 18:21:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4NormalNavigation diff --git a/source/geometry/navigation/include/G4NormalNavigation.icc b/source/geometry/navigation/include/G4NormalNavigation.icc index 9e5c1bce48..8e60db3cfa 100644 --- a/source/geometry/navigation/include/G4NormalNavigation.icc +++ b/source/geometry/navigation/include/G4NormalNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.icc,v 1.3 2004/03/10 18:21:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4NormalNavigation Inline Implementation diff --git a/source/geometry/navigation/include/G4ParameterisedNavigation.hh b/source/geometry/navigation/include/G4ParameterisedNavigation.hh index 54a5293312..fe86da06c7 100644 --- a/source/geometry/navigation/include/G4ParameterisedNavigation.hh +++ b/source/geometry/navigation/include/G4ParameterisedNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParameterisedNavigation.hh,v 1.4 2005/07/25 10:06:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ParameterisedNavigation @@ -95,6 +95,20 @@ class G4ParameterisedNavigation : public G4VoxelNavigation const G4ThreeVector& localDirection, const G4double currentStep, const EAxis pAxis ); + private: + + // Necessary to resolve cases with nested parameterisations + + G4VSolid* IdentifyAndPlaceSolid( G4int num, + G4VPhysicalVolume* apparentPhys, + G4VPVParameterisation* curParam ); + // Call virtual 'Compute' methods, and copy information if nested. + // 'ApparentPhys' is potentially a PhysV or PhysT. + + G4VPhysicalVolume* CreateVolumeWithParent(G4VPhysicalVolume* curPhysical, + const G4NavigationHistory& hist ); + // Create necessary parent touchable and physical with parent. + private: // Voxel Stack information (for 1D optimisation only) diff --git a/source/geometry/navigation/include/G4ParameterisedNavigation.icc b/source/geometry/navigation/include/G4ParameterisedNavigation.icc index dc60eb3820..f62b18107e 100644 --- a/source/geometry/navigation/include/G4ParameterisedNavigation.icc +++ b/source/geometry/navigation/include/G4ParameterisedNavigation.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.icc,v 1.3 2004/09/26 01:18:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParameterisedNavigation.icc,v 1.5 2005/06/14 16:09:43 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ParameterisedNavigation Inline implementation @@ -78,85 +78,3 @@ G4ParameterisedNavigation::ParamVoxelLocate( G4SmartVoxelHeader* pHead, return fVoxelNode; } -// ******************************************************************** -// LevelLocate -// ******************************************************************** -// -inline -G4bool -G4ParameterisedNavigation::LevelLocate( G4NavigationHistory& history, - const G4VPhysicalVolume* blockedVol, - const G4int blockedNum, - const G4ThreeVector& globalPoint, - const G4ThreeVector* globalDirection, - const G4bool pLocatedOnEdge, - G4ThreeVector& localPoint ) -{ - G4SmartVoxelHeader *motherVoxelHeader; - G4SmartVoxelNode *motherVoxelNode; - G4VPhysicalVolume *motherPhysical, *pPhysical; - G4VPVParameterisation *pParam; - G4LogicalVolume *motherLogical; - G4VSolid *pSolid; - G4ThreeVector samplePoint; - G4int voxelNoDaughters, replicaNo; - - motherPhysical = history.GetTopVolume(); - motherLogical = motherPhysical->GetLogicalVolume(); - motherVoxelHeader = motherLogical->GetVoxelHeader(); - - // Find the voxel containing the point - // - motherVoxelNode = ParamVoxelLocate(motherVoxelHeader,localPoint); - - voxelNoDaughters = motherVoxelNode->GetNoContained(); - if ( voxelNoDaughters==0 ) return false; - - pPhysical = motherLogical->GetDaughter(0); - pParam = pPhysical->GetParameterisation(); - - // Search replicated daughter volume - // - for ( register int sampleNo=voxelNoDaughters-1; sampleNo>=0; sampleNo-- ) - { - replicaNo = motherVoxelNode->GetVolume(sampleNo); - if ( (replicaNo!=blockedNum) || (pPhysical!=blockedVol) ) - { - // Obtain solid (as it can vary) and obtain its parameters - // - pSolid = pParam->ComputeSolid(replicaNo, pPhysical); - pSolid->ComputeDimensions(pParam, replicaNo, pPhysical); - pParam->ComputeTransformation(replicaNo, pPhysical); - - // Setup history - // - history.NewLevel(pPhysical, kParameterised, replicaNo); - samplePoint = history.GetTopTransform().TransformPoint(globalPoint); - if ( !G4AuxiliaryNavServices::CheckPointOnSurface(pSolid, - samplePoint, globalDirection, - history.GetTopTransform(), pLocatedOnEdge) ) - { - history.BackLevel(); - } - else - { - // Enter this daughter - // - localPoint = samplePoint; - - // Set the correct copy number in physical - // - pPhysical->SetCopyNo(replicaNo); - - // Set the correct solid and material in Logical Volume - // - G4LogicalVolume *pLogical = pPhysical->GetLogicalVolume(); - pLogical->SetSolid(pSolid); - pLogical->UpdateMaterial(pParam->ComputeMaterial(replicaNo, pPhysical)); - - return true; - } - } - } - return false; -} diff --git a/source/geometry/navigation/include/G4PropagatorInField.hh b/source/geometry/navigation/include/G4PropagatorInField.hh index 5cf04274be..0861af6200 100644 --- a/source/geometry/navigation/include/G4PropagatorInField.hh +++ b/source/geometry/navigation/include/G4PropagatorInField.hh @@ -22,7 +22,7 @@ // // // $Id: G4PropagatorInField.hh,v 1.8 2004/02/09 12:00:29 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4PropagatorInField // diff --git a/source/geometry/navigation/include/G4PropagatorInField.icc b/source/geometry/navigation/include/G4PropagatorInField.icc index 664d6901d5..499556fd4f 100644 --- a/source/geometry/navigation/include/G4PropagatorInField.icc +++ b/source/geometry/navigation/include/G4PropagatorInField.icc @@ -22,7 +22,7 @@ // // // $Id: G4PropagatorInField.icc,v 1.7 2004/02/09 12:00:12 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------------ diff --git a/source/geometry/navigation/include/G4ReplicaNavigation.hh b/source/geometry/navigation/include/G4ReplicaNavigation.hh index b9c2786ef4..62e997e094 100644 --- a/source/geometry/navigation/include/G4ReplicaNavigation.hh +++ b/source/geometry/navigation/include/G4ReplicaNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.hh,v 1.3 2004/03/10 18:21:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ReplicaNavigation diff --git a/source/geometry/navigation/include/G4ReplicaNavigation.icc b/source/geometry/navigation/include/G4ReplicaNavigation.icc index aac322a82b..9132af44f0 100644 --- a/source/geometry/navigation/include/G4ReplicaNavigation.icc +++ b/source/geometry/navigation/include/G4ReplicaNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.icc,v 1.4 2004/12/10 16:20:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ReplicaNavigation Inline implementation diff --git a/source/geometry/navigation/include/G4TransportationManager.hh b/source/geometry/navigation/include/G4TransportationManager.hh index 4090a022e2..125a097253 100644 --- a/source/geometry/navigation/include/G4TransportationManager.hh +++ b/source/geometry/navigation/include/G4TransportationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4TransportationManager.hh,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4TransportationManager // diff --git a/source/geometry/navigation/include/G4TransportationManager.icc b/source/geometry/navigation/include/G4TransportationManager.icc index ad1c52a050..bc8940a019 100644 --- a/source/geometry/navigation/include/G4TransportationManager.icc +++ b/source/geometry/navigation/include/G4TransportationManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4TransportationManager.icc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------ // GEANT 4 inlined function members implementation // ------------------------------------------------------------ diff --git a/source/geometry/navigation/include/G4VoxelNavigation.hh b/source/geometry/navigation/include/G4VoxelNavigation.hh index d4ba41046d..915e0d0d3d 100644 --- a/source/geometry/navigation/include/G4VoxelNavigation.hh +++ b/source/geometry/navigation/include/G4VoxelNavigation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VoxelNavigation.hh,v 1.3 2004/03/10 18:21:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VoxelNavigation diff --git a/source/geometry/navigation/include/G4VoxelNavigation.icc b/source/geometry/navigation/include/G4VoxelNavigation.icc index 4e28a2b3a3..c781c56501 100644 --- a/source/geometry/navigation/include/G4VoxelNavigation.icc +++ b/source/geometry/navigation/include/G4VoxelNavigation.icc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelNavigation.icc,v 1.3 2004/03/10 18:21:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VoxelNavigation Inline implementation diff --git a/source/geometry/navigation/src/G4AuxiliaryNavServices.cc b/source/geometry/navigation/src/G4AuxiliaryNavServices.cc index 74fd22c7fd..d01aa1c9cc 100644 --- a/source/geometry/navigation/src/G4AuxiliaryNavServices.cc +++ b/source/geometry/navigation/src/G4AuxiliaryNavServices.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4AuxiliaryNavServices.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- diff --git a/source/geometry/navigation/src/G4DrawVoxels.cc b/source/geometry/navigation/src/G4DrawVoxels.cc index d08a2ee5d8..e300605ffa 100644 --- a/source/geometry/navigation/src/G4DrawVoxels.cc +++ b/source/geometry/navigation/src/G4DrawVoxels.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DrawVoxels.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DrawVoxels.cc,v 1.3 2005/09/19 10:35:59 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4DrawVoxels @@ -75,6 +75,7 @@ void G4DrawVoxels::SetVoxelsVisAttributes(G4VisAttributes& VA_voxelX, fVoxelsVisAttributes[1]=VA_voxelY; fVoxelsVisAttributes[2]=VA_voxelZ; } + void G4DrawVoxels::SetBoundingBoxVisAttributes(G4VisAttributes& VA_boundingbox) { fBoundingBoxVisAttributes=VA_boundingbox; @@ -90,12 +91,6 @@ G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, { // Let's draw the selected voxelisation now ! -#ifdef G4DrawVoxelsDebug - G4cout << "**** !!! G4DrawVoxels::Draw_Voxels : " - << "a query for drawing voxelisation"; - G4cout << "Logical Volume:" << lv->GetName() << G4endl; -#endif - G4VSolid* solid=lv->GetSolid(); G4double dx=kInfinity,dy=kInfinity,dz=kInfinity; @@ -103,12 +98,6 @@ G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, if (lv->GetNoDaughters()<=0) { - #ifdef G4DrawVoxelsDebug - G4cout << "**** !!! G4DrawVoxels::Draw_Voxels : " - << "a query for drawing voxelisation" << G4endl; - G4cout << "of a logical volume that has no (or <=0) daughter " - << "has been detected !!! ****" << G4endl; - #endif return; } @@ -123,7 +112,8 @@ G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, dy=ymax-ymin; dz=zmax-zmin; - //Preparing the colored bounding polyhedronBox for the pVolume + // Preparing the colored bounding polyhedronBox for the pVolume + // G4PolyhedronBox bounding_polyhedronBox(dx*0.5,dy*0.5,dz*0.5); bounding_polyhedronBox.SetVisAttributes(&fBoundingBoxVisAttributes); G4ThreeVector t_centerofBoundingBox((xmin+xmax)*0.5, @@ -163,11 +153,6 @@ G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, voxelsVisAttributes=&fVoxelsVisAttributes[2]; break; default: - /************************/ - G4cout << "PANIC: in Draw_Voxels:DrawVoxels(...) header is decayed." - << G4endl; - G4cout << "header->GetAxis returns an invalid axis." << G4endl; - /************************/ break; }; @@ -179,19 +164,8 @@ G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, G4double beginning=header->GetMinExtent(), step=(header->GetMaxExtent()-beginning)/no_slices; - #ifdef G4DrawVoxelsDebug - G4cout << "Axis of the voxelisation:" << header->GetAxis(); - G4cout << "No slices of the voxelisation:" << header->GetNoSlices(); - G4cout << "step:" << step << G4endl; - #endif - while (slice_noIsHeader() << G4endl; - #endif - + { if (slice->IsHeader()) { G4VoxelLimits newlimit(limit); @@ -208,9 +182,9 @@ G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, slice_no=(slice->IsHeader() ? slice->GetHeader()->GetMaxEquivalentSliceNo()+1 : slice->GetNode()->GetMaxEquivalentSliceNo()+1); - if (slice_noGetSlice(slice_no); + if (slice_noGetSlice(slice_no); } } -} //end of ComputeVoxelPolyhedra... +} // ######################################################################## @@ -225,17 +199,11 @@ G4DrawVoxels::CreatePlacedPolyhedra(const G4LogicalVolume* lv) const void G4DrawVoxels::DrawVoxels(const G4LogicalVolume* lv) const { - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - if (lv->GetNoDaughters()<=0) - { - #ifdef G4DrawVoxelsDebug - G4cout << "**** !!! G4DrawVoxels::Draw_Voxels : " - << "a query for drawing voxelisation" << G4endl; - G4cout << "of a logical volume that has no (or <=0) daughter " - << "has been detected !!! ****" << G4endl; - #endif - return; + if (lv->GetNoDaughters()<=0) + { + return; } // Computing the transformation according to the world volume @@ -253,13 +221,22 @@ void G4DrawVoxels::DrawVoxels(const G4LogicalVolume* lv) const G4PlacedPolyhedronList* pplist=CreatePlacedPolyhedra(lv); if(pVVisManager) { - //Drawing the bounding and voxel polyhedra for the pVolume + // Drawing the bounding and voxel polyhedra for the pVolume + // for (size_t i=0;isize();i++) + { pVVisManager->Draw((*pplist)[i].GetPolyhedron(), (*pplist)[i].GetTransform()*transf3D); + } } else - G4cout << "@@@@ void G4DrawVoxels::DrawVoxels(const G4LogicalVolume*)" - << " pVVisManager is null! @@@@" << G4endl; + { + G4cerr << "ERROR - G4DrawVoxels::DrawVoxels()" << G4endl + << " Pointer to visualization manager is null!" + << G4endl; + G4Exception("G4DrawVoxels::DrawVoxels()", + "NotApplicable", JustWarning, + "Pointer to visualization manager is null!"); + } delete pplist; } diff --git a/source/geometry/navigation/src/G4GeomTestErrorList.cc b/source/geometry/navigation/src/G4GeomTestErrorList.cc index 034fb8598a..3bfde88fa0 100644 --- a/source/geometry/navigation/src/G4GeomTestErrorList.cc +++ b/source/geometry/navigation/src/G4GeomTestErrorList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestErrorList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestOverlapList.cc b/source/geometry/navigation/src/G4GeomTestOverlapList.cc index 81b395580e..85cb577116 100644 --- a/source/geometry/navigation/src/G4GeomTestOverlapList.cc +++ b/source/geometry/navigation/src/G4GeomTestOverlapList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOverlapList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestOvershootList.cc b/source/geometry/navigation/src/G4GeomTestOvershootList.cc index 7fccbadd1c..4bc7fbb6ba 100644 --- a/source/geometry/navigation/src/G4GeomTestOvershootList.cc +++ b/source/geometry/navigation/src/G4GeomTestOvershootList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestOvershootList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestPoint.cc b/source/geometry/navigation/src/G4GeomTestPoint.cc index d5e5a50c4d..f8f7a3659f 100644 --- a/source/geometry/navigation/src/G4GeomTestPoint.cc +++ b/source/geometry/navigation/src/G4GeomTestPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestPoint.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestSegment.cc b/source/geometry/navigation/src/G4GeomTestSegment.cc index 3c6112471e..9aaf09fc09 100644 --- a/source/geometry/navigation/src/G4GeomTestSegment.cc +++ b/source/geometry/navigation/src/G4GeomTestSegment.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestSegment.cc,v 1.4 2004/09/02 14:44:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestStreamLogger.cc b/source/geometry/navigation/src/G4GeomTestStreamLogger.cc index fd42377d8b..1cc5ba9be2 100644 --- a/source/geometry/navigation/src/G4GeomTestStreamLogger.cc +++ b/source/geometry/navigation/src/G4GeomTestStreamLogger.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestStreamLogger.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestVolPoint.cc b/source/geometry/navigation/src/G4GeomTestVolPoint.cc index 9b8d544aa9..7b5cb4af4e 100644 --- a/source/geometry/navigation/src/G4GeomTestVolPoint.cc +++ b/source/geometry/navigation/src/G4GeomTestVolPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolPoint.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeomTestVolume.cc b/source/geometry/navigation/src/G4GeomTestVolume.cc index 8b56a2bdff..87bd7ee07d 100644 --- a/source/geometry/navigation/src/G4GeomTestVolume.cc +++ b/source/geometry/navigation/src/G4GeomTestVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeomTestVolume.cc,v 1.4 2004/12/02 09:31:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4GeometryMessenger.cc b/source/geometry/navigation/src/G4GeometryMessenger.cc index 70f94da18c..8f7fbe1c6e 100644 --- a/source/geometry/navigation/src/G4GeometryMessenger.cc +++ b/source/geometry/navigation/src/G4GeometryMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4GeometryMessenger.cc,v 1.4 2004/03/11 13:09:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/navigation/src/G4Navigator.cc b/source/geometry/navigation/src/G4Navigator.cc index f88e0679a7..eb77d2be1d 100644 --- a/source/geometry/navigation/src/G4Navigator.cc +++ b/source/geometry/navigation/src/G4Navigator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4Navigator.cc,v 1.17 2004/12/02 09:31:23 gcosmo Exp $ +// $Id: G4Navigator.cc,v 1.18 2005/11/24 17:31:03 japost Exp $ // GEANT4 tag $ Name: $ // // class G4Navigator Implementation @@ -182,6 +182,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, case kParameterised: G4VSolid *pSolid; G4VPVParameterisation *pParam; + G4TouchableHistory parentTouchable( fHistory ); pParam = fBlockedPhysicalVolume->GetParameterisation(); pSolid = pParam->ComputeSolid(fBlockedReplicaNo, fBlockedPhysicalVolume); @@ -198,8 +199,10 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, G4LogicalVolume *pLogical; pLogical = fBlockedPhysicalVolume->GetLogicalVolume(); pLogical->SetSolid( pSolid ); - pLogical->UpdateMaterial(pParam->ComputeMaterial(fBlockedReplicaNo, - fBlockedPhysicalVolume)); + pLogical->UpdateMaterial(pParam->ComputeMaterial( + fBlockedReplicaNo, + fBlockedPhysicalVolume, + &parentTouchable)); break; } fEntering = false; @@ -987,11 +990,15 @@ void G4Navigator::SetupHierarchy() pSolid->ComputeDimensions(pParam, replicaNo, current); pParam->ComputeTransformation(replicaNo, current); + G4TouchableHistory touchable( fHistory ); + touchable.MoveUpHistory(); // move up to the parent level + // Set up the correct solid and material in Logical Volume // G4LogicalVolume *pLogical = current->GetLogicalVolume(); pLogical->SetSolid( pSolid ); - pLogical->UpdateMaterial( pParam->ComputeMaterial(replicaNo, current)); + pLogical->UpdateMaterial( pParam->ComputeMaterial(replicaNo, current, + &touchable) ); break; } mother = current; diff --git a/source/geometry/navigation/src/G4NormalNavigation.cc b/source/geometry/navigation/src/G4NormalNavigation.cc index ad083840e6..ff79d26d10 100644 --- a/source/geometry/navigation/src/G4NormalNavigation.cc +++ b/source/geometry/navigation/src/G4NormalNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4NormalNavigation.cc,v 1.7 2004/09/10 15:38:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4NormalNavigation Implementation diff --git a/source/geometry/navigation/src/G4ParameterisedNavigation.cc b/source/geometry/navigation/src/G4ParameterisedNavigation.cc index 2e58cab942..72bd25c293 100644 --- a/source/geometry/navigation/src/G4ParameterisedNavigation.cc +++ b/source/geometry/navigation/src/G4ParameterisedNavigation.cc @@ -21,17 +21,34 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.cc,v 1.4 2004/09/10 15:38:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParameterisedNavigation.cc,v 1.9 2005/11/24 17:49:37 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ParameterisedNavigation Implementation // -// Author: P.Kent, 1996 -// +// Initial Author: P.Kent, 1996 +// Revisions: +// J. Apostolakis 24 Nov 2005, Revised/fixed treatment of nested params +// J. Apostolakis 4 Feb 2005, Reintroducting multi-level parameterisation +// for materials only - see note 1 below +// G. Cosmo 11 Mar 2004, Added Check mode +// G. Cosmo 15 May 2002, Extended to 3-d voxelisation, made subclass +// J. Apostolakis 5 Mar 1998, Enabled parameterisation of material & solid type // -------------------------------------------------------------------- +// Note 1: Design/implementation note for extensions +// J. Apostolakis, March 1st, 2005 +// We cannot make the solid, dimensions and transformation dependant on parent +// because the voxelisation will not have access to this. +// So the following can NOT be done: +// sampleSolid = curParam->ComputeSolid(num, curPhysical, pParentTouch); +// sampleSolid->ComputeDimensions(curParam, num, curPhysical, pParentTouch); +// curParam->ComputeTransformation(num, curPhysical, pParentTouch); + #include "G4ParameterisedNavigation.hh" +#include "G4TouchableHistory.hh" +#include "G4VNestedParameterisation.hh" // ******************************************************************** // Constructor @@ -54,6 +71,24 @@ G4ParameterisedNavigation::~G4ParameterisedNavigation() #endif } +// *************************************************************************** +// IdentifyAndPlaceSolid +// *************************************************************************** +// +G4VSolid* G4ParameterisedNavigation:: +IdentifyAndPlaceSolid( G4int num, + G4VPhysicalVolume *apparentPhys, // PhysV or PhysT + G4VPVParameterisation *curParam ) +{ + G4VSolid *sampleSolid; + + sampleSolid = curParam->ComputeSolid(num, apparentPhys); + sampleSolid->ComputeDimensions(curParam, num, apparentPhys); + curParam->ComputeTransformation(num, apparentPhys); + + return sampleSolid; +} + // *************************************************************************** // ComputeStep // *************************************************************************** @@ -102,6 +137,9 @@ G4double G4ParameterisedNavigation:: motherSafety = motherSolid->DistanceToOut(localPoint); ourSafety = motherSafety; // Working isotropic safety + // G4cout << "DebugLOG - G4ParameterisedNavigation::ComputeStep()" << G4endl + // << " Current solid " << motherSolid->GetName() << G4endl; + #ifdef G4VERBOSE if ( fCheck ) { @@ -175,6 +213,8 @@ G4double G4ParameterisedNavigation:: sampleParam = samplePhysical->GetParameterisation(); + // G4cerr << " Attaching parent touchable information to Phys Volume " << G4endl; + do { curVoxelNode = fVoxelNode; @@ -186,9 +226,13 @@ G4double G4ParameterisedNavigation:: if ( !fBList.IsBlocked(sampleNo) ) { fBList.BlockVolume(sampleNo); - sampleSolid = sampleParam->ComputeSolid(sampleNo, samplePhysical); - sampleSolid->ComputeDimensions(sampleParam, sampleNo, samplePhysical); - sampleParam->ComputeTransformation(sampleNo, samplePhysical); + // sampleSolid = sampleParam->ComputeSolid(sampleNo, samplePhysical); + // sampleSolid->ComputeDimensions(sampleParam, sampleNo, samplePhysical); + // sampleParam->ComputeTransformation(sampleNo, samplePhysical); + + // Call virtual methods, and copy information if needed + sampleSolid= IdentifyAndPlaceSolid( sampleNo, samplePhysical, sampleParam ); + G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); @@ -376,7 +420,7 @@ G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector& localPoint, motherSafety = motherSolid->DistanceToOut(localPoint); ourSafety = motherSafety; // Working isotropic safety - + // // Compute daughter safeties // @@ -388,6 +432,10 @@ G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector& localPoint, samplePhysical->GetReplicationData(axis, nReplicas, width, offset, consuming); sampleParam = samplePhysical->GetParameterisation(); + // Check development + // G4cerr << "DebugLOG - G4ParameterisedNavigation::ComputeSafety()" << G4endl + // << " Current solid " << motherSolid->GetName() << G4endl; + // Look inside the current Voxel only at the current point // if ( axis==kUndefined ) // 3D case: current voxel node is retrieved @@ -407,9 +455,13 @@ G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector& localPoint, for ( contentNo=curNoVolumes-1; contentNo>=0; contentNo-- ) { sampleNo = curVoxelNode->GetVolume(contentNo); - sampleSolid = sampleParam->ComputeSolid(sampleNo, samplePhysical); - sampleSolid->ComputeDimensions(sampleParam, sampleNo, samplePhysical); - sampleParam->ComputeTransformation(sampleNo, samplePhysical); + + // Call virtual methods, and copy information if needed + sampleSolid= IdentifyAndPlaceSolid( sampleNo, samplePhysical, sampleParam ); + // sampleSolid = sampleParam->ComputeSolid(sampleNo, samplePhysical); + // sampleSolid->ComputeDimensions(sampleParam, sampleNo, samplePhysical); + // sampleParam->ComputeTransformation(sampleNo, samplePhysical); + G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); @@ -426,6 +478,7 @@ G4ParameterisedNavigation::ComputeSafety(const G4ThreeVector& localPoint, { ourSafety=voxelSafety; } + return ourSafety; } @@ -440,6 +493,9 @@ G4double G4ParameterisedNavigation:: ComputeVoxelSafety(const G4ThreeVector& localPoint, const EAxis pAxis) const { + // Check development + // G4cout << "DebugLOG - G4ParameterisedNavigation::ComputeVoxelSafety()" << G4endl; + // If no best axis is specified, adopt default // strategy as for placements // @@ -535,3 +591,103 @@ LocateNextVoxel( const G4ThreeVector& localPoint, } return isNewVoxel; } + +// ******************************************************************** +// LevelLocate +// ******************************************************************** +// +G4bool +G4ParameterisedNavigation::LevelLocate( G4NavigationHistory& history, + const G4VPhysicalVolume* blockedVol, + const G4int blockedNum, + const G4ThreeVector& globalPoint, + const G4ThreeVector* globalDirection, + const G4bool pLocatedOnEdge, + G4ThreeVector& localPoint ) +{ + G4SmartVoxelHeader *motherVoxelHeader; + G4SmartVoxelNode *motherVoxelNode; + G4VPhysicalVolume *motherPhysical, *pPhysical; + G4VPVParameterisation *pParam; + G4LogicalVolume *motherLogical; + G4VSolid *pSolid; + G4ThreeVector samplePoint; + G4int voxelNoDaughters, replicaNo; + + motherPhysical = history.GetTopVolume(); + motherLogical = motherPhysical->GetLogicalVolume(); + motherVoxelHeader = motherLogical->GetVoxelHeader(); + + // Find the voxel containing the point + // + motherVoxelNode = ParamVoxelLocate(motherVoxelHeader,localPoint); + + voxelNoDaughters = motherVoxelNode->GetNoContained(); + if ( voxelNoDaughters==0 ) return false; + + pPhysical = motherLogical->GetDaughter(0); + pParam = pPhysical->GetParameterisation(); + + // Check development + // G4cerr << "DebugLOG - G4ParameterisedNavigation::LevelLocate() " + // << " Current solid " + // << motherLogical->GetSolid()->GetName() << G4endl; + // G4cerr << " Attaching parent touchable information to Phys Volume " + // << G4endl; + + // Save parent history in touchable history + // ... for use as parent t-h in ComputeMaterial method of param + G4TouchableHistory parentTouchable( history ); + + // Search replicated daughter volume + // + for ( register int sampleNo=voxelNoDaughters-1; sampleNo>=0; sampleNo-- ) + { + replicaNo = motherVoxelNode->GetVolume(sampleNo); + if ( (replicaNo!=blockedNum) || (pPhysical!=blockedVol) ) + { + // Obtain solid (as it can vary) and obtain its parameters + // + + // pSolid = pParam->ComputeSolid(replicaNo, pPhysical); + // pSolid->ComputeDimensions(pParam, replicaNo, pPhysical); + // pParam->ComputeTransformation(replicaNo, pPhysical); + + // Call virtual methods, and copy information if needed + pSolid= IdentifyAndPlaceSolid( replicaNo, pPhysical, pParam ); + + // Setup history + // + history.NewLevel(pPhysical, kParameterised, replicaNo); + samplePoint = history.GetTopTransform().TransformPoint(globalPoint); + if ( !G4AuxiliaryNavServices::CheckPointOnSurface(pSolid, + samplePoint, globalDirection, + history.GetTopTransform(), pLocatedOnEdge) ) + { + history.BackLevel(); + } + else + { + // Enter this daughter + // + localPoint = samplePoint; + + // Set the correct copy number in physical + // + pPhysical->SetCopyNo(replicaNo); + + // Set the correct solid and material in Logical Volume + // + G4LogicalVolume *pLogical = pPhysical->GetLogicalVolume(); + pLogical->SetSolid(pSolid); + + pLogical->UpdateMaterial( + pParam->ComputeMaterial(replicaNo, pPhysical, &parentTouchable) ); + + return true; + } + } + } + + return false; +} diff --git a/source/geometry/navigation/src/G4PropagatorInField.cc b/source/geometry/navigation/src/G4PropagatorInField.cc index ab2a152604..ebb7853397 100644 --- a/source/geometry/navigation/src/G4PropagatorInField.cc +++ b/source/geometry/navigation/src/G4PropagatorInField.cc @@ -22,7 +22,7 @@ // // // $Id: G4PropagatorInField.cc,v 1.20 2004/12/02 09:31:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // This class implements an algorithm to track a particle in a diff --git a/source/geometry/navigation/src/G4ReplicaNavigation.cc b/source/geometry/navigation/src/G4ReplicaNavigation.cc index 8c2bcc4e14..06843f0689 100644 --- a/source/geometry/navigation/src/G4ReplicaNavigation.cc +++ b/source/geometry/navigation/src/G4ReplicaNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4ReplicaNavigation.cc,v 1.10 2004/12/10 16:20:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ReplicaNavigation Implementation diff --git a/source/geometry/navigation/src/G4TransportationManager.cc b/source/geometry/navigation/src/G4TransportationManager.cc index 58b7510191..aec7cb1f6b 100644 --- a/source/geometry/navigation/src/G4TransportationManager.cc +++ b/source/geometry/navigation/src/G4TransportationManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4TransportationManager.cc,v 1.4 2003/12/05 17:08:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4TransportationManager diff --git a/source/geometry/navigation/src/G4VoxelNavigation.cc b/source/geometry/navigation/src/G4VoxelNavigation.cc index 9573f8542a..3aadafc394 100644 --- a/source/geometry/navigation/src/G4VoxelNavigation.cc +++ b/source/geometry/navigation/src/G4VoxelNavigation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VoxelNavigation.cc,v 1.5 2004/09/10 15:38:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4VoxelNavigation Implementation diff --git a/source/geometry/solids/BREPS/History b/source/geometry/solids/BREPS/History index 3211e5dd66..bc14d356b8 100644 --- a/source/geometry/solids/BREPS/History +++ b/source/geometry/solids/BREPS/History @@ -1,4 +1,4 @@ -$Id: History,v 1.59 2005/04/04 09:39:19 gcosmo Exp $ +$Id: History,v 1.62 2005/11/09 15:02:11 gcosmo Exp $ ---------------------------------------------------------------------------- ========================================================= @@ -17,15 +17,27 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -23/03/2005 : J.Allison breps-V07-00-01 +09/11/2005 : G. Cosmo breps-V07-01-01 +- Added fake default constructor for concrete solids and G4BREPSolid, + for usage of direct object persistency. +- Implemented changes to support CLHEP-2.0.X for explicit usage of the + CLHEP/HepGeom namespaces for CLHEP types. +- Implemented migration to for affected classes: + G4BREPSolidPCone and G4BREPSolidPolyhedra. + +02/08/2005 : O. Link breps-V07-01-00 +- Fixed problem of double-deletion in G4BREPSolidPolyhedra and + G4BREPSolidPCone destructors. + +23/03/2005 : J. Allison breps-V07-00-01 - Added test for Number-Of-Rotation-Steps in G4BREPSolid::GetPolyhedron(). Requires tag "greps-V07-00-02". -03/03/2005 : J.Allison breps-V07-00-00 +03/03/2005 : J. Allison breps-V07-00-00 - Changed AddThis() with AddSolid() for all solids in DescribeYourselfTo() implementation for G4BREPSolid and G4BREPSolidOpenPCone. -10/10/2004 : J.Allison breps-V06-02-02 +10/10/2004 : J. Allison breps-V06-02-02 - Added GetPolyhedron, a smart access function that creates a G4Polyhedron on request and stores for future access. A null pointer means "not available". diff --git a/source/geometry/solids/BREPS/include/G4Assembly.hh b/source/geometry/solids/BREPS/include/G4Assembly.hh index 3ef07146bd..7b45e75cb9 100644 --- a/source/geometry/solids/BREPS/include/G4Assembly.hh +++ b/source/geometry/solids/BREPS/include/G4Assembly.hh @@ -22,7 +22,7 @@ // // // $Id: G4Assembly.hh,v 1.9 2003/06/16 16:52:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Assembly diff --git a/source/geometry/solids/BREPS/include/G4Assembly.icc b/source/geometry/solids/BREPS/include/G4Assembly.icc index c27153342b..fb5530eb68 100644 --- a/source/geometry/solids/BREPS/include/G4Assembly.icc +++ b/source/geometry/solids/BREPS/include/G4Assembly.icc @@ -22,7 +22,7 @@ // // // $Id: G4Assembly.icc,v 1.3 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh index 86f9929a32..9703d312e7 100644 --- a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh +++ b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Axis2Placement3D.hh,v 1.4 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement3D diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc index 3739718dab..b3ef9dc29f 100644 --- a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc +++ b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2Placement3D.icc,v 1.7 2001/07/20 11:52:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Axis2Placement3D.icc,v 1.8 2005/11/09 07:42:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -61,7 +61,8 @@ void G4Axis2Placement3D::Init( const G4Vector3D& refDirection0 , // basis transformation fromPlacementCoordinates = G4Translate3D(location0) * - G4Transform3D(HepXHat, HepYHat, HepZHat, pX, pY, pZ); + G4Transform3D(CLHEP::HepXHat, CLHEP::HepYHat, CLHEP::HepZHat, + pX, pY, pZ); toPlacementCoordinates= fromPlacementCoordinates.inverse(); } diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.hh b/source/geometry/solids/BREPS/include/G4BREPSolid.hh index e8298f3414..d48adc6ebc 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolid.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolid.hh,v 1.14 2004/10/10 10:56:31 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolid.hh,v 1.15 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolid @@ -162,6 +162,13 @@ public: virtual void Reset() const; // Resets all distance attributes. +public: // without description + + G4BREPSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform&) const; diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.icc b/source/geometry/solids/BREPS/include/G4BREPSolid.icc index 0f34a38e93..5518bd60ce 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolid.icc +++ b/source/geometry/solids/BREPS/include/G4BREPSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolid.icc,v 1.6 2004/09/22 09:52:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh index e829583e30..859436c76c 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidBox.hh,v 1.7 2003/06/16 16:52:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidBox.hh,v 1.8 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidBox @@ -66,6 +66,13 @@ public: // with description virtual std::ostream& StreamInfo(std::ostream& os) const; // Streams solid contents to output stream. +public: // without description + + G4BREPSolidBox(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4BREPSolidBox(const G4BREPSolidBox&); diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh index 94fb49a027..dc7fe0bd52 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidCone.hh,v 1.9 2003/06/16 16:52:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidCone.hh,v 1.10 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCone @@ -97,6 +97,13 @@ class G4BREPSolidCone : public G4BREPSolid virtual std::ostream& StreamInfo(std::ostream& os) const; // Streams solid contents to output stream. + public: // without description + + G4BREPSolidCone(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4BREPSolidCone(const G4BREPSolidCone&); diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh index e8838dc5e6..dfe9e0aa73 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidCylinder.hh,v 1.8 2003/06/16 16:52:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidCylinder.hh,v 1.9 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCylinder @@ -66,6 +66,13 @@ class G4BREPSolidCylinder : public G4BREPSolid virtual std::ostream& StreamInfo(std::ostream& os) const; // Streams solid contents to output stream. + public: // without description + + G4BREPSolidCylinder(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4BREPSolidCylinder(const G4BREPSolidCylinder&); diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh index ff7b4b8319..6a89ab823c 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidOpenPCone.hh,v 1.7 2003/06/16 16:52:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidOpenPCone.hh,v 1.8 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidOpenPCone @@ -73,6 +73,13 @@ class G4BREPSolidOpenPCone : public G4IntersectionSolid virtual std::ostream& StreamInfo(std::ostream& os) const; // Streams solid contents to output stream. + public: // without description + + G4BREPSolidOpenPCone(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4BREPSolidOpenPCone(const G4BREPSolidOpenPCone&); diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh index 2cb88a383c..f4d2eeb987 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidPCone.hh,v 1.12 2003/06/16 16:52:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidPCone.hh,v 1.13 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPCone @@ -121,6 +121,13 @@ public: virtual std::ostream& StreamInfo(std::ostream& os) const; // Streams solid contents to output stream. +public: // without description + + G4BREPSolidPCone(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4Surface* ComputePlanarSurface( G4double r1, G4double r2, diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh index 4dcad1f58a..045ce215cd 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidPolyhedra.hh,v 1.12 2003/06/16 16:52:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidPolyhedra.hh,v 1.13 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPolyhedra @@ -123,6 +123,13 @@ public: void Reset() const; // Resets all distance attributes. +public: // without description + + G4BREPSolidPolyhedra(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4BREPSolidPolyhedra(const G4BREPSolidPolyhedra&); diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh index 9c9ad18004..9be501c8e8 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidSphere.hh,v 1.9 2003/06/16 16:52:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidSphere.hh,v 1.10 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidSphere @@ -101,6 +101,11 @@ class G4BREPSolidSphere : public G4BREPSolid public: // without description + G4BREPSolidSphere(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + inline void SphReset() { active=1; } private: diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh index 3cde31003e..7a99a6c256 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidTorus.hh,v 1.8 2003/06/16 16:52:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidTorus.hh,v 1.9 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidTorus @@ -65,6 +65,13 @@ class G4BREPSolidTorus : public G4BREPSolid virtual std::ostream& StreamInfo(std::ostream& os) const; // Streams solid contents to output stream. + public: // without description + + G4BREPSolidTorus(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4BREPSolidTorus(const G4BREPSolidTorus&); diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.hh b/source/geometry/solids/BREPS/include/G4BSplineCurve.hh index 937b88df8f..61c3c68956 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineCurve.hh +++ b/source/geometry/solids/BREPS/include/G4BSplineCurve.hh @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurve.hh,v 1.11 2003/06/16 16:52:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurve diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.icc b/source/geometry/solids/BREPS/include/G4BSplineCurve.icc index 4a9dff2a39..0ae9ff1076 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineCurve.icc +++ b/source/geometry/solids/BREPS/include/G4BSplineCurve.icc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurve.icc,v 1.6 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh b/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh index 0c9e5f8035..24fc86add7 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh +++ b/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurveWithKnots.hh,v 1.4 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurveWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.hh b/source/geometry/solids/BREPS/include/G4BSplineSurface.hh index 9059c89874..cf14a40c58 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineSurface.hh +++ b/source/geometry/solids/BREPS/include/G4BSplineSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurface.hh,v 1.10 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurface diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.icc b/source/geometry/solids/BREPS/include/G4BSplineSurface.icc index 1a01233e3c..55872502bf 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineSurface.icc +++ b/source/geometry/solids/BREPS/include/G4BSplineSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurface.icc,v 1.5 2003/03/28 13:11:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh b/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh index 75cefa8f12..a3101fcbf2 100644 --- a/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh +++ b/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurfaceWithKnots.hh,v 1.3 2001/07/11 09:59:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.hh b/source/geometry/solids/BREPS/include/G4BezierSurface.hh index ea7b9cb3f9..c58b915dc3 100644 --- a/source/geometry/solids/BREPS/include/G4BezierSurface.hh +++ b/source/geometry/solids/BREPS/include/G4BezierSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4BezierSurface.hh,v 1.6 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.icc b/source/geometry/solids/BREPS/include/G4BezierSurface.icc index bc94fca5d0..816685134c 100644 --- a/source/geometry/solids/BREPS/include/G4BezierSurface.icc +++ b/source/geometry/solids/BREPS/include/G4BezierSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4BezierSurface.icc,v 1.3 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh b/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh index 198cd7f862..44231c2688 100644 --- a/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh +++ b/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4BoundingBox3D.hh,v 1.5 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BoundingBox3D diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc b/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc index 575b9be4ec..2e86ed0a9b 100644 --- a/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc +++ b/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc @@ -22,7 +22,7 @@ // // // $Id: G4BoundingBox3D.icc,v 1.3 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.hh b/source/geometry/solids/BREPS/include/G4CircularCurve.hh index b5cc295c16..7528ff882c 100644 --- a/source/geometry/solids/BREPS/include/G4CircularCurve.hh +++ b/source/geometry/solids/BREPS/include/G4CircularCurve.hh @@ -22,7 +22,7 @@ // // // $Id: G4CircularCurve.hh,v 1.7 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CircularCurve diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.icc b/source/geometry/solids/BREPS/include/G4CircularCurve.icc index f663a40523..1dc7bce7ca 100644 --- a/source/geometry/solids/BREPS/include/G4CircularCurve.icc +++ b/source/geometry/solids/BREPS/include/G4CircularCurve.icc @@ -22,7 +22,7 @@ // // // $Id: G4CircularCurve.icc,v 1.5 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.hh b/source/geometry/solids/BREPS/include/G4CompositeCurve.hh index b8892e860a..86b7635f56 100644 --- a/source/geometry/solids/BREPS/include/G4CompositeCurve.hh +++ b/source/geometry/solids/BREPS/include/G4CompositeCurve.hh @@ -22,7 +22,7 @@ // // // $Id: G4CompositeCurve.hh,v 1.6 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CompositeCurve diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.icc b/source/geometry/solids/BREPS/include/G4CompositeCurve.icc index c5b72a7c9f..36fada0099 100644 --- a/source/geometry/solids/BREPS/include/G4CompositeCurve.icc +++ b/source/geometry/solids/BREPS/include/G4CompositeCurve.icc @@ -22,7 +22,7 @@ // // // $Id: G4CompositeCurve.icc,v 1.4 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Conic.hh b/source/geometry/solids/BREPS/include/G4Conic.hh index 461cfa5b4b..473671c9c2 100644 --- a/source/geometry/solids/BREPS/include/G4Conic.hh +++ b/source/geometry/solids/BREPS/include/G4Conic.hh @@ -22,7 +22,7 @@ // // // $Id: G4Conic.hh,v 1.6 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Conic diff --git a/source/geometry/solids/BREPS/include/G4Conic.icc b/source/geometry/solids/BREPS/include/G4Conic.icc index 8906fd2922..3e38fad3a3 100644 --- a/source/geometry/solids/BREPS/include/G4Conic.icc +++ b/source/geometry/solids/BREPS/include/G4Conic.icc @@ -22,7 +22,7 @@ // // // $Id: G4Conic.icc,v 1.3 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.hh b/source/geometry/solids/BREPS/include/G4ConicalSurface.hh index 5f217b39e9..c6f5e9477e 100644 --- a/source/geometry/solids/BREPS/include/G4ConicalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4ConicalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4ConicalSurface.hh,v 1.9 2003/06/16 16:52:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.icc b/source/geometry/solids/BREPS/include/G4ConicalSurface.icc index 76af2601ff..a77f4332c1 100644 --- a/source/geometry/solids/BREPS/include/G4ConicalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4ConicalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4ConicalSurface.icc,v 1.3 2001/07/11 09:59:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.hh b/source/geometry/solids/BREPS/include/G4ControlPoints.hh index 3a9dc10e07..84de743e14 100644 --- a/source/geometry/solids/BREPS/include/G4ControlPoints.hh +++ b/source/geometry/solids/BREPS/include/G4ControlPoints.hh @@ -22,7 +22,7 @@ // // // $Id: G4ControlPoints.hh,v 1.6 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ControlPoints diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.icc b/source/geometry/solids/BREPS/include/G4ControlPoints.icc index e1349e3562..1c5eccc906 100644 --- a/source/geometry/solids/BREPS/include/G4ControlPoints.icc +++ b/source/geometry/solids/BREPS/include/G4ControlPoints.icc @@ -22,7 +22,7 @@ // // // $Id: G4ControlPoints.icc,v 1.2 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ConvexHull.hh b/source/geometry/solids/BREPS/include/G4ConvexHull.hh index 8c80c867d1..e3ac03cd40 100644 --- a/source/geometry/solids/BREPS/include/G4ConvexHull.hh +++ b/source/geometry/solids/BREPS/include/G4ConvexHull.hh @@ -22,7 +22,7 @@ // // // $Id: G4ConvexHull.hh,v 1.6 2002/02/26 11:16:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ConvexHull diff --git a/source/geometry/solids/BREPS/include/G4Curve.hh b/source/geometry/solids/BREPS/include/G4Curve.hh index 49b2c908ea..e57fb5e994 100644 --- a/source/geometry/solids/BREPS/include/G4Curve.hh +++ b/source/geometry/solids/BREPS/include/G4Curve.hh @@ -22,7 +22,7 @@ // // // $Id: G4Curve.hh,v 1.8 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Curve diff --git a/source/geometry/solids/BREPS/include/G4Curve.icc b/source/geometry/solids/BREPS/include/G4Curve.icc index 7f555ce534..6a2e2ae4e8 100644 --- a/source/geometry/solids/BREPS/include/G4Curve.icc +++ b/source/geometry/solids/BREPS/include/G4Curve.icc @@ -22,7 +22,7 @@ // // // $Id: G4Curve.icc,v 1.6 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.hh b/source/geometry/solids/BREPS/include/G4CurvePoint.hh index d65a88b7f3..52ab11d08e 100644 --- a/source/geometry/solids/BREPS/include/G4CurvePoint.hh +++ b/source/geometry/solids/BREPS/include/G4CurvePoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4CurvePoint.hh,v 1.5 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CurvePoint diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.icc b/source/geometry/solids/BREPS/include/G4CurvePoint.icc index d7ee29b3e8..4e03e0cbdb 100644 --- a/source/geometry/solids/BREPS/include/G4CurvePoint.icc +++ b/source/geometry/solids/BREPS/include/G4CurvePoint.icc @@ -22,7 +22,7 @@ // // // $Id: G4CurvePoint.icc,v 1.3 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh index e6cfe97dd8..d868fac19d 100644 --- a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh +++ b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh @@ -22,7 +22,7 @@ // // // $Id: G4CurveRayIntersection.hh,v 1.4 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CurveRayIntersection diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc index 06f1925994..8827ba7028 100644 --- a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc +++ b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc @@ -22,7 +22,7 @@ // // // $Id: G4CurveRayIntersection.icc,v 1.3 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4CurveVector.hh b/source/geometry/solids/BREPS/include/G4CurveVector.hh index 4cc8a84b8a..771b0104ce 100644 --- a/source/geometry/solids/BREPS/include/G4CurveVector.hh +++ b/source/geometry/solids/BREPS/include/G4CurveVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4CurveVector.hh,v 1.6 2003/06/16 16:52:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CurveVector diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh index 1b7ff4eb31..309847e87b 100644 --- a/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4CylindricalSurface.hh,v 1.9 2003/06/16 16:52:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4CylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc index 126cf5a766..d4726d1579 100644 --- a/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4CylindricalSurface.icc,v 1.3 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.hh b/source/geometry/solids/BREPS/include/G4Ellipse.hh index d2b20f17c1..17427b0d69 100644 --- a/source/geometry/solids/BREPS/include/G4Ellipse.hh +++ b/source/geometry/solids/BREPS/include/G4Ellipse.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ellipse.hh,v 1.8 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Ellipse diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.icc b/source/geometry/solids/BREPS/include/G4Ellipse.icc index 08daafb8bc..93f1004689 100644 --- a/source/geometry/solids/BREPS/include/G4Ellipse.icc +++ b/source/geometry/solids/BREPS/include/G4Ellipse.icc @@ -22,7 +22,7 @@ // // // $Id: G4Ellipse.icc,v 1.7 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.hh b/source/geometry/solids/BREPS/include/G4FConicalSurface.hh index 1f394f81fb..2ef2998dd1 100644 --- a/source/geometry/solids/BREPS/include/G4FConicalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4FConicalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4FConicalSurface.hh,v 1.12 2003/06/16 16:52:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4FConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.icc b/source/geometry/solids/BREPS/include/G4FConicalSurface.icc index 9a610057b6..055fe1e090 100644 --- a/source/geometry/solids/BREPS/include/G4FConicalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4FConicalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4FConicalSurface.icc,v 1.3 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh index 9cf8a84739..7ac4dc6400 100644 --- a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4FCylindricalSurface.hh,v 1.12 2003/06/16 16:52:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4FCylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc index 95b9a51b75..35498b7b12 100644 --- a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4FCylindricalSurface.icc,v 1.3 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4FPlane.hh b/source/geometry/solids/BREPS/include/G4FPlane.hh index bed60e4c09..a701ec1f9c 100644 --- a/source/geometry/solids/BREPS/include/G4FPlane.hh +++ b/source/geometry/solids/BREPS/include/G4FPlane.hh @@ -22,7 +22,7 @@ // // // $Id: G4FPlane.hh,v 1.12 2002/01/28 16:38:40 radoone Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4FPlane diff --git a/source/geometry/solids/BREPS/include/G4FPlane.icc b/source/geometry/solids/BREPS/include/G4FPlane.icc index 2e3bea94ac..ca7033761c 100644 --- a/source/geometry/solids/BREPS/include/G4FPlane.icc +++ b/source/geometry/solids/BREPS/include/G4FPlane.icc @@ -22,7 +22,7 @@ // // // $Id: G4FPlane.icc,v 1.5 2003/03/28 13:11:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Globals.hh b/source/geometry/solids/BREPS/include/G4Globals.hh index 69af308927..bd6364a667 100644 --- a/source/geometry/solids/BREPS/include/G4Globals.hh +++ b/source/geometry/solids/BREPS/include/G4Globals.hh @@ -22,7 +22,7 @@ // // // $Id: G4Globals.hh,v 1.4 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A.Breakstone // Adaptation: J.Sulkimo, P.Urban. diff --git a/source/geometry/solids/BREPS/include/G4Hyperbola.hh b/source/geometry/solids/BREPS/include/G4Hyperbola.hh index f2a2390fbe..ee4b70ea20 100644 --- a/source/geometry/solids/BREPS/include/G4Hyperbola.hh +++ b/source/geometry/solids/BREPS/include/G4Hyperbola.hh @@ -22,7 +22,7 @@ // // // $Id: G4Hyperbola.hh,v 1.8 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Hyperbola diff --git a/source/geometry/solids/BREPS/include/G4Hyperbola.icc b/source/geometry/solids/BREPS/include/G4Hyperbola.icc index 769a26885e..3e66621f7c 100644 --- a/source/geometry/solids/BREPS/include/G4Hyperbola.icc +++ b/source/geometry/solids/BREPS/include/G4Hyperbola.icc @@ -22,7 +22,7 @@ // // // $Id: G4Hyperbola.icc,v 1.8 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.hh b/source/geometry/solids/BREPS/include/G4KnotVector.hh index cd776872a0..0dc1640e0d 100644 --- a/source/geometry/solids/BREPS/include/G4KnotVector.hh +++ b/source/geometry/solids/BREPS/include/G4KnotVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4KnotVector.hh,v 1.8 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4KnotVector diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.icc b/source/geometry/solids/BREPS/include/G4KnotVector.icc index b5e23ce16b..52d013d7ff 100644 --- a/source/geometry/solids/BREPS/include/G4KnotVector.icc +++ b/source/geometry/solids/BREPS/include/G4KnotVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4KnotVector.icc,v 1.4 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Line.hh b/source/geometry/solids/BREPS/include/G4Line.hh index a7eb5871b0..24d84657ff 100644 --- a/source/geometry/solids/BREPS/include/G4Line.hh +++ b/source/geometry/solids/BREPS/include/G4Line.hh @@ -22,7 +22,7 @@ // // // $Id: G4Line.hh,v 1.7 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Line diff --git a/source/geometry/solids/BREPS/include/G4Line.icc b/source/geometry/solids/BREPS/include/G4Line.icc index 47c85a53cc..13fa5321f5 100644 --- a/source/geometry/solids/BREPS/include/G4Line.icc +++ b/source/geometry/solids/BREPS/include/G4Line.icc @@ -22,7 +22,7 @@ // // // $Id: G4Line.icc,v 1.8 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.hh b/source/geometry/solids/BREPS/include/G4OsloMatrix.hh index dcf3110031..3cdee6ab0e 100644 --- a/source/geometry/solids/BREPS/include/G4OsloMatrix.hh +++ b/source/geometry/solids/BREPS/include/G4OsloMatrix.hh @@ -22,7 +22,7 @@ // // // $Id: G4OsloMatrix.hh,v 1.5 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4OsloMatrix diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.icc b/source/geometry/solids/BREPS/include/G4OsloMatrix.icc index 638414685e..078737cc95 100644 --- a/source/geometry/solids/BREPS/include/G4OsloMatrix.icc +++ b/source/geometry/solids/BREPS/include/G4OsloMatrix.icc @@ -22,7 +22,7 @@ // // // $Id: G4OsloMatrix.icc,v 1.3 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Parabola.hh b/source/geometry/solids/BREPS/include/G4Parabola.hh index e5d49e7f4c..ed42a5ea82 100644 --- a/source/geometry/solids/BREPS/include/G4Parabola.hh +++ b/source/geometry/solids/BREPS/include/G4Parabola.hh @@ -22,7 +22,7 @@ // // // $Id: G4Parabola.hh,v 1.8 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Parabola diff --git a/source/geometry/solids/BREPS/include/G4Parabola.icc b/source/geometry/solids/BREPS/include/G4Parabola.icc index d687d7a525..b642655bd4 100644 --- a/source/geometry/solids/BREPS/include/G4Parabola.icc +++ b/source/geometry/solids/BREPS/include/G4Parabola.icc @@ -22,7 +22,7 @@ // // // $Id: G4Parabola.icc,v 1.7 2004/12/02 09:31:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.hh b/source/geometry/solids/BREPS/include/G4PlacedSolid.hh index 10d4cacf65..520c587195 100644 --- a/source/geometry/solids/BREPS/include/G4PlacedSolid.hh +++ b/source/geometry/solids/BREPS/include/G4PlacedSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlacedSolid.hh,v 1.9 2003/06/16 16:52:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PlacedSolid diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc index 77a9708c40..4d15311f45 100644 --- a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc +++ b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4PlacedSolid.icc,v 1.7 2003/06/16 16:52:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4PlacementVector.hh b/source/geometry/solids/BREPS/include/G4PlacementVector.hh index bb823a9999..0aa497031c 100644 --- a/source/geometry/solids/BREPS/include/G4PlacementVector.hh +++ b/source/geometry/solids/BREPS/include/G4PlacementVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlacementVector.hh,v 1.6 2003/06/16 16:52:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PlacementVector diff --git a/source/geometry/solids/BREPS/include/G4Plane.hh b/source/geometry/solids/BREPS/include/G4Plane.hh index 2b0d2940bb..f148c94082 100644 --- a/source/geometry/solids/BREPS/include/G4Plane.hh +++ b/source/geometry/solids/BREPS/include/G4Plane.hh @@ -22,7 +22,7 @@ // // // $Id: G4Plane.hh,v 1.5 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Plane diff --git a/source/geometry/solids/BREPS/include/G4Point3DVector.hh b/source/geometry/solids/BREPS/include/G4Point3DVector.hh index f42d86e717..b27067424c 100644 --- a/source/geometry/solids/BREPS/include/G4Point3DVector.hh +++ b/source/geometry/solids/BREPS/include/G4Point3DVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4Point3DVector.hh,v 1.7 2003/06/16 16:52:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Point3DVector diff --git a/source/geometry/solids/BREPS/include/G4PointRat.hh b/source/geometry/solids/BREPS/include/G4PointRat.hh index e3c7e4a597..033d37e22f 100644 --- a/source/geometry/solids/BREPS/include/G4PointRat.hh +++ b/source/geometry/solids/BREPS/include/G4PointRat.hh @@ -22,7 +22,7 @@ // // // $Id: G4PointRat.hh,v 1.9 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PointRat diff --git a/source/geometry/solids/BREPS/include/G4PointRat.icc b/source/geometry/solids/BREPS/include/G4PointRat.icc index 9ee95a8503..0407cf5b19 100644 --- a/source/geometry/solids/BREPS/include/G4PointRat.icc +++ b/source/geometry/solids/BREPS/include/G4PointRat.icc @@ -22,7 +22,7 @@ // // // $Id: G4PointRat.icc,v 1.3 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh b/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh index e99b231336..d35573c873 100644 --- a/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh +++ b/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProjectedSurface.hh,v 1.6 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ProjectedSurface diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc b/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc index f27bc109eb..024754cb76 100644 --- a/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc +++ b/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProjectedSurface.icc,v 1.4 2003/03/28 13:11:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Ray.hh b/source/geometry/solids/BREPS/include/G4Ray.hh index b3446324aa..3ac9f5eba8 100644 --- a/source/geometry/solids/BREPS/include/G4Ray.hh +++ b/source/geometry/solids/BREPS/include/G4Ray.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ray.hh,v 1.8 2003/03/28 13:11:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Ray diff --git a/source/geometry/solids/BREPS/include/G4Ray.icc b/source/geometry/solids/BREPS/include/G4Ray.icc index ca434ec1dd..3983997a08 100644 --- a/source/geometry/solids/BREPS/include/G4Ray.icc +++ b/source/geometry/solids/BREPS/include/G4Ray.icc @@ -22,7 +22,7 @@ // // // $Id: G4Ray.icc,v 1.6 2002/11/21 16:52:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh b/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh index 0fe39c031f..0a46c25f58 100644 --- a/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh +++ b/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4RectangularTrimmedSurface.hh,v 1.7 2001/07/11 09:59:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4STEPEntity.hh b/source/geometry/solids/BREPS/include/G4STEPEntity.hh index 03afdd9d89..2fc699c4cd 100644 --- a/source/geometry/solids/BREPS/include/G4STEPEntity.hh +++ b/source/geometry/solids/BREPS/include/G4STEPEntity.hh @@ -22,7 +22,7 @@ // // // $Id: G4STEPEntity.hh,v 1.6 2001/07/11 09:59:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4STEPEntity diff --git a/source/geometry/solids/BREPS/include/G4Sort.hh b/source/geometry/solids/BREPS/include/G4Sort.hh index 15e89e06bf..aedb97df0d 100644 --- a/source/geometry/solids/BREPS/include/G4Sort.hh +++ b/source/geometry/solids/BREPS/include/G4Sort.hh @@ -22,7 +22,7 @@ // // // $Id: G4Sort.hh,v 1.4 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.hh b/source/geometry/solids/BREPS/include/G4SphericalSurface.hh index 4ddf1384be..819d82f0e4 100644 --- a/source/geometry/solids/BREPS/include/G4SphericalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4SphericalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4SphericalSurface.hh,v 1.9 2003/06/16 16:52:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4SphericalSurface diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.icc b/source/geometry/solids/BREPS/include/G4SphericalSurface.icc index 665ab70501..5fcdd4b5dc 100644 --- a/source/geometry/solids/BREPS/include/G4SphericalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4SphericalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4SphericalSurface.icc,v 1.3 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4Surface.hh b/source/geometry/solids/BREPS/include/G4Surface.hh index aea6a3fc42..a663ca0e42 100644 --- a/source/geometry/solids/BREPS/include/G4Surface.hh +++ b/source/geometry/solids/BREPS/include/G4Surface.hh @@ -22,7 +22,7 @@ // // // $Id: G4Surface.hh,v 1.8 2002/11/21 16:52:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4Surface diff --git a/source/geometry/solids/BREPS/include/G4Surface.icc b/source/geometry/solids/BREPS/include/G4Surface.icc index c01edac515..9c087eeb99 100644 --- a/source/geometry/solids/BREPS/include/G4Surface.icc +++ b/source/geometry/solids/BREPS/include/G4Surface.icc @@ -22,7 +22,7 @@ // // // $Id: G4Surface.icc,v 1.4 2002/11/21 16:52:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh index 1c5375a893..f323ae0d24 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh +++ b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceBoundary.hh,v 1.6 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceBoundary diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc index 942f470f96..3218b5bd45 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc +++ b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceBoundary.icc,v 1.4 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4SurfaceList.hh b/source/geometry/solids/BREPS/include/G4SurfaceList.hh index bcb2ce68e4..9d4ea6f321 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceList.hh +++ b/source/geometry/solids/BREPS/include/G4SurfaceList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceList.hh,v 1.5 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceList diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh index c632a38e33..fa7156bb06 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh +++ b/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceOfLinearExtrusion.hh,v 1.4 2001/07/11 09:59:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfLinearExtrusion diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh index a372628125..14f8f5a0df 100644 --- a/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh +++ b/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceOfRevolution.hh,v 1.4 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfRevolution diff --git a/source/geometry/solids/BREPS/include/G4ThreeMat.hh b/source/geometry/solids/BREPS/include/G4ThreeMat.hh index 029e877dc2..ea183eb308 100644 --- a/source/geometry/solids/BREPS/include/G4ThreeMat.hh +++ b/source/geometry/solids/BREPS/include/G4ThreeMat.hh @@ -22,7 +22,7 @@ // // // $Id: G4ThreeMat.hh,v 1.9 2003/06/16 16:52:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ThreeMat diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh b/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh index 46d9c010e1..d96b72f5c1 100644 --- a/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh +++ b/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4ToroidalSurface.hh,v 1.6 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ToroidalSurface diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc b/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc index dce2309df0..4585e7bec4 100644 --- a/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc +++ b/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4ToroidalSurface.icc,v 1.3 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4UVHit.hh b/source/geometry/solids/BREPS/include/G4UVHit.hh index fa53136feb..00dc117cdc 100644 --- a/source/geometry/solids/BREPS/include/G4UVHit.hh +++ b/source/geometry/solids/BREPS/include/G4UVHit.hh @@ -22,7 +22,7 @@ // // // $Id: G4UVHit.hh,v 1.6 2001/07/11 09:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4UVHit diff --git a/source/geometry/solids/BREPS/src/G4Assembly.cc b/source/geometry/solids/BREPS/src/G4Assembly.cc index df268e4772..71a3a6c95c 100644 --- a/source/geometry/solids/BREPS/src/G4Assembly.cc +++ b/source/geometry/solids/BREPS/src/G4Assembly.cc @@ -22,7 +22,7 @@ // // // $Id: G4Assembly.cc,v 1.5 2001/07/11 09:59:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc b/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc index d655940fff..e3f2c97f16 100644 --- a/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc +++ b/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Axis2Placement3D.cc,v 1.7 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Axis2Placement3D.cc,v 1.8 2005/11/09 07:42:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolid.cc b/source/geometry/solids/BREPS/src/G4BREPSolid.cc index 695a08cf9f..3757633e3b 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolid.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolid.cc,v 1.33 2005/03/23 17:16:31 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolid.cc,v 1.34 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -70,6 +70,16 @@ G4BREPSolid::G4BREPSolid( const G4String& name , Initialize(); } +G4BREPSolid::G4BREPSolid( __void__& a ) + : G4VSolid(a), + Box(0), Convex(0), AxisBox(0), PlaneSolid(0), place(0), bbox(0), + intersectionDistance(kInfinity), active(1), startInside(0), + nb_of_surfaces(0), SurfaceVec(0), + fCubVolStatistics(1000000), fCubVolEpsilon(0.001), fCubicVolume(0.), + fpPolyhedron(0) +{ +} + G4BREPSolid::~G4BREPSolid() { if(place) diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc index a3f9b42567..d4c403596d 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidBox.cc,v 1.8 2003/06/16 16:52:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidBox.cc,v 1.9 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -98,6 +98,11 @@ G4BREPSolidBox::G4BREPSolidBox(const G4String& name, } +G4BREPSolidBox::G4BREPSolidBox( __void__& a ) + : G4BREPSolid(a) +{ +} + G4BREPSolidBox::~G4BREPSolidBox() { } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc index 5a1c450c9b..b8658c56b2 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BREPSolidCone.cc,v 1.13 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidCone.cc,v 1.14 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -113,6 +113,11 @@ G4BREPSolidCone::G4BREPSolidCone(const G4String& name, Initialize(); } +G4BREPSolidCone::G4BREPSolidCone( __void__& a ) + : G4BREPSolid(a) +{ +} + G4BREPSolidCone::~G4BREPSolidCone() { } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc index c3f98fb7c4..865805a375 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BREPSolidCylinder.cc,v 1.9 2003/06/16 16:52:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidCylinder.cc,v 1.10 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -97,6 +97,11 @@ G4BREPSolidCylinder::G4BREPSolidCylinder(const G4String& name, Initialize(); } +G4BREPSolidCylinder::G4BREPSolidCylinder( __void__& a ) + : G4BREPSolid(a) +{ +} + G4BREPSolidCylinder::~G4BREPSolidCylinder() { } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc index 0fe6ba693c..23704d8665 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidOpenPCone.cc,v 1.9 2005/03/03 16:06:06 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidOpenPCone.cc,v 1.10 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -72,6 +72,11 @@ G4BREPSolidOpenPCone::G4BREPSolidOpenPCone } +G4BREPSolidOpenPCone::G4BREPSolidOpenPCone( __void__& a ) + : G4IntersectionSolid(a) +{ +} + G4BREPSolidOpenPCone::~G4BREPSolidOpenPCone() { } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc index 0955305690..0f771a35d2 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BREPSolidPCone.cc,v 1.35 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidPCone.cc,v 1.37 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -37,7 +37,7 @@ // ---------------------------------------------------------------------- #include "G4Types.hh" -#include +#include #include "G4BREPSolidPCone.hh" #include "G4FCylindricalSurface.hh" @@ -171,15 +171,15 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, // if( RMIN[a] > RMAX[a+1] || RMAX[a] < RMIN[a+1] ) { - char msgbuf[512]; - std::ostrstream os(msgbuf,512); + std::ostringstream os; os << "The values of RMIN[" << a << "] & RMAX[" << a+1 << "] or RMAX[" << a << "] & RMIN[" << a+1 << "] " << "generate an invalid configuration for solid: " << name.c_str() << "!" << G4endl; + G4String message = os.str(); G4Exception("G4BREPSolidPCone::G4BREPSolidPCone()", - "InvalidSetup", FatalException, msgbuf ); + "InvalidSetup", FatalException, message ); } ESurfaceSense UpSurfSense, LowSurfSense; @@ -555,13 +555,18 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, Initialize(); } +G4BREPSolidPCone::G4BREPSolidPCone( __void__& a ) + : G4BREPSolid(a) +{ +} + G4BREPSolidPCone::~G4BREPSolidPCone() { if( constructorParams.num_z_planes > 0 ) { delete [] constructorParams.z_values; delete [] constructorParams.RMIN; - delete [] constructorParams.RMIN; + delete [] constructorParams.RMAX; } } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc index a8082595f1..f3c9d6e949 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BREPSolidPolyhedra.cc,v 1.28 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidPolyhedra.cc,v 1.33 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -39,11 +39,12 @@ // // History // ------- -// Bugfix 266 by Radovan Chytracek: -// The situation when phi1 = 0 dphi1 = 2*pi and all RMINs = 0.0 is handled -// now. In this case the inner planes are not created. The fix goes even -// further this means it consideres more than 2 z-planes and inner planes -// are not created whenever two consecutive RMINs are = 0.0 . +// +// Bug-fix #266 by R.Chytracek: +// - The situation when phi1 = 0 dphi1 = 2*pi and all RMINs = 0.0 is handled +// now. In this case the inner planes are not created. The fix goes even +// further this means it considers more than 2 z-planes and inner planes +// are not created whenever two consecutive RMINs are = 0.0 . // // Corrections by S.Giani: // - Xaxis now corresponds to phi=0 @@ -61,7 +62,7 @@ #include "G4BREPSolidPolyhedra.hh" #include "G4FPlane.hh" -#include +#include G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, G4double start_angle, @@ -155,7 +156,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, { // ERROR! Invalid sequence of z-values // - std::ostrstream msgstr; + std::ostringstream msgstr; msgstr << G4endl << "ERROR: unordered, non-increasing or non-decreasing sequence" << G4endl @@ -163,8 +164,9 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, << G4endl << " Check z_values with indexes: " << idx << " " << (idx+1) << "." << G4endl << std::ends; + G4String message = msgstr.str(); G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", - "InvalidSetup", FatalException, msgstr.str() ); + "InvalidSetup", FatalException, message ); } } @@ -214,7 +216,7 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, { // ERROR! The surface conflict! // - std::ostrstream msgstr; + std::ostringstream msgstr; msgstr << G4endl << "ERROR: unordered sequence of z_values detected with" << G4endl @@ -398,13 +400,14 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, // if( RMIN[a] > RMAX[a+1] || RMAX[a] < RMIN[a+1] ) { - std::strstream s; + std::stringstream s; s << G4endl << "The values of RMIN[" << a << "] & RMAX[" << a+1 << "] or RMAX[" << a << "] & RMIN[" << a+1 << "] " << "generate an invalid configuration of solid: " << name.c_str() << "!" << G4endl << std::ends; + G4String message = s.str(); G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", - "InvalidSetup", FatalException, s.str() ); + "InvalidSetup", FatalException, message ); } // We need to clasify all the cases in order to figure out @@ -804,13 +807,18 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, Initialize(); } +G4BREPSolidPolyhedra::G4BREPSolidPolyhedra( __void__& a ) + : G4BREPSolid(a) +{ +} + G4BREPSolidPolyhedra::~G4BREPSolidPolyhedra() { if( constructorParams.num_z_planes > 0 ) { delete [] constructorParams.z_values; delete [] constructorParams.RMIN; - delete [] constructorParams.RMIN; + delete [] constructorParams.RMAX; } } @@ -1171,19 +1179,17 @@ G4BREPSolidPolyhedra::DistanceToOut(register const G4ThreeVector& Pt, } } + G4double distance = 0.; + // Be careful ! // SurfaceVec->Distance is in fact the squared distance // if((ShortestDistance != kInfinity) && (parity&1)) { - return std::sqrt(ShortestDistance); - } - else - { - // if no intersection is found, the point is outside - // - return 0; + distance = std::sqrt(ShortestDistance); } + + return distance; } G4double G4BREPSolidPolyhedra::DistanceToOut(const G4ThreeVector& Pt) const diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc index 388ee489f3..b42ee495ad 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidSphere.cc,v 1.9 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidSphere.cc,v 1.10 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -58,6 +58,11 @@ G4BREPSolidSphere::G4BREPSolidSphere(const G4String& name, Initialize(); } +G4BREPSolidSphere::G4BREPSolidSphere( __void__& a ) + : G4BREPSolid(a) +{ +} + G4BREPSolidSphere::~G4BREPSolidSphere() { } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc index 95845620bd..4de7061a81 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BREPSolidTorus.cc,v 1.7 2003/06/16 16:52:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BREPSolidTorus.cc,v 1.8 2005/11/09 15:01:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -58,6 +58,11 @@ G4BREPSolidTorus::G4BREPSolidTorus(const G4String& name, Initialize(); } +G4BREPSolidTorus::G4BREPSolidTorus( __void__& a ) + : G4BREPSolid(a) +{ +} + G4BREPSolidTorus::~G4BREPSolidTorus() { } diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurve.cc b/source/geometry/solids/BREPS/src/G4BSplineCurve.cc index d432911eb1..4534ab5d78 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineCurve.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineCurve.cc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurve.cc,v 1.11 2003/10/28 13:42:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc index 7ff5c87b5b..d778a00b19 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineCurveWithKnots.cc,v 1.4 2001/07/11 09:59:42 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineSurface.cc b/source/geometry/solids/BREPS/src/G4BSplineSurface.cc index e5a87403fc..d167c841c9 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineSurface.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurface.cc,v 1.13 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc index 0335097ae6..3bda83d785 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc @@ -22,7 +22,7 @@ // // // $Id: G4BSplineSurfaceWithKnots.cc,v 1.3 2001/07/11 09:59:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BezierSurface.cc b/source/geometry/solids/BREPS/src/G4BezierSurface.cc index 4720013b38..92a5e47049 100644 --- a/source/geometry/solids/BREPS/src/G4BezierSurface.cc +++ b/source/geometry/solids/BREPS/src/G4BezierSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4BezierSurface.cc,v 1.8 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc b/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc index 293e037fb4..3334989a78 100644 --- a/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc +++ b/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4BoundingBox3D.cc,v 1.9 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CircularCurve.cc b/source/geometry/solids/BREPS/src/G4CircularCurve.cc index 9668ffa181..940088cfed 100644 --- a/source/geometry/solids/BREPS/src/G4CircularCurve.cc +++ b/source/geometry/solids/BREPS/src/G4CircularCurve.cc @@ -22,7 +22,7 @@ // // // $Id: G4CircularCurve.cc,v 1.9 2004/12/02 09:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CompositeCurve.cc b/source/geometry/solids/BREPS/src/G4CompositeCurve.cc index 25f12f176f..9cd4875dfb 100644 --- a/source/geometry/solids/BREPS/src/G4CompositeCurve.cc +++ b/source/geometry/solids/BREPS/src/G4CompositeCurve.cc @@ -22,7 +22,7 @@ // // // $Id: G4CompositeCurve.cc,v 1.12 2003/10/28 13:42:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Conic.cc b/source/geometry/solids/BREPS/src/G4Conic.cc index c8d1bba40b..d13de343b6 100644 --- a/source/geometry/solids/BREPS/src/G4Conic.cc +++ b/source/geometry/solids/BREPS/src/G4Conic.cc @@ -22,7 +22,7 @@ // // // $Id: G4Conic.cc,v 1.7 2003/03/28 13:11:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ConicalSurface.cc b/source/geometry/solids/BREPS/src/G4ConicalSurface.cc index 94ad96067e..1e838fde4a 100644 --- a/source/geometry/solids/BREPS/src/G4ConicalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4ConicalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4ConicalSurface.cc,v 1.10 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ControlPoints.cc b/source/geometry/solids/BREPS/src/G4ControlPoints.cc index 10a6029d25..0dad98d712 100644 --- a/source/geometry/solids/BREPS/src/G4ControlPoints.cc +++ b/source/geometry/solids/BREPS/src/G4ControlPoints.cc @@ -22,7 +22,7 @@ // // // $Id: G4ControlPoints.cc,v 1.7 2003/03/28 13:11:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Curve.cc b/source/geometry/solids/BREPS/src/G4Curve.cc index 795599828d..376132b9d0 100644 --- a/source/geometry/solids/BREPS/src/G4Curve.cc +++ b/source/geometry/solids/BREPS/src/G4Curve.cc @@ -22,7 +22,7 @@ // // // $Id: G4Curve.cc,v 1.6 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CurvePoint.cc b/source/geometry/solids/BREPS/src/G4CurvePoint.cc index 69687fdf7c..b0efc18622 100644 --- a/source/geometry/solids/BREPS/src/G4CurvePoint.cc +++ b/source/geometry/solids/BREPS/src/G4CurvePoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4CurvePoint.cc,v 1.4 2001/07/11 09:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc b/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc index 09ebd17799..086199aaaf 100644 --- a/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc +++ b/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc @@ -22,7 +22,7 @@ // // // $Id: G4CurveRayIntersection.cc,v 1.5 2003/03/28 13:11:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc b/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc index 70d8d70b23..c9b6d352aa 100644 --- a/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4CylindricalSurface.cc,v 1.7 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Ellipse.cc b/source/geometry/solids/BREPS/src/G4Ellipse.cc index 6c6b6160df..3447418d6e 100644 --- a/source/geometry/solids/BREPS/src/G4Ellipse.cc +++ b/source/geometry/solids/BREPS/src/G4Ellipse.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ellipse.cc,v 1.10 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FConicalSurface.cc b/source/geometry/solids/BREPS/src/G4FConicalSurface.cc index 04fdfc0bcc..ba75719bdf 100644 --- a/source/geometry/solids/BREPS/src/G4FConicalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4FConicalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4FConicalSurface.cc,v 1.18 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc b/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc index f678bccd3b..25d23074a8 100644 --- a/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4FCylindricalSurface.cc,v 1.15 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4FPlane.cc b/source/geometry/solids/BREPS/src/G4FPlane.cc index 564062dd79..8cc65caedb 100644 --- a/source/geometry/solids/BREPS/src/G4FPlane.cc +++ b/source/geometry/solids/BREPS/src/G4FPlane.cc @@ -22,7 +22,7 @@ // // // $Id: G4FPlane.cc,v 1.15 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Hyperbola.cc b/source/geometry/solids/BREPS/src/G4Hyperbola.cc index 3971634fb3..12bcf1a73e 100644 --- a/source/geometry/solids/BREPS/src/G4Hyperbola.cc +++ b/source/geometry/solids/BREPS/src/G4Hyperbola.cc @@ -22,7 +22,7 @@ // // // $Id: G4Hyperbola.cc,v 1.10 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4KnotVector.cc b/source/geometry/solids/BREPS/src/G4KnotVector.cc index a9452f2d97..47bac987a8 100644 --- a/source/geometry/solids/BREPS/src/G4KnotVector.cc +++ b/source/geometry/solids/BREPS/src/G4KnotVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4KnotVector.cc,v 1.7 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Line.cc b/source/geometry/solids/BREPS/src/G4Line.cc index 4ed2939844..eafc2b67d5 100644 --- a/source/geometry/solids/BREPS/src/G4Line.cc +++ b/source/geometry/solids/BREPS/src/G4Line.cc @@ -22,7 +22,7 @@ // // // $Id: G4Line.cc,v 1.9 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4OsloMatrix.cc b/source/geometry/solids/BREPS/src/G4OsloMatrix.cc index 1c88e7ac86..cdee6111c8 100644 --- a/source/geometry/solids/BREPS/src/G4OsloMatrix.cc +++ b/source/geometry/solids/BREPS/src/G4OsloMatrix.cc @@ -22,7 +22,7 @@ // // // $Id: G4OsloMatrix.cc,v 1.5 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Parabola.cc b/source/geometry/solids/BREPS/src/G4Parabola.cc index 75b6200398..442467b1c2 100644 --- a/source/geometry/solids/BREPS/src/G4Parabola.cc +++ b/source/geometry/solids/BREPS/src/G4Parabola.cc @@ -22,7 +22,7 @@ // // // $Id: G4Parabola.cc,v 1.7 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4PlacedSolid.cc b/source/geometry/solids/BREPS/src/G4PlacedSolid.cc index beba575288..07bdc6e2dc 100644 --- a/source/geometry/solids/BREPS/src/G4PlacedSolid.cc +++ b/source/geometry/solids/BREPS/src/G4PlacedSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4PlacedSolid.cc,v 1.4 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4PointRat.cc b/source/geometry/solids/BREPS/src/G4PointRat.cc index c3c10d0b23..29bd5ca6b9 100644 --- a/source/geometry/solids/BREPS/src/G4PointRat.cc +++ b/source/geometry/solids/BREPS/src/G4PointRat.cc @@ -22,7 +22,7 @@ // // // $Id: G4PointRat.cc,v 1.5 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc b/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc index 83c83e5fc2..3cc4def53c 100644 --- a/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc +++ b/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProjectedSurface.cc,v 1.10 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Ray.cc b/source/geometry/solids/BREPS/src/G4Ray.cc index d1900093ae..86c6f6f946 100644 --- a/source/geometry/solids/BREPS/src/G4Ray.cc +++ b/source/geometry/solids/BREPS/src/G4Ray.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ray.cc,v 1.10 2004/12/02 09:31:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc b/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc index 8f9c038354..03989ec7f0 100644 --- a/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc +++ b/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4RectangularTrimmedSurface.cc,v 1.6 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Sort.cc b/source/geometry/solids/BREPS/src/G4Sort.cc index 2ac1bc2a98..a5eaa2345a 100644 --- a/source/geometry/solids/BREPS/src/G4Sort.cc +++ b/source/geometry/solids/BREPS/src/G4Sort.cc @@ -22,7 +22,7 @@ // // // $Id: G4Sort.cc,v 1.4 2001/07/11 09:59:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 source file diff --git a/source/geometry/solids/BREPS/src/G4SphericalSurface.cc b/source/geometry/solids/BREPS/src/G4SphericalSurface.cc index 6489168670..639f23af39 100644 --- a/source/geometry/solids/BREPS/src/G4SphericalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4SphericalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4SphericalSurface.cc,v 1.9 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4Surface.cc b/source/geometry/solids/BREPS/src/G4Surface.cc index 464d2477bf..61c08439b7 100644 --- a/source/geometry/solids/BREPS/src/G4Surface.cc +++ b/source/geometry/solids/BREPS/src/G4Surface.cc @@ -22,7 +22,7 @@ // // // $Id: G4Surface.cc,v 1.14 2004/12/02 09:31:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc b/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc index 78eaaa971a..655e406d4d 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceBoundary.cc,v 1.13 2004/12/02 09:31:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceList.cc b/source/geometry/solids/BREPS/src/G4SurfaceList.cc index 59fdba6989..f1cd08217b 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceList.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceList.cc,v 1.6 2001/07/11 09:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc b/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc index 840e53f331..eea5b9b91f 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceOfLinearExtrusion.cc,v 1.3 2001/07/11 09:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc b/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc index ca0a7b0070..7469c38402 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc @@ -25,7 +25,7 @@ // and all its terms. // // $Id: G4SurfaceOfRevolution.cc,v 1.3 2001/07/11 09:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ThreeMat.cc b/source/geometry/solids/BREPS/src/G4ThreeMat.cc index 01117a4fbf..1bfbd3af9e 100644 --- a/source/geometry/solids/BREPS/src/G4ThreeMat.cc +++ b/source/geometry/solids/BREPS/src/G4ThreeMat.cc @@ -22,7 +22,7 @@ // // // $Id: G4ThreeMat.cc,v 1.7 2003/06/16 16:53:00 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc b/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc index b8ad70fd20..e70e8ef7e2 100644 --- a/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc +++ b/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4ToroidalSurface.cc,v 1.9 2004/12/10 16:22:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/Boolean/History b/source/geometry/solids/Boolean/History index c6c31c8637..d6705a98cd 100644 --- a/source/geometry/solids/Boolean/History +++ b/source/geometry/solids/Boolean/History @@ -1,5 +1,5 @@ -$Id: History,v 1.52 2005/05/09 13:46:03 gcosmo Exp $ +$Id: History,v 1.55 2005/11/09 15:00:43 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,15 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + Nov 09, 2005 G.Cosmo geom-bool-V07-01-01 + - Added fake default constructor for concrete solids types and relevant + utility classes, for usage of direct object persistency. + + Sep 15, 2005 V.Grichine geom-bool-V07-01-00 + - Added concrete implementation for GetPointOnSurface() to + G4BooleanSolid and G4DisplacedSolid. + - Updated unit tests testG4DisplacedSolid and testG4IntersectionSolid. + May 04, 2005 V.Grichine geom-bool-V07-00-03 - Make the new implementation of Inside() with surface-normal for edges/vertices the deafult one. diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh index ed42c97d1c..a68ce1a10e 100644 --- a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh +++ b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.hh,v 1.11 2004/10/10 10:50:46 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BooleanSolid.hh,v 1.13 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4BooleanSolid @@ -85,6 +85,14 @@ class G4BooleanSolid : public G4VSolid inline G4double GetCubVolEpsilon() const; inline void SetCubVolStatistics(G4int st); inline void SetCubVolEpsilon(G4double ep); + G4ThreeVector GetPointOnSurface() const; + + public: // without description + + G4BooleanSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. protected: diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.icc b/source/geometry/solids/Boolean/include/G4BooleanSolid.icc index ecd1f0fd9d..7bf232af25 100644 --- a/source/geometry/solids/Boolean/include/G4BooleanSolid.icc +++ b/source/geometry/solids/Boolean/include/G4BooleanSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4BooleanSolid.icc,v 1.1 2004/09/22 09:27:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh index cdf7bb3497..099468c27d 100644 --- a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh +++ b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DisplacedSolid.hh,v 1.16 2004/10/10 10:50:48 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DisplacedSolid.hh,v 1.18 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4DisplacedSolid @@ -101,6 +101,8 @@ class G4DisplacedSolid : public G4VSolid void CleanTransformations(); + G4ThreeVector GetPointOnSurface() const; + public: // with description virtual G4GeometryType GetEntityType() const; @@ -137,6 +139,11 @@ class G4DisplacedSolid : public G4VSolid public: // without description + G4DisplacedSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; G4Polyhedron* CreatePolyhedron () const ; G4NURBS* CreateNURBS () const ; diff --git a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh index 90b705e5ca..fbedf070cf 100644 --- a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntersectionSolid.hh,v 1.7 2003/11/03 17:48:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IntersectionSolid.hh,v 1.8 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4IntersectionSolid @@ -73,6 +73,11 @@ class G4IntersectionSolid : public G4BooleanSolid public: // without description + G4IntersectionSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + G4bool CalculateExtent( const EAxis pAxis, const G4VoxelLimits& pVoxelLimit, const G4AffineTransform& pTransform, diff --git a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh index 312a3e9774..347845298e 100644 --- a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SubtractionSolid.hh,v 1.7 2003/11/03 17:48:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SubtractionSolid.hh,v 1.8 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4SubtractionSolid @@ -73,6 +73,11 @@ class G4SubtractionSolid : public G4BooleanSolid public: // without description + G4SubtractionSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + G4bool CalculateExtent( const EAxis pAxis, const G4VoxelLimits& pVoxelLimit, const G4AffineTransform& pTransform, diff --git a/source/geometry/solids/Boolean/include/G4UnionSolid.hh b/source/geometry/solids/Boolean/include/G4UnionSolid.hh index d1b68cdffc..37f03ccba0 100644 --- a/source/geometry/solids/Boolean/include/G4UnionSolid.hh +++ b/source/geometry/solids/Boolean/include/G4UnionSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnionSolid.hh,v 1.8 2003/11/03 17:48:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UnionSolid.hh,v 1.9 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4UnionSolid @@ -72,6 +72,11 @@ class G4UnionSolid : public G4BooleanSolid public: // without description + G4UnionSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + G4bool CalculateExtent( const EAxis pAxis, const G4VoxelLimits& pVoxelLimit, const G4AffineTransform& pTransform, diff --git a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc index 021b9702db..b2ec13fe21 100644 --- a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc +++ b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BooleanSolid.cc,v 1.16 2005/04/04 09:44:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BooleanSolid.cc,v 1.19 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation for the abstract base class for solids created by boolean // operations between other solids @@ -36,6 +36,7 @@ #include "G4BooleanSolid.hh" #include "G4VSolid.hh" #include "G4Polyhedron.hh" +#include "Randomize.hh" ////////////////////////////////////////////////////////////////// // @@ -82,6 +83,18 @@ G4BooleanSolid::G4BooleanSolid( const G4String& pName, fPtrSolidB = new G4DisplacedSolid("placedB",pSolidB,transform) ; } +/////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. + +G4BooleanSolid::G4BooleanSolid( __void__& a ) + : G4VSolid(a), fPtrSolidA(0), fPtrSolidB(0), + fCubVolStatistics(1000000), fCubVolEpsilon(0.001), + fCubicVolume(0.), fpPolyhedron(0), createdDisplacedSolid(false) +{ +} + /////////////////////////////////////////////////////////////// // // Destructor deletes transformation contents of the created displaced solid @@ -171,6 +184,34 @@ std::ostream& G4BooleanSolid::StreamInfo(std::ostream& os) const return os; } +////////////////////////////////////////////////////////////////////////// +// +// Returns a point (G4ThreeVector) randomly and uniformly selected +// on the solid surface +// + +G4ThreeVector G4BooleanSolid::GetPointOnSurface() const +{ + G4bool condition = true; + G4double rand; + G4ThreeVector p; + + while(condition) + { + rand = G4UniformRand(); + + if(rand > 0.5) { p = fPtrSolidA->GetPointOnSurface(); } + else { p = fPtrSolidB->GetPointOnSurface(); } + + if(Inside(p) == kSurface) { break; } + } + return p; +} + +////////////////////////////////////////////////////////////////////////// +// +// Returns polyhedron for visualization + G4Polyhedron* G4BooleanSolid::GetPolyhedron () const { if (!fpPolyhedron || diff --git a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc index 36fd711a96..44ab0465b2 100644 --- a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc +++ b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DisplacedSolid.cc,v 1.23 2005/03/23 17:16:31 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DisplacedSolid.cc,v 1.26 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation for G4DisplacedSolid class for boolean // operations between other solids @@ -55,7 +55,7 @@ G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, G4VSolid* pSolid , G4RotationMatrix* rotMatrix, const G4ThreeVector& transVector ) - : G4VSolid(pName), fpPolyhedron (0) + : G4VSolid(pName), fpPolyhedron(0) { fPtrSolid = pSolid ; fPtrTransform = new G4AffineTransform(rotMatrix,transVector) ; @@ -70,7 +70,7 @@ G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, G4VSolid* pSolid , const G4Transform3D& transform ) - : G4VSolid(pName), fpPolyhedron (0) + : G4VSolid(pName), fpPolyhedron(0) { fPtrSolid = pSolid ; fDirectTransform = new G4AffineTransform(transform.getRotation().inverse(), @@ -89,13 +89,24 @@ G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, G4DisplacedSolid::G4DisplacedSolid( const G4String& pName, G4VSolid* pSolid , const G4AffineTransform directTransform ) - : G4VSolid(pName), fpPolyhedron (0) + : G4VSolid(pName), fpPolyhedron(0) { fPtrSolid = pSolid ; fDirectTransform = new G4AffineTransform( directTransform ); fPtrTransform = new G4AffineTransform( directTransform.Inverse() ) ; } +/////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. + +G4DisplacedSolid::G4DisplacedSolid( __void__& a ) + : G4VSolid(a), fPtrSolid(0), fPtrTransform(0), + fDirectTransform(0), fpPolyhedron(0) +{ +} + /////////////////////////////////////////////////////////////////// // // Destructor @@ -329,6 +340,18 @@ G4DisplacedSolid::ComputeDimensions( G4VPVParameterisation*, "Method not applicable in this context!"); } +////////////////////////////////////////////////////////////////////////// +// +// Returns a point (G4ThreeVector) randomly and uniformly selected +// on the solid surface +// + +G4ThreeVector G4DisplacedSolid::GetPointOnSurface() const +{ + G4ThreeVector p = fPtrSolid->GetPointOnSurface(); + return fDirectTransform->TransformPoint(p); +} + ////////////////////////////////////////////////////////////////////////// // // Stream object contents to an output stream @@ -355,7 +378,7 @@ std::ostream& G4DisplacedSolid::StreamInfo(std::ostream& os) const return os; } -///////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// // // @@ -365,7 +388,7 @@ G4DisplacedSolid::DescribeYourselfTo ( G4VGraphicsScene& scene ) const scene.AddSolid (*this); } -//////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// // // @@ -378,7 +401,7 @@ G4DisplacedSolid::CreatePolyhedron () const return polyhedron; } -///////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// // // @@ -390,7 +413,7 @@ G4DisplacedSolid::CreateNURBS () const return 0; } -///////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// // // diff --git a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc index 66a6c4fd31..5db3dc2b86 100644 --- a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntersectionSolid.cc,v 1.24 2005/03/03 16:04:14 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IntersectionSolid.cc,v 1.25 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -60,7 +60,6 @@ G4IntersectionSolid::G4IntersectionSolid( const G4String& pName, { } - /////////////////////////////////////////////////////////////////// // @@ -85,6 +84,20 @@ G4IntersectionSolid::G4IntersectionSolid( const G4String& pName, { } +////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. + +G4IntersectionSolid::G4IntersectionSolid( __void__& a ) + : G4BooleanSolid(a) +{ +} + +/////////////////////////////////////////////////////////////// +// +// + G4IntersectionSolid::~G4IntersectionSolid() { } diff --git a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc index 4a639ef609..7a9158ce44 100644 --- a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SubtractionSolid.cc,v 1.25 2005/05/09 13:44:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SubtractionSolid.cc,v 1.26 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -83,6 +83,15 @@ G4SubtractionSolid::G4SubtractionSolid( const G4String& pName, { } +////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. + +G4SubtractionSolid::G4SubtractionSolid( __void__& a ) + : G4BooleanSolid(a) +{ +} /////////////////////////////////////////////////////////////// // diff --git a/source/geometry/solids/Boolean/src/G4UnionSolid.cc b/source/geometry/solids/Boolean/src/G4UnionSolid.cc index 334bbc22fd..89b5c0633b 100644 --- a/source/geometry/solids/Boolean/src/G4UnionSolid.cc +++ b/source/geometry/solids/Boolean/src/G4UnionSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnionSolid.cc,v 1.29 2005/05/09 13:44:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UnionSolid.cc,v 1.30 2005/11/09 15:00:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -83,6 +83,15 @@ G4UnionSolid::G4UnionSolid( const G4String& pName, { } +////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. + +G4UnionSolid::G4UnionSolid( __void__& a ) + : G4BooleanSolid(a) +{ +} /////////////////////////////////////////////////////////// // diff --git a/source/geometry/solids/CSG/History b/source/geometry/solids/CSG/History index 1d2f9952b0..f659eff4d4 100644 --- a/source/geometry/solids/CSG/History +++ b/source/geometry/solids/CSG/History @@ -1,4 +1,4 @@ -$Id: History,v 1.83 2005/06/08 16:14:41 gcosmo Exp $ +$Id: History,v 1.89 2005/11/21 07:59:18 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,34 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 20, 2005 V.Grichine geom-csg-V07-01-05 +- G4Torus: fixed bug in Inside(p) for phi sections. + Fixes problem report #810. + +Nov 9, 2005 G.Cosmo geom-csg-V07-01-04 +- Added fake default constructor for all concrete solids and relevant + utility classes, for usage of direct object persistency. +- Implemented changes to support CLHEP-2.0.X for explicit usage of the + CLHEP/HepGeom namespaces for CLHEP types. + +Oct 23, 2005 V.Grichine geom-csg-V07-01-03 +- G4Para: fixed bug in DistanceToOut(p,v) for the case v.x()<0. + Following problem report from user posted on Hypernews (#452). + +Sep 5, 2005 O.Link geom-csg-V07-01-02 +- Moved implementation for DistanceToIn/Out() in G4Torus to make use of + G4JTPolynomialSolver for precise calculation of the intersections. +- Reviewed unit tests and reduced statistics. + +Aug 8, 2005 D.Anninos geom-csg-V07-01-01 +- Added GetPointOnSurface() to all solids. The method returns a random + point according to a quasi-uniform distribution along the surface. + +Jul 25, 2005 O.Link geom-csg-V07-01-00 +- Fixed bug in G4Sphere::DistanceToOut(p,v): + added check for intersection with double cone. +- Added new unit test testDistanceAccuracy (V.Grichine). + Jun 8, 2005 V.Grichine geom-csg-V07-00-09 - Keep old specification for SurfaceNormal() to treat usage of the function for points not at the surface. diff --git a/source/geometry/solids/CSG/include/G4Box.hh b/source/geometry/solids/CSG/include/G4Box.hh index 0a37e31951..935a7d378c 100644 --- a/source/geometry/solids/CSG/include/G4Box.hh +++ b/source/geometry/solids/CSG/include/G4Box.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Box.hh,v 1.14 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Box.hh,v 1.15 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -113,6 +113,13 @@ class G4Box : public G4CSGSolid G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; + public: // without description + + G4Box(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // with description G4ThreeVectorList* diff --git a/source/geometry/solids/CSG/include/G4Box.icc b/source/geometry/solids/CSG/include/G4Box.icc index c8272a82a5..e52b240b0f 100644 --- a/source/geometry/solids/CSG/include/G4Box.icc +++ b/source/geometry/solids/CSG/include/G4Box.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Box.icc,v 1.2 2004/09/08 15:13:51 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Box.icc,v 1.4 2005/08/04 10:57:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -50,12 +50,10 @@ G4double G4Box::GetZHalfLength() const return fDz; } -/////////////////////////////////////////////////// - inline G4double G4Box::GetCubicVolume() { - if(fCubicVolume != 0.) ; - else fCubicVolume = 8*fDx*fDy*fDz; + if(fCubicVolume != 0.) {;} + else { fCubicVolume = 8*fDx*fDy*fDz; } return fCubicVolume; } diff --git a/source/geometry/solids/CSG/include/G4CSGSolid.hh b/source/geometry/solids/CSG/include/G4CSGSolid.hh index 6c4ba4481b..c0d97c6573 100644 --- a/source/geometry/solids/CSG/include/G4CSGSolid.hh +++ b/source/geometry/solids/CSG/include/G4CSGSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CSGSolid.hh,v 1.9 2004/10/10 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4CSGSolid.hh,v 1.10 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -55,6 +55,13 @@ class G4CSGSolid : public G4VSolid virtual G4Polyhedron* GetPolyhedron () const; + public: // without description + + G4CSGSolid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: G4double fCubicVolume; diff --git a/source/geometry/solids/CSG/include/G4Cons.hh b/source/geometry/solids/CSG/include/G4Cons.hh index c84a7c1abc..777801451a 100644 --- a/source/geometry/solids/CSG/include/G4Cons.hh +++ b/source/geometry/solids/CSG/include/G4Cons.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Cons.hh,v 1.13 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Cons.hh,v 1.15 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -127,7 +127,9 @@ class G4Cons : public G4CSGSolid G4double DistanceToOut(const G4ThreeVector& p) const; G4GeometryType GetEntityType() const; - + + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo(std::ostream& os) const; // Visualisation functions @@ -138,6 +140,11 @@ class G4Cons : public G4CSGSolid public: // without description + G4Cons(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + // Old access functions inline G4double GetRmin1() const; diff --git a/source/geometry/solids/CSG/include/G4Cons.icc b/source/geometry/solids/CSG/include/G4Cons.icc index 782e942147..a87a6c3f06 100644 --- a/source/geometry/solids/CSG/include/G4Cons.icc +++ b/source/geometry/solids/CSG/include/G4Cons.icc @@ -22,7 +22,7 @@ // // // $Id: G4Cons.icc,v 1.4 2004/10/10 10:44:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Orb.hh b/source/geometry/solids/CSG/include/G4Orb.hh index 9edc69b369..4c95c2ce44 100644 --- a/source/geometry/solids/CSG/include/G4Orb.hh +++ b/source/geometry/solids/CSG/include/G4Orb.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Orb.hh,v 1.6 2004/09/22 08:25:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Orb.hh,v 1.9 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -91,6 +91,8 @@ class G4Orb : public G4CSGSolid G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo(std::ostream& os) const; // Visualisation functions @@ -99,6 +101,13 @@ class G4Orb : public G4CSGSolid G4Polyhedron* CreatePolyhedron() const; G4NURBS* CreateNURBS() const; + public: // without description + + G4Orb(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // Used by distanceToOut diff --git a/source/geometry/solids/CSG/include/G4Orb.icc b/source/geometry/solids/CSG/include/G4Orb.icc index db562be853..bda7d0c211 100644 --- a/source/geometry/solids/CSG/include/G4Orb.icc +++ b/source/geometry/solids/CSG/include/G4Orb.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Orb.icc,v 1.2 2004/10/10 10:44:16 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Orb.icc,v 1.3 2005/08/04 10:57:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -46,12 +46,10 @@ void G4Orb::SetRadius(G4double newRmax) fpPolyhedron = 0; } -/////////////////////////////////////////////////// - inline G4double G4Orb::GetCubicVolume() { - if(fCubicVolume != 0.) ; - else fCubicVolume = 4*pi*fRmax*fRmax*fRmax/3.; + if(fCubicVolume != 0.) {;} + else { fCubicVolume = 4*pi*fRmax*fRmax*fRmax/3.; } return fCubicVolume; } diff --git a/source/geometry/solids/CSG/include/G4Para.hh b/source/geometry/solids/CSG/include/G4Para.hh index 56be7d374a..bb00b12a2f 100644 --- a/source/geometry/solids/CSG/include/G4Para.hh +++ b/source/geometry/solids/CSG/include/G4Para.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Para.hh,v 1.13 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Para.hh,v 1.16 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -141,6 +141,13 @@ class G4Para : public G4CSGSolid G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; + public: // without description + + G4Para(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // without description G4ThreeVectorList* @@ -152,6 +159,11 @@ class G4Para : public G4CSGSolid // Algorithm for SurfaceNormal() following the original // specification for points not on the surface + G4ThreeVector GetPointOnPlane(G4ThreeVector p0, G4ThreeVector p1, + G4ThreeVector p2, G4ThreeVector p3, + G4double& area) const; + // Returns a random point on the surface of one of the faces. + private: G4double fDx,fDy,fDz; diff --git a/source/geometry/solids/CSG/include/G4Para.icc b/source/geometry/solids/CSG/include/G4Para.icc index 53d5974a43..f72a60e3a4 100644 --- a/source/geometry/solids/CSG/include/G4Para.icc +++ b/source/geometry/solids/CSG/include/G4Para.icc @@ -22,7 +22,7 @@ // // // $Id: G4Para.icc,v 1.5 2004/12/02 09:31:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Sphere.hh b/source/geometry/solids/CSG/include/G4Sphere.hh index 7200b21408..42a7d8cca0 100644 --- a/source/geometry/solids/CSG/include/G4Sphere.hh +++ b/source/geometry/solids/CSG/include/G4Sphere.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Sphere.hh,v 1.14 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Sphere.hh,v 1.17 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -33,7 +33,7 @@ // Class description: // // A G4Sphere is, in the general case, section of a spherical shell, -// between specified phii and theta angles +// between specified phi and theta angles // // The phi and theta segments are described by a starting angle, // and the +ve delta angle for the shape. @@ -131,6 +131,8 @@ class G4Sphere : public G4CSGSolid G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo(std::ostream& os) const; // Visualisation functions @@ -138,9 +140,14 @@ class G4Sphere : public G4CSGSolid void DescribeYourselfTo(G4VGraphicsScene& scene) const; G4Polyhedron* CreatePolyhedron() const; G4NURBS* CreateNURBS() const; - + public: // without description + G4Sphere(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + // Old access functions inline G4double GetRmin() const; diff --git a/source/geometry/solids/CSG/include/G4Sphere.icc b/source/geometry/solids/CSG/include/G4Sphere.icc index 377e042afb..821ba37091 100644 --- a/source/geometry/solids/CSG/include/G4Sphere.icc +++ b/source/geometry/solids/CSG/include/G4Sphere.icc @@ -22,7 +22,7 @@ // // // $Id: G4Sphere.icc,v 1.5 2004/12/02 09:31:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Torus.hh b/source/geometry/solids/CSG/include/G4Torus.hh index 9d7dd1b5ea..ebf04a5e3e 100644 --- a/source/geometry/solids/CSG/include/G4Torus.hh +++ b/source/geometry/solids/CSG/include/G4Torus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Torus.hh,v 1.19 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Torus.hh,v 1.24 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -138,6 +138,8 @@ class G4Torus : public G4CSGSolid G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo(std::ostream& os) const; // Visualisation functions @@ -151,25 +153,21 @@ class G4Torus : public G4CSGSolid void SetAllParameters(G4double pRmin, G4double pRmax, G4double pRtor, G4double pSPhi, G4double pDPhi); - G4int TorusRoots( G4double Ri, - const G4ThreeVector& p, - const G4ThreeVector& v) const ; + G4Torus(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. protected: - G4int SolveBiQuadratic(G4double c[], G4double s[] ) const ; - G4int SolveCubic(G4double c[], G4double s[] ) const ; + std::vector TorusRootsJT(const G4ThreeVector& p, + const G4ThreeVector& v, + G4double r) const ; - G4int SolveBiQuadraticNew(G4double c[], G4double s[] ) const ; - G4int SolveCubicNew(G4double c[], G4double s[], G4double& cd ) const ; - - G4int SolveQuadratic(G4double c[], G4double s[] ) const ; - - G4double SolveNumeric(const G4ThreeVector& p, - const G4ThreeVector& v, - G4bool IsDistanceToIn) const; - - G4double SolveNumericJT(G4double c[]) const; + G4double SolveNumericJT(const G4ThreeVector& p, + const G4ThreeVector& v, + G4double r, + G4bool IsDistanceToIn) const; G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform& pTransform, @@ -191,66 +189,7 @@ class G4Torus : public G4CSGSolid // Algorithm for SurfaceNormal() following the original // specification for points not on the surface - inline G4double TorusEquation (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const; - inline G4double TorusDerivativeX (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const; - inline G4double TorusDerivativeY (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const; - inline G4double TorusDerivativeZ (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const; - inline G4double TorusGradient(G4double dx, G4double dy, G4double dz, - G4double x, G4double y, G4double z, - G4double Rmax, G4double Rmin) const; - void BVMIntersection (G4double x, G4double y, G4double z, - G4double dx, G4double dy, G4double dz, - G4double Rmax, G4double Rmin, - G4double *NewL, G4int *valid) const; - - void SortIntervals (G4double *SortL, G4double *NewL, - G4int *valid, G4int *NbIntersection) const; - - G4double DistanceToTorus (G4double x, G4double y, G4double z, - G4double dx, G4double dy, G4double dz, - G4double R0,G4double R1) const; -}; - - -class G4TorusEquation -{ - public: - - G4TorusEquation(); - G4TorusEquation(G4double Rmax, G4double Rmin); - - ~G4TorusEquation(); - - inline void setRadius (G4double Rmax, G4double Rmin); - inline void setPosition (G4double x,G4double y,G4double z); - inline void setPosition (const G4ThreeVector& p); - inline void setDirection (G4double dirx,G4double diry,G4double dirz); - inline void setDirection (const G4ThreeVector& v); - - public: - - inline G4double Function (G4double value); - inline G4double Derivative(G4double value); - - private: - - inline G4double TorusEquation (G4double x, G4double y, G4double z); - inline G4double TorusDerivativeX (G4double x, G4double y, G4double z); - inline G4double TorusDerivativeY (G4double x, G4double y, G4double z); - inline G4double TorusDerivativeZ (G4double x, G4double y, G4double z); - - private: - - G4double R0; - G4double R1; - - G4double Px,Py,Pz; - G4double dx,dy,dz; }; #include "G4Torus.icc" diff --git a/source/geometry/solids/CSG/include/G4Torus.icc b/source/geometry/solids/CSG/include/G4Torus.icc index 8a73df816f..d805c9b2df 100644 --- a/source/geometry/solids/CSG/include/G4Torus.icc +++ b/source/geometry/solids/CSG/include/G4Torus.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Torus.icc,v 1.2 2004/09/08 15:13:51 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Torus.icc,v 1.4 2005/09/05 16:08:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -62,183 +62,10 @@ G4double G4Torus::GetDPhi() const return fDPhi ; } -// Utility functions - -inline -G4double G4Torus::TorusEquation (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const -{ - // R0 : Radius of all little circles - // R1 : Radius of little circles - - // An interesting property is that the sign - // tell if the point is inside or outside - // or if > EPSILON on the surface - - G4double temp; - - temp = ((x*x + y*y + z*z) + R0*R0 - R1*R1) ; - temp = temp*temp ; - temp = temp - 4*R0*R0*(x*x + y*y) ; - - // > 0 Outside - // < 0 Inside - - return temp ; -} - -inline -G4double G4Torus::TorusDerivativeX (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const -{ - return 4*x*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*x ; -} - -inline -G4double G4Torus::TorusDerivativeY (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const -{ - return 4*y*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*y ; -} - -inline -G4double G4Torus::TorusDerivativeZ (G4double x, G4double y, G4double z, - G4double R0, G4double R1) const -{ - return 4*z*(x*x + y*y + z*z + R0*R0 - R1*R1) ; -} - -inline -G4double G4Torus::TorusGradient(G4double dx, G4double dy, G4double dz, - G4double x, G4double y, G4double z, - G4double Rmax, G4double Rmin) const -{ - // This tells the normal at a surface point - - G4double result; - result = 0; - result += dx*TorusDerivativeX(x,y,z,Rmax,Rmin); - result += dy*TorusDerivativeY(x,y,z,Rmax,Rmin); - result += dz*TorusDerivativeZ(x,y,z,Rmax,Rmin); - - return result; -} - -// ----------- G4TorusEquation methods --------------- - -inline -void G4TorusEquation::setRadius (G4double Rmax, G4double Rmin) -{ - R0 = Rmax; - R1 = Rmin; -} - -inline -void G4TorusEquation::setPosition (G4double x,G4double y,G4double z) -{ - Px = x; - Py = y; - Pz = z; -} - -inline -void G4TorusEquation::setPosition (const G4ThreeVector& p) -{ - Px = p.x(); - Py = p.y(); - Pz = p.z(); -} - -inline -void G4TorusEquation::setDirection (G4double dirx,G4double diry,G4double dirz) -{ - dx = dirx; - dy = diry; - dz = dirz; -} - -inline -void G4TorusEquation::setDirection (const G4ThreeVector& v) -{ - dx = v.x(); - dy = v.y(); - dz = v.z(); -} - -inline -G4double G4TorusEquation::TorusEquation (G4double x, G4double y, G4double z) -{ - // An interesting property is that the sign - // tells if the point is inside or outside - // or if > EPSILON on the surface - - G4double temp; - - temp = ((x*x + y*y + z*z) + R0*R0 - R1*R1) ; - temp = temp*temp ; - temp = temp - 4*R0*R0*(x*x + y*y) ; - - // > 0 Outside - // < 0 Inside - - return temp ; -} - -inline -G4double G4TorusEquation::TorusDerivativeX (G4double x, G4double y, G4double z) -{ - return 4*x*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*x ; -} - -inline -G4double G4TorusEquation::TorusDerivativeY (G4double x, G4double y, G4double z) -{ - return 4*y*(x*x + y*y + z*z + R0*R0 - R1*R1) - 8*R0*R0*y ; -} - -inline -G4double G4TorusEquation::TorusDerivativeZ (G4double x, G4double y, G4double z) -{ - return 4*z*(x*x + y*y + z*z + R0*R0 - R1*R1) ; -} - -inline -G4double G4TorusEquation::Function (G4double value) -{ - G4double Lx,Ly,Lz; - G4double result; - - Lx = Px + value*dx; - Ly = Py + value*dy; - Lz = Pz + value*dz; - - result = TorusEquation(Lx,Ly,Lz); - return result ; -} - -inline -G4double G4TorusEquation::Derivative(G4double value) -{ - G4double Lx,Ly,Lz; - G4double result; - - Lx = Px + value*dx; - Ly = Py + value*dy; - Lz = Pz + value*dz; - - result = dx*TorusDerivativeX(Lx,Ly,Lz); - result += dy*TorusDerivativeY(Lx,Ly,Lz); - result += dz*TorusDerivativeZ(Lx,Ly,Lz); - - return result; -} - -/////////////////////////////////////////////////// - inline G4double G4Torus::GetCubicVolume() { - if(fCubicVolume != 0.) ; - else fCubicVolume = fDPhi*pi*fRtor*(fRmax*fRmax-fRmin*fRmin); + if(fCubicVolume != 0.) {;} + else { fCubicVolume = fDPhi*pi*fRtor*(fRmax*fRmax-fRmin*fRmin); } return fCubicVolume; } diff --git a/source/geometry/solids/CSG/include/G4Trap.hh b/source/geometry/solids/CSG/include/G4Trap.hh index b83ecec743..855a82d20c 100644 --- a/source/geometry/solids/CSG/include/G4Trap.hh +++ b/source/geometry/solids/CSG/include/G4Trap.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trap.hh,v 1.12 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Trap.hh,v 1.15 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -46,7 +46,7 @@ // at -/+pDz // pPhi Azimuthal angle of the line joing the centre of the face at // -pDz to the centre of the face at +pDz -// pDy1 Half-length along y of the face at -pDz +// pDy1 Half-length along y of the face at -pDz // pDx1 Half-length along x of the side at y=-pDy1 of the face at -pDz // pDx2 Half-length along x of the side at y=+pDy1 of the face at -pDz // pAlp1 Angle with respect to the y axis from the centre of the side @@ -62,8 +62,9 @@ // Member Data: // // fDz Half-length along the z axis -// fTthetaCphi = std::tan(pTheta)*std::cos(pPhi) These combinations are suitable for -// fTthetaSphi = std::tan(pTheta)*std::sin(pPhi) creation of the trapezoid corners +// fTthetaCphi = std::tan(pTheta)*std::cos(pPhi) +// fTthetaSphi = std::tan(pTheta)*std::sin(pPhi) +// These combinations are suitable for creation of the trapezoid corners // // fDy1 Half-length along y of the face at -fDz // fDx1 Half-length along x of the side at y=-fDy1 of the face at -fDz @@ -162,15 +163,14 @@ class G4Trap : public G4CSGSolid inline G4double GetXHalfLength3() const; inline G4double GetXHalfLength4() const; inline G4double GetTanAlpha2() const; - inline TrapSidePlane GetSidePlane( G4int n ) const; - inline G4ThreeVector GetSymAxis() const; - inline G4double GetCubicVolume(); - - // // Returns coordinates of unit vector along straight // line joining centers of -/+fDz planes + inline TrapSidePlane GetSidePlane( G4int n ) const; + inline G4ThreeVector GetSymAxis() const; + inline G4double GetCubicVolume(); + // Modifiers void SetAllParameters ( G4double pDz, @@ -212,6 +212,8 @@ class G4Trap : public G4CSGSolid G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo( std::ostream& os ) const; // Visualisation functions @@ -220,6 +222,13 @@ class G4Trap : public G4CSGSolid G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; + public: // without description + + G4Trap(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // with description G4bool MakePlanes(); @@ -241,6 +250,20 @@ class G4Trap : public G4CSGSolid // Algorithm for SurfaceNormal() following the original // specification for points not on the surface + inline G4double GetFaceArea(const G4ThreeVector& p1, + const G4ThreeVector& p2, + const G4ThreeVector& p3, + const G4ThreeVector& p4); + // + // Provided four corners of plane in clockwise fashion, + // it returns the area of finite face + + G4ThreeVector GetPointOnPlane(G4ThreeVector p0, G4ThreeVector p1, + G4ThreeVector p2, G4ThreeVector p3, + G4double& area) const; + // + // Returns a random point on the surface of one of the faces + private: G4double fDz,fTthetaCphi,fTthetaSphi; diff --git a/source/geometry/solids/CSG/include/G4Trap.icc b/source/geometry/solids/CSG/include/G4Trap.icc index a5f733e5b0..c00267a9e6 100644 --- a/source/geometry/solids/CSG/include/G4Trap.icc +++ b/source/geometry/solids/CSG/include/G4Trap.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trap.icc,v 1.4 2004/12/02 09:31:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Trap.icc,v 1.6 2005/08/04 10:57:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -103,16 +103,19 @@ TrapSidePlane G4Trap::GetSidePlane( G4int n ) const return fPlanes[n] ; } - -/////////////////////////////////////////////////// -// -// Return the volume as a bit modified Trd +inline +G4double G4Trap::GetFaceArea(const G4ThreeVector& p0, const G4ThreeVector& p1, + const G4ThreeVector& p2, const G4ThreeVector& p3) +{ + G4double area = 0.5*((p1-p0).cross(p2-p1).mag()+(p3-p2).cross(p0-p3).mag()); + return area; +} inline G4double G4Trap::GetCubicVolume() { - if(fCubicVolume != 0.) ; - else fCubicVolume = fDz*( (fDx1+fDx2+fDx3+fDx4)*(fDy1+fDy2) - + (fDx4+fDx3-fDx2-fDx1)*(fDy2-fDy1)/3 ); + if(fCubicVolume != 0.) {;} + else { fCubicVolume = fDz*( (fDx1+fDx2+fDx3+fDx4)*(fDy1+fDy2) + + (fDx4+fDx3-fDx2-fDx1)*(fDy2-fDy1)/3 ); } return fCubicVolume; } diff --git a/source/geometry/solids/CSG/include/G4Trd.hh b/source/geometry/solids/CSG/include/G4Trd.hh index 0d317957a9..eb7ea9707e 100644 --- a/source/geometry/solids/CSG/include/G4Trd.hh +++ b/source/geometry/solids/CSG/include/G4Trd.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trd.hh,v 1.13 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Trd.hh,v 1.14 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -137,7 +137,12 @@ class G4Trd : public G4CSGSolid G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; + public: // without description + G4Trd(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. protected: // without description diff --git a/source/geometry/solids/CSG/include/G4Trd.icc b/source/geometry/solids/CSG/include/G4Trd.icc index 9b8c33f6a1..f86342eab0 100644 --- a/source/geometry/solids/CSG/include/G4Trd.icc +++ b/source/geometry/solids/CSG/include/G4Trd.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trd.icc,v 1.4 2004/10/10 10:44:19 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Trd.icc,v 1.5 2005/08/04 10:57:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -102,12 +102,11 @@ void G4Trd::SetZHalfLength(G4double val) fpPolyhedron = 0; } -/////////////////////////////////////////////////// - inline G4double G4Trd::GetCubicVolume() { - if(fCubicVolume != 0.) ; - else fCubicVolume = 2*fDz*( (fDx1+fDx2)*(fDy1+fDy2) + (fDx2-fDx1)*(fDy2-fDy1)/3 ); + if(fCubicVolume != 0.) {;} + else { fCubicVolume = 2*fDz*( (fDx1+fDx2)*(fDy1+fDy2) + + (fDx2-fDx1)*(fDy2-fDy1)/3 ); } return fCubicVolume; } diff --git a/source/geometry/solids/CSG/include/G4Tubs.hh b/source/geometry/solids/CSG/include/G4Tubs.hh index b62eb8ea3c..58693e8af2 100644 --- a/source/geometry/solids/CSG/include/G4Tubs.hh +++ b/source/geometry/solids/CSG/include/G4Tubs.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Tubs.hh,v 1.11 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Tubs.hh,v 1.14 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -126,6 +126,8 @@ class G4Tubs : public G4CSGSolid G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo( std::ostream& os ) const; // Visualisation functions @@ -136,6 +138,11 @@ class G4Tubs : public G4CSGSolid public: // without description + G4Tubs(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + // Older names for access functions inline G4double GetRMin() const; diff --git a/source/geometry/solids/CSG/include/G4Tubs.icc b/source/geometry/solids/CSG/include/G4Tubs.icc index 209dc771ba..5af0183944 100644 --- a/source/geometry/solids/CSG/include/G4Tubs.icc +++ b/source/geometry/solids/CSG/include/G4Tubs.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Tubs.icc,v 1.4 2004/10/10 10:44:19 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Tubs.icc,v 1.5 2005/08/04 10:57:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -134,12 +134,10 @@ G4double G4Tubs::GetDPhi () const return GetDeltaPhiAngle(); } -/////////////////////////////////////////////////// - inline G4double G4Tubs::GetCubicVolume() { - if(fCubicVolume != 0.) ; - else fCubicVolume = fDPhi*fDz*(fRMax*fRMax-fRMin*fRMin); + if(fCubicVolume != 0.) {;} + else { fCubicVolume = fDPhi*fDz*(fRMax*fRMax-fRMin*fRMin); } return fCubicVolume; } diff --git a/source/geometry/solids/CSG/src/G4Box.cc b/source/geometry/solids/CSG/src/G4Box.cc index dec370d467..e66ee3f539 100644 --- a/source/geometry/solids/CSG/src/G4Box.cc +++ b/source/geometry/solids/CSG/src/G4Box.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Box.cc,v 1.39 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Box.cc,v 1.42 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // @@ -79,6 +79,16 @@ G4Box::G4Box(const G4String& pName, } } +////////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. + +G4Box::G4Box( __void__& a ) + : G4CSGSolid(a) +{ +} + ////////////////////////////////////////////////////////////////////////// // // Destructor @@ -942,33 +952,12 @@ std::ostream& G4Box::StreamInfo(std::ostream& os) const return os; } -////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////// // -// Methods for visualisation - -void G4Box::DescribeYourselfTo (G4VGraphicsScene& scene) const -{ - scene.AddSolid (*this); -} - -G4VisExtent G4Box::GetExtent() const -{ - return G4VisExtent (-fDx, fDx, -fDy, fDy, -fDz, fDz); -} - -G4Polyhedron* G4Box::CreatePolyhedron () const -{ - return new G4PolyhedronBox (fDx, fDy, fDz); -} - -G4NURBS* G4Box::CreateNURBS () const -{ - return new G4NURBSbox (fDx, fDy, fDz); -} - -///////////////////////////////////////////////////////////////////////////// +// GetPointOnSurface // -// Return a point (G4ThreeVector) randomly and uniformly selected on the solid surface +// Return a point (G4ThreeVector) randomly and uniformly selected +// on the solid surface G4ThreeVector G4Box::GetPointOnSurface() const { @@ -1005,3 +994,26 @@ G4ThreeVector G4Box::GetPointOnSurface() const return G4ThreeVector(px,py,pz); } +////////////////////////////////////////////////////////////////////////// +// +// Methods for visualisation + +void G4Box::DescribeYourselfTo (G4VGraphicsScene& scene) const +{ + scene.AddSolid (*this); +} + +G4VisExtent G4Box::GetExtent() const +{ + return G4VisExtent (-fDx, fDx, -fDy, fDy, -fDz, fDz); +} + +G4Polyhedron* G4Box::CreatePolyhedron () const +{ + return new G4PolyhedronBox (fDx, fDy, fDz); +} + +G4NURBS* G4Box::CreateNURBS () const +{ + return new G4NURBSbox (fDx, fDy, fDz); +} diff --git a/source/geometry/solids/CSG/src/G4CSGSolid.cc b/source/geometry/solids/CSG/src/G4CSGSolid.cc index c49678d716..3d2f774216 100644 --- a/source/geometry/solids/CSG/src/G4CSGSolid.cc +++ b/source/geometry/solids/CSG/src/G4CSGSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CSGSolid.cc,v 1.10 2005/03/23 17:16:31 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4CSGSolid.cc,v 1.11 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- @@ -30,6 +30,8 @@ #include "G4Polyhedron.hh" +////////////////////////////////////////////////////////////////////////// +// // Constructor // - Base class constructor @@ -38,6 +40,16 @@ G4CSGSolid::G4CSGSolid(const G4String& name) : { } +////////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. + +G4CSGSolid::G4CSGSolid( __void__& a ) + : G4VSolid(a), fCubicVolume(0.), fpPolyhedron(0) +{ +} + G4CSGSolid::~G4CSGSolid() { delete fpPolyhedron; diff --git a/source/geometry/solids/CSG/src/G4Cons.cc b/source/geometry/solids/CSG/src/G4Cons.cc index 5a9599072e..57dbe7a3e7 100644 --- a/source/geometry/solids/CSG/src/G4Cons.cc +++ b/source/geometry/solids/CSG/src/G4Cons.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Cons.cc,v 1.44 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Cons.cc,v 1.47 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4Cons // @@ -55,11 +55,15 @@ #include "meshdefs.hh" +#include "Randomize.hh" + #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" #include "G4NURBSbox.hh" +using namespace CLHEP; + //////////////////////////////////////////////////////////////////////// // // Private enum: Not for external use - used by distanceToOut @@ -70,14 +74,6 @@ enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kPZ,kMZ}; enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ}; -/////////////////////////////////////////////////////////////////////// -// -// Destructor - -G4Cons::~G4Cons() -{ -} - ////////////////////////////////////////////////////////////////////////// // // constructor - check parameters, convert angles so 0= 0.) && (chose < Aone) ) + { + if(fRmin1 != fRmin2) + { + zRand = RandFlat::shoot(-1.*fDz,fDz); + return G4ThreeVector (rtwo*cosu*(qtwo-zRand), + rtwo*sinu*(qtwo-zRand), zRand); + } + else + { + return G4ThreeVector(fRmin1*cosu, fRmin2*sinu, + RandFlat::shoot(-1.*fDz,fDz)); + } + } + else if( (chose >= Aone) && (chose <= Aone + Atwo) ) + { + if(fRmax1 != fRmax2) + { + zRand = RandFlat::shoot(-1.*fDz,fDz); + return G4ThreeVector (rone*cosu*(qone-zRand), + rone*sinu*(qone-zRand), zRand); + } + else + { + return G4ThreeVector(fRmax1*cosu, fRmax2*sinu, + RandFlat::shoot(-1.*fDz,fDz)); + } + } + else if( (chose >= Aone + Atwo) && (chose < Aone + Atwo + Athree) ) + { + return G4ThreeVector (rRand1*cosu,rRand1*sinu,-1*fDz); + } + else if( (chose >= Aone + Atwo + Athree) + && (chose < Aone + Atwo + Athree + Afour) ) + { + return G4ThreeVector (rRand2*cosu,rRand2*sinu,fDz); + } + else if( (chose >= Aone + Atwo + Athree + Afour) + && (chose < Aone + Atwo + Athree + Afour + Afive) ) + { + zRand = RandFlat::shoot(-1.*fDz,fDz); + rRand1 = RandFlat::shoot(fRmin2-((zRand-fDz)/(2.*fDz))*(fRmin1-fRmin2), + fRmax2-((zRand-fDz)/(2.*fDz))*(fRmax1-fRmax2)); + return G4ThreeVector (rRand1*std::cos(fSPhi), + rRand1*std::sin(fSPhi), zRand); + } + else + { + zRand = RandFlat::shoot(-1.*fDz,fDz); + rRand1 = RandFlat::shoot(fRmin2-((zRand-fDz)/(2.*fDz))*(fRmin1-fRmin2), + fRmax2-((zRand-fDz)/(2.*fDz))*(fRmax1-fRmax2)); + return G4ThreeVector (rRand1*std::cos(fSPhi+fDPhi), + rRand1*std::sin(fSPhi+fDPhi), zRand); + } +} + ////////////////////////////////////////////////////////////////////////// // // Methods for visualisation diff --git a/source/geometry/solids/CSG/src/G4Orb.cc b/source/geometry/solids/CSG/src/G4Orb.cc index 06d18f6913..33a02c0bdc 100644 --- a/source/geometry/solids/CSG/src/G4Orb.cc +++ b/source/geometry/solids/CSG/src/G4Orb.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4Orb.cc,v 1.19 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Orb.cc,v 1.22 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4Orb // @@ -43,6 +43,8 @@ #include "G4VPVParameterisation.hh" +#include "Randomize.hh" + #include "meshdefs.hh" #include "G4VGraphicsScene.hh" @@ -50,6 +52,8 @@ #include "G4NURBS.hh" #include "G4NURBSbox.hh" +using namespace CLHEP; + // Private enum: Not for external use - used by distanceToOut enum ESide {kNull,kRMax}; @@ -82,6 +86,16 @@ G4Orb::G4Orb( const G4String& pName,G4double pRmax ) } +/////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Orb::G4Orb( __void__& a ) + : G4CSGSolid(a) +{ +} + ///////////////////////////////////////////////////////////////////// // // Destructor @@ -90,7 +104,6 @@ G4Orb::~G4Orb() { } - ////////////////////////////////////////////////////////////////////////// // // Dispatch to parameterisation for replication mechanism dimension @@ -542,7 +555,7 @@ G4double G4Orb::DistanceToOut( const G4ThreeVector& p, ///////////////////////////////////////////////////////////////////////// // -// Calcluate distance (<=actual) to closest surface of shape from inside +// Calculate distance (<=actual) to closest surface of shape from inside G4double G4Orb::DistanceToOut( const G4ThreeVector& p ) const { @@ -595,7 +608,27 @@ std::ostream& G4Orb::StreamInfo( std::ostream& os ) const return os; } -///////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////// +// +// GetPointOnSurface + +G4ThreeVector G4Orb::GetPointOnSurface() const +{ + // generate a random number from zero to 2pi... + // + G4double phi = RandFlat::shoot(0.,2.*pi); + G4double cosphi = std::cos(phi); + G4double sinphi = std::sin(phi); + + G4double theta = RandFlat::shoot(0.,pi); + G4double costheta = std::cos(theta); + G4double sintheta = std::sqrt(1.-sqr(costheta)); + + return G4ThreeVector (fRmax*sintheta*cosphi, + fRmax*sintheta*sinphi, fRmax*costheta); +} + +//////////////////////////////////////////////////////////////////////// // // Methods for visualisation @@ -613,7 +646,3 @@ G4NURBS* G4Orb::CreateNURBS () const { return new G4NURBSbox (fRmax, fRmax, fRmax); // Box for now!!! } - -// End of G4Orb.cc -// -///////////////////////////////////////////////////////////////////// diff --git a/source/geometry/solids/CSG/src/G4Para.cc b/source/geometry/solids/CSG/src/G4Para.cc index 5195adfa61..10f60b6e82 100644 --- a/source/geometry/solids/CSG/src/G4Para.cc +++ b/source/geometry/solids/CSG/src/G4Para.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Para.cc,v 1.33 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Para.cc,v 1.37 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4Para // @@ -30,10 +30,10 @@ // // History: // +// 23.10.05 V.Grichine: bug fixed in DistanceToOut(p,v,...) for the v.x()<0 case // 28.04.05 V.Grichine: new SurfaceNormal according to J. Apostolakis proposal -// 26.04.05 V.Grichine: new SurfaceNormal is default -// 30.11.04 V.Grichine: modifications in SurfaceNormal for edges/vertices and in -// constructor with vertices +// 30.11.04 V.Grichine: modifications in SurfaceNormal for edges/vertices and +// in constructor with vertices // 14.02.02 V.Grichine: bug fixed in Inside according to proposal of D.Wright // 18.11.99 V.Grichine: kUndef was added to ESide // 31.10.96 V.Grichine: Modifications according G4Box/Tubs before to commit @@ -54,6 +54,8 @@ #include "G4NURBS.hh" #include "G4NURBSbox.hh" +using namespace CLHEP; + // Private enum: Not for external use enum ESide {kUndef,kPX,kMX,kPY,kMY,kPZ,kMZ}; @@ -155,6 +157,16 @@ G4Para::G4Para( const G4String& pName, } } +/////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Para::G4Para( __void__& a ) + : G4CSGSolid(a) +{ +} + ////////////////////////////////////////////////////////////////////////// // @@ -444,7 +456,7 @@ G4ThreeVector G4Para::SurfaceNormal( const G4ThreeVector& p ) const G4int noSurfaces = 0; G4double distx,disty,distz; G4double newpx,newpy,xshift; - G4double calpha,salpha; // Sin/Cos(alpha) - needed to recalc G4Parameter + G4double calpha,salpha; // Sin/Cos(alpha) - needed to recalc G4Parameter G4double tntheta,cosntheta; // tan and cos of normal's theta component G4double ycomp; G4double delta = 0.5*kCarTolerance; @@ -453,8 +465,8 @@ G4ThreeVector G4Para::SurfaceNormal( const G4ThreeVector& p ) const newpy = p.y()-fTthetaSphi*p.z(); calpha = 1/std::sqrt(1+fTalpha*fTalpha); - if (fTalpha) salpha = -calpha/fTalpha; // NOTE: actually use MINUS std::sin(alpha) - else salpha = 0.; + if (fTalpha) {salpha = -calpha/fTalpha;} // NOTE: using MINUS std::sin(alpha) + else {salpha = 0.;} // xshift = newpx*calpha+newpy*salpha; xshift = newpx - newpy*fTalpha; @@ -468,27 +480,29 @@ G4ThreeVector G4Para::SurfaceNormal( const G4ThreeVector& p ) const cosntheta = 1/std::sqrt(1+tntheta*tntheta); ycomp = 1/std::sqrt(1+fTthetaSphi*fTthetaSphi); - G4ThreeVector nX = G4ThreeVector( calpha*cosntheta, salpha*cosntheta,-tntheta*cosntheta); + G4ThreeVector nX = G4ThreeVector( calpha*cosntheta, + salpha*cosntheta, + -tntheta*cosntheta); G4ThreeVector nY = G4ThreeVector( 0, ycomp,-fTthetaSphi*ycomp); G4ThreeVector nZ = G4ThreeVector( 0, 0, 1.0); if (distx <= delta) { noSurfaces ++; - if ( xshift >= 0.) sumnorm += nX; - else sumnorm -= nX; + if ( xshift >= 0.) {sumnorm += nX;} + else {sumnorm -= nX;} } if (disty <= delta) { noSurfaces ++; - if ( newpy >= 0.) sumnorm += nY; - else sumnorm -= nY; + if ( newpy >= 0.) {sumnorm += nY;} + else {sumnorm -= nY;} } if (distz <= delta) { noSurfaces ++; - if ( p.z() >= 0.) sumnorm += nZ; - else sumnorm -= nZ; + if ( p.z() >= 0.) {sumnorm += nZ;} + else {sumnorm -= nZ;} } if ( noSurfaces == 0 ) { @@ -498,8 +512,8 @@ G4ThreeVector G4Para::SurfaceNormal( const G4ThreeVector& p ) const #endif norm = ApproxSurfaceNormal(p); } - else if ( noSurfaces == 1 ) norm = sumnorm; - else norm = sumnorm.unit(); + else if ( noSurfaces == 1 ) {norm = sumnorm;} + else {norm = sumnorm.unit();} return norm; } @@ -541,13 +555,13 @@ G4ThreeVector G4Para::ApproxSurfaceNormal( const G4ThreeVector& p ) const if (distx=0.) && (chose < aOne) ) + { + lambda1 = RandFlat::shoot(0.,1.); + lambda2 = RandFlat::shoot(0.,lambda1); + return (p2+lambda1*v+lambda2*w); + } + + // else + + lambda1 = RandFlat::shoot(0.,1.); + lambda2 = RandFlat::shoot(0.,lambda1); + return (p0+lambda1*t+lambda2*u); +} + +///////////////////////////////////////////////////////////////////////// +// +// GetPointOnSurface +// +// Return a point (G4ThreeVector) randomly and uniformly +// selected on the solid surface + +G4ThreeVector G4Para::GetPointOnSurface() const +{ + G4ThreeVector One, Two, Three, Four, Five, Six; + G4ThreeVector pt[8] ; + G4double chose, aOne, aTwo, aThree, aFour, aFive, aSix; + + pt[0] = G4ThreeVector(-fDz*fTthetaCphi-fDy*fTalpha-fDx, + -fDz*fTthetaSphi-fDy, -fDz); + pt[1] = G4ThreeVector(-fDz*fTthetaCphi-fDy*fTalpha+fDx, + -fDz*fTthetaSphi-fDy, -fDz); + pt[2] = G4ThreeVector(-fDz*fTthetaCphi+fDy*fTalpha-fDx, + -fDz*fTthetaSphi+fDy, -fDz); + pt[3] = G4ThreeVector(-fDz*fTthetaCphi+fDy*fTalpha+fDx, + -fDz*fTthetaSphi+fDy, -fDz); + pt[4] = G4ThreeVector(+fDz*fTthetaCphi-fDy*fTalpha-fDx, + +fDz*fTthetaSphi-fDy, +fDz); + pt[5] = G4ThreeVector(+fDz*fTthetaCphi-fDy*fTalpha+fDx, + +fDz*fTthetaSphi-fDy, +fDz); + pt[6] = G4ThreeVector(+fDz*fTthetaCphi+fDy*fTalpha-fDx, + +fDz*fTthetaSphi+fDy, +fDz); + pt[7] = G4ThreeVector(+fDz*fTthetaCphi+fDy*fTalpha+fDx, + +fDz*fTthetaSphi+fDy, +fDz); + + // make sure we provide the points in a clockwise fashion + + One = GetPointOnPlane(pt[0],pt[1],pt[3],pt[2], aOne); + Two = GetPointOnPlane(pt[4],pt[5],pt[7],pt[6], aTwo); + Three = GetPointOnPlane(pt[6],pt[7],pt[3],pt[2], aThree); + Four = GetPointOnPlane(pt[4],pt[5],pt[1],pt[0], aFour); + Five = GetPointOnPlane(pt[0],pt[2],pt[6],pt[4], aFive); + Six = GetPointOnPlane(pt[1],pt[3],pt[7],pt[5], aSix); + + chose = RandFlat::shoot(0.,aOne+aTwo+aThree+aFour+aFive+aSix); + + if( (chose>=0.) && (chose=aOne && chose=aOne+aTwo && chose=aOne+aTwo+aThree && chose=aOne+aTwo+aThree+aFour && chose 0.5) pz = fDz; - else pz = -fDz; - } - else if ( ( select - Sxy ) < Sxz ) - { - px = -fDx +2*fDx*G4UniformRand(); - pz = -fDz +2*fDz*G4UniformRand(); - - if(G4UniformRand() > 0.5) py = fDy; - else py = -fDy; - } - else - { - py = -fDy +2*fDy*G4UniformRand(); - pz = -fDz +2*fDz*G4UniformRand(); - - if(G4UniformRand() > 0.5) px = fDx; - else px = -fDx; - } - return G4ThreeVector(px,py,pz); -} diff --git a/source/geometry/solids/CSG/src/G4Sphere.cc b/source/geometry/solids/CSG/src/G4Sphere.cc index c1cfbd8a93..5b7d5eb5f1 100644 --- a/source/geometry/solids/CSG/src/G4Sphere.cc +++ b/source/geometry/solids/CSG/src/G4Sphere.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Sphere.cc,v 1.48 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Sphere.cc,v 1.53 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4Sphere // @@ -30,6 +30,7 @@ // // History: // +// 22.07.05 O.Link : Added check for intersection with double cone // 03.05.05 V.Grichine: SurfaceNormal(p) according to J. Apostolakis proposal // 16.09.04 V.Grichine: bug fixed in SurfaceNormal(p), theta normals // 16.07.04 V.Grichine: bug fixed in DistanceToOut(p,v), Rmin go outside @@ -56,6 +57,8 @@ #include "G4VPVParameterisation.hh" +#include "Randomize.hh" + #include "meshdefs.hh" #include "G4VGraphicsScene.hh" @@ -64,6 +67,8 @@ #include "G4NURBS.hh" #include "G4NURBSbox.hh" +using namespace CLHEP; + // Private enum: Not for external use - used by distanceToOut enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kSTheta,kETheta}; @@ -72,14 +77,6 @@ enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kSTheta,kETheta}; enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNSTheta,kNETheta}; -///////////////////////////////////////////////////////////////////// -// -// Destructor - -G4Sphere::~G4Sphere() -{ -} - //////////////////////////////////////////////////////////////////////// // // constructor - check parameters, convert angles so 0 flexRadMaxTolerance*0.5 ) // && spi*0.5 && zi>0) + { + s = kInfinity ; // wrong cone + } stheta = s ; sidetheta = kSTheta ; } @@ -2245,6 +2270,16 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, } if (s > flexRadMaxTolerance*0.5 && s < stheta ) { + // check against double cone solution + zi=p.z()+s*v.z(); + if (fSTheta+fDThetapi*0.5 && zi>0) + { + s = kInfinity ; // wrong cone + } stheta = s ; sidetheta = kETheta ; } @@ -2899,6 +2934,92 @@ std::ostream& G4Sphere::StreamInfo( std::ostream& os ) const return os; } +//////////////////////////////////////////////////////////////////////////////// +// +// GetPointOnSurface + +G4ThreeVector G4Sphere::GetPointOnSurface() const +{ + G4double zRand, aOne, aTwo, aThr, aFou, aFiv, chose, phi, sinphi, cosphi; + G4double height1, height2, slant1, slant2, costheta, sintheta,theta,rRand; + + height1 = (fRmax-fRmin)*std::cos(fSTheta); + height2 = (fRmax-fRmin)*std::cos(fSTheta+fDTheta); + slant1 = std::sqrt(sqr((fRmax - fRmin)*std::sin(fSTheta)) + + height1*height1); + slant2 = std::sqrt(sqr((fRmax - fRmin)*std::sin(fSTheta+fDTheta)) + + height2*height2); + rRand = RandFlat::shoot(fRmin,fRmax); + + aOne = fRmax*fRmax*fDPhi*(std::cos(fSTheta)-std::cos(fSTheta+fDTheta)); + aTwo = fRmin*fRmin*fDPhi*(std::cos(fSTheta)-std::cos(fSTheta+fDTheta)); + aThr = fDPhi*((fRmax + fRmin)*std::sin(fSTheta))*slant1; + aFou = fDPhi*((fRmax + fRmin)*std::sin(fSTheta+fDTheta))*slant2; + aFiv = 0.5*fDTheta*(fRmax*fRmax-fRmin*fRmin); + + phi = RandFlat::shoot(fSPhi, fSPhi + fDPhi); + cosphi = std::cos(phi); + sinphi = std::sin(phi); + theta = RandFlat::shoot(fSTheta,fSTheta+fDTheta); + costheta = std::cos(theta); + sintheta = std::sqrt(1.-sqr(costheta)); + + if( (fSPhi==0) && (fDPhi==2.*pi) || (fDPhi==2.*pi) ) {aFiv = 0;} + if(fSTheta == 0) {aThr=0;} + if(fDTheta + fSTheta == pi) {aFou = 0;} + if(fSTheta == 0.5*pi) {aThr = pi*(fRmax*fRmax-fRmin*fRmin);} + if(fSTheta + fDTheta == 0.5*pi) { aFou = pi*(fRmax*fRmax-fRmin*fRmin);} + + chose = RandFlat::shoot(0.,aOne+aTwo+aThr+aFou+2.*aFiv); + if( (chose>=0.) && (chose=aOne) && (chose=aOne+aTwo) && (chose=aOne+aTwo+aThr) && (chose=aOne+aTwo+aThr+aFou) && (chose= pRmax + 1.e3*kCarTolerance ) // Check swept radius, as in G4Cons + if ( pRtor >= pRmax+1.e3*kCarTolerance ) // Check swept radius, as in G4Cons { fRtor = pRtor ; } @@ -108,11 +109,11 @@ G4Torus::SetAllParameters( G4double pRmin, } // Check radii, as in G4Cons - + // if ( pRmin < pRmax - 1.e2*kCarTolerance && pRmin >= 0 ) { - if (pRmin >= 1.e2*kCarTolerance) fRmin = pRmin ; - else fRmin = 0.0 ; + if (pRmin >= 1.e2*kCarTolerance) { fRmin = pRmin ; } + else { fRmin = 0.0 ; } fRmax = pRmax ; } else @@ -125,29 +126,39 @@ G4Torus::SetAllParameters( G4double pRmin, } // Check angles - - if ( pDPhi >= twopi ) fDPhi = twopi ; + // + if ( pDPhi >= twopi ) { fDPhi = twopi ; } else { - if (pDPhi > 0) fDPhi = pDPhi ; + if (pDPhi > 0) { fDPhi = pDPhi ; } else { G4cerr << "ERROR - G4Torus::SetAllParameters(): " << GetName() << G4endl << " Negative Z delta-Phi ! - " << pDPhi << G4endl; - G4Exception("G4Torus::SetAllParameters()", - "InvalidSetup", FatalException, "Invalid dphi."); + G4Exception("G4Torus::SetAllParameters()", + "InvalidSetup", FatalException, "Invalid dphi."); } } // Ensure psphi in 0-2PI or -2PI-0 range if shape crosses 0 - + // fSPhi = pSPhi; - if (fSPhi < 0) fSPhi = twopi-std::fmod(std::fabs(fSPhi),twopi) ; - else fSPhi = std::fmod(fSPhi,twopi) ; + if (fSPhi < 0) { fSPhi = twopi-std::fmod(std::fabs(fSPhi),twopi) ; } + else { fSPhi = std::fmod(fSPhi,twopi) ; } - if (fSPhi+fDPhi > twopi) fSPhi-=twopi ; + if (fSPhi+fDPhi > twopi) { fSPhi-=twopi ; } +} + +/////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Torus::G4Torus( __void__& a ) + : G4CSGSolid(a) +{ } ////////////////////////////////////////////////////////////////////// @@ -169,618 +180,156 @@ void G4Torus::ComputeDimensions( G4VPVParameterisation* p, p->ComputeDimensions(*this,n,pRep); } -/////////////////////////////////////////////////////////////////////////// -// -// Test function for study of intersections of a ray (starting from p along -// v) with the torus -G4int G4Torus::TorusRoots( G4double Ri, - const G4ThreeVector& p, - const G4ThreeVector& v ) const -{ - // Define roots Si (generally real >=0) for intersection with - // torus (Ri = fRmax or fRmin) of ray p +S*v . General equation is : - // c[4]*S^4 + c[3]*S^3 +c[2]*S^2 + c[1]*S + c[0] = 0 . - - G4double c[5],s[4] ; - G4int num, i, j ; - G4double pDotV = p.x()*v.x() + p.y()*v.y() + p.z()*v.z() ; - G4double pRad2 = p.x()*p.x() + p.y()*p.y() + p.z()*p.z() ; - G4double Rtor2 = fRtor*fRtor, Ri2 = Ri*Ri ; - - c[4] = 1.0 ; - c[3] = 4*pDotV ; - c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Ri2 + 2*Rtor2*v.z()*v.z()) ; - c[1] = 4*(pDotV*(pRad2-Rtor2-Ri2) + 2*Rtor2*p.z()*v.z()) ; - c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Ri2) - + 4*Rtor2*p.z()*p.z() + (Rtor2-Ri2)*(Rtor2-Ri2) ; - - num = SolveBiQuadratic(c,s) ; - - if(num) - { - for(i=0;i=0 roots - { - if(s[i]<0) - { - for(j=i+1;j=0 roots - { - if(s[i]<0) - { - for(j=i+1;j=0) - { - if(s[0]==0) // Three roots and one of them == 0 - { - s[2] = std::sqrt(s[1]) ; - s[1] = s[0] ; - s[0] = -s[2] ; - num++ ; - } - else // Four roots - { - s[2] = std::sqrt(s[0]) ; - s[3] = std::sqrt(s[1]) ; - s[0] = -s[3] ; - s[1] = -s[2] ; - num +=2 ; - } - } - else if(s[1]>=0) - { - if(s[1]==0) // One root == 0 - { - s[0] = 0 ; - num--; - } - else // Two roots - { - s[0] = -std::sqrt(s[1]) ; - s[1] = -s[0] ; - } - } - else return num = 0 ; // Both Quadratic roots are negative - } - else // num = 1 two equal roots from SolveQuadratic - { - if(s[0]>=0) - { - if(s[0]==0) ; - else - { - s[1] = std::sqrt(s[0]) ; - s[0] = -s[1] ; - num +=1 ; - } - } - else return num = 0 ; - } - } - else return num ; - } - else if (r == 0) // no absolute term: y(y^3 + py + q) = 0 - { - coeffs[ 0 ] = q ; - coeffs[ 1 ] = p ; - coeffs[ 2 ] = 0 ; - coeffs[ 3 ] = 1 ; - num = SolveCubic(coeffs, s) ; - - s[ num++ ] = 0; - - for(j=1;j= 0 && s[i] > sub ) - { - i-- ; - s[i+1] = s[i] ; // s[i--] ; - } - s[i+1] = sub ; - } - } - else - { - // solve the resolvent cubic ... - - coeffs[ 0 ] = 0.5*r*p - 0.125*q*q; - coeffs[ 1 ] = - r; - coeffs[ 2 ] = - 0.5*p; - coeffs[ 3 ] = 1; - - num = SolveCubic(coeffs, s); - - // ... and take the one real solution ... - - z = s[ 0 ]; - - // ... to Build two quadratic equations - - u = z * z - r; - v = 2 * z - p; - - if (u==0) u = 0 ; - else if (u > 0) u = std::sqrt(u) ; - else return 0 ; - - if (v==0) v = 0 ; - else if (v > 0) v = std::sqrt(v); - else return 0 ; - - coeffs[ 0 ] = z - u; - coeffs[ 1 ] = q < 0 ? -v : v; - coeffs[ 2 ] = 1; - - num = SolveQuadratic(coeffs, s); - - coeffs[ 0 ]= z + u; - coeffs[ 1 ] = q < 0 ? v : -v; - coeffs[ 2 ] = 1; - - num += SolveQuadratic(coeffs, s + num); - } - - // resubstitute - - sub = 1.0/4 * A; - - for (i = 0; i < num; ++i) - s[ i ] -= sub; - - return num; -} - -///////////////////////////////////////////////////////////////////////////// -// -// Auxiliary method for solving of cubic equation in real numbers -// From Graphics Gems I bu Jochen Schwartz - -G4int G4Torus::SolveCubic( G4double c[], G4double s[] ) const -{ - G4int i, num; - G4double sub; - G4double A, B, C; - G4double A2, p, q; - G4double p3, D; - - // normal form: x^3 + Ax^2 + Bx + C = 0 - - A = c[ 2 ]; // c[ 3 ]; since always c[3]==1 ! - B = c[ 1 ]; // c[ 3 ]; - C = c[ 0 ]; // c[ 3 ]; - - // substitute x = y - A/3 to eliminate quadric term: - // x^3 +px + q = 0 - - A2 = A*A; - p = 1.0/3*(- 1.0/3*A2 + B); - q = 1.0/2*(2.0/27*A*A2 - 1.0/3*A*B + C); - - // use Cardano's formula - - p3 = p*p*p; - D = q*q + p3; - - if (D == 0) - { - if (q == 0) // one triple solution - { - s[ 0 ] = 0; - num = 1; - } - else // one single and one double solution - { - G4double u = std::pow(-q,1./3.); - s[ 0 ] = 2 * u; - s[ 1 ] = - u; - num = 2; - } - } - else if (D < 0) // Casus irreducibilis: three real solutions - { - G4double phi = 1.0/3 * std::acos(-q / std::sqrt(-p3)); - G4double t = 2 * std::sqrt(-p); - - s[ 0 ] = t * std::cos(phi); - s[ 1 ] = - t * std::cos(phi + pi / 3); - s[ 2 ] = - t * std::cos(phi - pi / 3); - num = 3; - } - else // one real solution - { - G4double sqrt_D = std::sqrt(D); - G4double u = std::pow(sqrt_D - q,1./3.); - G4double v = - std::pow(sqrt_D + q,1./3.); - - s[ 0 ] = u + v; - num = 1; - } - - // resubstitute - - sub = 1.0/3 * A; - - for (i = 0; i < num; ++i) - s[ i ] -= sub; - - return num; -} - -//////////////////////////////////////////////////////////////////////////// -// -// - -G4int G4Torus::SolveBiQuadraticNew( G4double c[], G4double s[] ) const -{ - // From drte4 by McLareni; rewritten by O.Cremonesi - - G4double coeffs[ 4 ]; - G4double w1, w2, w3; - G4double sub; - G4double A, B, C, D; - G4double A2, p, q, r ; - G4int i,j, num; - - // normal form: x^4 + Ax^3 + Bx^2 + Cx + D = 0 - - A = c[ 3 ]; // c[ 4 ]; since always c[4]==1 ! - B = c[ 2 ]; // c[ 4 ]; - C = c[ 1 ]; // c[ 4 ]; - D = c[ 0 ]; // c[ 4 ]; - - if( B==0 && C==0 ) - { - if( D==0 ) - { - s[0] = -A; - s[1] = s[2] = s[3] = 0; - return 4; - } - } - else if( A==0 ) - { - if( D>0 ) return 0; - else - { - s[0] = std::sqrt( std::sqrt( -D ) ); - s[1] = -s[0]; - return 2; - } - } - - // substitute x = y - A/4 to eliminate cubic term: - // y^4 + py^2 + qy + r = 0 - - A2 = A*A; - p = B - 3.0*A2/8.0; - q = C - 0.5*A*( B-A2/4.0 ); - r = D - (A*C-A2/4.0*(B-A2*3.0/16.0))/4.0; - coeffs[ 0 ] = -q*q/64.; - coeffs[ 1 ] = (p*p/4.0-r)/4.0; - coeffs[ 2 ] = p/2.0; - coeffs[ 3 ] = 1; - - G4double cubic_discr; - num = SolveCubicNew(coeffs, s, cubic_discr); - - sub = A/4.0; - num = 0; - - if( cubic_discr == 0 ) s[2] = s[1]; - - if( cubic_discr <= 0 ) - { - num = 4; - G4double v[3]; - G4double vm1 = -1.0e99, vm2 ; - for( i=0; i<3; i++ ) - { - v[i] = std::fabs( s[i] ) ; - if( v[i] > vm1 ) vm1 = v[i] ; - } - if( vm1 == v[0] ) - { - i = 0; - if( v[1] > v[2] ) vm2 = v[1]; - else vm2 = v[2]; - } - else if( vm1 == v[1] ) - { - i = 1; - if( v[0] > v[2] ) vm2 = v[0]; - else vm2 = v[2]; - } - else - { - i = 2; - if( v[0] > v[1] ) vm2 = v[0]; - else vm2 = v[1]; - } - if( vm2 == v[0] ) j = 0 ; - else if( vm2 == v[1] ) j = 1 ; - else j = 2 ; - - w1 = std::sqrt( s[i] ); - w2 = std::sqrt( s[j] ); - } - else - { - num = 2; - w1 = w2 = std::sqrt( s[1] ); - } - if( w1*w2 != 0. ) w3 = -q/( 8.0*w1*w2 ) ; - else w3 = 0.0 ; - - if( num == 4 ) - { - s[0] = w1 + w2 + w3 - sub ; - s[1] = -w1 - w2 + w3 - sub ; - s[2] = -w1 + w2 - w3 - sub ; - s[3] = w1 - w2 - w3 - sub ; - } - else if( num == 2 ) - { - s[0] = w1 + w2 + w3 - sub ; - s[1] = -w1 - w2 + w3 - sub ; - } - return num ; -} - -/////////////////////////////////////////////////////////////////////////// -// -// - -G4int G4Torus::SolveCubicNew( G4double c[], G4double s[], - G4double& cubic_discr ) const -{ - // From drte3 by McLareni; rewritten by O.Cremonesi - - const G4double eps = 1.e-6; - const G4double delta = 1.e-15; - G4int i, j; - G4double sub; - G4double y[3]; - G4double A, B, C; - G4double A2, p, q; - G4double h1,h2,h3; - G4double u,v; - - // normal form: x^3 + Ax^2 + Bx + C = 0 - - A = c[ 2 ]; // c[ 3 ]; since always c[3]==1 ! - B = c[ 1 ]; // c[ 3 ]; - C = c[ 0 ]; // c[ 3 ]; - - if( B==0 && C==0 ) - { - s[0] = -A; - s[1] = s[2] = 0.; - cubic_discr = 0.; - return 3; - } - A2 = A*A; - p = B - A2/3.0; - q = ( A2*2.0/27.-B/3.0 )*A + C; - cubic_discr = q*q/4.0 + p*p*p/27.0; - sub = A/3.0; - h1 = q/2.0; - - if( cubic_discr > delta ) - { - h2 = std::sqrt( cubic_discr ); - u = -h1+h2; - v = -h1-h2; - if( u < 0 ) u = -std::pow(-u,1./3.); - else u = std::pow(u,1./3.); - if( v < 0 ) v = -std::pow(-v,1./3.); - else v = std::pow(v,1./3.); - s[0] = u+v-sub; - s[1] = -(u+v)/2.0-sub; - s[2] = std::fabs(u-v)*std::sqrt(3.0)/2.0; - if( std::fabs(u) <= eps || std::fabs(v) <= eps ) - { - y[0] = s[0] ; - for( i=0; i<2; i++ ) - { - y[i+1] = y[i] - (((y[i]+A)*y[i]+B)*y[i]+C)/((3.*y[i]+2.*A)*y[i]+B); - } - s[0] = y[2]; - return 1; - } - } - else if( std::fabs(cubic_discr) <= delta ) - { - cubic_discr = 0.; - - if( h1 < 0 ) u = std::pow(-h1,1./3.); - else u = -std::pow(h1,1./3.); - - s[0] = u + u - sub ; - s[1] = -u - sub ; - s[2] = s[1] ; - - if( std::fabs(h1) <= eps ) - { - y[0] = s[0]; - for( i=0; i<2; i++ ) - { - h1 = (3.0*y[i]+2.*A)*y[i]+B; - - if( std::fabs(h1) > delta ) - y[i+1] = y[i]-(((y[i]+A)*y[i]+B)*y[i]+C)/h1; - else - { - s[0] = s[1] = s[2] = -A/3.; - return 3; - } - } - s[0] = y[2]; - s[1] = s[2] = -(A+s[0])/2.; - return 3; - } - } - else - { - h3 =std::fabs(p/3.); - h3 = std::sqrt(h3*h3*h3); - h2 = std::acos(-h1/h3)/3.; - h1 = std::pow(h3,1./3.); - u = h1*std::cos(h2); - v = std::sqrt(3.)*h1*std::sin(h2); - s[0] = u+u-sub; - s[1] = -u-v-sub; - s[2] = -u+v-sub; - - if( h3 <= eps || s[0] <=eps || s[1] <= eps || s[2] <= eps ) - { - for( i=0; i<3; i++ ) - { - y[0] = s[i] ; - - for( j=0; j<2; j++ ) - { - y[j+1] = y[j]-(((y[j]+A)*y[j]+B)*y[j]+C)/((3.*y[j]+2.*A)*y[j]+B); - } - s[i] = y[2] ; - } - } - } - return 3; -} - -/////////////////////////////////////////////////////////////////////////// -// -// Auxiliary method for solving quadratic equations in real numbers -// From Graphics Gems I by Jochen Schwartz - -G4int G4Torus::SolveQuadratic( G4double c[], G4double s[] ) const -{ - G4double p, q, D; - - // normal form: x^2 + px + q = 0 - - p = c[ 1 ]/2 ; // * c[ 2 ]); since always c[2]==1 - q = c[ 0 ] ; // c[ 2 ]; - - D = p * p - q; - - if (D==0) - { - s[ 0 ] = - p; // Generally we have two equal roots ?! - return 1; // But consider them as one for geometry - } - else if (D > 0) - { - G4double sqrt_D = std::sqrt(D); - - s[ 0 ] = - p - sqrt_D ; // in ascending order ! - s[ 1 ] = - p + sqrt_D ; - return 2; - } - return 0; -} //////////////////////////////////////////////////////////////////////////////// // -// Calculate the nearest nonnegative real root to torus surface +// Calculate the real roots to torus surface. +// Returns negative solutions as well. -G4double G4Torus::SolveNumericJT( G4double cIn[]) const +std::vector G4Torus::TorusRootsJT( const G4ThreeVector& p, + const G4ThreeVector& v, + G4double r ) const { - G4int i, num, n = 5; - G4double c[5], sr[4], si[4], tmp = kInfinity; + G4int i, num ; + G4double c[5], sr[4], si[4] ; + std::vector roots ; + G4double Rtor2 = fRtor*fRtor, r2 = r*r ; + + G4double pDotV = p.x()*v.x() + p.y()*v.y() + p.z()*v.z() ; + G4double pRad2 = p.x()*p.x() + p.y()*p.y() + p.z()*p.z() ; + + c[0] = 1.0 ; + c[1] = 4*pDotV ; + c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - r2 + 2*Rtor2*v.z()*v.z()) ; + c[3] = 4*(pDotV*(pRad2 - Rtor2 - r2) + 2*Rtor2*p.z()*v.z()) ; + c[4] = pRad2*pRad2 - 2*pRad2*(Rtor2+r2) + + 4*Rtor2*p.z()*p.z() + (Rtor2-r2)*(Rtor2-r2) ; + G4JTPolynomialSolver torusEq; - for ( i = 0; i < n; i++ ) c[i] = cIn[ n - 1 - i ]; - num = torusEq.FindRoots( c, 4, sr, si ); for ( i = 0; i < num; i++ ) { - if( si[i] == 0. && sr[i] > 0. && sr[i] < tmp ) tmp = sr[i]; + if( si[i] == 0. ) { roots.push_back(sr[i]) ; } // store real roots } - return tmp; + + std::sort(roots.begin() , roots.end() ) ; // sorting with < + + return roots; +} + +////////////////////////////////////////////////////////////////////////////// +// +// Interface for DistanceToIn and DistanceToOut. +// Calls TorusRootsJT and returns the smalles possible distance to +// the surface. +// Attention: Difference in DistanceToIn/Out for points p on the surface. + +G4double G4Torus::SolveNumericJT( const G4ThreeVector& p, + const G4ThreeVector& v, + G4double r, + G4bool IsDistanceToIn ) const +{ + G4double bigdist = 10*mm ; + G4double tmin = kInfinity ; + G4double t, scal ; + + // calculate the distances to the intersections with the Torus + // from a given point p and direction v. + // + std::vector roots ; + std::vector rootsrefined ; + roots = TorusRootsJT(p,v,r) ; + + G4ThreeVector ptmp ; + + // determine the smallest non-negative solution + // + for ( size_t k = 0 ; k bigdist && t= - kAngTolerance*0.5) + && (theta - (fSPhi + fDPhi) <= kAngTolerance*0.5) ) + { + // check if P is on the surface, and called from DistanceToIn + // DistanceToIn has to return 0.0 if particle is going inside the solid + + if ( IsDistanceToIn == true ) + { + if (std::fabs(t) < 0.5*kCarTolerance ) + { + // compute scalar product at position p : v.n + // ( n taken from SurfaceNormal, not normalized ) + + scal = v* G4ThreeVector( p.x()*(1-fRtor/std::sqrt(p.x()*p.x() + + p.y()*p.y())), + p.y()*(1-fRtor/std::sqrt(p.x()*p.x() + + p.y()*p.y())), + p.z() ); + + // change sign in case of inner radius + // + if ( r == GetRmin() ) { scal = -scal ; } + if ( scal < 0 ) { return 0.0 ; } + } + } + + // check if P is on the surface, and called from DistanceToOut + // DistanceToIn has to return 0.0 if particle is leaving the solid + + if ( IsDistanceToIn == false ) + { + if (std::fabs(t) < 0.5*kCarTolerance ) + { + // compute scalar product at position p : v.n + // + scal = v* G4ThreeVector( p.x()*(1-fRtor/std::sqrt(p.x()*p.x() + + p.y()*p.y())), + p.y()*(1-fRtor/std::sqrt(p.x()*p.x() + + p.y()*p.y())), + p.z() ); + + // change sign in case of inner radius + // + if ( r == GetRmin() ) { scal = -scal ; } + if ( scal > 0 ) { return 0.0 ; } + } + } + + // check if distance is larger than 1/2 kCarTolerance + // + if( t > 0.5*kCarTolerance ) + { + tmin = t ; + return tmin ; + } + } + } + + return tmin; } ///////////////////////////////////////////////////////////////////////////// @@ -792,7 +341,7 @@ G4bool G4Torus::CalculateExtent( const EAxis pAxis, const G4AffineTransform& pTransform, G4double& pMin, G4double& pMax) const { - if (!pTransform.IsRotated() && fDPhi==twopi && fRmin==0) + if ((!pTransform.IsRotated()) && (fDPhi==twopi) && (fRmin==0)) { // Special case handling for unrotated solid torus // Compute x/y/z mins and maxs for bounding box respecting limits, @@ -835,7 +384,9 @@ G4bool G4Torus::CalculateExtent( const EAxis pAxis, { if ( (yMin > pVoxelLimit.GetMaxYExtent()+kCarTolerance) || (yMax < pVoxelLimit.GetMinYExtent()-kCarTolerance) ) + { return false ; + } else { if (yMin < pVoxelLimit.GetMinYExtent() ) @@ -856,7 +407,9 @@ G4bool G4Torus::CalculateExtent( const EAxis pAxis, { if ( (zMin > pVoxelLimit.GetMaxZExtent()+kCarTolerance) || (zMax < pVoxelLimit.GetMinZExtent()-kCarTolerance) ) + { return false ; + } else { if (zMin < pVoxelLimit.GetMinZExtent() ) @@ -992,7 +545,7 @@ G4bool G4Torus::CalculateExtent( const EAxis pAxis, } } -//////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// // // Return whether point inside/outside/on surface @@ -1023,24 +576,29 @@ EInside G4Torus::Inside( const G4ThreeVector& p ) const pPhi = std::atan2(p.y(),p.x()) ; - if ( pPhi < -kAngTolerance*0.5 ) pPhi += twopi ; // 0<=pPhi<2pi + if ( pPhi < -kAngTolerance*0.5 ) { pPhi += twopi ; } // 0<=pPhi<2pi if ( fSPhi >= 0 ) { - if ( (std::abs(pPhi) < kAngTolerance*0.5) + if ( (std::abs(pPhi) < kAngTolerance*0.5) && (std::abs(fSPhi + fDPhi - twopi) < kAngTolerance*0.5) ) - { + { pPhi += twopi ; // 0 <= pPhi < 2pi - } - if ( (pPhi >= fSPhi - kAngTolerance*0.5) - && (pPhi <= fSPhi + fDPhi + kAngTolerance*0.5) ) - { - in = kSurface; - } + } + if ( (pPhi >= fSPhi + kAngTolerance*0.5) + && (pPhi <= fSPhi + fDPhi - kAngTolerance*0.5) ) + { + in = kInside ; + } + else if ( (pPhi >= fSPhi - kAngTolerance*0.5) + && (pPhi <= fSPhi + fDPhi + kAngTolerance*0.5) ) + { + in = kSurface ; + } } else // fSPhi < 0 { if ( (pPhi <= fSPhi + twopi - kAngTolerance*0.5) - && (pPhi >= fSPhi + fDPhi + kAngTolerance*0.5) ) ; + && (pPhi >= fSPhi + fDPhi + kAngTolerance*0.5) ) {;} else { in = kSurface ; @@ -1053,11 +611,11 @@ EInside G4Torus::Inside( const G4ThreeVector& p ) const tolRMin = fRmin - kRadTolerance*0.5 ; tolRMax = fRmax + kRadTolerance*0.5 ; - if (tolRMin < 0 ) tolRMin = 0 ; + if (tolRMin < 0 ) { tolRMin = 0 ; } - if (pt2 >= tolRMin*tolRMin && pt2 <= tolRMax*tolRMax) + if ( (pt2 >= tolRMin*tolRMin) && (pt2 <= tolRMax*tolRMax) ) { - if (fDPhi == twopi || pt2 == 0 ) // Continuous in phi or on z-axis + if ( (fDPhi == twopi) || (pt2 == 0) ) // Continuous in phi or on z-axis { in = kSurface ; } @@ -1065,7 +623,7 @@ EInside G4Torus::Inside( const G4ThreeVector& p ) const { pPhi = std::atan2(p.y(),p.x()) ; - if ( pPhi < -kAngTolerance*0.5 ) pPhi += twopi ; // 0<=pPhi<2pi + if ( pPhi < -kAngTolerance*0.5 ) { pPhi += twopi ; } // 0<=pPhi<2pi if ( fSPhi >= 0 ) { if ( (std::abs(pPhi) < kAngTolerance*0.5) @@ -1082,7 +640,7 @@ EInside G4Torus::Inside( const G4ThreeVector& p ) const else // fSPhi < 0 { if ( (pPhi <= fSPhi + twopi - kAngTolerance*0.5) - && (pPhi >= fSPhi + fDPhi + kAngTolerance*0.5) ) ; + && (pPhi >= fSPhi + fDPhi + kAngTolerance*0.5) ) {;} else { in = kSurface ; @@ -1118,9 +676,12 @@ G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p ) const G4double distRMax = std::fabs(pt - fRmax); if(fRmin) distRMin = std::fabs(pt - fRmin); - if( rho > delta ) nR = G4ThreeVector( p.x()*(1-fRtor/rho)/pt, - p.y()*(1-fRtor/rho)/pt, - p.z()/pt ); + if( rho > delta ) + { + nR = G4ThreeVector( p.x()*(1-fRtor/rho)/pt, + p.y()*(1-fRtor/rho)/pt, + p.z()/pt ); + } if ( fDPhi < twopi ) // && rho ) // old limitation against (0,0,z) { @@ -1128,8 +689,8 @@ G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p ) const { pPhi = std::atan2(p.y(),p.x()); - if(pPhi < fSPhi-delta) pPhi += twopi; - else if(pPhi > fSPhi+fDPhi+delta) pPhi -= twopi; + if(pPhi < fSPhi-delta) { pPhi += twopi; } + else if(pPhi > fSPhi+fDPhi+delta) { pPhi -= twopi; } distSPhi = std::fabs( pPhi - fSPhi ); distEPhi = std::fabs(pPhi-fSPhi-fDPhi); @@ -1168,13 +729,13 @@ G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p ) const #endif norm = ApproxSurfaceNormal(p); } - else if ( noSurfaces == 1 ) norm = sumnorm; - else norm = sumnorm.unit(); + else if ( noSurfaces == 1 ) { norm = sumnorm; } + else { norm = sumnorm.unit(); } return norm ; } -///////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// // // Algorithm for SurfaceNormal() following the original specification // for points not on the surface @@ -1193,7 +754,6 @@ G4ThreeVector G4Torus::ApproxSurfaceNormal( const G4ThreeVector& p ) const distRMax = std::fabs(pt - fRmax) ; - if(fRmin) // First minimum radius { distRMin = std::fabs(pt - fRmin) ; @@ -1214,14 +774,14 @@ G4ThreeVector G4Torus::ApproxSurfaceNormal( const G4ThreeVector& p ) const distMin = distRMax ; side = kNRMax ; } - if (fDPhi < twopi && rho ) + if ( (fDPhi < twopi) && rho ) { - phi = std::atan2(p.y(),p.x()) ; // Protected against (0,0,z) (above rho !=0) + phi = std::atan2(p.y(),p.x()) ; // Protected against (0,0,z) (above rho!=0) - if (phi < 0) phi += twopi ; + if (phi < 0) { phi += twopi ; } - if (fSPhi < 0 ) distSPhi = std::fabs(phi-(fSPhi+twopi))*rho ; - else distSPhi = std::fabs(phi-fSPhi)*rho ; + if (fSPhi < 0 ) { distSPhi = std::fabs(phi-(fSPhi+twopi))*rho ; } + else { distSPhi = std::fabs(phi-fSPhi)*rho ; } distEPhi = std::fabs(phi - fSPhi - fDPhi)*rho ; @@ -1231,7 +791,7 @@ G4ThreeVector G4Torus::ApproxSurfaceNormal( const G4ThreeVector& p ) const } else { - if (distEPhi < distMin) side = kNEPhi ; + if (distEPhi < distMin) { side = kNEPhi ; } } } switch (side) @@ -1254,7 +814,8 @@ G4ThreeVector G4Torus::ApproxSurfaceNormal( const G4ThreeVector& p ) const break; default: DumpInfo(); - G4Exception("G4Torus::ApproxSurfaceNormal()", "Notification", JustWarning, + G4Exception("G4Torus::ApproxSurfaceNormal()", + "Notification", JustWarning, "Undefined side for valid surface normal to solid."); break ; } @@ -1289,7 +850,7 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, G4double snxt=kInfinity, sphi=kInfinity; // snxt = default return value - G4double c[5], s[4] ; + G4double s[4] ; // Precalculated trig for phi intersections - used by r,z intersections to // check validity @@ -1302,19 +863,15 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, G4double tolORMin2,tolIRMin2; // `generous' radii squared G4double tolORMax2,tolIRMax2 ; - G4double Dist,xi,yi,zi,rhoi2,it2,inum,cosPsi; // Intersection point variables + G4double Dist,xi,yi,zi,rhoi2,it2; // Intersection point variables G4double Comp; G4double cosSPhi,sinSPhi; // Trig for phi start intersect G4double ePhi,cosEPhi,sinEPhi; // for phi end intersect -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn " << p << ", " << v << G4endl; -#endif - // Set phi divided flag and precalcs - + // if ( fDPhi < twopi ) { seg = true ; @@ -1327,7 +884,10 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, cosHDPhiOT = std::cos(hDPhiOT) ; cosHDPhiIT = std::cos(hDPhiIT) ; } - else seg = false ; + else + { + seg = false ; + } if (fRmin > kRadTolerance) // Calculate tolerant rmin and rmax { @@ -1344,198 +904,15 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, // Intersection with Rmax (possible return) and Rmin (must also check phi) - G4int i, j, num ; - G4double Rtor2 = fRtor*fRtor, Rmax2 = fRmax*fRmax, Rmin2 = fRmin*fRmin ; - G4double rho2 = p.x()*p.x()+p.y()*p.y(); - G4double rho = std::sqrt(rho2) ; - G4double pt2 = std::fabs(rho2+p.z()*p.z() +Rtor2 - 2*fRtor*rho) ; - // G4double pt = std::sqrt(pt2) ; - G4double pDotV = p.x()*v.x() + p.y()*v.y() + p.z()*v.z() ; - G4double pRad2 = p.x()*p.x() + p.y()*p.y() + p.z()*p.z() ; - G4double vDotNmax = pDotV - fRtor*(v.x()*p.x() + v.y()*p.y())/rho ; + G4double Rtor2 = fRtor*fRtor ; - // Inside outer radius : - // check not inside, and heading through tubs (-> 0 to in) - - if( pt2 <= tolORMax2 && pt2 >= tolIRMin2 && vDotNmax < 0 ) - { - if (seg) - { - inum = p.x()*cosCPhi + p.y()*sinCPhi ; - cosPsi = inum/rho ; - - if (cosPsi>=cosHDPhiIT) - { -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (cosPsi>=cosHDPhiIT) " - << __LINE__ << G4endl << G4endl; -#endif - return snxt = 0 ; - } - } - else - { -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (seg) " - << __LINE__ << G4endl << G4endl; -#endif - return snxt = 0 ; - } - } - else // intersection with Rmax torus - { - c[4] = 1.0 ; - c[3] = 4*pDotV ; - c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Rmax2 + 2*Rtor2*v.z()*v.z()) ; - - c[1] = 4*(pDotV*(pRad2 - Rtor2 - Rmax2) + 2*Rtor2*p.z()*v.z()) ; - - c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmax2) - + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmax2)*(Rtor2-Rmax2) ; - - // Uncomment the line below for activating the analytical method - // - // num = SolveBiQuadratic(c,s) ; - - // Numerical root research - // - s[0] = SolveNumeric(p, v, true); - // s[0] = SolveNumericJT(c); - num = 1; // There is only one root: the correct one - -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (" << __LINE__ << ") SolveNumeric : " - << s[0] << G4endl; -#endif - - if(num) - { - for(i=0;i=kRadTolerance/2 roots P?! - { - if(s[i]= cosHDPhiIT) - { - snxt = s[i] ; - break ; - } - } - else - { - snxt = s[i] ; - break ; - } - } - } - } - } + snxt = SolveNumericJT(p,v,fRmax,true); if (fRmin) // Possible Rmin intersection { - // Inside relative to inner radius : - // check not inside, and heading through tubs (-> 0 to in) + s[0] = SolveNumericJT(p,v,fRmin,true); + if ( s[0] < snxt ) { snxt = s[0] ; } + } - if( pt2 >= tolORMin2 && pt2 <= tolIRMax2 && vDotNmax > 0 ) - { - if (seg) - { - inum = p.x()*cosCPhi + p.y()*sinCPhi; - cosPsi = inum/rho ; - - if (cosPsi>=cosHDPhiIT) - { -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (cosPsi>=cosHDPhiIT) " - << __LINE__ << G4endl << G4endl; -#endif - return snxt = 0 ; - } - } - else - { -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn (seg) " - << __LINE__ << G4endl << G4endl; -#endif - return snxt = 0 ; - } - } - else // intersection with Rmin torus - { - c[4] = 1.0 ; - c[3] = 4*pDotV ; - c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Rmin2 + 2*Rtor2*v.z()*v.z()) ; - - c[1] = 4*(pDotV*(pRad2-Rtor2-Rmin2) + 2*Rtor2*p.z()*v.z()) ; - - c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmin2) - + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmin2)*(Rtor2-Rmin2) ; - - // Uncomment the line below to activate the analytical method - // - // num = SolveBiQuadratic(c,s) ; - - // Numerical root research - // s[0] = s[0]; // We already take care of Rmin in SolveNumeric ! - // s[0] = SolveNumericJT(c); - num = 1; - - if(num) - { - for(i=0;i=kRadTolerance/2 roots P?! - { - if(s[i] < kRadTolerance*0.5) - { - for(j=i+1;j= cosHDPhiIT && s[i] < snxt ) - { - snxt = s[i] ; - break ; - } - } - else if(s[i] < snxt) - { - snxt = s[i] ; - break ; - } - } - } - } - } - } // if(Rmin) - // // Phi segment intersection // @@ -1547,11 +924,11 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, // -> use some form of loop Construct ? if (seg) - { + { sinSPhi = std::sin(fSPhi) ; // First phi surface (`S'tarting phi) cosSPhi = std::cos(fSPhi) ; Comp = v.x()*sinSPhi - v.y()*cosSPhi ; // Component in outwards - // normal direction + // normal direction if (Comp < 0 ) { Dist = (p.y()*cosSPhi - p.x()*sinSPhi) ; @@ -1561,7 +938,7 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, sphi = Dist/Comp ; if (sphi < snxt) { - if ( sphi < 0 ) sphi = 0 ; + if ( sphi < 0 ) { sphi = 0 ; } xi = p.x() + sphi*v.x() ; yi = p.y() + sphi*v.y() ; @@ -1574,7 +951,7 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, // r intersection is good - check intersecting // with correct half-plane // - if ((yi*cosCPhi-xi*sinCPhi)<=0) snxt=sphi; + if ((yi*cosCPhi-xi*sinCPhi)<=0) { snxt=sphi; } } } } @@ -1593,7 +970,7 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, sphi = Dist/Comp ; if (sphi < snxt ) { - if (sphi < 0 ) sphi = 0 ; + if (sphi < 0 ) { sphi = 0 ; } xi = p.x() + sphi*v.x() ; yi = p.y() + sphi*v.y() ; @@ -1606,19 +983,14 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, // z and r intersections good - check intersecting // with correct half-plane // - if ((yi*cosCPhi-xi*sinCPhi)>=0) snxt=sphi; + if ((yi*cosCPhi-xi*sinCPhi)>=0) { snxt=sphi; } } } } } } - if(snxt < 0.5*kCarTolerance) snxt = 0.0 ; + if(snxt < 0.5*kCarTolerance) { snxt = 0.0 ; } -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToIn Final Value is " - << snxt << G4endl << G4endl; -#endif - return snxt ; } @@ -1635,10 +1007,6 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p ) const G4double phiC, cosPhiC, sinPhiC, safePhi, ePhi, cosPsi ; G4double rho2, rho, pt2, pt ; -#if DEBUGTORUS - G4cout << G4endl ; -#endif - rho2 = p.x()*p.x() + p.y()*p.y() ; rho = std::sqrt(rho2) ; pt2 = std::fabs(rho2 + p.z()*p.z() + fRtor*fRtor - 2*fRtor*rho) ; @@ -1647,8 +1015,8 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p ) const safe1 = fRmin - pt ; safe2 = pt - fRmax ; - if (safe1 > safe2) safe = safe1; - else safe = safe2; + if (safe1 > safe2) { safe = safe1; } + else { safe = safe2; } if ( fDPhi < twopi && rho ) { @@ -1658,7 +1026,7 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p ) const cosPsi = (p.x()*cosPhiC + p.y()*sinPhiC)/rho ; if (cosPsi < std::cos(fDPhi*0.5) ) // Psi=angle from central phi to point - { // Point lies outside phi range + { // Point lies outside phi range if ((p.y()*cosPhiC - p.x()*sinPhiC) <= 0 ) { safePhi = std::fabs(p.x()*std::sin(fSPhi) - p.y()*std::cos(fSPhi)) ; @@ -1668,10 +1036,10 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p ) const ePhi = fSPhi + fDPhi ; safePhi = std::fabs(p.x()*std::sin(ePhi) - p.y()*std::cos(ePhi)) ; } - if (safePhi > safe) safe = safePhi ; + if (safePhi > safe) { safe = safePhi ; } } } - if (safe < 0 ) safe = 0 ; + if (safe < 0 ) { safe = 0 ; } return safe; } @@ -1680,11 +1048,6 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p ) const // Calculate distance to surface of shape from `inside', allowing for tolerance // - Only Calc rmax intersection if no valid rmin intersection // -// Problem: if the ray exit the torus from the surface, the only solution -// is epsilon (~ 0). -// Then this solution is eliminated by the loop (>= kRadTolerance) we have -// nothing. This results in 'invalid enum' -// solution: apply DistanceToIn() instead DistanceToOut() ? G4double G4Torus::DistanceToOut( const G4ThreeVector& p, const G4ThreeVector& v, @@ -1693,7 +1056,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, G4ThreeVector *n ) const { ESide side = kNull, sidephi = kNull ; - G4double snxt = kInfinity, sphi, c[5], s[4] ; + G4double snxt = kInfinity, sphi, s[4] ; // Vars for phi intersection // @@ -1702,146 +1065,95 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, G4double pDistS, compS, pDistE, compE, sphi2, xi, yi, zi, vphi ; // Radial Intersections Defenitions & General Precals - - // Define roots Si (generally real >=0) for intersection with - // torus (Ri = fRmax or fRmin) of ray p +S*v . General equation is : - // c[4]*S^4 + c[3]*S^3 +c[2]*S^2 + c[1]*S + c[0] = 0 . - -#if DEBUGTORUS - G4cout << G4endl ; -#endif - G4int i,j,num ; - G4double Rtor2 = fRtor*fRtor, Rmax2 = fRmax*fRmax, Rmin2 = fRmin*fRmin ; + //////////////////////// new calculation ////////////////////// + +#if 1 + + // This is the version with the calculation of CalcNorm = true + // To be done: Check the precision of this calculation. + // If you want return always validNorm = false, then take the version below + + G4double Rtor2 = fRtor*fRtor ; G4double rho2 = p.x()*p.x()+p.y()*p.y(); G4double rho = std::sqrt(rho2) ; + + G4double pt2 = std::fabs(rho2 + p.z()*p.z() + Rtor2 - 2*fRtor*rho) ; G4double pt = std::sqrt(pt2) ; + G4double pDotV = p.x()*v.x() + p.y()*v.y() + p.z()*v.z() ; - G4double pRad2 = p.x()*p.x() + p.y()*p.y() + p.z()*p.z() ; - + G4double tolRMax = fRmax - kRadTolerance*0.5 ; G4double vDotNmax = pDotV - fRtor*(v.x()*p.x() + v.y()*p.y())/rho ; G4double pDotxyNmax = (1 - fRtor/rho) ; -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut " << p << ", " << v << G4endl ; -#endif - - if( pt2 > tolRMax*tolRMax && vDotNmax >= 0 ) + if( (pt2 > tolRMax*tolRMax) && (vDotNmax >= 0) ) { // On tolerant boundary & heading outwards (or perpendicular to) outer // radial surface -> leaving immediately with *n for really convex part // only - - if (calcNorm && pDotxyNmax >= -kRadTolerance) + + if ( calcNorm && (pDotxyNmax >= -kRadTolerance) ) { *n = G4ThreeVector( p.x()*(1 - fRtor/rho)/pt, p.y()*(1 - fRtor/rho)/pt, p.z()/pt ) ; *validNorm = true ; } -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut Leaving by Rmax immediately" - << G4endl ; -#endif return snxt = 0 ; // Leaving by Rmax immediately } - else // intersection with Rmax torus - { - c[4] = 1.0 ; - c[3] = 4*pDotV ; - c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Rmax2 + 2*Rtor2*v.z()*v.z()) ; - c[1] = 4*(pDotV*(pRad2-Rtor2-Rmax2) + 2*Rtor2*p.z()*v.z()) ; - c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmax2) - + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmax2)*(Rtor2-Rmax2) ; + + snxt = SolveNumericJT(p,v,fRmax,false); + side = kRMax ; - // Uncomment the line below to activate the analytical method - // - // num = SolveBiQuadratic(c,s) ; + // rmin - // Numerical root research - s[0] = SolveNumeric( p, v, false); - // s[0] = SolveNumericJT(c); - num = 1; // There is only one root. + if ( fRmin ) + { + G4double tolRMin = fRmin + kRadTolerance*0.5 ; + + if ( (pt2 < tolRMin*tolRMin) && (vDotNmax < 0) ) + { + if (calcNorm) { *validNorm = false ; } // Concave surface of the torus + return snxt = 0 ; // Leaving by Rmin immediately + } + + s[0] = SolveNumericJT(p,v,fRmin,false); + if ( s[0] < snxt ) + { + snxt = s[0] ; + side = kRMin ; + } + } + +#else + + // this is the "conservative" version which return always validnorm = false + // NOTE: using this version the unit test testG4Torus will break + + snxt = SolveNumericJT(p,v,fRmax,false); + side = kRMax ; + + if ( fRmin ) + { + s[0] = SolveNumericJT(p,v,fRmin,false); + if ( s[0] < snxt ) + { + snxt = s[0] ; + side = kRMin ; + } + } + + if ( calcNorm && (snxt == 0.0) ) + { + *validNorm = false ; // Leaving solid, but possible re-intersection + return snxt ; + } -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut (" << __LINE__ - << ") SolveNumeric : " << s[0] << G4endl ; #endif - if(num) - { - for(i=0;i=kRadTolerance/2 roots - { - if( s[i] < kRadTolerance*0.5 ) - { - for(j=i+1;jkRadTolerance*0.5 - // - avoid sqrt for efficiency - // - if (pt2 < tolRMin*tolRMin && vDotNmax < 0 ) - { - if (calcNorm) *validNorm = false ; // Concave surface of the torus -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToOut Leaving by Rmin immediately" - << G4endl ; -#endif - return snxt = 0 ; // Leaving by Rmin immediately - } - else // intersection with Rmin torus - { - c[4] = 1.0 ; - c[3] = 4*pDotV ; - c[2] = 2*(pRad2 + 2*pDotV*pDotV - Rtor2 - Rmin2 + 2*Rtor2*v.z()*v.z()) ; - c[1] = 4*(pDotV*(pRad2-Rtor2-Rmin2) + 2*Rtor2*p.z()*v.z()) ; - c[0] = pRad2*pRad2 - 2*pRad2*(Rtor2+Rmin2) - + 4*Rtor2*p.z()*p.z() + (Rtor2-Rmin2)*(Rtor2-Rmin2) ; - - // Uncomment the line below to activate the analytical method - // - // num = SolveBiQuadratic(c,s) ; - // s[0] = s[0]; // We already take care of Rmin in SolveNumeric - // s[0] = SolveNumericJT(c); - num = 1; - - if(num) - { - for(i=0;i=kRadTolerance/2 roots - { - if(s[i] < kRadTolerance*0.5) - { - for(j=i+1;j no intersect) // if ((yi*cosCPhi-xi*sinCPhi)>=0) + { sphi=kInfinity; + } else { sidephi=kSPhi; - if (pDistS>-kCarTolerance*0.5) - sphi=0; - // Leave by sphi immediately + if (pDistS>-kCarTolerance*0.5) { sphi=0; } // Leave by sphi + // immediately } } - else sphi=kInfinity; + else + { + sphi=kInfinity; + } if (compE<0) { @@ -1919,7 +1235,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, } } } - else if (pDistS>=0&&pDistE>=0) + else if ( (pDistS>=0) && (pDistE>=0) ) { // Outside both *full* phi planes @@ -1931,17 +1247,17 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, { sidephi = kEPhi ; } - if (fDPhi>pi) + if (fDPhi>pi) { - if (compS<0&&compE<0) sphi=0; - else sphi=kInfinity; + if ( (compS<0) && (compE<0) ) { sphi=0; } + else { sphi=kInfinity; } } else { // if towards both >=0 then once inside (after error) // will remain inside // - if (compS>=0&&compE>=0) + if ( (compS>=0) && (compE>=0) ) { sphi=kInfinity; } @@ -1951,7 +1267,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, } } } - else if (pDistS>0&&pDistE<0) + else if ( (pDistS>0) && (pDistE<0) ) { // Outside full starting plane, inside full ending plane @@ -1963,7 +1279,8 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, xi=p.x()+sphi*v.x(); yi=p.y()+sphi*v.y(); - // Check intersection in correct half-plane (if not -> not leaving phi extent) + // Check intersection in correct half-plane + // (if not -> not leaving phi extent) // if ((yi*cosCPhi-xi*sinCPhi)<=0) { @@ -1974,8 +1291,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, // Leaving via Ending phi // sidephi = kEPhi ; - if (pDistE>-kCarTolerance*0.5) - sphi=0; + if (pDistE>-kCarTolerance*0.5) { sphi=0; } } } else @@ -2007,7 +1323,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, sidephi=kEPhi; } } - else sphi=kInfinity; + else { sphi=kInfinity; } } else { @@ -2043,8 +1359,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, // Leaving via Starting phi // sidephi = kSPhi ; - if (pDistS>-kCarTolerance*0.5) - sphi=0; + if (pDistS>-kCarTolerance*0.5) { sphi=0; } } } else @@ -2076,10 +1391,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, sidephi=kSPhi; } } - else - { - sphi=kInfinity; - } + else { sphi=kInfinity; } } else { @@ -2097,7 +1409,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, // within phi of shape, Step limited by rmax, else Step =0 vphi=std::atan2(v.y(),v.x()); - if (fSPhi= aOut) && (chose < aOut + aIn) ) + { + return G4ThreeVector ((fRtor+fRmin*cosv)*cosu, + (fRtor+fRmin*cosv)*sinu, fRmin*sinv); + } + else if( (chose >= aOut + aIn) && (chose < aOut + aIn + aSide) ) + { + rRand = RandFlat::shoot(fRmin,fRmax); + return G4ThreeVector ((fRtor+rRand*cosv)*std::cos(fSPhi), + (fRtor+rRand*cosv)*std::sin(fSPhi), rRand*sinv); + } + else + { + rRand = RandFlat::shoot(fRmin,fRmax); + return G4ThreeVector ((fRtor+rRand*cosv)*std::cos(fSPhi+fDPhi), + (fRtor+rRand*cosv)*std::sin(fSPhi+fDPhi), + rRand*sinv); + } +} + /////////////////////////////////////////////////////////////////////// // // Visualisation Functions @@ -2438,863 +1786,3 @@ G4NURBS* G4Torus::CreateNURBS () const } return pNURBS; } - -// -------------------------------------------------------------------- -// Numerical algorithms implementations -// -// Important : the precision could be tuned by TORUSPRECISION - -#define TORUSPRECISION 1.0 // or whatever you want for precision - // (it is TorusEquation related) -#define HOLEBVM 0 -#define NBPOINT 6 -// -------------------------------------------------------------------- - -/////////////////////////////////////////////////////////////////////// -// -// Torus implementation with Newton Method and Bounding volume -// -// For speed issue, we lose time *only* when intersecting the BVM -// and SafeNewton when it is called. - -G4double G4Torus::SolveNumeric( const G4ThreeVector& p, - const G4ThreeVector& v, - G4bool IsDistanceToIn ) const -{ - // This method is a front-end to the numerical computation of roots - // In fact this computation takes care only of a perfect Torus - // So here we add Phi section/Tolerance/Rinterior - - /*** SolveNumeric ***/ - - /** Conditions **/ - // - if original point inside check for interior torus before - // - on surface it depends on the direction - // - the intersection point must be between fSPhi and fSPhi+fDPhi - // - If on the surface it depends on DistanceToOut or DistanceToIn : - // a ray from the surface to In called with DistanceToIn return 0.0 - // and with DistanceToOut return the second intersection point - - G4double lambda = 0; - G4double Value = TorusEquation(p.x(),p.y(),p.z(),GetRtor(),GetRmax()); - EInside inside ; - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric " << p << ", " << v << G4endl ; - G4cout << "G4Torus::SolveNumeric Value = " << Value << G4endl; -#endif - - if (Value < -TORUSPRECISION) - { - inside = kInside ; - } - else - { - if (Value > TORUSPRECISION) - { - inside = kOutside; - } - else - { - inside = kSurface; - } - } - - switch (inside) - { - case kInside: - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is Inside Rmax Torus " - << " Rtor = " << GetRtor() - << " Rmax = " << GetRmax() << G4endl ; -#endif - - if (std::fabs(GetRmin()) > POLEPSILON) - { - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Testing interior torus .." - << G4endl ; -#endif - lambda = DistanceToTorus(p.x(),p.y(),p.z(),v.x(),v.y(),v.z(), - GetRtor(),GetRmin()); //Interior torus - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric lambda to interior torus =" - << lambda << G4endl ; - G4cout << "G4Torus::SolveNumeric Tolerance is " - << kCarTolerance << G4endl ; -#endif - - // Now check if on surface from interior torus - // - // PROBLEM: This may be a problem of precision - // if we are near kCarTolerance ... - // - if (std::fabs(lambda) < kCarTolerance) - { - G4double Lx,Ly,Lz; - G4double scal; -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric" - << " In fact on the Surface of Rmin torus" - << G4endl ; -#endif - - // Compute Surface point - // - Lx = p.x() + lambda*v.x(); - Ly = p.y() + lambda*v.y(); - Lz = p.z() + lambda*v.z(); - - // Scalar product - // - scal = v.x()*TorusDerivativeX(Lx,Ly,Lz,GetRtor(),GetRmin()); - scal += v.y()*TorusDerivativeY(Lx,Ly,Lz,GetRtor(),GetRmin()); - scal += v.z()*TorusDerivativeZ(Lx,Ly,Lz,GetRtor(),GetRmin()); - - // if entering and if it is DistToIn it is 0.0, - // but in fact it is the opposite because it is the interior torus - // beware that this could be DistanceToOut - - if ( (IsDistanceToIn == true) && (scal > 0.0) ) - { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric" - << " Entering Surface from Rmin Torus Gradient: " - << scal << G4endl ; -#endif - - // DistanceToIn returns 0.0 - // - lambda = 0.0; - } - else - { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric" - << " Exiting Surface (Recalculating) or DistanceToOut" - << " from surface" - << G4endl ; - G4cout << "G4Torus::SolveNumeric Recursive call lambda..." - << lambda << G4endl << G4endl; -#endif - // else it is not necessarily infinity !! - // (we could reach the opposite side..) - // To reach the opposite side we remark that from Surface - // the sphere of radius min((Rmax - Rmin)/2, Rmin) does not - // hit 2 surfaces of the torus so it is safe to do that way - - if ((GetRmax() - GetRmin())/2.0 < GetRmin()) - { - lambda = - SolveNumeric(p+((GetRmax()-GetRmin())/2.0)*v,v,IsDistanceToIn) - + (GetRmax() - GetRmin())/2.0; - } - else - { - lambda = - SolveNumeric(p+GetRmin()*v,v,IsDistanceToIn) + GetRmin(); - } - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric --> Recursive call: lambda = " - << lambda << G4endl; -#endif - } - } - else - { - // PROBLEM : could this be better done ? - - G4double lambdaToRmax = DistanceToTorus(p.x(),p.y(),p.z(), - v.x(),v.y(),v.z(), - GetRtor(),GetRmax()); - if (lambda >= lambdaToRmax) - { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric" - << " Point does not hit the Rmin torus from here" - << G4endl; -#endif - lambda = lambdaToRmax; - } - else - { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric We hit the Rmin torus with " - << lambda << G4endl; - G4cout << "G4Torus::SolveNumeric Note that this could be small " - << "and not in Tolerance resulting in wrong result " - << G4endl ; -#endif - } - } - } - else - { - // It is a whole torus - // - lambda = DistanceToTorus(p.x(),p.y(),p.z(), - v.x(),v.y(),v.z(), - GetRtor(),GetRmax()); - } - break; - case kSurface: - { - G4double Lx,Ly,Lz; - G4double scal; - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is on the Rmax Surface" - << G4endl ; -#endif - // It is possible with Phi that this is not the correct point - // - lambda = DistanceToTorus(p.x(),p.y(),p.z(), - v.x(),v.y(),v.z(), - GetRtor(),GetRmax()); - // Compute Surface point - // - Lx = p.x() + lambda*v.x(); - Ly = p.y() + lambda*v.y(); - Lz = p.z() + lambda*v.z(); - - // Scalar product - scal = v.x()*TorusDerivativeX(Lx,Ly,Lz,GetRtor(),GetRmax()); - scal += v.y()*TorusDerivativeY(Lx,Ly,Lz,GetRtor(),GetRmax()); - scal += v.z()*TorusDerivativeZ(Lx,Ly,Lz,GetRtor(),GetRmax()); - - // if entering it is < 0.0 - // - if ( (IsDistanceToIn) && (scal < 0.0) ) - { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is Entering Surface " - << scal << G4endl ; -#endif - lambda = 0.0; - } - else - { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is Exiting Surface " - << "or DistanceToOut " << scal << G4endl ; - G4cout << "Recursive call ..." << G4endl << G4endl ; -#endif - // To reach the opposite side we remark that from Surface the - // sphere of radius (Rmax - Rmin)/2 does not hit 2 surfaces of - // the torus so it is safe to do that way - // lambda = SolveNumeric(p+(lambda + kCarTolerance)*v, - // v,IsDistanceToIn); - // - lambda = - SolveNumeric(p+((GetRmax()-GetRmin())/2.0)*v, v, IsDistanceToIn) - + (GetRmax() - GetRmin())/2.0; -#if DEBUGTORUS - G4cout << "Recursive call ...END" << G4endl ; -#endif - } - } - break; - case kOutside: -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Point is Outside the Rmax torus" - << G4endl ; -#endif - - lambda = DistanceToTorus(p.x(),p.y(),p.z(), - v.x(),v.y(),v.z(), - GetRtor(),GetRmax()); - break; - } - - if (lambda == kInfinity) return lambda; - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Intersection found. " - << "Now checking Phi angles" << G4endl ; -#endif - - // Ok we have a lambda that is correct without Phi - // Now check Phi .. - - // Eliminate the case of point (0,0,0) - // - if (((p.x()+ lambda*v.x())*(p.x()+ lambda*v.x()) + - (p.y()+ lambda*v.y())*(p.y()+ lambda*v.y()) + - (p.z()+ lambda*v.z())*(p.z()+ lambda*v.z())) > POLEPSILON) - { - G4double theta = std::atan2(p.y() + lambda*v.y(),p.x() + lambda*v.x()); - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric theta = " << theta << G4endl; -#endif - - if (theta < 0) theta += twopi; - - // We have to verify if this root is inside the region between - // fSPhi and fSPhi + fDPhi - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric theta = " << theta - << " Phi = " << fSPhi - << " Phi + dPhi = " << fSPhi + fDPhi - << " kAngTolerance = " << kAngTolerance << G4endl ; - G4cout << " theta - Phi = " << theta - fSPhi << G4endl ; -#endif - - if ( (theta - fSPhi >= - kAngTolerance*0.5) - && (theta - (fSPhi + fDPhi) <= kAngTolerance*0.5) ) - { - // If this is the case we return this solution - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Correct Phi section" << G4endl ; -#endif - - return lambda; - } - else - { - // Else we compute the intersection with the 2 half-plane [fSPhi] - // and [fSPhi + fDPhi] - - G4double IntersectPlanar ; - IntersectPlanar = -(p.y()-p.x()*std::tan(fSPhi))/(v.y()-v.x()*std::tan(fSPhi)); - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric IntersectPlanar = " - << IntersectPlanar << G4endl ; -#endif - - // If this is below lambda we check for the other plane - // - if (IntersectPlanar < lambda) - { - IntersectPlanar = - (p.y() - p.x()*std::tan(fSPhi + fDPhi)) - / (v.y() - v.x()*std::tan(fSPhi + fDPhi)) ; -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric IntersectPlanar (2) = " - << IntersectPlanar << G4endl ; -#endif - } - - // If we does not hit the two plan then we does not hit the torus .. - // - if (IntersectPlanar < lambda) - { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric No intersection with planar Phi .." - << G4endl ; -#endif - return kInfinity; - } - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Incorrect Phi section" << G4endl ; - G4cout << "G4Torus::SolveNumeric point : " << p << " direction : " - << v << G4endl ; - G4cout << "G4Torus::SolveNumeric IntersectPlanar = " - << IntersectPlanar << G4endl ; -#endif - - if ( (TorusEquation(p.x() + IntersectPlanar*v.x(), - p.y() + IntersectPlanar*v.y(), - p.z() + IntersectPlanar*v.z(), - GetRtor(),GetRmax()) < 0) - && (TorusEquation(p.x() + IntersectPlanar*v.x(), - p.y() + IntersectPlanar*v.y(), - p.z() + IntersectPlanar*v.z(), - GetRtor(),GetRmin()) > 0) ) - { - // if this point is inside torus Rmax and outside torus Rmin - // then it is on the cut planar faces - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Hit planar section" << G4endl ; -#endif - return IntersectPlanar; - } - else - { - // else we continue from this new point (SolveNumeric) - -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Recursive Phi call with " - << IntersectPlanar << " .." << G4endl << G4endl; -#endif - - return IntersectPlanar + SolveNumeric(p+IntersectPlanar*v, - v,IsDistanceToIn); - } - } - } - else - { -#if DEBUGTORUS - G4cout << "G4Torus::SolveNumeric Phi not checked because point is " - << p + lambda*v << G4endl << G4endl; -#endif - } - - return lambda; -} - -/////////////////////////////////////////////////////////////////////// -// -// Utility function - -void G4Torus::BVMIntersection( G4double x,G4double y,G4double z, - G4double dx,G4double dy,G4double dz, - G4double Rmax, G4double Rmin, - G4double *NewL,G4int *valid ) const -{ - - if (dz != 0) - { - G4double DistToZ ; - - NewL[0] = (Rmin - z)/dz ; // z = + Rmin - NewL[1] = (-Rmin - z)/dz ; // z = - Rmin - - // Test validity here (*** To be optimized ***) - // - if (NewL[0] < 0.0) valid[0] = 0; - if (NewL[1] < 0.0) valid[1] = 0; - DistToZ = (x+NewL[0]*dx)*(x+NewL[0]*dx) + (y+NewL[0]*dy)*(y+NewL[0]*dy); - if (DistToZ - (Rmax + Rmin)*(Rmax + Rmin) > 0) - valid[0] = 0; - -#if HOLEBVM - if (DistToZ - (Rmax - Rmin)*(Rmax - Rmin) < 0) - valid[0] = 0; -#endif - - DistToZ = (x+NewL[1]*dx)*(x+NewL[1]*dx) + (y+NewL[1]*dy)*(y+NewL[1]*dy); - if (DistToZ - (Rmax + Rmin)*(Rmax + Rmin) > 0) - valid[1] = 0; - -#if HOLEBVM - if (DistToZ - (Rmax - Rmin)*(Rmax - Rmin) < 0) - valid[1] = 0; -#endif - } - else - { - // if dz == 0 we could know the exact solution - // Well, this is true but we have the expected precision - // issue from sqrt ... - NewL[0] = -1.0; - NewL[1] = -1.0; - valid[0] = 0; - valid[1] = 0; - } - - // x² + y² = (Rmax + Rmin)² - // - if ((dx != 0) || (dy != 0)) - { - G4double a,b,c,d; - - a = dx*dx + dy*dy ; - b = 2*(x*dx + y*dy) ; - c = x*x + y*y - (Rmax + Rmin)*(Rmax + Rmin) ; - d = b*b - 4*a*c ; - - if (d < 0) - { - valid[2] = 0; - valid[3] = 0; - NewL[2] = -1.0; - NewL[3] = -1.0; - } - else - { - d = std::sqrt(d) ; - NewL[2] = (d - b)/(2*a); - NewL[3] = (-d - b)/(2*a); - if (NewL[2] < 0.0) valid[2] = 0; - if (std::fabs(z + NewL[2]*dz) - Rmin > POLEPSILON) valid[2] = 0; - if (NewL[3] < 0.0) valid[3] = 0; - if (std::fabs(z + NewL[3]*dz) - Rmin > POLEPSILON) valid[3] = 0; - } - } - else - { - // only dz != 0 so we could know the exact solution - // this depends only for the distance to Z axis - // BUT big precision problem near the border.. - - NewL[2] = -1.0; - NewL[3] = -1.0; - valid[2] = 0; - valid[3] = 0; - -/* SQRT Test --------------------------------------------------- - - // Try This to see precision issue with std::sqrt(~ 0) - // - G4double DistToZ ; - G4double result; - G4double guess; - - DistToZ = std::sqrt(x*x + y*y) ; - - if ((DistToZ < (Rmax - Rmin)) || (DistToZ > (Rmax + Rmin))) - { - return -1.0 ; - } - - result = std::sqrt((Rmin + Rmax - DistToZ)*(Rmin - Rmax + DistToZ)); - - if (dz < 0) - { - if (z > result) - { - return (result - z)/dz; - } - else - { - if (z > -result) - { - return (-result - z)/dz; - } - else - return -1.0; - } - } - else - { - if (z < -result) - { - return (z + result)/dz; - } - else - { - if (z < result) - { - return (z - result)/dz; - } - else - return -1.0; - } - } - --------------------------------------------------- END SQRT test */ - } - - // x² + y² = (Rmax - Rmin)² - // -#if HOLEBVM - if ((dx != 0) || (dy != 0)) - { - G4double a,b,c,d; - - a = dx*dx + dy*dy ; - b = 2*(x*dx + y*dy) ; - c = x*x + y*y - (Rmax - Rmin)*(Rmax - Rmin) ; - d = b*b - 4*a*c ; - - if (d < 0) - { - valid[4] = 0; - valid[5] = 0; - NewL[4] = -1.0; - NewL[5] = -1.0; - } - else - { - d = std::sqrt(d) ; - NewL[4] = (d - b)/(2*a); - NewL[5] = (-d - b)/(2*a); - if (NewL[4] < 0.0) valid[4] = 0; - if (std::fabs(z + NewL[4]*dz) - Rmin > POLEPSILON) valid[4] = 0; - if (NewL[5] < 0.0) valid[5] = 0; - if (std::fabs(z + NewL[5]*dz) - Rmin > POLEPSILON) valid[5] = 0; - } - } - else -#endif - { - // only dz != 0 so we could know the exact solution - // OK but same as above .. - // - valid[4] = 0; - valid[5] = 0; - NewL[4] = -1.0; - NewL[5] = -1.0; - } -} - -/////////////////////////////////////////////////////////////////////// -// -// Utility function - -void G4Torus::SortIntervals ( G4double *SortL, G4double *NewL, - G4int *valid, G4int *NbIntersection ) const -{ - G4int i,j; - G4double swap; - - (*NbIntersection) = 0; - SortL[0] = -kInfinity; - - for (i=0;i<6;i++) - { - if (valid[i] != 0) - { - SortL[(*NbIntersection)] = NewL[i] ; - for (j=(*NbIntersection);j>0;j--) - { - if (SortL[j] < SortL[j-1]) - { - swap = SortL[j-1] ; - SortL[j-1] = SortL[j]; - SortL[j] = swap; - } - } - (*NbIntersection) ++; - } - } - - // Delete double values - // When the ray hits a corner we have a double value - // - for (i=0;i<(*NbIntersection)-1;i++) - { - if (SortL[i+1] - SortL[i] < POLEPSILON) - { - if (((*NbIntersection) & (1)) == 1) - { - // If the NbIntersection is odd then we keep one value - // - for (j=i+1;j<(*NbIntersection);j++) - { - SortL[j-1] = SortL[j] ; - } - (*NbIntersection) --; - } - else - { - // If it is even we delete the 2 values - // - for (j=i+2;j<(*NbIntersection);j++) - { - SortL[j-2] = SortL[j] ; - } - (*NbIntersection) -= 2; - } - } - } -} - -/////////////////////////////////////////////////////////////////////// -// -// Utility function - -G4double G4Torus::DistanceToTorus ( G4double x, G4double y, G4double z, - G4double dx, G4double dy, G4double dz, - G4double Rmax, G4double Rmin ) const -{ - G4double Lmin=0.; - G4double Lmax=0.; - G4double guess; - G4double SortL[4]; - - G4int NbIntersection = 0; - - G4double NewL[NBPOINT]; - G4int valid[] = {1,1,1,1,1,1} ; - G4int j; - - j = 0; - - // Compute Intervals from Bounding Volume - // - BVMIntersection(x,y,z,dx,dy,dz,Rmax,Rmin,NewL,valid); - - // We could compute intervals value - // Sort all valid NewL to SortL. - // There must be 4 values at max and - // odd one if point is inside - - SortIntervals(SortL,NewL,valid,&NbIntersection); - - { - // Length check (Torus specific) - // - G4double LengthMin = 0.82842712*Rmin; - - switch(NbIntersection) - { - case 1: - if (SortL[0] < POLEPSILON) - { - if (std::fabs(TorusEquation(x,y,z,Rmax,Rmin)) < TORUSPRECISION) - { - return 0.0; - } - else - { - return kInfinity; - } - } - break; - case 2: - if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection = 0; - break; - case 3: - if (SortL[0] < POLEPSILON) - { - if (std::fabs(TorusEquation(x,y,z,Rmax,Rmin)) < TORUSPRECISION) - { - return 0.0; - } - else - { - NbIntersection --; - SortL[0] = SortL[1] ; - SortL[1] = SortL[2] ; - if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection = 0; - } - } - else - { - if ((SortL[2] - SortL[1]) < LengthMin) NbIntersection -= 2; - } - break; - case 4: - if ((SortL[1] - SortL[0]) < LengthMin) - { - NbIntersection -= 2; - SortL[0] = SortL[2]; - SortL[1] = SortL[3]; - if ((SortL[1] - SortL[0]) < LengthMin) NbIntersection -= 2; - } - break; - } - } - -#if DEBUGTORUS - { - G4int i; - G4cout.precision(16); - G4cout << "G4Torus::DistanceToTorus INTERVALS" << G4endl ; - for (i=0;i - PolySolver(&torus, &G4TorusEquation::Function, - &G4TorusEquation::Derivative, TORUSPRECISION) ; - guess = PolySolver.solve(Lmin,Lmax); - if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) - { - return guess ; - } - else - { - Lmin = SortL[1] ; - Lmax = SortL[2] ; - } - break; - case 4: - Lmin = SortL[0] ; - Lmax = SortL[1] ; - - G4TorusEquation torus (Rmax,Rmin); - torus.setPosition(x,y,z); - torus.setDirection(dx,dy,dz); - - G4PolynomialSolver - PolySolver(&torus, &G4TorusEquation::Function, - &G4TorusEquation::Derivative, TORUSPRECISION) ; - guess = PolySolver.solve(Lmin,Lmax); - if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) - { - return guess ; - } - else - { - Lmin = SortL[2] ; - Lmax = SortL[3] ; - } - break; -#endif - - default: - G4cerr << "G4Torus::DistanceToTorus NbIntersection = " - << NbIntersection << G4endl; - break; - } - - G4TorusEquation torus (Rmax,Rmin); - torus.setPosition(x,y,z); - torus.setDirection(dx,dy,dz); - - G4PolynomialSolver - PolySolver(&torus, &G4TorusEquation::Function, - &G4TorusEquation::Derivative, TORUSPRECISION) ; - guess = PolySolver.solve(Lmin,Lmax); - if ((guess >= (Lmin - POLEPSILON)) && (guess <= (Lmax + POLEPSILON))) - { -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToTorus distance = " << guess << G4endl ; -#endif - return guess ; - } - else - { -#if DEBUGTORUS - G4cout << "G4Torus::DistanceToTorus : kInfinity" << G4endl ; -#endif - return kInfinity; - } -} - -/////////////////////////////////////////////////////////////////////// -// -// G4TorusEquation definition - -G4TorusEquation::G4TorusEquation() -{ -} - -G4TorusEquation::G4TorusEquation(G4double Rmax, G4double Rmin) -{ - R0 = Rmax; - R1 = Rmin; -} - -G4TorusEquation::~G4TorusEquation() -{ -} diff --git a/source/geometry/solids/CSG/src/G4Trap.cc b/source/geometry/solids/CSG/src/G4Trap.cc index 63f29c276c..f0a15d58e5 100644 --- a/source/geometry/solids/CSG/src/G4Trap.cc +++ b/source/geometry/solids/CSG/src/G4Trap.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trap.cc,v 1.37 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Trap.cc,v 1.40 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4Trap // @@ -53,11 +53,15 @@ #include "G4VPVParameterisation.hh" +#include "Randomize.hh" + #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" #include "G4NURBSbox.hh" +using namespace CLHEP; + //////////////////////////////////////////////////////////////////////// // // Accuracy of coplanarity @@ -70,14 +74,6 @@ const G4double kCoplanar_Tolerance = 1E-4 ; enum Eside {kUndef,ks0,ks1,ks2,ks3,kPZ,kMZ}; -//////////////////////////////////////////////////////////////////////// -// -// Destructor - -G4Trap::~G4Trap() -{ -} - ////////////////////////////////////////////////////////////////////////// // // Constructor - check and set half-widths as well as angles: @@ -525,6 +521,24 @@ G4Trap::G4Trap( const G4String& pName ) MakePlanes(); } +/////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Trap::G4Trap( __void__& a ) + : G4CSGSolid(a) +{ +} + +//////////////////////////////////////////////////////////////////////// +// +// Destructor + +G4Trap::~G4Trap() +{ +} + /////////////////////////////////////////////////////////////////////// // // Set all parameters, as for constructor - check and set half-widths @@ -1759,7 +1773,107 @@ std::ostream& G4Trap::StreamInfo( std::ostream& os ) const return os; } -/////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////// +// +// GetPointOnPlane +// +// Auxiliary method for Get Point on Surface + +G4ThreeVector G4Trap::GetPointOnPlane(G4ThreeVector p0, G4ThreeVector p1, + G4ThreeVector p2, G4ThreeVector p3, + G4double& area) const +{ + G4double lambda1, lambda2, chose, aOne, aTwo; + G4ThreeVector t, u, v, w, Area, normal; + + t = p1 - p0; + u = p2 - p1; + v = p3 - p2; + w = p0 - p3; + + Area = G4ThreeVector(w.y()*v.z() - w.z()*v.y(), + w.z()*v.x() - w.x()*v.z(), + w.x()*v.y() - w.y()*v.x()); + + aOne = 0.5*Area.mag(); + + Area = G4ThreeVector(t.y()*u.z() - t.z()*u.y(), + t.z()*u.x() - t.x()*u.z(), + t.x()*u.y() - t.y()*u.x()); + + aTwo = 0.5*Area.mag(); + + area = aOne + aTwo; + + chose = RandFlat::shoot(0.,aOne+aTwo); + + if( (chose>=0.) && (chose < aOne) ) + { + lambda1 = RandFlat::shoot(0.,1.); + lambda2 = RandFlat::shoot(0.,lambda1); + return (p2+lambda1*v+lambda2*w); + } + + // else + + lambda1 = RandFlat::shoot(0.,1.); + lambda2 = RandFlat::shoot(0.,lambda1); + + return (p0+lambda1*t+lambda2*u); +} + +/////////////////////////////////////////////////////////////// +// +// GetPointOnSurface + +G4ThreeVector G4Trap::GetPointOnSurface() const +{ + G4double aOne, aTwo, aThree, aFour, aFive, aSix, chose; + G4ThreeVector One, Two, Three, Four, Five, Six, test; + G4ThreeVector pt[8]; + + pt[0] = G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1-fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[1] = G4ThreeVector(-fDz*fTthetaCphi-fDy1*fTalpha1+fDx1, + -fDz*fTthetaSphi-fDy1,-fDz); + pt[2] = G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1-fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[3] = G4ThreeVector(-fDz*fTthetaCphi+fDy1*fTalpha1+fDx2, + -fDz*fTthetaSphi+fDy1,-fDz); + pt[4] = G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2-fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[5] = G4ThreeVector(+fDz*fTthetaCphi-fDy2*fTalpha2+fDx3, + +fDz*fTthetaSphi-fDy2,+fDz); + pt[6] = G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2-fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + pt[7] = G4ThreeVector(+fDz*fTthetaCphi+fDy2*fTalpha2+fDx4, + +fDz*fTthetaSphi+fDy2,+fDz); + + // make sure we provide the points in a clockwise fashion + + One = GetPointOnPlane(pt[0],pt[1],pt[3],pt[2], aOne); + Two = GetPointOnPlane(pt[4],pt[5],pt[7],pt[6], aTwo); + Three = GetPointOnPlane(pt[6],pt[7],pt[3],pt[2], aThree); + Four = GetPointOnPlane(pt[4],pt[5],pt[1],pt[0], aFour); + Five = GetPointOnPlane(pt[0],pt[2],pt[6],pt[4], aFive); + Six = GetPointOnPlane(pt[1],pt[3],pt[7],pt[5], aSix); + + chose = RandFlat::shoot(0.,aOne+aTwo+aThree+aFour+aFive+aSix); + if( (chose>=0.) && (chose=aOne) && (chose=aOne+aTwo) && (chose=aOne+aTwo+aThree) && (chose=aOne+aTwo+aThree+aFour) + && (chose 0.5) py = tmp; - else py = -tmp; + if(G4UniformRand() > 0.5) { py = tmp; } + else { py = -tmp; } } else // Syz { @@ -1410,8 +1405,28 @@ G4ThreeVector G4Trd::GetPointOnSurface() const py = -tmp + 2*tmp*G4UniformRand(); tmp = fDx1 + (pz + fDz)*tgX; - if(G4UniformRand() > 0.5) px = tmp; - else px = -tmp; + if(G4UniformRand() > 0.5) { px = tmp; } + else { px = -tmp; } } return G4ThreeVector(px,py,pz); } + +/////////////////////////////////////////////////////////////////////// +// +// Methods for visualisation + +void G4Trd::DescribeYourselfTo ( G4VGraphicsScene& scene ) const +{ + scene.AddSolid (*this); +} + +G4Polyhedron* G4Trd::CreatePolyhedron () const +{ + return new G4PolyhedronTrd2 (fDx1, fDx2, fDy1, fDy2, fDz); +} + +G4NURBS* G4Trd::CreateNURBS () const +{ + // return new G4NURBSbox (fDx, fDy, fDz); + return 0; +} diff --git a/source/geometry/solids/CSG/src/G4Tubs.cc b/source/geometry/solids/CSG/src/G4Tubs.cc index 283af980d7..9c55b91a76 100644 --- a/source/geometry/solids/CSG/src/G4Tubs.cc +++ b/source/geometry/solids/CSG/src/G4Tubs.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Tubs.cc,v 1.54 2005/06/08 16:14:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Tubs.cc,v 1.57 2005/11/09 15:03:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4Tubs @@ -51,6 +51,8 @@ // 18.06.98 V.Grichine: n-normalisation in DistanceToOut(p,v) // // 1994-95 P.Kent: implementation +// +///////////////////////////////////////////////////////////////////////// #include "G4Tubs.hh" @@ -59,6 +61,8 @@ #include "G4VPVParameterisation.hh" +#include "Randomize.hh" + #include "meshdefs.hh" #include "G4VGraphicsScene.hh" @@ -68,6 +72,8 @@ #include "G4NURBScylinder.hh" #include "G4NURBStubesector.hh" +using namespace CLHEP; + ///////////////////////////////////////////////////////////////////////// // // Constructor - check parameters, convert angles so 0=0) && (chose < aOne) ) + { + xRand = fRMax*cosphi; + yRand = fRMax*sinphi; + zRand = RandFlat::shoot(-1.*fDz,fDz); + return G4ThreeVector (xRand, yRand, zRand); + } + else if( (chose >= aOne) && (chose < aOne + aTwo) ) + { + xRand = fRMin*cosphi; + yRand = fRMin*sinphi; + zRand = RandFlat::shoot(-1.*fDz,fDz); + return G4ThreeVector (xRand, yRand, zRand); + } + else if( (chose >= aOne + aTwo) && (chose < aOne + aTwo + aThr) ) + { + xRand = rRand*cosphi; + yRand = rRand*sinphi; + zRand = fDz; + return G4ThreeVector (xRand, yRand, zRand); + } + else if( (chose >= aOne + aTwo + aThr) && (chose < aOne + aTwo + 2.*aThr) ) + { + xRand = rRand*cosphi; + yRand = rRand*sinphi; + zRand = -1.*fDz; + return G4ThreeVector (xRand, yRand, zRand); + } + else if( (chose >= aOne + aTwo + 2.*aThr) + && (chose < aOne + aTwo + 2.*aThr + aFou) ) + { + xRand = rRand*std::cos(fSPhi); + yRand = rRand*std::sin(fSPhi); + zRand = RandFlat::shoot(-1.*fDz,fDz); + return G4ThreeVector (xRand, yRand, zRand); + } + else + { + xRand = rRand*std::cos(fSPhi+fDPhi); + yRand = rRand*std::sin(fSPhi+fDPhi); + zRand = RandFlat::shoot(-1.*fDz,fDz); + return G4ThreeVector (xRand, yRand, zRand); + } +} + /////////////////////////////////////////////////////////////////////////// // // Methods for visualisation - void G4Tubs::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { scene.AddSolid (*this) ; diff --git a/source/geometry/solids/History b/source/geometry/solids/History index aa4f2cf486..b681db9e01 100644 --- a/source/geometry/solids/History +++ b/source/geometry/solids/History @@ -1,4 +1,4 @@ -$Id: History,v 1.20 2005/04/04 12:03:39 gcosmo Exp $ +$Id: History,v 1.21 2005/11/09 15:06:49 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,15 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November, 9th, 2005, G.Cosmo - geomsolids-V07-01-00 +- Includes tags: geom-bool-V07-01-01, breps-V07-01-01, geom-csg-V07-01-04, + geom-specific-V07-01-07. +- Implemented changes for support of CLHEP-2.0.X. +- Added fake default constructor for all concrete solids, base classes + and relevant utility classes for handling of direct object persistency. +- Implemented migration to from deprecated for + BREPS and unit tests Fred and SBT. + April, 4th, 2005, G.Cosmo - geomsolids-V07-00-00 - Includes tags: breps-V07-00-01, geom-bool-V07-00-02, geom-csg-V07-00-02 diff --git a/source/geometry/solids/specific/History b/source/geometry/solids/specific/History index a8b51a9279..465af3eb7a 100644 --- a/source/geometry/solids/specific/History +++ b/source/geometry/solids/specific/History @@ -1,4 +1,4 @@ -$Id: History,v 1.58 2005/05/09 14:15:37 gcosmo Exp $ +$Id: History,v 1.78 2005/12/08 15:02:28 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,89 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +08-Dec-2005, O.Link (geom-specific-V07-01-14) +- Fixed bug in G4VTwistSurface::ComputeLocalPoint(p) for point coordinate + transformation. The bug affected only G4TwistTrapFlatSide. + +06-Dec-2005, G.Cosmo (geom-specific-V07-01-13) +- Fixed compilation errors on WIN32-VC for last tag changes. + +05-Dec-2005, O.Link (geom-specific-V07-01-12) +- Added polyhedron definition for twisted solids (G4TwistedTrap, + G4TwistedTrd, G4TwistedBox, G4TwistedTubs) for visualization. + +30-Nov-2005, G.Cosmo (geom-specific-V07-01-11) +- Trivial fixes for porting on CLHEP-2.0.X series. + +18-Nov-2005, O.Link (geom-specific-V07-01-10) +- Renamed classes for twisted solids set, to identify them in the + twisted framework. + +17-Nov-2005, O.Link +- G4VTwistedFacted: + o corrected bug in DistanceToSurface() implementation + o added GetPointOnSurface() method +- G4TwistedTubs: + o added GetPointOnSurface() method +- G4Hype: + o corrected surface area calculation used in GetPointOnSurface() + +17-Nov-2005, G.Cosmo (geom-specific-V07-01-09) +- More fixes required for direct object persistency to G4Polycone, + G4polyhedra and related utility classes. + +10-Nov-2005, J.Allison (geom-specific-V07-01-08) +- G4Tet: + o Added implementation for GetPolyhedron() and GetCubicVolume(). + o Corrected order of specifying vertices in CreatePolyhedron(). + +09-Nov-2005, G.Cosmo (geom-specific-V07-01-07) +- Added fake default constructor for all concrete solids and relevant + utility classes, for usage of direct object persistency. +- Implemented changes to support CLHEP-2.0.X for explicit usage of the + CLHEP/HepGeom namespaces for CLHEP types. + +07-Nov-2005, G.Cosmo (geom-specific-V07-01-06) +- G4Ellipsoid: replaced call to hypot(x,y) with std::sqrt(x*x+y*y) + for porting to ISO standard. + +02-Nov-2005, G.Cosmo (geom-specific-V07-01-05) +- G4Polyhedra, G4Polycone: + o Protected case of generic construct for visualization. + o Introduced explicit flag and method IsGeneric() to identify the kind + of constructor used. + +29-Sep-2005, G.Cosmo (geom-specific-V07-01-04) +- Fix in G4EllipticalCone methods DistanceToIn() and DistanceToOut(). + Added unit test for it (by D.Anninos). +- Coworks with tag "greps-V07-01-02". + +10-Aug-2005, G.Cosmo (geom-specific-V07-01-03) +- Introduced new solid G4EllipticalCone, a full cone with elliptical base + that can be cut in Z (by D.Anninos). + Coworks with tag "greps-V07-01-02". + +08-Aug-2005, D.Anninos (geom-specific-V07-01-02) +- Added GetPointOnSurface() for all solids except twisted ones. + The method returns a random point according to a quasi-uniform + distribution along the surface. + +18-Jul-2005, G.Cosmo (geom-specific-V07-01-01) +- Fixed compilation warning on WIN32-VC for G4VSurface.cc. +- Not including G4Tet. + +06-Jul-2005, G.Cosmo (geom-specific-V07-01-00) +- Added new shape G4Ellipsoid. Coworks with tag "greps-V07-01-00". + Contribution of G.Horton-Smith and G.Guerrieri. + Code cleanup, and added default arguments for cuts, added first + implementation of unit test. +- Corrected unit tests for twisted-box/trap. +- Not including G4Tet. + +15-Jun-2005, J.Apostolakis +- Introduced new solid G4Tet, contribution of M.H.Mendenhall + and R.A.Weller, Vanderbilt University, USA. + 29-Apr-2005, O.Link (geom-specific-V07-00-04) - G4TwistedSurface: fixed bug in GetAreaCode() affecting G4TwistedTubs. diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.hh b/source/geometry/solids/specific/include/G4ClippablePolygon.hh index dd7039da02..42a3cb84ee 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.hh +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.hh @@ -22,7 +22,7 @@ // // // $Id: G4ClippablePolygon.hh,v 1.9 2003/11/03 18:39:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.icc b/source/geometry/solids/specific/include/G4ClippablePolygon.icc index 2f0572c864..555e7f893b 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.icc +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.icc @@ -22,7 +22,7 @@ // // // $Id: G4ClippablePolygon.icc,v 1.3 2001/07/11 10:00:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4Ellipsoid.hh b/source/geometry/solids/specific/include/G4Ellipsoid.hh new file mode 100644 index 0000000000..b70da0afe8 --- /dev/null +++ b/source/geometry/solids/specific/include/G4Ellipsoid.hh @@ -0,0 +1,132 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ellipsoid.hh,v 1.9 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// G4Ellipsoid +// +// Class description: +// +// A G4Ellipsoid is an ellipsoidal solid, optionally cut at a given z. +// +// Member Data: +// +// xSemiAxis semi-axis, x +// ySemiAxis semi-axis, y +// zSemiAxis semi-axis, z +// zBottomCut lower cut plane level, z (solid lies above this plane) +// zTopCut upper cut plane level, z (solid lies below this plane) + +// History: +// ------- +// 10.11.1999 G.Horton-Smith (Caltech, USA) - First implementation +// 10.02.2005 G.Guerrieri (INFN Genova, Italy) - Revision +// -------------------------------------------------------------------- +#ifndef G4Ellipsoid_HH +#define G4Ellipsoid_HH + +#include "G4VSolid.hh" + +class G4Ellipsoid : public G4VSolid +{ + public: // with description + + G4Ellipsoid(const G4String& pName, + G4double pxSemiAxis, + G4double pySemiAxis, + G4double pzSemiAxis, + G4double pzBottomCut=0, + G4double pzTopCut=0); + + virtual ~G4Ellipsoid(); + + // Access functions + + inline G4double GetSemiAxisMax (G4int i) const; + inline G4double GetZBottomCut() const; + inline G4double GetZTopCut() const; + inline void SetSemiAxis (G4double x, G4double y, G4double z); + inline void SetZCuts (G4double newzBottomCut, G4double newzTopCut); + inline G4double GetCubicVolume(); + + // Solid standard methods + + G4bool CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax) const; + EInside Inside(const G4ThreeVector& p) const; + G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + G4double DistanceToIn(const G4ThreeVector& p, + const G4ThreeVector& v) const; + G4double DistanceToIn(const G4ThreeVector& p) const; + G4double DistanceToOut(const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm=G4bool(false), + G4bool *validNorm=0, + G4ThreeVector *n=0) const; + G4double DistanceToOut(const G4ThreeVector& p) const; + + G4GeometryType GetEntityType() const; + + std::ostream& StreamInfo(std::ostream& os) const; + + G4ThreeVector GetPointOnSurface() const; + + // Visualisation functions + + G4Polyhedron* GetPolyhedron () const; + void DescribeYourselfTo(G4VGraphicsScene& scene) const; + G4VisExtent GetExtent() const; + G4Polyhedron* CreatePolyhedron() const; + G4NURBS* CreateNURBS() const; + + public: // without description + + G4Ellipsoid(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + + protected: // without description + + G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform& pT, + G4int& noPV) const; + + mutable G4Polyhedron* fpPolyhedron; + + private: + + G4double fCubicVolume; + G4double xSemiAxis, ySemiAxis, zSemiAxis, + semiAxisMax, zBottomCut, zTopCut; +}; + +#include "G4Ellipsoid.icc" + +#endif diff --git a/source/geometry/solids/specific/include/G4Ellipsoid.icc b/source/geometry/solids/specific/include/G4Ellipsoid.icc new file mode 100644 index 0000000000..61f4609058 --- /dev/null +++ b/source/geometry/solids/specific/include/G4Ellipsoid.icc @@ -0,0 +1,91 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Ellipsoid.icc,v 1.3 2005/07/04 13:32:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4Ellipsoid.icc +// +// Implementation of inline methods of G4Ellipsoid +// -------------------------------------------------------------------- + +G4double G4Ellipsoid::GetSemiAxisMax (G4int i) const +{ + return (i==0) ? xSemiAxis + : (i==1) ? ySemiAxis + : zSemiAxis; +} + +G4double G4Ellipsoid::GetZBottomCut() const +{ + return zBottomCut; +} + +G4double G4Ellipsoid::GetZTopCut() const +{ + return zTopCut; +} + +void G4Ellipsoid::SetSemiAxis (G4double newxSemiAxis, + G4double newySemiAxis, + G4double newzSemiAxis) +{ + xSemiAxis= newxSemiAxis; ySemiAxis= newySemiAxis; zSemiAxis= newzSemiAxis; + semiAxisMax = xSemiAxis > ySemiAxis ? xSemiAxis : ySemiAxis; + if (zSemiAxis > semiAxisMax) { semiAxisMax= zSemiAxis; } + if (zBottomCut < -zSemiAxis) { zBottomCut = -zSemiAxis; } + if (zTopCut > +zSemiAxis) { zTopCut = +zSemiAxis; } +} + +void G4Ellipsoid::SetZCuts (G4double newzBottomCut, G4double newzTopCut) +{ + zBottomCut = newzBottomCut; + zTopCut = newzTopCut; + if (zBottomCut < -zSemiAxis) { zBottomCut = -zSemiAxis; } + if (zTopCut > +zSemiAxis) { zTopCut = +zSemiAxis; } +} + +inline +G4double G4Ellipsoid::GetCubicVolume() +{ + if(fCubicVolume != 0 ) {;} + else + { + if ((zTopCut > +zSemiAxis && zBottomCut < -zSemiAxis) + || (zTopCut == 0 && zBottomCut == 0) ) + { + fCubicVolume = (4./3.)*pi*xSemiAxis*ySemiAxis*zSemiAxis; + } + else + { + fCubicVolume = pi*xSemiAxis*ySemiAxis + * ((zTopCut-std::pow(zTopCut,3.)/(3.*sqr(zSemiAxis))) + - (zBottomCut-std::pow(zBottomCut,3.)/(3.*sqr(zSemiAxis)))); + } + } + return fCubicVolume; +} diff --git a/source/geometry/solids/specific/include/G4EllipticalCone.hh b/source/geometry/solids/specific/include/G4EllipticalCone.hh new file mode 100644 index 0000000000..250be47646 --- /dev/null +++ b/source/geometry/solids/specific/include/G4EllipticalCone.hh @@ -0,0 +1,146 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EllipticalCone.hh,v 1.5 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// G4EllipticalCone +// +// Class description: +// +// G4EllipticalCone is a full cone with elliptical base which can be cut in Z. +// +// Member Data: +// +// xSemiAxis semi-axis, x +// ySemiAxis semi-axis, y +// zheight height, z +// zTopCut upper cut plane level, z +// +// The height in Z corresponds to where the elliptical cone hits the +// Z-axis if it had no Z cut. Also the cone is centered at zero having a +// base at zTopCut and another at -zTopCut. The semi-major axes at the Z=0 +// plane are given by xSemiAxis*zheight and ySemiAxis*zheight so that the +// curved surface of our cone satisfies the equation: +// +// *************************************************************************** +// * * +// * (x/xSemiAxis)^2 + (y/ySemiAxis)^2 = (zheight - z)^2 * +// * * +// *************************************************************************** +// +// Author: +// Dionysios Anninos, 8.9.2005 +// +// -------------------------------------------------------------------- +#ifndef G4EllipticalCone_HH +#define G4EllipticalCone_HH + +#include "G4VSolid.hh" + +class G4EllipticalCone : public G4VSolid +{ + public: // with description + + G4EllipticalCone(const G4String& pName, + G4double pxSemiAxis, + G4double pySemiAxis, + G4double zMax, + G4double pzTopCut); + + virtual ~G4EllipticalCone(); + + // Access functions + // + inline G4double GetSemiAxisMax () const; + inline G4double GetZTopCut() const; + inline void SetSemiAxis (G4double x, G4double y, G4double z); + inline void SetZCut (G4double newzTopCut); + inline G4double GetCubicVolume(); + + // Solid standard methods + // + G4bool CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax) const; + + EInside Inside(const G4ThreeVector& p) const; + + G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + + G4double DistanceToIn(const G4ThreeVector& p, + const G4ThreeVector& v) const; + + G4double DistanceToIn(const G4ThreeVector& p) const; + + G4double DistanceToOut(const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm=G4bool(false), + G4bool *validNorm=0, + G4ThreeVector *n=0) const; + + G4double DistanceToOut(const G4ThreeVector& p) const; + + G4GeometryType GetEntityType() const; + + G4ThreeVector GetPointOnSurface() const; + + std::ostream& StreamInfo(std::ostream& os) const; + + // Visualisation functions + // + G4Polyhedron* GetPolyhedron () const; + void DescribeYourselfTo(G4VGraphicsScene& scene) const; + G4VisExtent GetExtent() const; + G4Polyhedron* CreatePolyhedron() const; + G4NURBS* CreateNURBS() const; + + public: // without description + + G4EllipticalCone(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + + protected: // without description + + G4ThreeVectorList* CreateRotatedVertices(const G4AffineTransform& pT, + G4int& noPV) const; + + mutable G4Polyhedron* fpPolyhedron; + + private: + + G4double fCubicVolume; + G4double xSemiAxis, ySemiAxis, zheight, + semiAxisMax, zTopCut; +}; + +#include "G4EllipticalCone.icc" + +#endif diff --git a/source/geometry/solids/specific/include/G4EllipticalCone.icc b/source/geometry/solids/specific/include/G4EllipticalCone.icc new file mode 100644 index 0000000000..d0e46e6e8c --- /dev/null +++ b/source/geometry/solids/specific/include/G4EllipticalCone.icc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4EllipticalCone.icc,v 1.3 2005/08/16 13:27:33 danninos Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 inline definitions file +// +// G4EllipticalCone.icc +// +// Implementation of inline methods of G4EllipticalCone +// -------------------------------------------------------------------- +// Author: Dionysios Anninos +// -------------------------------------------------------------------- + +G4double G4EllipticalCone::GetSemiAxisMax () const +{ + return ySemiAxis > xSemiAxis ? ySemiAxis : xSemiAxis; +} + +G4double G4EllipticalCone::GetZTopCut() const +{ + return zTopCut; +} + +void G4EllipticalCone::SetSemiAxis (G4double newxSemiAxis, + G4double newySemiAxis, + G4double newzMax) +{ + xSemiAxis = newxSemiAxis; + ySemiAxis = newySemiAxis; + zheight = newzMax; + semiAxisMax = xSemiAxis > ySemiAxis ? xSemiAxis : ySemiAxis; + if (zTopCut > +zheight) { zTopCut = +zheight; } +} + +void G4EllipticalCone::SetZCut (G4double newzTopCut) +{ + zTopCut = newzTopCut; + if (zTopCut > +zheight) { zTopCut = +zheight; } +} + +inline +G4double G4EllipticalCone::GetCubicVolume() +{ + if(fCubicVolume != 0 ) {;} + else + { + if (zTopCut > +zheight ) + { + fCubicVolume = (8./3.)*pi*xSemiAxis*ySemiAxis*zheight*zheight*zheight; + } + else + { + fCubicVolume = pi*xSemiAxis*ySemiAxis* + (2./3.*std::pow(zTopCut,3.)+2.*sqr(zheight)*zTopCut); + } + } + return fCubicVolume; +} diff --git a/source/geometry/solids/specific/include/G4EllipticalTube.hh b/source/geometry/solids/specific/include/G4EllipticalTube.hh index 9b146545e0..169aa8b6fa 100644 --- a/source/geometry/solids/specific/include/G4EllipticalTube.hh +++ b/source/geometry/solids/specific/include/G4EllipticalTube.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EllipticalTube.hh,v 1.13 2004/10/10 10:39:11 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EllipticalTube.hh,v 1.16 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -88,12 +88,14 @@ class G4EllipticalTube : public G4VSolid G4double GetCubicVolume(); + G4ThreeVector GetPointOnSurface() const; + // Visualisation methods G4Polyhedron* CreatePolyhedron() const; + G4Polyhedron* GetPolyhedron () const; void DescribeYourselfTo( G4VGraphicsScene& scene ) const; G4VisExtent GetExtent() const; - virtual G4Polyhedron* GetPolyhedron () const; // Accessors @@ -105,6 +107,13 @@ class G4EllipticalTube : public G4VSolid inline void SetDy( const G4double newDy ); inline void SetDz( const G4double newDz ); + public: // without description + + G4EllipticalTube(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // without description G4double dx, dy, dz; diff --git a/source/geometry/solids/specific/include/G4EllipticalTube.icc b/source/geometry/solids/specific/include/G4EllipticalTube.icc index cd07f8b621..600a66124c 100644 --- a/source/geometry/solids/specific/include/G4EllipticalTube.icc +++ b/source/geometry/solids/specific/include/G4EllipticalTube.icc @@ -22,7 +22,7 @@ // // // $Id: G4EllipticalTube.icc,v 1.3 2004/10/10 10:39:16 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4EnclosingCylinder.hh b/source/geometry/solids/specific/include/G4EnclosingCylinder.hh index 61382d5191..b7ab7aef25 100644 --- a/source/geometry/solids/specific/include/G4EnclosingCylinder.hh +++ b/source/geometry/solids/specific/include/G4EnclosingCylinder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnclosingCylinder.hh,v 1.6 2003/11/03 18:39:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EnclosingCylinder.hh,v 1.7 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -52,34 +52,41 @@ class G4EnclosingCylinder { public: // with description - G4EnclosingCylinder( const G4ReduciblePolygon *rz, - G4bool phiIsOpen, - G4double startPhi, G4double totalPhi ); - ~G4EnclosingCylinder(); + G4EnclosingCylinder( const G4ReduciblePolygon *rz, + G4bool phiIsOpen, + G4double startPhi, G4double totalPhi ); + ~G4EnclosingCylinder(); - G4bool MustBeOutside( const G4ThreeVector &p ) const; - // Decide very rapidly if the point is outside the cylinder. - // If one is not certain, return false. + G4bool MustBeOutside( const G4ThreeVector &p ) const; + // Decide very rapidly if the point is outside the cylinder. + // If one is not certain, return false. - G4bool ShouldMiss( const G4ThreeVector &p, const G4ThreeVector &v ) const; - // Decide very rapidly if the trajectory is going to miss the cylinder. - // If one is not sure, return false. + G4bool ShouldMiss( const G4ThreeVector &p, const G4ThreeVector &v ) const; + // Decide very rapidly if the trajectory is going to miss the cylinder. + // If one is not sure, return false. + + public: // without description + + G4EnclosingCylinder(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. protected: - G4double radius; // radius of our cylinder - G4double zLo, zHi; // z extent + G4double radius; // radius of our cylinder + G4double zLo, zHi; // z extent - G4bool phiIsOpen; // true if there is a phi segment - G4double startPhi, // for isPhiOpen==true, starting of phi segment - totalPhi; // for isPhiOpen==true, size of phi segment + G4bool phiIsOpen; // true if there is a phi segment + G4double startPhi, // for isPhiOpen==true, starting of phi segment + totalPhi; // for isPhiOpen==true, size of phi segment - G4double rx1, ry1, - dx1, dy1; - G4double rx2, ry2, - dx2, dy2; + G4double rx1, ry1, + dx1, dy1; + G4double rx2, ry2, + dx2, dy2; - G4bool concave; // true, if x/y cross section is concave + G4bool concave; // true, if x/y cross section is concave }; diff --git a/source/geometry/solids/specific/include/G4Hype.hh b/source/geometry/solids/specific/include/G4Hype.hh index f6e05876b9..ae9e941edb 100644 --- a/source/geometry/solids/specific/include/G4Hype.hh +++ b/source/geometry/solids/specific/include/G4Hype.hh @@ -21,9 +21,9 @@ // ******************************************************************** // // -// $Id: G4Hype.hh,v 1.9 2004/10/10 10:39:19 johna Exp $ +// $Id: G4Hype.hh,v 1.13 2005/11/17 16:59:23 link Exp $ // $Original: G4Hype.hh,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -34,54 +34,24 @@ // // Class description: // -// This class implements in G4 the volume equivalent to the -// HYPE volume in Geant 3.21, i.e. a tube with hyperbolic profile. +// This class implements a tube with hyperbolic profile. // -// For further informations, please read G4Hype.history and G4Hype.doc. -// -// An hyperbolic volume with curved sides parallel to the z-axis. -// The Hype has a specified half-length along the z axis, about which -// it is centred, and a given minimum and maximum radius. +// It describes an hyperbolic volume with curved sides parallel to +// the z-axis. The solid has a specified half-length along the z axis, +// about which it is centered, and a given minimum and maximum radius. // A minimum radius of 0 signifies a filled Hype (with hyperbolical // inner surface). To have a filled Hype the user must specify // inner radius = 0 AND inner stereo angle = 0. // // The inner and outer hyperbolical surfaces can have different // stereo angles. A stereo angle of 0 gives a cylindrical surface. -// -// Member functions: -// -// As inherited from G4VSolid, -// -// G4Hype(const G4String& pName -// const G4double innerRadius -// const G4double outerRadius -// const G4double innerStereo -// const G4double outerStereo -// const G4double halfLenZ ) -// -// Construct an hype with the given name and dimensions. -// The provided angles are in radians. -// -// -// Protected: -// -// G4ThreeVectorList* -// CreateRotatedVertices(const G4AffineTransform& pTransform) const -// -// Create the List of transformed vertices in the format required -// for G4VSolid::ClipCrossSection and ClipBetweenSections. // Authors: // Ernesto Lamanna (Ernesto.Lamanna@roma1.infn.it) & // Francesco Safai Tehrani (Francesco.SafaiTehrani@roma1.infn.it) // Rome, INFN & University of Rome "La Sapienza", 9 June 1998. // -// History: -// Updated Feb 2000 D.C. Williams -// // -------------------------------------------------------------------- - #ifndef G4HYPE_HH #define G4HYPE_HH @@ -95,12 +65,12 @@ class G4Hype : public G4VSolid { public: // with description - G4Hype(const G4String &pName, - G4double newInnerRadius, - G4double newOuterRadius, - G4double newInnerStereo, - G4double newOuterStereo, - G4double newHalfLenZ); + G4Hype(const G4String& pName, + G4double newInnerRadius, + G4double newOuterRadius, + G4double newInnerStereo, + G4double newOuterStereo, + G4double newHalfLenZ); virtual ~G4Hype(); @@ -139,15 +109,24 @@ class G4Hype : public G4VSolid G4GeometryType GetEntityType() const; std::ostream& StreamInfo(std::ostream& os) const; - + G4double GetCubicVolume(); + G4ThreeVector GetPointOnSurface() const; + void DescribeYourselfTo (G4VGraphicsScene& scene) const; G4VisExtent GetExtent () const; G4Polyhedron* CreatePolyhedron () const; G4NURBS* CreateNURBS () const; G4Polyhedron* GetPolyhedron () const; + public: // without description + + G4Hype(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // without description inline G4bool InnerSurfaceExists() const; @@ -202,7 +181,12 @@ class G4Hype : public G4VSolid private: + G4double asinh(G4double arg); + + private: + G4double fCubicVolume; + mutable G4Polyhedron* fpPolyhedron; }; diff --git a/source/geometry/solids/specific/include/G4Hype.icc b/source/geometry/solids/specific/include/G4Hype.icc index 66a4ad7e8f..55f2a5d016 100644 --- a/source/geometry/solids/specific/include/G4Hype.icc +++ b/source/geometry/solids/specific/include/G4Hype.icc @@ -22,7 +22,7 @@ // // // $Id: G4Hype.icc,v 1.6 2004/12/02 09:31:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4IntersectingCone.hh b/source/geometry/solids/specific/include/G4IntersectingCone.hh index 833b219de5..172663dac4 100644 --- a/source/geometry/solids/specific/include/G4IntersectingCone.hh +++ b/source/geometry/solids/specific/include/G4IntersectingCone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntersectingCone.hh,v 1.7 2004/12/02 09:31:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IntersectingCone.hh,v 1.8 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -50,34 +50,42 @@ class G4IntersectingCone { public: - G4IntersectingCone( const G4double r[2], const G4double z[2] ); - virtual ~G4IntersectingCone(); + G4IntersectingCone( const G4double r[2], const G4double z[2] ); + virtual ~G4IntersectingCone(); - G4int LineHitsCone( const G4ThreeVector &p, const G4ThreeVector &v, - G4double *s1, G4double *s2 ); + G4int LineHitsCone( const G4ThreeVector &p, const G4ThreeVector &v, + G4double *s1, G4double *s2 ); - G4bool HitOn( const G4double r, const G4double z ); - - inline G4double RLo() const { return rLo; } - inline G4double RHi() const { return rHi; } - inline G4double ZLo() const { return zLo; } - inline G4double ZHi() const { return zHi; } + G4bool HitOn( const G4double r, const G4double z ); + inline G4double RLo() const { return rLo; } + inline G4double RHi() const { return rHi; } + inline G4double ZLo() const { return zLo; } + inline G4double ZHi() const { return zHi; } + public: // without description + + G4IntersectingCone(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + + protected: - G4double zLo, zHi, // Z bounds of side - rLo, rHi; // R bounds of side + G4double zLo, zHi, // Z bounds of side + rLo, rHi; // R bounds of side - G4bool type1; // True if cone is type 1 (std::abs(z1-z2)>std::abs(r1-r2)) - G4double A, B; // Cone radius parameter: - // type 1: r = A + B*z - // type 2: z = A + B*r + G4bool type1; // True if cone is type 1 + // (std::abs(z1-z2)>std::abs(r1-r2)) + G4double A, B; // Cone radius parameter: + // type 1: r = A + B*z + // type 2: z = A + B*r - G4int LineHitsCone1( const G4ThreeVector &p, const G4ThreeVector &v, - G4double *s1, G4double *s2 ); - G4int LineHitsCone2( const G4ThreeVector &p, const G4ThreeVector &v, - G4double *s1, G4double *s2 ); + G4int LineHitsCone1( const G4ThreeVector &p, const G4ThreeVector &v, + G4double *s1, G4double *s2 ); + G4int LineHitsCone2( const G4ThreeVector &p, const G4ThreeVector &v, + G4double *s1, G4double *s2 ); }; #endif diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.hh b/source/geometry/solids/specific/include/G4PolyPhiFace.hh index 83040e69f2..6498f84478 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.hh +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyPhiFace.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PolyPhiFace.hh,v 1.8 2005/11/30 10:33:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -57,106 +57,113 @@ class G4ReduciblePolygon; -typedef struct +struct G4PolyPhiFaceVertex { G4double x, y, r, z; // position G4double rNorm, zNorm; // r/z normal G4ThreeVector norm3D; // 3D normal -} G4PolyPhiFaceVertex; +}; -typedef struct +struct G4PolyPhiFaceEdge { + G4PolyPhiFaceEdge(): v0(0), v1(0) {} G4PolyPhiFaceVertex *v0, *v1; // Corners G4double tr, tz, // Unit vector along edge length; // Length of edge G4ThreeVector norm3D; // 3D edge normal vector -} G4PolyPhiFaceEdge; +}; class G4PolyPhiFace : public G4VCSGface { public: // with description - G4PolyPhiFace( const G4ReduciblePolygon *rz, - G4double phi, G4double deltaPhi, G4double phiOther ); - // Constructor. - // Points r,z should be supplied in clockwise order in r,z. - // For example: - // [1]---------[2] ^ R - // | | | - // | | +--> z - // [0]---------[3] + G4PolyPhiFace( const G4ReduciblePolygon *rz, + G4double phi, G4double deltaPhi, G4double phiOther ); + // Constructor. + // Points r,z should be supplied in clockwise order in r,z. + // For example: + // [1]---------[2] ^ R + // | | | + // | | +--> z + // [0]---------[3] - virtual ~G4PolyPhiFace(); - // Destructor. Removes edges and corners. + virtual ~G4PolyPhiFace(); + // Destructor. Removes edges and corners. - G4PolyPhiFace( const G4PolyPhiFace &source ); - G4PolyPhiFace& operator=( const G4PolyPhiFace &source ); - // Copy constructor and assgnment operator. + G4PolyPhiFace( const G4PolyPhiFace &source ); + G4PolyPhiFace& operator=( const G4PolyPhiFace &source ); + // Copy constructor and assgnment operator. - G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &allBehind ); + G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, + G4bool outgoing, G4double surfTolerance, + G4double &distance, G4double &distFromSurface, + G4ThreeVector &normal, G4bool &allBehind ); - G4double Distance( const G4ThreeVector &p, G4bool outgoing ); + G4double Distance( const G4ThreeVector &p, G4bool outgoing ); - EInside Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ); + EInside Inside( const G4ThreeVector &p, G4double tolerance, + G4double *bestDistance ); - G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); + G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); - G4double Extent( const G4ThreeVector axis ); + G4double Extent( const G4ThreeVector axis ); - void CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &tranform, - G4SolidExtentList &extentList ); + void CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &tranform, + G4SolidExtentList &extentList ); - inline G4VCSGface *Clone(); - // Allocates on the heap a clone of this face. + inline G4VCSGface *Clone(); + // Allocates on the heap a clone of this face. public: // without description - void Diagnose( G4VSolid *solid ); - // Throw an exception if something is found inconsistent with - // the solid. For debugging purposes only + G4PolyPhiFace(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + void Diagnose( G4VSolid *solid ); + // Throw an exception if something is found inconsistent with + // the solid. For debugging purposes only protected: - G4PolyPhiFaceEdge *edges; // The edges of the face - G4PolyPhiFaceVertex *corners; // And the corners - G4int numEdges; // Number of edges - G4ThreeVector normal; // Normal unit vector - G4ThreeVector radial; // Unit vector along radial direction - G4ThreeVector surface; // Point on surface - G4double rMin, rMax, // Extent in r - zMin, zMax; // Extent in z - G4bool allBehind; // True if the polycone/polyhedra - // is behind the place of this face + G4bool InsideEdgesExact( G4double r, G4double z, G4double normSign, + const G4ThreeVector &p, const G4ThreeVector &v ); + // Decide if the point in r,z is inside the edges of our face, + // **but** do so consistently with other faces. - G4bool InsideEdgesExact( G4double r, G4double z, G4double normSign, - const G4ThreeVector &p, const G4ThreeVector &v ); - // Decide if the point in r,z is inside the edges of our face, - // **but** do so consistently with other faces. + G4bool InsideEdges( G4double r, G4double z ); + G4bool InsideEdges( G4double r, G4double z, G4double *distRZ2, + G4PolyPhiFaceVertex **base3Dnorm=0, + G4ThreeVector **head3Dnorm=0 ); + // Decide if the point in r,z is inside the edges of our face. - G4bool InsideEdges( G4double r, G4double z ); - G4bool InsideEdges( G4double r, G4double z, G4double *distRZ2, - G4PolyPhiFaceVertex **base3Dnorm=0, - G4ThreeVector **head3Dnorm=0 ); - // Decide if the point in r,z is inside the edges of our face. + inline G4double ExactZOrder( G4double z, + G4double qx, G4double qy, G4double qz, + const G4ThreeVector &v, + G4double normSign, + const G4PolyPhiFaceVertex *vert ) const; + // Decide precisely whether a trajectory passes to the left, right, + // or exactly passes through the z position of a vertex point in face. - inline G4double ExactZOrder( G4double z, - G4double qx, G4double qy, G4double qz, - const G4ThreeVector &v, - G4double normSign, - const G4PolyPhiFaceVertex *vert ) const; - // Decide precisely whether a trajectory passes to the left, right, - // or exactly passes through the z position of a vertex point in face. + void CopyStuff( const G4PolyPhiFace &source ); - void CopyStuff( const G4PolyPhiFace &source ); + protected: + + G4int numEdges; // Number of edges + G4PolyPhiFaceEdge *edges; // The edges of the face + G4PolyPhiFaceVertex *corners; // And the corners + G4ThreeVector normal; // Normal unit vector + G4ThreeVector radial; // Unit vector along radial direction + G4ThreeVector surface; // Point on surface + G4double rMin, rMax, // Extent in r + zMin, zMax; // Extent in z + G4bool allBehind; // True if the polycone/polyhedra + // is behind the place of this face }; #include "G4PolyPhiFace.icc" diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.icc b/source/geometry/solids/specific/include/G4PolyPhiFace.icc index 01c187a55c..2d3ad75534 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.icc +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.icc @@ -22,7 +22,7 @@ // // // $Id: G4PolyPhiFace.icc,v 1.5 2004/12/02 09:31:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polycone.hh b/source/geometry/solids/specific/include/G4Polycone.hh index e543dea01d..d5dbdb3a9b 100644 --- a/source/geometry/solids/specific/include/G4Polycone.hh +++ b/source/geometry/solids/specific/include/G4Polycone.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polycone.hh,v 1.12 2003/11/05 17:41:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polycone.hh,v 1.18 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -82,7 +82,8 @@ class G4PolyconeHistorical class G4Polycone : public G4VCSGfaceted { - public: // with description + + public: // with description G4Polycone( const G4String& name, G4double phiStart, // initial phi starting angle @@ -109,6 +110,8 @@ class G4Polycone : public G4VCSGfaceted EInside Inside( const G4ThreeVector &p ) const; G4double DistanceToIn( const G4ThreeVector &p, const G4ThreeVector &v ) const; G4double DistanceToIn( const G4ThreeVector &p ) const; + + G4ThreeVector GetPointOnSurface() const; void ComputeDimensions( G4VPVParameterisation* p, const G4int n, @@ -128,18 +131,55 @@ class G4Polycone : public G4VCSGfaceted inline G4double GetStartPhi() const; inline G4double GetEndPhi() const; inline G4bool IsOpen() const; + inline G4bool IsGeneric() const; inline G4int GetNumRZCorner() const; inline G4PolyconeSideRZ GetCorner(G4int index) const; inline G4PolyconeHistorical* GetOriginalParameters() const; inline void SetOriginalParameters(G4PolyconeHistorical* pars); - protected: // without description + public: // without description + + G4Polycone(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + + protected: // without description + + // Generic initializer, called by all constructors + + inline void SetOriginalParameters(); + + void Create( G4double phiStart, // initial phi starting angle + G4double phiTotal, // total phi angle + G4ReduciblePolygon *rz ); // r/z coordinate of these corners + + void CopyStuff( const G4Polycone &source ); + + // Methods for random point generation + + G4ThreeVector GetPointOnCone(G4double fRmin1, G4double fRmax1, + G4double fRmin2, G4double fRmax2, + G4double zOne, G4double zTwo, + G4double& totArea) const; + + G4ThreeVector GetPointOnTubs(G4double fRMin, G4double fRMax, + G4double zOne, G4double zTwo, + G4double& totArea) const; + + G4ThreeVector GetPointOnCut(G4double fRMin1, G4double fRMax1, + G4double fRMin2, G4double fRMax2, + G4double zOne, G4double zTwo, + G4double& totArea) const; + + protected: // without description // Here are our parameters G4double startPhi; // Starting phi value (0 < phiStart < 2pi) G4double endPhi; // end phi value (0 < endPhi-phiStart < 2pi) G4bool phiIsOpen; // true if there is a phi segment + G4bool genericPcon; // true if created through the 2nd generic constructor G4int numCorner; // number RZ points G4PolyconeSideRZ *corners; // corner r,z points G4PolyconeHistorical *original_parameters; // original input parameters @@ -147,14 +187,7 @@ class G4Polycone : public G4VCSGfaceted // Our quick test G4EnclosingCylinder *enclosingCylinder; - - // Generic initializer, called by all constructors - - void Create( G4double phiStart, // initial phi starting angle - G4double phiTotal, // total phi angle - G4ReduciblePolygon *rz ); // r/z coordinate of these corners - - void CopyStuff( const G4Polycone &source ); + }; #include "G4Polycone.icc" diff --git a/source/geometry/solids/specific/include/G4Polycone.icc b/source/geometry/solids/specific/include/G4Polycone.icc index 5ce5c44ed2..ce968e6638 100644 --- a/source/geometry/solids/specific/include/G4Polycone.icc +++ b/source/geometry/solids/specific/include/G4Polycone.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polycone.icc,v 1.6 2004/10/10 10:39:27 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polycone.icc,v 1.9 2005/11/02 15:59:14 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -44,11 +44,18 @@ G4double G4Polycone::GetEndPhi() const return endPhi; } -inline G4bool G4Polycone::IsOpen() const +inline +G4bool G4Polycone::IsOpen() const { return phiIsOpen; } +inline +G4bool G4Polycone::IsGeneric() const +{ + return genericPcon; +} + inline G4int G4Polycone::GetNumRZCorner() const { @@ -77,3 +84,27 @@ void G4Polycone::SetOriginalParameters(G4PolyconeHistorical* pars) fCubicVolume = 0.; fpPolyhedron = 0; } + +inline +void G4Polycone::SetOriginalParameters() +{ + G4int numPlanes = (G4int)numCorner/2; + + original_parameters = new G4PolyconeHistorical; + + original_parameters->Z_values = new G4double[numPlanes]; + original_parameters->Rmin = new G4double[numPlanes]; + original_parameters->Rmax = new G4double[numPlanes]; + + for(G4int j=0; j < numPlanes; j++) + { + original_parameters->Z_values[j] = corners[numPlanes+j].z; + original_parameters->Rmax[j] = corners[numPlanes+j].r; + original_parameters->Rmin[j] = corners[numPlanes-1-j].r; + } + + original_parameters->Start_angle = startPhi; + original_parameters->Opening_angle = endPhi-startPhi; + original_parameters->Num_z_planes = numPlanes; +} + diff --git a/source/geometry/solids/specific/include/G4PolyconeSide.hh b/source/geometry/solids/specific/include/G4PolyconeSide.hh index 3829797bbd..843d634941 100644 --- a/source/geometry/solids/specific/include/G4PolyconeSide.hh +++ b/source/geometry/solids/specific/include/G4PolyconeSide.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyconeSide.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PolyconeSide.hh,v 1.7 2005/11/17 14:08:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -57,82 +57,89 @@ class G4IntersectingCone; -typedef struct +struct G4PolyconeSideRZ { G4double r, z; // start of vector -} G4PolyconeSideRZ; +}; class G4PolyconeSide : public G4VCSGface { public: - G4PolyconeSide( const G4PolyconeSideRZ *prevRZ, - const G4PolyconeSideRZ *tail, - const G4PolyconeSideRZ *head, - const G4PolyconeSideRZ *nextRZ, - G4double phiStart, G4double deltaPhi, - G4bool phiIsOpen, G4bool isAllBehind=false ); - virtual ~G4PolyconeSide(); + G4PolyconeSide( const G4PolyconeSideRZ *prevRZ, + const G4PolyconeSideRZ *tail, + const G4PolyconeSideRZ *head, + const G4PolyconeSideRZ *nextRZ, + G4double phiStart, G4double deltaPhi, + G4bool phiIsOpen, G4bool isAllBehind=false ); + virtual ~G4PolyconeSide(); - G4PolyconeSide( const G4PolyconeSide &source ); - G4PolyconeSide& operator=( const G4PolyconeSide &source ); + G4PolyconeSide( const G4PolyconeSide &source ); + G4PolyconeSide& operator=( const G4PolyconeSide &source ); - G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &isAllBehind ); + G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, + G4bool outgoing, G4double surfTolerance, + G4double &distance, G4double &distFromSurface, + G4ThreeVector &normal, G4bool &isAllBehind ); - G4double Distance( const G4ThreeVector &p, G4bool outgoing ); + G4double Distance( const G4ThreeVector &p, G4bool outgoing ); - EInside Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ); + EInside Inside( const G4ThreeVector &p, G4double tolerance, + G4double *bestDistance ); - G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); + G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); - G4double Extent( const G4ThreeVector axis ); + G4double Extent( const G4ThreeVector axis ); - void CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &tranform, - G4SolidExtentList &extentList ); + void CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &tranform, + G4SolidExtentList &extentList ); - G4VCSGface *Clone() { return new G4PolyconeSide( *this ); } + G4VCSGface *Clone() { return new G4PolyconeSide( *this ); } + public: // without description + + G4PolyconeSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: - G4double r[2], z[2]; // r, z parameters, in specified order - G4double startPhi, // Start phi (0 to 2pi), if phiIsOpen - deltaPhi; // Delta phi (0 to 2pi), if phiIsOpen - G4bool phiIsOpen; // True if there is a phi slice - G4bool allBehind; // True if the entire solid is "behind" this face + G4double r[2], z[2]; // r, z parameters, in specified order + G4double startPhi, // Start phi (0 to 2pi), if phiIsOpen + deltaPhi; // Delta phi (0 to 2pi), if phiIsOpen + G4bool phiIsOpen; // True if there is a phi slice + G4bool allBehind; // True if the entire solid is "behind" this face - G4IntersectingCone *cone; // Our intersecting utility class + G4IntersectingCone *cone; // Our intersecting utility class - G4double rNorm, zNorm; // Normal to surface in r,z space - G4double rS, zS; // Unit vector along surface in r,z space - G4double length; // Length of face in r,z space - G4double prevRS, - prevZS; // Unit vector along previous polyconeSide - G4double nextRS, - nextZS; // Unit vector along next polyconeSide + G4double rNorm, zNorm; // Normal to surface in r,z space + G4double rS, zS; // Unit vector along surface in r,z space + G4double length; // Length of face in r,z space + G4double prevRS, + prevZS; // Unit vector along previous polyconeSide + G4double nextRS, + nextZS; // Unit vector along next polyconeSide - G4double rNormEdge[2], - zNormEdge[2]; // Normal to edges + G4double rNormEdge[2], + zNormEdge[2]; // Normal to edges - G4ThreeVector *corners; // The coordinates of the corners (if phiIsOpen) + G4ThreeVector *corners; // The coordinates of the corners (if phiIsOpen) - G4double DistanceAway( const G4ThreeVector &p, G4bool opposite, - G4double &distOutside2, G4double *rzNorm=0 ); + G4double DistanceAway( const G4ThreeVector &p, G4bool opposite, + G4double &distOutside2, G4double *rzNorm=0 ); - G4bool PointOnCone( const G4ThreeVector &hit, G4double normSign, - const G4ThreeVector &p, - const G4ThreeVector &v, G4ThreeVector &normal ); + G4bool PointOnCone( const G4ThreeVector &hit, G4double normSign, + const G4ThreeVector &p, + const G4ThreeVector &v, G4ThreeVector &normal ); - void CopyStuff( const G4PolyconeSide &source ); + void CopyStuff( const G4PolyconeSide &source ); - static void FindLineIntersect( G4double x1, G4double y1, - G4double tx1, G4double ty1, - G4double x2, G4double y2, + static void FindLineIntersect( G4double x1, G4double y1, + G4double tx1, G4double ty1, + G4double x2, G4double y2, G4double tx2, G4double ty2, G4double &x, G4double &y ); }; diff --git a/source/geometry/solids/specific/include/G4Polyhedra.hh b/source/geometry/solids/specific/include/G4Polyhedra.hh index 46fd956914..3839dcbc87 100644 --- a/source/geometry/solids/specific/include/G4Polyhedra.hh +++ b/source/geometry/solids/specific/include/G4Polyhedra.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyhedra.hh,v 1.11 2003/11/05 17:41:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polyhedra.hh,v 1.15 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -85,7 +85,7 @@ class G4PolyhedraHistorical class G4Polyhedra : public G4VCSGfaceted { - public: // with description + public: // with description G4Polyhedra( const G4String& name, G4double phiStart, // initial phi starting angle @@ -122,6 +122,8 @@ class G4Polyhedra : public G4VCSGfaceted G4GeometryType GetEntityType() const; + G4ThreeVector GetPointOnSurface() const; + std::ostream& StreamInfo( std::ostream& os ) const; G4Polyhedron* CreatePolyhedron() const; @@ -135,29 +137,25 @@ class G4Polyhedra : public G4VCSGfaceted inline G4double GetStartPhi() const; inline G4double GetEndPhi() const; inline G4bool IsOpen() const; + inline G4bool IsGeneric() const; inline G4int GetNumRZCorner() const; inline G4PolyhedraSideRZ GetCorner( const G4int index ) const; inline G4PolyhedraHistorical* GetOriginalParameters() const; inline void SetOriginalParameters(G4PolyhedraHistorical* pars); - protected: // without description + public: // without description - // Here are our parameters + G4Polyhedra(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. - G4int numSide; // Number of sides - G4double startPhi; // Starting phi value (0 < phiStart < 2pi) - G4double endPhi; // end phi value (0 < endPhi-phiStart < 2pi) - G4bool phiIsOpen; // true if there is a phi segment - G4int numCorner; // number RZ points - G4PolyhedraSideRZ *corners; // our corners - G4PolyhedraHistorical *original_parameters; // original input parameters - - // Our quick test - - G4EnclosingCylinder *enclosingCylinder; + protected: // without description // Generic initializer, call by all constructors + inline void SetOriginalParameters(); + void Create( G4double phiStart, // initial phi starting angle G4double phiTotal, // total phi angle G4int numSide, // number sides @@ -165,6 +163,28 @@ class G4Polyhedra : public G4VCSGfaceted void CopyStuff( const G4Polyhedra &source ); void DeleteStuff(); + + // Methods for generation of random points on surface + + G4ThreeVector GetPointOnPlane(G4ThreeVector p0, G4ThreeVector p1, + G4ThreeVector p2, G4ThreeVector p3) const; + G4ThreeVector GetPointOnTriangle(G4ThreeVector p0, G4ThreeVector p1, + G4ThreeVector p2) const; + G4ThreeVector GetPointOnSurfaceCorners() const; + + protected: // without description + + G4int numSide; // Number of sides + G4double startPhi; // Starting phi value (0 < phiStart < 2pi) + G4double endPhi; // end phi value (0 < endPhi-phiStart < 2pi) + G4bool phiIsOpen; // true if there is a phi segment + G4bool genericPgon; // true if created through the 2nd generic constructor + G4int numCorner; // number RZ points + G4PolyhedraSideRZ *corners; // our corners + G4PolyhedraHistorical *original_parameters; // original input parameters + + G4EnclosingCylinder *enclosingCylinder; + }; #include "G4Polyhedra.icc" diff --git a/source/geometry/solids/specific/include/G4Polyhedra.icc b/source/geometry/solids/specific/include/G4Polyhedra.icc index 761b4eb671..fdd2bfcb72 100644 --- a/source/geometry/solids/specific/include/G4Polyhedra.icc +++ b/source/geometry/solids/specific/include/G4Polyhedra.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyhedra.icc,v 1.6 2004/10/10 10:39:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polyhedra.icc,v 1.9 2005/11/02 15:59:14 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -56,6 +56,12 @@ G4bool G4Polyhedra::IsOpen() const return phiIsOpen; } +inline +G4bool G4Polyhedra::IsGeneric() const +{ + return genericPgon; +} + inline G4int G4Polyhedra::GetNumRZCorner() const { @@ -84,3 +90,28 @@ void G4Polyhedra::SetOriginalParameters(G4PolyhedraHistorical* pars) fCubicVolume = 0.; fpPolyhedron = 0; } + +inline +void G4Polyhedra::SetOriginalParameters() +{ + G4int numPlanes = (G4int) numCorner/2; + + original_parameters = new G4PolyhedraHistorical; + + original_parameters->Z_values = new G4double[numPlanes]; + original_parameters->Rmin = new G4double[numPlanes]; + original_parameters->Rmax = new G4double[numPlanes]; + + for(G4int j=0; j < numPlanes; j++) + { + original_parameters->Z_values[j] = corners[numPlanes+j].z; + original_parameters->Rmax[j] = corners[numPlanes+j].r; + original_parameters->Rmin[j] = corners[numPlanes-1-j].r; + } + + original_parameters->Start_angle = startPhi; + original_parameters->Opening_angle = endPhi-startPhi; + original_parameters->Num_z_planes = numPlanes; + original_parameters->numSide = numSide; + +} diff --git a/source/geometry/solids/specific/include/G4PolyhedraSide.hh b/source/geometry/solids/specific/include/G4PolyhedraSide.hh index fe14c75a12..b46abed84e 100644 --- a/source/geometry/solids/specific/include/G4PolyhedraSide.hh +++ b/source/geometry/solids/specific/include/G4PolyhedraSide.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyhedraSide.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PolyhedraSide.hh,v 1.7 2005/11/17 14:08:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -58,115 +58,124 @@ class G4IntersectingCone; -typedef struct +struct G4PolyhedraSideRZ { G4double r, z; // start of vector -} G4PolyhedraSideRZ; +}; class G4PolyhedraSide : public G4VCSGface { public: - G4PolyhedraSide( const G4PolyhedraSideRZ *prevRZ, - const G4PolyhedraSideRZ *tail, - const G4PolyhedraSideRZ *head, - const G4PolyhedraSideRZ *nextRZ, - G4int numSide, - G4double phiStart, G4double phiTotal, - G4bool phiIsOpen, G4bool isAllBehind=false ); - virtual ~G4PolyhedraSide(); + G4PolyhedraSide( const G4PolyhedraSideRZ *prevRZ, + const G4PolyhedraSideRZ *tail, + const G4PolyhedraSideRZ *head, + const G4PolyhedraSideRZ *nextRZ, + G4int numSide, + G4double phiStart, G4double phiTotal, + G4bool phiIsOpen, G4bool isAllBehind=false ); + virtual ~G4PolyhedraSide(); - G4PolyhedraSide( const G4PolyhedraSide &source ); - G4PolyhedraSide& operator=( const G4PolyhedraSide &source ); + G4PolyhedraSide( const G4PolyhedraSide &source ); + G4PolyhedraSide& operator=( const G4PolyhedraSide &source ); - G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, - G4bool outgoing, G4double surfTolerance, - G4double &distance, G4double &distFromSurface, - G4ThreeVector &normal, G4bool &allBehind ); + G4bool Intersect( const G4ThreeVector &p, const G4ThreeVector &v, + G4bool outgoing, G4double surfTolerance, + G4double &distance, G4double &distFromSurface, + G4ThreeVector &normal, G4bool &allBehind ); - G4double Distance( const G4ThreeVector &p, G4bool outgoing ); + G4double Distance( const G4ThreeVector &p, G4bool outgoing ); - EInside Inside( const G4ThreeVector &p, G4double tolerance, - G4double *bestDistance ); + EInside Inside( const G4ThreeVector &p, G4double tolerance, + G4double *bestDistance ); - G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); + G4ThreeVector Normal( const G4ThreeVector &p, G4double *bestDistance ); - G4double Extent( const G4ThreeVector axis ); + G4double Extent( const G4ThreeVector axis ); - void CalculateExtent( const EAxis axis, - const G4VoxelLimits &voxelLimit, - const G4AffineTransform &tranform, - G4SolidExtentList &extentList ); + void CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &tranform, + G4SolidExtentList &extentList ); - G4VCSGface *Clone() { return new G4PolyhedraSide( *this ); } + G4VCSGface *Clone() { return new G4PolyhedraSide( *this ); } + public: // without description + + G4PolyhedraSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: - // - // A couple internal data structures - // - struct sG4PolyhedraSideVec; // Secret recipe for allowing - friend struct sG4PolyhedraSideVec; // protected nested structures + // + // A couple internal data structures + // + struct sG4PolyhedraSideVec; // Secret recipe for allowing + friend struct sG4PolyhedraSideVec; // protected nested structures - typedef struct sG4PolyhedraSideEdge - { - G4ThreeVector normal; // Unit normal to this edge - G4ThreeVector corner[2]; // The two corners of this phi edge - G4ThreeVector cornNorm[2]; // The normals of these corners - } G4PolyhedraSideEdge; + typedef struct sG4PolyhedraSideEdge + { + G4ThreeVector normal; // Unit normal to this edge + G4ThreeVector corner[2]; // The two corners of this phi edge + G4ThreeVector cornNorm[2]; // The normals of these corners + } G4PolyhedraSideEdge; - typedef struct sG4PolyhedraSideVec - { - G4ThreeVector normal, // Normal (point out of the shape) - center, // Point in center of side - surfPhi, // Unit vector on surface pointing along phi - surfRZ; // Unit vector on surface pointing along R/Z - G4PolyhedraSideEdge *edges[2]; // The phi boundary edges to this side - // [0]=low phi [1]=high phi - G4ThreeVector edgeNorm[2]; // RZ edge normals [i] at {r[i],z[i]} - } G4PolyhedraSideVec; + typedef struct sG4PolyhedraSideVec + { + G4ThreeVector normal, // Normal (point out of the shape) + center, // Point in center of side + surfPhi, // Unit vector on surface pointing along phi + surfRZ; // Unit vector on surface pointing along R/Z + G4PolyhedraSideEdge *edges[2]; // The phi boundary edges to this side + // [0]=low phi [1]=high phi + G4ThreeVector edgeNorm[2]; // RZ edge normals [i] at {r[i],z[i]} + } G4PolyhedraSideVec; - G4int numSide; // Number sides - G4double r[2], z[2]; // r, z parameters, in specified order - G4double startPhi, // Start phi (0 to 2pi), if phiIsOpen - deltaPhi, // Delta phi (0 to 2pi), if phiIsOpen - endPhi; // End phi (>startPhi), if phiIsOpen - G4bool phiIsOpen; // True if there is a phi slice - G4bool allBehind; // True if the entire solid is "behind" this face - - G4IntersectingCone *cone; // Our intersecting cone - - G4PolyhedraSideVec *vecs; // Vector set for each facet of our face - G4PolyhedraSideEdge *edges; // The edges belong to vecs - G4double lenRZ, // RZ length of each side - lenPhi[2]; // Phi dimensions of each side - G4double edgeNorm; // Normal in RZ/Phi space to each side - - G4bool IntersectSidePlane( const G4ThreeVector &p, const G4ThreeVector &v, - const G4PolyhedraSideVec vec, - G4double normSign, - G4double surfTolerance, - G4double &distance, - G4double &distFromSurface ); + G4bool IntersectSidePlane( const G4ThreeVector &p, const G4ThreeVector &v, + const G4PolyhedraSideVec vec, + G4double normSign, + G4double surfTolerance, + G4double &distance, + G4double &distFromSurface ); - G4int LineHitsSegments( const G4ThreeVector &p, - const G4ThreeVector &v, - G4int *i1, G4int *i2 ); + G4int LineHitsSegments( const G4ThreeVector &p, + const G4ThreeVector &v, + G4int *i1, G4int *i2 ); - G4int ClosestPhiSegment( G4double phi ); + G4int ClosestPhiSegment( G4double phi ); - G4int PhiSegment( G4double phi ); + G4int PhiSegment( G4double phi ); - G4double DistanceToOneSide( const G4ThreeVector &p, - const G4PolyhedraSideVec &vec, - G4double *normDist ); + G4double DistanceToOneSide( const G4ThreeVector &p, + const G4PolyhedraSideVec &vec, + G4double *normDist ); - G4double DistanceAway( const G4ThreeVector &p, - const G4PolyhedraSideVec &vec, - G4double *normDist ); + G4double DistanceAway( const G4ThreeVector &p, + const G4PolyhedraSideVec &vec, + G4double *normDist ); - void CopyStuff( const G4PolyhedraSide &source ); + void CopyStuff( const G4PolyhedraSide &source ); + + protected: + + G4int numSide; // Number sides + G4double r[2], z[2]; // r, z parameters, in specified order + G4double startPhi, // Start phi (0 to 2pi), if phiIsOpen + deltaPhi, // Delta phi (0 to 2pi), if phiIsOpen + endPhi; // End phi (>startPhi), if phiIsOpen + G4bool phiIsOpen; // True if there is a phi slice + G4bool allBehind; // True if the entire solid is "behind" this face + + G4IntersectingCone *cone; // Our intersecting cone + + G4PolyhedraSideVec *vecs; // Vector set for each facet of our face + G4PolyhedraSideEdge *edges; // The edges belong to vecs + G4double lenRZ, // RZ length of each side + lenPhi[2]; // Phi dimensions of each side + G4double edgeNorm; // Normal in RZ/Phi space to each side }; #endif diff --git a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh index 1635d3180f..9cadaa1aa4 100644 --- a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh +++ b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReduciblePolygon.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ReduciblePolygon.hh,v 1.8 2005/11/17 14:08:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -61,87 +61,95 @@ class G4ReduciblePolygon friend class G4ReduciblePolygonIterator; public: - // - // Creator: via simple a/b arrays - // - G4ReduciblePolygon( const G4double a[], const G4double b[], G4int n ); + // + // Creator: via simple a/b arrays + // + G4ReduciblePolygon( const G4double a[], const G4double b[], G4int n ); - // - // Creator: a special version for G4Polygon and G4Polycone - // that takes two a points at planes of b - // (where a==r and b==z for the GEANT3 classic PCON and PGON) - // - G4ReduciblePolygon( const G4double rmin[], const G4double rmax[], - const G4double z[], G4int n ); + // + // Creator: a special version for G4Polygon and G4Polycone + // that takes two a points at planes of b + // (where a==r and b==z for the GEANT3 classic PCON and PGON) + // + G4ReduciblePolygon( const G4double rmin[], const G4double rmax[], + const G4double z[], G4int n ); - virtual ~G4ReduciblePolygon(); + virtual ~G4ReduciblePolygon(); - // - // Queries - // - inline G4int NumVertices() const { return numVertices; } + // + // Queries + // + inline G4int NumVertices() const { return numVertices; } - inline G4double Amin() const { return aMin; } - inline G4double Amax() const { return aMax; } - inline G4double Bmin() const { return bMin; } - inline G4double Bmax() const { return bMax; } + inline G4double Amin() const { return aMin; } + inline G4double Amax() const { return aMax; } + inline G4double Bmin() const { return bMin; } + inline G4double Bmax() const { return bMax; } - void CopyVertices( G4double a[], G4double b[] ) const; + void CopyVertices( G4double a[], G4double b[] ) const; - // - // Manipulations - // - void ScaleA( G4double scale ); - void ScaleB( G4double scale ); + // + // Manipulations + // + void ScaleA( G4double scale ); + void ScaleB( G4double scale ); - G4bool RemoveDuplicateVertices( G4double tolerance ); - G4bool RemoveRedundantVertices( G4double tolerance ); + G4bool RemoveDuplicateVertices( G4double tolerance ); + G4bool RemoveRedundantVertices( G4double tolerance ); - void ReverseOrder(); + void ReverseOrder(); - // - // Tests - // - G4double Area(); - G4bool CrossesItself( G4double tolerance ); - G4bool BisectedBy( G4double a1, G4double b1, - G4double a2, G4double b2, G4double tolerance ); + // + // Tests + // + G4double Area(); + G4bool CrossesItself( G4double tolerance ); + G4bool BisectedBy( G4double a1, G4double b1, + G4double a2, G4double b2, G4double tolerance ); - void Print(); // Debugging only + void Print(); // Debugging only + public: // without description + + G4ReduciblePolygon(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: - void Create( const G4double a[], const G4double b[], G4int n ); + void Create( const G4double a[], const G4double b[], G4int n ); - void CalculateMaxMin(); + void CalculateMaxMin(); - // - // Below are member values that are *always* kept up to date (please!) - // - G4double aMin, aMax, bMin, bMax; - G4int numVertices; + // + // Below are member values that are *always* kept up to date (please!) + // + G4double aMin, aMax, bMin, bMax; + G4int numVertices; - // - // A subclass which holds the vertices in a single-linked list - // - // Yeah, call me an old-fashioned c hacker, but I cannot make - // myself use the rogue tools for this trivial list. - // - struct ABVertex; - friend struct ABVertex; - struct ABVertex - { - G4double a, b; - ABVertex *next; - }; + // + // A subclass which holds the vertices in a single-linked list + // + // Yeah, call me an old-fashioned c hacker, but I cannot make + // myself use the rogue tools for this trivial list. + // + struct ABVertex; // Secret recipe for allowing + friend struct ABVertex; // protected nested structures + struct ABVertex + { + ABVertex() { next = 0; } + G4double a, b; + ABVertex *next; + }; - ABVertex *vertexHead; + ABVertex *vertexHead; - private: + private: - G4ReduciblePolygon(const G4ReduciblePolygon&); - G4ReduciblePolygon& operator=(const G4ReduciblePolygon&); - // Private copy constructor and assignment operator. + G4ReduciblePolygon(const G4ReduciblePolygon&); + G4ReduciblePolygon& operator=(const G4ReduciblePolygon&); + // Private copy constructor and assignment operator. }; @@ -153,21 +161,21 @@ class G4ReduciblePolygonIterator { public: - G4ReduciblePolygonIterator( const G4ReduciblePolygon *theSubject ) - { subject = theSubject; current=0; } + G4ReduciblePolygonIterator( const G4ReduciblePolygon *theSubject ) + { subject = theSubject; current=0; } - void Begin() { current = subject->vertexHead; } - G4bool Next() { if (current) current=current->next; return Valid(); } + void Begin() { current = subject->vertexHead; } + G4bool Next() { if (current) current=current->next; return Valid(); } - G4bool Valid() const { return current!=0; } + G4bool Valid() const { return current!=0; } - G4double GetA() const { return current->a; } - G4double GetB() const { return current->b; } + G4double GetA() const { return current->a; } + G4double GetB() const { return current->b; } protected: - const G4ReduciblePolygon *subject; // Who are we iterating over - G4ReduciblePolygon::ABVertex *current; // Current vertex + const G4ReduciblePolygon *subject; // Who are we iterating over + G4ReduciblePolygon::ABVertex *current; // Current vertex }; #endif diff --git a/source/geometry/solids/specific/include/G4SolidExtentList.hh b/source/geometry/solids/specific/include/G4SolidExtentList.hh index d8c9b79554..33af90c948 100644 --- a/source/geometry/solids/specific/include/G4SolidExtentList.hh +++ b/source/geometry/solids/specific/include/G4SolidExtentList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SolidExtentList.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Tet.hh b/source/geometry/solids/specific/include/G4Tet.hh new file mode 100644 index 0000000000..52b8e563b5 --- /dev/null +++ b/source/geometry/solids/specific/include/G4Tet.hh @@ -0,0 +1,154 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * Vanderbilt University Free Electron Laser Center * +// * Vanderbilt University, Nashville, TN, USA * +// * Development supported by: * +// * United States MFEL program under grant FA9550-04-1-0045 * +// * and NASA under contract number NNG04CT05P. * +// * Written by Marcus H. Mendenhall and Robert A. Weller. * +// * * +// * Contributed to the Geant4 Core, January, 2005. * +// * * +// ******************************************************************** +// +// +// $Id: G4Tet.hh,v 1.5 2005/11/10 15:59:19 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// G4Tet +// +// Class description: +// +// A G4Tet is a tetrahedrasolid. +// + +// History: +// ------- +// 03.09.2004 - M.H.Mendenhall & R.A.Weller (Vanderbilt University, USA) +// 10.02.2005 - D.Anninos (CERN) - Added GetPointOnSurface() method. +// -------------------------------------------------------------------- +#ifndef G4TET_HH +#define G4TET_HH + +#include "G4VSolid.hh" + +class G4Tet : public G4VSolid +{ + + public: // with description + + G4Tet(const G4String& pName, + G4ThreeVector anchor, + G4ThreeVector p2, + G4ThreeVector p3, + G4ThreeVector p4, + G4bool *degeneracyFlag=0); + + virtual ~G4Tet(); + + void ComputeDimensions(G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep); + + G4bool CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax) const; + // Methods for solid + + EInside Inside(const G4ThreeVector& p) const; + + G4ThreeVector SurfaceNormal( const G4ThreeVector& p) const; + + G4double DistanceToIn(const G4ThreeVector& p, const G4ThreeVector& v) const; + + G4double DistanceToIn(const G4ThreeVector& p) const; + + G4double DistanceToOut(const G4ThreeVector& p, const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, G4ThreeVector *n=0) const; + + G4double DistanceToOut(const G4ThreeVector& p) const; + + G4double GetCubicVolume() {return fCubicVolume;} + + G4GeometryType GetEntityType() const; + + std::ostream& StreamInfo(std::ostream& os) const; + + G4ThreeVector GetPointOnSurface() const; + + // Functions for visualization + + void DescribeYourselfTo (G4VGraphicsScene& scene) const; + G4VisExtent GetExtent () const; + G4Polyhedron* CreatePolyhedron () const; + G4NURBS* CreateNURBS () const; + G4Polyhedron* GetPolyhedron () const; + + public: // without description + + G4Tet(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + + const char* CVSHeaderVers() + { return "$Id: G4Tet.hh,v 1.5 2005/11/10 15:59:19 allison Exp $"; } + const char* CVSFileVers() + { return CVSVers; } + void PrintWarnings(G4bool flag) + { warningFlag=flag; } + static G4bool CheckDegeneracy(G4ThreeVector anchor, + G4ThreeVector p2, + G4ThreeVector p3, + G4ThreeVector p4); + + protected: // with description + + G4ThreeVectorList* + CreateRotatedVertices(const G4AffineTransform& pTransform) const; + // Create the List of transformed vertices in the format required + // for G4VSolid:: ClipCrossSection and ClipBetweenSections. + + private: + + G4double fCubicVolume; + + mutable G4Polyhedron* fpPolyhedron; + + G4ThreeVector GetPointOnFace(G4ThreeVector p1, G4ThreeVector p2, + G4ThreeVector p3, G4double& area) const; + static const char CVSVers[]; + + private: + + G4ThreeVector fAnchor, fP2, fP3, fP4, fMiddle; + G4ThreeVector fNormal123, fNormal142, fNormal134, fNormal234; + + G4bool warningFlag; + + G4double fCdotN123, fCdotN142, fCdotN134, fCdotN234; + G4double fXMin, fXMax, fYMin, fYMax, fZMin, fZMax; + G4double fDx, fDy, fDz, fTol, fMaxSize; +}; + +#endif diff --git a/source/geometry/solids/specific/include/G4TwistBoxSide.hh b/source/geometry/solids/specific/include/G4TwistBoxSide.hh new file mode 100644 index 0000000000..47ef3d0943 --- /dev/null +++ b/source/geometry/solids/specific/include/G4TwistBoxSide.hh @@ -0,0 +1,229 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TwistBoxSide.hh,v 1.4 2005/12/06 18:21:15 gcosmo Exp $ +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// +// G4TwistBoxSide +// +// Class description: +// +// Class describing a twisted boundary surface for a trapezoid. + +// Author: +// +// 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) +// +// -------------------------------------------------------------------- +#ifndef __G4TWISTBOXSIDE__ +#define __G4TWISTBOXSIDE__ + +#include "G4VTwistSurface.hh" + +#include + +class G4TwistBoxSide : public G4VTwistSurface +{ + public: // with description + + G4TwistBoxSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // by polar and azimutal angles + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ); + + virtual ~G4TwistBoxSide(); + + virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, + G4bool isGlobal = false) ; + + virtual G4int DistanceToSurface(const G4ThreeVector &gp, + const G4ThreeVector &gv, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[], + G4bool isvalid[], + EValidate validate = kValidateWithTol); + + virtual G4int DistanceToSurface(const G4ThreeVector &gp, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[]); + + public: // without description + + G4TwistBoxSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + + private: + + virtual G4int GetAreaCode(const G4ThreeVector &xx, + G4bool withTol = true); + virtual void SetCorners(); + virtual void SetBoundaries(); + + void GetPhiUAtX(G4ThreeVector p, G4double &phi, G4double &u); + G4ThreeVector ProjectPoint(const G4ThreeVector &p, + G4bool isglobal = false); + + virtual G4ThreeVector SurfacePoint(G4double phi, G4double u, + G4bool isGlobal = false); + virtual G4double GetBoundaryMin(G4double phi); + virtual G4double GetBoundaryMax(G4double phi); + virtual G4double GetSurfaceArea(); + virtual void GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ); + + inline G4double GetValueA(G4double phi); + inline G4double GetValueB(G4double phi); + inline G4ThreeVector NormAng(G4double phi, G4double u); + inline G4double Xcoef(G4double u,G4double phi); + // To calculate the w(u) function + + private: + + G4double fTheta; + G4double fPhi ; + + G4double fDy1; + G4double fDx1; + G4double fDx2; + + G4double fDy2; + G4double fDx3; + G4double fDx4; + + G4double fDz; // Half-length along the z axis + + G4double fAlph; + G4double fTAlph; // std::tan(fAlph) + + G4double fPhiTwist; // twist angle ( dphi in surface equation) + + G4double fAngleSide; + + G4double fdeltaX; + G4double fdeltaY; + + G4double fDx4plus2; // fDx4 + fDx2 == a2/2 + a1/2 + G4double fDx4minus2; // fDx4 - fDx2 - + G4double fDx3plus1; // fDx3 + fDx1 == d2/2 + d1/2 + G4double fDx3minus1; // fDx3 - fDx1 - + G4double fDy2plus1; // fDy2 + fDy1 == b2/2 + b1/2 + G4double fDy2minus1; // fDy2 - fDy1 - + G4double fa1md1; // 2 fDx2 - 2 fDx1 == a1 - d1 + G4double fa2md2; // 2 fDx4 - 2 fDx3 +}; + +//======================================================== +// inline functions +//======================================================== + +inline +G4double G4TwistBoxSide::GetValueA(G4double phi) +{ + return ( fDx4plus2 + fDx4minus2 * ( 2 * phi ) / fPhiTwist ) ; +} + + +inline +G4double G4TwistBoxSide::GetValueB(G4double phi) +{ + return ( fDy2plus1 + fDy2minus1 * ( 2 * phi ) / fPhiTwist ) ; +} + +inline +G4double G4TwistBoxSide::Xcoef(G4double u, G4double phi) +{ + + return GetValueA(phi)/2. + u*fTAlph ; + +} + +inline G4ThreeVector +G4TwistBoxSide::SurfacePoint( G4double phi, G4double u, G4bool isGlobal ) +{ + // function to calculate a point on the surface, given by parameters phi,u + + G4ThreeVector SurfPoint ( Xcoef(u,phi) * std::cos(phi) + - u * std::sin(phi) + fdeltaX*phi/fPhiTwist, + Xcoef(u,phi) * std::sin(phi) + + u * std::cos(phi) + fdeltaY*phi/fPhiTwist, + 2*fDz*phi/fPhiTwist ); + + if (isGlobal) { return (fRot * SurfPoint + fTrans); } + return SurfPoint; +} + +inline +G4double G4TwistBoxSide::GetBoundaryMin(G4double phi) +{ + return -0.5*GetValueB(phi) ; +} + +inline +G4double G4TwistBoxSide::GetBoundaryMax(G4double phi) +{ + return 0.5*GetValueB(phi) ; +} + +inline +G4double G4TwistBoxSide::GetSurfaceArea() +{ + return (fDz*(std::sqrt(16*fDy1*fDy1 + + (fa1md1 + 4*fDy1*fTAlph)*(fa1md1 + 4*fDy1*fTAlph)) + + std::sqrt(16*fDy1*fDy1 + (fa2md2 + 4*fDy1*fTAlph) + * (fa2md2 + 4*fDy1*fTAlph))))/2. ; +} + +inline +G4ThreeVector G4TwistBoxSide::NormAng( G4double phi, G4double u ) +{ + // function to calculate the norm at a given point on the surface + // replace a1-d1 + + G4ThreeVector nvec( 4*fDz*(std::cos(phi) + fTAlph*std::sin(phi)) , + 4*fDz*(-(fTAlph*std::cos(phi)) + std::sin(phi)), + (fDx2 + fDx4)*fPhiTwist*fTAlph + + 2*fDx4minus2*(-1 + fTAlph*phi) + + 2*fPhiTwist*(1 + fTAlph*fTAlph)*u + - 2*(fdeltaX - fdeltaY*fTAlph)*std::cos(phi) + - 2*(fdeltaY + fdeltaX*fTAlph)*std::sin(phi) ); + return nvec.unit(); +} + +#endif diff --git a/source/geometry/solids/specific/include/G4TwistTrapAlphaSide.hh b/source/geometry/solids/specific/include/G4TwistTrapAlphaSide.hh new file mode 100644 index 0000000000..0569f9de1e --- /dev/null +++ b/source/geometry/solids/specific/include/G4TwistTrapAlphaSide.hh @@ -0,0 +1,246 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4TwistTrapAlphaSide.hh,v 1.4 2005/12/06 18:21:15 gcosmo Exp $ +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// +// G4TwistTrapAlphaSide +// +// Class description: +// +// Class describing a twisted boundary surface for a trapezoid. + +// Author: +// +// 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) +// +// -------------------------------------------------------------------- +#ifndef __G4TWISTTRAPALPHASIDE__ +#define __G4TWISTTRAPALPHASIDE__ + +#include "G4VTwistSurface.hh" + +#include + +class G4TwistTrapAlphaSide : public G4VTwistSurface +{ + public: // with description + + G4TwistTrapAlphaSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // by polar and azimutal angles + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ); + + virtual ~G4TwistTrapAlphaSide(); + + virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, + G4bool isGlobal = false) ; + + virtual G4int DistanceToSurface(const G4ThreeVector &gp, + const G4ThreeVector &gv, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[], + G4bool isvalid[], + EValidate validate = kValidateWithTol); + + virtual G4int DistanceToSurface(const G4ThreeVector &gp, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[]); + + + public: // without description + + G4TwistTrapAlphaSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + + private: + + virtual G4int GetAreaCode(const G4ThreeVector &xx, + G4bool withTol = true); + virtual void SetCorners(); + virtual void SetBoundaries(); + + void GetPhiUAtX(G4ThreeVector p, G4double &phi, G4double &u); + G4ThreeVector ProjectPoint(const G4ThreeVector &p, + G4bool isglobal = false); + + virtual G4ThreeVector SurfacePoint(G4double phi, G4double u, + G4bool isGlobal = false ); + virtual G4double GetBoundaryMin(G4double phi); + virtual G4double GetBoundaryMax(G4double phi); + virtual G4double GetSurfaceArea(); + virtual void GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ); + + inline G4ThreeVector NormAng(G4double phi, G4double u); + inline G4double GetValueA(G4double phi); + inline G4double GetValueB(G4double phi); + inline G4double GetValueD(G4double phi); + inline G4double Xcoef(G4double u,G4double phi); + // To calculate the w(u) function + + private: + + G4double fTheta; + G4double fPhi ; + + G4double fDy1; + G4double fDx1; + G4double fDx2; + + G4double fDy2; + G4double fDx3; + G4double fDx4; + + G4double fDz; // Half-length along the z axis + + G4double fAlph; + G4double fTAlph; // std::tan(fAlph) + + G4double fPhiTwist; // twist angle (dphi in surface equation) + + G4double fAngleSide; + + G4double fDx4plus2; // fDx4 + fDx2 == a2/2 + a1/2 + G4double fDx4minus2; // fDx4 - fDx2 - + G4double fDx3plus1; // fDx3 + fDx1 == d2/2 + d1/2 + G4double fDx3minus1; // fDx3 - fDx1 - + G4double fDy2plus1; // fDy2 + fDy1 == b2/2 + b1/2 + G4double fDy2minus1; // fDy2 - fDy1 - + G4double fa1md1; // 2 fDx2 - 2 fDx1 == a1 - d1 + G4double fa2md2; // 2 fDx4 - 2 fDx3 + + G4double fdeltaX; + G4double fdeltaY; +}; + +//======================================================== +// inline functions +//======================================================== + +inline +G4double G4TwistTrapAlphaSide::GetValueA(G4double phi) +{ + return ( fDx4plus2 + fDx4minus2 * ( 2 * phi ) / fPhiTwist ) ; +} + +inline +G4double G4TwistTrapAlphaSide::GetValueD(G4double phi) +{ + return ( fDx3plus1 + fDx3minus1 * ( 2 * phi) / fPhiTwist ) ; +} + +inline +G4double G4TwistTrapAlphaSide::GetValueB(G4double phi) +{ + return ( fDy2plus1 + fDy2minus1 * ( 2 * phi ) / fPhiTwist ) ; +} + + +inline +G4double G4TwistTrapAlphaSide::Xcoef(G4double u, G4double phi) +{ + + return GetValueA(phi)/2. + (GetValueD(phi)-GetValueA(phi))/4. + - u*( ( GetValueD(phi)-GetValueA(phi) )/( 2 * GetValueB(phi) ) - fTAlph ); + +} + +inline G4ThreeVector +G4TwistTrapAlphaSide::SurfacePoint(G4double phi, G4double u , G4bool isGlobal) +{ + // function to calculate a point on the surface, given by parameters phi,u + + G4ThreeVector SurfPoint ( Xcoef(u,phi) * std::cos(phi) + - u * std::sin(phi) + fdeltaX*phi/fPhiTwist, + Xcoef(u,phi) * std::sin(phi) + + u * std::cos(phi) + fdeltaY*phi/fPhiTwist, + 2*fDz*phi/fPhiTwist ); + if (isGlobal) { return (fRot * SurfPoint + fTrans); } + return SurfPoint; +} + +inline +G4double G4TwistTrapAlphaSide::GetBoundaryMin(G4double phi) +{ + return -0.5*GetValueB(phi) ; +} + +inline +G4double G4TwistTrapAlphaSide::GetBoundaryMax(G4double phi) +{ + return 0.5*GetValueB(phi) ; +} + +inline +G4double G4TwistTrapAlphaSide::GetSurfaceArea() +{ + return (fDz*(std::sqrt(16*fDy1*fDy1 + + (fa1md1 + 4*fDy1*fTAlph)*(fa1md1 + 4*fDy1*fTAlph)) + + std::sqrt(16*fDy2*fDy2 + (fa2md2 + 4*fDy2*fTAlph) + * (fa2md2 + 4*fDy2*fTAlph))))/2. ; +} + +inline +G4ThreeVector G4TwistTrapAlphaSide::NormAng( G4double phi, G4double u ) +{ + // function to calculate the norm at a given point on the surface + // replace a1-d1 + + G4ThreeVector nvec ( fDy1* fDz*(4*fDy1*std::cos(phi) + + (fa1md1 + 4*fDy1*fTAlph)*std::sin(phi)), + -(fDy1* fDz*((fa1md1 + 4*fDy1*fTAlph)*std::cos(phi) + - 4*fDy1*std::sin(phi))), + (fDy1*(-8*(fDx3minus1 + fDx4minus2)*fDy1 + + fa1md1*(fDx2 + fDx3plus1 + fDx4)*fPhiTwist + + 4*(fDx2 + fDx3plus1 + fDx4)*fDy1*fPhiTwist + *fTAlph + 2*(fDx3minus1 + fDx4minus2) + *(fa1md1 + 4*fDy1*fTAlph)*phi) + + fPhiTwist*(16*fDy1*fDy1 + + (fa1md1 + 4*fDy1*fTAlph) + *(fa1md1 + 4*fDy1*fTAlph))*u + + 4*fDy1*(fa1md1*fdeltaY - 4*fdeltaX*fDy1 + + 4*fdeltaY*fDy1*fTAlph)* std::cos(phi) + - 4*fDy1*(fa1md1*fdeltaX + 4*fDy1*(fdeltaY + + fdeltaX*fTAlph))*std::sin(phi))/ 8. ) ; + return nvec.unit(); +} + +#endif diff --git a/source/geometry/solids/specific/include/G4FlatTrapSide.hh b/source/geometry/solids/specific/include/G4TwistTrapFlatSide.hh similarity index 53% rename from source/geometry/solids/specific/include/G4FlatTrapSide.hh rename to source/geometry/solids/specific/include/G4TwistTrapFlatSide.hh index c7b67236f2..c3c7206179 100644 --- a/source/geometry/solids/specific/include/G4FlatTrapSide.hh +++ b/source/geometry/solids/specific/include/G4TwistTrapFlatSide.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FlatTrapSide.hh,v 1.4 2005/03/11 16:03:57 link Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistTrapFlatSide.hh,v 1.4 2005/12/06 18:21:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -40,26 +40,26 @@ // 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- -#ifndef __G4FLATTRAPSIDE__ -#define __G4FLATTRAPSIDE__ +#ifndef __G4TWISTTRAPFLATSIDE__ +#define __G4TWISTTRAPFLATSIDE__ -#include "G4VSurface.hh" +#include "G4VTwistSurface.hh" -class G4FlatTrapSide : public G4VSurface +class G4TwistTrapFlatSide : public G4VTwistSurface { public: // with description - G4FlatTrapSide( const G4String& name, - G4double PhiTwist, - G4double pDx1, - G4double pDx2, - G4double pDy, - G4double pDz, - G4double pAlpha, - G4double pPhi, - G4double pTheta, - G4int handedness ); - virtual ~G4FlatTrapSide(); + G4TwistTrapFlatSide( const G4String& name, + G4double PhiTwist, + G4double pDx1, + G4double pDx2, + G4double pDy, + G4double pDz, + G4double pAlpha, + G4double pPhi, + G4double pTheta, + G4int handedness ); + virtual ~G4TwistTrapFlatSide(); virtual G4ThreeVector GetNormal(const G4ThreeVector & /* xx */ , G4bool isGlobal = false); @@ -70,46 +70,90 @@ class G4FlatTrapSide : public G4VSurface G4int areacode[], G4bool isvalid[], EValidate validate = kValidateWithTol); - + virtual G4int DistanceToSurface(const G4ThreeVector &gp, G4ThreeVector gxx[], G4double distance[], G4int areacode[]); - + + + virtual G4ThreeVector SurfacePoint(G4double x, G4double y, + G4bool isGlobal = false); + virtual G4double GetBoundaryMin(G4double u); + virtual G4double GetBoundaryMax(G4double u); + virtual G4double GetSurfaceArea(); + virtual void GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ); + + public: // without description + + G4TwistTrapFlatSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // with description virtual G4int GetAreaCode(const G4ThreeVector &xx, - G4bool withTol = true) ; + G4bool withTol = true); private: virtual void SetCorners(); virtual void SetBoundaries(); - inline double xAxisMax(G4double u, G4double fTanAlpha) const ; + inline double xAxisMax(G4double u, G4double fTanAlpha) const; private: - G4double fDx1 ; - G4double fDx2 ; - G4double fDy ; - G4double fDz ; - G4double fPhiTwist ; - G4double fAlpha ; - G4double fTAlph ; - G4double fPhi ; - G4double fTheta ; - G4double fdeltaX ; - G4double fdeltaY ; - + G4double fDx1; + G4double fDx2; + G4double fDy; + G4double fDz; + G4double fPhiTwist; + G4double fAlpha; + G4double fTAlph; + G4double fPhi; + G4double fTheta; + G4double fdeltaX; + G4double fdeltaY; }; +//======================================================== +// inline functions +//======================================================== inline -G4double G4FlatTrapSide::xAxisMax(G4double u, G4double fTanAlpha) const +G4double G4TwistTrapFlatSide::xAxisMax(G4double u, G4double fTanAlpha) const { - return ( ( fDx2 + fDx1 )/2. + u*(fDx2 - fDx1)/(2.*fDy) - u *fTanAlpha ) ; + return ( ( fDx2 + fDx1 )/2. + u*(fDx2 - fDx1)/(2.*fDy) + u *fTanAlpha ) ; } +inline G4ThreeVector +G4TwistTrapFlatSide::SurfacePoint(G4double x, G4double y, G4bool isGlobal) +{ + G4ThreeVector SurfPoint ( x,y,0); + + if (isGlobal) { return (fRot*SurfPoint + fTrans); } + return SurfPoint; +} + +inline +G4double G4TwistTrapFlatSide::GetBoundaryMin(G4double y ) +{ + return -xAxisMax(y, -fTAlph ) ; +} + +inline +G4double G4TwistTrapFlatSide::GetBoundaryMax(G4double y ) +{ + return xAxisMax(y, fTAlph ) ; +} + +inline +G4double G4TwistTrapFlatSide::GetSurfaceArea() +{ + return 2*(fDx1 + fDx2)*fDy ; +} #endif diff --git a/source/geometry/solids/specific/include/G4TwistedTrapParallelSide.hh b/source/geometry/solids/specific/include/G4TwistTrapParallelSide.hh similarity index 50% rename from source/geometry/solids/specific/include/G4TwistedTrapParallelSide.hh rename to source/geometry/solids/specific/include/G4TwistTrapParallelSide.hh index b9a2a9c517..a04efbbca8 100644 --- a/source/geometry/solids/specific/include/G4TwistedTrapParallelSide.hh +++ b/source/geometry/solids/specific/include/G4TwistTrapParallelSide.hh @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4TwistedTrapParallelSide.hh,v 1.3 2005/03/18 17:11:53 gcosmo Exp $ +// $Id: G4TwistTrapParallelSide.hh,v 1.4 2005/12/06 18:21:15 gcosmo Exp $ // // -------------------------------------------------------------------- // GEANT 4 class header file // // -// G4TwistedTrapParallelSide +// G4TwistTrapParallelSide // // Class description: // @@ -35,36 +35,36 @@ // Author: // -// Oliver Link (Oliver.Link@cern.ch) +// 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- -#ifndef __G4TWISTEDTRAPPARALLELSIDE__ -#define __G4TWISTEDTRAPPARALLELSIDE__ +#ifndef __G4TWISTTRAPPARALLELSIDE__ +#define __G4TWISTTRAPPARALLELSIDE__ -#include "G4VSurface.hh" +#include "G4VTwistSurface.hh" #include -class G4TwistedTrapParallelSide : public G4VSurface +class G4TwistTrapParallelSide : public G4VTwistSurface { public: // with description - G4TwistedTrapParallelSide(const G4String &name, - G4double PhiTwist, // twist angle - G4double pDz, // half z lenght - G4double pTheta, // direction between end planes - G4double pPhi, // defined by polar and azimutal angles. - G4double pDy1, // half y length at -pDz - G4double pDx1, // half x length at -pDz,-pDy - G4double pDx2, // half x length at -pDz,+pDy - G4double pDy2, // half y length at +pDz - G4double pDx3, // half x length at +pDz,-pDy - G4double pDx4, // half x length at +pDz,+pDy - G4double pAlph, // tilt angle at +pDz - G4double AngleSide // parity - ); + G4TwistTrapParallelSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // by polar and azimutal angles + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz + G4double AngleSide // parity + ); - virtual ~G4TwistedTrapParallelSide(); + virtual ~G4TwistTrapParallelSide(); virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, G4bool isGlobal = false) ; @@ -82,7 +82,12 @@ class G4TwistedTrapParallelSide : public G4VSurface G4double distance[], G4int areacode[]); + public: // without description + G4TwistTrapParallelSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. private: @@ -95,12 +100,18 @@ class G4TwistedTrapParallelSide : public G4VSurface G4ThreeVector ProjectPoint(const G4ThreeVector &p, G4bool isglobal = false); - inline G4ThreeVector SurfacePoint(G4double phi, G4double u); + virtual G4ThreeVector SurfacePoint(G4double phi, G4double u, + G4bool isGlobal = false); + virtual G4double GetBoundaryMin(G4double phi); + virtual G4double GetBoundaryMax(G4double phi); + virtual G4double GetSurfaceArea(); + virtual void GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ); + inline G4ThreeVector NormAng(G4double phi, G4double u); - inline G4double Xcoef(G4double u); // to calculate the w(u) function inline G4double GetValueB(G4double phi) ; - inline G4double GetUmin(G4double phi) ; - inline G4double GetUmax(G4double phi) ; + inline G4double Xcoef(G4double u); + // To calculate the w(u) function private: @@ -117,24 +128,26 @@ class G4TwistedTrapParallelSide : public G4VSurface G4double fDz; // Half-length along the z axis - G4double fAlph ; - G4double fTAlph ; // std::tan(fAlph) + G4double fAlph; + G4double fTAlph; // std::tan(fAlph) G4double fPhiTwist; // twist angle ( dphi in surface equation) G4double fAngleSide; - G4double fa1md1 ; // 2 fDx2 - 2 fDx1 == a1 - d1 - G4double fa2md2 ; // 2 fDx4 - 2 fDx3 + G4double fdeltaX; + G4double fdeltaY; - G4double fdeltaX ; - G4double fdeltaY ; + G4double fDx4plus2; // fDx4 + fDx2 == a2/2 + a1/2 + G4double fDx4minus2; // fDx4 - fDx2 - + G4double fDx3plus1; // fDx3 + fDx1 == d2/2 + d1/2 + G4double fDx3minus1; // fDx3 - fDx1 - + G4double fDy2plus1; // fDy2 + fDy1 == b2/2 + b1/2 + G4double fDy2minus1; // fDy2 - fDy1 - + G4double fa1md1; // 2 fDx2 - 2 fDx1 == a1 - d1 + G4double fa2md2; // 2 fDx4 - 2 fDx3 - G4double fDy2plus1 ; // fDy2 + fDy1 == b2/2 + b1/2 - G4double fDy2minus1 ; // fDy2 - fDy1 - - - // temporary - G4double fDy ; + G4double fDy ; // temporary }; @@ -142,62 +155,66 @@ class G4TwistedTrapParallelSide : public G4VSurface // inline functions //======================================================== -inline -G4double G4TwistedTrapParallelSide::GetUmin(G4double phi) -{ - return ( - (2*fDx2*(fPhiTwist - 2*phi) + 2*fDx4*(fPhiTwist + 2*phi) + (2*fDy1*(fPhiTwist - 2*phi) + 2*fDy2*(fPhiTwist + 2*phi))*fTAlph)/(4.*fPhiTwist) ) ; -} - -inline -G4double G4TwistedTrapParallelSide::GetUmax(G4double phi) -{ - return (2*fDx2*(fPhiTwist - 2*phi) + 2*fDx4*(fPhiTwist + 2*phi) - (2*fDy1*(fPhiTwist - 2*phi) + 2*fDy2*(fPhiTwist + 2*phi))*fTAlph)/(4.*fPhiTwist) ; -} inline -G4double G4TwistedTrapParallelSide::GetValueB(G4double phi) +G4double G4TwistTrapParallelSide::GetValueB(G4double phi) { return ( fDy2plus1 + fDy2minus1 * ( 2 * phi ) / fPhiTwist ) ; } - inline -G4double G4TwistedTrapParallelSide::Xcoef(G4double phi) +G4double G4TwistTrapParallelSide::Xcoef(G4double phi) { - return GetValueB(phi)/2. ; - } -inline -G4ThreeVector G4TwistedTrapParallelSide::SurfacePoint( G4double phi, G4double u ) +inline G4ThreeVector +G4TwistTrapParallelSide:: +SurfacePoint( G4double phi, G4double u, G4bool isGlobal ) { // function to calculate a point on the surface, given by parameters phi,u - G4ThreeVector SurfPoint ( ( u + fdeltaX*phi/fPhiTwist ) * std::cos(phi) - - ( Xcoef(phi) + fdeltaY*phi/fPhiTwist ) * std::sin(phi), - ( u + fdeltaX*phi/fPhiTwist ) * std::sin(phi) - + ( Xcoef(phi) + fdeltaY*phi/fPhiTwist ) * std::cos(phi), - 2*fDz*phi/fPhiTwist ); - return SurfPoint ; + G4ThreeVector SurfPoint ( u*std::cos(phi) - Xcoef(phi)*std::sin(phi) + + fdeltaX*phi/fPhiTwist, + u*std::sin(phi) + Xcoef(phi)*std::cos(phi) + + fdeltaY*phi/fPhiTwist, + 2*fDz*phi/fPhiTwist ); + if (isGlobal) { return (fRot * SurfPoint + fTrans); } + return SurfPoint; +} + +inline +G4double G4TwistTrapParallelSide::GetBoundaryMin(G4double phi) +{ + return -(fPhiTwist*(fDx2 + fDx4 - fDy2plus1*fTAlph) + + 2*fDx4minus2*phi - 2*fDy2minus1*fTAlph*phi)/(2.*fPhiTwist) ; } inline -G4ThreeVector G4TwistedTrapParallelSide::NormAng( G4double phi, G4double u ) +G4double G4TwistTrapParallelSide::GetBoundaryMax(G4double phi) +{ + return (fDx2 + fDx4 + fDy2plus1*fTAlph)/ 2. + + ((fDx4minus2 + fDy2minus1*fTAlph)*phi)/fPhiTwist ; +} + +inline +G4double G4TwistTrapParallelSide::GetSurfaceArea() +{ + return 2*fDx4plus2*fDz ; +} + +inline +G4ThreeVector G4TwistTrapParallelSide::NormAng( G4double phi, G4double u ) { // function to calculate the norm at a given point on the surface // replace a1-d1 - G4ThreeVector nvec( - -2*fDz*std::sin(phi), - 2*fDz*std::cos(phi), - fDy1 - fDy2 - fdeltaY - fdeltaX*phi - fPhiTwist*u - ) ; - - + G4ThreeVector nvec(-2*fDz*std::sin(phi) , + 2*fDz*std::cos(phi) , + -(fDy2minus1 + fPhiTwist*u + fdeltaY*std::cos(phi) + -fdeltaX*std::sin(phi))) ; return nvec.unit(); } - #endif diff --git a/source/geometry/solids/specific/include/G4FlatSurface.hh b/source/geometry/solids/specific/include/G4TwistTubsFlatSide.hh similarity index 70% rename from source/geometry/solids/specific/include/G4FlatSurface.hh rename to source/geometry/solids/specific/include/G4TwistTubsFlatSide.hh index d5a293c304..9e8968f314 100644 --- a/source/geometry/solids/specific/include/G4FlatSurface.hh +++ b/source/geometry/solids/specific/include/G4TwistTubsFlatSide.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4FlatSurface.hh,v 1.6 2004/11/13 18:26:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistTubsFlatSide.hh,v 1.4 2005/12/06 18:21:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- // GEANT 4 class header file // // -// G4FlatSurface +// G4TwistTubsFlatSide // // Class description: // @@ -42,16 +42,16 @@ // 13-Nov-2003 - O.Link (Oliver.Link@cern.ch), Integration in Geant4 // from original version in Jupiter-2.5.02 application. // -------------------------------------------------------------------- -#ifndef __G4FLATSURFACE__ -#define __G4FLATSURFACE__ +#ifndef __G4TWISTTUBSFLATSIDE__ +#define __G4TWISTTUBSFLATSIDE__ -#include "G4VSurface.hh" +#include "G4VTwistSurface.hh" -class G4FlatSurface : public G4VSurface +class G4TwistTubsFlatSide : public G4VTwistSurface { public: // with description - G4FlatSurface(const G4String &name, + G4TwistTubsFlatSide(const G4String &name, const G4RotationMatrix &rot, const G4ThreeVector &tlate, const G4ThreeVector &n, @@ -62,7 +62,7 @@ class G4FlatSurface : public G4VSurface G4double axis0max = kInfinity, G4double axis1max = kInfinity ); - G4FlatSurface( const G4String &name, + G4TwistTubsFlatSide( const G4String &name, G4double EndInnerRadius[2], G4double EndOuterRadius[2], G4double DPhi, @@ -70,7 +70,7 @@ class G4FlatSurface : public G4VSurface G4double EndZ[2], G4int handedness ) ; - virtual ~G4FlatSurface(); + virtual ~G4TwistTubsFlatSide(); virtual G4ThreeVector GetNormal(const G4ThreeVector & /* xx */ , G4bool isGlobal = false); virtual G4int DistanceToSurface(const G4ThreeVector &gp, @@ -86,6 +86,23 @@ class G4FlatSurface : public G4VSurface G4double distance[], G4int areacode[]); + virtual G4ThreeVector SurfacePoint(G4double, G4double, + G4bool isGlobal = false ) ; + virtual G4double GetBoundaryMin(G4double phi) ; + virtual G4double GetBoundaryMax(G4double phi) ; + virtual G4double GetSurfaceArea() { return fSurfaceArea ; } + virtual void GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ) ; + + G4double fSurfaceArea ; + + public: // without description + + G4TwistTubsFlatSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // with description virtual G4int GetAreaCode(const G4ThreeVector &xx, @@ -98,4 +115,27 @@ class G4FlatSurface : public G4VSurface }; +inline G4ThreeVector G4TwistTubsFlatSide:: +SurfacePoint(G4double phi , G4double rho , G4bool isGlobal ) +{ + G4ThreeVector SurfPoint (rho*std::cos(phi) , rho*std::sin(phi) , 0); + + if (isGlobal) { return (fRot * SurfPoint + fTrans); } + return SurfPoint; +} + +inline +G4double G4TwistTubsFlatSide::GetBoundaryMin(G4double) +{ + G4ThreeVector dphimin = GetCorner(sC0Max1Min); + return std::atan2( dphimin.y(), dphimin.x() ); +} + +inline +G4double G4TwistTubsFlatSide::GetBoundaryMax(G4double) +{ + G4ThreeVector dphimax = GetCorner(sC0Max1Max); + return std::atan2( dphimax.y(), dphimax.x() ); +} + #endif diff --git a/source/geometry/solids/specific/include/G4HyperbolicSurface.hh b/source/geometry/solids/specific/include/G4TwistTubsHypeSide.hh similarity index 68% rename from source/geometry/solids/specific/include/G4HyperbolicSurface.hh rename to source/geometry/solids/specific/include/G4TwistTubsHypeSide.hh index ff191a09a5..644ecaa0a6 100644 --- a/source/geometry/solids/specific/include/G4HyperbolicSurface.hh +++ b/source/geometry/solids/specific/include/G4TwistTubsHypeSide.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4HyperbolicSurface.hh,v 1.7 2004/12/02 09:31:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistTubsHypeSide.hh,v 1.4 2005/12/06 18:21:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- // GEANT 4 class header file // // -// G4HyperbolicSurface +// G4TwistTubsHypeSide // // Class description: // @@ -42,21 +42,23 @@ // 13-Nov-2003 - O.Link (Oliver.Link@cern.ch), Integration in Geant4 // from original version in Jupiter-2.5.02 application. // -------------------------------------------------------------------- -#ifndef __G4HYPERBOLICSURFACE__ -#define __G4HYPERBOLICSURFACE__ +#ifndef __G4TWISTTUBSHYPESIDE__ +#define __G4TWISTTUBSHYPESIDE__ -#include "G4VSurface.hh" +#include "G4VTwistSurface.hh" +#include "G4Integrator.hh" +#include "G4SimpleIntegration.hh" -class G4HyperbolicSurface : public G4VSurface +class G4TwistTubsHypeSide : public G4VTwistSurface { public: // with description - G4HyperbolicSurface(const G4String &name, + G4TwistTubsHypeSide(const G4String &name, const G4RotationMatrix &rot, // 0.5*(phi-width segment) const G4ThreeVector &tlate, const G4int handedness,// R-hand = 1, L-hand = -1 - const G4double kappa, // std::tan(TwistAngle/2)/fZHalfLen - const G4double tanstereo, // std::tan(stereo angle) + const G4double kappa, // tan(TwistAngle/2)/fZHalfLen + const G4double tanstereo, // tan(stereo angle) const G4double r0, // radius at z = 0 const EAxis axis0 = kPhi, const EAxis axis1 = kZAxis, @@ -65,7 +67,7 @@ class G4HyperbolicSurface : public G4VSurface G4double axis0max = kInfinity, G4double axis1max = kInfinity); - G4HyperbolicSurface(const G4String &name, + G4TwistTubsHypeSide(const G4String &name, G4double EndInnerRadius[2], G4double EndOuterRadius[2], G4double DPhi, @@ -78,7 +80,7 @@ class G4HyperbolicSurface : public G4VSurface G4double TanOuterStereo, G4int handedness) ; - virtual ~G4HyperbolicSurface(); + virtual ~G4TwistTubsHypeSide(); virtual G4int DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, @@ -97,9 +99,24 @@ class G4HyperbolicSurface : public G4VSurface G4bool isGlobal = false) ; virtual EInside Inside(const G4ThreeVector &gp) ; - inline virtual G4double GetRhoAtPZ(const G4ThreeVector &p, - G4bool isglobal = false) const ; + virtual G4double GetRhoAtPZ(const G4ThreeVector &p, + G4bool isglobal = false) const ; + virtual G4ThreeVector SurfacePoint(G4double, G4double, + G4bool isGlobal = false) ; + virtual G4double GetBoundaryMin(G4double phi) ; + virtual G4double GetBoundaryMax(G4double phi) ; + virtual G4double GetSurfaceArea() ; + virtual void GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ) ; + + public: // without description + + G4TwistTubsHypeSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: virtual G4int GetAreaCode(const G4ThreeVector &xx, @@ -122,6 +139,8 @@ class G4HyperbolicSurface : public G4VSurface G4double fTan2Stereo; // std::tan(StereoAngle)**2 G4double fR0; // radius at z = 0 G4double fR02; // radius**2 at z = 0 + G4double fDPhi ; // segment + class Insidetype { public: @@ -136,7 +155,7 @@ class G4HyperbolicSurface : public G4VSurface //======================================================== inline -G4double G4HyperbolicSurface::GetRhoAtPZ(const G4ThreeVector &p, +G4double G4TwistTubsHypeSide::GetRhoAtPZ(const G4ThreeVector &p, G4bool isglobal) const { // Get Rho at p.z() on Hyperbolic Surface. @@ -149,4 +168,42 @@ G4double G4HyperbolicSurface::GetRhoAtPZ(const G4ThreeVector &p, return std::sqrt(fR02 + tmpp.z() * tmpp.z() * fTan2Stereo); } +inline +G4ThreeVector G4TwistTubsHypeSide:: +SurfacePoint(G4double phi , G4double z , G4bool isGlobal) +{ + G4double rho = std::sqrt(fR02 + z * z * fTan2Stereo) ; + + G4ThreeVector SurfPoint (rho*std::cos(phi), rho*std::sin(phi), z) ; + + if (isGlobal) { return (fRot * SurfPoint + fTrans); } + return SurfPoint; +} + +inline +G4double G4TwistTubsHypeSide::GetBoundaryMin(G4double z) +{ + G4ThreeVector ptmp(0,0,z) ; // temporary point with z Komponent only + G4ThreeVector lowerlimit; // lower phi-boundary limit at z = ptmp.z() + lowerlimit = GetBoundaryAtPZ(sAxis0 & sAxisMin, ptmp); + return std::atan2( lowerlimit.y(), lowerlimit.x() ) ; +} + +inline +G4double G4TwistTubsHypeSide::GetBoundaryMax(G4double z ) +{ + G4ThreeVector ptmp(0,0,z) ; // temporary point with z Komponent only + G4ThreeVector upperlimit; // upper phi-boundary limit at z = ptmp.z() + upperlimit = GetBoundaryAtPZ(sAxis0 & sAxisMax, ptmp); + return std::atan2( upperlimit.y(), upperlimit.x() ) ; +} + +inline +G4double G4TwistTubsHypeSide::GetSurfaceArea() +{ + // approximation with tube surface + + return ( fAxisMax[1] - fAxisMin[1] ) * fR0 * fDPhi ; +} + #endif diff --git a/source/geometry/solids/specific/include/G4TwistedSurface.hh b/source/geometry/solids/specific/include/G4TwistTubsSide.hh similarity index 60% rename from source/geometry/solids/specific/include/G4TwistedSurface.hh rename to source/geometry/solids/specific/include/G4TwistTubsSide.hh index ba095896e9..a7ea702289 100644 --- a/source/geometry/solids/specific/include/G4TwistedSurface.hh +++ b/source/geometry/solids/specific/include/G4TwistTubsSide.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4TwistedSurface.hh,v 1.7 2004/12/02 09:31:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistTubsSide.hh,v 1.4 2005/12/06 18:21:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- // GEANT 4 class header file // // -// G4TwistedSurface +// G4TwistTubsSide // // Class description: // @@ -42,39 +42,39 @@ // 13-Nov-2003 - O.Link (Oliver.Link@cern.ch), Integration in Geant4 // from original version in Jupiter-2.5.02 application. // -------------------------------------------------------------------- -#ifndef __G4TWISTEDSURFACE__ -#define __G4TWISTEDSURFACE__ +#ifndef __G4TWISTTUBSSIDE__ +#define __G4TWISTTUBSSIDE__ -#include "G4VSurface.hh" +#include "G4VTwistSurface.hh" -class G4TwistedSurface : public G4VSurface +class G4TwistTubsSide : public G4VTwistSurface { public: // with description - G4TwistedSurface(const G4String &name, - const G4RotationMatrix &rot, // 0.5*(phi-width segment) - const G4ThreeVector &tlate, - G4int handedness, // R-hand = 1, L-hand = -1 - const G4double kappa, // std::tan(TwistAngle/2)/fZHalfLen - const EAxis axis0 = kXAxis, - const EAxis axis1 = kZAxis, - G4double axis0min = -kInfinity, - G4double axis1min = -kInfinity, - G4double axis0max = kInfinity, - G4double axis1max = kInfinity ); + G4TwistTubsSide(const G4String &name, + const G4RotationMatrix &rot, // 0.5*(phi-width segment) + const G4ThreeVector &tlate, + G4int handedness, // R-hand = 1, L-hand = -1 + const G4double kappa, // tan(TwistAngle/2)/fZHalfLen + const EAxis axis0 = kXAxis, + const EAxis axis1 = kZAxis, + G4double axis0min = -kInfinity, + G4double axis1min = -kInfinity, + G4double axis0max = kInfinity, + G4double axis1max = kInfinity ); - G4TwistedSurface(const G4String &name, - G4double EndInnerRadius[2], - G4double EndOuterRadius[2], - G4double DPhi, - G4double EndPhi[2], - G4double EndZ[2], - G4double InnerRadius, - G4double OuterRadius, - G4double Kappa, - G4int handedness); + G4TwistTubsSide(const G4String &name, + G4double EndInnerRadius[2], + G4double EndOuterRadius[2], + G4double DPhi, + G4double EndPhi[2], + G4double EndZ[2], + G4double InnerRadius, + G4double OuterRadius, + G4double Kappa, + G4int handedness); - virtual ~G4TwistedSurface(); + virtual ~G4TwistTubsSide(); virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, G4bool isGlobal = false) ; @@ -95,6 +95,21 @@ class G4TwistedSurface : public G4VSurface inline G4ThreeVector ProjectAtPXPZ(const G4ThreeVector &p, G4bool isglobal = false) const ; + virtual G4ThreeVector SurfacePoint(G4double, G4double, + G4bool isGlobal = false) ; + virtual G4double GetBoundaryMin(G4double phi) ; + virtual G4double GetBoundaryMax(G4double phi) ; + virtual G4double GetSurfaceArea() ; + virtual void GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ) ; + + public: // without description + + G4TwistTubsSide(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: virtual G4double DistanceToPlane(const G4ThreeVector &p, @@ -129,8 +144,8 @@ class G4TwistedSurface : public G4VSurface //======================================================== inline -G4ThreeVector G4TwistedSurface::ProjectAtPXPZ(const G4ThreeVector &p, - G4bool isglobal) const +G4ThreeVector G4TwistTubsSide::ProjectAtPXPZ(const G4ThreeVector &p, + G4bool isglobal) const { // Get Rho at p.z() on Hyperbolic Surface. G4ThreeVector tmpp; @@ -140,11 +155,37 @@ G4ThreeVector G4TwistedSurface::ProjectAtPXPZ(const G4ThreeVector &p, tmpp = p; } G4ThreeVector xx(p.x(), p.x() * fKappa * p.z(), p.z()); - if (isglobal) { - return (fRot * xx + fTrans); - } else { - return xx; - } + if (isglobal) { return (fRot * xx + fTrans); } + return xx; +} + +inline +G4ThreeVector +G4TwistTubsSide::SurfacePoint(G4double x, G4double z, G4bool isGlobal) +{ + G4ThreeVector SurfPoint( x , x * fKappa * z , z ) ; + + if (isGlobal) { return (fRot * SurfPoint + fTrans); } + return SurfPoint; +} + +inline +G4double G4TwistTubsSide::GetBoundaryMin(G4double) +{ + return fAxisMin[0] ; // inner radius at z = 0 +} + +inline +G4double G4TwistTubsSide::GetBoundaryMax(G4double) +{ + return fAxisMax[0] ; // outer radius at z = 0 +} + +inline +G4double G4TwistTubsSide::GetSurfaceArea() +{ + // approximation only + return ( fAxisMax[0] - fAxisMin[0] ) * ( fAxisMax[1] - fAxisMin[1] ) ; } #endif diff --git a/source/geometry/solids/specific/include/G4TwistedBox.hh b/source/geometry/solids/specific/include/G4TwistedBox.hh index 68cacf3a88..9996cdbbc1 100644 --- a/source/geometry/solids/specific/include/G4TwistedBox.hh +++ b/source/geometry/solids/specific/include/G4TwistedBox.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedBox.hh,v 1.5 2005/04/04 11:56:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistedBox.hh,v 1.9 2005/12/06 09:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -46,7 +46,7 @@ // Author: // -// Oliver Link (Oliver.Link@cern.ch) +// 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- #ifndef __G4TWISTEDBOX__ @@ -56,28 +56,33 @@ class G4TwistedBox : public G4VTwistedFaceted { -public: // with description + public: // with description - G4TwistedBox(const G4String& pName, - G4double pPhiTwist, - G4double pDx, - G4double pDy, - G4double pDz ); + G4TwistedBox(const G4String& pName, + G4double pPhiTwist, + G4double pDx, + G4double pDy, + G4double pDz ); - virtual ~G4TwistedBox(); + virtual ~G4TwistedBox(); - // accessors + // accessors - inline G4double GetXHalfLength() const { return GetDx1() ; } - inline G4double GetYHalfLength() const { return GetDy1() ; } - inline G4double GetZHalfLength() const { return GetDz() ; } - inline G4double GetPhiTwist() const { return GetTwistAngle() ; } + inline G4double GetXHalfLength() const { return GetDx1() ; } + inline G4double GetYHalfLength() const { return GetDy1() ; } + inline G4double GetZHalfLength() const { return GetDz() ; } + inline G4double GetPhiTwist() const { return GetTwistAngle() ; } - G4GeometryType GetEntityType() const; - G4Polyhedron* CreatePolyhedron() const; + G4GeometryType GetEntityType() const; - std::ostream& StreamInfo(std::ostream& os) const; + std::ostream& StreamInfo(std::ostream& os) const; + public: // without description + + G4TwistedBox(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. }; #endif diff --git a/source/geometry/solids/specific/include/G4TwistedTrap.hh b/source/geometry/solids/specific/include/G4TwistedTrap.hh index d995bedddf..36ed625d1d 100644 --- a/source/geometry/solids/specific/include/G4TwistedTrap.hh +++ b/source/geometry/solids/specific/include/G4TwistedTrap.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedTrap.hh,v 1.5 2005/04/04 11:56:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistedTrap.hh,v 1.9 2005/12/06 09:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -58,7 +58,7 @@ // Author: // -// Oliver Link (Oliver.Link@cern.ch) +// 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- #ifndef __G4TWISTEDTRAP__ @@ -68,50 +68,56 @@ class G4TwistedTrap : public G4VTwistedFaceted { -public: // with description + public: // with description - G4TwistedTrap(const G4String &pName, - G4double pPhiTwist, - G4double pDx1, // half x length at -pDz,-pDy - G4double pDx2, // half x length at -pDz,+pDy - G4double pDy, - G4double pDz); + G4TwistedTrap(const G4String &pName, + G4double pPhiTwist, + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy, + G4double pDz); - G4TwistedTrap(const G4String &pName, // Name of instance - G4double pPhiTwist, // twist angle - G4double pDz, // half z length - G4double pTheta, // direction between end planes - G4double pPhi, // defined by polar and azim. angles - G4double pDy1, // half y length at -pDz - G4double pDx1, // half x length at -pDz,-pDy - G4double pDx2, // half x length at -pDz,+pDy - G4double pDy2, // half y length at +pDz - G4double pDx3, // half x length at +pDz,-pDy - G4double pDx4, // half x length at +pDz,+pDy - G4double pAlph // tilt angle - ); + G4TwistedTrap(const G4String &pName, // Name of instance + G4double pPhiTwist, // twist angle + G4double pDz, // half z length + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azim. angles + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph // tilt angle + ); - virtual ~G4TwistedTrap(); + virtual ~G4TwistedTrap(); - // accessors + // accessors - inline G4double GetY1HalfLength() const { return GetDy1() ; } - inline G4double GetX1HalfLength() const { return GetDx1() ; } - inline G4double GetX2HalfLength() const { return GetDx2() ; } - inline G4double GetY2HalfLength() const { return GetDy2() ; } - inline G4double GetX3HalfLength() const { return GetDx3() ; } - inline G4double GetX4HalfLength() const { return GetDx4() ; } - inline G4double GetZHalfLength() const { return GetDz() ; } - inline G4double GetPhiTwist() const { return GetTwistAngle() ; } - inline G4double GetTiltAngleAlpha() const { return GetAlpha() ; } - inline G4double GetPolarAngleTheta() const { return GetTheta() ; } - inline G4double GetAzimuthalAnglePhi() const { return GetPhi() ; } + inline G4double GetY1HalfLength() const { return GetDy1() ; } + inline G4double GetX1HalfLength() const { return GetDx1() ; } + inline G4double GetX2HalfLength() const { return GetDx2() ; } + inline G4double GetY2HalfLength() const { return GetDy2() ; } + inline G4double GetX3HalfLength() const { return GetDx3() ; } + inline G4double GetX4HalfLength() const { return GetDx4() ; } + inline G4double GetZHalfLength() const { return GetDz() ; } + inline G4double GetPhiTwist() const { return GetTwistAngle() ; } + inline G4double GetTiltAngleAlpha() const { return GetAlpha() ; } + inline G4double GetPolarAngleTheta() const { return GetTheta() ; } + inline G4double GetAzimuthalAnglePhi() const { return GetPhi() ; } - G4GeometryType GetEntityType() const; - G4Polyhedron* CreatePolyhedron() const; + G4GeometryType GetEntityType() const; - std::ostream &StreamInfo(std::ostream& os) const; + std::ostream &StreamInfo(std::ostream& os) const; + + public: // without description + + G4TwistedTrap(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. } ; diff --git a/source/geometry/solids/specific/include/G4TwistedTrapAlphaSide.hh b/source/geometry/solids/specific/include/G4TwistedTrapAlphaSide.hh deleted file mode 100644 index f5cae0040f..0000000000 --- a/source/geometry/solids/specific/include/G4TwistedTrapAlphaSide.hh +++ /dev/null @@ -1,210 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4TwistedTrapAlphaSide.hh,v 1.5 2005/03/18 17:11:53 gcosmo Exp $ -// -// -------------------------------------------------------------------- -// GEANT 4 class header file -// -// -// G4TwistedTrapAlphaSide -// -// Class description: -// -// Class describing a twisted boundary surface for a trapezoid. - -// Author: -// -// Oliver Link (Oliver.Link@cern.ch) -// -// -------------------------------------------------------------------- -#ifndef __G4TWISTEDTRAPALPHASIDE__ -#define __G4TWISTEDTRAPALPHASIDE__ - -#include "G4VSurface.hh" - -#include - -class G4TwistedTrapAlphaSide : public G4VSurface -{ - public: // with description - - G4TwistedTrapAlphaSide(const G4String &name, - G4double PhiTwist, // twist angle - G4double pDz, // half z lenght - G4double pTheta, // direction between end planes - G4double pPhi, // defined by polar and azimutal angles. - G4double pDy1, // half y length at -pDz - G4double pDx1, // half x length at -pDz,-pDy - G4double pDx2, // half x length at -pDz,+pDy - G4double pDy2, // half y length at +pDz - G4double pDx3, // half x length at +pDz,-pDy - G4double pDx4, // half x length at +pDz,+pDy - G4double pAlph, // tilt angle at +pDz - G4double AngleSide // parity - ); - - virtual ~G4TwistedTrapAlphaSide(); - - virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, - G4bool isGlobal = false) ; - - virtual G4int DistanceToSurface(const G4ThreeVector &gp, - const G4ThreeVector &gv, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[], - G4bool isvalid[], - EValidate validate = kValidateWithTol); - - virtual G4int DistanceToSurface(const G4ThreeVector &gp, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[]); - - - - private: - - virtual G4int GetAreaCode(const G4ThreeVector &xx, - G4bool withTol = true); - virtual void SetCorners(); - virtual void SetBoundaries(); - - void GetPhiUAtX(G4ThreeVector p, G4double &phi, G4double &u); - G4ThreeVector ProjectPoint(const G4ThreeVector &p, - G4bool isglobal = false); - - inline G4ThreeVector SurfacePoint(G4double phi, G4double u); - inline G4ThreeVector NormAng(G4double phi, G4double u); - inline G4double Xcoef(G4double u,G4double phi); // to calculate the w(u) function - inline G4double GetValueA(G4double phi) ; - inline G4double GetValueB(G4double phi) ; - inline G4double GetValueD(G4double phi) ; - - private: - - G4double fTheta; - G4double fPhi ; - - G4double fDy1; - G4double fDx1; - G4double fDx2; - - G4double fDy2; - G4double fDx3; - G4double fDx4; - - G4double fDz; // Half-length along the z axis - - G4double fAlph ; - G4double fTAlph ; // std::tan(fAlph) - - G4double fPhiTwist; // twist angle ( dphi in surface equation) - - G4double fAngleSide; - - G4double fDx4plus2 ; // fDx4 + fDx2 == a2/2 + a1/2 - G4double fDx4minus2 ; // fDx4 - fDx2 - - G4double fDx3plus1 ; // fDx3 + fDx1 == d2/2 + d1/2 - G4double fDx3minus1 ; // fDx3 - fDx1 - - G4double fDy2plus1 ; // fDy2 + fDy1 == b2/2 + b1/2 - G4double fDy2minus1 ; // fDy2 - fDy1 - - G4double fa1md1 ; // 2 fDx2 - 2 fDx1 == a1 - d1 - G4double fa2md2 ; // 2 fDx4 - 2 fDx3 - - G4double fdeltaX ; - G4double fdeltaY ; - - -}; - -//======================================================== -// inline functions -//======================================================== - -inline -G4double G4TwistedTrapAlphaSide::GetValueA(G4double phi) -{ - return ( fDx4plus2 + fDx4minus2 * ( 2 * phi ) / fPhiTwist ) ; -} - -inline -G4double G4TwistedTrapAlphaSide::GetValueD(G4double phi) -{ - return ( fDx3plus1 + fDx3minus1 * ( 2 * phi) / fPhiTwist ) ; -} - -inline -G4double G4TwistedTrapAlphaSide::GetValueB(G4double phi) -{ - return ( fDy2plus1 + fDy2minus1 * ( 2 * phi ) / fPhiTwist ) ; -} - - -inline -G4double G4TwistedTrapAlphaSide::Xcoef(G4double u, G4double phi) -{ - - return GetValueA(phi)/2. + (GetValueD(phi)-GetValueA(phi))/4. - - u*( ( GetValueD(phi)-GetValueA(phi) ) / ( 2 * GetValueB(phi) ) + fTAlph ) ; - -} - -inline -G4ThreeVector G4TwistedTrapAlphaSide::SurfacePoint( G4double phi, G4double u ) -{ - // function to calculate a point on the surface, given by parameters phi,u - - G4ThreeVector SurfPoint ( ( Xcoef(u,phi) + fdeltaX*phi/fPhiTwist ) * std::cos(phi) - - ( u + fdeltaY*phi/fPhiTwist ) * std::sin(phi), - ( Xcoef(u,phi) + fdeltaX*phi/fPhiTwist ) * std::sin(phi) - + ( u + fdeltaY*phi/fPhiTwist ) * std::cos(phi), - 2*fDz*phi/fPhiTwist ); - return SurfPoint ; - -} - -inline -G4ThreeVector G4TwistedTrapAlphaSide::NormAng( G4double phi, G4double u ) -{ - // function to calculate the norm at a given point on the surface - // replace a1-d1 - - G4ThreeVector nvec( 16*fDy1*2*fDz*(4*fDy1*(std::cos(phi)-std::sin(phi)*fTAlph) + fa1md1*std::sin(phi)), - 16*fDy1*2*fDz*(4*fDy1*std::sin(phi) + std::cos(phi)*(-fa1md1 + 4*fDy1*fTAlph)), - 2*fDy1*(-16*fDy1*(fDx4minus2 + fDx3minus1) + 4*fDx2*fDx4plus2*fPhiTwist - - (fDx4+fDx1)*4*fDx1*fPhiTwist + 2*fa1md1*fDx3*fPhiTwist - - 32*fDy1*fdeltaX + 8*fa1md1*fdeltaY + - 2*(-(fa1md1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)) + 16*fDy1*fdeltaY)*phi) + - 4*(16*fDy1*fDy1 + (fa1md1)*(fa1md1))*fPhiTwist*u - - 4*fDy1*fTAlph*(2*fDy1*(2*(fDx4plus2+fDx3plus1)*fPhiTwist - + 8*fdeltaY - 2*(-2*(fDx4minus2+fDx3minus1) - 4*fdeltaX)*phi) - + 8*(fa1md1)*fPhiTwist*u - 16*fDy1*fPhiTwist*u*fTAlph) ) ; - - - return nvec.unit(); -} - - -#endif diff --git a/source/geometry/solids/specific/include/G4TwistedTrapBoxSide.hh b/source/geometry/solids/specific/include/G4TwistedTrapBoxSide.hh deleted file mode 100644 index e4e59dd1c1..0000000000 --- a/source/geometry/solids/specific/include/G4TwistedTrapBoxSide.hh +++ /dev/null @@ -1,183 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4TwistedTrapBoxSide.hh,v 1.2 2005/03/18 17:11:53 gcosmo Exp $ -// -// -------------------------------------------------------------------- -// GEANT 4 class header file -// -// -// G4TwistedTrapBoxSide -// -// Class description: -// -// Class describing a twisted boundary surface for a trapezoid. - -// Author: -// -// Oliver Link (Oliver.Link@cern.ch) -// -// -------------------------------------------------------------------- -#ifndef __G4TWISTEDTRAPBOXSIDE__ -#define __G4TWISTEDTRAPBOXASIDE__ - -#include "G4VSurface.hh" - -#include - -class G4TwistedTrapBoxSide : public G4VSurface -{ - public: // with description - - G4TwistedTrapBoxSide(const G4String &name, - G4double PhiTwist, // twist angle - G4double pDz, // half z lenght - G4double pTheta, // direction between end planes - G4double pPhi, // defined by polar and azimutal angles. - G4double pDy1, // half y length at -pDz - G4double pDx1, // half x length at -pDz,-pDy - G4double pDy2, // half y length at +pDz - G4double pDx2, // half x length at +pDz,-pDy - G4double pAlph, // tilt angle at +pDz - G4double AngleSide // parity - ); - - virtual ~G4TwistedTrapBoxSide(); - - virtual G4ThreeVector GetNormal(const G4ThreeVector &xx, - G4bool isGlobal = false) ; - - virtual G4int DistanceToSurface(const G4ThreeVector &gp, - const G4ThreeVector &gv, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[], - G4bool isvalid[], - EValidate validate = kValidateWithTol); - - virtual G4int DistanceToSurface(const G4ThreeVector &gp, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[]); - - - - private: - - virtual G4int GetAreaCode(const G4ThreeVector &xx, - G4bool withTol = true); - virtual void SetCorners(); - virtual void SetBoundaries(); - - void GetPhiUAtX(G4ThreeVector p, G4double &phi, G4double &u); - G4ThreeVector ProjectPoint(const G4ThreeVector &p, - G4bool isglobal = false); - - inline G4ThreeVector SurfacePoint(G4double phi, G4double u); - inline G4ThreeVector NormAng(G4double phi, G4double u); - inline G4double Xcoef(G4double u,G4double phi); // to calculate the w(u) function - inline G4double GetValueA(G4double phi) ; - inline G4double GetValueB(G4double phi) ; - - private: - - G4double fTheta; - G4double fPhi ; - - G4double fDy1; - G4double fDy2; - - G4double fDx1; - G4double fDx2; - - G4double fDz; // Half-length along the z axis - - G4double fAlph ; - G4double fTAlph ; // std::tan(fAlph) - - G4double fPhiTwist; // twist angle ( dphi in surface equation) - - G4double fAngleSide; - - G4double fdeltaX ; - G4double fdeltaY ; - -}; - -//======================================================== -// inline functions -//======================================================== - -inline -G4double G4TwistedTrapBoxSide::GetValueA(G4double phi) -{ - return ( fDx1 + fDx2 - (2*(fDx1 - fDx2)*phi)/fPhiTwist ) ; -} - -inline -G4double G4TwistedTrapBoxSide::GetValueB(G4double phi) -{ - return ( fDy1 + fDy2 - (2*(fDy1 - fDy2)*phi)/fPhiTwist ) ; -} - - -inline -G4double G4TwistedTrapBoxSide::Xcoef(G4double u, G4double phi) -{ - - return GetValueA(phi)/2. - u*fTAlph ; - -} - -inline -G4ThreeVector G4TwistedTrapBoxSide::SurfacePoint( G4double phi, G4double u ) -{ - // function to calculate a point on the surface, given by parameters phi,u - - G4ThreeVector SurfPoint ( ( Xcoef(u,phi) + fdeltaX*phi/fPhiTwist ) * std::cos(phi) - - ( u + fdeltaY*phi/fPhiTwist ) * std::sin(phi), - ( Xcoef(u,phi) + fdeltaX*phi/fPhiTwist ) * std::sin(phi) - + ( u + fdeltaY*phi/fPhiTwist ) * std::cos(phi), - 2*fDz*phi/fPhiTwist ); - return SurfPoint ; - -} - -inline -G4ThreeVector G4TwistedTrapBoxSide::NormAng( G4double phi, G4double u ) -{ - // function to calculate the norm at a given point on the surface - // replace a1-d1 - - G4ThreeVector - nvec( - 8*fDz*(std::cos(phi) - fTAlph*std::sin(phi)), - 8*fDz*(fTAlph*std::cos(phi) + std::sin(phi)), - 2*fDx1*(2 - fTAlph*(fPhiTwist - 2*phi)) - 2*fDx2*(2 + fTAlph*(fPhiTwist + 2*phi)) - - 4*(fdeltaX + fdeltaY*(fTAlph - phi) + fdeltaX*fTAlph*phi) + 4*fPhiTwist*(1 + fTAlph*fTAlph)*u) ; - - return nvec.unit(); -} - - -#endif diff --git a/source/geometry/solids/specific/include/G4TwistedTrd.hh b/source/geometry/solids/specific/include/G4TwistedTrd.hh index 4eeaa656b5..7180242591 100644 --- a/source/geometry/solids/specific/include/G4TwistedTrd.hh +++ b/source/geometry/solids/specific/include/G4TwistedTrd.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedTrd.hh,v 1.2 2005/04/04 11:56:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistedTrd.hh,v 1.5 2005/12/05 17:03:34 link Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -58,31 +58,37 @@ class G4TwistedTrd : public G4VTwistedFaceted { -public: // with description + public: // with description - G4TwistedTrd( const G4String& pName, - G4double pDx1, - G4double pDx2, - G4double pDy1, - G4double pDy2, - G4double pDz, - G4double pPhiTwist ); + G4TwistedTrd( const G4String& pName, + G4double pDx1, + G4double pDx2, + G4double pDy1, + G4double pDy2, + G4double pDz, + G4double pPhiTwist ); - virtual ~G4TwistedTrd(); + virtual ~G4TwistedTrd(); - // accessors + // accessors - inline G4double GetX1HalfLength() const { return GetDx1() ; } - inline G4double GetX2HalfLength() const { return GetDx3() ; } - inline G4double GetY1HalfLength() const { return GetDy1() ; } - inline G4double GetY2HalfLength() const { return GetDy2() ; } - inline G4double GetZHalfLength() const { return GetDz() ; } - inline G4double GetPhiTwist() const { return GetTwistAngle() ; } + inline G4double GetX1HalfLength() const { return GetDx1() ; } + inline G4double GetX2HalfLength() const { return GetDx3() ; } + inline G4double GetY1HalfLength() const { return GetDy1() ; } + inline G4double GetY2HalfLength() const { return GetDy2() ; } + inline G4double GetZHalfLength() const { return GetDz() ; } + inline G4double GetPhiTwist() const { return GetTwistAngle() ; } - G4GeometryType GetEntityType() const; - G4Polyhedron* CreatePolyhedron () const; + G4GeometryType GetEntityType() const; - std::ostream& StreamInfo(std::ostream& os) const; + std::ostream& StreamInfo(std::ostream& os) const; + + public: // without description + + G4TwistedTrd(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. } ; diff --git a/source/geometry/solids/specific/include/G4TwistedTubs.hh b/source/geometry/solids/specific/include/G4TwistedTubs.hh index 75f6bf47be..70cf565a32 100644 --- a/source/geometry/solids/specific/include/G4TwistedTubs.hh +++ b/source/geometry/solids/specific/include/G4TwistedTubs.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TwistedTubs.hh,v 1.8 2005/04/04 11:56:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistedTubs.hh,v 1.11 2005/11/18 16:48:01 link Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -53,9 +53,9 @@ #define __G4TWISTEDTUBS__ #include "G4VSolid.hh" -#include "G4FlatSurface.hh" -#include "G4TwistedSurface.hh" -#include "G4HyperbolicSurface.hh" +#include "G4TwistTubsFlatSide.hh" +#include "G4TwistTubsSide.hh" +#include "G4TwistTubsHypeSide.hh" class G4SolidExtentList; class G4ClippablePolygon; @@ -168,10 +168,17 @@ class G4TwistedTubs : public G4VSolid // Returns an estimation of the geometrical cubic volume of the // solid. Caches the computed value once computed the first time. + G4ThreeVector GetPointOnSurface() const ; + public: // without description + G4TwistedTubs(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + #ifdef G4SPECSDEBUG - G4VSurface * GetOuterHype() const { return fOuterHype; } + G4VTwistSurface * GetOuterHype() const { return fOuterHype; } #endif private: @@ -213,12 +220,12 @@ class G4TwistedTubs : public G4VSolid G4double fTanOuterStereo2; // fInnerRadius * fInnerRadius G4double fEndZ2[2]; // fEndZ * fEndZ - G4VSurface *fLowerEndcap; // Surface of -ve z - G4VSurface *fUpperEndcap; // Surface of +ve z - G4VSurface *fLatterTwisted; // Surface of -ve phi - G4VSurface *fFormerTwisted; // Surface of +ve phi - G4VSurface *fInnerHype; // Surface of -ve r - G4VSurface *fOuterHype; // Surface of +ve r + G4VTwistSurface *fLowerEndcap; // Surface of -ve z + G4VTwistSurface *fUpperEndcap; // Surface of +ve z + G4VTwistSurface *fLatterTwisted; // Surface of -ve phi + G4VTwistSurface *fFormerTwisted; // Surface of +ve phi + G4VTwistSurface *fInnerHype; // Surface of -ve r + G4VTwistSurface *fOuterHype; // Surface of +ve r G4double fCubicVolume; // Cached value for cubic volume @@ -245,7 +252,7 @@ class G4TwistedTubs : public G4VSolid { p.set(kInfinity,kInfinity,kInfinity); vec.set(kInfinity,kInfinity,kInfinity); - surface = new G4VSurface*[1]; + surface = new G4VTwistSurface*[1]; } ~LastVector() { @@ -254,7 +261,7 @@ class G4TwistedTubs : public G4VSolid public: G4ThreeVector p; G4ThreeVector vec; - G4VSurface **surface; + G4VTwistSurface **surface; }; class LastValue // last G4double value diff --git a/source/geometry/solids/specific/include/G4VCSGface.hh b/source/geometry/solids/specific/include/G4VCSGface.hh index 212dfa35ae..899fb098dc 100644 --- a/source/geometry/solids/specific/include/G4VCSGface.hh +++ b/source/geometry/solids/specific/include/G4VCSGface.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCSGface.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4VCSGfaceted.hh b/source/geometry/solids/specific/include/G4VCSGfaceted.hh index c1aa2b43ab..677bea4ad7 100644 --- a/source/geometry/solids/specific/include/G4VCSGfaceted.hh +++ b/source/geometry/solids/specific/include/G4VCSGfaceted.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCSGfaceted.hh,v 1.10 2004/10/10 10:39:46 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VCSGfaceted.hh,v 1.11 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -52,70 +52,77 @@ class G4VCSGfaceted : public G4VSolid { public: // with description - G4VCSGfaceted( G4String name ); - virtual ~G4VCSGfaceted(); + G4VCSGfaceted( G4String name ); + virtual ~G4VCSGfaceted(); - G4VCSGfaceted( const G4VCSGfaceted &source ); - const G4VCSGfaceted &operator=( const G4VCSGfaceted &source ); + G4VCSGfaceted( const G4VCSGfaceted &source ); + const G4VCSGfaceted &operator=( const G4VCSGfaceted &source ); - virtual G4bool CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax ) const; + virtual G4bool CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin,G4double& pmax ) const; - virtual EInside Inside( const G4ThreeVector& p ) const; + virtual EInside Inside( const G4ThreeVector& p ) const; - virtual G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const; + virtual G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const; - virtual G4double DistanceToIn( const G4ThreeVector& p, - const G4ThreeVector& v ) const; - virtual G4double DistanceToIn( const G4ThreeVector& p ) const; - virtual G4double DistanceToOut( const G4ThreeVector& p, - const G4ThreeVector& v, - const G4bool calcNorm=false, - G4bool *validNorm=0, - G4ThreeVector *n=0 ) const; - virtual G4double DistanceToOut( const G4ThreeVector& p ) const; + virtual G4double DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const; + virtual G4double DistanceToIn( const G4ThreeVector& p ) const; + virtual G4double DistanceToOut( const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, + G4ThreeVector *n=0 ) const; + virtual G4double DistanceToOut( const G4ThreeVector& p ) const; - virtual G4GeometryType GetEntityType() const; + virtual G4GeometryType GetEntityType() const; - virtual std::ostream& StreamInfo(std::ostream& os) const; + virtual std::ostream& StreamInfo(std::ostream& os) const; - virtual G4Polyhedron* CreatePolyhedron() const = 0; + virtual G4Polyhedron* CreatePolyhedron() const = 0; - virtual void DescribeYourselfTo( G4VGraphicsScene& scene ) const; + virtual void DescribeYourselfTo( G4VGraphicsScene& scene ) const; - virtual G4VisExtent GetExtent() const; + virtual G4VisExtent GetExtent() const; - virtual G4Polyhedron* GetPolyhedron () const; + virtual G4Polyhedron* GetPolyhedron () const; - G4int GetCubVolStatistics() const; - G4double GetCubVolEpsilon() const; - void SetCubVolStatistics(G4int st); - void SetCubVolEpsilon(G4double ep); + G4int GetCubVolStatistics() const; + G4double GetCubVolEpsilon() const; + void SetCubVolStatistics(G4int st); + void SetCubVolEpsilon(G4double ep); - virtual G4double GetCubicVolume(); - // Returns an estimation of the geometrical cubic volume of the - // solid. Caches the computed value once computed the first time. + virtual G4double GetCubicVolume(); + // Returns an estimation of the geometrical cubic volume of the + // solid. Caches the computed value once computed the first time. + + public: // without description + + G4VCSGfaceted(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. protected: // without description - G4int numFace; - G4VCSGface **faces; - G4double fCubicVolume; - mutable G4Polyhedron* fpPolyhedron; + G4int numFace; + G4VCSGface **faces; + G4double fCubicVolume; + mutable G4Polyhedron* fpPolyhedron; - virtual G4double DistanceTo( const G4ThreeVector &p, - const G4bool outgoing ) const; + virtual G4double DistanceTo( const G4ThreeVector &p, + const G4bool outgoing ) const; - void CopyStuff( const G4VCSGfaceted &source ); - void DeleteStuff(); + void CopyStuff( const G4VCSGfaceted &source ); + void DeleteStuff(); private: - G4int fCubVolStatistics; - G4double fCubVolEpsilon; - // Statistics, error accuracy for volume estimation. + G4int fCubVolStatistics; + G4double fCubVolEpsilon; + // Statistics, error accuracy for volume estimation. }; diff --git a/source/geometry/solids/specific/include/G4VSurface.hh b/source/geometry/solids/specific/include/G4VTwistSurface.hh similarity index 88% rename from source/geometry/solids/specific/include/G4VSurface.hh rename to source/geometry/solids/specific/include/G4VTwistSurface.hh index 98a67f6dc9..418f50a188 100644 --- a/source/geometry/solids/specific/include/G4VSurface.hh +++ b/source/geometry/solids/specific/include/G4VTwistSurface.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4VSurface.hh,v 1.11 2004/12/17 16:34:56 link Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTwistSurface.hh,v 1.3 2005/12/06 09:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- // GEANT 4 class header file // // -// G4VSurface +// G4VTwistSurface // // Class description: // @@ -42,8 +42,8 @@ // 13-Nov-2003 - O.Link (Oliver.Link@cern.ch), Integration in Geant4 // from original version in Jupiter-2.5.02 application. // -------------------------------------------------------------------- -#ifndef __G4VSURFACE__ -#define __G4VSURFACE__ +#ifndef __G4VTWISTSURFACE__ +#define __G4VTWISTSURFACE__ #include "G4VSolid.hh" #include "geomdefs.hh" @@ -52,7 +52,7 @@ #define G4VSURFACENXX 10 -class G4VSurface +class G4VTwistSurface { public: // without description @@ -61,8 +61,8 @@ class G4VSurface public: // with description - G4VSurface (const G4String &name); - G4VSurface (const G4String &name, + G4VTwistSurface (const G4String &name); + G4VTwistSurface (const G4String &name, const G4RotationMatrix &rot, const G4ThreeVector &tlate, G4int handedness, @@ -73,7 +73,7 @@ class G4VSurface G4double axis0max = kInfinity, G4double axis1max = kInfinity); - virtual ~G4VSurface(); + virtual ~G4VTwistSurface(); virtual G4int AmIOnLeftSide(const G4ThreeVector &me, const G4ThreeVector &vec, @@ -150,8 +150,8 @@ class G4VSurface inline G4bool IsBoundary (G4int areacode, G4bool testbitmode = false) const; inline G4bool IsCorner (G4int areacode, G4bool testbitmode = false) const; inline G4bool IsValidNorm() const { return fIsValidNorm; } - G4bool IsSameBoundary (G4VSurface *surface1, G4int areacode1, - G4VSurface *surface2, G4int areacode2 ) const; + G4bool IsSameBoundary (G4VTwistSurface *surface1, G4int areacode1, + G4VTwistSurface *surface2, G4int areacode2 ) const; inline G4int GetAxisType(G4int areacode, G4int whichaxis) const; inline G4ThreeVector ComputeGlobalPoint (const G4ThreeVector &lp) const; @@ -162,15 +162,33 @@ class G4VSurface // set methods inline void SetAxis(G4int i, const EAxis axis) { fAxis[i] = axis; } - inline void SetNeighbours(G4VSurface* axis0min, G4VSurface* axis1min, - G4VSurface* axis0max, G4VSurface* axis1max); + inline void SetNeighbours(G4VTwistSurface* axis0min, G4VTwistSurface* axis1min, + G4VTwistSurface* axis0max, G4VTwistSurface* axis1max); + + virtual G4ThreeVector SurfacePoint(G4double , G4double, + G4bool isGlobal = false ) = 0 ; + virtual G4double GetBoundaryMin(G4double) = 0 ; + virtual G4double GetBoundaryMax(G4double) = 0 ; + virtual G4double GetSurfaceArea() = 0 ; + virtual void GetFacets(G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside) = 0 ; + G4int GetNode( G4int i, G4int j, G4int m, G4int n, G4int iside ) ; + G4int GetFace( G4int i, G4int j, G4int m, G4int n, G4int iside ) ; + + + public: // without description + + G4VTwistSurface(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. protected: // with description // get methods - inline G4VSurface** GetNeighbours() { return fNeighbours; } - inline G4int GetNeighbours(G4int areacode, G4VSurface* surfaces[]); + inline G4VTwistSurface** GetNeighbours() { return fNeighbours; } + inline G4int GetNeighbours(G4int areacode, G4VTwistSurface* surfaces[]); inline G4ThreeVector GetCorner(G4int areacode) const; void GetBoundaryAxis(G4int areacode, EAxis axis[]) const; void GetBoundaryLimit(G4int areacode, G4double limit[]) const; @@ -313,7 +331,7 @@ class G4VSurface private: - G4VSurface *fNeighbours[4]; // {0,1,2,3} = sAxis0min, sAxis1min, + G4VTwistSurface *fNeighbours[4]; // {0,1,2,3} = sAxis0min, sAxis1min, // sAxis0max, sAxis1max G4ThreeVector fCorners[4]; // corners of the surface in local coordinate Boundary fBoundaries[4]; // boundaries of the surface. @@ -334,8 +352,8 @@ class G4VSurface // inline functions //======================================================== -struct Intersection { - +struct Intersection +{ G4double phi ; // parameter phi G4double u ; // parameter u G4ThreeVector xx ; // intersection point in cartesian @@ -343,8 +361,7 @@ struct Intersection { G4int areacode; // the areacode of the intersection G4bool isvalid ; // valid intersection ?? -} ; - +}; inline G4bool DistanceSort( const Intersection &a, const Intersection &b) @@ -358,7 +375,6 @@ G4bool EqualIntersection( const Intersection &a, const Intersection &b) return ( ( a.xx - b.xx ).mag() < kCarTolerance ) ; } - -#include "G4VSurface.icc" +#include "G4VTwistSurface.icc" #endif diff --git a/source/geometry/solids/specific/include/G4VSurface.icc b/source/geometry/solids/specific/include/G4VTwistSurface.icc similarity index 84% rename from source/geometry/solids/specific/include/G4VSurface.icc rename to source/geometry/solids/specific/include/G4VTwistSurface.icc index 780f0cb6eb..37f15152c9 100644 --- a/source/geometry/solids/specific/include/G4VSurface.icc +++ b/source/geometry/solids/specific/include/G4VTwistSurface.icc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: G4VSurface.icc,v 1.6 2004/12/02 09:31:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTwistSurface.icc,v 1.2 2005/12/08 13:44:06 link Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- -// G4VSurface class inline methods +// G4VTwistSurface class inline methods // // Author: // 01-Aug-2002 - Kotoyo Hoshina (hoshina@hepburn.s.chiba-u.ac.jp) @@ -40,7 +40,7 @@ //* DistanceToPlaneWithV ---------------------------------------------- inline -G4double G4VSurface::DistanceToPlaneWithV(const G4ThreeVector &p, +G4double G4VTwistSurface::DistanceToPlaneWithV(const G4ThreeVector &p, const G4ThreeVector &v, const G4ThreeVector &x0, const G4ThreeVector &n0, @@ -55,7 +55,7 @@ G4double G4VSurface::DistanceToPlaneWithV(const G4ThreeVector &p, //* DistanceToPlane --------------------------------------------------- inline -G4double G4VSurface::DistanceToPlane(const G4ThreeVector &p, +G4double G4VTwistSurface::DistanceToPlane(const G4ThreeVector &p, const G4ThreeVector &x0, const G4ThreeVector &n0, G4ThreeVector &xx) @@ -90,7 +90,7 @@ G4double G4VSurface::DistanceToPlane(const G4ThreeVector &p, //* DistanceToPlane --------------------------------------------------- inline -G4double G4VSurface::DistanceToPlane(const G4ThreeVector &p, +G4double G4VTwistSurface::DistanceToPlane(const G4ThreeVector &p, const G4ThreeVector &x0, const G4ThreeVector &t1, const G4ThreeVector &t2, @@ -111,7 +111,7 @@ G4double G4VSurface::DistanceToPlane(const G4ThreeVector &p, //* DistanceToLine ---------------------------------------------------- inline -G4double G4VSurface::DistanceToLine(const G4ThreeVector &p, +G4double G4VTwistSurface::DistanceToLine(const G4ThreeVector &p, const G4ThreeVector &x0, const G4ThreeVector &d, G4ThreeVector &xx) @@ -152,7 +152,7 @@ G4double G4VSurface::DistanceToLine(const G4ThreeVector &p, //* IsAxis0 ----------------------------------------------------------- inline -G4bool G4VSurface::IsAxis0(G4int areacode) const +G4bool G4VTwistSurface::IsAxis0(G4int areacode) const { if (areacode & sAxis0) return true; return false; @@ -162,7 +162,7 @@ G4bool G4VSurface::IsAxis0(G4int areacode) const //* IsAxis1 ----------------------------------------------------------- inline -G4bool G4VSurface::IsAxis1(G4int areacode) const +G4bool G4VTwistSurface::IsAxis1(G4int areacode) const { if (areacode & sAxis1) return true; return false; @@ -172,7 +172,7 @@ G4bool G4VSurface::IsAxis1(G4int areacode) const //* IsOutside --------------------------------------------------------- inline -G4bool G4VSurface::IsOutside(G4int areacode) const +G4bool G4VTwistSurface::IsOutside(G4int areacode) const { if (areacode & sInside) return false; return true; @@ -182,7 +182,7 @@ G4bool G4VSurface::IsOutside(G4int areacode) const //* IsInside ---------------------------------------------------------- inline -G4bool G4VSurface::IsInside(G4int areacode, G4bool testbitmode) const +G4bool G4VTwistSurface::IsInside(G4int areacode, G4bool testbitmode) const { if (areacode & sInside) { if (testbitmode) { @@ -198,7 +198,7 @@ G4bool G4VSurface::IsInside(G4int areacode, G4bool testbitmode) const //* IsBoundary -------------------------------------------------------- inline -G4bool G4VSurface::IsBoundary(G4int areacode, G4bool testbitmode) const +G4bool G4VTwistSurface::IsBoundary(G4int areacode, G4bool testbitmode) const { if ((areacode & sBoundary) == sBoundary) { if (testbitmode) { @@ -214,7 +214,7 @@ G4bool G4VSurface::IsBoundary(G4int areacode, G4bool testbitmode) const //* IsCorner ---------------------------------------------------------- inline -G4bool G4VSurface::IsCorner(G4int areacode, G4bool testbitmode) const +G4bool G4VTwistSurface::IsCorner(G4int areacode, G4bool testbitmode) const { if ((areacode & sCorner) == sCorner) { if (testbitmode) { @@ -230,7 +230,7 @@ G4bool G4VSurface::IsCorner(G4int areacode, G4bool testbitmode) const //* GetAxisType ------------------------------------------------------- inline -G4int G4VSurface::GetAxisType(G4int areacode, G4int whichaxis) const +G4int G4VTwistSurface::GetAxisType(G4int areacode, G4int whichaxis) const { G4int axiscode = areacode & sAxisMask & whichaxis; @@ -250,9 +250,9 @@ G4int G4VSurface::GetAxisType(G4int areacode, G4int whichaxis) const axiscode == (sAxisPhi & sAxis1)) { return sAxisPhi; } else { - G4cerr << "ERROR - G4VSurface::GetAxisType()" << G4endl + G4cerr << "ERROR - G4VTwistSurface::GetAxisType()" << G4endl << " areacode = " << areacode << G4endl; - G4Exception("G4VSurface::GetAxisType()","NotSupported", + G4Exception("G4VTwistSurface::GetAxisType()","NotSupported", FatalException, "Configuration not supported."); } return 1; @@ -262,7 +262,7 @@ G4int G4VSurface::GetAxisType(G4int areacode, G4int whichaxis) const //* ComputeGlobalPoint ------------------------------------------------ inline -G4ThreeVector G4VSurface::ComputeGlobalPoint(const G4ThreeVector &lp) const +G4ThreeVector G4VTwistSurface::ComputeGlobalPoint(const G4ThreeVector &lp) const { return fRot * G4ThreeVector(lp) + fTrans; } @@ -271,16 +271,16 @@ G4ThreeVector G4VSurface::ComputeGlobalPoint(const G4ThreeVector &lp) const //* ComputeGlobalPoint ------------------------------------------------ inline -G4ThreeVector G4VSurface::ComputeLocalPoint(const G4ThreeVector &gp) const +G4ThreeVector G4VTwistSurface::ComputeLocalPoint(const G4ThreeVector &gp) const { - return fRot.inverse() * G4ThreeVector(gp) - fTrans; + return fRot.inverse() * ( G4ThreeVector(gp) - fTrans ) ; } //===================================================================== //* ComputeGlobalDirection -------------------------------------------- inline -G4ThreeVector G4VSurface::ComputeGlobalDirection(const G4ThreeVector &lp) const +G4ThreeVector G4VTwistSurface::ComputeGlobalDirection(const G4ThreeVector &lp) const { return fRot * G4ThreeVector(lp); } @@ -289,7 +289,7 @@ G4ThreeVector G4VSurface::ComputeGlobalDirection(const G4ThreeVector &lp) const //* ComputeLocalDirection --------------------------------------------- inline -G4ThreeVector G4VSurface::ComputeLocalDirection(const G4ThreeVector &gp) const +G4ThreeVector G4VTwistSurface::ComputeLocalDirection(const G4ThreeVector &gp) const { return fRot.inverse() * G4ThreeVector(gp); } @@ -298,8 +298,8 @@ G4ThreeVector G4VSurface::ComputeLocalDirection(const G4ThreeVector &gp) const //* SetNeighbours ----------------------------------------------------- inline -void G4VSurface::SetNeighbours(G4VSurface* axis0min, G4VSurface* axis1min, - G4VSurface* axis0max, G4VSurface* axis1max) +void G4VTwistSurface::SetNeighbours(G4VTwistSurface* axis0min, G4VTwistSurface* axis1min, + G4VTwistSurface* axis0max, G4VTwistSurface* axis1max) { fNeighbours[0] = axis0min; fNeighbours[1] = axis1min; @@ -311,7 +311,7 @@ void G4VSurface::SetNeighbours(G4VSurface* axis0min, G4VSurface* axis1min, //* GetNeighbours ----------------------------------------------------- inline -G4int G4VSurface::GetNeighbours(G4int areacode, G4VSurface** surfaces) +G4int G4VTwistSurface::GetNeighbours(G4int areacode, G4VTwistSurface** surfaces) { int sAxis0Min = sAxis0 & sAxisMin ; @@ -351,12 +351,12 @@ G4int G4VSurface::GetNeighbours(G4int areacode, G4VSurface** surfaces) //* GetCorner --------------------------------------------------------- inline -G4ThreeVector G4VSurface::GetCorner(G4int areacode) const +G4ThreeVector G4VTwistSurface::GetCorner(G4int areacode) const { if (!(areacode & sCorner)){ - G4cerr << "ERROR - G4VSurface::GetCorner()" << G4endl + G4cerr << "ERROR - G4VTwistSurface::GetCorner()" << G4endl << " areacode = " << areacode << G4endl; - G4Exception("G4VSurface::GetCorner()","InvalidSetup", + G4Exception("G4VTwistSurface::GetCorner()","InvalidSetup", FatalException, "Area code must represent corner."); } @@ -369,9 +369,9 @@ G4ThreeVector G4VSurface::GetCorner(G4int areacode) const } else if ((areacode & sC0Min1Max) == sC0Min1Max) { return fCorners[3]; } else { - G4cerr << "ERROR - G4VSurface::GetCorner()" << G4endl + G4cerr << "ERROR - G4VTwistSurface::GetCorner()" << G4endl << " areacode = " << areacode << G4endl; - G4Exception("G4VSurface::GetCorner()", "NotSupported", + G4Exception("G4VTwistSurface::GetCorner()", "NotSupported", FatalException, "Configuration not supported."); } return fCorners[0]; diff --git a/source/geometry/solids/specific/include/G4VTwistedFaceted.hh b/source/geometry/solids/specific/include/G4VTwistedFaceted.hh index a4af0b2606..90a6cbfe21 100644 --- a/source/geometry/solids/specific/include/G4VTwistedFaceted.hh +++ b/source/geometry/solids/specific/include/G4VTwistedFaceted.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTwistedFaceted.hh,v 1.3 2005/04/04 11:56:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTwistedFaceted.hh,v 1.8 2005/12/06 09:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -35,7 +35,9 @@ // G4VTwistedFaceted is an abstract base class for twisted boxoids: // G4TwistedTrd, G4TwistedTrap and G4TwistedBox -// Author: O.Link (Oliver.Link@cern.ch) +// Author: +// +// 27-Oct-2004 - O.Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- @@ -43,10 +45,10 @@ #define __G4VTWISTEDFACETED__ #include "G4VSolid.hh" -#include "G4TwistedTrapAlphaSide.hh" -#include "G4TwistedTrapParallelSide.hh" -#include "G4TwistedTrapBoxSide.hh" -#include "G4FlatTrapSide.hh" +#include "G4TwistTrapAlphaSide.hh" +#include "G4TwistTrapParallelSide.hh" +#include "G4TwistBoxSide.hh" +#include "G4TwistTrapFlatSide.hh" class G4SolidExtentList; class G4ClippablePolygon; @@ -98,10 +100,13 @@ class G4VTwistedFaceted: public G4VSolid virtual G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const; + G4ThreeVector GetPointOnSurface() const; + G4ThreeVector GetPointInSolid(G4double z) const; + virtual inline G4double GetCubicVolume() ; virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const; - virtual G4Polyhedron *CreatePolyhedron () const = 0 ; + virtual G4Polyhedron *CreatePolyhedron () const ; virtual G4NURBS *CreateNURBS () const; virtual G4Polyhedron *GetPolyhedron () const; @@ -132,6 +137,13 @@ class G4VTwistedFaceted: public G4VSolid virtual G4VisExtent GetExtent () const; virtual G4GeometryType GetEntityType() const; + public: // without description + + G4VTwistedFaceted(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + protected: // with description G4ThreeVectorList* @@ -171,13 +183,13 @@ class G4VTwistedFaceted: public G4VSolid G4double fAngleSide; - G4VSurface *fLowerEndcap ; // surface of -ve z - G4VSurface *fUpperEndcap ; // surface of +ve z + G4VTwistSurface *fLowerEndcap ; // surface of -ve z + G4VTwistSurface *fUpperEndcap ; // surface of +ve z - G4VSurface *fSide0 ; // Twisted Side at phi = 0 deg - G4VSurface *fSide90 ; // Twisted Side at phi = 90 deg - G4VSurface *fSide180 ; // Twisted Side at phi = 180 deg - G4VSurface *fSide270 ; // Twisted Side at phi = 270 deg + G4VTwistSurface *fSide0 ; // Twisted Side at phi = 0 deg + G4VTwistSurface *fSide90 ; // Twisted Side at phi = 90 deg + G4VTwistSurface *fSide180 ; // Twisted Side at phi = 180 deg + G4VTwistSurface *fSide270 ; // Twisted Side at phi = 270 deg G4double fCubicVolume ; // volume of the twisted trapezoid @@ -204,7 +216,7 @@ class G4VTwistedFaceted: public G4VSolid { p.set(kInfinity,kInfinity,kInfinity); vec.set(kInfinity,kInfinity,kInfinity); - surface = new G4VSurface*[1]; + surface = new G4VTwistSurface*[1]; } ~LastVector() { @@ -213,7 +225,7 @@ class G4VTwistedFaceted: public G4VSolid public: G4ThreeVector p; G4ThreeVector vec; - G4VSurface **surface; + G4VTwistSurface **surface; }; class LastValue // last G4double value @@ -290,7 +302,7 @@ inline G4double G4VTwistedFaceted::Xcoef(G4double u, G4double phi, G4double ftg) const { return GetValueA(phi)/2. + (GetValueD(phi)-GetValueA(phi))/4. - - u*( ( GetValueD(phi)-GetValueA(phi) ) / ( 2 * GetValueB(phi) ) + ftg ); + - u*( ( GetValueD(phi)-GetValueA(phi) ) / ( 2 * GetValueB(phi) ) - ftg ); } #endif diff --git a/source/geometry/solids/specific/src/G4ClippablePolygon.cc b/source/geometry/solids/specific/src/G4ClippablePolygon.cc index 6f886290c1..eb693f497e 100644 --- a/source/geometry/solids/specific/src/G4ClippablePolygon.cc +++ b/source/geometry/solids/specific/src/G4ClippablePolygon.cc @@ -22,7 +22,7 @@ // // // $Id: G4ClippablePolygon.cc,v 1.10 2004/12/02 09:31:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4Ellipsoid.cc b/source/geometry/solids/specific/src/G4Ellipsoid.cc new file mode 100644 index 0000000000..08f8d38418 --- /dev/null +++ b/source/geometry/solids/specific/src/G4Ellipsoid.cc @@ -0,0 +1,999 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4Ellipsoid.cc,v 1.10 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// class G4Ellipsoid +// +// Implementation for G4Ellipsoid class +// +// History: +// +// 10.11.99 G.Horton-Smith -- first writing, based on G4Sphere class +// 25.02.05 G.Guerrieri -- Modified for future Geant4 release +// +// -------------------------------------------------------------------- + +#include "globals.hh" + +#include "G4Ellipsoid.hh" + +#include "G4VoxelLimits.hh" +#include "G4AffineTransform.hh" + +#include "meshdefs.hh" + +#include "Randomize.hh" + +#include "G4VGraphicsScene.hh" +#include "G4Polyhedron.hh" +#include "G4NURBS.hh" +#include "G4NURBSbox.hh" +#include "G4VisExtent.hh" + +using namespace CLHEP; + +/////////////////////////////////////////////////////////////////////////////// +// +// constructor - check parameters, convert angles so 02PI then reset to 2PI + +G4Ellipsoid::G4Ellipsoid(const G4String& pName, + G4double pxSemiAxis, + G4double pySemiAxis, + G4double pzSemiAxis, + G4double pzBottomCut, + G4double pzTopCut) + : G4VSolid(pName), fpPolyhedron(0), fCubicVolume(0.) +{ + // note: for users that want to use the full ellipsoid it is useful to include + // a default for the cuts + + // Check Semi-Axis + if ( (pxSemiAxis>0.) && (pySemiAxis>0.) && (pzSemiAxis>0.) ) + { + SetSemiAxis(pxSemiAxis, pySemiAxis, pzSemiAxis); + } + else + { + G4cerr << "ERROR - G4Ellipsoid::G4Ellipsoid(): " << GetName() << G4endl + << " Invalid semi-axis !" + << G4endl; + G4Exception("G4Ellipsoid::G4Ellipsoid()", "InvalidSetup", + FatalException, "Invalid semi-axis."); + } + + if ( pzBottomCut == 0 && pzTopCut == 0 ) + { + SetZCuts(-pzSemiAxis, pzSemiAxis); + } + else if ( (pzBottomCut < pzSemiAxis) && (pzTopCut > -pzSemiAxis) + && (pzBottomCut < pzTopCut) ) + { + SetZCuts(pzBottomCut, pzTopCut); + } + else + { + G4cerr << "ERROR - G4Ellipsoid::G4Ellipsoid(): " << GetName() << G4endl + << " Invalid z-coordinate for cutting plane !" + << G4endl; + G4Exception("G4Ellipsoid::G4Ellipsoid()", "InvalidSetup", + FatalException, "Invalid z-coordinate for cutting plane."); + } +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Ellipsoid::G4Ellipsoid( __void__& a ) + : G4VSolid(a), fpPolyhedron(0), fCubicVolume(0.) +{ +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Destructor + +G4Ellipsoid::~G4Ellipsoid() +{ +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Calculate extent under transform and specified limit + +G4bool +G4Ellipsoid::CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const +{ + if (!pTransform.IsRotated()) + { + // Special case handling for unrotated solid ellipsoid + // Compute x/y/z mins and maxs for bounding box respecting limits, + // with early returns if outside limits. Then switch() on pAxis, + // and compute exact x and y limit for x/y case + + G4double xoffset,xMin,xMax; + G4double yoffset,yMin,yMax; + G4double zoffset,zMin,zMax; + + G4double maxDiff,newMin,newMax; + G4double xoff,yoff; + + xoffset=pTransform.NetTranslation().x(); + xMin=xoffset - xSemiAxis; + xMax=xoffset + xSemiAxis; + if (pVoxelLimit.IsXLimited()) + { + if ( (xMin>pVoxelLimit.GetMaxXExtent()+kCarTolerance) + || (xMaxpVoxelLimit.GetMaxXExtent()) + { + xMax=pVoxelLimit.GetMaxXExtent(); + } + } + } + + yoffset=pTransform.NetTranslation().y(); + yMin=yoffset - ySemiAxis; + yMax=yoffset + ySemiAxis; + if (pVoxelLimit.IsYLimited()) + { + if ( (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance) + || (yMaxpVoxelLimit.GetMaxYExtent()) + { + yMax=pVoxelLimit.GetMaxYExtent(); + } + } + } + + zoffset=pTransform.NetTranslation().z(); + zMin=zoffset + (-zSemiAxis > zBottomCut ? -zSemiAxis : zBottomCut); + zMax=zoffset + ( zSemiAxis < zTopCut ? zSemiAxis : zTopCut); + if (pVoxelLimit.IsZLimited()) + { + if ( (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance) + || (zMaxpVoxelLimit.GetMaxZExtent()) + { + zMax=pVoxelLimit.GetMaxZExtent(); + } + } + } + + // if here, then known to cut bounding box around ellipsoid + // + xoff = (xoffset < xMin) ? (xMin-xoffset) + : (xoffset > xMax) ? (xoffset-xMax) : 0.0; + yoff = (yoffset < yMin) ? (yMin-yoffset) + : (yoffset > yMax) ? (yoffset-yMax) : 0.0; + + // detailed calculations + // NOTE: does not use X or Y offsets to adjust Z range, + // and does not use Z offset to adjust X or Y range, + // which is consistent with G4Sphere::CalculateExtent behavior + // + switch (pAxis) + { + case kXAxis: + if (yoff==0.) + { + // YZ limits cross max/min x => no change + // + pMin=xMin; + pMax=xMax; + } + else + { + // YZ limits don't cross max/min x => compute max delta x, + // hence new mins/maxs + // + maxDiff= 1.0-sqr(yoff/ySemiAxis); + if (maxDiff < 0.0) { return false; } + maxDiff= xSemiAxis * std::sqrt(maxDiff); + newMin=xoffset-maxDiff; + newMax=xoffset+maxDiff; + pMin=(newMinxMax) ? xMax : newMax; + } + break; + case kYAxis: + if (xoff==0.) + { + // XZ limits cross max/min y => no change + // + pMin=yMin; + pMax=yMax; + } + else + { + // XZ limits don't cross max/min y => compute max delta y, + // hence new mins/maxs + // + maxDiff= 1.0-sqr(xoff/xSemiAxis); + if (maxDiff < 0.0) { return false; } + maxDiff= ySemiAxis * std::sqrt(maxDiff); + newMin=yoffset-maxDiff; + newMax=yoffset+maxDiff; + pMin=(newMinyMax) ? yMax : newMax; + } + break; + case kZAxis: + pMin=zMin; + pMax=zMax; + break; + default: + break; + } + + pMin-=kCarTolerance; + pMax+=kCarTolerance; + return true; + } + else // not rotated + { + G4int i,j,noEntries,noBetweenSections; + G4bool existsAfterClip=false; + + // Calculate rotated vertex coordinates + + G4int noPolygonVertices=0; + G4ThreeVectorList* vertices = + CreateRotatedVertices(pTransform,noPolygonVertices); + + pMin=+kInfinity; + pMax=-kInfinity; + + noEntries=vertices->size(); // noPolygonVertices*noPhiCrossSections + noBetweenSections=noEntries-noPolygonVertices; + + G4ThreeVectorList ThetaPolygon; + for (i=0;i zTopCut+kRadTolerance/2.0) + { return in=kOutside; } + + rad2oo= sqr(p.x()/(xSemiAxis+kRadTolerance/2.)) + + sqr(p.y()/(ySemiAxis+kRadTolerance/2.)) + + sqr(p.z()/(zSemiAxis+kRadTolerance/2.)); + + if (rad2oo > 1.0) + { return in=kOutside; } + + rad2oi= sqr(p.x()*(1.0+kRadTolerance/2./xSemiAxis)/xSemiAxis) + + sqr(p.y()*(1.0+kRadTolerance/2./ySemiAxis)/ySemiAxis) + + sqr(p.z()*(1.0+kRadTolerance/2./zSemiAxis)/zSemiAxis); + + // Check radial surfaces + // sets `in' (already checked for rad2oo > 1.0) + // + if (rad2oi < 1.0) + { + in = ( (p.z() < zBottomCut+kRadTolerance/2.0) + || (p.z() > zTopCut-kRadTolerance/2.0) ) ? kSurface : kInside; + } + else + { + in = kSurface; + } + + return in; +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Return unit normal of surface closest to p not protected against p=0 + +G4ThreeVector G4Ellipsoid::SurfaceNormal( const G4ThreeVector& p) const +{ + G4double distR, distZBottom, distZTop; + + // normal vector with special magnitude: parallel to normal, units 1/length + // norm*p == 1.0 if on surface, >1.0 if outside, <1.0 if inside + // + G4ThreeVector norm(p.x()/(xSemiAxis*xSemiAxis), + p.y()/(ySemiAxis*ySemiAxis), + p.z()/(zSemiAxis*zSemiAxis)); + G4double radius = 1.0/norm.mag(); + + // approximate distance to curved surface + // + distR = std::fabs( (p*norm - 1.0) * radius ) / 2.0; + + // Distance to z-cut plane + // + distZBottom = std::fabs( p.z() - zBottomCut ); + distZTop = std::fabs( p.z() - zTopCut ); + + if ( (distZBottom < distR) || (distZTop < distR) ) + { + return G4ThreeVector(0.,0.,(distZBottom < distZTop) ? -1.0 : 1.0); + } + return ( norm *= radius ); +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Calculate distance to shape from outside, along normalised vector +// - return kInfinity if no intersection, or intersection distance <= tolerance +// + +G4double G4Ellipsoid::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const +{ + G4double distMin; + + distMin= kInfinity; + + // check to see if Z plane is relevant + if (p.z() < zBottomCut) { + if (v.z() <= 0.0) + return distMin; + G4double distZ = (zBottomCut - p.z()) / v.z(); + if (distZ > kRadTolerance/2.0 && Inside(p+distZ*v) != kOutside ) + { + // early exit since can't intercept curved surface if we reach here + return distMin= distZ; + } + } + if (p.z() > zTopCut) { + if (v.z() >= 0.0) + return distMin; + G4double distZ = (zTopCut - p.z()) / v.z(); + if (distZ > kRadTolerance/2.0 && Inside(p+distZ*v) != kOutside ) + { + // early exit since can't intercept curved surface if we reach here + return distMin= distZ; + } + } + // if fZCut1 <= p.z() <= fZCut2, then must hit curved surface + + // now check curved surface intercept + G4double A,B,C; + + A= sqr(v.x()/xSemiAxis) + sqr(v.y()/ySemiAxis) + sqr(v.z()/zSemiAxis); + C= sqr(p.x()/xSemiAxis) + sqr(p.y()/ySemiAxis) + sqr(p.z()/zSemiAxis) - 1.0; + B= 2.0 * ( p.x()*v.x()/(xSemiAxis*xSemiAxis) + p.y()*v.y()/(ySemiAxis*ySemiAxis) + + p.z()*v.z()/(zSemiAxis*zSemiAxis) ); + + C= B*B - 4.0*A*C; + if (C > 0.0) + { + G4double distR= (-B - std::sqrt(C) ) / (2.0*A); + G4double intZ= p.z()+distR*v.z(); + if (distR > kRadTolerance/2.0 + && intZ >= zBottomCut-kRadTolerance/2.0 + && intZ <= zTopCut+kRadTolerance/2.0) + { + distMin = distR; + } + else + { + distR= (-B + std::sqrt(C) ) / (2.0*A); + intZ= p.z()+distR*v.z(); + if (distR > kRadTolerance/2.0 + && intZ >= zBottomCut-kRadTolerance/2.0 + && intZ <= zTopCut+kRadTolerance/2.0) + { + distMin = distR; + } + } + } + + return distMin; +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Calculate distance (<= actual) to closest surface of shape from outside +// - Return 0 if point inside + +G4double G4Ellipsoid::DistanceToIn(const G4ThreeVector& p) const +{ + G4double distR, distZ; + + // normal vector: parallel to normal, magnitude 1/(characteristic radius) + // + G4ThreeVector norm(p.x()/(xSemiAxis*xSemiAxis), + p.y()/(ySemiAxis*ySemiAxis), + p.z()/(zSemiAxis*zSemiAxis)); + G4double radius= 1.0/norm.mag(); + + // approximate distance to curved surface ( <= actual distance ) + // + distR= (p*norm - 1.0) * radius / 2.0; + + // Distance to z-cut plane + // + distZ= zBottomCut - p.z(); + if (distZ < 0.0) + { + distZ = p.z() - zTopCut; + } + + // Distance to closest surface from outside + // + if (distZ < 0.0) + { + return (distR < 0.0) ? 0.0 : distR; + } + else if (distR < 0.0) + { + return distZ; + } + else + { + return (distZ < distR) ? distZ : distR; + } +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Calculate distance to surface of shape from `inside', allowing for tolerance + +G4double G4Ellipsoid::DistanceToOut(const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const +{ + G4double distMin; + enum surface_e {kPlaneSurf, kCurvedSurf, kNoSurf} surface; + + distMin= kInfinity; + surface= kNoSurf; + + // check to see if Z plane is relevant + // + if (v.z() < 0.0) + { + G4double distZ = (zBottomCut - p.z()) / v.z(); + if (distZ < 0.0) + { + distZ= 0.0; + if (!calcNorm) {return 0.0;} + } + distMin= distZ; + surface= kPlaneSurf; + } + if (v.z() > 0.0) + { + G4double distZ = (zTopCut - p.z()) / v.z(); + if (distZ < 0.0) + { + distZ= 0.0; + if (!calcNorm) {return 0.0;} + } + distMin= distZ; + surface= kPlaneSurf; + } + + // normal vector: parallel to normal, magnitude 1/(characteristic radius) + // + G4ThreeVector nearnorm(p.x()/(xSemiAxis*xSemiAxis), + p.y()/(ySemiAxis*ySemiAxis), + p.z()/(zSemiAxis*zSemiAxis)); + + // now check curved surface intercept + // + G4double A,B,C; + + A= sqr(v.x()/xSemiAxis) + sqr(v.y()/ySemiAxis) + sqr(v.z()/zSemiAxis); + C= (p * nearnorm) - 1.0; + B= 2.0 * (v * nearnorm); + + C= B*B - 4.0*A*C; + if (C > 0.0) + { + G4double distR= (-B + std::sqrt(C) ) / (2.0*A); + if (distR < 0.0) + { + distR= 0.0; + if (!calcNorm) {return 0.0;} + } + if (distR < distMin) + { + distMin= distR; + surface= kCurvedSurf; + } + } + + // set normal if requested + // + if (calcNorm) + { + if (surface == kNoSurf) + { + *validNorm = false; + } + else + { + *validNorm = true; + switch (surface) + { + case kPlaneSurf: + *n= G4ThreeVector(0.,0.,(v.z() > 1.0 ? 1. : -1.)); + break; + case kCurvedSurf: + { + G4ThreeVector pexit= p + distMin*v; + G4ThreeVector truenorm(pexit.x()/(xSemiAxis*xSemiAxis), + pexit.y()/(ySemiAxis*ySemiAxis), + pexit.z()/(zSemiAxis*zSemiAxis)); + truenorm *= 1.0/truenorm.mag(); + *n= truenorm; + } break; + default: + G4cout.precision(16); + G4cout << G4endl; + DumpInfo(); + G4cout << "Position:" << G4endl << G4endl; + G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl; + G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl; + G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl; + G4cout << "Direction:" << G4endl << G4endl; + G4cout << "v.x() = " << v.x() << G4endl; + G4cout << "v.y() = " << v.y() << G4endl; + G4cout << "v.z() = " << v.z() << G4endl << G4endl; + G4cout << "Proposed distance :" << G4endl << G4endl; + G4cout << "distMin = " << distMin/mm << " mm" << G4endl << G4endl; + G4Exception("G4Ellipsoid::DistanceToOut(p,v,..)", + "Notification", JustWarning, + "Undefined side for valid surface normal to solid."); + break; + } + } + } + return distMin; +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Calculate distance (<=actual) to closest surface of shape from inside + +G4double G4Ellipsoid::DistanceToOut(const G4ThreeVector& p) const +{ + G4double distR, distZ; + +#ifdef G4SPECSDEBUG + if( Inside(p) == kOutside ) + { + G4cout.precision(16) ; + G4cout << G4endl ; + DumpInfo(); + G4cout << "Position:" << G4endl << G4endl ; + G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; + G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; + G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; + G4Exception("G4Ellipsoid::DistanceToOut(p)", "Notification", JustWarning, + "Point p is outside !?" ); + } +#endif + + // Normal vector: parallel to normal, magnitude 1/(characteristic radius) + // + G4ThreeVector norm(p.x()/(xSemiAxis*xSemiAxis), + p.y()/(ySemiAxis*ySemiAxis), + p.z()/(zSemiAxis*zSemiAxis)); + + // the following is a safe inlined "radius= min(1.0/norm.mag(),p.mag()) + // + G4double radius= p.mag(); + G4double tmp= norm.mag(); + if ( (tmp > 0.0) && (1.0 < radius*tmp) ) {radius = 1.0/tmp;} + + // Approximate distance to curved surface ( <= actual distance ) + // + distR = (1.0 - p*norm) * radius / 2.0; + + // Distance to z-cut plane + // + distZ = p.z() - zBottomCut; + if (distZ < 0.0) {distZ= zTopCut - p.z();} + + // Distance to closest surface from inside + // + if ( (distZ < 0.0) || (distR < 0.0) ) + { + return 0.0; + } + else + { + return (distZ < distR) ? distZ : distR; + } +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Create a List containing the transformed vertices +// Ordering [0-3] -fDz cross section +// [4-7] +fDz cross section such that [0] is below [4], +// [1] below [5] etc. +// Note: +// Caller has deletion resposibility +// Potential improvement: For last slice, use actual ending angle +// to avoid rounding error problems. + +G4ThreeVectorList* +G4Ellipsoid::CreateRotatedVertices(const G4AffineTransform& pTransform, + G4int& noPolygonVertices) const +{ + G4ThreeVectorList *vertices; + G4ThreeVector vertex; + G4double meshAnglePhi, meshRMaxFactor, + crossAnglePhi, coscrossAnglePhi, sincrossAnglePhi, sAnglePhi; + G4double meshTheta, crossTheta, startTheta; + G4double rMaxX, rMaxY, rMaxZ, rMaxMax, rx, ry, rz; + G4int crossSectionPhi, noPhiCrossSections, crossSectionTheta, noThetaSections; + + // Phi cross sections + // + noPhiCrossSections=G4int (twopi/kMeshAngleDefault)+1; + + if (noPhiCrossSectionskMaxMeshSections) + { + noPhiCrossSections=kMaxMeshSections; + } + meshAnglePhi=twopi/(noPhiCrossSections-1); + + // Set start angle such that mesh will be at fRMax + // on the x axis. Will give better extent calculations when not rotated. + + sAnglePhi = -meshAnglePhi*0.5; + + // Theta cross sections + + noThetaSections = G4int(pi/kMeshAngleDefault)+3; + + if (noThetaSectionskMaxMeshSections) + { + noThetaSections=kMaxMeshSections; + } + meshTheta= pi/(noThetaSections-2); + + // Set start angle such that mesh will be at fRMax + // on the z axis. Will give better extent calculations when not rotated. + + startTheta = -meshTheta*0.5; + + meshRMaxFactor = 1.0/std::cos(0.5* + std::sqrt(meshAnglePhi*meshAnglePhi+meshTheta*meshTheta)); + rMaxMax= (xSemiAxis > ySemiAxis ? xSemiAxis : ySemiAxis); + if (zSemiAxis > rMaxMax) rMaxMax= zSemiAxis; + rMaxX= xSemiAxis + rMaxMax*(meshRMaxFactor-1.0); + rMaxY= ySemiAxis + rMaxMax*(meshRMaxFactor-1.0); + rMaxZ= zSemiAxis + rMaxMax*(meshRMaxFactor-1.0); + G4double* cosCrossTheta = new G4double[noThetaSections]; + G4double* sinCrossTheta = new G4double[noThetaSections]; + vertices=new G4ThreeVectorList(noPhiCrossSections*noThetaSections); + if (vertices && cosCrossTheta && sinCrossTheta) + { + for (crossSectionTheta=0; crossSectionTheta zTopCut) + { rz= zTopCut; } + vertex= G4ThreeVector(rx,ry,rz); + vertices->push_back(pTransform.TransformPoint(vertex)); + } // Theta forward + } // Phi + noPolygonVertices = noThetaSections ; + } + else + { + DumpInfo(); + G4Exception("G4Ellipsoid::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); + } + + delete[] cosCrossTheta; + delete[] sinCrossTheta; + + return vertices; +} + +////////////////////////////////////////////////////////////////////////// +// +// G4EntityType + +G4GeometryType G4Ellipsoid::GetEntityType() const +{ + return G4String("G4Ellipsoid"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +std::ostream& G4Ellipsoid::StreamInfo( std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Ellipsoid\n" + << " Parameters: \n" + + << " semi-axis x: " << xSemiAxis/mm << " mm \n" + << " semi-axis y: " << ySemiAxis/mm << " mm \n" + << " semi-axis z: " << zSemiAxis/mm << " mm \n" + << " max semi-axis: " << semiAxisMax/mm << " mm \n" + << " lower cut plane level z: " << zBottomCut/mm << " mm \n" + << " upper cut plane level z: " << zTopCut/mm << " mm \n" + << "-----------------------------------------------------------\n"; + + return os; +} + +//////////////////////////////////////////////////////////////////// +// +// GetPointOnSurface + +G4ThreeVector G4Ellipsoid::GetPointOnSurface() const +{ + G4double aTop, aBottom, aCurved, chose, xRand, yRand, zRand, phi, theta; + G4double cosphi, sinphi, costheta, sintheta, alpha, beta, max1, max2, max3; + + max1 = xSemiAxis > ySemiAxis ? xSemiAxis : ySemiAxis; + max1 = max1 > zSemiAxis ? max1 : zSemiAxis; + if(max1 == xSemiAxis){max2 = ySemiAxis; max3 = zSemiAxis;} + else if(max1 == ySemiAxis){max2 = xSemiAxis; max3 = zSemiAxis;} + else {max2 = xSemiAxis; max3 = ySemiAxis; } + + phi = RandFlat::shoot(0.,2.*pi); + theta = RandFlat::shoot(0.,pi); + + cosphi = std::cos(phi); sinphi = std::sin(phi); + costheta = RandFlat::shoot(zBottomCut,zTopCut)/zSemiAxis; + sintheta = std::sqrt(1.-sqr(costheta)); + + alpha = 1.-sqr(max2/max1); beta = 1.-sqr(max3/max1); + + aTop = pi*xSemiAxis*ySemiAxis*(1 - sqr(zTopCut/zSemiAxis)); + aBottom = pi*xSemiAxis*ySemiAxis*(1 - sqr(zBottomCut/zSemiAxis)); + + // approximation + // from:" http://www.citr.auckland.ac.nz/techreports/2004/CITR-TR-139.pdf" + aCurved = 4.*pi*max1*max2*(1.-1./6.*(alpha+beta)- + 1./120.*(3.*sqr(alpha)+2.*alpha*beta+3.*sqr(beta))); + + aCurved *= 0.5*(1.2*zTopCut/zSemiAxis - 1.2*zBottomCut/zSemiAxis); + + if( ( zTopCut >= zSemiAxis && zBottomCut <= -1.*zSemiAxis ) + || ( zTopCut == 0 && zBottomCut ==0 ) ) + { + aTop = 0; aBottom = 0; + } + + chose = RandFlat::shoot(0.,aTop + aBottom + aCurved); + + if(chose < aCurved) + { + xRand = xSemiAxis*sintheta*cosphi; + yRand = ySemiAxis*sintheta*sinphi; + zRand = zSemiAxis*costheta; + return G4ThreeVector (xRand,yRand,zRand); + } + else if(chose >= aCurved && chose < aCurved + aTop) + { + xRand = RandFlat::shoot(-1.,1.)*xSemiAxis + * std::sqrt(1-sqr(zTopCut/zSemiAxis)); + yRand = RandFlat::shoot(-1.,1.)*ySemiAxis + * std::sqrt(1.-sqr(zTopCut/zSemiAxis)-sqr(xRand/xSemiAxis)); + zRand = zTopCut; + return G4ThreeVector (xRand,yRand,zRand); + } + else + { + xRand = RandFlat::shoot(-1.,1.)*xSemiAxis + * std::sqrt(1-sqr(zBottomCut/zSemiAxis)); + yRand = RandFlat::shoot(-1.,1.)*ySemiAxis + * std::sqrt(1.-sqr(zBottomCut/zSemiAxis)-sqr(xRand/xSemiAxis)); + zRand = zBottomCut; + return G4ThreeVector (xRand,yRand,zRand); + } +} + +///////////////////////////////////////////////////////////////////////////// +// +// Methods for visualisation + +void G4Ellipsoid::DescribeYourselfTo (G4VGraphicsScene& scene) const +{ + scene.AddSolid(*this); +} + +G4VisExtent G4Ellipsoid::GetExtent() const +{ + // Define the sides of the box into which the G4Ellipsoid instance would fit. + // + return G4VisExtent (-semiAxisMax, semiAxisMax, + -semiAxisMax, semiAxisMax, + -semiAxisMax, semiAxisMax); +} + +G4NURBS* G4Ellipsoid::CreateNURBS () const +{ + // Box for now!!! + // + return new G4NURBSbox(semiAxisMax, semiAxisMax, semiAxisMax); +} + +G4Polyhedron* G4Ellipsoid::CreatePolyhedron () const +{ + return new G4PolyhedronEllipsoid(xSemiAxis, ySemiAxis, zSemiAxis, + zBottomCut, zTopCut); +} + +G4Polyhedron* G4Ellipsoid::GetPolyhedron () const +{ + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } + return fpPolyhedron; +} diff --git a/source/geometry/solids/specific/src/G4EllipticalCone.cc b/source/geometry/solids/specific/src/G4EllipticalCone.cc new file mode 100644 index 0000000000..f8f311cfef --- /dev/null +++ b/source/geometry/solids/specific/src/G4EllipticalCone.cc @@ -0,0 +1,816 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4EllipticalCone.cc,v 1.7 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Implementation of G4EllipticalCone class +// +// This code implements an Elliptical Cone given explicitly by the +// equation: +// x^2/a^2 + y^2/b^2 = (z-h)^2 +// and specified by the parameters (a,b,h) and a cut parallel to the +// xy plane above z = 0. +// +// Author: Dionysios Anninos +// +// -------------------------------------------------------------------- + +#include "globals.hh" + +#include "G4EllipticalCone.hh" + +#include "G4ClippablePolygon.hh" +#include "G4SolidExtentList.hh" +#include "G4VoxelLimits.hh" +#include "G4AffineTransform.hh" + +#include "meshdefs.hh" + +#include "Randomize.hh" + +#include "G4VGraphicsScene.hh" +#include "G4Polyhedron.hh" +#include "G4NURBS.hh" +#include "G4NURBSbox.hh" +#include "G4VisExtent.hh" + +using namespace CLHEP; + +////////////////////////////////////////////////////////////////////// +// +// Constructor - check parameters +// +G4EllipticalCone::G4EllipticalCone(const G4String& pName, + G4double pxSemiAxis, + G4double pySemiAxis, + G4double pzMax, + G4double pzTopCut) + : G4VSolid(pName), fpPolyhedron(0), fCubicVolume(0.) +{ + + // Check Semi-Axis + // + if ( (pxSemiAxis > 0.) && (pySemiAxis > 0.) && (pzMax > 0.) ) + { + SetSemiAxis( pxSemiAxis, pySemiAxis, pzMax ); + } + else + { + G4cerr << "ERROR - G4EllipticalCone::G4EllipticalCone(): " + << GetName() << G4endl + << " Invalid semi-axis or height!" << G4endl; + G4Exception("G4EllipticalCone::G4EllipticalCone()", "InvalidSetup", + FatalException, "Invalid semi-axis or height."); + } + + if ( pzTopCut > 0 ) + { + SetZCut(pzTopCut); + } + else + { + G4cerr << "ERROR - G4EllipticalCone::G4EllipticalCone(): " + << GetName() << G4endl + << " Invalid z-coordinate for cutting plane !" << G4endl; + G4Exception("G4EllipticalCone::G4EllipticalCone()", "InvalidSetup", + FatalException, "Invalid z-coordinate for cutting plane."); + } +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4EllipticalCone::G4EllipticalCone( __void__& a ) + : G4VSolid(a), fpPolyhedron(0), fCubicVolume(0.) +{ +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Destructor +// +G4EllipticalCone::~G4EllipticalCone() +{ +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Calculate extent under transform and specified limit +// +G4bool +G4EllipticalCone::CalculateExtent( const EAxis axis, + const G4VoxelLimits &voxelLimit, + const G4AffineTransform &transform, + G4double &min, G4double &max ) const +{ + G4SolidExtentList extentList( axis, voxelLimit ); + + // + // We are going to divide up our elliptical face into small pieces + // + + // + // Choose phi size of our segment(s) based on constants as + // defined in meshdefs.hh + // + G4int numPhi = kMaxMeshSections; + G4double sigPhi = twopi/numPhi; + + // + // We have to be careful to keep our segments completely outside + // of the elliptical surface. To do so we imagine we have + // a simple (unit radius) circular cross section (as in G4Tubs) + // and then "stretch" the dimensions as necessary to fit the ellipse. + // + G4double rFudge = 1.0/std::cos(0.5*sigPhi); + G4double dxFudgeBot = xSemiAxis*2.*zheight*rFudge, + dyFudgeBot = ySemiAxis*2.*zheight*rFudge; + G4double dxFudgeTop = xSemiAxis*(zheight-zTopCut)*rFudge, + dyFudgeTop = ySemiAxis*(zheight-zTopCut)*rFudge; + + // + // As we work around the elliptical surface, we build + // a "phi" segment on the way, and keep track of two + // additional polygons for the two ends. + // + G4ClippablePolygon endPoly1, endPoly2, phiPoly; + + G4double phi = 0, + cosPhi = std::cos(phi), + sinPhi = std::sin(phi); + G4ThreeVector v0( dxFudgeTop*cosPhi, dyFudgeTop*sinPhi, +zTopCut ), + v1( dxFudgeBot*cosPhi, dyFudgeBot*sinPhi, -zTopCut ), + w0, w1; + transform.ApplyPointTransform( v0 ); + transform.ApplyPointTransform( v1 ); + do + { + phi += sigPhi; + if (numPhi == 1) phi = 0; // Try to avoid roundoff + cosPhi = std::cos(phi), + sinPhi = std::sin(phi); + + w0 = G4ThreeVector( dxFudgeTop*cosPhi, dyFudgeTop*sinPhi, +zTopCut ); + w1 = G4ThreeVector( dxFudgeBot*cosPhi, dyFudgeBot*sinPhi, -zTopCut ); + transform.ApplyPointTransform( w0 ); + transform.ApplyPointTransform( w1 ); + + // + // Add a point to our z ends + // + endPoly1.AddVertexInOrder( v0 ); + endPoly2.AddVertexInOrder( v1 ); + + // + // Build phi polygon + // + phiPoly.ClearAllVertices(); + + phiPoly.AddVertexInOrder( v0 ); + phiPoly.AddVertexInOrder( v1 ); + phiPoly.AddVertexInOrder( w1 ); + phiPoly.AddVertexInOrder( w0 ); + + if (phiPoly.PartialClip( voxelLimit, axis )) + { + // + // Get unit normal + // + phiPoly.SetNormal( (v1-v0).cross(w0-v0).unit() ); + + extentList.AddSurface( phiPoly ); + } + + // + // Next vertex + // + v0 = w0; + v1 = w1; + } while( --numPhi > 0 ); + + // + // Process the end pieces + // + if (endPoly1.PartialClip( voxelLimit, axis )) + { + static const G4ThreeVector normal(0,0,+1); + endPoly1.SetNormal( transform.TransformAxis(normal) ); + extentList.AddSurface( endPoly1 ); + } + + if (endPoly2.PartialClip( voxelLimit, axis )) + { + static const G4ThreeVector normal(0,0,-1); + endPoly2.SetNormal( transform.TransformAxis(normal) ); + extentList.AddSurface( endPoly2 ); + } + + // + // Return min/max value + // + return extentList.GetExtent( min, max ); +} + +//////////////////////////////////////////////////////////////////////// +// +// Return whether point inside/outside/on surface +// Split into radius, phi, theta checks +// Each check modifies `in', or returns as approprate +// +EInside G4EllipticalCone::Inside(const G4ThreeVector& p) const +{ + G4double rad2oo, // outside surface outer tolerance + rad2oi; // outside surface inner tolerance + + EInside in; + + // check this side of z cut first, because that's fast + // + if ( (p.z() < -zTopCut - 0.5*kCarTolerance) + || (p.z() > zTopCut + 0.5*kCarTolerance ) ) + { + return in = kOutside; + } + + rad2oo= sqr(p.x()/( xSemiAxis + 0.5*kRadTolerance )) + + sqr(p.y()/( ySemiAxis + 0.5*kRadTolerance )); + + if ( rad2oo > sqr( zheight-p.z() ) ) + { + return in = kOutside; + } + + rad2oi= sqr( p.x()*(1.0 + 0.5*kRadTolerance/(xSemiAxis*xSemiAxis)) ) + + sqr( p.y()*(1.0 + 0.5*kRadTolerance/(ySemiAxis*ySemiAxis)) ); + + if (rad2oi < sqr( zheight-p.z() ) ) + { + in = ( ( p.z() < -zTopCut + 0.5*kRadTolerance ) + || ( p.z() > zTopCut - 0.5*kRadTolerance ) ) ? kSurface : kInside; + } + else + { + in = kSurface; + } + + return in; +} + +///////////////////////////////////////////////////////////////////////// +// +// Return unit normal of surface closest to p not protected against p=0 +// +G4ThreeVector G4EllipticalCone::SurfaceNormal( const G4ThreeVector& p) const +{ + + G4double rx = sqr(p.x()/xSemiAxis), + ry = sqr(p.y()/ySemiAxis); + + G4double rad = std::sqrt(rx + ry); + + G4ThreeVector norm; + + if( (p.z() < -zTopCut) && ((rx+ry) < sqr(zTopCut + zheight)) ) + { + return G4ThreeVector( 0., 0., -1. ); + } + + if( (p.z() > (zheight > zTopCut ? zheight : zTopCut)) && + ((rx+ry) < sqr(zheight-zTopCut)) ) + { + return G4ThreeVector( 0., 0., 1. ); + } + + if( p.z() > rad + 2.*zTopCut - zheight ) + { + if ( p.z() > zTopCut ) + { + if( p.x() == 0. ) + { + norm = G4ThreeVector( 0., p.y() < 0. ? -1. : 1., 1. ); + return norm /= norm.mag(); + } + if( p.y() == 0. ) + { + norm = G4ThreeVector( p.x() < 0. ? -1. : 1., 0., 1. ); + return norm /= norm.mag(); + } + + G4double m = std::fabs(p.x()/p.y()); + G4double c2 = sqr(zheight-zTopCut)/(1./sqr(xSemiAxis)+sqr(m/ySemiAxis)); + G4double x = std::sqrt(c2); + G4double y = m*x; + + x /= sqr(xSemiAxis); + y /= sqr(ySemiAxis); + + norm = G4ThreeVector( p.x() < 0. ? -x : x, + p.y() < 0. ? -y : y, + zheight - zTopCut ); + norm /= norm.mag(); + norm += G4ThreeVector( 0., 0., 1. ); + return norm /= norm.mag(); + } + + return G4ThreeVector( 0., 0., 1. ); + } + + if( p.z() < rad - 2.*zTopCut - zheight ) + { + if( p.x() == 0. ) + { + norm = G4ThreeVector( 0., p.y() < 0. ? -1. : 1., -1. ); + return norm /= norm.mag(); + } + if( p.y() == 0. ) + { + norm = G4ThreeVector( p.x() < 0. ? -1. : 1., 0., -1. ); + return norm /= norm.mag(); + } + + G4double m = std::fabs(p.x()/p.y()); + G4double c2 = sqr(zheight+zTopCut)/(1./sqr(xSemiAxis)+sqr(m/ySemiAxis)); + G4double x = std::sqrt(c2); + G4double y = m*x; + + x /= sqr(xSemiAxis); + y /= sqr(ySemiAxis); + + norm = G4ThreeVector( p.x() < 0. ? -x : x, + p.y() < 0. ? -y : y, + zheight - zTopCut ); + norm /= norm.mag(); + norm += G4ThreeVector( 0., 0., -1. ); + return norm /= norm.mag(); + } + + norm = G4ThreeVector(p.x()/sqr(xSemiAxis), p.y()/sqr(ySemiAxis), rad); + + G4double m = std::tan(pi/8.); + G4double c = -zTopCut - m*(zTopCut + zheight); + + if( p.z() < -m*rad + c ) + return G4ThreeVector (0.,0.,-1.); + + return norm /= norm.mag(); +} + +////////////////////////////////////////////////////////////////////////// +// +// Calculate distance to shape from outside, along normalised vector +// return kInfinity if no intersection, or intersection distance <= tolerance +// +G4double G4EllipticalCone::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const +{ + G4double distMin = kInfinity; + + // check to see if Z plane is relevant + // + if (p.z() < -zTopCut - 0.5*kCarTolerance) + { + if (v.z() <= 0.0) + return distMin; + + G4double lambda = (-zTopCut - p.z())/v.z(); + + if ( sqr((lambda*v.x()+p.x())/xSemiAxis) + + sqr((lambda*v.y()+p.y())/ySemiAxis) <= + sqr(zTopCut + zheight + 0.5*kRadTolerance) ) + { + return distMin = std::fabs(lambda); + } + } + + if (p.z() > zTopCut+0.5*kCarTolerance) + { + if (v.z() >= 0.0) + { return distMin; } + + G4double lambda = (zTopCut - p.z()) / v.z(); + + if ( sqr((lambda*v.x() + p.x())/xSemiAxis) + + sqr((lambda*v.y() + p.y())/ySemiAxis) <= + sqr(zheight - zTopCut + 0.5*kRadTolerance) ) + { + return distMin = std::fabs(lambda); + } + } + + if (p.z() > zTopCut - 0.5*kCarTolerance) + { + if (v.z() > 0.) + return kInfinity; + + return distMin = 0.; + } + + if (p.z() < -zTopCut + 0.5*kCarTolerance) + { + if (v.z() < 0.) + return distMin = kInfinity; + + return distMin = 0.; + } + + // if we are here then it either intersects or grazes the curved surface + // or it does not intersect at all + // + G4double A = sqr(v.x()/xSemiAxis) + sqr(v.y()/ySemiAxis) - sqr(v.z()); + G4double B = 2*(v.x()*p.x()/sqr(xSemiAxis) + + v.y()*p.y()/sqr(ySemiAxis) + v.z()*(zheight-p.z())); + G4double C = sqr(p.x()/xSemiAxis) + sqr(p.y()/ySemiAxis) - + sqr(zheight - p.z()); + + G4double discr = B*B - 4.*A*C; + + // if the discriminant is negative it never hits the curved object + // + if ( discr < -0.5*kCarTolerance ) + { return distMin; } + + //case below is when it hits or grazes the surface + // + if ( (discr >= - 0.5*kCarTolerance ) && (discr < 0.5*kCarTolerance ) ) + { + return distMin = std::fabs(-B/(2.*A)); + } + + G4double plus = (-B+std::sqrt(discr))/(2.*A); + G4double minus = (-B-std::sqrt(discr))/(2.*A); + G4double lambda = std::fabs(plus) < std::fabs(minus) ? plus : minus; + + return std::fabs(lambda); +} + +////////////////////////////////////////////////////////////////////////// +// +// Calculate distance (<= actual) to closest surface of shape from outside +// Return 0 if point inside +// +G4double G4EllipticalCone::DistanceToIn(const G4ThreeVector& p) const +{ + G4double distR, distR2, distZ, maxDim; + G4double distRad; + + // check if the point lies either below z=-zTopCut in bottom elliptical region + // or on top within cut elliptical region + // + if( (p.z() < -zTopCut) && (sqr(p.x()/xSemiAxis) + sqr(p.y()/ySemiAxis) + < sqr(zTopCut + zheight + 0.5*kCarTolerance )) ) + { + return distZ = std::fabs(zTopCut - p.z()); + } + + if( (p.z() > zTopCut) && (sqr(p.x()/xSemiAxis)+sqr(p.y()/ySemiAxis) + < sqr(zheight - zTopCut + kCarTolerance/2.0 )) ) + { + return distZ = std::fabs(p.z() - zTopCut); + } + + // below we use the following approximation: we take the largest of the + // axes and find the shortest distance to the circular (cut) cone of that + // radius. + // + maxDim = xSemiAxis >= ySemiAxis ? xSemiAxis:ySemiAxis; + distRad = std::sqrt(p.x()*p.x()+p.y()*p.y()); + + if( p.z() > maxDim*distRad + zTopCut*(1.+maxDim)-sqr(maxDim)*zheight ) + { + distR2 = sqr(p.z() - zTopCut) + sqr(distRad - maxDim*(zheight - zTopCut)); + return std::sqrt( distR2 ); + } + + if( distRad > maxDim*( zheight - p.z() ) ) + { + if( p.z() > maxDim*distRad - (zTopCut*(1.+maxDim)+sqr(maxDim)*zheight) ) + { + G4double zVal = (p.z()-maxDim*(distRad-maxDim*zheight))/(1.+sqr(maxDim)); + G4double rVal = maxDim*(zheight - zVal); + return distR = std::sqrt(sqr(p.z() - zVal) + sqr(distRad - rVal)); + } + } + + if( distRad <= maxDim*(zheight - p.z()) ) + { + distR2 = sqr(distRad - maxDim*(zheight + zTopCut)) + sqr(p.z() + zTopCut); + return std::sqrt( distR2 ); + } + + return distR = 0; +} + +///////////////////////////////////////////////////////////////////////// +// +// Calculate distance to surface of shape from `inside', +// allowing for tolerance +// +G4double G4EllipticalCone::DistanceToOut(const G4ThreeVector& p, + const G4ThreeVector& v, + const G4bool calcNorm, + G4bool *validNorm, + G4ThreeVector *n ) const +{ + G4double distMin, lambda; + enum surface_e {kPlaneSurf, kCurvedSurf, kNoSurf} surface; + + distMin = kInfinity; + surface = kNoSurf; + + if (v.z() < 0.0) + { + lambda = (-p.z() - zTopCut)/v.z(); + if ( (sqr((p.x() + lambda*v.x())/xSemiAxis) + + sqr((p.y() + lambda*v.y())/ySemiAxis)) < + sqr(zheight + zTopCut + 0.5*kCarTolerance) ) + { + distMin = std::fabs(lambda); + if (!calcNorm) { return distMin; } + } + distMin = std::fabs(lambda); + surface = kPlaneSurf; + } + + if (v.z() > 0.0) + { + lambda = (zTopCut - p.z()) / v.z(); + if ( (sqr((p.x() + lambda*v.x())/xSemiAxis) + + sqr((p.y() + lambda*v.y())/ySemiAxis) ) + < (sqr(zheight - zTopCut + 0.5*kCarTolerance)) ) + { + distMin = std::fabs(lambda); + if (!calcNorm) { return distMin; } + } + distMin = std::fabs(lambda); + surface = kPlaneSurf; + } + + // if we are here then it either intersects or grazes the + // curved surface... + // + G4double A = sqr(v.x()/xSemiAxis) + sqr(v.y()/ySemiAxis) - sqr(v.z()); + G4double B = 2.*(v.x()*p.x()/sqr(xSemiAxis) + + v.y()*p.y()/sqr(ySemiAxis) + v.z()*(zheight-p.z())); + G4double C = sqr(p.x()/xSemiAxis) + sqr(p.y()/ySemiAxis) + - sqr(zheight - p.z()); + + G4double discr = B*B - 4.*A*C; + + if ( discr >= - 0.5*kCarTolerance && discr < 0.5*kCarTolerance ) + { + if(!calcNorm) { return distMin = std::fabs(-B/(2.*A)); } + } + + else if ( discr > 0.5*kCarTolerance ) + { + G4double plus = (-B+std::sqrt(discr))/(2.*A); + G4double minus = (-B-std::sqrt(discr))/(2.*A); + + lambda = std::fabs(plus) < std::fabs(minus) ? plus:minus; + distMin = std::fabs(lambda); + surface = kCurvedSurf; + } + + // set normal if requested + // + if (calcNorm) + { + if (surface == kNoSurf) + { + *validNorm = false; + } + else + { + *validNorm = true; + switch (surface) + { + case kPlaneSurf: + { + *n = G4ThreeVector(0.,0.,(v.z() > 0.0 ? 1. : -1.)); + } + break; + + case kCurvedSurf: + { + G4ThreeVector pexit = p + distMin*v; + G4ThreeVector truenorm(pexit.x()/(xSemiAxis*xSemiAxis), + pexit.y()/(ySemiAxis*ySemiAxis), + pexit.z() - zheight); + truenorm /= truenorm.mag(); + *n= truenorm; + } + break; + + default: + G4cout.precision(16); + G4cout << G4endl; + DumpInfo(); + G4cout << "Position:" << G4endl << G4endl; + G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl; + G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl; + G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl; + G4cout << "Direction:" << G4endl << G4endl; + G4cout << "v.x() = " << v.x() << G4endl; + G4cout << "v.y() = " << v.y() << G4endl; + G4cout << "v.z() = " << v.z() << G4endl << G4endl; + G4cout << "Proposed distance :" << G4endl << G4endl; + G4cout << "distMin = " << distMin/mm << " mm" << G4endl << G4endl; + G4Exception("G4EllipticalCone::DistanceToOut(p,v,..)", + "Notification", JustWarning, + "Undefined side for valid surface normal to solid."); + break; + } + } + } + return distMin; +} + +///////////////////////////////////////////////////////////////////////// +// +// Calculate distance (<=actual) to closest surface of shape from inside +// +G4double G4EllipticalCone::DistanceToOut(const G4ThreeVector& p) const +{ + G4double rad, distR, distZ, distMin=0.; + G4double minAxis = xSemiAxis < ySemiAxis ? xSemiAxis : ySemiAxis; + +#ifdef G4SPECSDEBUG + if( Inside(p) == kOutside ) + { + G4cout.precision(16) ; + G4cout << G4endl ; + DumpInfo(); + G4cout << "Position:" << G4endl << G4endl ; + G4cout << "p.x() = " << p.x()/mm << " mm" << G4endl ; + G4cout << "p.y() = " << p.y()/mm << " mm" << G4endl ; + G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; + G4Exception("G4Ellipsoid::DistanceToOut(p)", "Notification", JustWarning, + "Point p is outside !?" ); + } +#endif + + // since we have made the above warning, below we are working assuming p + // is inside check how close it is to the circular cone with radius equal + // to the smaller of the axes + // + if( sqr(p.x()/minAxis)+sqr(p.y()/minAxis) < sqr(zheight - p.z()) ) + { + rad = std::sqrt(sqr(p.x()) + sqr(p.y())); + distZ = p.z() + (distMin*(rad-distMin*zheight)-p.z())/(1+sqr(distMin)); + distR = rad-(distMin*(zheight-distZ )); + distMin = std::sqrt(sqr(distR) + sqr(distZ)); + distMin = distMin < std::fabs(p.z() + zTopCut) + ? distMin : std::fabs(p.z() + zTopCut); + distMin = distMin < std::fabs(zTopCut - p.z()) + ? distMin : std::fabs(zTopCut - p.z()); + } + + return distMin; +} + +////////////////////////////////////////////////////////////////////////// +// +// GetEntityType +// +G4GeometryType G4EllipticalCone::GetEntityType() const +{ + return G4String("G4EllipticalCone"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream +// +std::ostream& G4EllipticalCone::StreamInfo( std::ostream& os ) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4EllipticalCone\n" + << " Parameters: \n" + + << " semi-axis x: " << xSemiAxis/mm << " mm \n" + << " semi-axis y: " << ySemiAxis/mm << " mm \n" + << " height z: " << zheight/mm << " mm \n" + << " half length in z: " << zTopCut/mm << " mm \n" + << "-----------------------------------------------------------\n"; + + return os; +} + +///////////////////////////////////////////////////////////////////////// +// +// GetPointOnSurface +// +// returns quasi-uniformly distributed point on surface of elliptical cone +// +G4ThreeVector G4EllipticalCone::GetPointOnSurface() const +{ + + G4double phi, sinphi, cosphi, aOne, aTwo, aThree, + chose, zRand, rRand1, rRand2; + + G4double rOne = std::sqrt(sqr(xSemiAxis) + + sqr(ySemiAxis))*(zheight - zTopCut); + G4double rTwo = std::sqrt(sqr(xSemiAxis) + + sqr(ySemiAxis))*(zheight + zTopCut); + + aOne = pi*(rOne + rTwo)*std::sqrt(sqr(rOne - rTwo)+sqr(2.*zTopCut)); + aTwo = pi*xSemiAxis*ySemiAxis*sqr(zheight+zTopCut); + aThree = pi*xSemiAxis*ySemiAxis*sqr(zheight-zTopCut); + + phi = RandFlat::shoot(0.,twopi); + cosphi = std::cos(phi); + sinphi = std::sin(phi); + + if(zTopCut >= zheight) aThree = 0.; + + chose = RandFlat::shoot(0.,aOne+aTwo+aThree); + if((chose>=0.) && (chose=aOne) && (chose ySemiAxis ? xSemiAxis : ySemiAxis; + maxDim = maxDim > zTopCut ? maxDim : zTopCut; + + return G4VisExtent (-maxDim, maxDim, + -maxDim, maxDim, + -maxDim, maxDim); +} + +G4NURBS* G4EllipticalCone::CreateNURBS () const +{ + // Box for now!!! + // + return new G4NURBSbox(xSemiAxis, ySemiAxis,zheight); +} + +G4Polyhedron* G4EllipticalCone::CreatePolyhedron () const +{ + return new G4PolyhedronEllipticalCone(xSemiAxis, ySemiAxis, zheight, zTopCut); +} + +G4Polyhedron* G4EllipticalCone::GetPolyhedron () const +{ + if ( (!fpPolyhedron) + || (fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) ) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } + return fpPolyhedron; +} diff --git a/source/geometry/solids/specific/src/G4EllipticalTube.cc b/source/geometry/solids/specific/src/G4EllipticalTube.cc index 2b4b15629a..b3c883a7e7 100644 --- a/source/geometry/solids/specific/src/G4EllipticalTube.cc +++ b/source/geometry/solids/specific/src/G4EllipticalTube.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EllipticalTube.cc,v 1.22 2005/03/23 17:16:31 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EllipticalTube.cc,v 1.25 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -44,10 +44,14 @@ #include "G4VoxelLimits.hh" #include "meshdefs.hh" +#include "Randomize.hh" + #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4VisExtent.hh" +using namespace CLHEP; + // // Constructor // @@ -63,6 +67,15 @@ G4EllipticalTube::G4EllipticalTube( const G4String &name, } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4EllipticalTube::G4EllipticalTube( __void__& a ) + : G4VSolid(a), fCubicVolume(0.), fpPolyhedron(0) +{ +} + // // Destructor // @@ -675,68 +688,6 @@ G4double G4EllipticalTube::DistanceToOut( const G4ThreeVector& p ) const } -// -// CreatePolyhedron -// -G4Polyhedron* G4EllipticalTube::CreatePolyhedron() const -{ - // create cylinder with radius=1... - // - G4Polyhedron* eTube = new G4PolyhedronTube(0.,1.,dz); - - // apply non-uniform scaling... - // - eTube->Transform(G4Scale3D(dx,dy,1.)); - return eTube; -} - - -// -// GetEntityType -// -G4GeometryType G4EllipticalTube::GetEntityType() const -{ - return G4String("G4EllipticalTube"); -} - - -// -// Stream object contents to an output stream -// -std::ostream& G4EllipticalTube::StreamInfo(std::ostream& os) const -{ - os << "-----------------------------------------------------------\n" - << " *** Dump for solid - " << GetName() << " ***\n" - << " ===================================================\n" - << " Solid type: G4EllipticalTube\n" - << " Parameters: \n" - << " length Z: " << dz/mm << " mm \n" - << " surface equation in X and Y: \n" - << " (X / " << dx << ")^2 + (Y / " << dy << ")^2 = 1 \n" - << "-----------------------------------------------------------\n"; - - return os; -} - - -// -// DescribeYourselfTo -// -void G4EllipticalTube::DescribeYourselfTo( G4VGraphicsScene& scene ) const -{ - scene.AddSolid (*this); -} - - -// -// GetExtent -// -G4VisExtent G4EllipticalTube::GetExtent() const -{ - return G4VisExtent( -dx, dx, -dy, dy, -dz, dz ); -} - - // // IntersectXY // @@ -798,6 +749,15 @@ G4int G4EllipticalTube::IntersectXY( const G4ThreeVector &p, } +// +// GetEntityType +// +G4GeometryType G4EllipticalTube::GetEntityType() const +{ + return G4String("G4EllipticalTube"); +} + + // // GetCubicVolume // @@ -808,6 +768,98 @@ G4double G4EllipticalTube::GetCubicVolume() return fCubicVolume; } + +// +// Stream object contents to an output stream +// +std::ostream& G4EllipticalTube::StreamInfo(std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4EllipticalTube\n" + << " Parameters: \n" + << " length Z: " << dz/mm << " mm \n" + << " surface equation in X and Y: \n" + << " (X / " << dx << ")^2 + (Y / " << dy << ")^2 = 1 \n" + << "-----------------------------------------------------------\n"; + + return os; +} + + +// +// GetPointOnSurface +// +// Randomly generates a point on the surface, +// with ~ uniform distribution across surface. +// +G4ThreeVector G4EllipticalTube::GetPointOnSurface() const +{ + G4double xRand, yRand, zRand, phi, cosphi, sinphi, zArea, cArea,p, chose; + + phi = RandFlat::shoot(0., 2.*pi); + cosphi = std::cos(phi); + sinphi = std::sin(phi); + + // the ellipse perimeter from: "http://mathworld.wolfram.com/Ellipse.html" + // m = (dx - dy)/(dx + dy); + // k = 1.+1./4.*m*m+1./64.*sqr(m)*sqr(m)+1./256.*sqr(m)*sqr(m)*sqr(m); + // p = pi*(a+b)*k; + + // perimeter below from "http://www.efunda.com/math/areas/EllipseGen.cfm" + + p = 2.*pi*std::sqrt(0.5*(dx*dx+dy*dy)); + + cArea = 2.*dz*p; + zArea = pi*dx*dy; + + xRand = dx*cosphi; + yRand = dy*sinphi; + zRand = RandFlat::shoot(dz, -1.*dz); + + chose = RandFlat::shoot(0.,2.*zArea+cArea); + + if( (chose>=0) && (chose < cArea) ) + { + return G4ThreeVector (xRand,yRand,zRand); + } + else if( (chose >= cArea) && (chose < cArea + zArea) ) + { + xRand = RandFlat::shoot(-1.*dx,dx); + yRand = std::sqrt(1.-sqr(xRand/dx)); + yRand = RandFlat::shoot(-1.*yRand, yRand); + return G4ThreeVector (xRand,yRand,dz); + } + else + { + xRand = RandFlat::shoot(-1.*dx,dx); + yRand = std::sqrt(1.-sqr(xRand/dx)); + yRand = RandFlat::shoot(-1.*yRand, yRand); + return G4ThreeVector (xRand,yRand,-1.*dz); + } +} + + +// +// CreatePolyhedron +// +G4Polyhedron* G4EllipticalTube::CreatePolyhedron() const +{ + // create cylinder with radius=1... + // + G4Polyhedron* eTube = new G4PolyhedronTube(0.,1.,dz); + + // apply non-uniform scaling... + // + eTube->Transform(G4Scale3D(dx,dy,1.)); + return eTube; +} + + +// +// GetPolyhedron +// G4Polyhedron* G4EllipticalTube::GetPolyhedron () const { if (!fpPolyhedron || @@ -819,3 +871,21 @@ G4Polyhedron* G4EllipticalTube::GetPolyhedron () const } return fpPolyhedron; } + + +// +// DescribeYourselfTo +// +void G4EllipticalTube::DescribeYourselfTo( G4VGraphicsScene& scene ) const +{ + scene.AddSolid (*this); +} + + +// +// GetExtent +// +G4VisExtent G4EllipticalTube::GetExtent() const +{ + return G4VisExtent( -dx, dx, -dy, dy, -dz, dz ); +} diff --git a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc index 6a640ce6c9..faca30c3a1 100644 --- a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc +++ b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnclosingCylinder.cc,v 1.7 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EnclosingCylinder.cc,v 1.8 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -82,6 +82,14 @@ G4EnclosingCylinder::G4EnclosingCylinder( const G4ReduciblePolygon *rz, zHi += 10*kCarTolerance; } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4EnclosingCylinder::G4EnclosingCylinder( __void__& ) +{ +} + // // Destructor // diff --git a/source/geometry/solids/specific/src/G4Hype.cc b/source/geometry/solids/specific/src/G4Hype.cc index ea92a1b164..4644d1c817 100644 --- a/source/geometry/solids/specific/src/G4Hype.cc +++ b/source/geometry/solids/specific/src/G4Hype.cc @@ -21,9 +21,9 @@ // ******************************************************************** // // -// $Id: G4Hype.cc,v 1.19 2005/04/04 11:56:59 gcosmo Exp $ +// $Id: G4Hype.cc,v 1.23 2005/11/17 16:59:35 link Exp $ // $Original: G4Hype.cc,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -32,11 +32,6 @@ // // G4Hype.cc // -// This class implements in G4 the volume equivalent to the HYPE volume -// in Geant 3.21, i.e. a tube with hyperbolic profile. -// For further informations, please read G4Hype.history and G4Hype.doc, -// and the G4Hype.hh header. -// // -------------------------------------------------------------------- // // Authors: @@ -44,9 +39,6 @@ // Francesco Safai Tehrani (Francesco.SafaiTehrani@roma1.infn.it) // Rome, INFN & University of Rome "La Sapienza", 9 June 1998. // -// History: -// Updated Feb 2000 D.C. Williams -// // -------------------------------------------------------------------- #include "G4Hype.hh" @@ -60,6 +52,10 @@ #include "meshdefs.hh" +#include + +#include "Randomize.hh" + #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4VisExtent.hh" @@ -68,6 +64,8 @@ #include "G4NURBScylinder.hh" #include "G4NURBStubesector.hh" +using namespace CLHEP; + // Constructor - check parameters, and fills protected data members G4Hype::G4Hype(const G4String& pName, G4double newInnerRadius, @@ -135,6 +133,16 @@ G4Hype::G4Hype(const G4String& pName, } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Hype::G4Hype( __void__& a ) + : G4VSolid(a), fCubicVolume(0.), fpPolyhedron(0) +{ +} + + // // Destructor // @@ -1090,7 +1098,6 @@ G4double G4Hype::DistanceToOut( const G4ThreeVector& p, const G4ThreeVector& v, } - // // Calculate distance (<=actual) to closest surface of shape from inside // @@ -1120,66 +1127,6 @@ G4double G4Hype::DistanceToOut(const G4ThreeVector& p) const } -// -// GetEntityType -// -G4GeometryType G4Hype::GetEntityType() const -{ - return G4String("G4Hype"); -} - - -// -// Stream object contents to an output stream -// -std::ostream& G4Hype::StreamInfo(std::ostream& os) const -{ - os << "-----------------------------------------------------------\n" - << " *** Dump for solid - " << GetName() << " ***\n" - << " ===================================================\n" - << " Solid type: G4Hype\n" - << " Parameters: \n" - << " half length Z: " << halfLenZ/mm << " mm \n" - << " inner radius : " << innerRadius/mm << " mm \n" - << " outer radius : " << outerRadius/mm << " mm \n" - << " inner stereo angle : " << innerStereo/degree << " degrees \n" - << " outer stereo angle : " << outerStereo/degree << " degrees \n" - << "-----------------------------------------------------------\n"; - - return os; -} - - -void G4Hype::DescribeYourselfTo (G4VGraphicsScene& scene) const -{ - scene.AddSolid (*this); -} - -G4VisExtent G4Hype::GetExtent() const -{ - // Define the sides of the box into which the G4Tubs instance would fit. - // - return G4VisExtent( -endOuterRadius, endOuterRadius, - -endOuterRadius, endOuterRadius, - -halfLenZ, halfLenZ ); -} - -G4Polyhedron* G4Hype::CreatePolyhedron () const -{ - // Tube for now!!! - // - return new G4PolyhedronTube (endInnerRadius, endOuterRadius, halfLenZ); -} - -G4NURBS* G4Hype::CreateNURBS () const -{ - // Tube for now!!! - // - return new G4NURBStube(endInnerRadius, endOuterRadius, halfLenZ); -} - - - // // IntersectHype (static) // @@ -1364,6 +1311,16 @@ G4double G4Hype::ApproxDistInside( G4double pr, G4double pz, return std::fabs((pr-rh)*dr)/len; } + +// +// GetEntityType +// +G4GeometryType G4Hype::GetEntityType() const +{ + return G4String("G4Hype"); +} + + // // GetCubicVolume // @@ -1374,6 +1331,168 @@ G4double G4Hype::GetCubicVolume() return fCubicVolume; } + +// +// Stream object contents to an output stream +// +std::ostream& G4Hype::StreamInfo(std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Hype\n" + << " Parameters: \n" + << " half length Z: " << halfLenZ/mm << " mm \n" + << " inner radius : " << innerRadius/mm << " mm \n" + << " outer radius : " << outerRadius/mm << " mm \n" + << " inner stereo angle : " << innerStereo/degree << " degrees \n" + << " outer stereo angle : " << outerStereo/degree << " degrees \n" + << "-----------------------------------------------------------\n"; + + return os; +} + + + +// +// GetPointOnSurface +// +G4ThreeVector G4Hype::GetPointOnSurface() const +{ + G4double xRand, yRand, zRand, r2 , aOne, aTwo, aThree, chose, sinhu; + G4double phi, cosphi, sinphi, rBar2Out, rBar2In, alpha, t, rOut, rIn2, rOut2; + + // we use the formula of the area of a surface of revolution to compute + // the areas, using the equation of the hyperbola: + // x^2 + y^2 = (z*tanphi)^2 + r^2 + + rBar2Out = outerRadius2; + alpha = 2.*pi*rBar2Out*std::cos(outerStereo)/tanOuterStereo; + t = halfLenZ*tanOuterStereo/(outerRadius*std::cos(outerStereo)); + t = std::log(t+std::sqrt(sqr(t)+1)); + aOne = std::fabs(2.*alpha*(std::sinh(2.*t)/4.+t/2.)); + + + rBar2In = innerRadius2; + alpha = 2.*pi*rBar2In*std::cos(innerStereo)/tanInnerStereo; + t = halfLenZ*tanInnerStereo/(innerRadius*std::cos(innerStereo)); + t = std::log(t+std::sqrt(sqr(t)+1)); + aTwo = std::fabs(2.*alpha*(std::sinh(2.*t)/4.+t/2.)); + + aThree = pi*((outerRadius2+sqr(halfLenZ*tanOuterStereo) + -(innerRadius2+sqr(halfLenZ*tanInnerStereo)))); + + if(outerStereo == 0.) {aOne = std::fabs(2.*pi*outerRadius*2.*halfLenZ);} + if(innerStereo == 0.) {aTwo = std::fabs(2.*pi*innerRadius*2.*halfLenZ);} + + phi = RandFlat::shoot(0.,2.*pi); + cosphi = std::cos(phi); + sinphi = std::sin(phi); + sinhu = RandFlat::shoot(-1.*halfLenZ*tanOuterStereo/outerRadius, + halfLenZ*tanOuterStereo/outerRadius); + + chose = RandFlat::shoot(0.,aOne+aTwo+2.*aThree); + if(chose>=0. && chose < aOne) + { + if(outerStereo != 0.) + { + zRand = outerRadius*sinhu/tanOuterStereo; + xRand = std::sqrt(sqr(sinhu)+1)*outerRadius*cosphi; + yRand = std::sqrt(sqr(sinhu)+1)*outerRadius*sinphi; + return G4ThreeVector (xRand, yRand, zRand); + } + else + { + return G4ThreeVector(outerRadius*cosphi,outerRadius*sinphi, + RandFlat::shoot(-halfLenZ,halfLenZ)); + } + } + else if(chose>=aOne && chose=aOne+aTwo && chose= rIn2 && r2 <= rOut2 ) ) ; + + zRand = halfLenZ; + return G4ThreeVector (xRand, yRand, zRand); + } + else + { + rIn2 = innerRadius2+tanInnerStereo2*halfLenZ*halfLenZ; + rOut2 = outerRadius2+tanOuterStereo2*halfLenZ*halfLenZ; + rOut = std::sqrt(rOut2) ; + + do { + xRand = RandFlat::shoot(-rOut,rOut) ; + yRand = RandFlat::shoot(-rOut,rOut) ; + r2 = xRand*xRand + yRand*yRand ; + } while ( ! ( r2 >= rIn2 && r2 <= rOut2 ) ) ; + + zRand = -1.*halfLenZ; + return G4ThreeVector (xRand, yRand, zRand); + } +} + + +// +// DescribeYourselfTo +// +void G4Hype::DescribeYourselfTo (G4VGraphicsScene& scene) const +{ + scene.AddSolid (*this); +} + + +// +// GetExtent +// +G4VisExtent G4Hype::GetExtent() const +{ + // Define the sides of the box into which the G4Tubs instance would fit. + // + return G4VisExtent( -endOuterRadius, endOuterRadius, + -endOuterRadius, endOuterRadius, + -halfLenZ, halfLenZ ); +} + + +// +// CreatePolyhedron +// +G4Polyhedron* G4Hype::CreatePolyhedron() const +{ + // Tube for now!!! + // + return new G4PolyhedronTube (endInnerRadius, endOuterRadius, halfLenZ); +} + + +// +// GetPolyhedron +// G4Polyhedron* G4Hype::GetPolyhedron () const { if (!fpPolyhedron || @@ -1385,3 +1504,23 @@ G4Polyhedron* G4Hype::GetPolyhedron () const } return fpPolyhedron; } + + +// +// CreateNURBS +// +G4NURBS* G4Hype::CreateNURBS() const +{ + // Tube for now!!! + // + return new G4NURBStube(endInnerRadius, endOuterRadius, halfLenZ); +} + + +// +// asinh +// +G4double G4Hype::asinh(G4double arg) +{ + return std::log(arg+std::sqrt(sqr(arg)+1)); +} diff --git a/source/geometry/solids/specific/src/G4IntersectingCone.cc b/source/geometry/solids/specific/src/G4IntersectingCone.cc index 900cfcb703..bda074db38 100644 --- a/source/geometry/solids/specific/src/G4IntersectingCone.cc +++ b/source/geometry/solids/specific/src/G4IntersectingCone.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntersectingCone.cc,v 1.6 2004/12/02 09:31:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IntersectingCone.cc,v 1.7 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -81,6 +81,16 @@ G4IntersectingCone::G4IntersectingCone( const G4double r[2], } } + +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4IntersectingCone::G4IntersectingCone( __void__& ) +{ +} + + // // Destructor // diff --git a/source/geometry/solids/specific/src/G4PolyPhiFace.cc b/source/geometry/solids/specific/src/G4PolyPhiFace.cc index 9aeccaa81b..80ce9aff69 100644 --- a/source/geometry/solids/specific/src/G4PolyPhiFace.cc +++ b/source/geometry/solids/specific/src/G4PolyPhiFace.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyPhiFace.cc,v 1.8 2004/12/02 09:31:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PolyPhiFace.cc,v 1.9 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -258,6 +258,15 @@ void G4PolyPhiFace::Diagnose( G4VSolid *owner ) } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4PolyPhiFace::G4PolyPhiFace( __void__&) +{ +} + + // // Destructor // diff --git a/source/geometry/solids/specific/src/G4Polycone.cc b/source/geometry/solids/specific/src/G4Polycone.cc index 7637fa1398..2c73d5d527 100644 --- a/source/geometry/solids/specific/src/G4Polycone.cc +++ b/source/geometry/solids/specific/src/G4Polycone.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polycone.cc,v 1.20 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polycone.cc,v 1.28 2005/11/17 14:08:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -40,11 +40,15 @@ #include "G4PolyconeSide.hh" #include "G4PolyPhiFace.hh" +#include "Randomize.hh" + #include "G4Polyhedron.hh" #include "G4EnclosingCylinder.hh" #include "G4ReduciblePolygon.hh" #include "G4VPVParameterisation.hh" +using namespace CLHEP; + // // Constructor (GEANT3 style parameters) // @@ -55,7 +59,7 @@ G4Polycone::G4Polycone( const G4String& name, const G4double zPlane[], const G4double rInner[], const G4double rOuter[] ) - : G4VCSGfaceted( name ) + : G4VCSGfaceted( name ), genericPcon(false) { // // Some historical ugliness @@ -118,14 +122,16 @@ G4Polycone::G4Polycone( const G4String& name, G4int numRZ, const G4double r[], const G4double z[] ) - : G4VCSGfaceted( name ) + : G4VCSGfaceted( name ), genericPcon(true) { - original_parameters = 0; - G4ReduciblePolygon *rz = new G4ReduciblePolygon( r, z, numRZ ); Create( phiStart, phiTotal, rz ); + // Set original_parameters struct for consistency + // + SetOriginalParameters(); + delete rz; } @@ -299,6 +305,17 @@ void G4Polycone::Create( G4double phiStart, } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Polycone::G4Polycone( __void__& a ) + : G4VCSGfaceted(a), genericPcon(false), + original_parameters(0), enclosingCylinder(0) +{ +} + + // // Destructor // @@ -353,6 +370,7 @@ void G4Polycone::CopyStuff( const G4Polycone &source ) endPhi = source.endPhi; phiIsOpen = source.phiIsOpen; numCorner = source.numCorner; + genericPcon= source.genericPcon; // // The corner array @@ -387,7 +405,7 @@ void G4Polycone::CopyStuff( const G4Polycone &source ) // G4bool G4Polycone::Reset() { - if (!original_parameters) + if (genericPcon) { G4cerr << "Solid " << GetName() << " built using generic construct." << G4endl << "Specify original parameters first !" << G4endl; @@ -501,7 +519,7 @@ std::ostream& G4Polycone::StreamInfo( std::ostream& os ) const << " starting phi angle : " << startPhi/degree << " degrees \n" << " ending phi angle : " << endPhi/degree << " degrees \n"; G4int i=0; - if (original_parameters) + if (!genericPcon) { G4int numPlanes = original_parameters->Num_z_planes; os << " number of Z planes: " << numPlanes << "\n" @@ -537,6 +555,254 @@ std::ostream& G4Polycone::StreamInfo( std::ostream& os ) const } +// +// GetPointOnCone +// +// Auxiliary method for Get Point On Surface +// +G4ThreeVector G4Polycone::GetPointOnCone(G4double fRmin1, G4double fRmax1, + G4double fRmin2, G4double fRmax2, + G4double zOne, G4double zTwo, + G4double& totArea) const +{ + // declare working variables + // + G4double Aone, Atwo, Afive, phi, zRand, fDPhi, fSPhi, cosu, sinu; + G4double rRand1, chose, rone, rtwo, qone, qtwo, + fDz = std::fabs((zTwo-zOne)/2.); + G4ThreeVector point, offset; + offset = G4ThreeVector(0.,0.,0.5*(zTwo+zOne)); + fSPhi = startPhi; fDPhi = endPhi - startPhi; + + rone = (fRmax1-fRmax2)/(2.*fDz); + rtwo = (fRmin1-fRmin2)/(2.*fDz); + qone = fDz*(fRmax1+fRmax2)/(fRmax1-fRmax2); + qtwo = fDz*(fRmin1+fRmin2)/(fRmin1-fRmin2); + + Aone = 0.5*fDPhi*(fRmax2 + fRmax1)*(sqr(fRmin1-fRmin2)+sqr(zTwo-zOne)); + Atwo = 0.5*fDPhi*(fRmin2 + fRmin1)*(sqr(fRmax1-fRmax2)+sqr(zTwo-zOne)); + Afive = fDz*(fRmax1-fRmin1+fRmax2-fRmin2); + totArea = Aone+Atwo+2.*Afive; + + phi = RandFlat::shoot(startPhi,endPhi); + cosu = std::cos(phi); + sinu = std::sin(phi); + + if( (startPhi == 0) && (endPhi == twopi) ) { Afive = 0; } + chose = RandFlat::shoot(0.,Aone+Atwo+2.*Afive); + + if( (chose >= 0) && (chose < Aone) ) + { + if(fRmax1 != fRmax2) + { + zRand = RandFlat::shoot(-1.*fDz,fDz); + point = G4ThreeVector (rone*cosu*(qone-zRand), + rone*sinu*(qone-zRand), zRand); + } + else + { + point = G4ThreeVector(fRmax1*cosu, fRmax1*sinu, + RandFlat::shoot(-1.*fDz,fDz)); + } + } + else if(chose >= Aone && chose < Aone + Atwo) + { + if(fRmin1 != fRmin2) + { + zRand = RandFlat::shoot(-1.*fDz,fDz); + point = G4ThreeVector (rtwo*cosu*(qtwo-zRand), + rtwo*sinu*(qtwo-zRand), zRand); + } + else + { + point = G4ThreeVector(fRmin1*cosu, fRmin1*sinu, + RandFlat::shoot(-1.*fDz,fDz)); + } + } + else if( (chose >= Aone + Atwo + Afive) && (chose < Aone + Atwo + 2.*Afive) ) + { + zRand = RandFlat::shoot(-1.*fDz,fDz); + rRand1 = RandFlat::shoot(fRmin2-((zRand-fDz)/(2.*fDz))*(fRmin1-fRmin2), + fRmax2-((zRand-fDz)/(2.*fDz))*(fRmax1-fRmax2)); + point = G4ThreeVector (rRand1*std::cos(startPhi), + rRand1*std::sin(startPhi), zRand); + } + else + { + zRand = RandFlat::shoot(-1.*fDz,fDz); + rRand1 = RandFlat::shoot(fRmin2-((zRand-fDz)/(2.*fDz))*(fRmin1-fRmin2), + fRmax2-((zRand-fDz)/(2.*fDz))*(fRmax1-fRmax2)); + point = G4ThreeVector (rRand1*std::cos(endPhi), + rRand1*std::sin(endPhi), zRand); + } + return point+offset; +} + + +// +// GetPointOnTubs +// +// Auxiliary method for GetPoint On Surface +// +G4ThreeVector G4Polycone::GetPointOnTubs(G4double fRMin, G4double fRMax, + G4double zOne, G4double zTwo, + G4double& totArea) const +{ + G4double xRand,yRand,zRand,phi,cosphi,sinphi,chose, + aOne,aTwo,aFou,rRand,fDz,fSPhi,fDPhi; + fDz = std::fabs(0.5*(zTwo-zOne)); + fSPhi = startPhi; + fDPhi = endPhi-startPhi; + + aOne = 2.*fDz*fDPhi*fRMax; + aTwo = 2.*fDz*fDPhi*fRMin; + aFou = 2.*fDz*(fRMax-fRMin); + totArea = aOne+aTwo+2.*aFou; + + phi = RandFlat::shoot(startPhi,endPhi); + cosphi = std::cos(phi); + sinphi = std::sin(phi); + rRand = RandFlat::shoot(fRMin,fRMax); + + if(startPhi == 0 && endPhi == twopi) + aFou = 0; + + chose = RandFlat::shoot(0.,aOne+aTwo+2.*aFou); + if( (chose >= 0) && (chose < aOne) ) + { + xRand = fRMax*cosphi; + yRand = fRMax*sinphi; + zRand = RandFlat::shoot(-1.*fDz,fDz); + return G4ThreeVector(xRand, yRand, zRand+0.5*(zTwo+zOne)); + } + else if( (chose >= aOne) && (chose < aOne + aTwo) ) + { + xRand = fRMin*cosphi; + yRand = fRMin*sinphi; + zRand = RandFlat::shoot(-1.*fDz,fDz); + return G4ThreeVector(xRand, yRand, zRand+0.5*(zTwo+zOne)); + } + else if( (chose >= aOne+aTwo) && (chose Num_z_planes; + + phi = RandFlat::shoot(startPhi,endPhi); + cosphi = std::cos(phi); + sinphi = std::sin(phi); + + rRand = RandFlat::shoot(original_parameters->Rmin[0], + original_parameters->Rmax[0]); + + std::vector areas; // (numPlanes+1); + std::vector points; // (numPlanes-1); + + areas.push_back(pi*(sqr(original_parameters->Rmax[0]) + -sqr(original_parameters->Rmin[0]))); + + for(i=0; iRmin[i]+original_parameters->Rmin[i+1])* + std::sqrt(sqr(original_parameters->Rmin[i] + -original_parameters->Rmin[i+1])+ + sqr(original_parameters->Z_values[i+1] + -original_parameters->Z_values[i])); + + Area += (original_parameters->Rmax[i]+original_parameters->Rmax[i+1])* + std::sqrt(sqr(original_parameters->Rmax[i] + -original_parameters->Rmax[i+1])+ + sqr(original_parameters->Z_values[i+1] + -original_parameters->Z_values[i])); + + Area *= 0.5*(endPhi-startPhi); + + if(startPhi==0.&& endPhi == twopi) + { + Area += std::fabs(original_parameters->Z_values[i+1] + -original_parameters->Z_values[i])* + (original_parameters->Rmax[i] + +original_parameters->Rmax[i+1] + -original_parameters->Rmin[i] + -original_parameters->Rmin[i+1]); + } + areas.push_back(Area); + totArea += Area; + } + + areas.push_back(pi*(sqr(original_parameters->Rmax[numPlanes-1])- + sqr(original_parameters->Rmin[numPlanes-1]))); + + totArea += (areas[0]+areas[numPlanes]); + G4double chose = RandFlat::shoot(0.,totArea); + + if( (chose>=0.) && (choseZ_values[0]); + } + + for (i=0; i=Achose1 && choseRmin[i], + original_parameters->Rmax[i], + original_parameters->Rmin[i+1], + original_parameters->Rmax[i+1], + original_parameters->Z_values[i], + original_parameters->Z_values[i+1], Area); + } + } + + rRand = RandFlat::shoot(original_parameters->Rmin[numPlanes-1], + original_parameters->Rmax[numPlanes-1]); + + return G4ThreeVector(rRand*cosphi,rRand*sinphi, + original_parameters->Z_values[numPlanes-1]); +} + + // // CreatePolyhedron // @@ -545,7 +811,7 @@ G4Polyhedron* G4Polycone::CreatePolyhedron() const // // This has to be fixed in visualization. Fake it for the moment. // - if (original_parameters) + if (!genericPcon) { return new G4PolyhedronPcon( original_parameters->Start_angle, original_parameters->Opening_angle, @@ -557,8 +823,9 @@ G4Polyhedron* G4Polycone::CreatePolyhedron() const else { G4cerr << "ERROR - G4Polycone::CreatePolyhedron(): " << GetName() << G4endl - << " Visualization of this type of G4Polycone" << G4endl - << " is not supported at this time !" << G4endl; + << " Visualization of the 'generic' G4Polycone type" << G4endl + << " is not supported at this time !" << G4endl + << " Use the alternative constructor instead." << G4endl; return 0; } } @@ -578,6 +845,7 @@ G4NURBS *G4Polycone::CreateNURBS() const // G4PolyconeHistorical::G4PolyconeHistorical() + : Z_values(0), Rmin(0), Rmax(0) { } diff --git a/source/geometry/solids/specific/src/G4PolyconeSide.cc b/source/geometry/solids/specific/src/G4PolyconeSide.cc index d29c161561..e3aecf8ead 100644 --- a/source/geometry/solids/specific/src/G4PolyconeSide.cc +++ b/source/geometry/solids/specific/src/G4PolyconeSide.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyconeSide.cc,v 1.10 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PolyconeSide.cc,v 1.11 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -141,6 +141,16 @@ G4PolyconeSide::G4PolyconeSide( const G4PolyconeSideRZ *prevRZ, } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4PolyconeSide::G4PolyconeSide( __void__& ) + : cone(0), corners(0) +{ +} + + // // Destructor // diff --git a/source/geometry/solids/specific/src/G4Polyhedra.cc b/source/geometry/solids/specific/src/G4Polyhedra.cc index 09bb6c39a1..632f599993 100644 --- a/source/geometry/solids/specific/src/G4Polyhedra.cc +++ b/source/geometry/solids/specific/src/G4Polyhedra.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyhedra.cc,v 1.19 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polyhedra.cc,v 1.28 2005/11/17 14:08:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -57,11 +57,15 @@ #include "G4PolyhedraSide.hh" #include "G4PolyPhiFace.hh" +#include "Randomize.hh" + #include "G4Polyhedron.hh" #include "G4EnclosingCylinder.hh" #include "G4ReduciblePolygon.hh" #include "G4VPVParameterisation.hh" +using namespace CLHEP; + // // Constructor (GEANT3 style parameters) // @@ -75,7 +79,7 @@ G4Polyhedra::G4Polyhedra( const G4String& name, const G4double zPlane[], const G4double rInner[], const G4double rOuter[] ) - : G4VCSGfaceted( name ) + : G4VCSGfaceted( name ), genericPgon(false) { if (theNumSide <= 0) { @@ -159,14 +163,16 @@ G4Polyhedra::G4Polyhedra( const G4String& name, G4int numRZ, const G4double r[], const G4double z[] ) - : G4VCSGfaceted( name ) -{ - original_parameters = 0; - + : G4VCSGfaceted( name ), genericPgon(true) +{ G4ReduciblePolygon *rz = new G4ReduciblePolygon( r, z, numRZ ); Create( phiStart, phiTotal, theNumSide, rz ); + // Set original_parameters struct for consistency + // + SetOriginalParameters(); + delete rz; } @@ -349,6 +355,17 @@ void G4Polyhedra::Create( G4double phiStart, } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Polyhedra::G4Polyhedra( __void__& a ) + : G4VCSGfaceted(a), genericPgon(false), corners(0), + original_parameters(0), enclosingCylinder(0) +{ +} + + // // Destructor // @@ -400,10 +417,11 @@ void G4Polyhedra::CopyStuff( const G4Polyhedra &source ) // Simple stuff // numSide = source.numSide; - startPhi = source.startPhi; - endPhi = source.endPhi; + startPhi = source.startPhi; + endPhi = source.endPhi; phiIsOpen = source.phiIsOpen; numCorner = source.numCorner; + genericPgon= source.genericPgon; // // The corner array @@ -441,7 +459,7 @@ void G4Polyhedra::CopyStuff( const G4Polyhedra &source ) // G4bool G4Polyhedra::Reset() { - if (!original_parameters) + if (genericPgon) { G4Exception("G4Polyhedra::Reset()", "NotApplicableConstruct", JustWarning, "Parameters NOT resetted."); @@ -566,7 +584,7 @@ std::ostream& G4Polyhedra::StreamInfo( std::ostream& os ) const << " starting phi angle : " << startPhi/degree << " degrees \n" << " ending phi angle : " << endPhi/degree << " degrees \n"; G4int i=0; - if (original_parameters) + if (!genericPgon) { G4int numPlanes = original_parameters->Num_z_planes; os << " number of Z planes: " << numPlanes << "\n" @@ -602,6 +620,263 @@ std::ostream& G4Polyhedra::StreamInfo( std::ostream& os ) const } +// +// GetPointOnPlane +// +// Auxiliary method for get point on surface +// +G4ThreeVector G4Polyhedra::GetPointOnPlane(G4ThreeVector p0, G4ThreeVector p1, + G4ThreeVector p2, G4ThreeVector p3) const +{ + G4double lambda1, lambda2, chose,aOne,aTwo; + G4ThreeVector t, u, v, w, Area, normal; + aOne = 1.; + aTwo = 1.; + + t = p1 - p0; + u = p2 - p1; + v = p3 - p2; + w = p0 - p3; + + chose = RandFlat::shoot(0.,aOne+aTwo); + if( (chose>=0.) && (chose < aOne) ) + { + lambda1 = RandFlat::shoot(0.,1.); + lambda2 = RandFlat::shoot(0.,lambda1); + return (p2+lambda1*v+lambda2*w); + } + + lambda1 = RandFlat::shoot(0.,1.); + lambda2 = RandFlat::shoot(0.,lambda1); + return (p0+lambda1*t+lambda2*u); +} + + +// +// GetPointOnTriangle +// +// Auxiliary method for get point on surface +// +G4ThreeVector G4Polyhedra::GetPointOnTriangle(G4ThreeVector p1, + G4ThreeVector p2, + G4ThreeVector p3) const +{ + G4double lambda1,lambda2; + G4ThreeVector v=p3-p1, w=p1-p2; + + lambda1 = RandFlat::shoot(0.,1.); + lambda2 = RandFlat::shoot(0.,lambda1); + + return (p2 + lambda1*w + lambda2*v); +} + + +// +// GetPointOnSurface +// +G4ThreeVector G4Polyhedra::GetPointOnSurface() const +{ + G4int j, numPlanes = original_parameters->Num_z_planes, Flag=0; + G4double chose, totArea=0., Achose1, Achose2, + rad1, rad2, sinphi1, sinphi2, cosphi1, cosphi2; + G4double a, b, l2, rang, + ksi = (endPhi-startPhi)/(double)numSide, + area, aTop=0., aBottom=0.,zVal=0.; + G4ThreeVector p0, p1, p2, p3; + std::vector aVector1; + std::vector aVector2; + std::vector aVector3; + + G4double cosksi = std::cos(ksi/2.); + + // below we generate the areas relevant to our solid + // + for(j=0; jRmax[j+1]; + b = original_parameters->Rmax[j]; + l2 = sqr(original_parameters->Z_values[j] + -original_parameters->Z_values[j+1]) + sqr(b-a); + area = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; + aVector1.push_back(area); + } + + for(j=0; jRmin[j+1];//*cosksi; + b = original_parameters->Rmin[j];//*cosksi; + l2 = sqr(original_parameters->Z_values[j] + -original_parameters->Z_values[j+1]) + sqr(b-a); + area = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; + aVector2.push_back(area); + } + + for(j=0; jRmax[j] + -original_parameters->Rmin[j] + +original_parameters->Rmax[j+1] + -original_parameters->Rmin[j+1]) + *std::fabs(original_parameters->Z_values[j+1] + -original_parameters->Z_values[j])); + } + else { aVector3.push_back(0.); } + } + + for(j=0; jRmax[numPlanes-1] != 0.) + { + a = original_parameters->Rmax[numPlanes-1]; + b = original_parameters->Rmin[numPlanes-1]; + l2 = sqr(a-b); + aTop = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; + } + + if(original_parameters->Rmax[0] != 0.) + { + a = original_parameters->Rmax[0]; + b = original_parameters->Rmin[0]; + l2 = sqr(a-b); + aBottom = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; + } + + Achose1 = 0.; + Achose2 = numSide*(aVector1[0]+aVector2[0])+2.*aVector3[0]; + + chose = RandFlat::shoot(0.,totArea+aTop+aBottom); + if( (chose >= 0.) && (chose < aTop + aBottom) ) + { + chose = RandFlat::shoot(startPhi,endPhi); + rang = std::floor((chose-startPhi)/ksi-0.01); + rang = std::fabs(rang); + sinphi1 = std::sin(startPhi+rang*ksi); + sinphi2 = std::sin(startPhi+(rang+1)*ksi); + cosphi1 = std::cos(startPhi+rang*ksi); + cosphi2 = std::cos(startPhi+(rang+1)*ksi); + + chose = RandFlat::shoot(0., aTop + aBottom); + if(chose>=0. && choseRmin[numPlanes-1]; + rad2 = original_parameters->Rmax[numPlanes-1]; + zVal = original_parameters->Z_values[numPlanes-1]; + } + else + { + rad1 = original_parameters->Rmin[0]; + rad2 = original_parameters->Rmax[0]; + zVal = original_parameters->Z_values[0]; + } + p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); + p1 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); + p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); + p3 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); + return GetPointOnPlane(p0,p1,p2,p3); + } + else + { + for (j=0; j< numPlanes-1; j++) + { + if(chose>=Achose1 && chose < Achose2){ Flag = j; } + Achose1 += numSide*(aVector1[j]+aVector2[j])+2.*aVector3[j]; + Achose2 = Achose1 + numSide*(aVector1[j+1]+aVector2[j+1]) + + 2.*aVector3[j+1]; + } + } + + // at this point we have chosen a subsection + // between to adjacent plane cuts... + + j = Flag; + + totArea = numSide*(aVector1[j]+aVector2[j])+2.*aVector3[j]; + chose = RandFlat::shoot(0.,totArea); + + if( (chose>=0.) && (choseRmax[j]; + rad2 = original_parameters->Rmax[j+1]; + sinphi1 = std::sin(startPhi+rang*ksi); + sinphi2 = std::sin(startPhi+(rang+1)*ksi); + cosphi1 = std::cos(startPhi+rang*ksi); + cosphi2 = std::cos(startPhi+(rang+1)*ksi); + zVal = original_parameters->Z_values[j]; + + p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); + p1 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); + + zVal = original_parameters->Z_values[j+1]; + + p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); + p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); + + return GetPointOnPlane(p0,p1,p2,p3); + } + else if ( (chose >= numSide*aVector1[j]) + && (chose <= numSide*(aVector1[j]+aVector2[j])) ) + { + chose = RandFlat::shoot(startPhi,endPhi); + rang = std::floor((chose-startPhi)/ksi-0.01); + rang = std::fabs(rang); + rad1 = original_parameters->Rmin[j]; + rad2 = original_parameters->Rmin[j+1]; + sinphi1 = std::sin(startPhi+rang*ksi); + sinphi2 = std::sin(startPhi+(rang+1)*ksi); + cosphi1 = std::cos(startPhi+rang*ksi); + cosphi2 = std::cos(startPhi+(rang+1)*ksi); + zVal = original_parameters->Z_values[j]; + + p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); + p1 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); + + zVal = original_parameters->Z_values[j+1]; + + p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); + p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); + + return GetPointOnPlane(p0,p1,p2,p3); + } + + chose = RandFlat::shoot(0.,2.2); + if( (chose>=0.) && (chose < 1.) ) + { + rang = startPhi; + } + else + { + rang = endPhi; + } + + cosphi1 = std::cos(rang); rad1 = original_parameters->Rmin[j]; + sinphi1 = std::sin(rang); rad2 = original_parameters->Rmax[j]; + + p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1, + original_parameters->Z_values[j]); + p1 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1, + original_parameters->Z_values[j]); + + rad1 = original_parameters->Rmax[j+1]; + rad2 = original_parameters->Rmin[j+1]; + + p2 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1, + original_parameters->Z_values[j+1]); + p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1, + original_parameters->Z_values[j+1]); + + return GetPointOnPlane(p0,p1,p2,p3); +} + + // // CreatePolyhedron // @@ -609,9 +884,9 @@ G4Polyhedron* G4Polyhedra::CreatePolyhedron() const { // // This has to be fixed in visualization. Fake it for the moment. - // - if (original_parameters) - { + // + if (!genericPgon) + { return new G4PolyhedronPgon( original_parameters->Start_angle, original_parameters->Opening_angle, original_parameters->numSide, @@ -623,8 +898,10 @@ G4Polyhedron* G4Polyhedra::CreatePolyhedron() const else { G4cerr << "ERROR - G4Polyhedra::CreatePolyhedron() " << GetName() << G4endl - << " Visualization of this type of G4Polycone" << G4endl - << " is not supported at this time !" << G4endl; + << " Visualization of the 'generic' G4Polyhedra type" + << G4endl + << " is not supported at this time !" << G4endl + << " Use the alternative constructor instead." << G4endl; return 0; } } @@ -643,6 +920,7 @@ G4NURBS *G4Polyhedra::CreateNURBS() const // G4PolyhedraHistorical stuff // G4PolyhedraHistorical::G4PolyhedraHistorical() + : Z_values(0), Rmin(0), Rmax(0) { } diff --git a/source/geometry/solids/specific/src/G4PolyhedraSide.cc b/source/geometry/solids/specific/src/G4PolyhedraSide.cc index fb3a787382..3aeda2c789 100644 --- a/source/geometry/solids/specific/src/G4PolyhedraSide.cc +++ b/source/geometry/solids/specific/src/G4PolyhedraSide.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PolyhedraSide.cc,v 1.9 2004/12/10 16:22:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PolyhedraSide.cc,v 1.10 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -278,6 +278,16 @@ G4PolyhedraSide::G4PolyhedraSide( const G4PolyhedraSideRZ *prevRZ, } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4PolyhedraSide::G4PolyhedraSide( __void__&) + : cone(0), vecs(0), edges(0) +{ +} + + // // Destructor // diff --git a/source/geometry/solids/specific/src/G4ReduciblePolygon.cc b/source/geometry/solids/specific/src/G4ReduciblePolygon.cc index 9202f1b73b..18267ebafd 100644 --- a/source/geometry/solids/specific/src/G4ReduciblePolygon.cc +++ b/source/geometry/solids/specific/src/G4ReduciblePolygon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReduciblePolygon.cc,v 1.9 2004/12/02 09:31:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ReduciblePolygon.cc,v 1.10 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -131,6 +131,16 @@ void G4ReduciblePolygon::Create( const G4double a[], } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4ReduciblePolygon::G4ReduciblePolygon( __void__& ) + : aMin(0.), aMax(0.), bMin(0.), bMax(0.), vertexHead(0) +{ +} + + // // Destructor // diff --git a/source/geometry/solids/specific/src/G4SolidExtentList.cc b/source/geometry/solids/specific/src/G4SolidExtentList.cc index 1c533e9159..8261dd3381 100644 --- a/source/geometry/solids/specific/src/G4SolidExtentList.cc +++ b/source/geometry/solids/specific/src/G4SolidExtentList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SolidExtentList.cc,v 1.3 2002/10/28 11:47:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4Tet.cc b/source/geometry/solids/specific/src/G4Tet.cc new file mode 100644 index 0000000000..0c1dff12d2 --- /dev/null +++ b/source/geometry/solids/specific/src/G4Tet.cc @@ -0,0 +1,709 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * Vanderbilt University Free Electron Laser Center * +// * Vanderbilt University, Nashville, TN, USA * +// * Development supported by: * +// * United States MFEL program under grant FA9550-04-1-0045 * +// * and NASA under contract number NNG04CT05P * +// * Written by Marcus H. Mendenhall and Robert A. Weller. * +// * * +// * Contributed to the Geant4 Core, January, 2005. * +// * * +// ******************************************************************** +// +// $Id: G4Tet.cc,v 1.7 2005/11/10 15:59:19 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// class G4Tet +// +// Implementation for G4Tet class +// +// History: +// +// 20040903 - Marcus Mendenhall, created G4Tet +// 20041101 - Marcus Mendenhall, optimized constant dot products with +// fCdotNijk values +// 20041101 - MHM removed tracking error by clipping DistanceToOut to 0 +// for surface cases +// 20041101 - MHM many speed optimizations in if statements +// 20041101 - MHM changed vdotn comparisons to 1e-12 instead of 0.0 to +// avoid nearly-parallel problems +// 20041102 - MHM Added extra distance into solid to DistanceToIn(p,v) +// hit testing +// 20041102 - MHM added ability to check for degeneracy without throwing +// G4Exception +// 20041103 - MHM removed many unused variables from class +// 20040803 - Dionysios Anninos, added GetPointOnSurface() method +// +// -------------------------------------------------------------------- + +#include "G4Tet.hh" + +const char G4Tet::CVSVers[]="$Id: G4Tet.cc,v 1.7 2005/11/10 15:59:19 allison Exp $"; + +#include "G4VoxelLimits.hh" +#include "G4AffineTransform.hh" + +#include "G4VPVParameterisation.hh" + +#include "Randomize.hh" + +#include "G4VGraphicsScene.hh" +#include "G4Polyhedron.hh" +#include "G4NURBS.hh" +#include "G4NURBSbox.hh" +#include "G4VisExtent.hh" + +#include "G4ThreeVector.hh" + +#include + +using namespace CLHEP; + +//////////////////////////////////////////////////////////////////////// +// +// Constructor - create a tetrahedron +// This class is implemented separately from general polyhedra, +// because the simplex geometry can be computed very quickly, +// which may become important in situations imported from mesh generators, +// in which a very large number of G4Tets are created. +// A Tet has all of its geometrical information precomputed + +G4Tet::G4Tet(const G4String& pName, + G4ThreeVector anchor, + G4ThreeVector p2, + G4ThreeVector p3, + G4ThreeVector p4, G4bool *degeneracyFlag) + : G4VSolid(pName), fpPolyhedron(0), warningFlag(0) +{ + // fV is vector from vertex to vertex + // + G4ThreeVector fV21=p2-anchor; + G4ThreeVector fV31=p3-anchor; + G4ThreeVector fV41=p4-anchor; + + // make sure this is a correctly oriented set of points for the tetrahedron + // + G4double signed_vol=fV21.cross(fV31).dot(fV41); + if(signed_vol<0.0) + { + G4ThreeVector temp(p4); + p4=p3; + p3=temp; + temp=fV41; + fV41=fV31; + fV31=temp; + } + fCubicVolume = std::abs(signed_vol) / 6.; + + G4ThreeVector fV24=p2-p4; + G4ThreeVector fV43=p4-p3; + G4ThreeVector fV32=p3-p2; + + fXMin=std::min(std::min(std::min(anchor.x(), p2.x()),p3.x()),p4.x()); + fXMax=std::max(std::max(std::max(anchor.x(), p2.x()),p3.x()),p4.x()); + fYMin=std::min(std::min(std::min(anchor.y(), p2.y()),p3.y()),p4.y()); + fYMax=std::max(std::max(std::max(anchor.y(), p2.y()),p3.y()),p4.y()); + fZMin=std::min(std::min(std::min(anchor.z(), p2.z()),p3.z()),p4.z()); + fZMax=std::max(std::max(std::max(anchor.z(), p2.z()),p3.z()),p4.z()); + + fDx=(fXMax-fXMin)*0.5; fDy=(fYMax-fYMin)*0.5; fDz=(fZMax-fZMin)*0.5; + + fMiddle=G4ThreeVector(fXMax+fXMin, fYMax+fYMin, fZMax+fZMin)*0.5; + fMaxSize=std::max(std::max(std::max((anchor-fMiddle).mag(), + (p2-fMiddle).mag()), + (p3-fMiddle).mag()), + (p4-fMiddle).mag()); + + G4bool degenerate=std::abs(signed_vol) < 1e-9*fMaxSize*fMaxSize*fMaxSize; + + if(degeneracyFlag) *degeneracyFlag=degenerate; + else if (degenerate) + { + G4Exception("G4Tet::G4Tet()", "InvalidSetup", FatalException, + "Degenerate tetrahedron not allowed."); + } + + fTol=1e-9*(std::abs(fXMin)+std::abs(fXMax)+std::abs(fYMin) + +std::abs(fYMax)+std::abs(fZMin)+std::abs(fZMax)); + //fTol=kCarTolerance; + + fAnchor=anchor; + fP2=p2; + fP3=p3; + fP4=p4; + + G4ThreeVector fCenter123=(anchor+p2+p3)*(1.0/3.0); // face center + G4ThreeVector fCenter134=(anchor+p4+p3)*(1.0/3.0); + G4ThreeVector fCenter142=(anchor+p4+p2)*(1.0/3.0); + G4ThreeVector fCenter234=(p2+p3+p4)*(1.0/3.0); + + fNormal123=fV31.cross(fV21).unit(); + fNormal134=fV41.cross(fV31).unit(); + fNormal142=fV21.cross(fV41).unit(); + fNormal234=fV32.cross(fV43).unit(); + + fCdotN123=fCenter123.dot(fNormal123); + fCdotN134=fCenter134.dot(fNormal134); + fCdotN142=fCenter142.dot(fNormal142); + fCdotN234=fCenter234.dot(fNormal234); +} + +////////////////////////////////////////////////////////////////////////// +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4Tet::G4Tet( __void__& a ) + : G4VSolid(a), warningFlag(0) +{ +} + +////////////////////////////////////////////////////////////////////////// +// +// Destructor + +G4Tet::~G4Tet() +{ + delete fpPolyhedron; +} + +////////////////////////////////////////////////////////////////////////// +// +// CheckDegeneracy + +G4bool G4Tet::CheckDegeneracy( G4ThreeVector anchor, + G4ThreeVector p2, + G4ThreeVector p3, + G4ThreeVector p4 ) +{ + G4bool result; + G4Tet *object=new G4Tet("temp",anchor,p2,p3,p4,&result); + delete object; + return result; +} + +////////////////////////////////////////////////////////////////////////// +// +// Dispatch to parameterisation for replication mechanism dimension +// computation & modification. + +void G4Tet::ComputeDimensions(G4VPVParameterisation* , + const G4int , + const G4VPhysicalVolume* ) +{ +} + +////////////////////////////////////////////////////////////////////////// +// +// Calculate extent under transform and specified limit + +G4bool G4Tet::CalculateExtent(const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const +{ + G4double xMin,xMax; + G4double yMin,yMax; + G4double zMin,zMax; + + if (pTransform.IsRotated()) + { + G4ThreeVector pp0=pTransform.TransformPoint(fAnchor); + G4ThreeVector pp1=pTransform.TransformPoint(fP2); + G4ThreeVector pp2=pTransform.TransformPoint(fP3); + G4ThreeVector pp3=pTransform.TransformPoint(fP4); + + xMin = std::min(std::min(std::min(pp0.x(), pp1.x()),pp2.x()),pp3.x()); + xMax = std::max(std::max(std::max(pp0.x(), pp1.x()),pp2.x()),pp3.x()); + yMin = std::min(std::min(std::min(pp0.y(), pp1.y()),pp2.y()),pp3.y()); + yMax = std::max(std::max(std::max(pp0.y(), pp1.y()),pp2.y()),pp3.y()); + zMin = std::min(std::min(std::min(pp0.z(), pp1.z()),pp2.z()),pp3.z()); + zMax = std::max(std::max(std::max(pp0.z(), pp1.z()),pp2.z()),pp3.z()); + + } + else + { + G4double xoffset = pTransform.NetTranslation().x() ; + xMin = xoffset + fXMin; + xMax = xoffset + fXMax; + G4double yoffset = pTransform.NetTranslation().y() ; + yMin = yoffset + fYMin; + yMax = yoffset + fYMax; + G4double zoffset = pTransform.NetTranslation().z() ; + zMin = zoffset + fZMin; + zMax = zoffset + fZMax; + } + + if (pVoxelLimit.IsXLimited()) + { + if ( (xMin > pVoxelLimit.GetMaxXExtent()+fTol) || + (xMax < pVoxelLimit.GetMinXExtent()-fTol) ) { return false; } + else + { + xMin = std::max(xMin, pVoxelLimit.GetMinXExtent()); + xMax = std::min(xMax, pVoxelLimit.GetMaxXExtent()); + } + } + + if (pVoxelLimit.IsYLimited()) + { + if ( (yMin > pVoxelLimit.GetMaxYExtent()+fTol) || + (yMax < pVoxelLimit.GetMinYExtent()-fTol) ) { return false; } + else + { + yMin = std::max(yMin, pVoxelLimit.GetMinYExtent()); + yMax = std::min(yMax, pVoxelLimit.GetMaxYExtent()); + } + } + + if (pVoxelLimit.IsZLimited()) + { + if ( (zMin > pVoxelLimit.GetMaxZExtent()+fTol) || + (zMax < pVoxelLimit.GetMinZExtent()-fTol) ) { return false; } + else + { + zMin = std::max(zMin, pVoxelLimit.GetMinZExtent()); + zMax = std::min(zMax, pVoxelLimit.GetMaxZExtent()); + } + } + + switch (pAxis) + { + case kXAxis: + pMin=xMin; + pMax=xMax; + break; + case kYAxis: + pMin=yMin; + pMax=yMax; + break; + case kZAxis: + pMin=zMin; + pMax=zMax; + break; + default: + break; + } + + return true; +} + +///////////////////////////////////////////////////////////////////////// +// +// Return whether point inside/outside/on surface, using tolerance + +EInside G4Tet::Inside(const G4ThreeVector& p) const +{ + G4double r123, r134, r142, r234; + + // this is written to allow if-statement truncation so the outside test + // (where most of the world is) can fail very quickly and efficiently + + if ( (r123=p.dot(fNormal123)-fCdotN123) > fTol || + (r134=p.dot(fNormal134)-fCdotN134) > fTol || + (r142=p.dot(fNormal142)-fCdotN142) > fTol || + (r234=p.dot(fNormal234)-fCdotN234) > fTol ) + { + return kOutside; // at least one is out! + } + else if( (r123 < -fTol)&&(r134 < -fTol)&&(r142 < -fTol)&&(r234 < -fTol) ) + { + return kInside; // all are definitively inside + } + else + { + return kSurface; // too close to tell + } +} + +/////////////////////////////////////////////////////////////////////// +// +// Calculate side nearest to p, and return normal +// If two sides are equidistant, normal of first side (x/y/z) +// encountered returned. +// This assumes that we are looking from the inside! + +G4ThreeVector G4Tet::SurfaceNormal( const G4ThreeVector& p) const +{ + G4double r123=std::abs(p.dot(fNormal123)-fCdotN123); + G4double r134=std::abs(p.dot(fNormal134)-fCdotN134); + G4double r142=std::abs(p.dot(fNormal142)-fCdotN142); + G4double r234=std::abs(p.dot(fNormal234)-fCdotN234); + + if( (r123<=r134) && (r123<=r142) && (r123<=r234) ) { return fNormal123; } + else if ( (r134<=r142) && (r134<=r234) ) { return fNormal134; } + else if (r142 <= r234) { return fNormal142; } + return fNormal234; +} + +/////////////////////////////////////////////////////////////////////////// +// +// Calculate distance to box from an outside point +// - return kInfinity if no intersection. +// All this is very unrolled, for speed. + +G4double G4Tet::DistanceToIn(const G4ThreeVector& p, + const G4ThreeVector& v) const +{ + G4ThreeVector vu(v.unit()), hp; + G4double vdotn, t, tmin=kInfinity; + + G4double extraDistance=10.0*fTol; // a little ways into the solid + + vdotn=-vu.dot(fNormal123); + if(vdotn > 1e-12) + { // this is a candidate face, since it is pointing at us + t=(p.dot(fNormal123)-fCdotN123)/vdotn; // # distance to intersection + if( (t>=-fTol) && (t 1e-12) + { // # this is a candidate face, since it is pointing at us + t=(p.dot(fNormal134)-fCdotN134)/vdotn; // # distance to intersection + if( (t>=-fTol) && (t 1e-12) + { // # this is a candidate face, since it is pointing at us + t=(p.dot(fNormal142)-fCdotN142)/vdotn; // # distance to intersection + if( (t>=-fTol) && (t 1e-12) + { // # this is a candidate face, since it is pointing at us + t=(p.dot(fNormal234)-fCdotN234)/vdotn; // # distance to intersection + if( (t>=-fTol) && (t 1e-12) // #we're heading towards this face, so it is a candidate + { + t1=(fCdotN123-p.dot(fNormal123))/vdotn; // # distance to intersection + } + + vdotn=vu.dot(fNormal134); + if(vdotn > 1e-12) // #we're heading towards this face, so it is a candidate + { + t2=(fCdotN134-p.dot(fNormal134))/vdotn; // # distance to intersection + } + + vdotn=vu.dot(fNormal142); + if(vdotn > 1e-12) // #we're heading towards this face, so it is a candidate + { + t3=(fCdotN142-p.dot(fNormal142))/vdotn; // # distance to intersection + } + + vdotn=vu.dot(fNormal234); + if(vdotn > 1e-12) // #we're heading towards this face, so it is a candidate + { + t4=(fCdotN234-p.dot(fNormal234))/vdotn; // # distance to intersection + } + + tt=std::min(std::min(std::min(t1,t2),t3),t4); + + if (warningFlag && (tt == kInfinity || tt < -fTol)) + { + DumpInfo(); + G4cout << "p = " << p / mm << "mm" << G4endl; + G4cout << "v = " << v << G4endl; + G4cout << "t1, t2, t3, t4 (mm) " + << t1/mm << ", " << t2/mm << ", " << t3/mm << ", " << t4/mm + << G4endl << G4endl; + G4Exception("G4Tet::DistanceToOut(p,v,...)", "Notification", JustWarning, + "No good intersection found or already outside!?" ); + if(validNorm) + { + *validNorm=false; // flag normal as meaningless + } + } + else if(calcNorm && n) + { + static G4ThreeVector normal; + if(tt==t1) { normal=fNormal123; } + else if (tt==t2) { normal=fNormal134; } + else if (tt==t3) { normal=fNormal142; } + else if (tt==t4) { normal=fNormal234; } + n=&normal; + if(validNorm) { *validNorm=true; } + } + + return std::max(tt,0.0); // avoid tt<0.0 by a tiny bit + // if we are right on a face +} + +//////////////////////////////////////////////////////////////////////////// +// +// Calculate exact shortest distance to any boundary from inside +// - If outside return 0 + +G4double G4Tet::DistanceToOut(const G4ThreeVector& p) const +{ + G4double t1,t2,t3,t4; + t1=fCdotN123-p.dot(fNormal123); // distance to plane, positive if inside + t2=fCdotN134-p.dot(fNormal134); // distance to plane + t3=fCdotN142-p.dot(fNormal142); // distance to plane + t4=fCdotN234-p.dot(fNormal234); // distance to plane + + // if any one of these is negative, we are outside, + // so return zero in that case + + G4double tmin=std::min(std::min(std::min(t1,t2),t3),t4); + return (tmin < fTol)? 0:tmin; +} + +//////////////////////////////////////////////////////////////////////// +// +// Create a List containing the transformed vertices +// Note: Caller has deletion responsibility + +G4ThreeVectorList* +G4Tet::CreateRotatedVertices(const G4AffineTransform& pTransform) const +{ + G4ThreeVectorList* vertices = new G4ThreeVectorList(); + vertices->reserve(4); + + if (vertices) + { + G4ThreeVector vertex0(fAnchor); + G4ThreeVector vertex1(fP2); + G4ThreeVector vertex2(fP3); + G4ThreeVector vertex3(fP4); + + vertices->push_back(pTransform.TransformPoint(vertex0)); + vertices->push_back(pTransform.TransformPoint(vertex1)); + vertices->push_back(pTransform.TransformPoint(vertex2)); + vertices->push_back(pTransform.TransformPoint(vertex3)); + } + else + { + DumpInfo(); + G4Exception("G4Tet::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); + } + return vertices; +} + +////////////////////////////////////////////////////////////////////////// +// +// GetEntityType + +G4GeometryType G4Tet::GetEntityType() const +{ + return G4String("G4Tet"); +} + +////////////////////////////////////////////////////////////////////////// +// +// Stream object contents to an output stream + +std::ostream& G4Tet::StreamInfo(std::ostream& os) const +{ + os << "-----------------------------------------------------------\n" + << " *** Dump for solid - " << GetName() << " ***\n" + << " ===================================================\n" + << " Solid type: G4Tet\n" + << " Parameters: \n" + << " anchor: " << fAnchor/mm << " mm \n" + << " p2: " << fP2/mm << " mm \n" + << " p3: " << fP3/mm << " mm \n" + << " p4: " << fP4/mm << " mm \n" + << " normal123: " << fNormal123 << " \n" + << " normal134: " << fNormal134 << " \n" + << " normal142: " << fNormal142 << " \n" + << " normal234: " << fNormal234 << " \n" + << "-----------------------------------------------------------\n"; + + return os; +} + + +//////////////////////////////////////////////////////////////////////// +// +// GetPointOnFace +// +// Auxiliary method for get point on surface + +G4ThreeVector G4Tet::GetPointOnFace(G4ThreeVector p1, G4ThreeVector p2, + G4ThreeVector p3, G4double& area) const +{ + G4double lambda1,lambda2; + G4ThreeVector v, w; + + v = p3 - p1; + w = p1 - p2; + + lambda1 = RandFlat::shoot(0.,1.); + lambda2 = RandFlat::shoot(0.,lambda1); + + area = 0.5*(v.cross(w)).mag(); + + return (p2 + lambda1*w + lambda2*v); +} + +//////////////////////////////////////////////////////////////////////////// +// +// GetPointOnSurface + +G4ThreeVector G4Tet::GetPointOnSurface() const +{ + G4double chose,aOne,aTwo,aThree,aFour; + G4ThreeVector p1, p2, p3, p4; + + p1 = GetPointOnFace(fAnchor,fP2,fP3,aOne); + p2 = GetPointOnFace(fAnchor,fP4,fP3,aTwo); + p3 = GetPointOnFace(fAnchor,fP4,fP2,aThree); + p4 = GetPointOnFace(fP4,fP3,fP2,aFour); + + chose = RandFlat::shoot(0.,aOne+aTwo+aThree+aFour); + if( (chose>=0.) && (chose =aOne) && (chose < aOne+aTwo) ) {return p2;} + else if( (chose>=aOne+aTwo) && (chosecreatePolyhedron(4,4,xyz,faces); + + return ph; +} + +//////////////////////////////////////////////////////////////////////// +// +// CreateNURBS + +G4NURBS* G4Tet::CreateNURBS () const +{ + return new G4NURBSbox (fDx, fDy, fDz); +} + +//////////////////////////////////////////////////////////////////////// +// +// GetPolyhedron + +G4Polyhedron* G4Tet::GetPolyhedron () const +{ + if (!fpPolyhedron || + fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != + fpPolyhedron->GetNumberOfRotationSteps()) + { + delete fpPolyhedron; + fpPolyhedron = CreatePolyhedron(); + } + return fpPolyhedron; +} diff --git a/source/geometry/solids/specific/src/G4TwistedTrapAlphaSide.cc b/source/geometry/solids/specific/src/G4TwistBoxSide.cc similarity index 67% rename from source/geometry/solids/specific/src/G4TwistedTrapAlphaSide.cc rename to source/geometry/solids/specific/src/G4TwistBoxSide.cc index 1b3cd6a23c..41d1323436 100644 --- a/source/geometry/solids/specific/src/G4TwistedTrapAlphaSide.cc +++ b/source/geometry/solids/specific/src/G4TwistBoxSide.cc @@ -21,44 +21,44 @@ // ******************************************************************** // // -// $Id: G4TwistedTrapAlphaSide.cc,v -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TwistBoxSide.cc,v 1.3 2005/12/06 09:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- // GEANT 4 class source file // // -// G4TwistedTrapAlphaSide.cc +// G4TwistBoxSide.cc // // Author: // -// Oliver Link (Oliver.Link@cern.ch) +// 18/03/2005 - O.Link (Oliver.Link@cern.ch) // // -------------------------------------------------------------------- #include -#include "G4TwistedTrapAlphaSide.hh" +#include "G4TwistBoxSide.hh" #include "G4JTPolynomialSolver.hh" //===================================================================== //* constructors ------------------------------------------------------ -G4TwistedTrapAlphaSide::G4TwistedTrapAlphaSide(const G4String &name, - G4double PhiTwist, // twist angle - G4double pDz, // half z lenght - G4double pTheta, // direction between end planes - G4double pPhi, // defined by polar and azimutal angles. - G4double pDy1, // half y length at -pDz - G4double pDx1, // half x length at -pDz,-pDy - G4double pDx2, // half x length at -pDz,+pDy - G4double pDy2, // half y length at +pDz - G4double pDx3, // half x length at +pDz,-pDy - G4double pDx4, // half x length at +pDz,+pDy - G4double pAlph, // tilt angle at +pDz +G4TwistBoxSide::G4TwistBoxSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz G4double AngleSide // parity - ) : G4VSurface(name) + ) : G4VTwistSurface(name) { @@ -70,10 +70,20 @@ G4TwistedTrapAlphaSide::G4TwistedTrapAlphaSide(const G4String &name, fAxisMax[1] = pDz ; fDx1 = pDx1 ; - fDx2 = pDx2 ; + fDx2 = pDx2 ; // box fDx3 = pDx3 ; - fDx4 = pDx4 ; + fDx4 = pDx4 ; // box + // this is an overhead. But the parameter naming scheme fits to the other surfaces. + + if ( ! (fDx1 == fDx2 && fDx3 == fDx4 ) ) { + G4cerr << "ERROR - G4TwistBoxSide::G4TwistBoxSide(): " + << GetName() << G4endl + << " Not a box ! - " << G4endl ; + G4Exception("G4TwistBoxSide::G4TwistBoxSide()", "InvalidSetup", + FatalException, "TwistedTrapBoxSide is not used as a the side of a box."); + } + fDy1 = pDy1 ; fDy2 = pDy2 ; @@ -85,7 +95,7 @@ G4TwistedTrapAlphaSide::G4TwistedTrapAlphaSide(const G4String &name, fTheta = pTheta ; fPhi = pPhi ; - // precalculate frequently used parameters + // precalculate frequently used parameters fDx4plus2 = fDx4 + fDx2 ; fDx4minus2 = fDx4 - fDx2 ; fDx3plus1 = fDx3 + fDx1 ; @@ -96,6 +106,7 @@ G4TwistedTrapAlphaSide::G4TwistedTrapAlphaSide(const G4String &name, fa1md1 = 2*fDx2 - 2*fDx1 ; fa2md2 = 2*fDx4 - 2*fDx3 ; + fPhiTwist = PhiTwist ; // dphi fAngleSide = AngleSide ; // 0,90,180,270 deg @@ -113,17 +124,26 @@ G4TwistedTrapAlphaSide::G4TwistedTrapAlphaSide(const G4String &name, } +//===================================================================== +//* Fake default constructor ------------------------------------------ + +G4TwistBoxSide::G4TwistBoxSide( __void__& a ) + : G4VTwistSurface(a) +{ +} + + //===================================================================== //* destructor -------------------------------------------------------- -G4TwistedTrapAlphaSide::~G4TwistedTrapAlphaSide() +G4TwistBoxSide::~G4TwistBoxSide() { } //===================================================================== //* GetNormal --------------------------------------------------------- -G4ThreeVector G4TwistedTrapAlphaSide::GetNormal(const G4ThreeVector &tmpxx, +G4ThreeVector G4TwistBoxSide::GetNormal(const G4ThreeVector &tmpxx, G4bool isGlobal) { // GetNormal returns a normal vector at a surface (or very close @@ -169,13 +189,13 @@ G4ThreeVector G4TwistedTrapAlphaSide::GetNormal(const G4ThreeVector &tmpxx, //===================================================================== //* DistanceToSurface ------------------------------------------------- -G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, - const G4ThreeVector &gv, - G4ThreeVector gxx[], - G4double distance[], - G4int areacode[], - G4bool isvalid[], - EValidate validate) +G4int G4TwistBoxSide::DistanceToSurface(const G4ThreeVector &gp, + const G4ThreeVector &gv, + G4ThreeVector gxx[], + G4double distance[], + G4int areacode[], + G4bool isvalid[], + EValidate validate) { static const G4double ctol = 0.5 * kCarTolerance; @@ -233,16 +253,8 @@ G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, G4double L = 2*fDz ; - // G4double phipzvx = fPhiTwist*p.z()*v.x() ; - // G4double phipzvy = fPhiTwist*p.z()*v.y() ; - - // G4double phipxvz = fPhiTwist*p.x()*v.z() ; - // G4double phipyvz = fPhiTwist*p.y()*v.z() ; - - // G4double phivz = fPhiTwist*v.z(); - G4double phix = fPhiTwist * ( v.x()*p.z() - v.z()*p.x() ) ; - G4double phiy = fPhiTwist * ( v.y()*p.z() - v.z()*p.y() ) ; - + G4double phixz = fPhiTwist * ( p.x() * v.z() - p.z() * v.x() ) ; + G4double phiyz = fPhiTwist * ( p.y() * v.z() - p.z() * v.y() ) ; // special case vz = 0 @@ -251,10 +263,8 @@ G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, if ( std::fabs(p.z()) <= L ) { // intersection possible in z phi = p.z() * fPhiTwist / L ; // phi is determined by the z-position - u = (2*fDy1*(8*fPhiTwist*(p.y()*v.x() - p.x()*v.y()) + - (2*(fDx4plus2 + fDx3plus1)*fPhiTwist*v.y() - 2*(4*fdeltaY*v.x() + (-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.y())*phi)*std::cos(phi) - - (2*(fDx4plus2 + fDx3plus1)*fPhiTwist*v.x() - 2*((-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.x() - 4*fdeltaY*v.y())*phi)*std::sin(phi)))/ - (4.*fPhiTwist*(std::sin(phi)*(fa1md1*v.x() + 4*fDy1*v.y() - 4*fDy1*v.x()*fTAlph) + std::cos(phi)*(4*fDy1*v.x() - fa1md1 *v.y() + 4*fDy1*v.y()*fTAlph))) ; + + u = (2*(-(fdeltaY*phi*v.x()) + fPhiTwist*p.y()*v.x() + fdeltaX*phi*v.y() - fPhiTwist*p.x()*v.y()) + (fDx4plus2*fPhiTwist + 2*fDx4minus2*phi)*(v.y()*std::cos(phi) - v.x()*std::sin(phi)))/(2.* fPhiTwist*((v.x() - fTAlph*v.y())*std::cos(phi) + (fTAlph*v.x() + v.y())*std::sin(phi))) ; xbuftmp.phi = phi ; xbuftmp.u = u ; @@ -290,30 +300,25 @@ G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, G4double c[8],sr[7],si[7] ; - c[7] = -1800*(-4*fa1md1*phiy + 16*fDy1*(phix + phiy*fTAlph) + 4*(fDx4plus2 + fDx3plus1)*fDy1*fPhiTwist*v.z()) ; - c[6] = -3600*(8*fDy1*(phiy - L*v.x()) + 2*(phix - fdeltaY*v.z() + L*v.y())*(fa1md1 - 4*fDy1*fTAlph) - - 2*fDy1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.z()) ; - c[5] = 150*(fa1md1*(-20*phiy + 48*L*v.x()) + 2*fDy1*(40*phix + 96*L*v.y() + 40*phiy*fTAlph - 96*L*v.x()*fTAlph - - 2*(fDx4plus2 + fDx3plus1)*fPhiTwist*v.z())) ; - c[4] = -300*(-8*fDy1*(phiy - 5*L*v.x()) - 2*(phix + fdeltaY*v.z() + 5*L*v.y())*(fa1md1 - 4*fDy1*fTAlph) - - 2*fDy1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.z()) ; - c[3] = -3*(-4*fa1md1*(phiy - 50*L*v.x()) + 16*fDy1*(phix + 50*L*v.y() + phiy*fTAlph - 50*L*v.x()*fTAlph) + - 2*(fDx4plus2 + fDx3plus1)*2*fDy1*fPhiTwist*v.z()) ; - c[2] = 16*fDy1*(7*phiy + 3*L*v.x()) + 4*(7*phix + 3*fdeltaY*v.z() - - 3*L*v.y())*(fa1md1 - 4*fDy1*fTAlph) + 12*fDy1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*v.z() ; - c[1] = -4*fDy1*(9*fPhiTwist*p.z()*v.x() - 9*fPhiTwist*p.x()*v.z() + - 28*L*v.y()) + (9*phiy - 28*L*v.x())*(fa1md1 - 4*fDy1*fTAlph) ; - c[0] = 9*(-(fa1md1*L*v.y()) + 4*fDy1*(L*v.x() + L*v.y()*fTAlph)) ; + c[7] = -14400*(-2*phixz + 2*fTAlph*phiyz + fDx4plus2*fPhiTwist*v.z()) ; + c[6] = 28800*(phiyz + 2*fDz*v.x() - (fdeltaX + fDx4minus2)*v.z() + fTAlph*(phixz - 2*fDz*v.y() + fdeltaY*v.z())) ; + c[5] = -1200*(10*phixz - 48*fDz*v.y() + 24*fdeltaY*v.z() + fDx4plus2*fPhiTwist*v.z() - 2*fTAlph*(5*phiyz + 24*fDz*v.x() - 12*fdeltaX*v.z())) ; + c[4] = -2400*(phiyz + 10*fDz*v.x() - 5*fdeltaX*v.z() + fDx4minus2*v.z() + fTAlph*(phixz - 10*fDz*v.y() + 5*fdeltaY*v.z())) ; + c[3] = 24*(2*phixz - 200*fDz*v.y() + 100*fdeltaY*v.z() - fDx4plus2*fPhiTwist*v.z() - 2*fTAlph*(phiyz + 100*fDz*v.x() - 50*fdeltaX*v.z())) ; + c[2] = -16*(7*fTAlph* phixz + 7*phiyz - 6*fDz*v.x() + 6*fDz*fTAlph*v.y() + 3*(fdeltaX + fDx4minus2 - fdeltaY*fTAlph)*v.z()) ; + c[1] = 4*(9*phixz - 9*fTAlph*phiyz - 56*fDz*fTAlph*v.x() - 56*fDz*v.y() + 28*(fdeltaY + fdeltaX*fTAlph)*v.z()) ; + c[0] = 36*(2* fDz*(v.x() - fTAlph*v.y()) - fdeltaX*v.z() + fdeltaY*fTAlph*v.z()) ; + #ifdef G4SPECSDEBUG G4cout << "coef = " << c[0] << " " - << c[1] << " " - << c[2] << " " - << c[3] << " " - << c[4] << " " - << c[5] << " " - << c[6] << " " - << c[7] << G4endl ; + << c[1] << " " + << c[2] << " " + << c[3] << " " + << c[4] << " " + << c[5] << " " + << c[6] << " " + << c[7] << G4endl ; #endif G4JTPolynomialSolver trapEq ; @@ -323,24 +328,22 @@ G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, for (G4int i = 0 ; i= 0) tmpisvalid = true; + } + } else if (validate == kValidateWithoutTol) { + tmpareacode = GetAreaCode(tmpxx, false); + if (IsInside(tmpareacode)) { + if (tmpdist >= 0) tmpisvalid = true; + } + } else { // kDontValidate + G4Exception("G4TwistedBoxSide::DistanceToSurface()", + "NotImplemented kDontValidate", FatalException, + "Feature NOT implemented !"); + } + } else { - tmpdist = kInfinity; // no convergence after 10 steps - tmpisvalid = false ; // solution is not vaild + tmpdist = kInfinity; // no convergence after 10 steps + tmpisvalid = false ; // solution is not vaild } - - + + // store the found values xbuf[k].xx = tmpxx ; xbuf[k].distance = tmpdist ; @@ -610,23 +617,23 @@ G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, isvalid[i] = xbuf[i].isvalid ; fCurStatWithV.SetCurrentStatus(i, gxx[i], distance[i], areacode[i], - isvalid[i], nxx, validate, &gp, &gv); + isvalid[i], nxx, validate, &gp, &gv); #ifdef G4SPECSDEBUG G4cout << "element Nr. " << i - << ", local Intersection = " << xbuf[i].xx - << ", distance = " << xbuf[i].distance - << ", u = " << xbuf[i].u - << ", phi = " << xbuf[i].phi - << ", isvalid = " << xbuf[i].isvalid - << G4endl ; + << ", local Intersection = " << xbuf[i].xx + << ", distance = " << xbuf[i].distance + << ", u = " << xbuf[i].u + << ", phi = " << xbuf[i].phi + << ", isvalid = " << xbuf[i].isvalid + << G4endl ; #endif } // end for( i ) loop #ifdef G4SPECSDEBUG - G4cout << "G4TwistedTrapAlphaSide finished " << G4endl ; + G4cout << "G4TwistBoxSide finished " << G4endl ; G4cout << nxx << " possible physical solutions found" << G4endl ; for ( G4int k= 0 ; k< nxx ; k++ ) { G4cout << "global intersection Point found: " << gxx[k] << G4endl ; @@ -640,11 +647,10 @@ G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, } - //===================================================================== //* DistanceToSurface ------------------------------------------------- -G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistBoxSide::DistanceToSurface(const G4ThreeVector &gp, G4ThreeVector gxx[], G4double distance[], G4int areacode[]) @@ -708,7 +714,7 @@ G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, // check validity of solution ( valid phi,psi ) G4double halfphi = 0.5*fPhiTwist ; - G4double uMax = GetValueB(phiR)/2 ; + G4double uMax = GetBoundaryMax(phiR) ; if ( phiR > halfphi ) phiR = halfphi ; if ( phiR < -halfphi ) phiR = -halfphi ; @@ -746,7 +752,7 @@ G4int G4TwistedTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, //===================================================================== //* GetAreaCode ------------------------------------------------------- -G4int G4TwistedTrapAlphaSide::GetAreaCode(const G4ThreeVector &xx, +G4int G4TwistBoxSide::GetAreaCode(const G4ThreeVector &xx, G4bool withTol) { // We must use the function in local coordinate system. @@ -758,7 +764,7 @@ G4int G4TwistedTrapAlphaSide::GetAreaCode(const G4ThreeVector &xx, G4double yprime ; GetPhiUAtX(xx, phi,yprime ) ; - G4double fYAxisMax = 0.5 * GetValueB(phi) ; + G4double fYAxisMax = GetBoundaryMax(phi) ; // Boundaries are symmetric G4double fYAxisMin = - fYAxisMax ; #ifdef G4SPECSDEBUG @@ -844,7 +850,7 @@ G4int G4TwistedTrapAlphaSide::GetAreaCode(const G4ThreeVector &xx, } return areacode; } else { - G4Exception("G4TwistedTrapAlphaSide::GetAreaCode()", + G4Exception("G4TwistBoxSide::GetAreaCode()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -854,7 +860,7 @@ G4int G4TwistedTrapAlphaSide::GetAreaCode(const G4ThreeVector &xx, //===================================================================== //* SetCorners() ------------------------------------------------------ -void G4TwistedTrapAlphaSide::SetCorners() +void G4TwistBoxSide::SetCorners() { // Set Corner points in local coodinate. @@ -862,41 +868,42 @@ void G4TwistedTrapAlphaSide::SetCorners() if (fAxis[0] == kYAxis && fAxis[1] == kZAxis) { G4double x, y, z; - G4double CosPhi = std::cos(fPhiTwist/2) ; - G4double SinPhi = std::sin(fPhiTwist/2) ; // corner of Axis0min and Axis1min - x = (-( 2*fDy1 + fdeltaY)*SinPhi + CosPhi*( 2*fDx1 - fdeltaX + 2*fDy1*fTAlph))/2. ; - y = (-( 2*fDy1 + fdeltaY)*CosPhi - SinPhi*( 2*fDx1 - fdeltaX + 2*fDy1*fTAlph))/2. ; + x = -fdeltaX/2. + (fDx2 - fDy1*fTAlph)*std::cos(fPhiTwist/2.) - fDy1*std::sin(fPhiTwist/2.) ; + y = -fdeltaY/2. - fDy1*std::cos(fPhiTwist/2.) + (-fDx2 + fDy1*fTAlph)*std::sin(fPhiTwist/2.) ; z = -fDz ; SetCorner(sC0Min1Min, x, y, z); - + // corner of Axis0max and Axis1min - x = ( ( 2*fDy1 - fdeltaY)*SinPhi + CosPhi*( 2*fDx2 - fdeltaX - 2*fDy1*fTAlph))/2. ; - y = ( ( 2*fDy1 - fdeltaY)*CosPhi + SinPhi*(-2*fDx2 + fdeltaX + 2*fDy1*fTAlph))/2. ; + + x = -fdeltaX/2. + (fDx2 + fDy1*fTAlph)*std::cos(fPhiTwist/2.) + fDy1*std::sin(fPhiTwist/2.) ; + y = -fdeltaY/2. + fDy1*std::cos(fPhiTwist/2.) - (fDx2 + fDy1*fTAlph)*std::sin(fPhiTwist/2.) ; z = -fDz ; SetCorner(sC0Max1Min, x, y, z); // corner of Axis0max and Axis1max - x = (-( 2*fDy2 + fdeltaY)*SinPhi + CosPhi*( 2*fDx4 + fdeltaX - 2*fDy2*fTAlph))/2. ; - y = ( ( 2*fDy2 + fdeltaY)*CosPhi + SinPhi*( 2*fDx4 + fdeltaX - 2*fDy2*fTAlph))/2. ; + + x = fdeltaX/2. + (fDx4 + fDy2*fTAlph)*std::cos(fPhiTwist/2.) - fDy2*std::sin(fPhiTwist/2.) ; + y = fdeltaY/2. + fDy2*std::cos(fPhiTwist/2.) + (fDx4 + fDy2*fTAlph)*std::sin(fPhiTwist/2.) ; z = fDz ; SetCorner(sC0Max1Max, x, y, z); // corner of Axis0min and Axis1max - x = ( ( 2*fDy2 - fdeltaY)*SinPhi + CosPhi*( 2*fDx3 + fdeltaX + 2*fDy2*fTAlph))/2. ; - y = ( (-2*fDy2 + fdeltaY)*CosPhi + SinPhi*( 2*fDx3 + fdeltaX + 2*fDy2*fTAlph))/2. ; + + x = fdeltaX/2. + (fDx4 - fDy2*fTAlph)*std::cos(fPhiTwist/2.) + fDy2*std::sin(fPhiTwist/2.) ; + y = fdeltaY/2. - fDy2*std::cos(fPhiTwist/2.) + (fDx4 - fDy2*fTAlph)*std::sin(fPhiTwist/2.) ; z = fDz ; SetCorner(sC0Min1Max, x, y, z); } else { - G4Exception("G4TwistedTrapAlphaSide::SetCorners()", + G4Exception("G4TwistBoxSide::SetCorners()", "NotImplemented", FatalException, "Method NOT implemented !"); } @@ -905,7 +912,7 @@ void G4TwistedTrapAlphaSide::SetCorners() //===================================================================== //* SetBoundaries() --------------------------------------------------- -void G4TwistedTrapAlphaSide::SetBoundaries() +void G4TwistBoxSide::SetBoundaries() { // Set direction-unit vector of boundary-lines in local coodinate. // @@ -940,16 +947,14 @@ void G4TwistedTrapAlphaSide::SetBoundaries() } else { - G4Exception("G4TwistedTrapAlphaSide::SetCorners()", + G4Exception("G4TwistBoxSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } - } - -void G4TwistedTrapAlphaSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) +void G4TwistBoxSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) { // find closest point XX on surface for a given point p // X0 is a point on the surface, d is the direction ( both for a fixed z = pz) @@ -958,23 +963,13 @@ void G4TwistedTrapAlphaSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4doubl phi = p.z()/(2*fDz)*fPhiTwist ; - G4double CosPhi = std::cos(phi) ; - G4double SinPhi = std::sin(phi) ; - G4double c0 = 2*(CosPhi - SinPhi*fTAlph) + (fa1md1*SinPhi)/(2*fDy1) ; - G4double c1 = (-4*fDy1*SinPhi + CosPhi*(fa1md1 - 4*fDy1*fTAlph))/(2*fDy1) ; + u = -(fTAlph*(fDx4plus2*fPhiTwist + 2*fDx4minus2*phi) + 2*(fdeltaY*phi + fdeltaX*fTAlph*phi - fPhiTwist*(fTAlph*p.x() + p.y()))* std::cos(phi) + 2*(-(fdeltaX*phi) + fdeltaY*fTAlph*phi + fPhiTwist*(p.x() - fTAlph*p.y()))*std::sin(phi))/(2.*(fPhiTwist + fPhiTwist*fTAlph*fTAlph)) ; - u = ( -(fa1md1* 2*(fDx4plus2 + fDx3plus1 )*fPhiTwist) + - 2*(fa1md1*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX) - 16*fDy1*fdeltaY)*phi + - 4*fDy1*(2*(fDx4plus2 + fDx3plus1)*fPhiTwist - - 2*(-2*(fDx4minus2 + fDx3minus1) - 4*fdeltaX)*phi)*fTAlph + - 8*fPhiTwist*CosPhi*(2*fDx2*p.x() - 2*fDx1*p.x() + 4*fDy1*p.y() - 4*fDy1*p.x()*fTAlph) - - 8*fPhiTwist*SinPhi*(4*fDy1*p.x() - 2*fDx2*p.y() + 2*fDx1*p.y() + 4*fDy1*p.y()*fTAlph))/ - (8.*fDy1*fPhiTwist*(c0*c0 + c1*c1)) ; } -G4ThreeVector G4TwistedTrapAlphaSide::ProjectPoint(const G4ThreeVector &p, +G4ThreeVector G4TwistBoxSide::ProjectPoint(const G4ThreeVector &p, G4bool isglobal) { // Get Rho at p.z() on Hyperbolic Surface. @@ -999,4 +994,46 @@ G4ThreeVector G4TwistedTrapAlphaSide::ProjectPoint(const G4ThreeVector &p, } } +void G4TwistBoxSide::GetFacets( G4int m, G4int n, G4double xyz[][3], G4int faces[][4], G4int iside ) +{ + G4double phi ; + G4double b ; + + G4double z, u ; // the two parameters for the surface equation + G4ThreeVector p ; // a point on the surface, given by (z,u) + + G4int nnode ; + G4int nface ; + + // calculate the (n-1)*(m-1) vertices + + G4int i,j ; + + for ( i = 0 ; i -#include "G4TwistedTrapBoxSide.hh" +#include "G4TwistTrapAlphaSide.hh" #include "G4JTPolynomialSolver.hh" //===================================================================== //* constructors ------------------------------------------------------ -G4TwistedTrapBoxSide::G4TwistedTrapBoxSide(const G4String &name, - G4double PhiTwist, // twist angle - G4double pDz, // half z lenght - G4double pTheta, // direction between end planes - G4double pPhi, // defined by polar and azimutal angles. - G4double pDy1, // half y length at -pDz - G4double pDx1, // half x length at -pDz,-pDy - G4double pDy2, // half y length at +pDz - G4double pDx2, // half x length at -pDz,+pDy - G4double pAlph, // tilt angle at +pDz +G4TwistTrapAlphaSide::G4TwistTrapAlphaSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz G4double AngleSide // parity - ) : G4VSurface(name) + ) : G4VTwistSurface(name) { @@ -69,7 +71,9 @@ G4TwistedTrapBoxSide::G4TwistedTrapBoxSide(const G4String &name, fDx1 = pDx1 ; fDx2 = pDx2 ; - + fDx3 = pDx3 ; + fDx4 = pDx4 ; + fDy1 = pDy1 ; fDy2 = pDy2 ; @@ -81,6 +85,17 @@ G4TwistedTrapBoxSide::G4TwistedTrapBoxSide(const G4String &name, fTheta = pTheta ; fPhi = pPhi ; + // precalculate frequently used parameters + fDx4plus2 = fDx4 + fDx2 ; + fDx4minus2 = fDx4 - fDx2 ; + fDx3plus1 = fDx3 + fDx1 ; + fDx3minus1 = fDx3 - fDx1 ; + fDy2plus1 = fDy2 + fDy1 ; + fDy2minus1 = fDy2 - fDy1 ; + + fa1md1 = 2*fDx2 - 2*fDx1 ; + fa2md2 = 2*fDx4 - 2*fDx3 ; + fPhiTwist = PhiTwist ; // dphi fAngleSide = AngleSide ; // 0,90,180,270 deg @@ -98,17 +113,26 @@ G4TwistedTrapBoxSide::G4TwistedTrapBoxSide(const G4String &name, } +//===================================================================== +//* Fake default constructor ------------------------------------------ + +G4TwistTrapAlphaSide::G4TwistTrapAlphaSide( __void__& a ) + : G4VTwistSurface(a) +{ +} + + //===================================================================== //* destructor -------------------------------------------------------- -G4TwistedTrapBoxSide::~G4TwistedTrapBoxSide() +G4TwistTrapAlphaSide::~G4TwistTrapAlphaSide() { } //===================================================================== //* GetNormal --------------------------------------------------------- -G4ThreeVector G4TwistedTrapBoxSide::GetNormal(const G4ThreeVector &tmpxx, +G4ThreeVector G4TwistTrapAlphaSide::GetNormal(const G4ThreeVector &tmpxx, G4bool isGlobal) { // GetNormal returns a normal vector at a surface (or very close @@ -154,7 +178,7 @@ G4ThreeVector G4TwistedTrapBoxSide::GetNormal(const G4ThreeVector &tmpxx, //===================================================================== //* DistanceToSurface ------------------------------------------------- -G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], @@ -218,8 +242,8 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, G4double L = 2*fDz ; - G4double phiy = fPhiTwist * ( v.y()*p.z() - v.z()*p.y() ) ; - G4double phix = fPhiTwist * ( v.x()*p.z() - v.z()*p.x() ) ; + G4double phixz = fPhiTwist * ( p.x() * v.z() - p.z() * v.x() ) ; + G4double phiyz = fPhiTwist * ( p.y() * v.z() - p.z() * v.y() ) ; // special case vz = 0 @@ -229,10 +253,7 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, if ( std::fabs(p.z()) <= L ) { // intersection possible in z phi = p.z() * fPhiTwist / L ; // phi is determined by the z-position - - u = (4*fPhiTwist*(p.y()*v.x() - p.x()*v.y()) + (-4*fdeltaY*v.x()*phi + v.y()*(2*(fDx1 + fDx2)*fPhiTwist + 4*(-fDx1 + fDx2 + fdeltaX)*phi))* - std::cos(phi) - (2*(fDx1 + fDx2)*fPhiTwist*v.x() + 4*((-fDx1 + fDx2 + fdeltaX)*v.x() + fdeltaY*v.y())*phi)*std::sin(phi))/ - (4.*fPhiTwist*((v.x() + fTAlph*v.y())*std::cos(phi) + (-(fTAlph*v.x()) + v.y())*std::sin(phi))) ; + u = (fDy1*(4*(-(fdeltaY*phi*v.x()) + fPhiTwist*p.y()*v.x() + fdeltaX*phi*v.y() - fPhiTwist*p.x()*v.y()) + ((fDx3plus1 + fDx4plus2)*fPhiTwist + 2*(fDx3minus1 + fDx4minus2)*phi)*(v.y()*std::cos(phi) - v.x()*std::sin(phi))))/(fPhiTwist*(4*fDy1* v.x() - (fa1md1 + 4*fDy1*fTAlph)*v.y())*std::cos(phi) + fPhiTwist*(fa1md1*v.x() + 4*fDy1*(fTAlph*v.x() + v.y()))*std::sin(phi)) ; xbuftmp.phi = phi ; xbuftmp.u = u ; @@ -268,24 +289,54 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, G4double c[8],sr[7],si[7] ; - c[7] = 3600*( fPhiTwist*(fDx1 + fDx2)*v.z() + 2*fTAlph*phiy+ 2*phix ) ; - c[6] = -7200*(phix*fTAlph - phiy + 2*fDz*(v.x() + fTAlph*v.y()) - (fdeltaX - fDx1 + fDx2 + fdeltaY*fTAlph ) *v.z()) ; - c[5] = 300*(48*fDz*(fTAlph*v.x() - v.y()) - 10*phix + fPhiTwist*(fDx1 + fDx2)*v.z() - 10*phiy*fTAlph ) ; - c[4] = 600*(10*fDz*v.x() + fTAlph*phix + 10*fDz*fTAlph*v.y() - phiy + fdeltaX*v.z() + (fDx2-fDx1)*v.z() + fdeltaY*fTAlph*v.z() ) ; - c[3] = -1200*fDz*fTAlph*v.x() + 12*phix + 1200*fDz*v.y() + 12*phiy*fTAlph + 6*(fDx1+fDx2)*fPhiTwist*v.z(); - c[2] = -24*fDz*v.x() - 24*fDz*fTAlph*v.y() + 28*phix*fTAlph + 12*fdeltaX*v.z() + 12*(fDx2-fDx1)*v.z() + 12*fdeltaY*fTAlph*v.z() - 28*phiy ; - c[1] = -56*fDz*fTAlph*v.x() + 9*phix + 56*fDz*v.y() + 9*phiy*fTAlph ; - c[0] = -18*fDz*v.x() - 18*fDz*fTAlph*v.y() ; + c[7] = 57600* + fDy1*(fa1md1*phiyz + + fDy1*(-4*phixz + + 4*fTAlph*phiyz + (fDx3plus1 + fDx4plus2)*fPhiTwist*v.z())) ; + c[6] = -57600* + fDy1*(4*fDy1*(phiyz + 2*fDz*v.x() + fTAlph*(phixz - 2*fDz*v.y())) - + 2*fDy1*(2*fdeltaX + fDx3minus1 + fDx4minus2 - 2*fdeltaY*fTAlph)*v.z() + + fa1md1*(phixz - 2*fDz*v.y() + fdeltaY*v.z())) ; + c[5] = 4800* + fDy1*(fa1md1*(-5*phiyz - 24*fDz*v.x() + 12*fdeltaX*v.z()) + + fDy1*(20*phixz - + 4*(5*fTAlph*phiyz + 24*fDz*fTAlph*v.x() + + 24*fDz*v.y()) + (48*fdeltaY + (fDx3plus1 + fDx4plus2)* + fPhiTwist + 48*fdeltaX*fTAlph)*v.z())) ; + c[4] = 4800* + fDy1*(fa1md1*(phixz - 10*fDz*v.y() + 5*fdeltaY*v.z()) + + 2*fDy1*(2*phiyz + + 20*fDz*v.x() + (-10*fdeltaX + fDx3minus1 + fDx4minus2)*v.z() + + 2*fTAlph*(phixz - 10*fDz*v.y() + 5*fdeltaY*v.z()))) ; + c[3] = -96* + fDy1*(-(fa1md1*(phiyz + 100*fDz*v.x() - 50*fdeltaX*v.z())) + + fDy1*(4*phixz - + 400*fDz*v.y() + (200*fdeltaY - (fDx3plus1 + fDx4plus2)*fPhiTwist)* + v.z() - 4*fTAlph*(phiyz + 100*fDz*v.x() - 50*fdeltaX*v.z()))) ; + c[2] = 32* + fDy1*(4*fDy1*(7*fTAlph*phixz + 7*phiyz - 6*fDz*v.x() + 6*fDz*fTAlph*v.y()) + + 6*fDy1*(2*fdeltaX + fDx3minus1 + fDx4minus2 - 2*fdeltaY*fTAlph)*v.z() + + fa1md1*(7*phixz + 6*fDz*v.y() - 3*fdeltaY*v.z())) ; + c[1] = -8* + fDy1*(fa1md1*(-9*phiyz - 56*fDz*v.x() + 28*fdeltaX*v.z()) + + 4*fDy1*(9*phixz - 9*fTAlph*phiyz - 56*fDz*fTAlph*v.x() - 56*fDz*v.y() + + 28*(fdeltaY + fdeltaX*fTAlph)*v.z())) ; + c[0] = 72* + fDy1*(fa1md1*(2*fDz*v.y() - fdeltaY*v.z()) + + fDy1*(-8*fDz*v.x() + 8*fDz*fTAlph*v.y() + 4*fdeltaX*v.z() - + 4*fdeltaY*fTAlph*v.z())) ; + + #ifdef G4SPECSDEBUG G4cout << "coef = " << c[0] << " " - << c[1] << " " - << c[2] << " " - << c[3] << " " - << c[4] << " " - << c[5] << " " - << c[6] << " " - << c[7] << G4endl ; + << c[1] << " " + << c[2] << " " + << c[3] << " " + << c[4] << " " + << c[5] << " " + << c[6] << " " + << c[7] << G4endl ; #endif G4JTPolynomialSolver trapEq ; @@ -295,24 +346,24 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, for (G4int i = 0 ; i= 0) tmpisvalid = true; - } + tmpareacode = GetAreaCode(tmpxx); + if (!IsOutside(tmpareacode)) { + if (tmpdist >= 0) tmpisvalid = true; + } } else if (validate == kValidateWithoutTol) { - tmpareacode = GetAreaCode(tmpxx, false); - if (IsInside(tmpareacode)) { - if (tmpdist >= 0) tmpisvalid = true; - } + tmpareacode = GetAreaCode(tmpxx, false); + if (IsInside(tmpareacode)) { + if (tmpdist >= 0) tmpisvalid = true; + } } else { // kDontValidate - G4Exception("G4TwistedTrapBoxSide::DistanceToSurface()", - "NotImplemented kDontValidate", FatalException, - "Feature NOT implemented !"); + G4Exception("G4TwistTrapAlphaSide::DistanceToSurface()", + "NotImplemented kDontValidate", FatalException, + "Feature NOT implemented !"); } } @@ -442,12 +497,8 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, #endif phi = fPhiTwist/2 ; - u = - (-4*( -phiy + L*v.y()*phi) + 4*fdeltaY*v.z()*phi*std::cos(phi) + - v.z()*(2*(fDx1 + fDx2)*fPhiTwist + 4*(-fDx1 + fDx2 + fdeltaX)*phi)*std::sin(phi))/ - (4.*fPhiTwist*v.z()*(std::cos(phi) - fTAlph*std::sin(phi))) ; - + u = 0 ; - xbuftmp.phi = phi ; xbuftmp.u = u ; xbuftmp.areacode = sOutside ; @@ -462,10 +513,8 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, #endif phi = -fPhiTwist/2 ; - u = - (-4*( -phiy + L*v.y()*phi) + 4*fdeltaY*v.z()*phi*std::cos(phi) + - v.z()*(2*(fDx1 + fDx2)*fPhiTwist + 4*(-fDx1 + fDx2 + fdeltaX)*phi)*std::sin(phi))/ - (4.*fPhiTwist*v.z()*(std::cos(phi) - fTAlph*std::sin(phi))) ; - + u = 0 ; + xbuftmp.phi = phi ; xbuftmp.u = u ; xbuftmp.areacode = sOutside ; @@ -478,8 +527,8 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, #ifdef G4SPECSDEBUG G4cout << "Solution " << k << " : " - << "reconstructed phiR = " << xbuf[k].phi - << ", uR = " << xbuf[k].u << G4endl ; + << "reconstructed phiR = " << xbuf[k].phi + << ", uR = " << xbuf[k].u << G4endl ; #endif phi = xbuf[k].phi ; // get the stored values for phi and u @@ -488,35 +537,38 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, IsConverged = false ; // no convergence at the beginning for ( G4int i = 1 ; i= 0) tmpisvalid = true; + } + } else if (validate == kValidateWithoutTol) { + tmpareacode = GetAreaCode(tmpxx, false); + if (IsInside(tmpareacode)) { + if (tmpdist >= 0) tmpisvalid = true; + } + } else { // kDontValidate + G4Exception("G4TwistedBoxSide::DistanceToSurface()", + "NotImplemented kDontValidate", FatalException, + "Feature NOT implemented !"); + } + } else { - tmpdist = kInfinity; // no convergence after 10 steps - tmpisvalid = false ; // solution is not vaild + tmpdist = kInfinity; // no convergence after 10 steps + tmpisvalid = false ; // solution is not vaild } - - + + // store the found values xbuf[k].xx = tmpxx ; xbuf[k].distance = tmpdist ; @@ -584,23 +636,23 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, isvalid[i] = xbuf[i].isvalid ; fCurStatWithV.SetCurrentStatus(i, gxx[i], distance[i], areacode[i], - isvalid[i], nxx, validate, &gp, &gv); + isvalid[i], nxx, validate, &gp, &gv); #ifdef G4SPECSDEBUG G4cout << "element Nr. " << i - << ", local Intersection = " << xbuf[i].xx - << ", distance = " << xbuf[i].distance - << ", u = " << xbuf[i].u - << ", phi = " << xbuf[i].phi - << ", isvalid = " << xbuf[i].isvalid - << G4endl ; + << ", local Intersection = " << xbuf[i].xx + << ", distance = " << xbuf[i].distance + << ", u = " << xbuf[i].u + << ", phi = " << xbuf[i].phi + << ", isvalid = " << xbuf[i].isvalid + << G4endl ; #endif } // end for( i ) loop #ifdef G4SPECSDEBUG - G4cout << "G4TwistedTrapBoxSide finished " << G4endl ; + G4cout << "G4TwistTrapAlphaSide finished " << G4endl ; G4cout << nxx << " possible physical solutions found" << G4endl ; for ( G4int k= 0 ; k< nxx ; k++ ) { G4cout << "global intersection Point found: " << gxx[k] << G4endl ; @@ -618,7 +670,7 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, //===================================================================== //* DistanceToSurface ------------------------------------------------- -G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistTrapAlphaSide::DistanceToSurface(const G4ThreeVector &gp, G4ThreeVector gxx[], G4double distance[], G4int areacode[]) @@ -682,7 +734,7 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, // check validity of solution ( valid phi,psi ) G4double halfphi = 0.5*fPhiTwist ; - G4double uMax = GetValueB(phiR) ; + G4double uMax = GetBoundaryMax(phiR) ; if ( phiR > halfphi ) phiR = halfphi ; if ( phiR < -halfphi ) phiR = -halfphi ; @@ -720,7 +772,7 @@ G4int G4TwistedTrapBoxSide::DistanceToSurface(const G4ThreeVector &gp, //===================================================================== //* GetAreaCode ------------------------------------------------------- -G4int G4TwistedTrapBoxSide::GetAreaCode(const G4ThreeVector &xx, +G4int G4TwistTrapAlphaSide::GetAreaCode(const G4ThreeVector &xx, G4bool withTol) { // We must use the function in local coordinate system. @@ -732,8 +784,8 @@ G4int G4TwistedTrapBoxSide::GetAreaCode(const G4ThreeVector &xx, G4double yprime ; GetPhiUAtX(xx, phi,yprime ) ; - G4double fYAxisMax = 0.5 * GetValueB(phi) ; - G4double fYAxisMin = - fYAxisMax ; + G4double fYAxisMax = GetBoundaryMax(phi) ; + G4double fYAxisMin = GetBoundaryMin(phi) ; #ifdef G4SPECSDEBUG G4cout << "GetAreaCode: phi = " << phi << G4endl ; @@ -818,7 +870,7 @@ G4int G4TwistedTrapBoxSide::GetAreaCode(const G4ThreeVector &xx, } return areacode; } else { - G4Exception("G4TwistedTrapBoxSide::GetAreaCode()", + G4Exception("G4TwistTrapAlphaSide::GetAreaCode()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -828,7 +880,7 @@ G4int G4TwistedTrapBoxSide::GetAreaCode(const G4ThreeVector &xx, //===================================================================== //* SetCorners() ------------------------------------------------------ -void G4TwistedTrapBoxSide::SetCorners() +void G4TwistTrapAlphaSide::SetCorners() { // Set Corner points in local coodinate. @@ -836,44 +888,55 @@ void G4TwistedTrapBoxSide::SetCorners() if (fAxis[0] == kYAxis && fAxis[1] == kZAxis) { G4double x, y, z; - G4double CosPhi = std::cos(fPhiTwist/2) ; - G4double SinPhi = std::sin(fPhiTwist/2) ; // corner of Axis0min and Axis1min - - x = (-fdeltaX/2. + fDx1 + fDy1*fTAlph)*CosPhi - ((fdeltaY + 2*fDy1)*SinPhi)/2. ; - y = (-((fdeltaY + 2*fDy1)*CosPhi) + (fdeltaX - 2*(fDx1 + fDy1*fTAlph))*SinPhi)/2. ; + x = -fdeltaX/2. + (fDx1 - fDy1*fTAlph)*std::cos(fPhiTwist/2.) - + fDy1*std::sin(fPhiTwist/2.) ; + y = -fdeltaY/2. - + fDy1*std::cos(fPhiTwist/2.) + (-fDx1 + fDy1*fTAlph)*std::sin(fPhiTwist/2.) ; z = -fDz ; + // G4cout << "SetCorners: " << x << ", " << y << ", " << z << G4endl ; + SetCorner(sC0Min1Min, x, y, z); - + // corner of Axis0max and Axis1min - - x = (-fdeltaX/2. + fDx1 - fDy1*fTAlph)*CosPhi - ((fdeltaY - 2*fDy1)*SinPhi)/2. ; - y = (-fdeltaY/2. + fDy1)*CosPhi + ((fdeltaX - 2*fDx1 + 2*fDy1*fTAlph)*SinPhi)/2. ; + x = -fdeltaX/2. + (fDx2 + fDy1*fTAlph)*std::cos(fPhiTwist/2.) + + fDy1*std::sin(fPhiTwist/2.) ; + y = -fdeltaY/2. + + fDy1*std::cos(fPhiTwist/2.) - (fDx2 + fDy1*fTAlph)*std::sin(fPhiTwist/2.) ; z = -fDz ; + // G4cout << "SetCorners: " << x << ", " << y << ", " << z << G4endl ; + SetCorner(sC0Max1Min, x, y, z); - // corner of Axis0max and Axis1max - - x = (fdeltaX/2. + fDx2 - fDy2*fTAlph)*CosPhi - ((fdeltaY + 2*fDy2)*SinPhi)/ 2. ; - y = (fdeltaY/2. + fDy2)*CosPhi + (fdeltaX/2. + fDx2 - fDy2*fTAlph)*SinPhi ; + // corner of Axis0max and Axis1max + x = fdeltaX/2. + (fDx4 + fDy2*fTAlph)*std::cos(fPhiTwist/2.) - + fDy2*std::sin(fPhiTwist/2.) ; + y = fdeltaY/2. + + fDy2*std::cos(fPhiTwist/2.) + (fDx4 + fDy2*fTAlph)*std::sin(fPhiTwist/2.) ; z = fDz ; - + + // G4cout << "SetCorners: " << x << ", " << y << ", " << z << G4endl ; + SetCorner(sC0Max1Max, x, y, z); - + + // corner of Axis0min and Axis1max - - x = (fdeltaX/2. + fDx2 + fDy2*fTAlph)*CosPhi - ((fdeltaY - 2*fDy2)*SinPhi)/2. ; - y = ((fdeltaY - 2*fDy2)*CosPhi)/2. + (fdeltaX/2. + fDx2 + fDy2*fTAlph)*SinPhi ; + x = fdeltaX/2. + (fDx3 - fDy2*fTAlph)*std::cos(fPhiTwist/2.) + + fDy2*std::sin(fPhiTwist/2.) ; + y = fdeltaY/2. - + fDy2*std::cos(fPhiTwist/2.) + (fDx3 - fDy2*fTAlph)*std::sin(fPhiTwist/2.) ; z = fDz ; + // G4cout << "SetCorners: " << x << ", " << y << ", " << z << G4endl ; + SetCorner(sC0Min1Max, x, y, z); } else { - G4Exception("G4TwistedTrapBoxSide::SetCorners()", + G4Exception("G4TwistTrapAlphaSide::SetCorners()", "NotImplemented", FatalException, "Method NOT implemented !"); } @@ -882,7 +945,7 @@ void G4TwistedTrapBoxSide::SetCorners() //===================================================================== //* SetBoundaries() --------------------------------------------------- -void G4TwistedTrapBoxSide::SetBoundaries() +void G4TwistTrapAlphaSide::SetBoundaries() { // Set direction-unit vector of boundary-lines in local coodinate. // @@ -917,33 +980,33 @@ void G4TwistedTrapBoxSide::SetBoundaries() } else { - G4Exception("G4TwistedTrapBoxSide::SetCorners()", + G4Exception("G4TwistTrapAlphaSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } } +//===================================================================== +//* GetPhiUAtX -------------------------------------------------------- - -void G4TwistedTrapBoxSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) +void G4TwistTrapAlphaSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) { // find closest point XX on surface for a given point p // X0 is a point on the surface, d is the direction ( both for a fixed z = pz) // phi is given by the z coordinate of p - phi = p.z()/(2*fDz)*fPhiTwist ; - - u = (-4*fdeltaY*phi + fTAlph*(2*(fDx1 + fDx2)*fPhiTwist + 4*(-fDx1 + fDx2 + fdeltaX)*phi) + - 4*fPhiTwist*(-(fTAlph*p.x()) + p.y())*std::cos(phi) - 4*fPhiTwist*(p.x() + fTAlph*p.y())*std::sin(phi))/ - (4.*fPhiTwist*(1 + fTAlph*fTAlph )) ; + phi = p.z()/(2*fDz)*fPhiTwist ; + u = (fPhiTwist*(2*fDx1*fDx1 - 2*fDx2*fDx2 - fa1md1*(fDx3 + fDx4) - 4*(fDx3plus1 + fDx4plus2)*fDy1*fTAlph) - 2*(2*fDx1*fDx1 - 2*fDx2*fDx2 + fa1md1*(fDx3 + fDx4) + 4*(fDx3minus1 + fDx4minus2)*fDy1*fTAlph)*phi - 4*(fa1md1*(fdeltaX*phi - fPhiTwist*p.x()) + 4*fDy1*(fdeltaY*phi + fdeltaX*fTAlph*phi - fPhiTwist*(fTAlph*p.x() + p.y())))*std::cos(phi) - 4*(fa1md1*fdeltaY*phi - 4*fdeltaX*fDy1*phi + 4*fdeltaY*fDy1*fTAlph*phi + 4*fDy1*fPhiTwist*p.x() - fPhiTwist*(fa1md1 + 4*fDy1*fTAlph)*p.y())*std::sin(phi))/(fDy1* fPhiTwist*((std::fabs(((fa1md1 + 4*fDy1*fTAlph)*std::cos(phi))/fDy1 - 4*std::sin(phi)))*(std::fabs(((fa1md1 + 4*fDy1*fTAlph)*std::cos(phi))/fDy1 - 4*std::sin(phi))) + (std::fabs(4*std::cos(phi) + ((fa1md1 + 4*fDy1*fTAlph)*std::sin(phi))/fDy1))*(std::fabs(4*std::cos(phi) + ((fa1md1 + 4*fDy1*fTAlph)*std::sin(phi))/fDy1)))) ; } +//===================================================================== +//* ProjectPoint ------------------------------------------------------ -G4ThreeVector G4TwistedTrapBoxSide::ProjectPoint(const G4ThreeVector &p, +G4ThreeVector G4TwistTrapAlphaSide::ProjectPoint(const G4ThreeVector &p, G4bool isglobal) { // Get Rho at p.z() on Hyperbolic Surface. @@ -968,4 +1031,49 @@ G4ThreeVector G4TwistedTrapBoxSide::ProjectPoint(const G4ThreeVector &p, } } +//===================================================================== +//* GetFacets --------------------------------------------------------- +void G4TwistTrapAlphaSide::GetFacets( G4int m, G4int n, G4double xyz[][3], G4int faces[][4], G4int iside ) +{ + + G4double phi ; + G4double b ; + + G4double z, u ; // the two parameters for the surface equation + G4ThreeVector p ; // a point on the surface, given by (z,u) + + G4int nnode ; + G4int nface ; + + // calculate the (n-1)*(m-1) vertices + + G4int i,j ; + + for ( i = 0 ; i 0 ? 0.5*fdeltaX : -0.5*fdeltaX , - fHandedness > 0 ? 0.5*fdeltaY : -0.5*fdeltaY , - fHandedness > 0 ? fDz : -fDz ) ; + fHandedness > 0 ? 0.5*fdeltaX : -0.5*fdeltaX , + fHandedness > 0 ? 0.5*fdeltaY : -0.5*fdeltaY , + fHandedness > 0 ? fDz : -fDz ) ; fIsValidNorm = true; + fAxis[0] = kXAxis ; fAxis[1] = kYAxis ; fAxisMin[0] = kInfinity ; // x-Axis cannot be fixed, because it @@ -95,18 +98,26 @@ G4FlatTrapSide::G4FlatTrapSide( const G4String &name, } +//===================================================================== +//* Fake default constructor ------------------------------------------ + +G4TwistTrapFlatSide::G4TwistTrapFlatSide( __void__& a ) + : G4VTwistSurface(a) +{ +} + //===================================================================== //* destructor -------------------------------------------------------- -G4FlatTrapSide::~G4FlatTrapSide() +G4TwistTrapFlatSide::~G4TwistTrapFlatSide() { } //===================================================================== //* GetNormal --------------------------------------------------------- -G4ThreeVector G4FlatTrapSide::GetNormal(const G4ThreeVector & /* xx */ , +G4ThreeVector G4TwistTrapFlatSide::GetNormal(const G4ThreeVector & /* xx */ , G4bool isGlobal) { if (isGlobal) { @@ -119,7 +130,7 @@ G4ThreeVector G4FlatTrapSide::GetNormal(const G4ThreeVector & /* xx */ , //===================================================================== //* DistanceToSurface(p, v) ------------------------------------------- -G4int G4FlatTrapSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistTrapFlatSide::DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], @@ -215,7 +226,7 @@ G4int G4FlatTrapSide::DistanceToSurface(const G4ThreeVector &gp, isvalid[0], 1, validate, &gp, &gv); #ifdef G4SPECSDEBUG - G4cerr << "ERROR - G4FlatTrapSide::DistanceToSurface(p,v)" << G4endl; + G4cerr << "ERROR - G4TwistTrapFlatSide::DistanceToSurface(p,v)" << G4endl; G4cerr << " Name : " << GetName() << G4endl; G4cerr << " xx : " << xx << G4endl; G4cerr << " gxx[0] : " << gxx[0] << G4endl; @@ -229,7 +240,7 @@ G4int G4FlatTrapSide::DistanceToSurface(const G4ThreeVector &gp, //===================================================================== //* DistanceToSurface(p) ---------------------------------------------- -G4int G4FlatTrapSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistTrapFlatSide::DistanceToSurface(const G4ThreeVector &gp, G4ThreeVector gxx[], G4double distance[], G4int areacode[]) @@ -263,7 +274,8 @@ G4int G4FlatTrapSide::DistanceToSurface(const G4ThreeVector &gp, // The plane is placed on origin with making its normal // parallel to z-axis. - if (std::fabs(p.z()) <= 0.5 * kCarTolerance) { // if p is on the plane, return 1 + if (std::fabs(p.z()) <= 0.5 * kCarTolerance) + { // if p is on the plane, return 1 distance[0] = 0; xx = p; } else { @@ -280,7 +292,7 @@ G4int G4FlatTrapSide::DistanceToSurface(const G4ThreeVector &gp, } -G4int G4FlatTrapSide::GetAreaCode(const G4ThreeVector &xx, +G4int G4TwistTrapFlatSide::GetAreaCode(const G4ThreeVector &xx, G4bool withTol) { @@ -365,7 +377,7 @@ G4int G4FlatTrapSide::GetAreaCode(const G4ThreeVector &xx, } return areacode; } else { - G4Exception("G4FlatTrapSide::GetAreaCode()", + G4Exception("G4TwistTrapFlatSide::GetAreaCode()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -377,7 +389,7 @@ G4int G4FlatTrapSide::GetAreaCode(const G4ThreeVector &xx, //===================================================================== //* SetCorners -------------------------------------------------------- -void G4FlatTrapSide::SetCorners() +void G4TwistTrapFlatSide::SetCorners() { // Set Corner points in local coodinate. @@ -410,10 +422,10 @@ void G4FlatTrapSide::SetCorners() SetCorner(sC0Min1Max, x, y, z); } else { - G4cerr << "ERROR - G4FlatTrapSide::SetCorners()" << G4endl + G4cerr << "ERROR - G4TwistTrapFlatSide::SetCorners()" << G4endl << " fAxis[0] = " << fAxis[0] << G4endl << " fAxis[1] = " << fAxis[1] << G4endl; - G4Exception("G4FlatTrapSide::SetCorners()", + G4Exception("G4TwistTrapFlatSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -422,7 +434,7 @@ void G4FlatTrapSide::SetCorners() //===================================================================== //* SetBoundaries() --------------------------------------------------- -void G4FlatTrapSide::SetBoundaries() +void G4TwistTrapFlatSide::SetBoundaries() { // Set direction-unit vector of phi-boundary-lines in local coodinate. // Don't call the function twice. @@ -456,11 +468,67 @@ void G4FlatTrapSide::SetBoundaries() GetCorner(sC0Max1Max), sAxisX); } else { - G4cerr << "ERROR - G4FlatTrapSide::SetBoundaries()" << G4endl + G4cerr << "ERROR - G4TwistTrapFlatSide::SetBoundaries()" << G4endl << " fAxis[0] = " << fAxis[0] << G4endl << " fAxis[1] = " << fAxis[1] << G4endl; - G4Exception("G4FlatTrapSide::SetCorners()", + G4Exception("G4TwistTrapFlatSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } } + +//===================================================================== +//* GetFacets() ------------------------------------------------------- + +void G4TwistTrapFlatSide::GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ) +{ + + G4double x,y ; // the two parameters for the surface equation + G4ThreeVector p ; // a point on the surface, given by (z,u) + + G4int nnode ; + G4int nface ; + + G4double xmin,xmax ; + + // calculate the (n-1)*(m-1) vertices + + G4int i,j ; + + for ( i = 0 ; i -#include "G4TwistedTrapParallelSide.hh" +#include "G4TwistTrapParallelSide.hh" #include "G4JTPolynomialSolver.hh" //===================================================================== //* constructors ------------------------------------------------------ -G4TwistedTrapParallelSide::G4TwistedTrapParallelSide(const G4String &name, - G4double PhiTwist, // twist angle - G4double pDz, // half z lenght - G4double pTheta, // direction between end planes - G4double pPhi, // defined by polar and azimutal angles. - G4double pDy1, // half y length at -pDz - G4double pDx1, // half x length at -pDz,-pDy - G4double pDx2, // half x length at -pDz,+pDy - G4double pDy2, // half y length at +pDz - G4double pDx3, // half x length at +pDz,-pDy - G4double pDx4, // half x length at +pDz,+pDy - G4double pAlph, // tilt angle at +pDz +G4TwistTrapParallelSide::G4TwistTrapParallelSide(const G4String &name, + G4double PhiTwist, // twist angle + G4double pDz, // half z lenght + G4double pTheta, // direction between end planes + G4double pPhi, // defined by polar and azimutal angles. + G4double pDy1, // half y length at -pDz + G4double pDx1, // half x length at -pDz,-pDy + G4double pDx2, // half x length at -pDz,+pDy + G4double pDy2, // half y length at +pDz + G4double pDx3, // half x length at +pDz,-pDy + G4double pDx4, // half x length at +pDz,+pDy + G4double pAlph, // tilt angle at +pDz G4double AngleSide // parity - ) : G4VSurface(name) + ) : G4VTwistSurface(name) { fAxis[0] = kXAxis; // in local coordinate system @@ -84,8 +84,11 @@ G4TwistedTrapParallelSide::G4TwistedTrapParallelSide(const G4String &name, fTheta = pTheta ; fPhi = pPhi ; - // precalculate frequently used parameters - + // precalculate frequently used parameters + fDx4plus2 = fDx4 + fDx2 ; + fDx4minus2 = fDx4 - fDx2 ; + fDx3plus1 = fDx3 + fDx1 ; + fDx3minus1 = fDx3 - fDx1 ; fDy2plus1 = fDy2 + fDy1 ; fDy2minus1 = fDy2 - fDy1 ; @@ -109,17 +112,26 @@ G4TwistedTrapParallelSide::G4TwistedTrapParallelSide(const G4String &name, } +//===================================================================== +//* Fake default constructor ------------------------------------------ + +G4TwistTrapParallelSide::G4TwistTrapParallelSide( __void__& a ) + : G4VTwistSurface(a) +{ +} + + //===================================================================== //* destructor -------------------------------------------------------- -G4TwistedTrapParallelSide::~G4TwistedTrapParallelSide() +G4TwistTrapParallelSide::~G4TwistTrapParallelSide() { } //===================================================================== //* GetNormal --------------------------------------------------------- -G4ThreeVector G4TwistedTrapParallelSide::GetNormal(const G4ThreeVector &tmpxx, +G4ThreeVector G4TwistTrapParallelSide::GetNormal(const G4ThreeVector &tmpxx, G4bool isGlobal) { // GetNormal returns a normal vector at a surface (or very close @@ -165,7 +177,7 @@ G4ThreeVector G4TwistedTrapParallelSide::GetNormal(const G4ThreeVector &tmpxx, //===================================================================== //* DistanceToSurface ------------------------------------------------- -G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector gxx[], G4double distance[], @@ -228,8 +240,9 @@ G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, // prepare some variables for the intersection finder G4double L = 2*fDz ; - G4double phix = fPhiTwist * ( v.x()*p.z() - v.z()*p.x() ) ; - G4double phiy = fPhiTwist * ( v.y()*p.z() - v.z()*p.y() ) ; + + G4double phixz = fPhiTwist * ( p.x() * v.z() - p.z() * v.x() ) ; + G4double phiyz = fPhiTwist * ( p.y() * v.z() - p.z() * v.y() ) ; // special case vz = 0 @@ -238,10 +251,8 @@ G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, if ( std::fabs(p.z()) <= L ) { // intersection possible in z phi = p.z() * fPhiTwist / L ; // phi is determined by the z-position - u = (-4*fPhiTwist*p.y()*v.x() + 4*fPhiTwist*p.x()*v.y() + - (2*(fDy1+fDy2)*fPhiTwist*v.x() - 2*(2*fDy1*v.x() - (2*fDy2 + 2*fdeltaY)*v.x()+ 2*fdeltaX*v.y())*phi)*std::cos(phi) + - (2*(fDy1+fDy2)*fPhiTwist*v.y() + 2*(2*fdeltaX*v.x() + (-2*fDy1 + 2*fDy2 + 2*fdeltaY)*v.y())*phi)*std::sin(phi))/ - (4.*fPhiTwist*(v.y()*std::cos(phi) - v.x()*std::sin(phi))) ; + + u = (2*(fdeltaY*phi*v.x() - fPhiTwist*p.y()*v.x() - fdeltaX*phi*v.y() + fPhiTwist*p.x()*v.y()) + (fDy2plus1*fPhiTwist + 2*fDy2minus1*phi)*(v.x()*std::cos(phi) + v.y()*std::sin(phi)))/(2.* fPhiTwist*(v.y()*std::cos(phi) - v.x()*std::sin(phi))) ; xbuftmp.phi = phi ; xbuftmp.u = u ; @@ -275,54 +286,54 @@ G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, else { - G4double c[8],sr[7],si[7] ; + G4double c[9],sr[8],si[8] ; + + c[8] = -3600*(-2*phiyz + fDy2plus1*fPhiTwist*v.z()) ; + c[7] = -7200*(phixz - 2*fDz*v.y() + (fdeltaY + fDy2minus1)*v.z()) ; + c[6] = 120*(-52*phiyz - 120*fDz*v.x() + 60*fdeltaX*v.z() + 11*fDy2plus1*fPhiTwist*v.z()) ; + c[5] = 240*(16*phixz - 52*fDz*v.y() + 26*fdeltaY*v.z() + 11*fDy2minus1*v.z()) ; + c[4] = 12*(127*phiyz + 640*fDz*v.x() - 320*fdeltaX*v.z() + 4*fDy2plus1*fPhiTwist*v.z()) ; + c[3] = -404*phixz + 3048*fDz*v.y() - 1524*fdeltaY*v.z() + 96*fDy2minus1*v.z() ; + c[2] = -72*phiyz + 404*(-2*fDz*v.x() + fdeltaX*v.z()) ; + c[1] = 12*(phixz - 12*fDz*v.y() + 6*fdeltaY*v.z()) ; + c[0] = 24*fDz*v.x() - 12*fdeltaX*v.z() ; - c[7] = 1800*(4*phiy + 2*(fDy1 + fDy2)*fPhiTwist*v.z()); - c[6] = -3600*(2*phix - 2*fdeltaY*v.z() + 2*L*v.y() + 2*(fDy1 - fDy2)*v.z()); - c[5] = 150*(-20*phiy + 48*L*v.x() + 2*(fDy1 + fDy2)*fPhiTwist*v.z()); - c[4] = 300*( 2*phix + 2*fdeltaY*v.z() + 10*L*v.y() - 2*(fDy1 - fDy2)*v.z()) ; - c[3] = 3*( 4*phiy - 200*L*v.x() + 2*(fDy1 + fDy2)*fPhiTwist*v.z()); - c[2] = 28*phix + 12*fdeltaY*v.z() - 12*L*v.y() - 12*(fDy1 - fDy2)*v.z() ; - c[1] = 9*phiy - 28*L*v.x() ; - c[0] = - 9*L*v.y() ; #ifdef G4SPECSDEBUG G4cout << "coef = " << c[0] << " " - << c[1] << " " - << c[2] << " " - << c[3] << " " - << c[4] << " " - << c[5] << " " - << c[6] << " " - << c[7] << G4endl ; + << c[1] << " " + << c[2] << " " + << c[3] << " " + << c[4] << " " + << c[5] << " " + << c[6] << " " + << c[7] << " " + << c[8] << G4endl ; #endif G4JTPolynomialSolver trapEq ; - G4int num = trapEq.FindRoots(c,7,sr,si); + G4int num = trapEq.FindRoots(c,8,sr,si); for (G4int i = 0 ; i= 0) tmpisvalid = true; + } + } else if (validate == kValidateWithoutTol) { + tmpareacode = GetAreaCode(tmpxx, false); + if (IsInside(tmpareacode)) { + if (tmpdist >= 0) tmpisvalid = true; + } + } else { // kDontValidate + G4Exception("G4TwistedBoxSide::DistanceToSurface()", + "NotImplemented kDontValidate", FatalException, + "Feature NOT implemented !"); + } + } else { - tmpdist = kInfinity; // no convergence after 10 steps - tmpisvalid = false ; // solution is not vaild + tmpdist = kInfinity; // no convergence after 10 steps + tmpisvalid = false ; // solution is not vaild } - - + + // store the found values xbuf[k].xx = tmpxx ; xbuf[k].distance = tmpdist ; @@ -595,23 +607,23 @@ G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, isvalid[i] = xbuf[i].isvalid ; fCurStatWithV.SetCurrentStatus(i, gxx[i], distance[i], areacode[i], - isvalid[i], nxx, validate, &gp, &gv); + isvalid[i], nxx, validate, &gp, &gv); #ifdef G4SPECSDEBUG G4cout << "element Nr. " << i - << ", local Intersection = " << xbuf[i].xx - << ", distance = " << xbuf[i].distance - << ", u = " << xbuf[i].u - << ", phi = " << xbuf[i].phi - << ", isvalid = " << xbuf[i].isvalid - << G4endl ; + << ", local Intersection = " << xbuf[i].xx + << ", distance = " << xbuf[i].distance + << ", u = " << xbuf[i].u + << ", phi = " << xbuf[i].phi + << ", isvalid = " << xbuf[i].isvalid + << G4endl ; #endif } // end for( i ) loop #ifdef G4SPECSDEBUG - G4cout << "G4TwistedTrapParallelSide finished " << G4endl ; + G4cout << "G4TwistTrapParallelSide finished " << G4endl ; G4cout << nxx << " possible physical solutions found" << G4endl ; for ( G4int k= 0 ; k< nxx ; k++ ) { G4cout << "global intersection Point found: " << gxx[k] << G4endl ; @@ -629,7 +641,7 @@ G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, //===================================================================== //* DistanceToSurface ------------------------------------------------- -G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, +G4int G4TwistTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, G4ThreeVector gxx[], G4double distance[], G4int areacode[]) @@ -693,12 +705,13 @@ G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, // check validity of solution ( valid phi,psi ) G4double halfphi = 0.5*fPhiTwist ; - G4double uMax = fDy ; + G4double uMax = GetBoundaryMax(phiR) ; + G4double uMin = GetBoundaryMin(phiR) ; if ( phiR > halfphi ) phiR = halfphi ; if ( phiR < -halfphi ) phiR = -halfphi ; if ( uR > uMax ) uR = uMax ; - if ( uR < -uMax ) uR = -uMax ; + if ( uR < uMin ) uR = uMin ; xxonsurface = SurfacePoint(phiR,uR) ; distance[0] = ( p - xx ).mag() ; @@ -723,15 +736,13 @@ G4int G4TwistedTrapParallelSide::DistanceToSurface(const G4ThreeVector &gp, fCurStat.SetCurrentStatus(0, gxx[0], distance[0], areacode[0], isvalid, 1, kDontValidate, &gp); return 1; - - } //===================================================================== //* GetAreaCode ------------------------------------------------------- -G4int G4TwistedTrapParallelSide::GetAreaCode(const G4ThreeVector &xx, +G4int G4TwistTrapParallelSide::GetAreaCode(const G4ThreeVector &xx, G4bool withTol) { // We must use the function in local coordinate system. @@ -743,8 +754,8 @@ G4int G4TwistedTrapParallelSide::GetAreaCode(const G4ThreeVector &xx, G4double yprime ; GetPhiUAtX(xx, phi,yprime ) ; - G4double fXAxisMax = GetUmax(phi) ; - G4double fXAxisMin = GetUmin(phi) ; + G4double fXAxisMax = GetBoundaryMax(phi) ; + G4double fXAxisMin = GetBoundaryMin(phi) ; #ifdef G4SPECSDEBUG G4cout << "GetAreaCode: phi = " << phi << G4endl ; @@ -829,7 +840,7 @@ G4int G4TwistedTrapParallelSide::GetAreaCode(const G4ThreeVector &xx, } return areacode; } else { - G4Exception("G4TwistedTrapParallelSide::GetAreaCode()", + G4Exception("G4TwistTrapParallelSide::GetAreaCode()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -839,7 +850,7 @@ G4int G4TwistedTrapParallelSide::GetAreaCode(const G4ThreeVector &xx, //===================================================================== //* SetCorners() ------------------------------------------------------ -void G4TwistedTrapParallelSide::SetCorners() +void G4TwistTrapParallelSide::SetCorners() { // Set Corner points in local coodinate. @@ -847,42 +858,40 @@ void G4TwistedTrapParallelSide::SetCorners() if (fAxis[0] == kXAxis && fAxis[1] == kZAxis) { G4double x, y, z; - G4double CosPhi = std::cos(fPhiTwist/2) ; - G4double SinPhi = std::sin(fPhiTwist/2) ; // corner of Axis0min and Axis1min - x = ((2*fDy1 - fdeltaY)*SinPhi - CosPhi*(2*fDx2 + fdeltaX + 2*fDy1*fTAlph))/2. ; - y = ((2*fDy1 - fdeltaY)*CosPhi + SinPhi*(2*fDx2 + fdeltaX + 2*fDy1*fTAlph))/2. ; + x = -fdeltaX/2. + (-fDx2 + fDy1*fTAlph)*std::cos(fPhiTwist/2.) + fDy1*std::sin(fPhiTwist/2.) ; + y = -fdeltaY/2. + fDy1*std::cos(fPhiTwist/2.) + (fDx2 - fDy1*fTAlph)*std::sin(fPhiTwist/2.) ; z = -fDz ; SetCorner(sC0Min1Min, x, y, z); // corner of Axis0max and Axis1min - x = ((2*fDy1 - fdeltaY)*SinPhi + CosPhi*( 2*fDx2 - fdeltaX - 2*fDy1*fTAlph))/2. ; - y = ((2*fDy1 - fdeltaY)*CosPhi + SinPhi*(-2*fDx2 + fdeltaX + 2*fDy1*fTAlph))/2. ; - z = -fDz ; + x = -fdeltaX/2. + (fDx2 + fDy1*fTAlph)*std::cos(fPhiTwist/2.) + fDy1*std::sin(fPhiTwist/2.) ; + y = -fdeltaY/2. + fDy1*std::cos(fPhiTwist/2.) - (fDx2 + fDy1*fTAlph)*std::sin(fPhiTwist/2.) ; + z = -fDz; SetCorner(sC0Max1Min, x, y, z); // corner of Axis0max and Axis1max - x = (- (2*fDy2 + fdeltaY)*SinPhi + CosPhi*(2*fDx4 + fdeltaX - 2*fDy2*fTAlph))/2. ; - y = ( (2*fDy2 + fdeltaY)*CosPhi + SinPhi*(2*fDx4 + fdeltaX - 2*fDy2*fTAlph))/2. ; + x = fdeltaX/2. + (fDx4 + fDy2*fTAlph)*std::cos(fPhiTwist/2.) - fDy2*std::sin(fPhiTwist/2.) ; + y = fdeltaY/2. + fDy2*std::cos(fPhiTwist/2.) + (fDx4 + fDy2*fTAlph)*std::sin(fPhiTwist/2.) ; z = fDz ; SetCorner(sC0Max1Max, x, y, z); // corner of Axis0min and Axis1max - x = -((2*fDy2 + fdeltaY)*SinPhi + CosPhi*(2*fDx4 - fdeltaX + 2*fDy2*fTAlph))/2. ; - y = ((2*fDy2 + fdeltaY)*CosPhi - SinPhi*(2*fDx4 - fdeltaX + 2*fDy2*fTAlph))/2. ; + x = fdeltaX/2. + (-fDx4 + fDy2*fTAlph)*std::cos(fPhiTwist/2.) - fDy2*std::sin(fPhiTwist/2.) ; + y = fdeltaY/2. + fDy2*std::cos(fPhiTwist/2.) + (-fDx4 + fDy2*fTAlph)*std::sin(fPhiTwist/2.) ; z = fDz ; SetCorner(sC0Min1Max, x, y, z); } else { - G4Exception("G4TwistedTrapParallelSide::SetCorners()", + G4Exception("G4TwistTrapParallelSide::SetCorners()", "NotImplemented", FatalException, "Method NOT implemented !"); } @@ -891,7 +900,7 @@ void G4TwistedTrapParallelSide::SetCorners() //===================================================================== //* SetBoundaries() --------------------------------------------------- -void G4TwistedTrapParallelSide::SetBoundaries() +void G4TwistTrapParallelSide::SetBoundaries() { // Set direction-unit vector of boundary-lines in local coodinate. // @@ -926,16 +935,18 @@ void G4TwistedTrapParallelSide::SetBoundaries() } else { - G4Exception("G4TwistedTrapParallelSide::SetCorners()", + G4Exception("G4TwistTrapParallelSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } } +//===================================================================== +//* GetPhiUAtX() ------------------------------------------------------ - -void G4TwistedTrapParallelSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) +void +G4TwistTrapParallelSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4double &u) { // find closest point XX on surface for a given point p // X0 is a point on the surface, d is the direction ( both for a fixed z = pz) @@ -944,11 +955,14 @@ void G4TwistedTrapParallelSide::GetPhiUAtX( G4ThreeVector p, G4double &phi, G4do phi = p.z()/(2*fDz)*fPhiTwist ; - u = -(fdeltaX*phi)/fPhiTwist + p.x()*std::cos(phi) + p.y()*std::sin(phi) ; + u = ((-(fdeltaX*phi) + fPhiTwist*p.x())* std::cos(phi) + (-(fdeltaY*phi) + fPhiTwist*p.y())*std::sin(phi))/fPhiTwist ; + } +//===================================================================== +//* ProjectPoint() ---------------------------------------------------- -G4ThreeVector G4TwistedTrapParallelSide::ProjectPoint(const G4ThreeVector &p, +G4ThreeVector G4TwistTrapParallelSide::ProjectPoint(const G4ThreeVector &p, G4bool isglobal) { // Get Rho at p.z() on Hyperbolic Surface. @@ -973,4 +987,51 @@ G4ThreeVector G4TwistedTrapParallelSide::ProjectPoint(const G4ThreeVector &p, } } +//===================================================================== +//* GetFacets() ------------------------------------------------------- +void G4TwistTrapParallelSide::GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ) +{ + + G4double phi ; + G4double z, u ; // the two parameters for the surface equation + G4ThreeVector p ; // a point on the surface, given by (z,u) + + G4int nnode ; + G4int nface ; + + G4double umin, umax ; + + // calculate the (n-1)*(m-1) vertices + + G4int i,j ; + + for ( i = 0 ; i 0 && distToanm < 0) { - G4Exception("G4TwistedSurface::DistanceToPlane()", + G4Exception("G4TwistTubsSide::DistanceToPlane()", "InvalidCondition", FatalException, "Point p is behind the surfaces."); } @@ -747,7 +755,7 @@ G4double G4TwistedSurface::DistanceToPlane(const G4ThreeVector &p, //===================================================================== //* GetAreaCode ------------------------------------------------------- -G4int G4TwistedSurface::GetAreaCode(const G4ThreeVector &xx, +G4int G4TwistTubsSide::GetAreaCode(const G4ThreeVector &xx, G4bool withTol) { // We must use the function in local coordinate system. @@ -831,7 +839,7 @@ G4int G4TwistedSurface::GetAreaCode(const G4ThreeVector &xx, } return areacode; } else { - G4Exception("G4TwistedSurface::GetAreaCode()", + G4Exception("G4TwistTubsSide::GetAreaCode()", "NotImplemented", FatalException, "Feature NOT implemented !"); } @@ -841,7 +849,7 @@ G4int G4TwistedSurface::GetAreaCode(const G4ThreeVector &xx, //===================================================================== //* SetCorners( arglist ) ------------------------------------------------- -void G4TwistedSurface::SetCorners( +void G4TwistTubsSide::SetCorners( G4double endInnerRad[2], G4double endOuterRad[2], G4double endPhi[2], @@ -881,24 +889,21 @@ void G4TwistedSurface::SetCorners( SetCorner(sC0Min1Max, x, y, z); } else { - G4cerr << "ERROR - G4FlatSurface::SetCorners()" << G4endl + G4cerr << "ERROR - G4TwistTubsFlatSide::SetCorners()" << G4endl << " fAxis[0] = " << fAxis[0] << G4endl << " fAxis[1] = " << fAxis[1] << G4endl; - G4Exception("G4TwistedSurface::SetCorners()", + G4Exception("G4TwistTubsSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } } - - - //===================================================================== //* SetCorners() ------------------------------------------------------ -void G4TwistedSurface::SetCorners() +void G4TwistTubsSide::SetCorners() { - G4Exception("G4TwistedSurface::SetCorners()", + G4Exception("G4TwistTubsSide::SetCorners()", "NotImplemented", FatalException, "Method NOT implemented !"); } @@ -906,7 +911,7 @@ void G4TwistedSurface::SetCorners() //===================================================================== //* SetBoundaries() --------------------------------------------------- -void G4TwistedSurface::SetBoundaries() +void G4TwistTubsSide::SetBoundaries() { // Set direction-unit vector of boundary-lines in local coodinate. // @@ -939,12 +944,67 @@ void G4TwistedSurface::SetBoundaries() GetCorner(sC0Min1Max), sAxisX); } else { - G4cerr << "ERROR - G4FlatSurface::SetBoundaries()" << G4endl + G4cerr << "ERROR - G4TwistTubsFlatSide::SetBoundaries()" << G4endl << " fAxis[0] = " << fAxis[0] << G4endl << " fAxis[1] = " << fAxis[1] << G4endl; - G4Exception("G4TwistedSurface::SetCorners()", + G4Exception("G4TwistTubsSide::SetCorners()", "NotImplemented", FatalException, "Feature NOT implemented !"); } } +//===================================================================== +//* GetFacets() ------------------------------------------------------- + +void G4TwistTubsSide::GetFacets( G4int m, G4int n, G4double xyz[][3], + G4int faces[][4], G4int iside ) +{ + + G4double z ; // the two parameters for the surface equation + G4double x,xmin,xmax ; + + G4ThreeVector p ; // a point on the surface, given by (z,u) + + G4int nnode ; + G4int nface ; + + // calculate the (n-1)*(m-1) vertices + + G4int i,j ; + + for ( i = 0 ; iInside(p); - G4double innerhyperho = ((G4HyperbolicSurface *)fInnerHype)->GetRhoAtPZ(p); + EInside outerhypearea = ((G4TwistTubsHypeSide *)fOuterHype)->Inside(p); + G4double innerhyperho = ((G4TwistTubsHypeSide *)fInnerHype)->GetRhoAtPZ(p); G4double distanceToOut = p.getRho() - innerhyperho; // +ve: inside if (outerhypearea == kOutside || distanceToOut < -halftol) { @@ -502,12 +514,12 @@ G4ThreeVector G4TwistedTubs::SurfaceNormal(const G4ThreeVector& p) const } G4ThreeVector *tmpp = const_cast(&(fLastNormal.p)); G4ThreeVector *tmpnormal = const_cast(&(fLastNormal.vec)); - G4VSurface **tmpsurface = const_cast(fLastNormal.surface); + G4VTwistSurface **tmpsurface = const_cast(fLastNormal.surface); tmpp->set(p.x(), p.y(), p.z()); G4double distance = kInfinity; - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fLatterTwisted; surfaces[1] = fFormerTwisted; surfaces[2] = fInnerHype; @@ -591,7 +603,7 @@ G4double G4TwistedTubs::DistanceToIn (const G4ThreeVector& p, G4double distance = kInfinity; // find intersections and choose nearest one. - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fLowerEndcap; surfaces[1] = fUpperEndcap; surfaces[2] = fLatterTwisted; @@ -664,7 +676,7 @@ G4double G4TwistedTubs::DistanceToIn (const G4ThreeVector& p) const G4double distance = kInfinity; // find intersections and choose nearest one. - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fLowerEndcap; surfaces[1] = fUpperEndcap; surfaces[2] = fLatterTwisted; @@ -744,7 +756,7 @@ G4double G4TwistedTubs::DistanceToOut( const G4ThreeVector& p, // particle is just on a boundary. // if the particle is exiting from the volume, return 0. G4ThreeVector normal = SurfaceNormal(p); - G4VSurface *blockedsurface = fLastNormal.surface[0]; + G4VTwistSurface *blockedsurface = fLastNormal.surface[0]; if (normal*v > 0) { if (calcNorm) { @@ -762,7 +774,7 @@ G4double G4TwistedTubs::DistanceToOut( const G4ThreeVector& p, G4double distance = kInfinity; // find intersections and choose nearest one. - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fLatterTwisted; surfaces[1] = fFormerTwisted; surfaces[2] = fInnerHype; @@ -841,7 +853,7 @@ G4double G4TwistedTubs::DistanceToOut( const G4ThreeVector& p ) const G4double distance = kInfinity; // find intersections and choose nearest one. - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fLatterTwisted; surfaces[1] = fFormerTwisted; surfaces[2] = fInnerHype; @@ -932,10 +944,36 @@ G4VisExtent G4TwistedTubs::GetExtent() const G4Polyhedron* G4TwistedTubs::CreatePolyhedron () const { + + const G4int m = 8 ; // number of meshes + const G4int n = 20 ; + + const G4int nnodes = 4*(m-1)*(n-2) + 2*m*m ; + const G4int nfaces = 4*(m-1)*(n-1) + 2*(m-1)*(m-1) ; + + G4Polyhedron *ph=new G4Polyhedron; + G4double xyz[nnodes ][3]; // number of nodes + G4int faces[nfaces][4] ; // number of faces + + fLowerEndcap->GetFacets(m,m,xyz,faces,0) ; + fUpperEndcap->GetFacets(m,m,xyz,faces,1) ; + fInnerHype->GetFacets(m,n,xyz,faces,2) ; + fFormerTwisted->GetFacets(m,n,xyz,faces,3) ; + fOuterHype->GetFacets(m,n,xyz,faces,4) ; + fLatterTwisted->GetFacets(m,n,xyz,faces,5) ; + + ph->createPolyhedron(nnodes,nfaces,xyz,faces); + + return ph; + +#if 0 // Tube for now!!! // return new G4PolyhedronTubs (fInnerRadius, fOuterRadius, fZHalfLength, fEndPhi[0], fDPhi); +#endif + + } //===================================================================== @@ -974,34 +1012,34 @@ void G4TwistedTubs::CreateSurfaces() G4ThreeVector x0(0, 0, fEndZ[0]); G4ThreeVector n (0, 0, -1); - fLowerEndcap = new G4FlatSurface("LowerEndcap", + fLowerEndcap = new G4TwistTubsFlatSide("LowerEndcap", fEndInnerRadius, fEndOuterRadius, fDPhi, fEndPhi, fEndZ, -1) ; - fUpperEndcap = new G4FlatSurface("UpperEndcap", + fUpperEndcap = new G4TwistTubsFlatSide("UpperEndcap", fEndInnerRadius, fEndOuterRadius, fDPhi, fEndPhi, fEndZ, 1) ; G4RotationMatrix rotHalfDPhi; rotHalfDPhi.rotateZ(0.5*fDPhi); - fLatterTwisted = new G4TwistedSurface("LatterTwisted", + fLatterTwisted = new G4TwistTubsSide("LatterTwisted", fEndInnerRadius, fEndOuterRadius, fDPhi, fEndPhi, fEndZ, fInnerRadius, fOuterRadius, fKappa, 1 ) ; - fFormerTwisted = new G4TwistedSurface("FormerTwisted", + fFormerTwisted = new G4TwistTubsSide("FormerTwisted", fEndInnerRadius, fEndOuterRadius, fDPhi, fEndPhi, fEndZ, fInnerRadius, fOuterRadius, fKappa, -1 ) ; - fInnerHype = new G4HyperbolicSurface("InnerHype", + fInnerHype = new G4TwistTubsHypeSide("InnerHype", fEndInnerRadius, fEndOuterRadius, fDPhi, fEndPhi, fEndZ, fInnerRadius, fOuterRadius,fKappa, fTanInnerStereo, fTanOuterStereo, -1) ; - fOuterHype = new G4HyperbolicSurface("OuterHype", + fOuterHype = new G4TwistTubsHypeSide("OuterHype", fEndInnerRadius, fEndOuterRadius, fDPhi, fEndPhi, fEndZ, fInnerRadius, fOuterRadius,fKappa, @@ -1041,3 +1079,107 @@ G4double G4TwistedTubs::GetCubicVolume() else fCubicVolume = G4VSolid::GetCubicVolume(); return fCubicVolume; } + +//////////////////////////////////////////////////////////////////////////// +// +// GetPointOnSurface + +G4ThreeVector G4TwistedTubs::GetPointOnSurface() const +{ + + G4double z = CLHEP::RandFlat::shoot(fEndZ[0],fEndZ[1]); + G4double phi , phimin, phimax ; + G4double x , xmin, xmax ; + G4double r , rmin, rmax ; + + G4double a1 = fOuterHype->GetSurfaceArea() ; + G4double a2 = fInnerHype->GetSurfaceArea() ; + G4double a3 = fLatterTwisted->GetSurfaceArea() ; + G4double a4 = fFormerTwisted->GetSurfaceArea() ; + G4double a5 = fLowerEndcap->GetSurfaceArea() ; + G4double a6 = fUpperEndcap->GetSurfaceArea() ; + + // G4cout << "a1 .. a6 = " << a1 << ", " << a2 << ", " << a3 << ", " << a4 << ", " << a5 << ", " << a6 << G4endl ; + G4double chose = CLHEP::RandFlat::shoot(0.,a1 + a2 + a3 + a4 + a5 + a6) ; + + if(chose < a1) + { + + phimin = fOuterHype->GetBoundaryMin(z) ; + phimax = fOuterHype->GetBoundaryMax(z) ; + phi = CLHEP::RandFlat::shoot(phimin,phimax) ; + + // G4cout << "Outer: phi, z = " << phi << ", " << z << G4endl ; + + return fOuterHype->SurfacePoint(phi,z,true) ; + + } + else if ( (chose >= a1) && (chose < a1 + a2 ) ) + { + + phimin = fInnerHype->GetBoundaryMin(z) ; + phimax = fInnerHype->GetBoundaryMax(z) ; + phi = CLHEP::RandFlat::shoot(phimin,phimax) ; + + // G4cout << "Inner: phi, z = " << phi << ", " << z << G4endl ; + + return fInnerHype->SurfacePoint(phi,z,true) ; + + } + else if ( (chose >= a1 + a2 ) && (chose < a1 + a2 + a3 ) ) + { + + xmin = fLatterTwisted->GetBoundaryMin(z) ; + xmax = fLatterTwisted->GetBoundaryMax(z) ; + x = CLHEP::RandFlat::shoot(xmin,xmax) ; + + // G4cout << "latter twisted : " << xmin << " , " << xmax << G4endl ; + + return fLatterTwisted->SurfacePoint(x,z,true) ; + + } + else if ( (chose >= a1 + a2 + a3 ) && (chose < a1 + a2 + a3 + a4 ) ) + { + + xmin = fFormerTwisted->GetBoundaryMin(z) ; + xmax = fFormerTwisted->GetBoundaryMax(z) ; + x = CLHEP::RandFlat::shoot(xmin,xmax) ; + + // G4cout << "former twisted : " << xmin << " , " << xmax << G4endl ; + + return fFormerTwisted->SurfacePoint(x,z,true) ; + + } + else if( (chose >= a1 + a2 + a3 + a4 ) && (chose < a1 + a2 + a3 + a4 + a5 ) ) + { + + rmin = GetEndInnerRadius(0) ; + rmax = GetEndOuterRadius(0) ; + r = CLHEP::RandFlat::shoot(rmin,rmax) ; + + phimin = fLowerEndcap->GetBoundaryMin(r) ; + phimax = fLowerEndcap->GetBoundaryMax(r) ; + phi = CLHEP::RandFlat::shoot(phimin,phimax) ; + + // G4cout << "lower endcap : " << rmin << " , " << rmax << " , " << phimin << " , " << phimax << G4endl ; + return fLowerEndcap->SurfacePoint(phi,r,true) ; + + } + else { + + rmin = GetEndInnerRadius(1) ; + rmax = GetEndOuterRadius(1) ; + r = CLHEP::RandFlat::shoot(rmin,rmax) ; + + phimin = fUpperEndcap->GetBoundaryMin(r) ; + phimax = fUpperEndcap->GetBoundaryMax(r) ; + phi = CLHEP::RandFlat::shoot(phimin,phimax) ; + + // G4cout << "upper endcap : " << rmin << " , " << rmax << " , " << phimin << " , " << phimax << G4endl ; + + return fUpperEndcap->SurfacePoint(phi,r,true) ; + + } + + +} diff --git a/source/geometry/solids/specific/src/G4VCSGfaceted.cc b/source/geometry/solids/specific/src/G4VCSGfaceted.cc index 23a48a5050..1db5fd969f 100644 --- a/source/geometry/solids/specific/src/G4VCSGfaceted.cc +++ b/source/geometry/solids/specific/src/G4VCSGfaceted.cc @@ -26,8 +26,8 @@ // based on the Program) you indicate your acceptance of this statement, // and all its terms. // -// $Id: G4VCSGfaceted.cc,v 1.16 2005/03/23 17:16:31 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VCSGfaceted.cc,v 1.17 2005/11/09 15:04:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- @@ -65,6 +65,17 @@ G4VCSGfaceted::G4VCSGfaceted( G4String name ) } +// +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4VCSGfaceted::G4VCSGfaceted( __void__& a ) + : G4VSolid(a), + numFace(0), faces(0), fCubicVolume(0.), fpPolyhedron(0), + fCubVolStatistics(1000000), fCubVolEpsilon(0.001) +{ +} + // // Destructor // diff --git a/source/geometry/solids/specific/src/G4VSurface.cc b/source/geometry/solids/specific/src/G4VTwistSurface.cc similarity index 76% rename from source/geometry/solids/specific/src/G4VSurface.cc rename to source/geometry/solids/specific/src/G4VTwistSurface.cc index c112abff4d..aa0d0f502c 100644 --- a/source/geometry/solids/specific/src/G4VSurface.cc +++ b/source/geometry/solids/specific/src/G4VTwistSurface.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4VSurface.cc,v 1.14 2005/06/30 06:35:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTwistSurface.cc,v 1.3 2005/12/06 09:22:13 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- // GEANT 4 class source file // // -// G4VSurface.cc +// G4VTwistSurface.cc // // Author: // 01-Aug-2002 - Kotoyo Hoshina (hoshina@hepburn.s.chiba-u.ac.jp) @@ -39,36 +39,36 @@ // from original version in Jupiter-2.5.02 application. // -------------------------------------------------------------------- -#include "G4VSurface.hh" +#include "G4VTwistSurface.hh" #include -const G4int G4VSurface::sOutside = 0x00000000; -const G4int G4VSurface::sInside = 0x10000000; -const G4int G4VSurface::sBoundary = 0x20000000; -const G4int G4VSurface::sCorner = 0x40000000; -const G4int G4VSurface::sC0Min1Min = 0x40000101; -const G4int G4VSurface::sC0Max1Min = 0x40000201; -const G4int G4VSurface::sC0Max1Max = 0x40000202; -const G4int G4VSurface::sC0Min1Max = 0x40000102; -const G4int G4VSurface::sAxisMin = 0x00000101; -const G4int G4VSurface::sAxisMax = 0x00000202; -const G4int G4VSurface::sAxisX = 0x00000404; -const G4int G4VSurface::sAxisY = 0x00000808; -const G4int G4VSurface::sAxisZ = 0x00000C0C; -const G4int G4VSurface::sAxisRho = 0x00001010; -const G4int G4VSurface::sAxisPhi = 0x00001414; +const G4int G4VTwistSurface::sOutside = 0x00000000; +const G4int G4VTwistSurface::sInside = 0x10000000; +const G4int G4VTwistSurface::sBoundary = 0x20000000; +const G4int G4VTwistSurface::sCorner = 0x40000000; +const G4int G4VTwistSurface::sC0Min1Min = 0x40000101; +const G4int G4VTwistSurface::sC0Max1Min = 0x40000201; +const G4int G4VTwistSurface::sC0Max1Max = 0x40000202; +const G4int G4VTwistSurface::sC0Min1Max = 0x40000102; +const G4int G4VTwistSurface::sAxisMin = 0x00000101; +const G4int G4VTwistSurface::sAxisMax = 0x00000202; +const G4int G4VTwistSurface::sAxisX = 0x00000404; +const G4int G4VTwistSurface::sAxisY = 0x00000808; +const G4int G4VTwistSurface::sAxisZ = 0x00000C0C; +const G4int G4VTwistSurface::sAxisRho = 0x00001010; +const G4int G4VTwistSurface::sAxisPhi = 0x00001414; // mask -const G4int G4VSurface::sAxis0 = 0x0000FF00; -const G4int G4VSurface::sAxis1 = 0x000000FF; -const G4int G4VSurface::sSizeMask = 0x00000303; -const G4int G4VSurface::sAxisMask = 0x0000FCFC; -const G4int G4VSurface::sAreaMask = 0XF0000000; +const G4int G4VTwistSurface::sAxis0 = 0x0000FF00; +const G4int G4VTwistSurface::sAxis1 = 0x000000FF; +const G4int G4VTwistSurface::sSizeMask = 0x00000303; +const G4int G4VTwistSurface::sAxisMask = 0x0000FCFC; +const G4int G4VTwistSurface::sAreaMask = 0XF0000000; //===================================================================== //* constructors ------------------------------------------------------ -G4VSurface::G4VSurface(const G4String &name) +G4VTwistSurface::G4VTwistSurface(const G4String &name) : fName(name) { @@ -92,7 +92,7 @@ G4VSurface::G4VSurface(const G4String &name) fAmIOnLeftSide.vec.set(kInfinity, kInfinity, kInfinity); } -G4VSurface::G4VSurface(const G4String &name, +G4VTwistSurface::G4VTwistSurface(const G4String &name, const G4RotationMatrix &rot, const G4ThreeVector &tlate, G4int handedness, @@ -126,17 +126,25 @@ G4VSurface::G4VSurface(const G4String &name, fAmIOnLeftSide.vec.set(kInfinity, kInfinity, kInfinity); } +//===================================================================== +//* Fake default constructor ------------------------------------------ + +G4VTwistSurface::G4VTwistSurface( __void__& ) + : fName("") +{ +} + //===================================================================== //* destructor -------------------------------------------------------- -G4VSurface::~G4VSurface() +G4VTwistSurface::~G4VTwistSurface() { } //===================================================================== //* AmIOnLeftSide ----------------------------------------------------- -G4int G4VSurface::AmIOnLeftSide(const G4ThreeVector &me, +G4int G4VTwistSurface::AmIOnLeftSide(const G4ThreeVector &me, const G4ThreeVector &vec, G4bool withtol) { @@ -192,7 +200,7 @@ G4int G4VSurface::AmIOnLeftSide(const G4ThreeVector &me, } #ifdef G4SPECSDEBUG - G4cout << " === G4VSurface::AmIOnLeftSide() ==============" + G4cout << " === G4VTwistSurface::AmIOnLeftSide() ==============" << G4endl; G4cout << " Name , returncode : " << fName << " " << fAmIOnLeftSide.amIOnLeftSide << G4endl; @@ -213,7 +221,7 @@ G4int G4VSurface::AmIOnLeftSide(const G4ThreeVector &me, //===================================================================== //* DistanceToBoundary ------------------------------------------------ -G4double G4VSurface::DistanceToBoundary(G4int areacode, +G4double G4VTwistSurface::DistanceToBoundary(G4int areacode, G4ThreeVector &xx, const G4ThreeVector &p) { @@ -232,12 +240,12 @@ G4double G4VSurface::DistanceToBoundary(G4int areacode, G4int boundarytype; if (IsAxis0(areacode) && IsAxis1(areacode)) { - G4cerr << "ERROR - G4VSurface::DistanceToBoundary()" << G4endl + G4cerr << "ERROR - G4VTwistSurface::DistanceToBoundary()" << G4endl << " Point is in the corner area. This function returns" << G4endl << " a direction vector of a boundary line." << G4endl << " areacode = " << areacode << G4endl; - G4Exception("G4VSurface::DistanceToBoundary()", "InvalidSetup", + G4Exception("G4VTwistSurface::DistanceToBoundary()", "InvalidSetup", FatalException, "Point is in the corner area."); } else if (IsAxis0(areacode) || IsAxis1(areacode)) { GetBoundaryParameters(areacode, d, x0, boundarytype); @@ -251,9 +259,9 @@ G4double G4VSurface::DistanceToBoundary(G4int areacode, dist = DistanceToLine(p, x0, d, xx); } } else { - G4cerr << "ERROR - G4VSurface::DistanceToBoundary()" << G4endl + G4cerr << "ERROR - G4VTwistSurface::DistanceToBoundary()" << G4endl << " areacode = " << areacode << G4endl; - G4Exception("G4VSurface::DistanceToBoundary()", "InvalidSetup", + G4Exception("G4VTwistSurface::DistanceToBoundary()", "InvalidSetup", FatalException, "Bad areacode of boundary."); } return dist; @@ -262,12 +270,12 @@ G4double G4VSurface::DistanceToBoundary(G4int areacode, //===================================================================== //* DistanceToIn ------------------------------------------------------ -G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, +G4double G4VTwistSurface::DistanceToIn(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector &gxxbest) { #ifdef G4SPECSDEBUG - G4cout << " ~~~~~ G4VSurface::DistanceToIn(p,v) - Start ~~~~~" << G4endl; + G4cout << " ~~~~~ G4VTwistSurface::DistanceToIn(p,v) - Start ~~~~~" << G4endl; G4cout << " Name : " << fName << G4endl; G4cout << " gp : " << gp << G4endl; G4cout << " gv : " << gv << G4endl; @@ -308,7 +316,7 @@ G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, if ((normal * gv) >= 0) { #ifdef G4SPECSDEBUG - G4cout << " G4VSurface::DistanceToIn(p,v): " + G4cout << " G4VTwistSurface::DistanceToIn(p,v): " << "particle goes outword the surface." << G4endl; #endif continue; @@ -325,7 +333,7 @@ G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, besti = i; #ifdef G4SPECSDEBUG - G4cout << " G4VSurface::DistanceToIn(p,v): " + G4cout << " G4VTwistSurface::DistanceToIn(p,v): " << " areacode sInside name, distance = " << fName << " "<< bestdistance << G4endl; #endif @@ -337,7 +345,7 @@ G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, } else { - G4VSurface *neighbours[2]; + G4VTwistSurface *neighbours[2]; G4bool isaccepted[2] = {false, false}; G4int nneighbours = GetNeighbours(areacode[i], neighbours); @@ -373,11 +381,11 @@ G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, if (IsInside(tmpareacode[k])) { #ifdef G4SPECSDEBUG - G4cout << " G4VSurface:DistanceToIn(p,v): " + G4cout << " G4VTwistSurface:DistanceToIn(p,v): " << " intersection "<< tmpgxx[k] << G4endl << " is inside of neighbour surface of " << fName << " . returning kInfinity." << G4endl; - G4cout << "~~~~~ G4VSurface::DistanceToIn(p,v) - return ~~~~" + G4cout << "~~~~~ G4VTwistSurface::DistanceToIn(p,v) - return ~~~~" << G4endl; G4cout << " No intersections " << G4endl; G4cout << " Name : " << fName << G4endl; @@ -416,7 +424,7 @@ G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, gxxbest = gxx[i]; besti = i; #ifdef G4SPECSDEBUG - G4cout << " G4VSurface::DistanceToIn(p,v): " + G4cout << " G4VTwistSurface::DistanceToIn(p,v): " << " areacode sBoundary & sBoundary distance = " << fName << " " << distance[i] << G4endl; #endif @@ -430,12 +438,12 @@ G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, #ifdef G4SPECSDEBUG if (besti < 0) { - G4cout << "~~~~~ G4VSurface::DistanceToIn(p,v) - return ~~~~" << G4endl; + G4cout << "~~~~~ G4VTwistSurface::DistanceToIn(p,v) - return ~~~~" << G4endl; G4cout << " No intersections " << G4endl; G4cout << " Name : " << fName << G4endl; G4cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << G4endl; } else { - G4cout << "~~~~~ G4VSurface::DistanceToIn(p,v) : return ~~~~" << G4endl; + G4cout << "~~~~~ G4VTwistSurface::DistanceToIn(p,v) : return ~~~~" << G4endl; G4cout << " Name, i : " << fName << " , " << besti << G4endl; G4cout << " gxx[i] : " << gxxbest << G4endl; G4cout << " bestdist : " << bestdistance << G4endl; @@ -450,12 +458,12 @@ G4double G4VSurface::DistanceToIn(const G4ThreeVector &gp, //===================================================================== //* DistanceToOut(p, v) ----------------------------------------------- -G4double G4VSurface::DistanceToOut(const G4ThreeVector &gp, +G4double G4VTwistSurface::DistanceToOut(const G4ThreeVector &gp, const G4ThreeVector &gv, G4ThreeVector &gxxbest) { #ifdef G4SPECSDEBUG - G4cout << "~~~~~ G4VSurface::DistanceToOut(p,v) - Start ~~~~" << G4endl; + G4cout << "~~~~~ G4VTwistSurface::DistanceToOut(p,v) - Start ~~~~" << G4endl; G4cout << " Name : " << fName << G4endl; G4cout << " gp : " << gp << G4endl; G4cout << " gv : " << gv << G4endl; @@ -466,14 +474,16 @@ G4double G4VSurface::DistanceToOut(const G4ThreeVector &gp, G4double distance[G4VSURFACENXX] ; G4int areacode[G4VSURFACENXX] ; G4bool isvalid[G4VSURFACENXX] ; + G4int i; - for (G4int i = 0 ; i face number + + if ( iside == 0 ) { + return i * ( m - 1 ) + j ; + } + + else if ( iside == 1 ) { + return (m-1)*(m-1) + i*(m-1) + j ; + } + + else if ( iside == 2 ) { + return 2*(m-1)*(m-1) + i*(m-1) + j ; + } + + else if ( iside == 3 ) { + return 2*(m-1)*(m-1) + (n-1)*(m-1) + i*(m-1) + j ; + } + + else if ( iside == 4 ) { + return 2*(m-1)*(m-1) + 2*(n-1)*(m-1) + i*(m-1) + j ; + } + + else if ( iside == 5 ) { + return 2*(m-1)*(m-1) + 3*(n-1)*(m-1) + i*(m-1) + j ; + } + + else { + + G4cerr << "ERROR - G4VTwistSurface::GetFace(): " + << GetName() << G4endl + << " Not correct side number! - " << G4endl + << "iside is " << iside << " but should be " + << "0,1,2,3,4 or 5" << "." << G4endl ; + G4Exception("G4TwistSurface::G4GetFace()", "InvalidSetup", + FatalException, "Not correct side number."); + + + } + + return -1 ; // wrong face +} + +//===================================================================== +//* GetNode ----------------------------------------------------------- + +G4int G4VTwistSurface::GetNode( G4int i, G4int j, G4int m, + G4int n, G4int iside ) +{ + // this is the node mapping function + // (i,j) -> node number + // Depends on the side iside and the used meshing of the surface + + if ( iside == 0 ) { + // lower endcap is mxm squared. + // n = m + return i * m + j ; + } + + if ( iside == 1 ) { + // upper endcap is mxm squared. Shift by m*m + // n = m + return m*m + i*m + j ; + } + + else if ( iside == 2 ) { + // front side. + if ( i == 0 ) { return j ; } + else if ( i == n-1 ) { return m*m + j ; } + else { return 2*m*m + 4*(i-1)*(m-1) + j ; } + } + + else if ( iside == 3 ) { + // right side + if ( i == 0 ) { return (j+1)*m - 1 ; } + else if ( i == n-1 ) { return m*m + (j+1)*m - 1 ; } + else { return 2*m*m + 4*(i-1)*(m-1) + (m-1) + j ; } + } + else if ( iside == 4 ) { + // back side. + if ( i == 0 ) { return m*m - 1 - j ; } // reversed order + else if ( i == n-1 ) { return 2*m*m - 1 - j ; } // reversed order + else { return 2*m*m + 4*(i-1)*(m-1) + 2*(m-1) + j ; // normal order + } + } + else if ( iside == 5 ) { + // left side + if ( i == 0 ) { return m*m - (j+1)*m ; } // reversed order + else if ( i == n-1) { return 2*m*m - (j+1)*m ; } // reverded order + else { + if ( j == m-1 ) { return 2*m*m + 4*(i-1)*(m-1) ; } // special case + else { return 2*m*m + 4*(i-1)*(m-1) + 3*(m-1) + j ; } // normal order + } + } + + else { + + G4cerr << "ERROR - G4VTwistSurface::GetNode(): " + << GetName() << G4endl + << " Not correct side number! - " << G4endl + << "iside is " << iside << " but should be " + << "0,1,2,3,4 or 5" << "." << G4endl ; + G4Exception("G4TwistSurface::G4GetNode()", "InvalidSetup", + FatalException, "Not correct side number."); + } + return -1 ; // wrong node +} + //===================================================================== //* DebugPrint -------------------------------------------------------- -void G4VSurface::DebugPrint() const +void G4VTwistSurface::DebugPrint() const { G4ThreeVector A = fRot * GetCorner(sC0Min1Min) + fTrans; G4ThreeVector B = fRot * GetCorner(sC0Max1Min) + fTrans; G4ThreeVector C = fRot * GetCorner(sC0Max1Max) + fTrans; G4ThreeVector D = fRot * GetCorner(sC0Min1Max) + fTrans; - G4cout << "/* G4VSurface::DebugPrint():-------------------------------" + G4cout << "/* G4VTwistSurface::DebugPrint():-------------------------------" << G4endl; G4cout << "/* Name = " << fName << G4endl; G4cout << "/* Axis = " << std::hex << fAxis[0] << " " @@ -866,13 +990,13 @@ void G4VSurface::DebugPrint() const } //===================================================================== -// G4VSurface::CurrentStatus class +// G4VTwistSurface::CurrentStatus class //===================================================================== //===================================================================== //* CurrentStatus::CurrentStatus -------------------------------------- -G4VSurface::CurrentStatus::CurrentStatus() +G4VTwistSurface::CurrentStatus::CurrentStatus() { for (size_t i=0; i(&(fLastInside.p)); - tmpin = const_cast(&(fLastInside.inside)); + tmpin = const_cast(&(fLastInside.inside)); tmpp->set(p.x(), p.y(), p.z()); } @@ -464,12 +476,14 @@ EInside G4VTwistedFaceted::Inside(const G4ThreeVector& p) const G4double phi = p.z()/(2*fDz) * fPhiTwist ; // rotate the point to z=0 G4double cphi = std::cos(-phi) ; G4double sphi = std::sin(-phi) ; - G4double posx = p.x() * cphi - p.y() * sphi ; - G4double posy = p.x() * sphi + p.y() * cphi ; - G4double posz = p.z() ; - posx += fdeltaX * ( -phi/fPhiTwist) ; // shift - posy += fdeltaY * ( -phi/fPhiTwist) ; + G4double px = p.x() + fdeltaX * ( -phi/fPhiTwist) ; // shift + G4double py = p.y() + fdeltaY * ( -phi/fPhiTwist) ; + G4double pz = p.z() ; + + G4double posx = px * cphi - py * sphi ; // rotation + G4double posy = px * sphi + py * cphi ; + G4double posz = pz ; G4double xMin = Xcoef(posy,phi,fTAlph) - 2*Xcoef(posy,phi,0.) ; G4double xMax = Xcoef(posy,phi,fTAlph) ; @@ -557,12 +571,12 @@ G4ThreeVector G4VTwistedFaceted::SurfaceNormal(const G4ThreeVector& p) const G4ThreeVector *tmpp = const_cast(&(fLastNormal.p)); G4ThreeVector *tmpnormal = const_cast(&(fLastNormal.vec)); - G4VSurface **tmpsurface = const_cast(fLastNormal.surface); + G4VTwistSurface **tmpsurface = const_cast(fLastNormal.surface); tmpp->set(p.x(), p.y(), p.z()); G4double distance = kInfinity; - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fSide0 ; surfaces[1] = fSide90 ; @@ -655,7 +669,7 @@ G4double G4VTwistedFaceted::DistanceToIn (const G4ThreeVector& p, // Find intersections and choose nearest one // - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fSide0; surfaces[1] = fSide90 ; @@ -669,6 +683,7 @@ G4double G4VTwistedFaceted::DistanceToIn (const G4ThreeVector& p, G4int i; G4int besti = -1; for (i=0; i < 6 ; i++) + //for (i=1; i < 2 ; i++) { #ifdef G4SPECSDEBUG @@ -747,7 +762,7 @@ G4double G4VTwistedFaceted::DistanceToIn (const G4ThreeVector& p) const // Find intersections and choose nearest one // - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fSide0; surfaces[1] = fSide90 ; @@ -836,7 +851,7 @@ G4VTwistedFaceted::DistanceToOut( const G4ThreeVector& p, // if the particle is exiting from the volume, return 0 // G4ThreeVector normal = SurfaceNormal(p); - G4VSurface *blockedsurface = fLastNormal.surface[0]; + G4VTwistSurface *blockedsurface = fLastNormal.surface[0]; if (normal*v > 0) { if (calcNorm) @@ -856,7 +871,7 @@ G4VTwistedFaceted::DistanceToOut( const G4ThreeVector& p, G4double distance = kInfinity; // find intersections and choose nearest one. - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fSide0; surfaces[1] = fSide90 ; @@ -943,7 +958,7 @@ G4double G4VTwistedFaceted::DistanceToOut( const G4ThreeVector& p ) const // find intersections and choose nearest one // - G4VSurface *surfaces[6]; + G4VTwistSurface *surfaces[6]; surfaces[0] = fSide0; surfaces[1] = fSide90 ; @@ -1060,31 +1075,31 @@ void G4VTwistedFaceted::CreateSurfaces() if ( fDx1 == fDx2 && fDx3 == fDx4 ) // special case : Box { - fSide0 = new G4TwistedTrapBoxSide("0deg", fPhiTwist, fDz, fTheta, fPhi, - fDy1, fDx1, fDy2, fDx3, fAlph, 0.*deg); - fSide180 = new G4TwistedTrapBoxSide("180deg", fPhiTwist, fDz, fTheta, - fPhi+pi , fDy1, fDx1, fDy2, fDx3, fAlph, 180.*deg); + fSide0 = new G4TwistBoxSide("0deg", fPhiTwist, fDz, fTheta, fPhi, + fDy1, fDx1, fDx1, fDy2, fDx3, fDx3, fAlph, 0.*deg); + fSide180 = new G4TwistBoxSide("180deg", fPhiTwist, fDz, fTheta, fPhi+pi, + fDy1, fDx1, fDx1, fDy2, fDx3, fDx3, fAlph, 180.*deg); } else // default general case { - fSide0 = new G4TwistedTrapAlphaSide("0deg" ,fPhiTwist, fDz, fTheta, + fSide0 = new G4TwistTrapAlphaSide("0deg" ,fPhiTwist, fDz, fTheta, fPhi, fDy1, fDx1, fDx2, fDy2, fDx3, fDx4, fAlph, 0.*deg); - fSide180 = new G4TwistedTrapAlphaSide("180deg", fPhiTwist, fDz, fTheta, + fSide180 = new G4TwistTrapAlphaSide("180deg", fPhiTwist, fDz, fTheta, fPhi+pi, fDy1, fDx2, fDx1, fDy2, fDx4, fDx3, fAlph, 180.*deg); } // create parallel sides // - fSide90 = new G4TwistedTrapParallelSide("90deg", fPhiTwist, fDz, fTheta, + fSide90 = new G4TwistTrapParallelSide("90deg", fPhiTwist, fDz, fTheta, fPhi, fDy1, fDx1, fDx2, fDy2, fDx3, fDx4, fAlph, 0.*deg); - fSide270 = new G4TwistedTrapParallelSide("270deg", fPhiTwist, fDz, fTheta, + fSide270 = new G4TwistTrapParallelSide("270deg", fPhiTwist, fDz, fTheta, fPhi+pi, fDy1, fDx2, fDx1, fDy2, fDx4, fDx3, fAlph, 180.*deg); // create endcaps // - fUpperEndcap = new G4FlatTrapSide("UpperCap",fPhiTwist, fDx3, fDx4, fDy2, + fUpperEndcap = new G4TwistTrapFlatSide("UpperCap",fPhiTwist, fDx3, fDx4, fDy2, fDz, fAlph, fPhi, fTheta, 1 ); - fLowerEndcap = new G4FlatTrapSide("LowerCap",fPhiTwist, fDx1, fDx2, fDy1, + fLowerEndcap = new G4TwistTrapFlatSide("LowerCap",fPhiTwist, fDx1, fDx2, fDy1, fDz, fAlph, fPhi, fTheta, -1 ); // Set neighbour surfaces @@ -1095,6 +1110,7 @@ void G4VTwistedFaceted::CreateSurfaces() fSide270->SetNeighbours(fSide180 , fLowerEndcap , fSide0 , fUpperEndcap ); fUpperEndcap->SetNeighbours( fSide180, fSide270 , fSide0 , fSide90 ); fLowerEndcap->SetNeighbours( fSide180, fSide270 , fSide0 , fSide90 ); + } @@ -1119,5 +1135,153 @@ G4Polyhedron* G4VTwistedFaceted::GetPolyhedron() const delete fpPolyhedron; fpPolyhedron = CreatePolyhedron(); } + return fpPolyhedron; } + + +//===================================================================== +//* GetPointInSolid --------------------------------------------------- + +G4ThreeVector G4VTwistedFaceted::GetPointInSolid(G4double z) const +{ + + + // this routine is only used for a test + // can be deleted ... + + if ( z == fDz ) z -= 0.1*fDz ; + if ( z == -fDz ) z += 0.1*fDz ; + + G4double phi = z/(2*fDz)*fPhiTwist ; + + return G4ThreeVector(fdeltaX * phi/fPhiTwist, fdeltaY * phi/fPhiTwist, z ) ; +} + + +//===================================================================== +//* GetPointOnSurface ------------------------------------------------- + +G4ThreeVector G4VTwistedFaceted::GetPointOnSurface() const +{ + + G4double phi = CLHEP::RandFlat::shoot(-fPhiTwist/2.,fPhiTwist/2.); + G4double u , umin, umax ; // variable for twisted surfaces + G4double y ; // variable for flat surface (top and bottom) + + // Compute the areas. Attention: Only correct for trapezoids + // where the twisting is done along the z-axis. In the general case + // the computed surface area is more difficult. However this simplification + // does not affect the tracking through the solid. + + G4double a1 = fSide0->GetSurfaceArea(); + G4double a2 = fSide90->GetSurfaceArea(); + G4double a3 = fSide180->GetSurfaceArea() ; + G4double a4 = fSide270->GetSurfaceArea() ; + G4double a5 = fLowerEndcap->GetSurfaceArea() ; + G4double a6 = fUpperEndcap->GetSurfaceArea() ; + +#ifdef G4SPECSDEBUG + G4cout << "Surface 0 deg = " << a1 << G4endl ; + G4cout << "Surface 90 deg = " << a2 << G4endl ; + G4cout << "Surface 180 deg = " << a3 << G4endl ; + G4cout << "Surface 270 deg = " << a4 << G4endl ; + G4cout << "Surface Lower = " << a5 << G4endl ; + G4cout << "Surface Upper = " << a6 << G4endl ; +#endif + + G4double chose = CLHEP::RandFlat::shoot(0.,a1 + a2 + a3 + a4 + a5 + a6) ; + + if(chose < a1) + { + + umin = fSide0->GetBoundaryMin(phi) ; + umax = fSide0->GetBoundaryMax(phi) ; + u = CLHEP::RandFlat::shoot(umin,umax) ; + + return fSide0->SurfacePoint(phi, u, true) ; // point on 0deg surface + } + + else if( (chose >= a1) && (chose < a1 + a2 ) ) + { + + umin = fSide90->GetBoundaryMin(phi) ; + umax = fSide90->GetBoundaryMax(phi) ; + + u = CLHEP::RandFlat::shoot(umin,umax) ; + + return fSide90->SurfacePoint(phi, u, true); // point on 90deg surface + } + + else if( (chose >= a1 + a2 ) && (chose < a1 + a2 + a3 ) ) + { + + umin = fSide180->GetBoundaryMin(phi) ; + umax = fSide180->GetBoundaryMax(phi) ; + u = CLHEP::RandFlat::shoot(umin,umax) ; + + return fSide180->SurfacePoint(phi, u, true); // point on 180 deg surface + } + + else if( (chose >= a1 + a2 + a3 ) && (chose < a1 + a2 + a3 + a4 ) ) + { + + umin = fSide270->GetBoundaryMin(phi) ; + umax = fSide270->GetBoundaryMax(phi) ; + u = CLHEP::RandFlat::shoot(umin,umax) ; + + return fSide270->SurfacePoint(phi, u, true); // point on 270 deg surface + } + + else if( (chose >= a1 + a2 + a3 + a4 ) && (chose < a1 + a2 + a3 + a4 + a5 ) ) + { + + y = CLHEP::RandFlat::shoot(-fDy1,fDy1) ; + umin = fLowerEndcap->GetBoundaryMin(y) ; + umax = fLowerEndcap->GetBoundaryMax(y) ; + u = CLHEP::RandFlat::shoot(umin,umax) ; + + return fLowerEndcap->SurfacePoint(u,y,true); // point on lower endcap + } + else { + + y = CLHEP::RandFlat::shoot(-fDy2,fDy2) ; + umin = fUpperEndcap->GetBoundaryMin(y) ; + umax = fUpperEndcap->GetBoundaryMax(y) ; + u = CLHEP::RandFlat::shoot(umin,umax) ; + + return fUpperEndcap->SurfacePoint(u,y,true) ; // point on upper endcap + + } +} + + +//===================================================================== +//* CreatePolyhedron -------------------------------------------------- + +G4Polyhedron* G4VTwistedFaceted::CreatePolyhedron () const +{ + + const G4int m = 8 ; // number of meshes + const G4int n = 20 ; + + const G4int nnodes = 4*(m-1)*(n-2) + 2*m*m ; + const G4int nfaces = 4*(m-1)*(n-1) + 2*(m-1)*(m-1) ; + + G4Polyhedron *ph=new G4Polyhedron; + G4double xyz[nnodes ][3]; // number of nodes + G4int faces[nfaces][4] ; // number of faces + + fLowerEndcap->GetFacets(m,m,xyz,faces,0) ; + fUpperEndcap->GetFacets(m,m,xyz,faces,1) ; + fSide270->GetFacets(m,n,xyz,faces,2) ; + fSide0->GetFacets(m,n,xyz,faces,3) ; + fSide90->GetFacets(m,n,xyz,faces,4) ; + fSide180->GetFacets(m,n,xyz,faces,5) ; + + ph->createPolyhedron(nnodes,nfaces,xyz,faces); + + return ph; + +} + diff --git a/source/geometry/volumes/History b/source/geometry/volumes/History index ed08d2a11b..9aae636cc2 100644 --- a/source/geometry/volumes/History +++ b/source/geometry/volumes/History @@ -1,4 +1,4 @@ -$Id: History,v 1.125 2005/06/06 13:41:26 gcosmo Exp $ +$Id: History,v 1.134 2005/11/24 18:24:30 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,57 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 24th, 2005 J. Apostolakis - geomvol-V07-01-05 +- Revised implementation of G4VNestedParameterisation, taking out use + of G4PhysicalTouchable. +- Added implementations of virtual methods to identify materials + for nested parameterisations. +- Removed G4PhysicalTouchable helper class. + + +Nov 16th, 2005 J. Apostolakis - geomvol-V07-01-04 +- Corrections to tag below: + * fixing PVPlacement's 'IsRegularStructureMethod' + * adding missing RegularStructure methods for G4PhysicalTouchable + +Nov 11th, 2005 J. Apostolakis - geomvol-V07-01-03 +- Added methods to identify Regular Structures in Physical volume derived + classes (Replica, Parameterised Volume, but also Placement). + New virtual methods implemented: + - IsRegularStructure() from G4VPhysicalVolume, defined in Replica + - GetRegularStructureId() + * Note that Placement always return 'false' and 0 respectively. + New method defined (Replica), and implemented that can be redefined: + - SetRegularStructureId() virtual + +Nov 9th, 2005 G. Cosmo - geomvol-V07-01-02 +- Added fake default constructor for concrete types of volumes (placements, + parameterised and replica), for usage of direct object persistency. +- Implemented migration to for affected classes: G4AssemblyVolume. + +Oct 19th, 2005 G. Cosmo - geomvol-V07-01-01 +- Introduced first implementation for optional check of overlaps at + construction to G4PVPlacement and G4PVParameterised volumes. Default + resolution of 1000 points is defined for the check. + The check is disabled by default. +- Introduced method CheckOverlaps(p) for placements and parameterised + volumes. The resolution for the check can be specified providing the + number of points wished to be generated. +- Updated unit test for G4ReflectedSolid. + +Jul 25th, 2005 G. Cosmo - geomvol-V07-01-00 +- Cleanup and fixes in use of inline methods in G4VNestedParameterisation + and G4PhysicalTouchable. + +Jun 14th, 2005 J. Apostolakis - geomvol-V07-00-01 +- Added G4VNestedParameterisation with ability to use parent information + to compute/change material. +- Added G4PhysicalTouchable class to enable this type of parameterisation. + This class is an implementation class only, and its name especially + and potentially other aspect is/are likely to be changed. + ---> A revision of the interface of G4VPVParamerisation can provide this + capability in future, in a simpler way. + This tag coworks with "geomnav-V07-00-00". Jun 6th, 2005 G. Cosmo - geomvol-V07-00-00 - Moved constructors/destructors and operators for G4NavigationLevelRep diff --git a/source/geometry/volumes/include/G4AssemblyVolume.hh b/source/geometry/volumes/include/G4AssemblyVolume.hh index 25bed5a46a..be23e653df 100644 --- a/source/geometry/volumes/include/G4AssemblyVolume.hh +++ b/source/geometry/volumes/include/G4AssemblyVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyVolume.hh,v 1.2 2003/11/02 16:06:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4AssemblyVolume diff --git a/source/geometry/volumes/include/G4AssemblyVolume.icc b/source/geometry/volumes/include/G4AssemblyVolume.icc index f09d9ee14e..bd351b5e0b 100644 --- a/source/geometry/volumes/include/G4AssemblyVolume.icc +++ b/source/geometry/volumes/include/G4AssemblyVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4AssemblyVolume.icc,v 1.1 2003/10/01 14:55:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4AssemblyVolume - inline implementation diff --git a/source/geometry/volumes/include/G4GRSSolid.hh b/source/geometry/volumes/include/G4GRSSolid.hh index e070d07a82..6f12bfbeb1 100644 --- a/source/geometry/volumes/include/G4GRSSolid.hh +++ b/source/geometry/volumes/include/G4GRSSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.hh,v 1.7 2003/11/02 16:06:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4GRSSolid diff --git a/source/geometry/volumes/include/G4GRSSolid.icc b/source/geometry/volumes/include/G4GRSSolid.icc index ecc41a2b47..9bf4ccec4e 100644 --- a/source/geometry/volumes/include/G4GRSSolid.icc +++ b/source/geometry/volumes/include/G4GRSSolid.icc @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.icc,v 1.8 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4GRSSolid inline implementation diff --git a/source/geometry/volumes/include/G4GRSSolidHandle.hh b/source/geometry/volumes/include/G4GRSSolidHandle.hh index 910156fe91..7b41d971e9 100644 --- a/source/geometry/volumes/include/G4GRSSolidHandle.hh +++ b/source/geometry/volumes/include/G4GRSSolidHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolidHandle.hh,v 1.5 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class G4GRSSolidHandle // diff --git a/source/geometry/volumes/include/G4GRSVolume.hh b/source/geometry/volumes/include/G4GRSVolume.hh index 194a5cbd92..ae90ee1b85 100644 --- a/source/geometry/volumes/include/G4GRSVolume.hh +++ b/source/geometry/volumes/include/G4GRSVolume.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.hh,v 1.7 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4GRSVolume diff --git a/source/geometry/volumes/include/G4GRSVolume.icc b/source/geometry/volumes/include/G4GRSVolume.icc index 0549fa1212..f2d58ad83f 100644 --- a/source/geometry/volumes/include/G4GRSVolume.icc +++ b/source/geometry/volumes/include/G4GRSVolume.icc @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.icc,v 1.9 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4GRSVolume inline implementation diff --git a/source/geometry/volumes/include/G4GRSVolumeHandle.hh b/source/geometry/volumes/include/G4GRSVolumeHandle.hh index 09be77ade2..42e194ddb2 100644 --- a/source/geometry/volumes/include/G4GRSVolumeHandle.hh +++ b/source/geometry/volumes/include/G4GRSVolumeHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolumeHandle.hh,v 1.5 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class G4GRSVolumeHandle // diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.hh b/source/geometry/volumes/include/G4LogicalBorderSurface.hh index 4b07ba49c1..39226a04e5 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.hh +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.hh,v 1.13 2004/05/19 08:14:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4LogicalBorderSurface // diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.icc b/source/geometry/volumes/include/G4LogicalBorderSurface.icc index dc29e2eede..f481d41f1f 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.icc +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.icc,v 1.8 2003/12/01 14:53:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4LogicalBorderSurface inline implementation diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.hh b/source/geometry/volumes/include/G4LogicalSkinSurface.hh index ade377bc41..fd001678a9 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.hh +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.hh,v 1.13 2004/05/19 08:14:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4LogicalSkinSurface // diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.icc b/source/geometry/volumes/include/G4LogicalSkinSurface.icc index 042696dad4..97b6588c82 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.icc +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.icc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.icc,v 1.8 2003/12/01 14:53:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4LogicalSkinSurface inline implementation diff --git a/source/geometry/volumes/include/G4NavigationHistory.hh b/source/geometry/volumes/include/G4NavigationHistory.hh index 44f1ba4c21..df040aecec 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.hh +++ b/source/geometry/volumes/include/G4NavigationHistory.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationHistory.hh,v 1.12 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4NavigationHistory // diff --git a/source/geometry/volumes/include/G4NavigationHistory.icc b/source/geometry/volumes/include/G4NavigationHistory.icc index 2ffffb5b8d..9ab1c5d068 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.icc +++ b/source/geometry/volumes/include/G4NavigationHistory.icc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationHistory.icc,v 1.11 2004/03/04 08:06:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4NavigationHistory Inline implementation diff --git a/source/geometry/volumes/include/G4NavigationLevel.hh b/source/geometry/volumes/include/G4NavigationLevel.hh index a7c90ed953..f8b9157713 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.hh +++ b/source/geometry/volumes/include/G4NavigationLevel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevel.hh,v 1.15 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4NavigationLevel // diff --git a/source/geometry/volumes/include/G4NavigationLevel.icc b/source/geometry/volumes/include/G4NavigationLevel.icc index 229e5b0b76..ec9203f402 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.icc +++ b/source/geometry/volumes/include/G4NavigationLevel.icc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevel.icc,v 1.19 2005/06/06 13:41:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // 30.09.97 J.Apostolakis Initial version. // diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.hh b/source/geometry/volumes/include/G4NavigationLevelRep.hh index 362ba651aa..8d16f3d75c 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.hh +++ b/source/geometry/volumes/include/G4NavigationLevelRep.hh @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevelRep.hh,v 1.8 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4NavigationLevelRep // diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.icc b/source/geometry/volumes/include/G4NavigationLevelRep.icc index 7a3a69c8fd..67de6f607a 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.icc +++ b/source/geometry/volumes/include/G4NavigationLevelRep.icc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevelRep.icc,v 1.13 2005/06/06 13:41:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // 1 October 1997 J.Apostolakis Initial version. // diff --git a/source/geometry/volumes/include/G4PVParameterised.hh b/source/geometry/volumes/include/G4PVParameterised.hh index 935ec8de8c..702b55c667 100644 --- a/source/geometry/volumes/include/G4PVParameterised.hh +++ b/source/geometry/volumes/include/G4PVParameterised.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVParameterised.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PVParameterised.hh,v 1.5 2005/11/11 22:39:00 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4PVParameterised @@ -51,11 +51,13 @@ class G4PVParameterised : public G4PVReplica G4LogicalVolume* pMotherLogical, const EAxis pAxis, const G4int nReplicas, - G4VPVParameterisation *pParam); + G4VPVParameterisation *pParam, + G4bool pSurfChk=false); // Replicate the volume nReplicas Times using the paramaterisation pParam, // within the mother volume pMotherLogical. // The positioning of the replicas is dominant along the specified axis. - + // pSurfChk if true activates check for overlaps with existing volumes. + public: // without description G4PVParameterised(const G4String& pName, @@ -63,10 +65,16 @@ class G4PVParameterised : public G4PVReplica G4VPhysicalVolume* pMother, const EAxis pAxis, const G4int nReplicas, - G4VPVParameterisation *pParam); + G4VPVParameterisation *pParam, + G4bool pSurfChk=false); // Almost exactly similar to first constructor, changing only mother // pointer's type to PhysicalVolume. + G4PVParameterised(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + public: // with description virtual ~G4PVParameterised(); @@ -84,6 +92,14 @@ class G4PVParameterised : public G4PVReplica G4double& offset, G4bool& consuming) const; // Fills arguments with the attributes from the base replica. + virtual void SetRegularStructureId( G4int Code ); + // Method sets code and can prepare for special type of regular volumes. + + G4bool CheckOverlaps(G4int res=1000); + // Verifies if each instance of the parameterised volume is overlapping + // with other instances or with the mother volume. Provides default + // resolution for the number of points to be generated and verified. + // Returns true if an overlap occurs. private: diff --git a/source/geometry/volumes/include/G4PVPlacement.hh b/source/geometry/volumes/include/G4PVPlacement.hh index 66a0fc926e..8628de25d0 100644 --- a/source/geometry/volumes/include/G4PVPlacement.hh +++ b/source/geometry/volumes/include/G4PVPlacement.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVPlacement.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PVPlacement.hh,v 1.5 2005/11/11 22:39:00 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4PVPlacement @@ -56,7 +56,8 @@ class G4PVPlacement : public G4VPhysicalVolume const G4String& pName, G4LogicalVolume *pMotherLogical, G4bool pMany, - G4int pCopyNo); + G4int pCopyNo, + G4bool pSurfChk=false); // Initialise a single volume, positioned in a frame which is rotated by // *pRot and traslated by tlate, relative to the coordinate system of the // mother volume pMotherLogical. @@ -66,6 +67,7 @@ class G4PVPlacement : public G4VPhysicalVolume // pMany Currently NOT used. For future use to identify if the volume // is meant to be considered an overlapping structure, or not. // pCopyNo should be set to 0 for the first volume of a given type. + // pSurfChk if true activates check for overlaps with existing volumes. // This is a very natural way of defining a physical volume, and is // especially useful when creating subdetectors: the mother volumes are // not placed until a later stage of the assembly program. @@ -75,7 +77,8 @@ class G4PVPlacement : public G4VPhysicalVolume const G4String& pName, G4LogicalVolume *pMotherLogical, G4bool pMany, - G4int pCopyNo); + G4int pCopyNo, + G4bool pSurfChk=false); // Additional constructor, which expects a G4Transform3D that represents // the direct rotation and translation of the solid (NOT of the frame). // The G4Transform3D argument should be constructed by: @@ -96,7 +99,8 @@ class G4PVPlacement : public G4VPhysicalVolume G4LogicalVolume *pLogical, G4VPhysicalVolume *pMother, G4bool pMany, - G4int pCopyNo); + G4int pCopyNo, + G4bool pSurfChk=false); // A simple variation of the 1st constructor, only specifying the // mother volume as a pointer to its physical volume instead of its // logical volume. The effect is exactly the same. @@ -106,7 +110,8 @@ class G4PVPlacement : public G4VPhysicalVolume G4LogicalVolume *pLogical, G4VPhysicalVolume *pMother, G4bool pMany, - G4int pCopyNo); + G4int pCopyNo, + G4bool pSurfChk=false); // Utilises both variations above (from 2nd and 3rd constructor). // The effect is the same as for the 2nd constructor. @@ -119,8 +124,19 @@ class G4PVPlacement : public G4VPhysicalVolume void SetCopyNo(G4int CopyNo); // Gets and sets the copy number of the volume. + G4bool CheckOverlaps(G4int res=1000); + // Verifies if the placed volume is overlapping with existing + // daughters or with the mother volume. Provides default resolution + // for the number of points to be generated and verified. + // Returns true if the volume is overlapping. + public: // without description + G4PVPlacement(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + G4bool IsMany() const; G4bool IsReplicated() const; G4bool IsParameterised() const; @@ -130,6 +146,8 @@ class G4PVPlacement : public G4VPhysicalVolume G4double& width, G4double& offset, G4bool& consuming) const; + G4bool IsRegularStructure() const; + G4int GetRegularStructureId() const; private: diff --git a/source/geometry/volumes/include/G4PVReplica.hh b/source/geometry/volumes/include/G4PVReplica.hh index 53fae434c7..94d3c06962 100644 --- a/source/geometry/volumes/include/G4PVReplica.hh +++ b/source/geometry/volumes/include/G4PVReplica.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVReplica.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PVReplica.hh,v 1.4 2005/11/11 22:39:00 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4PVReplica @@ -94,6 +94,11 @@ class G4PVReplica : public G4VPhysicalVolume const G4double width, const G4double offset=0); + G4PVReplica(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + public: // with description virtual ~G4PVReplica(); @@ -112,6 +117,16 @@ class G4PVReplica : public G4VPhysicalVolume G4double& offset, G4bool& consuming) const; + // Methods for specialised geometries + G4bool IsRegularStructure() const; + G4int GetRegularStructureId() const; + // return values + virtual void SetRegularStructureId( G4int Code ); + // This method must set a unique code for each type + // of regular structure. + // - It must be called only during detector construction. + // - It can also be used to prepare a/any corresponding + // special navigation 'conditions'. private: void CheckAndSetParameters( @@ -123,6 +138,9 @@ class G4PVReplica : public G4VPhysicalVolume G4PVReplica(const G4PVReplica&); const G4PVReplica& operator=(const G4PVReplica&); + private: + G4int fRegularStructureCode; + protected: EAxis faxis; @@ -130,6 +148,10 @@ class G4PVReplica : public G4VPhysicalVolume G4double fwidth,foffset; G4int fcopyNo; -}; + + private: + G4int fRegularVolsId; + + }; #endif diff --git a/source/geometry/volumes/include/G4ReflectionFactory.hh b/source/geometry/volumes/include/G4ReflectionFactory.hh index 999e9fca33..fbb9638226 100644 --- a/source/geometry/volumes/include/G4ReflectionFactory.hh +++ b/source/geometry/volumes/include/G4ReflectionFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReflectionFactory.hh,v 1.1 2004/05/13 14:50:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4ReflectionFactory diff --git a/source/geometry/volumes/include/G4TouchableHistory.hh b/source/geometry/volumes/include/G4TouchableHistory.hh index 581b27d95a..f2cf3f8f79 100644 --- a/source/geometry/volumes/include/G4TouchableHistory.hh +++ b/source/geometry/volumes/include/G4TouchableHistory.hh @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHistory.hh,v 1.7 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4TouchableHistory diff --git a/source/geometry/volumes/include/G4TouchableHistory.icc b/source/geometry/volumes/include/G4TouchableHistory.icc index e1cdfab00c..c4fb72f642 100644 --- a/source/geometry/volumes/include/G4TouchableHistory.icc +++ b/source/geometry/volumes/include/G4TouchableHistory.icc @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHistory.icc,v 1.8 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4TouchableHistory inline implementation diff --git a/source/geometry/volumes/include/G4TouchableHistoryHandle.hh b/source/geometry/volumes/include/G4TouchableHistoryHandle.hh index 712d58d554..e0fb3b9874 100644 --- a/source/geometry/volumes/include/G4TouchableHistoryHandle.hh +++ b/source/geometry/volumes/include/G4TouchableHistoryHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHistoryHandle.hh,v 1.5 2003/11/02 16:06:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class G4TouchableHistoryHandle // diff --git a/source/geometry/volumes/include/G4VNestedParameterisation.hh b/source/geometry/volumes/include/G4VNestedParameterisation.hh new file mode 100644 index 0000000000..3cd3313365 --- /dev/null +++ b/source/geometry/volumes/include/G4VNestedParameterisation.hh @@ -0,0 +1,168 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VNestedParameterisation.hh,v 1.5 2005/11/24 18:19:25 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// class G4VNestedParameterisation +// +// Class description: +// +// Base class for parameterisations that use information from the parent +// volume to compute the material of a copy/instance of this volume. +// This is in addition to using the current replication number. +// +// Notes: +// - Such a volume can be nested inside a placement volume or a parameterised +// volume. +// - The user can modify the solid type, size or transformation using only +// the replication number of this parameterised volume. +// He/she is NOT allowed to change these attributes using information of +// parent volumes - otherwise incorrect results will occur. +// Also note that the usual restrictions apply: +// - the mother volume, in which these copies are placed, must always be +// of the same dimensions + +// History: +// 24.02.05 - J.Apostolakis - First created version. +// -------------------------------------------------------------------- +#ifndef G4VNESTEDPARAMETERISATION_HH +#define G4VNESTEDPARAMETERISATION_HH + +#include "G4Types.hh" +#include "G4VPVParameterisation.hh" + +class G4VPhysicalVolume; +class G4VTouchable; +class G4VSolid; +class G4Material; + +// CSG Entities which may be parameterised/replicated +// +class G4Box; +class G4Tubs; +class G4Trd; +class G4Trap; +class G4Cons; +class G4Sphere; +class G4Orb; +class G4Torus; +class G4Para; +class G4Polycone; +class G4Polyhedra; +class G4Hype; + +class G4VNestedParameterisation: public G4VPVParameterisation, + public G4VVolumeMaterialScanner +{ + public: // with description + + G4VNestedParameterisation(); + virtual ~G4VNestedParameterisation(); + + // Methods required in derived classes + // ----------------------------------- + virtual G4Material* ComputeMaterial(G4VPhysicalVolume *currentVol, + const G4int repNo, + const G4VTouchable *parentTouch=0 + )=0; + // Required method, as it is the reason for this class. + // Must cope with parentTouch=0 for navigator's SetupHierarchy + + virtual G4int GetNumberOfMaterials() const=0; + virtual G4Material* GetMaterial(G4int idx) const=0; + // Needed to define materials for instances of Nested Parameterisation + // Current convention: each call should return the materials + // of all instances with the same mother/ancestor volume. + + virtual void ComputeTransformation(const G4int no, + G4VPhysicalVolume *currentPV) const = 0; + + // Methods optional in derived classes + // ----------------------------------- + virtual G4VSolid* ComputeSolid(const G4int no, G4VPhysicalVolume *thisVol); + + // Additional standard Parameterisation methods, + // which can be optionally defined, in case solid is used. + + virtual void ComputeDimensions(G4Box &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Tubs &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Trd &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Trap &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Cons &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Sphere &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Orb &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Torus &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Para &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Polycone &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Polyhedra &, + const G4int, + const G4VPhysicalVolume *) const {} + + virtual void ComputeDimensions(G4Hype &, + const G4int, + const G4VPhysicalVolume *) const {} + + + // Method implemented in this class in terms of above ComputeMaterial + G4Material* ComputeMaterial(const G4int repNo, + G4VPhysicalVolume *currentVol, + const G4VTouchable *parentTouch=0); + + // Methods identifying Nested Params, implemented in this class + virtual G4bool IsNested() const; + virtual G4VVolumeMaterialScanner* GetMaterialScanner(); + // These enable material scan for nested parameterisations +}; + +#endif diff --git a/source/geometry/volumes/src/G4AssemblyVolume.cc b/source/geometry/volumes/src/G4AssemblyVolume.cc index 46210d36de..f16abff656 100644 --- a/source/geometry/volumes/src/G4AssemblyVolume.cc +++ b/source/geometry/volumes/src/G4AssemblyVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyVolume.cc,v 1.3 2004/01/19 14:07:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AssemblyVolume.cc,v 1.4 2005/11/09 15:08:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4AssemblyVolume - implementation @@ -36,7 +36,7 @@ #include "G4LogicalVolume.hh" #include "G4VPhysicalVolume.hh" -#include +#include unsigned int G4AssemblyVolume::fsInstanceCounter = 0; @@ -193,7 +193,7 @@ void G4AssemblyVolume::MakeImprint( G4LogicalVolume* pMotherLV, // XXX - assembly volume imprint number // YYY - the name of a log. volume we want to make a placement of // ZZZ - the log. volume index inside the assembly volume - std::strstream pvName; + std::stringstream pvName; pvName << "av_" << GetAssemblyID() << "_impr_" @@ -269,7 +269,7 @@ void G4AssemblyVolume::MakeImprint( G4LogicalVolume* pMotherLV, // XXX - assembly volume imprint number // YYY - the name of a log. volume we want to make a placement of // ZZZ - the log. volume index inside the assembly volume - std::strstream pvName; + std::stringstream pvName; pvName << "av_" << GetAssemblyID() << "_impr_" diff --git a/source/geometry/volumes/src/G4GRSSolid.cc b/source/geometry/volumes/src/G4GRSSolid.cc index dc397a2aa2..ae00143fb7 100644 --- a/source/geometry/volumes/src/G4GRSSolid.cc +++ b/source/geometry/volumes/src/G4GRSSolid.cc @@ -22,7 +22,7 @@ // // // $Id: G4GRSSolid.cc,v 1.7 2003/11/02 16:06:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4GRSSolid Implementation diff --git a/source/geometry/volumes/src/G4GRSVolume.cc b/source/geometry/volumes/src/G4GRSVolume.cc index 9e7b6a9010..36e035f3a8 100644 --- a/source/geometry/volumes/src/G4GRSVolume.cc +++ b/source/geometry/volumes/src/G4GRSVolume.cc @@ -22,7 +22,7 @@ // // // $Id: G4GRSVolume.cc,v 1.7 2003/11/02 16:06:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4GRSVolume Implementation diff --git a/source/geometry/volumes/src/G4LogicalBorderSurface.cc b/source/geometry/volumes/src/G4LogicalBorderSurface.cc index e04450c5e7..6fa1e38bfd 100644 --- a/source/geometry/volumes/src/G4LogicalBorderSurface.cc +++ b/source/geometry/volumes/src/G4LogicalBorderSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalBorderSurface.cc,v 1.13 2004/05/19 08:14:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // G4LogicalBorderSurface Implementation diff --git a/source/geometry/volumes/src/G4LogicalSkinSurface.cc b/source/geometry/volumes/src/G4LogicalSkinSurface.cc index 173f234be1..b0bb67da25 100644 --- a/source/geometry/volumes/src/G4LogicalSkinSurface.cc +++ b/source/geometry/volumes/src/G4LogicalSkinSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalSkinSurface.cc,v 1.12 2004/05/19 08:14:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // G4LogicalSkinSurface Implementation diff --git a/source/geometry/volumes/src/G4NavigationHistory.cc b/source/geometry/volumes/src/G4NavigationHistory.cc index 98fe7a0fce..a8872a792a 100644 --- a/source/geometry/volumes/src/G4NavigationHistory.cc +++ b/source/geometry/volumes/src/G4NavigationHistory.cc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationHistory.cc,v 1.9 2003/12/04 15:59:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4NavigationHistory Implementation diff --git a/source/geometry/volumes/src/G4NavigationLevel.cc b/source/geometry/volumes/src/G4NavigationLevel.cc index 5dd29d9aa0..9a8a745c51 100644 --- a/source/geometry/volumes/src/G4NavigationLevel.cc +++ b/source/geometry/volumes/src/G4NavigationLevel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevel.cc,v 1.3 2005/06/06 13:41:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // 30.09.97 J.Apostolakis Initial version. // diff --git a/source/geometry/volumes/src/G4NavigationLevelRep.cc b/source/geometry/volumes/src/G4NavigationLevelRep.cc index 6ae1260901..7c9572dc20 100644 --- a/source/geometry/volumes/src/G4NavigationLevelRep.cc +++ b/source/geometry/volumes/src/G4NavigationLevelRep.cc @@ -22,7 +22,7 @@ // // // $Id: G4NavigationLevelRep.cc,v 1.1 2005/06/06 13:41:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // 1 October 1997 J.Apostolakis Initial version. // diff --git a/source/geometry/volumes/src/G4PVParameterised.cc b/source/geometry/volumes/src/G4PVParameterised.cc index f20b055cf1..140b9c397c 100644 --- a/source/geometry/volumes/src/G4PVParameterised.cc +++ b/source/geometry/volumes/src/G4PVParameterised.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVParameterised.cc,v 1.2 2003/11/02 16:06:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PVParameterised.cc,v 1.5 2005/11/11 22:39:00 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4PVParameterised @@ -32,13 +32,21 @@ // ---------------------------------------------------------------------- #include "G4PVParameterised.hh" +#include "G4VPVParameterisation.hh" +#include "G4AffineTransform.hh" +#include "G4VSolid.hh" +#include "G4LogicalVolume.hh" +// ---------------------------------------------------------------------- +// Constructor +// G4PVParameterised::G4PVParameterised( const G4String& pName, G4LogicalVolume* pLogical, G4VPhysicalVolume* pMother, const EAxis pAxis, const G4int nReplicas, - G4VPVParameterisation *pParam) + G4VPVParameterisation *pParam, + G4bool pSurfChk ) : G4PVReplica(pName, pLogical, pMother, pAxis, nReplicas, 0, 0), fparam(pParam) { @@ -56,33 +64,60 @@ G4PVParameterised::G4PVParameterised( const G4String& pName, << " (To switch this warning off, compile with G4_NO_VERBOSE)" << G4endl; } #endif + if (pSurfChk) { CheckOverlaps(); } } +// ---------------------------------------------------------------------- +// Constructor +// G4PVParameterised::G4PVParameterised( const G4String& pName, G4LogicalVolume* pLogical, G4LogicalVolume* pMotherLogical, const EAxis pAxis, const G4int nReplicas, - G4VPVParameterisation *pParam) + G4VPVParameterisation *pParam, + G4bool pSurfChk ) : G4PVReplica(pName, pLogical, pMotherLogical, pAxis, nReplicas, 0, 0), fparam(pParam) { + if (pSurfChk) { CheckOverlaps(); } } +// ---------------------------------------------------------------------- +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4PVParameterised::G4PVParameterised( __void__& a ) + : G4PVReplica(a), fparam(0) +{ +} + +// ---------------------------------------------------------------------- +// Destructor +// G4PVParameterised::~G4PVParameterised() { } +// ---------------------------------------------------------------------- +// GetParameterisation +// G4VPVParameterisation* G4PVParameterised::GetParameterisation() const { return fparam; } +// ---------------------------------------------------------------------- +// IsParameterised +// G4bool G4PVParameterised::IsParameterised() const { return true; } +// ---------------------------------------------------------------------- +// GetReplicationData +// void G4PVParameterised::GetReplicationData( EAxis& axis, G4int& nReplicas, G4double& width, @@ -95,3 +130,106 @@ void G4PVParameterised::GetReplicationData( EAxis& axis, offset = foffset; consuming = false; } + +// ---------------------------------------------------------------------- +// SetRegularStructureId +// +void G4PVParameterised::SetRegularStructureId( G4int Code ) +{ + G4PVReplica::SetRegularStructureId( Code ); + // To undertake additional preparation, a derived volume must + // redefine this method, while calling also the above method. +} + + +// ---------------------------------------------------------------------- +// CheckOverlaps +// +G4bool G4PVParameterised::CheckOverlaps(G4int res) +{ + if (res<=0) { return false; } + + G4VSolid *solidA = 0, *solidB = 0; + G4LogicalVolume *motherLog = GetMotherLogical(); + G4VSolid *motherSolid = motherLog->GetSolid(); + std::vector points; + + G4cout << "Checking overlaps for parameterised volume " + << GetName() << " ... "; + + for (G4int i=0; iComputeSolid(i, this); + solidA->ComputeDimensions(fparam, i, this); + fparam->ComputeTransformation(i, this); + + // Create the transformation from daughter to mother + // + G4AffineTransform Tm( GetFrameRotation(), GetFrameTranslation() ); + + // Generate random points on surface according to the given resolution, + // transform them to the mother's coordinate system and if no overlaps + // with the mother volume, cache them in a vector for later use with + // the daughters + // + for (G4int n=0; nGetPointOnSurface()); + + // Checking overlaps with the mother volume + // + if (motherSolid->Inside(mp)==kOutside) + { + G4cout << G4endl; + G4cout << "WARNING - G4PVParameterised::CheckOverlaps()" << G4endl + << " Overlap is detected for volume " + << GetName() << ", parameterised instance: " << i << G4endl + << " with its mother volume " + << motherLog->GetName() << G4endl + << " at point " << mp << G4endl; + G4Exception("G4PVParameterised::CheckOverlaps()", "InvalidSetup", + JustWarning, "Overlap with mother volume !"); + return true; + } + points.push_back(mp); + } + + // Checking overlaps with each other parameterised instance + // + std::vector::iterator pos; + for (G4int j=i+1; jComputeSolid(j,this); + solidB->ComputeDimensions(fparam, j, this); + fparam->ComputeTransformation(j, this); + + // Create the transformation for daughter volume + // + G4AffineTransform Td( GetFrameRotation(), GetFrameTranslation() ); + + for (pos=points.begin(); pos!=points.end(); pos++) + { + // Transform each point according to daughter's frame + // + G4ThreeVector md = Td.Invert().TransformPoint(*pos); + + if (solidB->Inside(md)==kInside) + { + G4cout << G4endl; + G4cout << "WARNING - G4PVParameterised::CheckOverlaps()" << G4endl + << " Overlap is detected for volume " + << GetName() << ", parameterised instance: " << i << G4endl + << " with parameterised volume instance: " << j + << G4endl + << " at point " << md << G4endl; + G4Exception("G4PVParameterised::CheckOverlaps()", "InvalidSetup", + JustWarning, "Overlap within parameterised volumes !"); + return true; + } + } + } + } + G4cout << "OK! " << G4endl; + + return false; +} diff --git a/source/geometry/volumes/src/G4PVPlacement.cc b/source/geometry/volumes/src/G4PVPlacement.cc index 5257cbcf72..0a63f2823b 100644 --- a/source/geometry/volumes/src/G4PVPlacement.cc +++ b/source/geometry/volumes/src/G4PVPlacement.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVPlacement.cc,v 1.3 2003/11/17 11:29:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PVPlacement.cc,v 1.7 2005/11/16 19:08:00 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4PVPlacement Implementation @@ -30,15 +30,21 @@ // ---------------------------------------------------------------------- #include "G4PVPlacement.hh" -#include "G4LogicalVolume.hh" +#include "G4AffineTransform.hh" +#include "G4LogicalVolume.hh" +#include "G4VSolid.hh" +// ---------------------------------------------------------------------- +// Constructor +// G4PVPlacement::G4PVPlacement( G4RotationMatrix *pRot, const G4ThreeVector &tlate, const G4String& pName, G4LogicalVolume *pLogical, G4VPhysicalVolume *pMother, G4bool pMany, - G4int pCopyNo ) + G4int pCopyNo, + G4bool pSurfChk ) : G4VPhysicalVolume(pRot,tlate,pName,pLogical,pMother), fmany(pMany), fallocatedRotM(false), fcopyNo(pCopyNo) { @@ -46,19 +52,26 @@ G4PVPlacement::G4PVPlacement( G4RotationMatrix *pRot, { G4LogicalVolume* motherLogical = pMother->GetLogicalVolume(); if (pLogical == motherLogical) + { G4Exception("G4PVPlacement::G4PVPlacement()", "InvalidSetup", FatalException, "Cannot place a volume inside itself!"); + } SetMotherLogical(motherLogical); motherLogical->AddDaughter(this); + if (pSurfChk) { CheckOverlaps(); } } } +// ---------------------------------------------------------------------- +// Constructor +// G4PVPlacement::G4PVPlacement( const G4Transform3D &Transform3D, const G4String& pName, G4LogicalVolume *pLogical, G4VPhysicalVolume *pMother, G4bool pMany, - G4int pCopyNo) + G4int pCopyNo, + G4bool pSurfChk ) : G4VPhysicalVolume(NewPtrRotMatrix(Transform3D.getRotation().inverse()), Transform3D.getTranslation(),pName,pLogical,pMother), fmany(pMany), fcopyNo(pCopyNo) @@ -72,103 +85,241 @@ G4PVPlacement::G4PVPlacement( const G4Transform3D &Transform3D, FatalException, "Cannot place a volume inside itself!"); SetMotherLogical(motherLogical); motherLogical->AddDaughter(this); + if (pSurfChk) { CheckOverlaps(); } } } +// ---------------------------------------------------------------------- +// Constructor // // The logical volume of the mother is utilised (not the physical) // - G4PVPlacement::G4PVPlacement( G4RotationMatrix *pRot, const G4ThreeVector &tlate, G4LogicalVolume *pCurrentLogical, const G4String& pName, G4LogicalVolume *pMotherLogical, G4bool pMany, - G4int pCopyNo) + G4int pCopyNo, + G4bool pSurfChk ) : G4VPhysicalVolume(pRot,tlate,pName,pCurrentLogical,0), fmany(pMany), fallocatedRotM(false), fcopyNo(pCopyNo) { if (pCurrentLogical == pMotherLogical) + { G4Exception("G4PVPlacement::G4PVPlacement()", "InvalidSetup", FatalException, "Cannot place a volume inside itself!"); + } SetMotherLogical(pMotherLogical); - if (pMotherLogical) pMotherLogical->AddDaughter(this); + if (pMotherLogical) { pMotherLogical->AddDaughter(this); } + if (pSurfChk) { CheckOverlaps(); } } +// ---------------------------------------------------------------------- +// Constructor +// G4PVPlacement::G4PVPlacement( const G4Transform3D &Transform3D, G4LogicalVolume *pCurrentLogical, const G4String& pName, G4LogicalVolume *pMotherLogical, G4bool pMany, - G4int pCopyNo) + G4int pCopyNo, + G4bool pSurfChk ) : G4VPhysicalVolume(0,Transform3D.getTranslation(),pName,pCurrentLogical,0), fmany(pMany), fcopyNo(pCopyNo) { if (pCurrentLogical == pMotherLogical) + { G4Exception("G4PVPlacement::G4PVPlacement()", "InvalidSetup", FatalException, "Cannot place a volume inside itself!"); + } SetRotation( NewPtrRotMatrix(Transform3D.getRotation().inverse()) ); fallocatedRotM = (GetRotation() != 0); SetMotherLogical(pMotherLogical); - if (pMotherLogical) pMotherLogical->AddDaughter(this); + if (pMotherLogical) { pMotherLogical->AddDaughter(this); } + if (pSurfChk) { CheckOverlaps(); } } +// ---------------------------------------------------------------------- +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency. +// +G4PVPlacement::G4PVPlacement( __void__& a ) + : G4VPhysicalVolume(a) +{ +} + +// ---------------------------------------------------------------------- +// Destructor +// G4PVPlacement::~G4PVPlacement() { if( fallocatedRotM ){ delete frot; } } +// ---------------------------------------------------------------------- +// IsMany +// G4bool G4PVPlacement::IsMany() const { return fmany; } +// ---------------------------------------------------------------------- +// GetCopyNo +// G4int G4PVPlacement::GetCopyNo() const { return fcopyNo; } +// ---------------------------------------------------------------------- +// SetCopyNo +// void G4PVPlacement::SetCopyNo(G4int newCopyNo) { fcopyNo= newCopyNo; } +// ---------------------------------------------------------------------- +// IsReplicated +// G4bool G4PVPlacement::IsReplicated() const { return false; } +// ---------------------------------------------------------------------- +// IsParameterised +// G4bool G4PVPlacement::IsParameterised() const { return false; } +// ---------------------------------------------------------------------- +// GetParameterisation +// G4VPVParameterisation* G4PVPlacement::GetParameterisation() const { return 0; } -void G4PVPlacement::GetReplicationData( EAxis&, - G4int&, - G4double&, - G4double&, - G4bool& ) const +// ---------------------------------------------------------------------- +// GetReplicationData +// +void G4PVPlacement:: +GetReplicationData( EAxis&, G4int&, G4double&, G4double&, G4bool& ) const { // No-operations } -// -// Auxiliary function for 2nd & 4th constructors (the ones with G4Transform3D) -// Creates a new RotMatrix on the heap (using "new") and copies -// its argument into it. -// -// No entity is currently responsible to delete this memory. -// This is a memory leak. <-- FIXME +// The next methods are for specialised repeated volumes +// (replicas, parameterised vol.) which are completely regular. +// ---------------------------------------------------------------------- +// IsRegularRepeatedStructure() // +G4bool G4PVPlacement::IsRegularStructure() const +{ + return false; +} -G4RotationMatrix* G4PVPlacement::NewPtrRotMatrix(const G4RotationMatrix &RotMat) +// ---------------------------------------------------------------------- +// IsRegularRepeatedStructure() +// +G4int G4PVPlacement::GetRegularStructureId() const +{ + return 0; +} +// This is for specialised repeated volumes (replicas, parameterised vol.) + +// ---------------------------------------------------------------------- +// CheckOverlaps +// +G4bool G4PVPlacement::CheckOverlaps(G4int res) +{ + if (res<=0) { return false; } + + G4VSolid* solid = GetLogicalVolume()->GetSolid(); + G4LogicalVolume* motherLog = GetMotherLogical(); + + G4cout << "Checking overlaps for volume " << GetName() << " ... "; + + // Create the transformation from daughter to mother + // + G4AffineTransform Tm( GetFrameRotation(), GetFrameTranslation() ); + + for (G4int n=0; nGetPointOnSurface(); + + // Transform the generated point to the mother's coordinate system + // + G4ThreeVector mp = Tm.TransformPoint(point); + + // Checking overlaps with the mother volume + // + if (motherLog->GetSolid()->Inside(mp)==kOutside) + { + G4cout << G4endl; + G4cout << "WARNING - G4PVPlacement::CheckOverlaps()" << G4endl + << " Overlap is detected for volume " + << GetName() << G4endl + << " with its mother volume " + << motherLog->GetName() << G4endl + << " at point " << mp << G4endl; + G4Exception("G4PVPlacement::CheckOverlaps()", "InvalidSetup", + JustWarning, "Overlap with mother volume !"); + return true; + } + + // Checking overlaps with each 'sister' volume + // + for (G4int i=0; iGetNoDaughters()-1; i++) + { + G4VPhysicalVolume* daughter = motherLog->GetDaughter(i); + + // Create the transformation for daughter volume and transform point + // + G4AffineTransform Td( daughter->GetFrameRotation(), + daughter->GetFrameTranslation() ); + G4ThreeVector md = Td.Inverse().TransformPoint(mp); + + G4VSolid* daughterSolid = daughter->GetLogicalVolume()->GetSolid(); + if (daughterSolid->Inside(md)==kInside) + { + G4cout << G4endl; + G4cout << "WARNING - G4PVPlacement::CheckOverlaps()" << G4endl + << " Overlap is detected for volume " + << GetName() << G4endl + << " with volume " << daughter->GetName() << G4endl + << " at point " << md << G4endl; + G4Exception("G4PVPlacement::CheckOverlaps()", "InvalidSetup", + JustWarning, "Overlap with volume already placed !"); + return true; + } + } + } + G4cout << "OK! " << G4endl; + + return false; +} + +// ---------------------------------------------------------------------- +// NewPtrRotMatrix +// +// Auxiliary function for 2nd & 4th constructors (those with G4Transform3D) +// Creates a new rotation matrix on the heap (using "new") and copies its +// argument into it. +// +// NOTE: Ownership of the returned pointer is left to the caller ! +// No entity is currently responsible to delete this memory. +// +G4RotationMatrix* +G4PVPlacement::NewPtrRotMatrix(const G4RotationMatrix &RotMat) { G4RotationMatrix *pRotMatrix; if ( RotMat.isIdentity() ) diff --git a/source/geometry/volumes/src/G4PVReplica.cc b/source/geometry/volumes/src/G4PVReplica.cc index e39d6a1431..d8870e2c4b 100644 --- a/source/geometry/volumes/src/G4PVReplica.cc +++ b/source/geometry/volumes/src/G4PVReplica.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVReplica.cc,v 1.4 2003/11/17 11:29:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PVReplica.cc,v 1.6 2005/11/11 22:39:00 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4PVReplica Implementation @@ -40,7 +40,7 @@ G4PVReplica::G4PVReplica( const G4String& pName, const G4double width, const G4double offset ) : G4VPhysicalVolume(0, G4ThreeVector(), pName, pLogical, pMother), - fcopyNo(-1) + fcopyNo(-1), fRegularVolsId(0) { if ((!pMother) || (!pMother->GetLogicalVolume())) { @@ -76,7 +76,7 @@ G4PVReplica::G4PVReplica( const G4String& pName, const G4double width, const G4double offset ) : G4VPhysicalVolume(0,G4ThreeVector(),pName,pLogical,0), - fcopyNo(-1) + fcopyNo(-1), fRegularVolsId(0) { if (!pMotherLogical) { @@ -149,6 +149,11 @@ void G4PVReplica::CheckAndSetParameters( const EAxis pAxis, } } +G4PVReplica::G4PVReplica( __void__& a ) + : G4VPhysicalVolume(a), fRegularVolsId(0) +{ +} + G4PVReplica::~G4PVReplica() { if ( faxis==kPhi ) @@ -192,6 +197,8 @@ G4int G4PVReplica::GetMultiplicity() const return fnReplicas; } + + void G4PVReplica::GetReplicationData( EAxis& axis, G4int& nReplicas, G4double& width, @@ -204,3 +211,18 @@ void G4PVReplica::GetReplicationData( EAxis& axis, offset = foffset; consuming = true; } + +G4bool G4PVReplica::IsRegularStructure() const +{ + return (fRegularVolsId!=0); +} + +G4int G4PVReplica::GetRegularStructureId() const +{ + return fRegularVolsId; +} + +void G4PVReplica::SetRegularStructureId( G4int Code ) +{ + fRegularVolsId= Code; +} diff --git a/source/geometry/volumes/src/G4ReflectionFactory.cc b/source/geometry/volumes/src/G4ReflectionFactory.cc index cb6abde987..8657fc4a58 100644 --- a/source/geometry/volumes/src/G4ReflectionFactory.cc +++ b/source/geometry/volumes/src/G4ReflectionFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4ReflectionFactory.cc,v 1.3 2004/12/02 09:31:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4ReflectionFactory Implementation diff --git a/source/geometry/volumes/src/G4TouchableHistory.cc b/source/geometry/volumes/src/G4TouchableHistory.cc index e978256360..b103c4c1f2 100644 --- a/source/geometry/volumes/src/G4TouchableHistory.cc +++ b/source/geometry/volumes/src/G4TouchableHistory.cc @@ -22,7 +22,7 @@ // // // $Id: G4TouchableHistory.cc,v 1.11 2005/06/06 15:19:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4TouchableHistory Implementation diff --git a/source/geometry/volumes/src/G4VNestedParameterisation.cc b/source/geometry/volumes/src/G4VNestedParameterisation.cc new file mode 100644 index 0000000000..6cc37121d9 --- /dev/null +++ b/source/geometry/volumes/src/G4VNestedParameterisation.cc @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VNestedParameterisation.cc,v 1.6 2005/11/24 18:19:53 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// class G4VNestedParameterisation implementation +// +// -------------------------------------------------------------------- + +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4VTouchable.hh" + +#include "G4VNestedParameterisation.hh" + +G4VNestedParameterisation::G4VNestedParameterisation() : + G4VPVParameterisation(), G4VVolumeMaterialScanner() +{ +} + +G4VNestedParameterisation::~G4VNestedParameterisation() {} + +G4VSolid* G4VNestedParameterisation::ComputeSolid(const G4int, + G4VPhysicalVolume *pvol) +{ + return pvol->GetLogicalVolume()->GetSolid(); +} + +G4bool G4VNestedParameterisation::IsNested() const +{ + return true; +} + +G4VVolumeMaterialScanner* G4VNestedParameterisation::GetMaterialScanner() +{ + return this; +} + +G4Material* +G4VNestedParameterisation::ComputeMaterial(const G4int repNo, + G4VPhysicalVolume *currentVol, + const G4VTouchable *parentTouch) +{ + return ComputeMaterial( currentVol, repNo, parentTouch ); +} diff --git a/source/global/HEPGeometry/include/G4LorentzRotation.hh b/source/global/HEPGeometry/include/G4LorentzRotation.hh index ff847c2664..052a4134db 100644 --- a/source/global/HEPGeometry/include/G4LorentzRotation.hh +++ b/source/global/HEPGeometry/include/G4LorentzRotation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LorentzRotation.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LorentzRotation.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4LorentzRotation_hh #define G4LorentzRotation_hh @@ -30,7 +30,7 @@ #include "globals.hh" #include -typedef HepLorentzRotation G4LorentzRotation; +typedef CLHEP::HepLorentzRotation G4LorentzRotation; #endif // G4LorentzRotation_hh diff --git a/source/global/HEPGeometry/include/G4LorentzVector.hh b/source/global/HEPGeometry/include/G4LorentzVector.hh index bf659ef8c3..10cb70517f 100644 --- a/source/global/HEPGeometry/include/G4LorentzVector.hh +++ b/source/global/HEPGeometry/include/G4LorentzVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LorentzVector.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LorentzVector.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4LorentzVector_hh #define G4LorentzVector_hh @@ -30,6 +30,6 @@ #include "globals.hh" #include -typedef HepLorentzVector G4LorentzVector; +typedef CLHEP::HepLorentzVector G4LorentzVector; #endif // G4LorentzVector_hh diff --git a/source/global/HEPGeometry/include/G4Normal3D.hh b/source/global/HEPGeometry/include/G4Normal3D.hh index b7353e7946..5a9e6f183a 100644 --- a/source/global/HEPGeometry/include/G4Normal3D.hh +++ b/source/global/HEPGeometry/include/G4Normal3D.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Normal3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Normal3D.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NORMAL3D_HH #define G4NORMAL3D_HH @@ -30,6 +30,6 @@ #include "globals.hh" #include -typedef HepNormal3D G4Normal3D; +typedef HepGeom::Normal3D G4Normal3D; #endif /* G4NORMAL3D_HH */ diff --git a/source/global/HEPGeometry/include/G4Plane3D.hh b/source/global/HEPGeometry/include/G4Plane3D.hh index 01beba4a01..b5deb4996d 100644 --- a/source/global/HEPGeometry/include/G4Plane3D.hh +++ b/source/global/HEPGeometry/include/G4Plane3D.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Plane3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Plane3D.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4PLANE3D_HH #define G4PLANE3D_HH @@ -32,6 +32,6 @@ #include "G4Normal3D.hh" #include -typedef HepPlane3D G4Plane3D; +typedef HepGeom::Plane3D G4Plane3D; #endif /* G4PLANE3D_HH */ diff --git a/source/global/HEPGeometry/include/G4Point3D.hh b/source/global/HEPGeometry/include/G4Point3D.hh index 4487ea2860..00ff46b993 100644 --- a/source/global/HEPGeometry/include/G4Point3D.hh +++ b/source/global/HEPGeometry/include/G4Point3D.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Point3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Point3D.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4POINT3D_HH #define G4POINT3D_HH @@ -30,6 +30,6 @@ #include "globals.hh" #include -typedef HepPoint3D G4Point3D; +typedef HepGeom::Point3D G4Point3D; #endif /* G4POINT3D_HH */ diff --git a/source/global/HEPGeometry/include/G4Transform3D.hh b/source/global/HEPGeometry/include/G4Transform3D.hh index 2ce1882062..71b1a8193f 100644 --- a/source/global/HEPGeometry/include/G4Transform3D.hh +++ b/source/global/HEPGeometry/include/G4Transform3D.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Transform3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Transform3D.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4TRANSFORM3D_HH #define G4TRANSFORM3D_HH @@ -30,26 +30,26 @@ #include "globals.hh" #include -typedef HepTransform3D G4Transform3D; +typedef HepGeom::Transform3D G4Transform3D; -typedef HepRotate3D G4Rotate3D; -typedef HepRotateX3D G4RotateX3D; -typedef HepRotateY3D G4RotateY3D; -typedef HepRotateZ3D G4RotateZ3D; +typedef HepGeom::Rotate3D G4Rotate3D; +typedef HepGeom::RotateX3D G4RotateX3D; +typedef HepGeom::RotateY3D G4RotateY3D; +typedef HepGeom::RotateZ3D G4RotateZ3D; -typedef HepTranslate3D G4Translate3D; -typedef HepTranslateX3D G4TranslateX3D; -typedef HepTranslateY3D G4TranslateY3D; -typedef HepTranslateZ3D G4TranslateZ3D; +typedef HepGeom::Translate3D G4Translate3D; +typedef HepGeom::TranslateX3D G4TranslateX3D; +typedef HepGeom::TranslateY3D G4TranslateY3D; +typedef HepGeom::TranslateZ3D G4TranslateZ3D; -typedef HepReflect3D G4Reflect3D; -typedef HepReflectX3D G4ReflectX3D; -typedef HepReflectY3D G4ReflectY3D; -typedef HepReflectZ3D G4ReflectZ3D; +typedef HepGeom::Reflect3D G4Reflect3D; +typedef HepGeom::ReflectX3D G4ReflectX3D; +typedef HepGeom::ReflectY3D G4ReflectY3D; +typedef HepGeom::ReflectZ3D G4ReflectZ3D; -typedef HepScale3D G4Scale3D; -typedef HepScaleX3D G4ScaleX3D; -typedef HepScaleY3D G4ScaleY3D; -typedef HepScaleZ3D G4ScaleZ3D; +typedef HepGeom::Scale3D G4Scale3D; +typedef HepGeom::ScaleX3D G4ScaleX3D; +typedef HepGeom::ScaleY3D G4ScaleY3D; +typedef HepGeom::ScaleZ3D G4ScaleZ3D; #endif /* G4TRANSFORM3D_HH */ diff --git a/source/global/HEPGeometry/include/G4Vector3D.hh b/source/global/HEPGeometry/include/G4Vector3D.hh index f315515523..68aeb2e203 100644 --- a/source/global/HEPGeometry/include/G4Vector3D.hh +++ b/source/global/HEPGeometry/include/G4Vector3D.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Vector3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Vector3D.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VECTOR3D_HH #define G4VECTOR3D_HH @@ -30,6 +30,6 @@ #include "globals.hh" #include -typedef HepVector3D G4Vector3D; +typedef HepGeom::Vector3D G4Vector3D; #endif /* G4VECTOR3D_HH */ diff --git a/source/global/HEPGeometry/include/geomdefs.hh b/source/global/HEPGeometry/include/geomdefs.hh index a812c1e880..45298c3760 100644 --- a/source/global/HEPGeometry/include/geomdefs.hh +++ b/source/global/HEPGeometry/include/geomdefs.hh @@ -22,7 +22,7 @@ // // // $Id: geomdefs.hh,v 1.5 2002/05/15 09:32:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/HEPNumerics/include/G4AnalyticalPolSolver.hh b/source/global/HEPNumerics/include/G4AnalyticalPolSolver.hh index eba7afacb8..ad0e9cdecc 100644 --- a/source/global/HEPNumerics/include/G4AnalyticalPolSolver.hh +++ b/source/global/HEPNumerics/include/G4AnalyticalPolSolver.hh @@ -22,7 +22,7 @@ // // // $Id: G4AnalyticalPolSolver.hh,v 1.4 2005/05/19 07:37:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh index 8f0ee11ec0..9e4ddf378f 100644 --- a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh +++ b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh @@ -22,7 +22,7 @@ // // // $Id: G4ChebyshevApproximation.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4DataInterpolation.hh b/source/global/HEPNumerics/include/G4DataInterpolation.hh index 82a6597f68..f7369f29b0 100644 --- a/source/global/HEPNumerics/include/G4DataInterpolation.hh +++ b/source/global/HEPNumerics/include/G4DataInterpolation.hh @@ -22,7 +22,7 @@ // // // $Id: G4DataInterpolation.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh index d965392590..3040d41f00 100644 --- a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh +++ b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussChebyshevQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh index 88a66decdf..28f7e83ef8 100644 --- a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh +++ b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussHermiteQ.hh,v 1.5 2004/11/12 17:38:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussJacobiQ.hh b/source/global/HEPNumerics/include/G4GaussJacobiQ.hh index dc54a448d8..ca4ddbce36 100644 --- a/source/global/HEPNumerics/include/G4GaussJacobiQ.hh +++ b/source/global/HEPNumerics/include/G4GaussJacobiQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussJacobiQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh index 99ae5da255..8e5285ed4a 100644 --- a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh +++ b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussLaguerreQ.hh,v 1.5 2004/11/12 17:38:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh index f6affdf532..1102a22878 100644 --- a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh +++ b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussLegendreQ.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.hh b/source/global/HEPNumerics/include/G4Integrator.hh index 2215709caa..323c782aa9 100644 --- a/source/global/HEPNumerics/include/G4Integrator.hh +++ b/source/global/HEPNumerics/include/G4Integrator.hh @@ -22,7 +22,7 @@ // // // $Id: G4Integrator.hh,v 1.6 2004/11/12 16:25:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.icc b/source/global/HEPNumerics/include/G4Integrator.icc index f568243ae2..79e6945092 100644 --- a/source/global/HEPNumerics/include/G4Integrator.icc +++ b/source/global/HEPNumerics/include/G4Integrator.icc @@ -22,7 +22,7 @@ // // // $Id: G4Integrator.icc,v 1.12 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation of G4Integrator methods. // diff --git a/source/global/HEPNumerics/include/G4JTPolynomialSolver.hh b/source/global/HEPNumerics/include/G4JTPolynomialSolver.hh index 06a85e274b..4336a8efe3 100644 --- a/source/global/HEPNumerics/include/G4JTPolynomialSolver.hh +++ b/source/global/HEPNumerics/include/G4JTPolynomialSolver.hh @@ -22,7 +22,7 @@ // // // $Id: G4JTPolynomialSolver.hh,v 1.5 2005/03/21 18:27:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.hh b/source/global/HEPNumerics/include/G4PolynomialSolver.hh index f63e0d2cd1..77d8aba88e 100644 --- a/source/global/HEPNumerics/include/G4PolynomialSolver.hh +++ b/source/global/HEPNumerics/include/G4PolynomialSolver.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolynomialSolver.hh,v 1.3 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.icc b/source/global/HEPNumerics/include/G4PolynomialSolver.icc index 550d0f4ada..057247291e 100644 --- a/source/global/HEPNumerics/include/G4PolynomialSolver.icc +++ b/source/global/HEPNumerics/include/G4PolynomialSolver.icc @@ -22,7 +22,7 @@ // // // $Id: G4PolynomialSolver.icc,v 1.7 2004/11/12 17:38:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4SimpleIntegration.hh b/source/global/HEPNumerics/include/G4SimpleIntegration.hh index 7d75bb2a39..7bad40cd10 100644 --- a/source/global/HEPNumerics/include/G4SimpleIntegration.hh +++ b/source/global/HEPNumerics/include/G4SimpleIntegration.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleIntegration.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh index f5be4c0f3a..7a51a46fda 100644 --- a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh +++ b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGaussianQuadrature.hh,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc b/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc index 98f0891500..91b7c05002 100644 --- a/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc +++ b/source/global/HEPNumerics/src/G4AnalyticalPolSolver.cc @@ -22,7 +22,7 @@ // // // $Id: G4AnalyticalPolSolver.cc,v 1.5 2005/05/19 07:40:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "globals.hh" diff --git a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc index e860242482..1dcde81bb6 100644 --- a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc +++ b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc @@ -22,7 +22,7 @@ // // // $Id: G4ChebyshevApproximation.cc,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4ChebyshevApproximation.hh" diff --git a/source/global/HEPNumerics/src/G4DataInterpolation.cc b/source/global/HEPNumerics/src/G4DataInterpolation.cc index a125e3e988..a06234c6d1 100644 --- a/source/global/HEPNumerics/src/G4DataInterpolation.cc +++ b/source/global/HEPNumerics/src/G4DataInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4DataInterpolation.cc,v 1.7 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4DataInterpolation.hh" diff --git a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc index fcbc3ada1a..f5f1db3999 100644 --- a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc +++ b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussChebyshevQ.cc,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4GaussChebyshevQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussHermiteQ.cc b/source/global/HEPNumerics/src/G4GaussHermiteQ.cc index dfc83eb63e..a9214e41c5 100644 --- a/source/global/HEPNumerics/src/G4GaussHermiteQ.cc +++ b/source/global/HEPNumerics/src/G4GaussHermiteQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussHermiteQ.cc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4GaussHermiteQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussJacobiQ.cc b/source/global/HEPNumerics/src/G4GaussJacobiQ.cc index 8c1e494ffd..4196cfcf4d 100644 --- a/source/global/HEPNumerics/src/G4GaussJacobiQ.cc +++ b/source/global/HEPNumerics/src/G4GaussJacobiQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussJacobiQ.cc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4GaussJacobiQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc b/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc index e7930d084a..eb30c40a8e 100644 --- a/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc +++ b/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussLaguerreQ.cc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4GaussLaguerreQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussLegendreQ.cc b/source/global/HEPNumerics/src/G4GaussLegendreQ.cc index 4f560f53ab..6f5cf0d7e5 100644 --- a/source/global/HEPNumerics/src/G4GaussLegendreQ.cc +++ b/source/global/HEPNumerics/src/G4GaussLegendreQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussLegendreQ.cc,v 1.6 2005/03/16 13:45:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4GaussLegendreQ.hh" diff --git a/source/global/HEPNumerics/src/G4JTPolynomialSolver.cc b/source/global/HEPNumerics/src/G4JTPolynomialSolver.cc index d26004c42e..68054cd1ce 100644 --- a/source/global/HEPNumerics/src/G4JTPolynomialSolver.cc +++ b/source/global/HEPNumerics/src/G4JTPolynomialSolver.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4JTPolynomialSolver.cc,v 1.4 2005/03/21 18:27:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/global/HEPNumerics/src/G4SimpleIntegration.cc b/source/global/HEPNumerics/src/G4SimpleIntegration.cc index 6cade1e7a1..eb1fce03e2 100644 --- a/source/global/HEPNumerics/src/G4SimpleIntegration.cc +++ b/source/global/HEPNumerics/src/G4SimpleIntegration.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleIntegration.cc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation file for simple integration methods // diff --git a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc index 56ac5676c1..4c4c11f631 100644 --- a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc +++ b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGaussianQuadrature.cc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Implementation file for G4VGaussianQuadrature virtual base class // diff --git a/source/global/HEPRandom/include/G4Poisson.hh b/source/global/HEPRandom/include/G4Poisson.hh index b4caaa96f7..d69f40e8d5 100644 --- a/source/global/HEPRandom/include/G4Poisson.hh +++ b/source/global/HEPRandom/include/G4Poisson.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Poisson.hh,v 1.7 2004/11/12 17:38:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Poisson.hh,v 1.8 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -50,7 +50,7 @@ inline G4long G4Poisson(G4double mean) G4double limit = 2e9; if(mean <= border) { - G4double position = RandFlat::shoot(); + G4double position = CLHEP::RandFlat::shoot(); G4double poissonValue = std::exp(-mean); G4double poissonSum = poissonValue; @@ -63,8 +63,8 @@ inline G4long G4Poisson(G4double mean) } // the case of mean <= 16 G4double value, t, y; - t = std::sqrt(-2*std::log(RandFlat::shoot())); - y = twopi*RandFlat::shoot(); + t = std::sqrt(-2*std::log(CLHEP::RandFlat::shoot())); + y = twopi*CLHEP::RandFlat::shoot(); t *= std::cos(y); value = mean + t*std::sqrt(mean) + 0.5; if(value <= 0) {return 0;} diff --git a/source/global/HEPRandom/include/G4RandomDirection.hh b/source/global/HEPRandom/include/G4RandomDirection.hh index aeac0d12a7..fc0e8616f2 100644 --- a/source/global/HEPRandom/include/G4RandomDirection.hh +++ b/source/global/HEPRandom/include/G4RandomDirection.hh @@ -22,7 +22,7 @@ // // // $Id: G4RandomDirection.hh,v 1.2 2004/11/12 17:38:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/HEPRandom/include/Randomize.hh b/source/global/HEPRandom/include/Randomize.hh index a86646f03b..0611eea3d8 100644 --- a/source/global/HEPRandom/include/Randomize.hh +++ b/source/global/HEPRandom/include/Randomize.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Randomize.hh,v 1.5 2001/07/11 10:00:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: Randomize.hh,v 1.6 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef randomize_h #define randomize_h 1 @@ -38,7 +38,7 @@ #include #include -#define G4RandGauss RandGaussQ -#define G4UniformRand() HepRandom::getTheEngine()->flat() +#define G4RandGauss CLHEP::RandGaussQ +#define G4UniformRand() CLHEP::HepRandom::getTheEngine()->flat() #endif // randomize_h diff --git a/source/global/History b/source/global/History index 04ec563bc9..ccdb08a86d 100644 --- a/source/global/History +++ b/source/global/History @@ -1,4 +1,4 @@ -$Id: History,v 1.144 2005/05/19 07:37:32 gcosmo Exp $ +$Id: History,v 1.153 2005/12/02 15:11:23 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,47 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 02, 2005 G.Cosmo (global-V07-01-06) +- templates.hh: get rid of hard-coded numbers for DBL_MIN, FLT_MIN, DBL_DIG, + DBL_MAX, FLT_DIG, FLT_MAX/MAXFLOAT. Use numeric_limits from instead. + Fix necessary to allow for porting on VC++8 compiler. +- Added unit test LimitsTest.cc. + +Nov 28, 2005 G.Cosmo (global-V07-01-05) +- Changed header file from version.hh to G4Version.hh. + Coworks with tag "run-V07-01-08" +- Fix in G4strstreambuf destructor to avoid double flushing of buffer. + +Nov 09, 2005 G.Cosmo (global-V07-01-04) +- Removed '#undef __DEPRECATED' statement in G4Types.hh for strstream + deprecation by the gcc compiler. +- Added forward declaration for __void__ type to be used for definition of + fake default constructors for usage of direct object persistency. + +Nov 04, 2005 G.Cosmo (global-V07-01-03) +- Support for CLHEP-2.0.X series: + o Introduced explicit usage of 'CLHEP::' and 'HepGeom::' namespaces for + vector and geometry types. + o Added wrapper headers for units and constants to allow for usage in the + global namespace. Units and constants are NOT moved to the CLHEP namespace + in this version. + o Works with both 1.9.X and 2.0.X series of CLHEP. + +Oct 26, 2005 K.Murakami (global-V07-01-02) +- version.hh: modified for the release 8.0 +- G4strstreambuf: revised for migration to sstream + +Oct 04, 2005 G.Cosmo (global-V07-01-01) +- G4Allocator: initialise esplicitely data in copy-ctor. +- G4AllocatorPool: added default dummy argument to ctor + to allow for default-ctor + +Sep 26, 2005 K.Murakami (global-V07-01-00) +- Added version.hh header, including definitions for software versioning. + +Aug 12, 2005 M.Maire +- G4UnitsTable.cc: added Surface/Mass unit (cm2/g). + May 19, 2005 V.Grichine (global-V07-00-06) - Improved accuracy to G4AnalyticalPolSolver for quartic case. diff --git a/source/global/management/include/G4Allocator.hh b/source/global/management/include/G4Allocator.hh index 3e8aae1af8..d2f1de5a83 100644 --- a/source/global/management/include/G4Allocator.hh +++ b/source/global/management/include/G4Allocator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Allocator.hh,v 1.16 2004/11/29 17:53:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Allocator.hh,v 1.17 2005/10/04 13:01:14 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -88,7 +88,7 @@ class G4Allocator typedef const Type& const_reference; template G4Allocator(const G4Allocator& right) throw() - { *this = right; } + : mem(right.mem) {} // Copy constructor pointer address(reference r) const { return &r; } diff --git a/source/global/management/include/G4AllocatorPool.hh b/source/global/management/include/G4AllocatorPool.hh index c7c47ff542..d2926e9bd9 100644 --- a/source/global/management/include/G4AllocatorPool.hh +++ b/source/global/management/include/G4AllocatorPool.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AllocatorPool.hh,v 1.3 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AllocatorPool.hh,v 1.4 2005/10/04 13:01:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------- @@ -49,7 +49,7 @@ class G4AllocatorPool { public: - explicit G4AllocatorPool( unsigned int n ); + explicit G4AllocatorPool( unsigned int n=0 ); // Create a pool of elements of size n ~G4AllocatorPool(); // Destructor. Return storage to the free store diff --git a/source/global/management/include/G4ApplicationState.hh b/source/global/management/include/G4ApplicationState.hh index 7d23dbfdeb..f4bb680b77 100644 --- a/source/global/management/include/G4ApplicationState.hh +++ b/source/global/management/include/G4ApplicationState.hh @@ -22,7 +22,7 @@ // // // $Id: G4ApplicationState.hh,v 1.3 2002/12/04 17:39:50 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4APPLICATIONSTATE_H diff --git a/source/global/management/include/G4DataVector.hh b/source/global/management/include/G4DataVector.hh index 4e4d7835f3..5af98f5c54 100644 --- a/source/global/management/include/G4DataVector.hh +++ b/source/global/management/include/G4DataVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4DataVector.hh,v 1.13 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4DataVector.icc b/source/global/management/include/G4DataVector.icc index 489def0d75..7088789ab4 100644 --- a/source/global/management/include/G4DataVector.icc +++ b/source/global/management/include/G4DataVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4DataVector.icc,v 1.1 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4DataVector inline implementation diff --git a/source/global/management/include/G4ExceptionSeverity.hh b/source/global/management/include/G4ExceptionSeverity.hh index 8de402e552..322d166825 100644 --- a/source/global/management/include/G4ExceptionSeverity.hh +++ b/source/global/management/include/G4ExceptionSeverity.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExceptionSeverity.hh,v 1.2 2002/08/26 14:56:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class Description: // diff --git a/source/global/management/include/G4FastVector.hh b/source/global/management/include/G4FastVector.hh index 02091fbee6..4ab6e8cb58 100644 --- a/source/global/management/include/G4FastVector.hh +++ b/source/global/management/include/G4FastVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastVector.hh,v 1.4 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.hh b/source/global/management/include/G4LPhysicsFreeVector.hh index 8c782b4521..ec3225b2f0 100644 --- a/source/global/management/include/G4LPhysicsFreeVector.hh +++ b/source/global/management/include/G4LPhysicsFreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4LPhysicsFreeVector.hh,v 1.7 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.icc b/source/global/management/include/G4LPhysicsFreeVector.icc index 6d319e95e1..84d67da920 100644 --- a/source/global/management/include/G4LPhysicsFreeVector.icc +++ b/source/global/management/include/G4LPhysicsFreeVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4LPhysicsFreeVector.icc,v 1.6 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4OrderedTable.hh b/source/global/management/include/G4OrderedTable.hh index fa3f7573c9..479538a5db 100644 --- a/source/global/management/include/G4OrderedTable.hh +++ b/source/global/management/include/G4OrderedTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4OrderedTable.hh,v 1.12 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicalConstants.hh b/source/global/management/include/G4PhysicalConstants.hh new file mode 100644 index 0000000000..d44b5e1e6b --- /dev/null +++ b/source/global/management/include/G4PhysicalConstants.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// + +#include "CLHEP/Units/PhysicalConstants.h" + +using CLHEP::pi; +using CLHEP::twopi; +using CLHEP::halfpi; +using CLHEP::pi2; +using CLHEP::Avogadro; +using CLHEP::c_light; +using CLHEP::c_squared; +using CLHEP::h_Planck; +using CLHEP::hbar_Planck; +using CLHEP::hbarc; +using CLHEP::hbarc_squared; +using CLHEP::electron_charge; +using CLHEP::e_squared; +using CLHEP::electron_mass_c2; +using CLHEP::proton_mass_c2; +using CLHEP::neutron_mass_c2; +using CLHEP::amu_c2; +using CLHEP::amu; +using CLHEP::mu0; +using CLHEP::epsilon0; +using CLHEP::elm_coupling; +using CLHEP::fine_structure_const; +using CLHEP::classic_electr_radius; +using CLHEP::electron_Compton_length; +using CLHEP::Bohr_radius; +using CLHEP::alpha_rcl2; +using CLHEP::twopi_mc2_rcl2; +using CLHEP::k_Boltzmann; +using CLHEP::STP_Temperature; +using CLHEP::STP_Pressure; +using CLHEP::kGasThreshold; +using CLHEP::universe_mean_density; + diff --git a/source/global/management/include/G4PhysicsFreeVector.hh b/source/global/management/include/G4PhysicsFreeVector.hh index 8e064a1cca..51a04e82cf 100644 --- a/source/global/management/include/G4PhysicsFreeVector.hh +++ b/source/global/management/include/G4PhysicsFreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsFreeVector.hh,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLinearVector.hh b/source/global/management/include/G4PhysicsLinearVector.hh index 48752e6182..5a41eaeeed 100644 --- a/source/global/management/include/G4PhysicsLinearVector.hh +++ b/source/global/management/include/G4PhysicsLinearVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLinearVector.hh,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLnVector.hh b/source/global/management/include/G4PhysicsLnVector.hh index 43fdeeb1a4..e71ce981d0 100644 --- a/source/global/management/include/G4PhysicsLnVector.hh +++ b/source/global/management/include/G4PhysicsLnVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLnVector.hh,v 1.11 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLogVector.hh b/source/global/management/include/G4PhysicsLogVector.hh index 12eda29fb5..2c69e9d9ca 100644 --- a/source/global/management/include/G4PhysicsLogVector.hh +++ b/source/global/management/include/G4PhysicsLogVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLogVector.hh,v 1.10 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.hh b/source/global/management/include/G4PhysicsOrderedFreeVector.hh index 3e086145aa..df7b127267 100644 --- a/source/global/management/include/G4PhysicsOrderedFreeVector.hh +++ b/source/global/management/include/G4PhysicsOrderedFreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsOrderedFreeVector.hh,v 1.8 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Definition diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.icc b/source/global/management/include/G4PhysicsOrderedFreeVector.icc index 702f52189d..0e20c112f8 100644 --- a/source/global/management/include/G4PhysicsOrderedFreeVector.icc +++ b/source/global/management/include/G4PhysicsOrderedFreeVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsOrderedFreeVector.icc,v 1.7 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Inline Functions Definitions diff --git a/source/global/management/include/G4PhysicsTable.hh b/source/global/management/include/G4PhysicsTable.hh index 8b887b5832..5f3ba1260c 100644 --- a/source/global/management/include/G4PhysicsTable.hh +++ b/source/global/management/include/G4PhysicsTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsTable.hh,v 1.16 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsTable.icc b/source/global/management/include/G4PhysicsTable.icc index 62423dc1d3..0d34ec2dec 100644 --- a/source/global/management/include/G4PhysicsTable.icc +++ b/source/global/management/include/G4PhysicsTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsTable.icc,v 1.7 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsVector.hh b/source/global/management/include/G4PhysicsVector.hh index 0419870b22..05b4aafe47 100644 --- a/source/global/management/include/G4PhysicsVector.hh +++ b/source/global/management/include/G4PhysicsVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.hh,v 1.13 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsVector.icc b/source/global/management/include/G4PhysicsVector.icc index 0ebdabaa6b..fae051efea 100644 --- a/source/global/management/include/G4PhysicsVector.icc +++ b/source/global/management/include/G4PhysicsVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.icc,v 1.8 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsVectorType.hh b/source/global/management/include/G4PhysicsVectorType.hh index 1c894e0ad4..8248490c5d 100644 --- a/source/global/management/include/G4PhysicsVectorType.hh +++ b/source/global/management/include/G4PhysicsVectorType.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVectorType.hh,v 1.3 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/global/management/include/G4ReferenceCountedHandle.hh b/source/global/management/include/G4ReferenceCountedHandle.hh index a70d80a9f3..2d26d402a8 100644 --- a/source/global/management/include/G4ReferenceCountedHandle.hh +++ b/source/global/management/include/G4ReferenceCountedHandle.hh @@ -22,7 +22,7 @@ // // // $Id: G4ReferenceCountedHandle.hh,v 1.14 2001/11/07 09:35:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4ReferenceCountedHandle diff --git a/source/global/management/include/G4RotationMatrix.hh b/source/global/management/include/G4RotationMatrix.hh index 764aa25357..55dfea3aae 100644 --- a/source/global/management/include/G4RotationMatrix.hh +++ b/source/global/management/include/G4RotationMatrix.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RotationMatrix.hh,v 1.3 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RotationMatrix.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -38,6 +38,6 @@ #include "G4ThreeVector.hh" #include -typedef HepRotation G4RotationMatrix; +typedef CLHEP::HepRotation G4RotationMatrix; #endif diff --git a/source/global/management/include/G4SIunits.hh b/source/global/management/include/G4SIunits.hh index 852d08eb69..b14fc4eb9f 100644 --- a/source/global/management/include/G4SIunits.hh +++ b/source/global/management/include/G4SIunits.hh @@ -22,7 +22,7 @@ // // // $Id: G4SIunits.hh,v 1.3 2003/02/05 15:25:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/G4StateManager.hh b/source/global/management/include/G4StateManager.hh index e1a9942cb7..46262a3ffc 100644 --- a/source/global/management/include/G4StateManager.hh +++ b/source/global/management/include/G4StateManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4StateManager.hh,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4StateManager.icc b/source/global/management/include/G4StateManager.icc index 9cce3dc696..bec643a421 100644 --- a/source/global/management/include/G4StateManager.icc +++ b/source/global/management/include/G4StateManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4StateManager.icc,v 1.1 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4String.hh b/source/global/management/include/G4String.hh index 69aa6473b2..f1041dc4d5 100644 --- a/source/global/management/include/G4String.hh +++ b/source/global/management/include/G4String.hh @@ -22,7 +22,7 @@ // // // $Id: G4String.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4String.icc b/source/global/management/include/G4String.icc index dfeffcd37f..81f784a374 100644 --- a/source/global/management/include/G4String.icc +++ b/source/global/management/include/G4String.icc @@ -22,7 +22,7 @@ // // // $Id: G4String.icc,v 1.7 2005/03/16 13:45:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4SystemOfUnits.hh b/source/global/management/include/G4SystemOfUnits.hh new file mode 100644 index 0000000000..5541f6c883 --- /dev/null +++ b/source/global/management/include/G4SystemOfUnits.hh @@ -0,0 +1,137 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// + +#include "CLHEP/Units/SystemOfUnits.h" + +using CLHEP::millimeter; +using CLHEP::millimeter2; +using CLHEP::millimeter3; +using CLHEP::centimeter; +using CLHEP::centimeter2; +using CLHEP::centimeter3; +using CLHEP::meter; +using CLHEP::meter2; +using CLHEP::meter3; +using CLHEP::kilometer; +using CLHEP::kilometer2; +using CLHEP::kilometer3; +using CLHEP::parsec; +using CLHEP::micrometer; +using CLHEP::nanometer; +using CLHEP::angstrom; +using CLHEP::fermi; +using CLHEP::barn; +using CLHEP::millibarn; +using CLHEP::microbarn; +using CLHEP::nanobarn; +using CLHEP::picobarn; +using CLHEP::mm; +using CLHEP::um; +using CLHEP::nm; +using CLHEP::mm2; +using CLHEP::mm3; +using CLHEP::cm; +using CLHEP::cm2; +using CLHEP::cm3; +using CLHEP::m; +using CLHEP::m2; +using CLHEP::m3; +using CLHEP::km; +using CLHEP::km2; +using CLHEP::km3; +using CLHEP::pc; +using CLHEP::radian; +using CLHEP::milliradian; +using CLHEP::degree; +using CLHEP::steradian; +using CLHEP::rad; +using CLHEP::mrad; +using CLHEP::sr; +using CLHEP::deg; +using CLHEP::nanosecond; +using CLHEP::second; +using CLHEP::millisecond; +using CLHEP::microsecond; +using CLHEP::picosecond; +using CLHEP::hertz; +using CLHEP::kilohertz; +using CLHEP::megahertz; +using CLHEP::ns; +using CLHEP::s; +using CLHEP::ms; +using CLHEP::eplus; +using CLHEP::e_SI; +using CLHEP::coulomb; +using CLHEP::megaelectronvolt; +using CLHEP::electronvolt; +using CLHEP::kiloelectronvolt; +using CLHEP::gigaelectronvolt; +using CLHEP::teraelectronvolt; +using CLHEP::petaelectronvolt; +using CLHEP::joule; +using CLHEP::MeV; +using CLHEP::eV; +using CLHEP::keV; +using CLHEP::GeV; +using CLHEP::TeV; +using CLHEP::PeV; +using CLHEP::kilogram; +using CLHEP::gram; +using CLHEP::milligram; +using CLHEP::kg; +using CLHEP::g; +using CLHEP::mg; +using CLHEP::watt; +using CLHEP::newton; +using CLHEP::hep_pascal; +using CLHEP::bar; +using CLHEP::atmosphere; +using CLHEP::ampere; +using CLHEP::milliampere; +using CLHEP::microampere; +using CLHEP::nanoampere; +using CLHEP::megavolt; +using CLHEP::kilovolt; +using CLHEP::volt; +using CLHEP::ohm; +using CLHEP::farad; +using CLHEP::millifarad; +using CLHEP::microfarad; +using CLHEP::nanofarad; +using CLHEP::picofarad; +using CLHEP::weber; +using CLHEP::tesla; +using CLHEP::gauss; +using CLHEP::kilogauss; +using CLHEP::henry; +using CLHEP::kelvin; +using CLHEP::mole; +using CLHEP::becquerel; +using CLHEP::curie; +using CLHEP::gray; +using CLHEP::candela; +using CLHEP::lumen; +using CLHEP::lux; +using CLHEP::perCent; +using CLHEP::perThousand; +using CLHEP::perMillion; diff --git a/source/global/management/include/G4ThreeVector.hh b/source/global/management/include/G4ThreeVector.hh index 1fea5a1541..4ca914c0b0 100644 --- a/source/global/management/include/G4ThreeVector.hh +++ b/source/global/management/include/G4ThreeVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ThreeVector.hh,v 1.3 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ThreeVector.hh,v 1.4 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -37,6 +37,6 @@ #include "globals.hh" #include -typedef Hep3Vector G4ThreeVector; +typedef CLHEP::Hep3Vector G4ThreeVector; #endif diff --git a/source/global/management/include/G4Timer.hh b/source/global/management/include/G4Timer.hh index 4de2bc6e24..b5f48621ce 100644 --- a/source/global/management/include/G4Timer.hh +++ b/source/global/management/include/G4Timer.hh @@ -22,7 +22,7 @@ // // // $Id: G4Timer.hh,v 1.13 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4Timer.icc b/source/global/management/include/G4Timer.icc index ab8aac0c19..b32da8feb0 100644 --- a/source/global/management/include/G4Timer.icc +++ b/source/global/management/include/G4Timer.icc @@ -22,7 +22,7 @@ // // // $Id: G4Timer.icc,v 1.1 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4Tokenizer.hh b/source/global/management/include/G4Tokenizer.hh index c7a3b54019..994ad1a803 100644 --- a/source/global/management/include/G4Tokenizer.hh +++ b/source/global/management/include/G4Tokenizer.hh @@ -22,7 +22,7 @@ // // // $Id: G4Tokenizer.hh,v 1.1 2001/10/11 14:04:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4Types.hh b/source/global/management/include/G4Types.hh index a89c5db3c1..a73887c61f 100644 --- a/source/global/management/include/G4Types.hh +++ b/source/global/management/include/G4Types.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Types.hh,v 1.12 2005/04/22 09:32:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Types.hh,v 1.13 2005/11/09 10:26:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 native types @@ -54,13 +54,6 @@ #define G4DLLIMPORT #endif -// Disable deprecated warnings for usage of strstream on Linux -// architectures with gcc >= 3.0 release -// -#if (__GNUC__>=3) && (__GNUC_MINOR__>=0) - #undef __DEPRECATED -#endif - #include // Typedefs to decouple from library classes @@ -73,4 +66,9 @@ typedef bool G4bool; typedef long G4long; typedef std::complex G4complex; +// Forward declation of void type argument for usage in direct object +// persistency to define fake default constructors +// +class __void__; + #endif /* G4TYPES_HH */ diff --git a/source/global/management/include/G4UnitsTable.hh b/source/global/management/include/G4UnitsTable.hh index 98fd104797..82508ffd1e 100644 --- a/source/global/management/include/G4UnitsTable.hh +++ b/source/global/management/include/G4UnitsTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnitsTable.hh,v 1.16 2005/03/21 16:04:56 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ----------------------------------------------------------------- diff --git a/source/global/management/include/G4UnitsTable.icc b/source/global/management/include/G4UnitsTable.icc index 322bd8b940..3fd746889e 100644 --- a/source/global/management/include/G4UnitsTable.icc +++ b/source/global/management/include/G4UnitsTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4UnitsTable.icc,v 1.1 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4UserLimits.hh b/source/global/management/include/G4UserLimits.hh index d4f8aa9d07..778eb3059f 100644 --- a/source/global/management/include/G4UserLimits.hh +++ b/source/global/management/include/G4UserLimits.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserLimits.hh,v 1.8 2004/01/23 02:23:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // class G4UserLimits diff --git a/source/global/management/include/G4UserLimits.icc b/source/global/management/include/G4UserLimits.icc index 5a4bddb81f..f7d63ca0a3 100644 --- a/source/global/management/include/G4UserLimits.icc +++ b/source/global/management/include/G4UserLimits.icc @@ -22,7 +22,7 @@ // // // $Id: G4UserLimits.icc,v 1.7 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/global/management/include/G4VExceptionHandler.hh b/source/global/management/include/G4VExceptionHandler.hh index 8ef235484a..26db949aa8 100644 --- a/source/global/management/include/G4VExceptionHandler.hh +++ b/source/global/management/include/G4VExceptionHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VExceptionHandler.hh,v 1.1 2002/08/19 18:20:11 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4VStateDependent.hh b/source/global/management/include/G4VStateDependent.hh index fbe76ee03b..0b9a2df9b6 100644 --- a/source/global/management/include/G4VStateDependent.hh +++ b/source/global/management/include/G4VStateDependent.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStateDependent.hh,v 1.4 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4Version.hh b/source/global/management/include/G4Version.hh new file mode 100644 index 0000000000..2aa9adf81d --- /dev/null +++ b/source/global/management/include/G4Version.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4Version.hh,v 1.1 2005/11/28 10:59:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Version information +// +// History: +// 26.09.05 K.Murakami - Created +// + +#ifndef G4VERSION_HH +#define G4VERSION_HH + +// Numbering rule for "G4VERSION_NUMBER": +// - The number is consecutive (i.e. 711) as an integer. +// - The meaning of each digit is as follows; +// +// 711 +// |--> major version number +// |--> minor version number +// |--> patch number + +#ifndef G4VERSION_NUMBER +#define G4VERSION_NUMBER 800 +#endif + +#ifndef G4VERSION_TAG +#define G4VERSION_TAG "$Name: geant4-08-00 $" +#endif + +// as variables + +#include "G4String.hh" + +static const G4String G4Version = "$Name: geant4-08-00 $"; +static const G4String G4Date = "(16-December-2005)"; + +#endif diff --git a/source/global/management/include/G4coutDestination.hh b/source/global/management/include/G4coutDestination.hh index 497fa6ae57..b58c58d884 100644 --- a/source/global/management/include/G4coutDestination.hh +++ b/source/global/management/include/G4coutDestination.hh @@ -22,7 +22,7 @@ // // // $Id: G4coutDestination.hh,v 1.5 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4ios.hh b/source/global/management/include/G4ios.hh index 3f4b92149c..d3ac1caeca 100644 --- a/source/global/management/include/G4ios.hh +++ b/source/global/management/include/G4ios.hh @@ -22,7 +22,7 @@ // // // $Id: G4ios.hh,v 1.9 2004/06/09 07:30:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4strstreambuf.hh b/source/global/management/include/G4strstreambuf.hh index 8aa3038142..048d014472 100644 --- a/source/global/management/include/G4strstreambuf.hh +++ b/source/global/management/include/G4strstreambuf.hh @@ -21,66 +21,59 @@ // ******************************************************************** // // -// $Id: G4strstreambuf.hh,v 1.12 2004/06/09 07:30:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4strstreambuf.hh,v 1.14 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// ==================================================================== // -// -// --------------------------------------------------------------- -// GEANT 4 class header file +// G4strstreambuf // -// G4strstrambuf.hh -// -// --------------------------------------------------------------- -#ifndef G4STRSTREAM_HH -#define G4STRSTREAM_HH +// ==================================================================== +#ifndef G4_STR_STREAM_BUF_HH +#define G4_STR_STREAM_BUF_HH -#include "G4Types.hh" -#include -#include "globals.hh" +#include "globals.hh" #include "G4coutDestination.hh" +#include class G4strstreambuf; #if defined G4IOS_EXPORT - extern G4DLLEXPORT G4strstreambuf G4coutbuf; - extern G4DLLEXPORT G4strstreambuf G4cerrbuf; +extern G4DLLEXPORT G4strstreambuf G4coutbuf; +extern G4DLLEXPORT G4strstreambuf G4cerrbuf; #else - extern G4DLLIMPORT G4strstreambuf G4coutbuf; - extern G4DLLIMPORT G4strstreambuf G4cerrbuf; +extern G4DLLIMPORT G4strstreambuf G4coutbuf; +extern G4DLLIMPORT G4strstreambuf G4cerrbuf; #endif -class G4strstreambuf : public std::streambuf +class G4strstreambuf : public std::basic_streambuf { - - typedef std::streambuf std_streambuf; - public: G4strstreambuf(); ~G4strstreambuf(); + + virtual G4int overflow(G4int c=EOF); + virtual G4int sync(); - inline void SetDestination(G4coutDestination * value); - - inline G4int overflow(G4int c=EOF); - inline G4int sync(); #ifdef WIN32 - inline G4int underflow(); + virtual G4int underflow(); #endif - inline G4int ReceiveString (); - + void SetDestination(G4coutDestination* dest); + G4int ReceiveString (); + private: + char* buffer; + G4int count, size; + G4coutDestination* destination; + + // hidden... G4strstreambuf(const G4strstreambuf&); G4strstreambuf& operator=(const G4strstreambuf&); - - private: - - G4coutDestination * destination; - char* buffer; - G4int count,size; }; #include "G4strstreambuf.icc" #endif + diff --git a/source/global/management/include/G4strstreambuf.icc b/source/global/management/include/G4strstreambuf.icc index 14bbd54463..480bb543d8 100644 --- a/source/global/management/include/G4strstreambuf.icc +++ b/source/global/management/include/G4strstreambuf.icc @@ -21,111 +21,125 @@ // ******************************************************************** // // -// $Id: G4strstreambuf.icc,v 1.10 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4strstreambuf.icc,v 1.12 2005/11/28 10:03:07 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// ==================================================================== +// G4strstreambuf.icc // -// -// --------------------------------------------------------------- -// -// class G4strstreambuf -// inline implementation -// -// --------------------------------------------------------------- +// ==================================================================== -inline -G4strstreambuf::G4strstreambuf() - : destination(0), count(0) +/////////////////////////////////////// +inline G4strstreambuf::G4strstreambuf() + : std::basic_streambuf(), + count(0), destination(0) +/////////////////////////////////////// { - size = 4095; - buffer = new char[size+1]; + size= 4095; + buffer= new char[size+1]; } -inline -G4strstreambuf::~G4strstreambuf() + +//////////////////////////////////////// +inline G4strstreambuf::~G4strstreambuf() +//////////////////////////////////////// { + // flushing buffer... + // std::cout is used because destination object may not be alive. + if(count !=0) std::cout << buffer; + delete [] buffer; } -inline -G4strstreambuf::G4strstreambuf(const G4strstreambuf& right) - : std_streambuf(), destination(right.destination), - buffer(right.buffer), count(right.count), size(right.size) + +////////////////////////////////////////////////////////////////// +inline G4strstreambuf::G4strstreambuf(const G4strstreambuf& right) + : std::basic_streambuf(), + buffer(right.buffer), + count(right.count), size(right.size), + destination(right.destination) +////////////////////////////////////////////////////////////////// { } -inline -G4strstreambuf& G4strstreambuf::operator=(const G4strstreambuf& right) -{ - if (&right==this) { return *this; } - destination = right.destination; - buffer = right.buffer; - count = right.count; - size = right.size; +///////////////////////////////////////////////////////////////////////////// +inline G4strstreambuf& G4strstreambuf::operator=(const G4strstreambuf& right) +///////////////////////////////////////////////////////////////////////////// +{ + if(&right==this) return *this; + + destination= right.destination; + buffer= right.buffer; + count= right.count; + size= right.size; return *this; } -inline -void G4strstreambuf::SetDestination(G4coutDestination * value) -{ - destination = value; -} -inline -G4int G4strstreambuf::overflow(G4int c) +////////////////////////////////////////////// +inline G4int G4strstreambuf::overflow(G4int c) +////////////////////////////////////////////// { - G4int result = 0; - if(count>=size) { result = sync(); } - buffer[count] = c; + G4int result= 0; + if(count>=size) result= sync(); + + buffer[count]= c; count++; - if(c=='\n') - { - result = sync(); - // Fix to overcome a bug on GNU gcc-3.0.X compilers. The return value - // for cout, cerr overflow() function has to be c instead of 0 when - // buffer is flushed for carriage-return. - // - #if (__GNUC__==3) && (__GNUC_MINOR__==0) - if (this == & G4coutbuf || this == & G4cerrbuf) result = c; - #endif - } return result; } -inline -G4int G4strstreambuf::sync() +/////////////////////////////////// +inline G4int G4strstreambuf::sync() +/////////////////////////////////// { buffer[count] = '\0'; - count = 0; - return ReceiveString (); + count= 0; + return ReceiveString(); } + #ifdef WIN32 -inline -G4int G4strstreambuf::underflow() +//////////////////////////////////////// +inline G4int G4strstreambuf::underflow() +//////////////////////////////////////// { return 0; } #endif -inline -G4int G4strstreambuf::ReceiveString () + +/////////////////////////////////////////////////////////////////// +inline void G4strstreambuf::SetDestination(G4coutDestination* dest) +/////////////////////////////////////////////////////////////////// +{ + destination= dest; +} + + +///////////////////////////////////////////// +inline G4int G4strstreambuf::ReceiveString () +///////////////////////////////////////////// { G4String stringToSend(buffer); - G4int result =0; - if(this == & G4coutbuf && destination != 0) { - result = destination->ReceiveG4cout(stringToSend); - } else if(this == & G4cerrbuf && destination != 0) { - result = destination->ReceiveG4cerr(stringToSend); - } else if(this == & G4coutbuf && destination == 0) { + G4int result= 0; + + if(this == &G4coutbuf && destination != 0) { + result= destination-> ReceiveG4cout(stringToSend); + + } else if(this == &G4cerrbuf && destination != 0) { + result= destination-> ReceiveG4cerr(stringToSend); + + } else if(this == &G4coutbuf && destination == 0) { std::cout << stringToSend << std::flush; - result =0; - } else if(this == & G4cerrbuf && destination == 0) { + result= 0; + + } else if(this == &G4cerrbuf && destination == 0) { std::cerr << stringToSend << std::flush; - result =0; + result= 0; } + return result; } diff --git a/source/global/management/include/globals.hh b/source/global/management/include/globals.hh index 9e55d8d405..cab8f85e9b 100644 --- a/source/global/management/include/globals.hh +++ b/source/global/management/include/globals.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: globals.hh,v 1.25 2004/11/12 16:25:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: globals.hh,v 1.26 2005/11/04 08:18:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Global Constants and typedefs @@ -38,7 +38,7 @@ // 26.08.98 J.Allison,E.Tcherniaev - Introduced min/max/sqr/abs functions // 22.09.98 G.Cosmo - Removed min/max/sqr/abs functions and replaced with // inclusion of CLHEP/config/TemplateFunctions.h for CLHEP-1.3 -// 15.12.99 G.Gracia - Included min, max definitions for NT with ISO standard +// 15.12.99 G.Garcia - Included min, max definitions for NT with ISO standard // 15.06.01 G.Cosmo - Removed cbrt() definition #ifndef GLOBALS_HH @@ -64,8 +64,9 @@ // Includes some additional definitions: sqr, G4SwapPtr, G4SwapObj. #include "templates.hh" -// System of Units and Physical Constants -#include +// Includes Physical Constants and System of Units +#include "G4PhysicalConstants.hh" +#include "G4SystemOfUnits.hh" // Global error function #include "G4ExceptionSeverity.hh" diff --git a/source/global/management/include/templates.hh b/source/global/management/include/templates.hh index 5f6f4023f9..353fd49c22 100644 --- a/source/global/management/include/templates.hh +++ b/source/global/management/include/templates.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: templates.hh,v 1.8 2004/11/12 17:38:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: templates.hh,v 1.9 2005/12/02 13:42:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -*- C++ -*- @@ -48,6 +48,8 @@ #ifndef templates_h #define templates_h 1 +#include + // // If HIGH_PRECISION is defined to TRUE (ie. != 0) then the type "Float" // is typedefed to "double". If it is FALSE (ie. 0) it is typedefed @@ -67,39 +69,39 @@ typedef float Float; // and temporarly defined for portability on HP-UX. #ifndef DBL_MIN /* Min decimal value of a double */ -#define DBL_MIN 2.2250738585072014e-308 +#define DBL_MIN std::numeric_limits::min() // 2.2250738585072014e-308 #endif #ifndef DBL_DIG /* Digits of precision of a double */ -#define DBL_DIG 15 +#define DBL_DIG std::numeric_limits::digits10 // 15 #endif #ifndef DBL_MAX /* Max decimal value of a double */ -#define DBL_MAX 1.7976931348623157e+308 +#define DBL_MAX std::numeric_limits::max() // 1.7976931348623157e+308 #endif #ifndef DBL_EPSILON -#define DBL_EPSILON 2.2204460492503131e-16 -#endif +#define DBL_EPSILON std::numeric_limits::epsilon() +#endif // 2.2204460492503131e-16 #ifndef FLT_MIN /* Min decimal value of a float */ -#define FLT_MIN 1.17549435e-38F +#define FLT_MIN std::numeric_limits::min() // 1.17549435e-38F #endif #ifndef FLT_DIG /* Digits of precision of a float */ -#define FLT_DIG 6 +#define FLT_DIG std::numeric_limits::digits10 // 6 #endif #ifndef FLT_MAX /* Max decimal value of a float */ -#define FLT_MAX 3.40282347e+38F +#define FLT_MAX std::numeric_limits::max() // 3.40282347e+38F #endif #ifndef FLT_EPSILON -#define FLT_EPSILON 1.192092896e-07F -#endif +#define FLT_EPSILON std::numeric_limits::epsilon() +#endif // 1.192092896e-07F #ifndef MAXFLOAT /* Max decimal value of a float */ -#define MAXFLOAT 3.40282347e+38F +#define MAXFLOAT std::numeric_limits::max() // 3.40282347e+38F #endif //--------------------------------- diff --git a/source/global/management/src/G4AllocatorPool.cc b/source/global/management/src/G4AllocatorPool.cc index 268deec5bc..79be64b8ce 100644 --- a/source/global/management/src/G4AllocatorPool.cc +++ b/source/global/management/src/G4AllocatorPool.cc @@ -22,7 +22,7 @@ // // // $Id: G4AllocatorPool.cc,v 1.3 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/src/G4DataVector.cc b/source/global/management/src/G4DataVector.cc index 93479bd00f..3cc04c7380 100644 --- a/source/global/management/src/G4DataVector.cc +++ b/source/global/management/src/G4DataVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4DataVector.cc,v 1.7 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4Exception.cc b/source/global/management/src/G4Exception.cc index 8f041a913c..026ab83c5e 100644 --- a/source/global/management/src/G4Exception.cc +++ b/source/global/management/src/G4Exception.cc @@ -22,7 +22,7 @@ // // // $Id: G4Exception.cc,v 1.19 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/src/G4LPhysicsFreeVector.cc b/source/global/management/src/G4LPhysicsFreeVector.cc index 1c30ec4415..c179a9a5d5 100644 --- a/source/global/management/src/G4LPhysicsFreeVector.cc +++ b/source/global/management/src/G4LPhysicsFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4LPhysicsFreeVector.cc,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------------- diff --git a/source/global/management/src/G4OrderedTable.cc b/source/global/management/src/G4OrderedTable.cc index 7d0e7ac4c7..b5d06a5e6a 100644 --- a/source/global/management/src/G4OrderedTable.cc +++ b/source/global/management/src/G4OrderedTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4OrderedTable.cc,v 1.4 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4PhysicsFreeVector.cc b/source/global/management/src/G4PhysicsFreeVector.cc index b39ff93448..eefede3d87 100644 --- a/source/global/management/src/G4PhysicsFreeVector.cc +++ b/source/global/management/src/G4PhysicsFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsFreeVector.cc,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLinearVector.cc b/source/global/management/src/G4PhysicsLinearVector.cc index f6458a3c69..4eed9500a6 100644 --- a/source/global/management/src/G4PhysicsLinearVector.cc +++ b/source/global/management/src/G4PhysicsLinearVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLinearVector.cc,v 1.11 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLnVector.cc b/source/global/management/src/G4PhysicsLnVector.cc index 7925fedca0..1d5bac3ccd 100644 --- a/source/global/management/src/G4PhysicsLnVector.cc +++ b/source/global/management/src/G4PhysicsLnVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLnVector.cc,v 1.14 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLogVector.cc b/source/global/management/src/G4PhysicsLogVector.cc index 729ac25525..f621640d0c 100644 --- a/source/global/management/src/G4PhysicsLogVector.cc +++ b/source/global/management/src/G4PhysicsLogVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLogVector.cc,v 1.12 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsOrderedFreeVector.cc b/source/global/management/src/G4PhysicsOrderedFreeVector.cc index 6b48f67e52..bced7f8feb 100644 --- a/source/global/management/src/G4PhysicsOrderedFreeVector.cc +++ b/source/global/management/src/G4PhysicsOrderedFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsOrderedFreeVector.cc,v 1.9 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Implementation diff --git a/source/global/management/src/G4PhysicsTable.cc b/source/global/management/src/G4PhysicsTable.cc index a76773fc4b..e0a6d88d68 100644 --- a/source/global/management/src/G4PhysicsTable.cc +++ b/source/global/management/src/G4PhysicsTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsTable.cc,v 1.13 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4PhysicsVector.cc b/source/global/management/src/G4PhysicsVector.cc index 22739207c1..f55e7874a2 100644 --- a/source/global/management/src/G4PhysicsVector.cc +++ b/source/global/management/src/G4PhysicsVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.cc,v 1.16 2005/03/15 19:11:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4StateManager.cc b/source/global/management/src/G4StateManager.cc index e97c6b53d6..140396f3a0 100644 --- a/source/global/management/src/G4StateManager.cc +++ b/source/global/management/src/G4StateManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4StateManager.cc,v 1.11 2005/03/15 19:11:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4Timer.cc b/source/global/management/src/G4Timer.cc index 9cdaab14ad..ea3f30c725 100644 --- a/source/global/management/src/G4Timer.cc +++ b/source/global/management/src/G4Timer.cc @@ -22,7 +22,7 @@ // // // $Id: G4Timer.cc,v 1.14 2005/03/15 19:11:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/src/G4UnitsTable.cc b/source/global/management/src/G4UnitsTable.cc index 98efd159ca..ae4a9f2461 100644 --- a/source/global/management/src/G4UnitsTable.cc +++ b/source/global/management/src/G4UnitsTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnitsTable.cc,v 1.26 2005/03/21 18:34:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UnitsTable.cc,v 1.28 2005/08/12 13:36:47 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... // @@ -32,6 +32,7 @@ // 01-03-01: parsec, M.Maire // 06-03-01: migration to STL vectors, G.Cosmo // 06-05-02: BestUnit operator<< flux instead of G4cout (mma) +// 12-08-05: cm2/g ("Surface/Mass") (mma) // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -184,7 +185,7 @@ void G4UnitDefinition::BuildUnitsTable() new G4UnitDefinition( "meter","m" ,"Length",meter); new G4UnitDefinition("centimeter","cm" ,"Length",centimeter); new G4UnitDefinition("millimeter","mm" ,"Length",millimeter); - // new G4UnitDefinition("micrometer","um" ,"Length",micrometer); + //new G4UnitDefinition("micrometer","um" ,"Length",micrometer); new G4UnitDefinition("micrometer","mum" ,"Length",micrometer); new G4UnitDefinition( "nanometer","nm" ,"Length",nanometer); new G4UnitDefinition( "angstrom","Ang" ,"Length",angstrom); @@ -248,6 +249,9 @@ void G4UnitDefinition::BuildUnitsTable() new G4UnitDefinition("mg/cm3","mg/cm3","Volumic Mass",mg/cm3); new G4UnitDefinition("kg/m3", "kg/m3", "Volumic Mass",kg/m3); + //Surface/Mass + new G4UnitDefinition( "cm2/g", "cm2/g","Surface/Mass", cm2/g); + //Power new G4UnitDefinition("watt","W","Power",watt); diff --git a/source/global/management/src/G4VExceptionHandler.cc b/source/global/management/src/G4VExceptionHandler.cc index d92458410f..a00eb14841 100644 --- a/source/global/management/src/G4VExceptionHandler.cc +++ b/source/global/management/src/G4VExceptionHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VExceptionHandler.cc,v 1.2 2005/03/15 19:11:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4VStateDependent.cc b/source/global/management/src/G4VStateDependent.cc index a8941be586..082d6f7091 100644 --- a/source/global/management/src/G4VStateDependent.cc +++ b/source/global/management/src/G4VStateDependent.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStateDependent.cc,v 1.4 2005/03/15 19:11:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4coutDestination.cc b/source/global/management/src/G4coutDestination.cc index 9c325aea7a..a0599174b6 100644 --- a/source/global/management/src/G4coutDestination.cc +++ b/source/global/management/src/G4coutDestination.cc @@ -22,7 +22,7 @@ // // // $Id: G4coutDestination.cc,v 1.1 2005/03/15 19:11:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/src/G4ios.cc b/source/global/management/src/G4ios.cc index 74c6a6c7cc..298427860d 100644 --- a/source/global/management/src/G4ios.cc +++ b/source/global/management/src/G4ios.cc @@ -22,7 +22,7 @@ // // // $Id: G4ios.cc,v 1.8 2004/06/11 14:18:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/graphics_reps/History b/source/graphics_reps/History index 3fc215223a..8aa70c2453 100644 --- a/source/graphics_reps/History +++ b/source/graphics_reps/History @@ -1,4 +1,4 @@ -cvs log $Id: History,v 1.72 2005/05/26 10:34:55 allison Exp $ +cvs log $Id: History,v 1.89 2005/11/10 21:30:13 tinslay Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,59 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10th November 2005 Jane Tinslay (greps-V07-01-09) +- G4VVisManager: Fix Dispatch method name to "DispatchToModel". +- G4Colour: Use public static member functions instead of public + static data members to avoid problems with dynamic libraries. + +10th November 2005 John Allison +- G4VVisManager and G4VGraphicsScene: Replaced default arguments + G4Transform3D::Identity by G4Transform3D(). (This is a avoid + initialisation problems with static objects with dynamic libraries.) + +9th November 2005 Gabriele Cosmo +- Implemented migration to support CLHEP-2.0.X, adding explicit namespace + to CLHEP types. Affected files: HepPolyhedron[.h.cc], BooleanProcessor.src. + +24th October 2005 John Allison (greps-V07-01-08) +- Moved G4VTrajectoryDrawer to modeling (renamed G4VTrajectoryModel). +- G4VVisManager.hh: Changed DispatchToCurrentDrawer to DispatchToCurrentModel. + +21st October 2005 Jane Tinslay (greps-V07-01-07) +- Add G4VTrajectoryDrawer, an abstract base class for trajectory drawers +- Add "DispatchToCurrentDrawer" method to G4VVisManager + +20th October 2005 John Allison (greps-V07-01-06) +- G4Colour.cc: Added #include . + +17th October 2005 Jane Tinslay (greps-V07-01-05) +- intercoms->graphics_reps migration for G4VGraphicsScene and G4VVisManager + +13th October 2005 Jane Tinslay (greps-V07-01-04) +- Additions to G4Colour + o Add static data members for common colours. + o Add G4String->G4Colour colour map. + +3rd October 2005 John Allison +- G4NURBStubesector.cc: Replaced by . + +16th September 2005 John Allison (greps-V07-01-03) +- G4AttCheck.cc: Added time to legal G4AttValues. + +10th August 2005 Gabriele Cosmo (greps-V07-01-02) +- Added Polyhedron description for new G4EllipticalCone shape. + Implementation by D.Anninos (CERN). + Requires tag "geom-specific-V07-01-03" for geometry/solids/specific module. + +5th July 2005 John Allison (greps-V07-01-01) +- Big clean-up: + o Removed redundant intermediate class, G4VVisPrim. + o Removed redundant virtual assignments and similar oddities. + +20th Jun 2005 Gabriele Cosmo (greps-V07-01-00) +- Added Polyhedron description for new G4Ellipsoid shape. + Contribution of G.Guerrieri (INFN Genova). + 26th May 2005 John Allison (greps-V07-00-07) - Fixed bug introduced in greps-V07-00-05. - Removed DEPRECATION of G4Visible::SetVisAttributes(const G4VisAttributes&) diff --git a/source/graphics_reps/include/G4AttCheck.hh b/source/graphics_reps/include/G4AttCheck.hh index 25be495857..b288189d9d 100644 --- a/source/graphics_reps/include/G4AttCheck.hh +++ b/source/graphics_reps/include/G4AttCheck.hh @@ -22,7 +22,7 @@ // // // $Id: G4AttCheck.hh,v 1.5 2005/05/03 17:43:00 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4ATTCHECK_HH #define G4ATTCHECK_HH diff --git a/source/graphics_reps/include/G4AttDef.hh b/source/graphics_reps/include/G4AttDef.hh index ec779ff883..5e3f3a0f76 100644 --- a/source/graphics_reps/include/G4AttDef.hh +++ b/source/graphics_reps/include/G4AttDef.hh @@ -22,7 +22,7 @@ // // // $Id: G4AttDef.hh,v 1.4 2004/11/11 16:39:53 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4ATTDEF_HH #define G4ATTDEF_HH diff --git a/source/graphics_reps/include/G4AttDefStore.hh b/source/graphics_reps/include/G4AttDefStore.hh index 20105d68ef..ff63756389 100644 --- a/source/graphics_reps/include/G4AttDefStore.hh +++ b/source/graphics_reps/include/G4AttDefStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4AttDefStore.hh,v 1.6 2004/06/07 08:54:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4ATTDEFSTORE_HH #define G4ATTDEFSTORE_HH diff --git a/source/graphics_reps/include/G4AttValue.hh b/source/graphics_reps/include/G4AttValue.hh index 248d2f7825..9b38319f4a 100644 --- a/source/graphics_reps/include/G4AttValue.hh +++ b/source/graphics_reps/include/G4AttValue.hh @@ -22,7 +22,7 @@ // // // $Id: G4AttValue.hh,v 1.4 2005/03/22 16:51:34 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4ATTVALUE_HH #define G4ATTVALUE_HH diff --git a/source/graphics_reps/include/G4Circle.hh b/source/graphics_reps/include/G4Circle.hh index c3edae67ac..bb46e33b94 100644 --- a/source/graphics_reps/include/G4Circle.hh +++ b/source/graphics_reps/include/G4Circle.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Circle.hh,v 1.6 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Circle.hh,v 1.7 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 17/11/96. @@ -43,17 +43,10 @@ class G4Circle: public G4VMarker { public: // With description G4Circle (); - G4Circle (const G4Point3D& pos); G4Circle (const G4VMarker& marker); + G4Circle (const G4Point3D& pos); virtual ~G4Circle (); - ////////////////////////////////////////////////////// - // Assignment... - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); - virtual G4VMarker& operator = (const G4VMarker& right); - virtual G4Circle & operator = (const G4Circle& right); - }; #endif diff --git a/source/graphics_reps/include/G4Color.hh b/source/graphics_reps/include/G4Color.hh index a79f3c48ac..74100795e6 100644 --- a/source/graphics_reps/include/G4Color.hh +++ b/source/graphics_reps/include/G4Color.hh @@ -22,7 +22,7 @@ // // // $Id: G4Color.hh,v 1.4 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 20th October 1996 diff --git a/source/graphics_reps/include/G4Colour.hh b/source/graphics_reps/include/G4Colour.hh index a4ec1815b2..ed4794198e 100644 --- a/source/graphics_reps/include/G4Colour.hh +++ b/source/graphics_reps/include/G4Colour.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Colour.hh,v 1.9 2003/09/18 11:03:11 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Colour.hh,v 1.11 2005/11/10 20:34:45 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 20th October 1996 @@ -58,6 +58,8 @@ // G4Colour magenta (1.0, 0.0, 1.0) ; // magenta // G4Colour yellow (1.0, 1.0, 0.0) ; // yellow // +// For convenience, static data members are also defined for the above colours. +// // After instantiation of a G4Colour object, you can access to its components // with the following access functions: // @@ -73,6 +75,9 @@ #include "globals.hh" #include "G4ThreeVector.hh" #include +#include + +using std::map; class G4Colour { friend std::ostream& operator << (std::ostream& os, const G4Colour& c); @@ -91,8 +96,46 @@ public: // With description G4double GetGreen () const; G4double GetBlue () const; G4double GetAlpha () const; // alpha = opacity = 1. - transparency. + + static const G4Colour& White(); + static const G4Colour& Gray(); + static const G4Colour& Grey(); + static const G4Colour& Black(); + static const G4Colour& Red(); + static const G4Colour& Green(); + static const G4Colour& Blue(); + static const G4Colour& Cyan(); + static const G4Colour& Magenta(); + static const G4Colour& Yellow(); + + static void AddToMap(const G4String& key, const G4Colour& colour); + // Add user defined colour to colour map with given key. Standard + // colours are added to map by default. + + static bool GetColour(const G4String& key, G4Colour& result); + // Get colour for given key. Returns false if key doesn't exist + // in colour map, leaving result unchanged. Colour map + // is not sensitive to key case. + private: G4double red, green, blue, alpha; + + static const G4Colour fWhite; + static const G4Colour fGray; + static const G4Colour fGrey; + static const G4Colour fBlack; + static const G4Colour fRed; + static const G4Colour fGreen; + static const G4Colour fBlue; + static const G4Colour fCyan; + static const G4Colour fMagenta; + static const G4Colour fYellow; + + static map fColourMap; + static bool fInitColourMap; + + static void InitialiseColourMap(); + }; inline G4double G4Colour::GetRed () const {return red;} diff --git a/source/graphics_reps/include/G4NURBS.hh b/source/graphics_reps/include/G4NURBS.hh index 1705f5f905..4926b72609 100644 --- a/source/graphics_reps/include/G4NURBS.hh +++ b/source/graphics_reps/include/G4NURBS.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBS.hh,v 1.8 2003/06/16 16:55:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBS.hh,v 1.9 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Olivier Crumeyrolle 12 September 1996 @@ -38,7 +38,7 @@ #define __C_G4NURBS__ 1 #include "globals.hh" -#include "G4VVisPrim.hh" +#include "G4Visible.hh" // The internal floating point type is G4Float, defined line 162 @@ -46,7 +46,7 @@ #include "G4Point3D.hh" #include "G4Vector3D.hh" -class G4NURBS : public G4VVisPrim +class G4NURBS : public G4Visible { public: // NO public constructor. A G4NURBS must be builded with a child class. @@ -62,9 +62,6 @@ class G4NURBS : public G4VVisPrim // destructor. virtual ~G4NURBS(); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); - // direction selector defined as a type because the user will use it // and we want the user to be well-manered. // However internally this typed enum is not as easy to use as it diff --git a/source/graphics_reps/include/G4NURBSbox.hh b/source/graphics_reps/include/G4NURBSbox.hh index d457511f03..757fa47b4d 100644 --- a/source/graphics_reps/include/G4NURBSbox.hh +++ b/source/graphics_reps/include/G4NURBSbox.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBSbox.hh,v 1.7 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBSbox.hh,v 1.8 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -43,8 +43,6 @@ class G4NURBSbox : public G4NURBS { public: G4NURBSbox(G4double DX, G4double DY, G4double DZ); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); const char* Whoami() const; }; diff --git a/source/graphics_reps/include/G4NURBScylinder.hh b/source/graphics_reps/include/G4NURBScylinder.hh index 1466525550..28e31cf991 100644 --- a/source/graphics_reps/include/G4NURBScylinder.hh +++ b/source/graphics_reps/include/G4NURBScylinder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBScylinder.hh,v 1.7 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBScylinder.hh,v 1.8 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -43,8 +43,6 @@ class G4NURBScylinder : public G4NURBS { public: G4NURBScylinder(G4double R, G4double DZ); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); const char* Whoami() const; }; diff --git a/source/graphics_reps/include/G4NURBShexahedron.hh b/source/graphics_reps/include/G4NURBShexahedron.hh index 6259a3d907..83a1cadddd 100644 --- a/source/graphics_reps/include/G4NURBShexahedron.hh +++ b/source/graphics_reps/include/G4NURBShexahedron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBShexahedron.hh,v 1.7 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBShexahedron.hh,v 1.8 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hexa hedron builder prototype // OC 17 9 96 @@ -55,8 +55,6 @@ class G4NURBShexahedron : public G4NURBS public: G4NURBShexahedron(const G4ThreeVector Corners [8]); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); const char* Whoami() const; }; diff --git a/source/graphics_reps/include/G4NURBStube.hh b/source/graphics_reps/include/G4NURBStube.hh index c78bd3d5e7..667a11a3fe 100644 --- a/source/graphics_reps/include/G4NURBStube.hh +++ b/source/graphics_reps/include/G4NURBStube.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBStube.hh,v 1.7 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBStube.hh,v 1.8 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -43,8 +43,6 @@ class G4NURBStube : public G4NURBS { public: G4NURBStube(G4double RMIN, G4double RMAX, G4double DZ); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); const char* Whoami() const; }; #endif diff --git a/source/graphics_reps/include/G4NURBStubesector.hh b/source/graphics_reps/include/G4NURBStubesector.hh index 0dc4c23661..16f2abacde 100644 --- a/source/graphics_reps/include/G4NURBStubesector.hh +++ b/source/graphics_reps/include/G4NURBStubesector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBStubesector.hh,v 1.6 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBStubesector.hh,v 1.7 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -53,8 +53,6 @@ class G4NURBStubesector : public G4NURBS G4NURBStubesector(G4double RMIN, G4double RMAX, G4double DZ, G4double PHI1, G4double PHI2); virtual ~G4NURBStubesector(); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); virtual const char* Whoami() const; protected: diff --git a/source/graphics_reps/include/G4PlacedPolyhedron.hh b/source/graphics_reps/include/G4PlacedPolyhedron.hh index 55645a70d4..333a0c738e 100644 --- a/source/graphics_reps/include/G4PlacedPolyhedron.hh +++ b/source/graphics_reps/include/G4PlacedPolyhedron.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlacedPolyhedron.hh,v 1.10 2003/06/16 16:55:08 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // Class Description: diff --git a/source/graphics_reps/include/G4Point3DList.hh b/source/graphics_reps/include/G4Point3DList.hh index a4d160039d..8c9420ab4c 100644 --- a/source/graphics_reps/include/G4Point3DList.hh +++ b/source/graphics_reps/include/G4Point3DList.hh @@ -22,7 +22,7 @@ // // // $Id: G4Point3DList.hh,v 1.11 2003/06/16 16:55:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/include/G4Polyhedron.hh b/source/graphics_reps/include/G4Polyhedron.hh index dc081a7dd4..2489fdb514 100644 --- a/source/graphics_reps/include/G4Polyhedron.hh +++ b/source/graphics_reps/include/G4Polyhedron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyhedron.hh,v 1.12 2005/03/22 19:18:56 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polyhedron.hh,v 1.16 2005/08/10 08:20:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4POLYHEDRON_HH #define G4POLYHEDRON_HH @@ -65,6 +65,8 @@ // phi,dphi,the,dthe) - create G4Polyhedron for Sphere; // G4PolyhedronTorus(rmin,rmax,rtor, // phi,dphi) - create G4Polyhedron for Torus; +// G4PolyhedronEllipsoid(dx,dy,dz, +// zcut1,zcut2) - create G4Polyhedron for Ellipsoid; // // Public functions inherited from HepPolyhedron (this list might be // incomplete): @@ -99,27 +101,21 @@ // (NumberOfRotationSteps is also called number of sides per circle or // line segments per circle - see // /vis/viewer/set/lineSegmentsPerCircle.) +// 20.06.05 G.Cosmo +// - Added G4PolyhedronEllipsoid. #include "globals.hh" #include "HepPolyhedron.h" -#include "G4VVisPrim.hh" +#include "G4Visible.hh" -class G4Polyhedron : public HepPolyhedron, public G4VVisPrim { +class G4Polyhedron : public HepPolyhedron, public G4Visible { public: G4Polyhedron (); - virtual ~G4Polyhedron (); - G4Polyhedron (const G4Polyhedron& from); G4Polyhedron (const HepPolyhedron& from); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } - G4Polyhedron& operator = (const G4Polyhedron& from); + // Use compiler defaults for copy contructor and assignment. (They + // invoke their counterparts in HepPolyhedron and G4Visible.) + virtual ~G4Polyhedron (); + G4int GetNumberOfRotationStepsAtTimeOfCreation() const { return fNumberOfRotationStepsAtTimeOfCreation; } @@ -131,15 +127,6 @@ class G4PolyhedronBox: public G4Polyhedron { public: G4PolyhedronBox (G4double dx, G4double dy, G4double dz); virtual ~G4PolyhedronBox (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronCone: public G4Polyhedron { @@ -147,15 +134,6 @@ public: G4PolyhedronCone (G4double Rmn1, G4double Rmx1, G4double Rmn2, G4double Rmx2, G4double Dz); virtual ~G4PolyhedronCone (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronCons: public G4Polyhedron { @@ -164,15 +142,6 @@ public: G4double Rmn2, G4double Rmx2, G4double Dz, G4double Phi1, G4double Dphi); virtual ~G4PolyhedronCons (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronPara: public G4Polyhedron { @@ -180,15 +149,6 @@ public: G4PolyhedronPara (G4double Dx, G4double Dy, G4double Dz, G4double Alpha, G4double Theta, G4double Phi); virtual ~G4PolyhedronPara (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronPcon: public G4Polyhedron { @@ -198,15 +158,6 @@ public: const G4double *rmin, const G4double *rmax); virtual ~G4PolyhedronPcon (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronPgon: public G4Polyhedron { @@ -216,15 +167,6 @@ public: const G4double *rmin, const G4double *rmax); virtual ~G4PolyhedronPgon (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronSphere: public G4Polyhedron { @@ -233,15 +175,6 @@ public: G4double phi, G4double dphi, G4double the, G4double dthe); virtual ~G4PolyhedronSphere (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronTorus: public G4Polyhedron { @@ -249,15 +182,6 @@ public: G4PolyhedronTorus (G4double rmin, G4double rmax, G4double rtor, G4double phi, G4double dphi); virtual ~G4PolyhedronTorus (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronTrap: public G4Polyhedron { @@ -268,15 +192,6 @@ public: G4double Dy2, G4double Dx3, G4double Dx4, G4double Alp2); virtual ~G4PolyhedronTrap (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronTrd1: public G4Polyhedron { @@ -284,15 +199,6 @@ public: G4PolyhedronTrd1 (G4double Dx1, G4double Dx2, G4double Dy, G4double Dz); virtual ~G4PolyhedronTrd1 (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronTrd2: public G4Polyhedron { @@ -300,30 +206,12 @@ public: G4PolyhedronTrd2 (G4double Dx1, G4double Dx2, G4double Dy1, G4double Dy2, G4double Dz); virtual ~G4PolyhedronTrd2 (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronTube: public G4Polyhedron { public: G4PolyhedronTube (G4double Rmin, G4double Rmax, G4double Dz); virtual ~G4PolyhedronTube (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class G4PolyhedronTubs: public G4Polyhedron { @@ -331,15 +219,20 @@ public: G4PolyhedronTubs (G4double Rmin, G4double Rmax, G4double Dz, G4double Phi1, G4double Dphi); virtual ~G4PolyhedronTubs (); - virtual G4Visible& operator = (const G4Visible& from) { - return G4Visible::operator = (from); - } - virtual G4VVisPrim& operator = (const G4VVisPrim& from) { - return G4VVisPrim::operator = (from); - } - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } +}; + +class G4PolyhedronEllipsoid : public G4Polyhedron { + public: + G4PolyhedronEllipsoid(G4double dx, G4double dy, G4double dz, + G4double zcut1, G4double zcut2); + virtual ~G4PolyhedronEllipsoid (); +}; + +class G4PolyhedronEllipticalCone : public G4Polyhedron { + public: + G4PolyhedronEllipticalCone(G4double dx, G4double dy, G4double z, + G4double zcut1); + virtual ~G4PolyhedronEllipticalCone (); }; #endif /* G4POLYHEDRON_HH */ diff --git a/source/graphics_reps/include/G4Polyline.hh b/source/graphics_reps/include/G4Polyline.hh index ef85a45ec3..033d77c96d 100644 --- a/source/graphics_reps/include/G4Polyline.hh +++ b/source/graphics_reps/include/G4Polyline.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyline.hh,v 1.10 2003/06/16 16:55:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polyline.hh,v 1.11 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison July 1995 @@ -37,12 +37,12 @@ #ifndef G4POLYLINE_HH #define G4POLYLINE_HH -#include "G4VVisPrim.hh" +#include "G4Visible.hh" #include "G4Point3DList.hh" #include "G4Transform3D.hh" -class G4Polyline: public G4VVisPrim, public G4Point3DList { +class G4Polyline: public G4Visible, public G4Point3DList { friend std::ostream& operator << (std::ostream& os, const G4Polyline& line); @@ -51,11 +51,7 @@ public: // With description typedef G4Point3DList::iterator iterator; G4Polyline (); - G4Polyline (const G4VVisPrim& prim); virtual ~G4Polyline (); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); - virtual G4Polyline& operator = (const G4Polyline& right); G4Polyline& transform (const G4Transform3D&); }; diff --git a/source/graphics_reps/include/G4Polymarker.hh b/source/graphics_reps/include/G4Polymarker.hh index c505ed6e2f..27c275d1f5 100644 --- a/source/graphics_reps/include/G4Polymarker.hh +++ b/source/graphics_reps/include/G4Polymarker.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polymarker.hh,v 1.9 2004/11/11 16:41:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polymarker.hh,v 1.10 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison November 1996 @@ -46,10 +46,6 @@ public: // With description enum MarkerType {dots, circles, squares}; G4Polymarker (); virtual ~G4Polymarker (); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); - virtual G4VMarker& operator = (const G4VMarker& right); - virtual G4Polymarker& operator = (const G4Polymarker& right); MarkerType GetMarkerType () const; void SetMarkerType (MarkerType type); private: diff --git a/source/graphics_reps/include/G4Polymarker.icc b/source/graphics_reps/include/G4Polymarker.icc index 3d244ca4ed..d48ffaca34 100644 --- a/source/graphics_reps/include/G4Polymarker.icc +++ b/source/graphics_reps/include/G4Polymarker.icc @@ -22,7 +22,7 @@ // // // $Id: G4Polymarker.icc,v 1.3 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/include/G4Scale.hh b/source/graphics_reps/include/G4Scale.hh index a1d7f18fe7..bee9f401e9 100644 --- a/source/graphics_reps/include/G4Scale.hh +++ b/source/graphics_reps/include/G4Scale.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scale.hh,v 1.5 2002/11/27 12:24:01 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Scale.hh,v 1.6 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 21st July 2001. @@ -60,12 +60,7 @@ public: // With description // Uses compiler-generated copy constructor. - virtual ~G4Scale (); - - virtual G4Visible& operator = (const G4Visible& from); - virtual G4VVisPrim& operator = (const G4VVisPrim& from); - virtual G4VMarker& operator = (const G4VMarker& from); - virtual G4Scale& operator = (const G4Scale& from); + ~G4Scale (); G4double GetLength() const; const G4String& GetAnnotation() const; diff --git a/source/graphics_reps/include/G4Scale.icc b/source/graphics_reps/include/G4Scale.icc index d8b21ea98e..2569e631d2 100644 --- a/source/graphics_reps/include/G4Scale.icc +++ b/source/graphics_reps/include/G4Scale.icc @@ -22,7 +22,7 @@ // // // $Id: G4Scale.icc,v 1.2 2001/07/24 21:41:42 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 21st July 2001. diff --git a/source/graphics_reps/include/G4Square.hh b/source/graphics_reps/include/G4Square.hh index 3c581a6d31..7b926780f3 100644 --- a/source/graphics_reps/include/G4Square.hh +++ b/source/graphics_reps/include/G4Square.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Square.hh,v 1.5 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Square.hh,v 1.6 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 17/11/96. @@ -45,14 +45,7 @@ public: // With description G4Square (); G4Square (const G4Point3D& pos); G4Square (const G4VMarker& marker); - virtual ~G4Square (); - - ////////////////////////////////////////////////////// - // Assignment... - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); - virtual G4VMarker& operator = (const G4VMarker& right); - virtual G4Square& operator = (const G4Square& right); + ~G4Square (); }; diff --git a/source/graphics_reps/include/G4Square.icc b/source/graphics_reps/include/G4Square.icc index 1563bed865..2059a2f813 100644 --- a/source/graphics_reps/include/G4Square.icc +++ b/source/graphics_reps/include/G4Square.icc @@ -22,7 +22,7 @@ // // // $Id: G4Square.icc,v 1.3 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Text.hh b/source/graphics_reps/include/G4Text.hh index e16e4c0dad..bcf1b3a5a2 100644 --- a/source/graphics_reps/include/G4Text.hh +++ b/source/graphics_reps/include/G4Text.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Text.hh,v 1.7 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Text.hh,v 1.8 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 17/11/96. @@ -76,12 +76,7 @@ public: // With description G4Text (const G4String& text); G4Text (const G4String& text, const G4Point3D& pos); G4Text (const G4VMarker& marker); - virtual ~G4Text (); - - virtual G4Visible& operator = (const G4Visible& from); - virtual G4VVisPrim& operator = (const G4VVisPrim& from); - virtual G4VMarker& operator = (const G4VMarker& from); - virtual G4Text& operator = (const G4Text& from); + ~G4Text (); G4String GetText () const; Layout GetLayout () const; diff --git a/source/graphics_reps/include/G4Text.icc b/source/graphics_reps/include/G4Text.icc index 8755177343..10019a68f8 100644 --- a/source/graphics_reps/include/G4Text.icc +++ b/source/graphics_reps/include/G4Text.icc @@ -22,7 +22,7 @@ // // // $Id: G4Text.icc,v 1.3 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 17/11/96. diff --git a/source/intercoms/include/G4VGraphicsScene.hh b/source/graphics_reps/include/G4VGraphicsScene.hh similarity index 96% rename from source/intercoms/include/G4VGraphicsScene.hh rename to source/graphics_reps/include/G4VGraphicsScene.hh index 94e68926fb..f2d608e58f 100644 --- a/source/intercoms/include/G4VGraphicsScene.hh +++ b/source/graphics_reps/include/G4VGraphicsScene.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VGraphicsScene.hh,v 1.12 2005/05/03 17:34:44 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VGraphicsScene.hh,v 1.5 2005/11/10 15:39:16 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // John Allison 19th July 1996 // // Class Description: @@ -42,6 +42,7 @@ class G4Tubs; class G4Trd; class G4Trap; class G4Sphere; +class G4Ellipsoid; class G4Para; class G4Torus; class G4PhysicalVolumeModel; @@ -114,7 +115,7 @@ public: // With description // number of calls the have the same transformation. virtual void BeginPrimitives - (const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + (const G4Transform3D& objectTransformation = G4Transform3D()) = 0; // objectTransformation is the transformation in the world // coordinate system of the object about to be added. diff --git a/source/graphics_reps/include/G4VMarker.hh b/source/graphics_reps/include/G4VMarker.hh index 1bd4c07c51..e821487da4 100644 --- a/source/graphics_reps/include/G4VMarker.hh +++ b/source/graphics_reps/include/G4VMarker.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VMarker.hh,v 1.9 2003/06/16 16:55:12 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VMarker.hh,v 1.10 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4VMarker - base class for markers - circles, squares, etc. @@ -81,12 +81,12 @@ #define G4VMARKER_HH #include "globals.hh" -#include "G4VVisPrim.hh" +#include "G4Visible.hh" #include "G4Point3D.hh" #include "G4Colour.hh" #include "G4Color.hh" -class G4VMarker: public G4VVisPrim { +class G4VMarker: public G4Visible { friend std::ostream& operator << (std::ostream& os, const G4VMarker& marker); @@ -97,19 +97,12 @@ public: // With description ////////////////////////////////////////////////////// // Constructors... G4VMarker (); - G4VMarker (const G4VMarker& marker); G4VMarker (const G4Point3D& pos); ////////////////////////////////////////////////////// // Destructor... virtual ~G4VMarker (); - ////////////////////////////////////////////////////// - // Assignment... - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); - virtual G4VMarker& operator = (const G4VMarker& right); - ////////////////////////////////////////////////////// // Logical... G4bool operator != (const G4VMarker&) const; diff --git a/source/graphics_reps/include/G4VMarker.icc b/source/graphics_reps/include/G4VMarker.icc index d7ee363c40..24230040da 100644 --- a/source/graphics_reps/include/G4VMarker.icc +++ b/source/graphics_reps/include/G4VMarker.icc @@ -22,7 +22,7 @@ // // // $Id: G4VMarker.icc,v 1.6 2001/07/11 10:01:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4VVisManager.hh b/source/graphics_reps/include/G4VVisManager.hh similarity index 85% rename from source/intercoms/include/G4VVisManager.hh rename to source/graphics_reps/include/G4VVisManager.hh index 2d20ce9ca8..350451a3f6 100644 --- a/source/intercoms/include/G4VVisManager.hh +++ b/source/graphics_reps/include/G4VVisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VVisManager.hh,v 1.10 2005/05/03 17:32:18 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VVisManager.hh,v 1.8 2005/11/10 21:30:13 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // John Allison 19/Oct/1996. // // Class Description: @@ -107,28 +107,28 @@ public: // With description // for representing hits, digis, etc. virtual void Draw (const G4Circle&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4NURBS&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4Polyhedron&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4Polyline&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4Polymarker&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4Scale&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4Square&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4Text&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; /////////////////////////////////////////////////////////////////////// // Draw methods for Geant4 Objects as if they were Visualization @@ -144,13 +144,13 @@ public: // With description // the trajectory. See, e.g., G4VTrajectory::DrawTrajectory. virtual void Draw (const G4LogicalVolume&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4VPhysicalVolume&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; virtual void Draw (const G4VSolid&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity) = 0; + const G4Transform3D& objectTransformation = G4Transform3D()) = 0; ////////////////////////////////////////////////////////////////////// // Other methods... @@ -158,6 +158,9 @@ public: // With description virtual void GeometryHasChanged () = 0; // This is used by the run manager to notify a change of geometry. + virtual void DispatchToModel(const G4VTrajectory&, G4int i_mode = 0) = 0; + // Draw the trajectory. + protected: static void SetConcreteInstance (G4VVisManager*); diff --git a/source/graphics_reps/include/G4VisAttributes.hh b/source/graphics_reps/include/G4VisAttributes.hh index b64749ae3b..14b04ba273 100644 --- a/source/graphics_reps/include/G4VisAttributes.hh +++ b/source/graphics_reps/include/G4VisAttributes.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.hh,v 1.14 2005/03/22 16:48:18 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 23rd October 1996 diff --git a/source/graphics_reps/include/G4VisAttributes.icc b/source/graphics_reps/include/G4VisAttributes.icc index affff8e5bd..ceb75f1f7e 100644 --- a/source/graphics_reps/include/G4VisAttributes.icc +++ b/source/graphics_reps/include/G4VisAttributes.icc @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.icc,v 1.8 2005/03/22 16:48:18 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 18th November 1996 diff --git a/source/graphics_reps/include/G4VisExtent.hh b/source/graphics_reps/include/G4VisExtent.hh index c1a376f881..f4148cd6e7 100644 --- a/source/graphics_reps/include/G4VisExtent.hh +++ b/source/graphics_reps/include/G4VisExtent.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisExtent.hh,v 1.9 2005/02/19 22:00:11 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // A.Walkden 28/11/95 diff --git a/source/graphics_reps/include/G4Visible.hh b/source/graphics_reps/include/G4Visible.hh index 08f8b97de6..4fed4ced7c 100644 --- a/source/graphics_reps/include/G4Visible.hh +++ b/source/graphics_reps/include/G4Visible.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Visible.hh,v 1.8 2003/06/16 16:55:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Visible.hh,v 1.9 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 30th October 1996 @@ -50,14 +50,10 @@ class G4Visible { public: // With description G4Visible (); - G4Visible (const G4Visible& visible); G4Visible (const G4VisAttributes* pVA); virtual ~G4Visible (); - virtual G4Visible& operator = (const G4Visible& right); - virtual G4bool operator == (const G4Visible& right) const; - const G4VisAttributes* GetVisAttributes () const; void SetVisAttributes (const G4VisAttributes* pVA); @@ -70,6 +66,9 @@ public: // With description // associated G4VisAttributes object would normally also be created // on the heap and managed in the same way. + G4bool operator != (const G4Visible& right) const; + // Simple test on non-equality of address of vis attributes. + protected: const G4VisAttributes* fpVisAttributes; diff --git a/source/graphics_reps/include/G4Visible.icc b/source/graphics_reps/include/G4Visible.icc index 44520f0b65..fc4132d2c4 100644 --- a/source/graphics_reps/include/G4Visible.icc +++ b/source/graphics_reps/include/G4Visible.icc @@ -21,22 +21,12 @@ // ******************************************************************** // // -// $Id: G4Visible.icc,v 1.5 2005/03/09 16:37:25 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Visible.icc,v 1.6 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 30th October 1996 -inline G4Visible::G4Visible (): fpVisAttributes (0) {} - -inline G4Visible::G4Visible (const G4Visible& visible): - fpVisAttributes (visible.fpVisAttributes) -{} - -inline G4Visible::G4Visible (const G4VisAttributes* pVA): - fpVisAttributes (pVA) -{} - inline const G4VisAttributes* G4Visible::GetVisAttributes () const { return fpVisAttributes; } diff --git a/source/graphics_reps/include/HepPolyhedron.h b/source/graphics_reps/include/HepPolyhedron.h index 9fd979450d..7ffe2ed44b 100644 --- a/source/graphics_reps/include/HepPolyhedron.h +++ b/source/graphics_reps/include/HepPolyhedron.h @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: HepPolyhedron.h,v 1.15 2005/03/22 16:42:52 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HepPolyhedron.h,v 1.20 2005/11/09 07:32:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class Description: @@ -38,29 +38,31 @@ // HepPolyhedronBox (dx,dy,dz) // - create polyhedron for Box; // HepPolyhedronTrd1 (dx1,dx2,dy,dz) -// - create polyhedron for G3 Trd1; +// - create polyhedron for Trd1; // HepPolyhedronTrd2 (dx1,dx2,dy1,dy2,dz) -// - create polyhedron for G3 Trd2; +// - create polyhedron for Trd2; // HepPolyhedronTrap (dz,theta,phi, h1,bl1,tl1,alp1, h2,bl2,tl2,alp2) -// - create polyhedron for G3 Trap; +// - create polyhedron for Trap; // HepPolyhedronPara (dx,dy,dz,alpha,theta,phi) -// - create polyhedron for G3 Para; +// - create polyhedron for Para; // HepPolyhedronTube (rmin,rmax,dz) -// - create polyhedron for G3 Tube; +// - create polyhedron for Tube; // HepPolyhedronTubs (rmin,rmax,dz,phi1,dphi) -// - create polyhedron for G3 Tubs; +// - create polyhedron for Tubs; // HepPolyhedronCone (rmin1,rmax1,rmin2,rmax2,dz) -// - create polyhedron for G3 Cone; +// - create polyhedron for Cone; // HepPolyhedronCons (rmin1,rmax1,rmin2,rmax2,dz,phi1,dphi) -// - create polyhedron for G3 Cons; +// - create polyhedron for Cons; // HepPolyhedronPgon (phi,dphi,npdv,nz, z(*),rmin(*),rmax(*)) -// - create polyhedron for G3 Pgon; +// - create polyhedron for Pgon; // HepPolyhedronPcon (phi,dphi,nz, z(*),rmin(*),rmax(*)) -// - create polyhedron for G3 Pcon; +// - create polyhedron for Pcon; // HepPolyhedronSphere (rmin,rmax,phi,dphi,the,dthe) // - create polyhedron for Sphere; // HepPolyhedronTorus (rmin,rmax,rtor,phi,dphi) // - create polyhedron for Torus; +// HepPolyhedronEllipsoid (dx,dy,dz,zcut1,zcut2) +// - create polyhedron for Ellipsoid; // Public functions: // // GetNoVertices () - returns number of vertices; @@ -156,11 +158,15 @@ // 06.03.05 J.Allison // - added IsErrorBooleanProcess // +// 20.06.05 G.Cosmo +// - added HepPolyhedronEllipsoid +// #ifndef HEP_POLYHEDRON_HH #define HEP_POLYHEDRON_HH #include +#include #ifndef DEFAULT_NUMBER_OF_STEPS #define DEFAULT_NUMBER_OF_STEPS 24 @@ -176,7 +182,7 @@ class G4Facet { public: G4Facet(int v1=0, int f1=0, int v2=0, int f2=0, - int v3=0, int f3=0, int v4=0, int f4=0) + int v3=0, int f3=0, int v4=0, int f4=0) { edge[0].v=v1; edge[0].f=f1; edge[1].v=v2; edge[1].f=f2; edge[2].v=v3; edge[2].f=f3; edge[3].v=v4; edge[3].f=f4; } }; @@ -187,7 +193,7 @@ class HepPolyhedron { protected: static int fNumberOfRotationSteps; int nvert, nface; - HepPoint3D *pV; + HepGeom::Point3D *pV; G4Facet *pF; // Re-allocate memory for HepPolyhedron @@ -197,7 +203,7 @@ class HepPolyhedron { int FindNeighbour(int iFace, int iNode, int iOrder) const; // Find normal at node - HepNormal3D FindNodeNormal(int iFace, int iNode) const; + HepGeom::Normal3D FindNodeNormal(int iFace, int iNode) const; // Create HepPolyhedron for prism with quadrilateral base void CreatePrism(); @@ -235,7 +241,7 @@ class HepPolyhedron { virtual ~HepPolyhedron() { delete [] pV; delete [] pF; } // Assignment - virtual HepPolyhedron & operator=(const HepPolyhedron & from); + HepPolyhedron & operator=(const HepPolyhedron & from); // Get number of vertices int GetNoVertices() const { return nvert; } @@ -244,58 +250,60 @@ class HepPolyhedron { int GetNoFacets() const { return nface; } // Transform the polyhedron - HepPolyhedron & Transform(const HepTransform3D & t); + HepPolyhedron & Transform(const HepGeom::Transform3D & t); // Get next vertex index of the quadrilateral bool GetNextVertexIndex(int & index, int & edgeFlag) const; // Get vertex by index - HepPoint3D GetVertex(int index) const; + HepGeom::Point3D GetVertex(int index) const; // Get next vertex + edge visibility of the quadrilateral - bool GetNextVertex(HepPoint3D & vertex, int & edgeFlag) const; + bool GetNextVertex(HepGeom::Point3D & vertex, int & edgeFlag) const; // Get next vertex + edge visibility + normal of the quadrilateral - bool GetNextVertex(HepPoint3D & vertex, int & edgeFlag, - HepNormal3D & normal) const; + bool GetNextVertex(HepGeom::Point3D & vertex, int & edgeFlag, + HepGeom::Normal3D & normal) const; // Get indeces of the next edge with indeces of the faces bool GetNextEdgeIndeces(int & i1, int & i2, int & edgeFlag, - int & iface1, int & iface2) const; + int & iface1, int & iface2) const; // Get indeces of the next edge bool GetNextEdgeIndeces(int & i1, int & i2, int & edgeFlag) const; // Get next edge - bool GetNextEdge(HepPoint3D &p1, HepPoint3D &p2, int &edgeFlag) const; + bool GetNextEdge(HepGeom::Point3D &p1, + HepGeom::Point3D &p2, int &edgeFlag) const; // Get next edge - bool GetNextEdge(HepPoint3D &p1, HepPoint3D &p2, int &edgeFlag, - int &iface1, int &iface2) const; + bool GetNextEdge(HepGeom::Point3D &p1, + HepGeom::Point3D &p2, int &edgeFlag, + int &iface1, int &iface2) const; // Get face by index void GetFacet(int iFace, int &n, int *iNodes, - int *edgeFlags = 0, int *iFaces = 0) const; + int *edgeFlags = 0, int *iFaces = 0) const; // Get face by index - void GetFacet(int iFace, int &n, HepPoint3D *nodes, - int *edgeFlags = 0, HepNormal3D *normals = 0) const; + void GetFacet(int iFace, int &n, HepGeom::Point3D *nodes, + int *edgeFlags=0, HepGeom::Normal3D *normals=0) const; // Get next face with normals at the nodes - bool GetNextFacet(int &n, HepPoint3D *nodes, - int *edgeFlags=0, HepNormal3D *normals=0) const; + bool GetNextFacet(int &n, HepGeom::Point3D *nodes, int *edgeFlags=0, + HepGeom::Normal3D *normals=0) const; // Get normal of the face given by index - HepNormal3D GetNormal(int iFace) const; + HepGeom::Normal3D GetNormal(int iFace) const; // Get unit normal of the face given by index - HepNormal3D GetUnitNormal(int iFace) const; + HepGeom::Normal3D GetUnitNormal(int iFace) const; // Get normal of the next face - bool GetNextNormal(HepNormal3D &normal) const; + bool GetNextNormal(HepGeom::Normal3D &normal) const; // Get normal of unit length of the next face - bool GetNextUnitNormal(HepNormal3D &normal) const; + bool GetNextUnitNormal(HepGeom::Normal3D &normal) const; // Boolean operations HepPolyhedron add(const HepPolyhedron &p) const; @@ -329,7 +337,7 @@ class HepPolyhedron { * @return status of the operation - is non-zero in case of problem */ int createTwistedTrap(double Dz, - const double xy1[][2], const double xy2[][2]); + const double xy1[][2], const double xy2[][2]); /** * Creates user defined polyhedron. @@ -349,134 +357,98 @@ class HepPolyhedron { * @return status of the operation - is non-zero in case of problem */ int createPolyhedron(int Nnodes, int Nfaces, - const double xyz[][3], const int faces[][4]); + const double xyz[][3], const int faces[][4]); }; class HepPolyhedronTrd2 : public HepPolyhedron { public: HepPolyhedronTrd2(double Dx1, double Dx2, - double Dy1, double Dy2, double Dz); + double Dy1, double Dy2, double Dz); virtual ~HepPolyhedronTrd2(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronTrd1 : public HepPolyhedronTrd2 { public: HepPolyhedronTrd1(double Dx1, double Dx2, - double Dy, double Dz); + double Dy, double Dz); virtual ~HepPolyhedronTrd1(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronBox : public HepPolyhedronTrd2 { public: HepPolyhedronBox(double Dx, double Dy, double Dz); virtual ~HepPolyhedronBox(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronTrap : public HepPolyhedron { public: HepPolyhedronTrap(double Dz, double Theta, double Phi, - double Dy1, - double Dx1, double Dx2, double Alp1, - double Dy2, - double Dx3, double Dx4, double Alp2); + double Dy1, + double Dx1, double Dx2, double Alp1, + double Dy2, + double Dx3, double Dx4, double Alp2); virtual ~HepPolyhedronTrap(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronPara : public HepPolyhedronTrap { public: HepPolyhedronPara(double Dx, double Dy, double Dz, - double Alpha, double Theta, double Phi); + double Alpha, double Theta, double Phi); virtual ~HepPolyhedronPara(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronCons : public HepPolyhedron { public: HepPolyhedronCons(double Rmn1, double Rmx1, - double Rmn2, double Rmx2, double Dz, - double Phi1, double Dphi); + double Rmn2, double Rmx2, double Dz, + double Phi1, double Dphi); virtual ~HepPolyhedronCons(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronCone : public HepPolyhedronCons { public: HepPolyhedronCone(double Rmn1, double Rmx1, - double Rmn2, double Rmx2, double Dz); + double Rmn2, double Rmx2, double Dz); virtual ~HepPolyhedronCone(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronTubs : public HepPolyhedronCons { public: HepPolyhedronTubs(double Rmin, double Rmax, double Dz, - double Phi1, double Dphi); + double Phi1, double Dphi); virtual ~HepPolyhedronTubs(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronTube : public HepPolyhedronCons { public: HepPolyhedronTube (double Rmin, double Rmax, double Dz); virtual ~HepPolyhedronTube(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronPgon : public HepPolyhedron { public: HepPolyhedronPgon(double phi, double dphi, int npdv, int nz, - const double *z, - const double *rmin, - const double *rmax); + const double *z, + const double *rmin, + const double *rmax); virtual ~HepPolyhedronPgon(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronPcon : public HepPolyhedronPgon { public: HepPolyhedronPcon(double phi, double dphi, int nz, - const double *z, - const double *rmin, - const double *rmax); + const double *z, + const double *rmin, + const double *rmax); virtual ~HepPolyhedronPcon(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronSphere : public HepPolyhedron { public: HepPolyhedronSphere(double rmin, double rmax, - double phi, double dphi, - double the, double dthe); + double phi, double dphi, + double the, double dthe); virtual ~HepPolyhedronSphere(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } }; class HepPolyhedronTorus : public HepPolyhedron { @@ -484,9 +456,20 @@ public: HepPolyhedronTorus(double rmin, double rmax, double rtor, double phi, double dphi); virtual ~HepPolyhedronTorus(); - virtual HepPolyhedron& operator = (const HepPolyhedron& from) { - return HepPolyhedron::operator = (from); - } +}; + +class HepPolyhedronEllipsoid : public HepPolyhedron { +public: + HepPolyhedronEllipsoid(double dx, double dy, double dz, + double zcut1, double zcut2); + virtual ~HepPolyhedronEllipsoid(); +}; + +class HepPolyhedronEllipticalCone : public HepPolyhedron { +public: + HepPolyhedronEllipticalCone(double dx, double dy, double z, + double zcut1); + virtual ~HepPolyhedronEllipticalCone(); }; #endif /* HEP_POLYHEDRON_HH */ diff --git a/source/graphics_reps/src/BooleanProcessor.src b/source/graphics_reps/src/BooleanProcessor.src index 3dd3783f53..6220edbd0d 100644 --- a/source/graphics_reps/src/BooleanProcessor.src +++ b/source/graphics_reps/src/BooleanProcessor.src @@ -10,8 +10,10 @@ #include +using namespace HepGeom; + #define INITIAL_SIZE 200 -#define CRAZY_POINT HepPoint3D(-10.e+6, -10.e+6, -10.e+6) +#define CRAZY_POINT Point3D(-10.e+6, -10.e+6, -10.e+6) #define GRANULARITY 10.e+5; #define SWAP(A,B) w = A; A = B; B = w @@ -69,11 +71,11 @@ class vector { // ---------------------------------------------------- Extended node --- class ExtNode { public: - HepPoint3D v; + Point3D v; int s; public: - ExtNode(HepPoint3D vertex=HepPoint3D(), int status=0) + ExtNode(Point3D vertex=Point3D(), int status=0) : v(vertex), s(status) {} ~ExtNode() {} @@ -125,7 +127,7 @@ class ExtEdge { class ExtFace { public: int iedges[4]; // indices of original edges - HepPlane3D plane; // face plane + Plane3D plane; // face plane double rmin[3], rmax[3]; // bounding box int iold; // head of the list of the original edges int inew; // head of the list of the new edges @@ -250,7 +252,7 @@ class BooleanProcessor { void initiateLists(); void assemblePolyhedra(); void findABC(double x1, double y1, double x2, double y2, - double &a, double &b, double &c) const; + double &a, double &b, double &c) const; int checkDirection(double *x, double *y) const; int checkIntersection(int ix, int iy, int i1, int i2) const; void mergeContours(int ix, int iy, int kext, int kint); @@ -265,8 +267,8 @@ class BooleanProcessor { ~BooleanProcessor() {} HepPolyhedron execute(int op, - const HepPolyhedron &a, - const HepPolyhedron &b); + const HepPolyhedron &a, + const HepPolyhedron &b); void draw(); void draw_edge(int, int); @@ -309,7 +311,7 @@ inline void ExtFace::invert() } if (inew > 0) inew = iEprev; - plane = HepPlane3D(-plane.a(), -plane.b(), -plane.c(), -plane.d()); + plane = Plane3D(-plane.a(), -plane.b(), -plane.c(), -plane.d()); } void BooleanProcessor::takePolyhedron(const HepPolyhedron & p, @@ -333,7 +335,7 @@ void BooleanProcessor::takePolyhedron(const HepPolyhedron & p, // nodes.push_back(ExtNode(p.GetVertex(i))); // } - HepPoint3D ppp; + Point3D ppp; for (i=1; i <= p.GetNoVertices(); i++) { ppp = p.GetVertex(i); ppp.setX(ppp.x()+dx); @@ -364,7 +366,7 @@ void BooleanProcessor::takePolyhedron(const HepPolyhedron & p, for (i=0; i nodes[iNodes[i]].v[k]) - faces.back().rmin[k] = nodes[iNodes[i]].v[k]; - if (faces.back().rmax[k] < nodes[iNodes[i]].v[k]) - faces.back().rmax[k] = nodes[iNodes[i]].v[k]; + if (faces.back().rmin[k] > nodes[iNodes[i]].v[k]) + faces.back().rmin[k] = nodes[iNodes[i]].v[k]; + if (faces.back().rmax[k] < nodes[iNodes[i]].v[k]) + faces.back().rmax[k] = nodes[iNodes[i]].v[k]; } } // S E T F A C E P L A N E - HepNormal3D n = (nodes[iNodes[2]].v-nodes[iNodes[0]].v).cross + Normal3D n = (nodes[iNodes[2]].v-nodes[iNodes[0]].v).cross (nodes[iNodes[3]].v-nodes[iNodes[1]].v); - HepPoint3D p(0,0,0); + Point3D p(0,0,0); for (i=0; i(n.unit(), p); // S E T R E F E R E N C E T O T H E N E X T F A C E @@ -473,14 +475,14 @@ void BooleanProcessor::selectOutsideFaces(int & ifaces, int & iout) ***********************************************************************/ { int i, outflag, iface = ifaces, *prev; - HepPoint3D mmbox[8] = { HepPoint3D(rmin[0],rmin[1],rmin[2]), - HepPoint3D(rmax[0],rmin[1],rmin[2]), - HepPoint3D(rmin[0],rmax[1],rmin[2]), - HepPoint3D(rmax[0],rmax[1],rmin[2]), - HepPoint3D(rmin[0],rmin[1],rmax[2]), - HepPoint3D(rmax[0],rmin[1],rmax[2]), - HepPoint3D(rmin[0],rmax[1],rmax[2]), - HepPoint3D(rmax[0],rmax[1],rmax[2]) }; + Point3D mmbox[8] = { Point3D(rmin[0],rmin[1],rmin[2]), + Point3D(rmax[0],rmin[1],rmin[2]), + Point3D(rmin[0],rmax[1],rmin[2]), + Point3D(rmax[0],rmax[1],rmin[2]), + Point3D(rmin[0],rmin[1],rmax[2]), + Point3D(rmax[0],rmin[1],rmax[2]), + Point3D(rmin[0],rmax[1],rmax[2]), + Point3D(rmax[0],rmax[1],rmax[2]) }; prev = &ifaces; while (iface > 0) { @@ -498,9 +500,9 @@ void BooleanProcessor::selectOutsideFaces(int & ifaces, int & iout) int npos = 0, nneg = 0; double d; for (i=0; i<8; i++) { - d = faces[iface].plane.distance(mmbox[i]); - if (d > +del) npos++; - if (d < -del) nneg++; + d = faces[iface].plane.distance(mmbox[i]); + if (d > +del) npos++; + if (d < -del) nneg++; } if (npos == 8 || nneg == 8) outflag = 1; } @@ -529,7 +531,7 @@ int BooleanProcessor::testFaceVsPlane(ExtEdge & edge) ***********************************************************************/ { int iface = edge.iface1; - HepPlane3D plane = faces[edge.iface2].plane; + Plane3D plane = faces[edge.iface2].plane; int i, nnode, npos = 0, nneg = 0, nzer = 0; double dd[5]; @@ -594,22 +596,22 @@ int BooleanProcessor::testFaceVsPlane(ExtEdge & edge) for (i=0; i<2; i++) { iedge = faces[iface].iedges[ii[i]]; while (iedge > 0) { - i1 = edges[iedge].i1; - i2 = edges[iedge].i2; - d1 = plane.distance(nodes[i1].v); - d2 = plane.distance(nodes[i2].v); - if (d1 > del) { - if (d2 < -del) { ii[i] = nodes.size(); break; } // +- - }else if (d1 < -del) { - if (d2 > del) { ii[i] = nodes.size(); break; } // -+ - }else{ - ii[i] = i1; break; // 0+ or 0- - } - iedge = edges[iedge].inext; + i1 = edges[iedge].i1; + i2 = edges[iedge].i2; + d1 = plane.distance(nodes[i1].v); + d2 = plane.distance(nodes[i2].v); + if (d1 > del) { + if (d2 < -del) { ii[i] = nodes.size(); break; } // +- + }else if (d1 < -del) { + if (d2 > del) { ii[i] = nodes.size(); break; } // -+ + }else{ + ii[i] = i1; break; // 0+ or 0- + } + iedge = edges[iedge].inext; } if (ii[i] == nodes.size()) { - dd = d2-d1; d1 = d1/dd; d2 = d2/dd; - nodes.push_back(ExtNode(d2*nodes[i1].v-d1*nodes[i2].v, iedge)); + dd = d2-d1; d1 = d1/dd; d2 = d2/dd; + nodes.push_back(ExtNode(d2*nodes[i1].v-d1*nodes[i2].v, iedge)); } } edge.inext = 0; @@ -729,7 +731,7 @@ void BooleanProcessor::divideEdge(int & i1, int & i2) ie2 = faces[edges[ie1].iface2].iedges[0]; while (ie2 > 0) { if (edges[ie2].i1 == edges[ie1].i2 && - edges[ie2].i2 == edges[ie1].i1) break; + edges[ie2].i2 == edges[ie1].i1) break; ie2 = edges[ie2].inext; } @@ -942,30 +944,30 @@ void BooleanProcessor::assembleFace(int what, int iface) for (;;) { i = &faces[iface].inew; while(*i > 0) { - if (edges[*i].i1 == edges[icur].i2) break; - i = &edges[*i].inext; + if (edges[*i].i1 == edges[icur].i2) break; + i = &edges[*i].inext; } if (*i == 0) { - i = &faces[iface].iold; - while(*i > 0) { - if (edges[*i].i1 == edges[icur].i2) ioldflag = 1; - if (edges[*i].i1 == edges[icur].i2) break; - i = &edges[*i].inext; - } + i = &faces[iface].iold; + while(*i > 0) { + if (edges[*i].i1 == edges[icur].i2) ioldflag = 1; + if (edges[*i].i1 == edges[icur].i2) break; + i = &edges[*i].inext; + } } if (*i > 0) { - icur = *i; - *i = edges[icur].inext; - INSERT_EDGE_TO_THE_LIST(icur); - if (edges[icur].i2 == ifirst) { break; } else { continue; } + icur = *i; + *i = edges[icur].inext; + INSERT_EDGE_TO_THE_LIST(icur); + if (edges[icur].i2 == ifirst) { break; } else { continue; } }else{ - processor_error = 1; - std::cerr - << "BooleanProcessor::assembleFace(" << iface << ") : " - << "could not find next edge of the contour" - << std::endl; - faces[iface].inew = DEFECTIVE_FACE; - return; + processor_error = 1; + std::cerr + << "BooleanProcessor::assembleFace(" << iface << ") : " + << "could not find next edge of the contour" + << std::endl; + faces[iface].inew = DEFECTIVE_FACE; + return; } } } @@ -977,18 +979,18 @@ void BooleanProcessor::assembleFace(int what, int iface) if (what == 0 && ioldflag == 0 && iedge > 0) { for (;;) { if (edges[iedge].inext > 0) { - if (edges[iedge].i2 == edges[edges[iedge].inext].i1) { - iedge = edges[iedge].inext; - }else{ - break; - } + if (edges[iedge].i2 == edges[edges[iedge].inext].i1) { + iedge = edges[iedge].inext; + }else{ + break; + } }else{ - if (edges[iedge].i2 == edges[faces[iface].iold].i1) { - edges[iedge].inext = ihead; // set new face - return; - }else{ - break; - } + if (edges[iedge].i2 == edges[faces[iface].iold].i1) { + edges[iedge].inext = ihead; // set new face + return; + }else{ + break; + } } } } @@ -1022,7 +1024,7 @@ void BooleanProcessor::assembleNewFaces(int what, int ihead) checkDoubleEdges(iface); assembleFace(what, iface); faces[iface].inew = - (faces[iface].iold == 0) ? UNSUITABLE_FACE : NEW_FACE; + (faces[iface].iold == 0) ? UNSUITABLE_FACE : NEW_FACE; } iface = faces[iface].inext; } @@ -1153,9 +1155,9 @@ void BooleanProcessor::assemblePolyhedra() while(iedge > 0) { iface = edges[iedge].iface2; if (faces[iface].inew == UNKNOWN_FACE) { - unknown_faces.remove(iface); - suitable_faces.push_back(iface); - faces[iface].inew = ORIGINAL_FACE; + unknown_faces.remove(iface); + suitable_faces.push_back(iface); + faces[iface].inew = ORIGINAL_FACE; } iedge = edges[iedge].inext; } @@ -1174,9 +1176,9 @@ void BooleanProcessor::assemblePolyhedra() while(iedge > 0) { iface = edges[iedge].iface2; if (faces[iface].inew == UNKNOWN_FACE) { - unknown_faces.remove(iface); - unsuitable_faces.push_back(iface); - faces[iface].inew = UNSUITABLE_FACE; + unknown_faces.remove(iface); + unsuitable_faces.push_back(iface); + faces[iface].inew = UNSUITABLE_FACE; } iedge = edges[iedge].inext; } @@ -1187,7 +1189,7 @@ void BooleanProcessor::assemblePolyhedra() inline void BooleanProcessor::findABC(double x1, double y1, double x2, double y2, - double &a, double &b, double &c) const + double &a, double &b, double &c) const /*********************************************************************** * * * Name: BooleanProcessor::findABC Date: 07.03.00 * @@ -1358,34 +1360,34 @@ void BooleanProcessor::mergeContours(int ix, int iy, int kext, int kint) k[4] = edges[i1int].i2; k[5] = edges[i2int].i2; for (i=3; i<6; i++) { - x[i] = nodes[k[i]].v[ix]; - y[i] = nodes[k[i]].v[iy]; + x[i] = nodes[k[i]].v[ix]; + y[i] = nodes[k[i]].v[iy]; } // T E S T L I N E K1 - K4 // I F O K T H E N M E R G E C O N T O U R S if (checkDirection(x, y) == 0) { - if (checkIntersection(ix, iy, k[1], k[4]) == 0) { - i = i1int; - for(;;) { - if (edges[i].inext == 0) { - edges[i].inext = internal_contours[kint]; - internal_contours[kint] = 0; - break; - }else{ - i = edges[i].inext; - } - } - i = edges[i1int].iface1; - edges.push_back(ExtEdge(k[1], k[4], i, -(edges.size()+1), -1)); - edges.back().inext = i2int; - edges.push_back(ExtEdge(k[4], k[1], i, -(edges.size()-1), -1)); - edges.back().inext = edges[i1ext].inext; - edges[i1ext].inext = edges.size()-2; - edges[i1int].inext = edges.size()-1; - return; - } + if (checkIntersection(ix, iy, k[1], k[4]) == 0) { + i = i1int; + for(;;) { + if (edges[i].inext == 0) { + edges[i].inext = internal_contours[kint]; + internal_contours[kint] = 0; + break; + }else{ + i = edges[i].inext; + } + } + i = edges[i1int].iface1; + edges.push_back(ExtEdge(k[1], k[4], i, -(edges.size()+1), -1)); + edges.back().inext = i2int; + edges.push_back(ExtEdge(k[4], k[1], i, -(edges.size()-1), -1)); + edges.back().inext = edges[i1ext].inext; + edges[i1ext].inext = edges.size()-2; + edges[i1int].inext = edges.size()-1; + return; + } } i1int = edges[i1int].inext; } @@ -1482,25 +1484,25 @@ void BooleanProcessor::triangulateContour(int ix, int iy, int ihead) if (istart == 0) { istart = iedge1; if (nnode <= 3) { - iedge3 = edges[iedge2].inext; - edges[iedge1].iface1 = faces.size(); - edges[iedge2].iface1 = faces.size(); - edges[iedge3].iface1 = faces.size(); - edges[iedge3].inext = 0; - faces.push_back(ExtFace()); - faces.back().iold = iedge1; - faces.back().inew = ORIGINAL_FACE; + iedge3 = edges[iedge2].inext; + edges[iedge1].iface1 = faces.size(); + edges[iedge2].iface1 = faces.size(); + edges[iedge3].iface1 = faces.size(); + edges[iedge3].inext = 0; + faces.push_back(ExtFace()); + faces.back().iold = iedge1; + faces.back().inew = ORIGINAL_FACE; //if (draw_flag) draw_contour(4, 2, iedge1); - break; + break; } }else if (istart == iedge1) { processor_error = 1; std::cerr - << "BooleanProcessor::triangulateContour : " - << "could not generate a triangle (infinite loop)" - << std::endl; + << "BooleanProcessor::triangulateContour : " + << "could not generate a triangle (infinite loop)" + << std::endl; break; } @@ -1579,7 +1581,7 @@ void BooleanProcessor::triangulateFace(int iface) // F I N D M A X C O M P O N E N T O F T H E N O R M A L // S E T IX, IY, IZ - HepNormal3D normal = faces[iface].plane.normal(); + Normal3D normal = faces[iface].plane.normal(); int ix, iy, iz = 0; if (std::abs(normal[1]) > std::abs(normal[iz])) iz = 1; if (std::abs(normal[2]) > std::abs(normal[iz])) iz = 2; @@ -1601,34 +1603,34 @@ void BooleanProcessor::triangulateFace(int iface) z = 0.0; for(;;) { if (iedge > 0) { - i1 = edges[iedge].i1; - i2 = edges[iedge].i2; - z += nodes[i1].v[ix]*nodes[i2].v[iy]-nodes[i2].v[ix]*nodes[i1].v[iy]; - if (ifirst != i2) { - iedge = edges[iedge].inext; - continue; - }else{ - if (z > del*del) { - external_contours.push_back(icontour); - }else if (z < -del*del) { - internal_contours.push_back(icontour); - }else{ - processor_error = 1; - std::cerr - << "BooleanProcessor::triangulateFace : too small contour" - << std::endl; - } - icontour = edges[iedge].inext; - edges[iedge].inext = 0; - break; - } + i1 = edges[iedge].i1; + i2 = edges[iedge].i2; + z += nodes[i1].v[ix]*nodes[i2].v[iy]-nodes[i2].v[ix]*nodes[i1].v[iy]; + if (ifirst != i2) { + iedge = edges[iedge].inext; + continue; + }else{ + if (z > del*del) { + external_contours.push_back(icontour); + }else if (z < -del*del) { + internal_contours.push_back(icontour); + }else{ + processor_error = 1; + std::cerr + << "BooleanProcessor::triangulateFace : too small contour" + << std::endl; + } + icontour = edges[iedge].inext; + edges[iedge].inext = 0; + break; + } }else{ - processor_error = 1; - std::cerr - << "BooleanProcessor::triangulateFace : broken contour" - << std::endl; - icontour = 0; - break; + processor_error = 1; + std::cerr + << "BooleanProcessor::triangulateFace : broken contour" + << std::endl; + icontour = 0; + break; } } } @@ -1644,9 +1646,9 @@ void BooleanProcessor::triangulateFace(int iface) if (kext == external_contours.size()) { processor_error = 1; std::cerr - << "BooleanProcessor::triangulateFace : " - << "could not merge internal contour " << kint - << std::endl; + << "BooleanProcessor::triangulateFace : " + << "could not merge internal contour " << kint + << std::endl; } } @@ -1664,16 +1666,16 @@ void BooleanProcessor::triangulateFace(int iface) iedge = faces[ifa].iold; while (iedge > 0) { if (edges[iedge].iface1 != ifa) { - processor_error = 1; - std::cerr - << "BooleanProcessor::triangulateFace : wrong reference to itself, " - << "iface=" << ifa << ", iface1=" << edges[iedge].iface1 - << std::endl; + processor_error = 1; + std::cerr + << "BooleanProcessor::triangulateFace : wrong reference to itself, " + << "iface=" << ifa << ", iface1=" << edges[iedge].iface1 + << std::endl; }else if (edges[iedge].iface2 > 0) { - modifyReference(edges[iedge].iface2, - edges[iedge].i1, edges[iedge].i2, ifa); + modifyReference(edges[iedge].iface2, + edges[iedge].i1, edges[iedge].i2, ifa); }else if (edges[iedge].iface2 < 0) { - edges[iedge].iface2 = edges[-edges[iedge].iface2].iface1; + edges[iedge].iface2 = edges[-edges[iedge].iface2].iface1; } iedge = edges[iedge].inext; } @@ -1701,8 +1703,8 @@ HepPolyhedron BooleanProcessor::createPolyhedron() faces[i].inew = ++nface; iedge = faces[i].iold; while (iedge > 0) { - nodes[edges[iedge].i1].s = 1; - iedge = edges[iedge].inext; + nodes[edges[iedge].i1].s = 1; + iedge = edges[iedge].inext; } }else{ faces[i].inew = 0; @@ -1734,10 +1736,10 @@ HepPolyhedron BooleanProcessor::createPolyhedron() iedge = faces[i].iold; while (iedge > 0) { if (k > 3) { - std::cerr - << "BooleanProcessor::createPolyhedron : too many edges" - << std::endl; - break; + std::cerr + << "BooleanProcessor::createPolyhedron : too many edges" + << std::endl; + break; } v[k] = nodes[edges[iedge].i1].s; if (edges[iedge].ivis < 0) v[k] = -v[k]; @@ -1747,9 +1749,9 @@ HepPolyhedron BooleanProcessor::createPolyhedron() } if (k < 3) { std::cerr - << "BooleanProcessor::createPolyhedron : " - << "face has only " << k << " edges" - << std::endl; + << "BooleanProcessor::createPolyhedron : " + << "face has only " << k << " edges" + << std::endl; } polyhedron.pF[faces[i].inew] = G4Facet(v[0],f[0], v[1],f[1], v[2],f[2], v[3],f[3]); @@ -1758,8 +1760,8 @@ HepPolyhedron BooleanProcessor::createPolyhedron() } HepPolyhedron BooleanProcessor::execute(int op, - const HepPolyhedron & a, - const HepPolyhedron & b) + const HepPolyhedron & a, + const HepPolyhedron & b) /*********************************************************************** * * * Name: BooleanProcessor::execute Date: 10.12.99 * @@ -1779,7 +1781,7 @@ HepPolyhedron BooleanProcessor::execute(int op, { 17, 31, -23}, { 31, -23, 17}, { -31, 23, -17} - }; + }; // I N I T I A T E P R O C E S S O R @@ -1806,13 +1808,13 @@ HepPolyhedron BooleanProcessor::execute(int op, return b; case OP_INTERSECTION: std::cerr - << "BooleanProcessor: intersection with empty polyhedron" - << std::endl; + << "BooleanProcessor: intersection with empty polyhedron" + << std::endl; return HepPolyhedron(); case OP_SUBTRACTION: std::cerr - << "BooleanProcessor: subtraction from empty polyhedron" - << std::endl; + << "BooleanProcessor: subtraction from empty polyhedron" + << std::endl; return HepPolyhedron(); } } @@ -1822,8 +1824,8 @@ HepPolyhedron BooleanProcessor::execute(int op, return a; case OP_INTERSECTION: std::cerr - << "BooleanProcessor: intersection with empty polyhedron" - << std::endl; + << "BooleanProcessor: intersection with empty polyhedron" + << std::endl; return HepPolyhedron(); case OP_SUBTRACTION: return a; @@ -1835,7 +1837,7 @@ HepPolyhedron BooleanProcessor::execute(int op, del = findMinMax(); // W O R K A R O U N D T O A V O I D I E A N D E E - + double ddxx = del*shift[ishift][0]; double ddyy = del*shift[ishift][1]; double ddzz = del*shift[ishift][2]; @@ -1883,8 +1885,8 @@ return a; while (ifa1 > 0) { ifa2 = ifaces2; while (ifa2 > 0) { - testFaceVsFace(ifa1, ifa2); - ifa2 = faces[ifa2].inext; + testFaceVsFace(ifa1, ifa2); + ifa2 = faces[ifa2].inext; } ifa1 = faces[ifa1].inext; } @@ -1906,8 +1908,8 @@ return a; if (unknown_faces.front() != 0) { processor_error = 1; std::cerr - << "BooleanProcessor::execute : unknown faces !!!" - << std::endl; + << "BooleanProcessor::execute : unknown faces !!!" + << std::endl; } break; } @@ -1971,25 +1973,25 @@ return a; while (iedge > 0) { - cout << " iegde = " << iedge - << " i1,i2 =" << edges[iedge].i1 << "," << edges[iedge].i2 - << " iface1,iface2 = " - << edges[iedge].iface1 << "," << edges[iedge].iface2 - << endl; + cout << " iegde = " << iedge + << " i1,i2 =" << edges[iedge].i1 << "," << edges[iedge].i2 + << " iface1,iface2 = " + << edges[iedge].iface1 << "," << edges[iedge].iface2 + << endl; - i1 = edges[iedge].i1; - p1[0] = nodes[i1].v.x(); - p1[1] = nodes[i1].v.y(); - p1[2] = nodes[i1].v.z(); - IHWTON(p1,p1); - i2 = edges[iedge].i2; - p2[0] = nodes[i2].v.x(); - p2[1] = nodes[i2].v.y(); - p2[2] = nodes[i2].v.z(); - IHWTON(p2,p2); + i1 = edges[iedge].i1; + p1[0] = nodes[i1].v.x(); + p1[1] = nodes[i1].v.y(); + p1[2] = nodes[i1].v.z(); + IHWTON(p1,p1); + i2 = edges[iedge].i2; + p2[0] = nodes[i2].v.x(); + p2[1] = nodes[i2].v.y(); + p2[2] = nodes[i2].v.z(); + IHWTON(p2,p2); // icol = (edges[iedge].ivis > 0) ? 1 : 2; - IHZLIN(icol,p1[0],p1[1],p1[2], p2[0],p2[1],p2[2]); - iedge = edges[iedge].inext; + IHZLIN(icol,p1[0],p1[1],p1[2], p2[0],p2[1],p2[2]); + iedge = edges[iedge].inext; } cout << "--- inew" << endl; @@ -1999,25 +2001,25 @@ return a; while (iedge > 0) { - cout << " iegde = " << iedge - << " i1,i2 =" << edges[iedge].i1 << "," << edges[iedge].i2 - << " iface1,iface2 = " - << edges[iedge].iface1 << "," << edges[iedge].iface2 - << endl; + cout << " iegde = " << iedge + << " i1,i2 =" << edges[iedge].i1 << "," << edges[iedge].i2 + << " iface1,iface2 = " + << edges[iedge].iface1 << "," << edges[iedge].iface2 + << endl; - i1 = edges[iedge].i1; - p1[0] = nodes[i1].v.x(); - p1[1] = nodes[i1].v.y(); - p1[2] = nodes[i1].v.z(); - IHWTON(p1,p1); - i2 = edges[iedge].i2; - p2[0] = nodes[i2].v.x(); - p2[1] = nodes[i2].v.y(); - p2[2] = nodes[i2].v.z(); - IHWTON(p2,p2); + i1 = edges[iedge].i1; + p1[0] = nodes[i1].v.x(); + p1[1] = nodes[i1].v.y(); + p1[2] = nodes[i1].v.z(); + IHWTON(p1,p1); + i2 = edges[iedge].i2; + p2[0] = nodes[i2].v.x(); + p2[1] = nodes[i2].v.y(); + p2[2] = nodes[i2].v.z(); + IHWTON(p2,p2); // icol = (edges[iedge].ivis > 0) ? 1 : 2; - IHZLIN(icol,p1[0],p1[1],p1[2], p2[0],p2[1],p2[2]); - iedge = edges[iedge].inext; + IHZLIN(icol,p1[0],p1[1],p1[2], p2[0],p2[1],p2[2]); + iedge = edges[iedge].inext; } iface = faces[iface].inext; @@ -2026,8 +2028,6 @@ return a; cin >> II; ixclrwi(); IHZCLE(0); - - } } } diff --git a/source/graphics_reps/src/G4AttCheck.cc b/source/graphics_reps/src/G4AttCheck.cc index dba1becb31..d36b2e1cf1 100644 --- a/source/graphics_reps/src/G4AttCheck.cc +++ b/source/graphics_reps/src/G4AttCheck.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AttCheck.cc,v 1.6 2005/05/03 17:43:01 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AttCheck.cc,v 1.7 2005/09/16 01:04:43 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4AttCheck.hh" @@ -45,11 +45,13 @@ G4AttCheck::G4AttCheck // Legal Unit Category Types... fUnitCategories.insert("Length"); fUnitCategories.insert("Energy"); + fUnitCategories.insert("Time"); fUnitCategories.insert("Electric charge"); // Corresponding Standard Units... fStandardUnits["Length"] = "m"; fStandardUnits["Energy"] = "MeV"; + fStandardUnits["Time"] = "ns"; fStandardUnits["Electric charge"] = "e+"; // Legal Categories... diff --git a/source/graphics_reps/src/G4AttDefStore.cc b/source/graphics_reps/src/G4AttDefStore.cc index 46e009191a..325d6e9d99 100644 --- a/source/graphics_reps/src/G4AttDefStore.cc +++ b/source/graphics_reps/src/G4AttDefStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4AttDefStore.cc,v 1.5 2004/03/31 06:50:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4AttDefStore.hh" diff --git a/source/graphics_reps/src/G4Circle.cc b/source/graphics_reps/src/G4Circle.cc index 6e52c38a26..b83e253283 100644 --- a/source/graphics_reps/src/G4Circle.cc +++ b/source/graphics_reps/src/G4Circle.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Circle.cc,v 1.4 2001/07/11 10:01:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Circle.cc,v 1.5 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -32,28 +32,8 @@ G4Circle::G4Circle () {} -G4Circle::G4Circle (const G4Point3D& pos): -G4VMarker (pos) {} +G4Circle::G4Circle (const G4VMarker& marker): G4VMarker (marker) {} -G4Circle::G4Circle (const G4VMarker& marker): -G4VMarker (marker) {} +G4Circle::G4Circle (const G4Point3D& pos): G4VMarker (pos) {} G4Circle::~G4Circle () {} - -G4Visible & G4Circle::operator = (const G4Visible &right) { - return G4Visible::operator = (right); -} - -G4VVisPrim & G4Circle::operator = (const G4VVisPrim &right) { - return G4VVisPrim::operator = (right); -} - -G4VMarker & G4Circle::operator = (const G4VMarker &right) { - return G4VMarker::operator = (right); -} - -G4Circle& G4Circle::operator = (const G4Circle& right) { - if (&right == this) return *this; - G4VMarker::operator = (right); - return *this; -} diff --git a/source/graphics_reps/src/G4Colour.cc b/source/graphics_reps/src/G4Colour.cc index f7988ced02..d8833e7ae3 100644 --- a/source/graphics_reps/src/G4Colour.cc +++ b/source/graphics_reps/src/G4Colour.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4Colour.cc,v 1.6 2003/09/18 11:03:12 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Colour.cc,v 1.9 2005/11/10 20:34:45 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 20th October 1996 #include "G4Colour.hh" -#include "G4ios.hh" + +#include G4Colour::G4Colour (G4double r, G4double g, G4double b, G4double a): red (r), green (g), blue (b), alpha (a) @@ -66,3 +67,85 @@ G4bool G4Colour::operator != (const G4Colour& c) const { return true; return false; } + +const G4Colour G4Colour::fWhite = G4Colour(1.0, 1.0, 1.0); +const G4Colour G4Colour::fGray = G4Colour(0.5, 0.5, 0.5); +const G4Colour G4Colour::fGrey = G4Colour::fGray; +const G4Colour G4Colour::fBlack = G4Colour(0.0, 0.0, 0.0); +const G4Colour G4Colour::fRed = G4Colour(1.0, 0.0, 0.0); +const G4Colour G4Colour::fGreen = G4Colour(0.0, 1.0, 0.0); +const G4Colour G4Colour::fBlue = G4Colour(0.0, 0.0, 1.0); +const G4Colour G4Colour::fCyan = G4Colour(0.0, 1.0, 1.0); +const G4Colour G4Colour::fMagenta = G4Colour(1.0, 0.0, 1.0); +const G4Colour G4Colour::fYellow = G4Colour(1.0, 1.0, 0.0); + +map G4Colour::fColourMap; +bool G4Colour::fInitColourMap = false; + +const G4Colour& G4Colour::White() {return fWhite;} +const G4Colour& G4Colour::Gray() {return fGray;} +const G4Colour& G4Colour::Grey() {return fGrey;} +const G4Colour& G4Colour::Black() {return fBlack;} +const G4Colour& G4Colour::Red() {return fRed;} +const G4Colour& G4Colour::Green() {return fGreen;} +const G4Colour& G4Colour::Blue() {return fBlue;} +const G4Colour& G4Colour::Cyan() {return fCyan;} +const G4Colour& G4Colour::Magenta() {return fMagenta;} +const G4Colour& G4Colour::Yellow() {return fYellow;} + +void +G4Colour::AddToMap(const G4String& key, const G4Colour& colour) +{ + // Convert to lower case since colour map is case insensitive + G4String myKey(key); + myKey.toLower(); + + map::iterator iter = fColourMap.find(myKey); + + if (iter == fColourMap.end()) fColourMap[myKey] = colour; + else { + std::ostringstream o; + o << "G4Colour with key "<::iterator iter = fColourMap.find(myKey); + + // Don't modify "result" if colour was not found in map + if (iter == fColourMap.end()) return false; + + result = iter->second; + + return true; +} diff --git a/source/graphics_reps/src/G4NURBS.cc b/source/graphics_reps/src/G4NURBS.cc index a21320b9a4..6fa83dfc98 100644 --- a/source/graphics_reps/src/G4NURBS.cc +++ b/source/graphics_reps/src/G4NURBS.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBS.cc,v 1.7 2003/06/16 16:55:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBS.cc,v 1.8 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -41,16 +41,6 @@ // Here start the real world. Please, check your armored jacket. // //////////////////////////////////////////////////////////////////////// -G4Visible & G4NURBS::operator = (const G4Visible &right) -{ - return G4Visible::operator = (right); -} - -G4VVisPrim & G4NURBS::operator = (const G4VVisPrim &right) -{ - return G4VVisPrim::operator = (right); -} - std::ostream & operator << (std::ostream & inout_outStream, const G4NURBS & in_kNurb) { @@ -507,7 +497,7 @@ G4NURBS::G4NURBS( t_order in_Uorder, t_order in_Vorder, } G4NURBS::G4NURBS(const G4NURBS & in_krNurb) - : G4VVisPrim(in_krNurb) + : G4Visible(in_krNurb) { // we assume the in nurbs is ok diff --git a/source/graphics_reps/src/G4NURBSbox.cc b/source/graphics_reps/src/G4NURBSbox.cc index e0c0b444c8..3743efc6e3 100644 --- a/source/graphics_reps/src/G4NURBSbox.cc +++ b/source/graphics_reps/src/G4NURBSbox.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBSbox.cc,v 1.5 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBSbox.cc,v 1.6 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -68,16 +68,6 @@ G4NURBSbox::G4NURBSbox(G4double DX, G4double DY, G4double DZ) CP(mpCtrlPts[i++], DX, DY,-DZ, 1 ); } -G4Visible & G4NURBSbox::operator = (const G4Visible &right) -{ - return G4Visible::operator = (right); -} - -G4VVisPrim & G4NURBSbox::operator = (const G4VVisPrim &right) -{ - return G4VVisPrim::operator = (right); -} - const char* G4NURBSbox::Whoami() const { return "Box (as a folded piece)"; diff --git a/source/graphics_reps/src/G4NURBScylinder.cc b/source/graphics_reps/src/G4NURBScylinder.cc index a908d2fa78..81df8ef1d8 100644 --- a/source/graphics_reps/src/G4NURBScylinder.cc +++ b/source/graphics_reps/src/G4NURBScylinder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBScylinder.cc,v 1.6 2004/12/07 08:42:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBScylinder.cc,v 1.7 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -106,16 +106,6 @@ G4NURBScylinder::G4NURBScylinder(G4double R, G4double DZ) CP(mpCtrlPts[35] , 0, 0, -DZ, 1 ); } -G4Visible & G4NURBScylinder::operator = (const G4Visible &right) -{ - return G4Visible::operator = (right); -} - -G4VVisPrim & G4NURBScylinder::operator = (const G4VVisPrim &right) -{ - return G4VVisPrim::operator = (right); -} - const char* G4NURBScylinder::Whoami() const { return "Cylinder"; diff --git a/source/graphics_reps/src/G4NURBShexahedron.cc b/source/graphics_reps/src/G4NURBShexahedron.cc index 6a79d14878..8a63124356 100644 --- a/source/graphics_reps/src/G4NURBShexahedron.cc +++ b/source/graphics_reps/src/G4NURBShexahedron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBShexahedron.cc,v 1.5 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBShexahedron.cc,v 1.6 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // hexahedron implementation // OC 17 9 96 @@ -60,16 +60,6 @@ G4NURBShexahedron::G4NURBShexahedron(const G4ThreeVector c [8]) CP(mpCtrlPts[To1d(4,3)] , c[4].x(), c[4].y(), c[4].z(), 1 ); } -G4Visible & G4NURBShexahedron::operator = (const G4Visible &right) -{ - return G4Visible::operator = (right); -} - -G4VVisPrim & G4NURBShexahedron::operator = (const G4VVisPrim &right) -{ - return G4VVisPrim::operator = (right); -} - const char* G4NURBShexahedron::Whoami() const { return "Hexahedron"; diff --git a/source/graphics_reps/src/G4NURBStube.cc b/source/graphics_reps/src/G4NURBStube.cc index 711f98c3b0..a2edc2ff01 100644 --- a/source/graphics_reps/src/G4NURBStube.cc +++ b/source/graphics_reps/src/G4NURBStube.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBStube.cc,v 1.6 2004/12/07 08:42:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBStube.cc,v 1.7 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -97,16 +97,6 @@ G4NURBStube::G4NURBStube(G4double r, G4double R, G4double DZ) CP(mpCtrlPts[44] , r, 0, DZ, 1 ); } -G4Visible & G4NURBStube::operator = (const G4Visible &right) -{ - return G4Visible::operator = (right); -} - -G4VVisPrim & G4NURBStube::operator = (const G4VVisPrim &right) -{ - return G4VVisPrim::operator = (right); -} - const char* G4NURBStube::Whoami() const { return "Tube"; diff --git a/source/graphics_reps/src/G4NURBStubesector.cc b/source/graphics_reps/src/G4NURBStubesector.cc index 10d7e6fcf0..878538f72c 100644 --- a/source/graphics_reps/src/G4NURBStubesector.cc +++ b/source/graphics_reps/src/G4NURBStubesector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NURBStubesector.cc,v 1.9 2004/12/10 17:48:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NURBStubesector.cc,v 1.11 2005/10/03 12:30:13 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Olivier Crumeyrolle 12 September 1996 @@ -31,7 +31,7 @@ // OC 290896 #include "G4NURBStubesector.hh" -#include +#include G4NURBStubesector::G4NURBStubesector(G4double r, G4double R, G4double DZ, G4double PHI1, G4double PHI2) @@ -179,21 +179,10 @@ G4NURBStubesector::G4NURBStubesector(G4double r, G4double R, // to a line instead of a point // creating the nurbs identity - mpwhoami = new char [200]; - std::ostrstream tmpstr(mpwhoami, 200); - tmpstr << "Tubs" << " \tPHI1=" << PHI1 << " ; PHI2=" << PHI2 << '\0'; - // could be more sophisticated, reallocating - // mpwhoami to the exact length -} - -G4Visible & G4NURBStubesector::operator = (const G4Visible &right) -{ - return G4Visible::operator = (right); -} - -G4VVisPrim & G4NURBStubesector::operator = (const G4VVisPrim &right) -{ - return G4VVisPrim::operator = (right); + std::ostringstream tmpstr; + tmpstr << "Tubs" << " \tPHI1=" << PHI1 << " ; PHI2=" << PHI2; + mpwhoami = new char [tmpstr.str().length() + 1]; + mpwhoami = std::strcpy(mpwhoami, tmpstr.str().c_str()); } const char* G4NURBStubesector::Whoami() const diff --git a/source/graphics_reps/src/G4PlacedPolyhedron.cc b/source/graphics_reps/src/G4PlacedPolyhedron.cc index 75e1654d9f..958b79a700 100644 --- a/source/graphics_reps/src/G4PlacedPolyhedron.cc +++ b/source/graphics_reps/src/G4PlacedPolyhedron.cc @@ -22,7 +22,7 @@ // // // $Id: G4PlacedPolyhedron.cc,v 1.3 2001/07/11 10:01:08 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4PlacedPolyhedron.hh" diff --git a/source/graphics_reps/src/G4Point3DList.cc b/source/graphics_reps/src/G4Point3DList.cc index e5c3e2fa47..de4a07cd9d 100644 --- a/source/graphics_reps/src/G4Point3DList.cc +++ b/source/graphics_reps/src/G4Point3DList.cc @@ -22,7 +22,7 @@ // // // $Id: G4Point3DList.cc,v 1.6 2003/06/16 16:55:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/src/G4Polyhedron.cc b/source/graphics_reps/src/G4Polyhedron.cc index 6075d44184..faf7b24dbb 100644 --- a/source/graphics_reps/src/G4Polyhedron.cc +++ b/source/graphics_reps/src/G4Polyhedron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyhedron.cc,v 1.14 2005/03/22 19:18:56 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polyhedron.cc,v 1.18 2005/08/10 08:20:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4Polyhedron.hh" @@ -32,13 +32,6 @@ G4Polyhedron::G4Polyhedron (): G4Polyhedron::~G4Polyhedron () {} -G4Polyhedron::G4Polyhedron (const G4Polyhedron& from) - : HepPolyhedron(from), G4VVisPrim(from) -{ - fNumberOfRotationStepsAtTimeOfCreation = - from.fNumberOfRotationStepsAtTimeOfCreation; -} - G4Polyhedron::G4Polyhedron (const HepPolyhedron& from) : HepPolyhedron(from) { @@ -46,15 +39,6 @@ G4Polyhedron::G4Polyhedron (const HepPolyhedron& from) from.fNumberOfRotationSteps; } -G4Polyhedron& G4Polyhedron::operator = (const G4Polyhedron& from) { - if (&from == this) return *this; - HepPolyhedron::operator = (from); - G4VVisPrim::operator = (from); - fNumberOfRotationStepsAtTimeOfCreation = - from.fNumberOfRotationStepsAtTimeOfCreation; - return *this; -} - G4PolyhedronBox::G4PolyhedronBox (G4double dx, G4double dy, G4double dz): G4Polyhedron (HepPolyhedronBox (dx, dy, dz)) {} @@ -143,3 +127,17 @@ G4PolyhedronTubs::G4PolyhedronTubs (G4double Rmin, G4double Rmax, G4double Dz, G4Polyhedron (HepPolyhedronTubs (Rmin, Rmax, Dz, Phi1, Dphi)) {} G4PolyhedronTubs::~G4PolyhedronTubs () {} + +G4PolyhedronEllipsoid::G4PolyhedronEllipsoid (G4double ax, G4double by, + G4double cz, + G4double zCut1, G4double zCut2): + G4Polyhedron (HepPolyhedronEllipsoid (ax, by, cz, zCut1, zCut2)) {} + +G4PolyhedronEllipsoid::~G4PolyhedronEllipsoid () {} + +G4PolyhedronEllipticalCone::G4PolyhedronEllipticalCone (G4double ax, G4double ay, + G4double h, + G4double zCut1): + G4Polyhedron (HepPolyhedronEllipticalCone (ax, ay, h, zCut1)) {} + +G4PolyhedronEllipticalCone::~G4PolyhedronEllipticalCone () {} diff --git a/source/graphics_reps/src/G4Polyline.cc b/source/graphics_reps/src/G4Polyline.cc index 3c588305a2..d497746237 100644 --- a/source/graphics_reps/src/G4Polyline.cc +++ b/source/graphics_reps/src/G4Polyline.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polyline.cc,v 1.8 2003/06/16 16:55:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polyline.cc,v 1.9 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison July 1995 @@ -31,26 +31,8 @@ G4Polyline::G4Polyline () {} -G4Polyline::G4Polyline (const G4VVisPrim& prim): - G4VVisPrim (prim) -{} - G4Polyline::~G4Polyline () {} -G4Visible & G4Polyline::operator = (const G4Visible &right) { - return G4Visible::operator = (right); -} - -G4VVisPrim & G4Polyline::operator = (const G4VVisPrim &right) { - return G4VVisPrim::operator = (right); -} - -G4Polyline & G4Polyline::operator = (const G4Polyline &right) { - if (&right == this) return *this; - G4VVisPrim::operator = (right); - return *this; -} - G4Polyline& G4Polyline::transform (const G4Transform3D& transformation) { for (iterator i = begin(); i != end(); ++i) i->transform(transformation); return *this; @@ -58,7 +40,7 @@ G4Polyline& G4Polyline::transform (const G4Transform3D& transformation) { std::ostream& operator << (std::ostream& os, const G4Polyline& line) { os << "G4Polyline: "; - os << '\n' << (G4VVisPrim) line; + os << '\n' << (G4Visible) line; os << '\n' << (G4Point3DList) line; return os; } diff --git a/source/graphics_reps/src/G4Polymarker.cc b/source/graphics_reps/src/G4Polymarker.cc index 2cbd7ee6bc..aae75222c6 100644 --- a/source/graphics_reps/src/G4Polymarker.cc +++ b/source/graphics_reps/src/G4Polymarker.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Polymarker.cc,v 1.9 2004/11/11 16:41:27 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Polymarker.cc,v 1.10 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison November 1996 @@ -35,25 +35,6 @@ fMarkerType (G4Polymarker::dots) G4Polymarker::~G4Polymarker () {} -G4Visible & G4Polymarker::operator = (const G4Visible &right) { - return G4Visible::operator = (right); -} - -G4VVisPrim & G4Polymarker::operator = (const G4VVisPrim &right) { - return G4VVisPrim::operator = (right); -} - -G4VMarker & G4Polymarker::operator = (const G4VMarker &right) { - return G4VMarker::operator = (right); -} - -G4Polymarker & G4Polymarker::operator = (const G4Polymarker &right) { - if (&right == this) return *this; - G4VMarker::operator = (right); - fMarkerType = right.fMarkerType; - return *this; -} - std::ostream& operator << (std::ostream& os, const G4Polymarker& marker) { os << "G4Polymarker: type: "; switch (marker.fMarkerType) { diff --git a/source/graphics_reps/src/G4Scale.cc b/source/graphics_reps/src/G4Scale.cc index ce57d0ea68..ecd3f571a2 100644 --- a/source/graphics_reps/src/G4Scale.cc +++ b/source/graphics_reps/src/G4Scale.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scale.cc,v 1.7 2005/03/22 16:49:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Scale.cc,v 1.8 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 21st July 2001 @@ -41,31 +41,6 @@ G4Scale::G4Scale (G4double length, const G4String& annotation, G4Scale::~G4Scale () {} -G4Visible & G4Scale::operator = (const G4Visible &from) { - return G4Visible::operator = (from); -} - -G4VVisPrim & G4Scale::operator = (const G4VVisPrim &from) { - return G4VVisPrim::operator = (from); -} - -G4VMarker & G4Scale::operator = (const G4VMarker &from) { - return G4VMarker::operator = (from); -} - -G4Scale & G4Scale::operator = (const G4Scale &from) { - if (&from == this) return *this; - G4VMarker::operator = (from); - fLength = from.fLength; - fAnnotation = from.fAnnotation; - fDirection = from.fDirection; - fAutoPlacing = from.fAutoPlacing; - fXmid = from.fXmid; - fYmid = from.fYmid; - fZmid = from.fZmid; - return *this; -} - const G4String G4Scale::GuidanceString ( "An annotated line in the specified direction with tick marks at the" diff --git a/source/graphics_reps/src/G4Square.cc b/source/graphics_reps/src/G4Square.cc index dda7c0999a..552ae9b862 100644 --- a/source/graphics_reps/src/G4Square.cc +++ b/source/graphics_reps/src/G4Square.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Square.cc,v 1.3 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Square.cc,v 1.4 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -31,21 +31,3 @@ #include "G4VisAttributes.hh" G4Square::~G4Square () {} - -G4Visible & G4Square::operator = (const G4Visible &right) { - return G4Visible::operator = (right); -} - -G4VVisPrim & G4Square::operator = (const G4VVisPrim &right) { - return G4VVisPrim::operator = (right); -} - -G4VMarker & G4Square::operator = (const G4VMarker &right) { - return G4VMarker::operator = (right); -} - -G4Square& G4Square::operator = (const G4Square& right) { - if (&right == this) return *this; - G4VMarker::operator = (right); - return *this; -} diff --git a/source/graphics_reps/src/G4Text.cc b/source/graphics_reps/src/G4Text.cc index 1965ecb64f..6529fd05c0 100644 --- a/source/graphics_reps/src/G4Text.cc +++ b/source/graphics_reps/src/G4Text.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Text.cc,v 1.6 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Text.cc,v 1.7 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 17/11/96. @@ -50,25 +50,3 @@ fXOffset(0.) , fYOffset(0.) {} G4Text::~G4Text () {} - -G4Visible & G4Text::operator = (const G4Visible &from) { - return G4Visible::operator = (from); -} - -G4VVisPrim & G4Text::operator = (const G4VVisPrim &from) { - return G4VVisPrim::operator = (from); -} - -G4VMarker & G4Text::operator = (const G4VMarker &from) { - return G4VMarker::operator = (from); -} - -G4Text & G4Text::operator = (const G4Text &from) { - if (&from == this) return *this; - G4VMarker::operator = (from); - fText = from.fText; - fLayout = from.fLayout; - fXOffset = from.fXOffset; - fYOffset = from.fYOffset; - return *this; -} diff --git a/source/graphics_reps/src/G4VMarker.cc b/source/graphics_reps/src/G4VMarker.cc index aec97c3981..5b9a03a4cf 100644 --- a/source/graphics_reps/src/G4VMarker.cc +++ b/source/graphics_reps/src/G4VMarker.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VMarker.cc,v 1.8 2003/06/16 16:55:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VMarker.cc,v 1.9 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -38,15 +38,6 @@ G4VMarker::G4VMarker (): fInfo (G4String()) {} -G4VMarker::G4VMarker (const G4VMarker& marker): - G4VVisPrim (marker), - fPosition (marker.fPosition), - fWorldSize (marker.fWorldSize), - fScreenSize (marker.fScreenSize), - fFillStyle (marker.fFillStyle), - fInfo (marker.fInfo) -{} - G4VMarker::G4VMarker (const G4Point3D& pos): fPosition (pos), fWorldSize (0.), @@ -57,23 +48,16 @@ G4VMarker::G4VMarker (const G4Point3D& pos): G4VMarker::~G4VMarker () {} -G4Visible & G4VMarker::operator = (const G4Visible &right) { - return G4Visible::operator = (right); -} - -G4VVisPrim & G4VMarker::operator = (const G4VVisPrim &right) { - return G4VVisPrim::operator = (right); -} - -G4VMarker& G4VMarker::operator = (const G4VMarker& right) { - if (&right == this) return *this; - G4VVisPrim::operator = (right); - fPosition = right.fPosition; - fWorldSize = right.fWorldSize; - fScreenSize = right.fScreenSize; - fFillStyle = right.fFillStyle; - fInfo = right.fInfo; - return *this; +G4bool G4VMarker::operator != (const G4VMarker& m) const { + if ( + (G4Visible::operator != (m)) || + (fWorldSize != m.fWorldSize) || + (fScreenSize != m.fScreenSize) || + (fFillStyle != m.fFillStyle) || + !(fPosition == m.fPosition) + ) + return true; + return false; } std::ostream& operator << (std::ostream& os, const G4VMarker& marker) { @@ -94,22 +78,10 @@ std::ostream& operator << (std::ostream& os, const G4VMarker& marker) { default: os << "unrecognised"; break; } - os << "\n " << (G4VVisPrim) marker; + os << "\n " << (G4Visible) marker; return os; } -G4bool G4VMarker::operator != (const G4VMarker& m) const { - if ( - !(G4VVisPrim::operator == (m)) || - (fWorldSize != m.fWorldSize) || - (fScreenSize != m.fScreenSize) || - (fFillStyle != m.fFillStyle) || - !(fPosition == m.fPosition) - ) - return true; - return false; -} - const G4String& G4VMarker::GetInfo() const { return fInfo ;} void G4VMarker::SetInfo( const G4String& info ){ fInfo = info ;} diff --git a/source/intercoms/src/G4VVisManager.cc b/source/graphics_reps/src/G4VVisManager.cc similarity index 94% rename from source/intercoms/src/G4VVisManager.cc rename to source/graphics_reps/src/G4VVisManager.cc index 323e9cf2b5..f187b821db 100644 --- a/source/intercoms/src/G4VVisManager.cc +++ b/source/graphics_reps/src/G4VVisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VVisManager.cc,v 1.5 2002/11/20 14:46:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VVisManager.cc,v 1.3 2005/10/17 20:54:29 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Abstract interface for GEANT4 Visualization Manager. diff --git a/source/graphics_reps/src/G4VisAttributes.cc b/source/graphics_reps/src/G4VisAttributes.cc index 6378198720..751b01b5c0 100644 --- a/source/graphics_reps/src/G4VisAttributes.cc +++ b/source/graphics_reps/src/G4VisAttributes.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.cc,v 1.10 2004/07/28 15:44:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 23rd October 1996 diff --git a/source/graphics_reps/src/G4VisExtent.cc b/source/graphics_reps/src/G4VisExtent.cc index 4d197e785f..6dad104e4d 100644 --- a/source/graphics_reps/src/G4VisExtent.cc +++ b/source/graphics_reps/src/G4VisExtent.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisExtent.cc,v 1.9 2005/02/19 22:00:11 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // A.Walkden 28/11/95 diff --git a/source/graphics_reps/src/G4Visible.cc b/source/graphics_reps/src/G4Visible.cc index 0baeeb9f11..a92e735fad 100644 --- a/source/graphics_reps/src/G4Visible.cc +++ b/source/graphics_reps/src/G4Visible.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Visible.cc,v 1.12 2005/05/26 10:34:55 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Visible.cc,v 1.13 2005/07/05 14:04:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 30th October 1996 @@ -32,22 +32,23 @@ #include "G4VisAttributes.hh" #include "G4ios.hh" +G4Visible::G4Visible (): fpVisAttributes (0) {} + G4Visible::~G4Visible () {} -G4Visible& G4Visible::operator = (const G4Visible& right) { - if (&right == this) return *this; - fpVisAttributes = right.fpVisAttributes; - return *this; -} - -G4bool G4Visible::operator == (const G4Visible& right) const{ - return fpVisAttributes == right.fpVisAttributes; -} +G4Visible::G4Visible (const G4VisAttributes* pVA): + fpVisAttributes (pVA) +{} void G4Visible::SetVisAttributes (const G4VisAttributes& VA) { fpVisAttributes = new G4VisAttributes(VA); } +G4bool G4Visible::operator != (const G4Visible& right) const { + // Simple test on non-equality of address... + return fpVisAttributes != right.fpVisAttributes; +} + std::ostream& operator << (std::ostream& os, const G4Visible& v) { if (v.fpVisAttributes) return os << *(v.fpVisAttributes); else return os << "No Visualization Attributes"; diff --git a/source/graphics_reps/src/HepPolyhedron.cc b/source/graphics_reps/src/HepPolyhedron.cc index 29cf3f8927..b50db8e4de 100644 --- a/source/graphics_reps/src/HepPolyhedron.cc +++ b/source/graphics_reps/src/HepPolyhedron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: HepPolyhedron.cc,v 1.17 2005/03/09 16:42:25 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: HepPolyhedron.cc,v 1.21 2005/11/09 07:32:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // @@ -52,12 +52,22 @@ // 05.11.02 E.Chernyaev // - added createTwistedTrap() and createPolyhedron(); // +// 20.06.05 G.Cosmo +// - added HepPolyhedronEllipsoid; +// #include "HepPolyhedron.h" #include +#include #include +using namespace HepGeom; +using CLHEP::perMillion; +using CLHEP::deg; +using CLHEP::pi; +using CLHEP::twopi; + /*********************************************************************** * * * Name: HepPolyhedron operator << Date: 09.05.96 * @@ -79,8 +89,8 @@ std::ostream & operator<<(std::ostream & ostr, const HepPolyhedron & ph) { int i; for (i=1; i<=ph.nvert; i++) { ostr << "xyz(" << i << ")=" - << ph.pV[i].x() << ' ' << ph.pV[i].y() << ' ' << ph.pV[i].z() - << std::endl; + << ph.pV[i].x() << ' ' << ph.pV[i].y() << ' ' << ph.pV[i].z() + << std::endl; } for (i=1; i<=ph.nface; i++) { ostr << "face(" << i << ")=" << ph.pF[i] << std::endl; @@ -149,7 +159,7 @@ HepPolyhedron::FindNeighbour(int iFace, int iNode, int iOrder) const return (pF[iFace].edge[i].v > 0) ? 0 : pF[iFace].edge[i].f; } -HepNormal3D HepPolyhedron::FindNodeNormal(int iFace, int iNode) const +Normal3D HepPolyhedron::FindNodeNormal(int iFace, int iNode) const /*********************************************************************** * * * Name: HepPolyhedron::FindNodeNormal Date: 22.11.99 * @@ -159,7 +169,7 @@ HepNormal3D HepPolyhedron::FindNodeNormal(int iFace, int iNode) const * * ***********************************************************************/ { - HepNormal3D normal = GetUnitNormal(iFace); + Normal3D normal = GetUnitNormal(iFace); int k = iFace, iOrder = 1, n = 1; for(;;) { @@ -244,7 +254,7 @@ void HepPolyhedron::AllocateMemory(int Nvert, int Nface) if (Nvert > 0 && Nface > 0) { nvert = Nvert; nface = Nface; - pV = new HepPoint3D[nvert+1]; + pV = new Point3D[nvert+1]; pF = new G4Facet[nface+1]; }else{ nvert = 0; nface = 0; pV = 0; pF = 0; @@ -272,7 +282,7 @@ void HepPolyhedron::CreatePrism() } void HepPolyhedron::RotateEdge(int k1, int k2, double r1, double r2, - int v1, int v2, int vEdge, + int v1, int v2, int vEdge, bool ifWholeCircle, int ns, int &kface) /*********************************************************************** * * @@ -314,19 +324,19 @@ void HepPolyhedron::RotateEdge(int k1, int k2, double r1, double r2, if (r1 == 0.) { pF[kface++] = G4Facet(vv*i1,0, v2*i2,0, vEdge*(i2+1),0); for (i2++,i=1; i(0, 0, z[i]); } else { k += nVphi; } } i = i2beg; if (ifSide1) { kk[i] = k; - if (r[i] == 0.) { pV[k++] = HepPoint3D(0, 0, z[i]); } else { k += nVphi; } + if (r[i] == 0.) + { pV[k++] = Point3D(0, 0, z[i]); } else { k += nVphi; } }else{ kk[i] = kk[i1beg]; } for(i=i2beg+1; i(0, 0, z[i]); } else { k += nVphi; } } if (absNp2 > 1) { i = i2end; if (ifSide2) { kk[i] = k; - if (r[i] == 0.) pV[k] = HepPoint3D(0, 0, z[i]); + if (r[i] == 0.) pV[k] = Point3D(0, 0, z[i]); }else{ kk[i] = kk[i1end]; } @@ -545,7 +558,8 @@ void HepPolyhedron::RotateAroundZ(int nstep, double phi, double dphi, cosPhi = std::cos(phi+j*delPhi/nSphi); sinPhi = std::sin(phi+j*delPhi/nSphi); for(i=i1beg; i<=i2end; i++) { - if (r[i] != 0.) pV[kk[i]+j] = HepPoint3D(r[i]*cosPhi,r[i]*sinPhi,z[i]); + if (r[i] != 0.) + pV[kk[i]+j] = Point3D(r[i]*cosPhi,r[i]*sinPhi,z[i]); } } @@ -563,11 +577,11 @@ void HepPolyhedron::RotateAroundZ(int nstep, double phi, double dphi, v2 = (r[i] == r[i+1] && r[i+1] == r[i+2]) ? -1 : nodeVis; } RotateEdge(kk[i], kk[i+1], r[i], r[i+1], v1, v2, - edgeVis, ifWholeCircle, nSphi, k); + edgeVis, ifWholeCircle, nSphi, k); } if (ifClosed) { RotateEdge(kk[i1end], kk[i1beg], r[i1end],r[i1beg], nodeVis, nodeVis, - edgeVis, ifWholeCircle, nSphi, k); + edgeVis, ifWholeCircle, nSphi, k); } // G E N E R A T E I N T E R N A L F A C E S @@ -577,16 +591,16 @@ void HepPolyhedron::RotateAroundZ(int nstep, double phi, double dphi, for(i=i2beg; inext; + headList[k1] = freeList; + freeList = freeList->next; cur = headList[k1]; - cur->next = 0; - cur->v2 = k2; - cur->iface = iface; - cur->iedge = iedge; + cur->next = 0; + cur->v2 = k2; + cur->iface = iface; + cur->iedge = iedge; continue; - } + } if (cur->v2 == k2) { headList[k1] = cur->next; - cur->next = freeList; + cur->next = freeList; freeList = cur; pF[iface].edge[iedge].f = cur->iface; - pF[cur->iface].edge[cur->iedge].f = iface; + pF[cur->iface].edge[cur->iedge].f = iface; i1 = (pF[iface].edge[iedge].v < 0) ? -1 : 1; - i2 = (pF[cur->iface].edge[cur->iedge].v < 0) ? -1 : 1; + i2 = (pF[cur->iface].edge[cur->iedge].v < 0) ? -1 : 1; if (i1 != i2) { - std::cerr - << "Polyhedron::SetReferences: different edge visibility " - << iface << "/" << iedge << "/" - << pF[iface].edge[iedge].v << " and " - << cur->iface << "/" << cur->iedge << "/" - << pF[cur->iface].edge[cur->iedge].v - << std::endl; - } - continue; + std::cerr + << "Polyhedron::SetReferences: different edge visibility " + << iface << "/" << iedge << "/" + << pF[iface].edge[iedge].v << " and " + << cur->iface << "/" << cur->iedge << "/" + << pF[cur->iface].edge[cur->iedge].v + << std::endl; + } + continue; } // check List itself for (;;) { - prev = cur; - cur = prev->next; - if (cur == 0) { - prev->next = freeList; - freeList = freeList->next; - cur = prev->next; - cur->next = 0; - cur->v2 = k2; - cur->iface = iface; - cur->iedge = iedge; - break; - } + prev = cur; + cur = prev->next; + if (cur == 0) { + prev->next = freeList; + freeList = freeList->next; + cur = prev->next; + cur->next = 0; + cur->v2 = k2; + cur->iface = iface; + cur->iedge = iedge; + break; + } if (cur->v2 == k2) { - prev->next = cur->next; - cur->next = freeList; - freeList = cur; - pF[iface].edge[iedge].f = cur->iface; - pF[cur->iface].edge[cur->iedge].f = iface; - i1 = (pF[iface].edge[iedge].v < 0) ? -1 : 1; - i2 = (pF[cur->iface].edge[cur->iedge].v < 0) ? -1 : 1; - if (i1 != i2) { - std::cerr - << "Polyhedron::SetReferences: different edge visibility " - << iface << "/" << iedge << "/" - << pF[iface].edge[iedge].v << " and " - << cur->iface << "/" << cur->iedge << "/" - << pF[cur->iface].edge[cur->iedge].v - << std::endl; - } - break; - } + prev->next = cur->next; + cur->next = freeList; + freeList = cur; + pF[iface].edge[iedge].f = cur->iface; + pF[cur->iface].edge[cur->iedge].f = iface; + i1 = (pF[iface].edge[iedge].v < 0) ? -1 : 1; + i2 = (pF[cur->iface].edge[cur->iedge].v < 0) ? -1 : 1; + if (i1 != i2) { + std::cerr + << "Polyhedron::SetReferences: different edge visibility " + << iface << "/" << iedge << "/" + << pF[iface].edge[iedge].v << " and " + << cur->iface << "/" << cur->iedge << "/" + << pF[cur->iface].edge[cur->iedge].v + << std::endl; + } + break; + } } } } @@ -773,8 +787,8 @@ void HepPolyhedron::SetReferences() for (i=0; i d = t * Vector3D(0,0,0); + Vector3D x = t * Vector3D(1,0,0) - d; + Vector3D y = t * Vector3D(0,1,0) - d; + Vector3D z = t * Vector3D(0,0,1) - d; if ((x.cross(y))*z < 0) InvertFacets(); } return *this; @@ -862,7 +876,7 @@ bool HepPolyhedron::GetNextVertexIndex(int &index, int &edgeFlag) const } } -HepPoint3D HepPolyhedron::GetVertex(int index) const +Point3D HepPolyhedron::GetVertex(int index) const /*********************************************************************** * * * Name: HepPolyhedron::GetVertex Date: 03.09.96 * @@ -876,13 +890,13 @@ HepPoint3D HepPolyhedron::GetVertex(int index) const std::cerr << "HepPolyhedron::GetVertex: irrelevant index " << index << std::endl; - return HepPoint3D(); + return Point3D(); } return pV[index]; } bool -HepPolyhedron::GetNextVertex(HepPoint3D &vertex, int &edgeFlag) const +HepPolyhedron::GetNextVertex(Point3D &vertex, int &edgeFlag) const /*********************************************************************** * * * Name: HepPolyhedron::GetNextVertex Date: 22.07.96 * @@ -900,8 +914,8 @@ HepPolyhedron::GetNextVertex(HepPoint3D &vertex, int &edgeFlag) const return rep; } -bool HepPolyhedron::GetNextVertex(HepPoint3D &vertex, int &edgeFlag, - HepNormal3D &normal) const +bool HepPolyhedron::GetNextVertex(Point3D &vertex, int &edgeFlag, + Normal3D &normal) const /*********************************************************************** * * * Name: HepPolyhedron::GetNextVertex Date: 26.11.99 * @@ -933,7 +947,7 @@ bool HepPolyhedron::GetNextVertex(HepPoint3D &vertex, int &edgeFlag, } bool HepPolyhedron::GetNextEdgeIndeces(int &i1, int &i2, int &edgeFlag, - int &iface1, int &iface2) const + int &iface1, int &iface2) const /*********************************************************************** * * * Name: HepPolyhedron::GetNextEdgeIndeces Date: 30.09.96 * @@ -1001,9 +1015,9 @@ HepPolyhedron::GetNextEdgeIndeces(int &i1, int &i2, int &edgeFlag) const } bool -HepPolyhedron::GetNextEdge(HepPoint3D &p1, - HepPoint3D &p2, - int &edgeFlag) const +HepPolyhedron::GetNextEdge(Point3D &p1, + Point3D &p2, + int &edgeFlag) const /*********************************************************************** * * * Name: HepPolyhedron::GetNextEdge Date: 30.09.96 * @@ -1022,8 +1036,8 @@ HepPolyhedron::GetNextEdge(HepPoint3D &p1, } bool -HepPolyhedron::GetNextEdge(HepPoint3D &p1, HepPoint3D &p2, - int &edgeFlag, int &iface1, int &iface2) const +HepPolyhedron::GetNextEdge(Point3D &p1, Point3D &p2, + int &edgeFlag, int &iface1, int &iface2) const /*********************************************************************** * * * Name: HepPolyhedron::GetNextEdge Date: 17.11.99 * @@ -1043,7 +1057,7 @@ HepPolyhedron::GetNextEdge(HepPoint3D &p1, HepPoint3D &p2, } void HepPolyhedron::GetFacet(int iFace, int &n, int *iNodes, - int *edgeFlags, int *iFaces) const + int *edgeFlags, int *iFaces) const /*********************************************************************** * * * Name: HepPolyhedron::GetFacet Date: 15.12.99 * @@ -1065,19 +1079,19 @@ void HepPolyhedron::GetFacet(int iFace, int &n, int *iNodes, if (k == 0) break; if (iFaces != 0) iFaces[i] = pF[iFace].edge[i].f; if (k > 0) { - iNodes[i] = k; - if (edgeFlags != 0) edgeFlags[i] = 1; + iNodes[i] = k; + if (edgeFlags != 0) edgeFlags[i] = 1; }else{ - iNodes[i] = -k; - if (edgeFlags != 0) edgeFlags[i] = -1; + iNodes[i] = -k; + if (edgeFlags != 0) edgeFlags[i] = -1; } } n = i; } } -void HepPolyhedron::GetFacet(int index, int &n, HepPoint3D *nodes, - int *edgeFlags, HepNormal3D *normals) const +void HepPolyhedron::GetFacet(int index, int &n, Point3D *nodes, + int *edgeFlags, Normal3D *normals) const /*********************************************************************** * * * Name: HepPolyhedron::GetFacet Date: 17.11.99 * @@ -1098,8 +1112,8 @@ void HepPolyhedron::GetFacet(int index, int &n, HepPoint3D *nodes, } bool -HepPolyhedron::GetNextFacet(int &n, HepPoint3D *nodes, - int *edgeFlags, HepNormal3D *normals) const +HepPolyhedron::GetNextFacet(int &n, Point3D *nodes, + int *edgeFlags, Normal3D *normals) const /*********************************************************************** * * * Name: HepPolyhedron::GetNextFacet Date: 19.11.99 * @@ -1128,7 +1142,7 @@ HepPolyhedron::GetNextFacet(int &n, HepPoint3D *nodes, } } -HepNormal3D HepPolyhedron::GetNormal(int iFace) const +Normal3D HepPolyhedron::GetNormal(int iFace) const /*********************************************************************** * * * Name: HepPolyhedron::GetNormal Date: 19.11.99 * @@ -1142,7 +1156,7 @@ HepNormal3D HepPolyhedron::GetNormal(int iFace) const std::cerr << "HepPolyhedron::GetNormal: irrelevant index " << iFace << std::endl; - return HepNormal3D(); + return Normal3D(); } int i0 = std::abs(pF[iFace].edge[0].v); @@ -1153,7 +1167,7 @@ HepNormal3D HepPolyhedron::GetNormal(int iFace) const return (pV[i2] - pV[i0]).cross(pV[i3] - pV[i1]); } -HepNormal3D HepPolyhedron::GetUnitNormal(int iFace) const +Normal3D HepPolyhedron::GetUnitNormal(int iFace) const /*********************************************************************** * * * Name: HepPolyhedron::GetNormal Date: 19.11.99 * @@ -1167,7 +1181,7 @@ HepNormal3D HepPolyhedron::GetUnitNormal(int iFace) const std::cerr << "HepPolyhedron::GetUnitNormal: irrelevant index " << iFace << std::endl; - return HepNormal3D(); + return Normal3D(); } int i0 = std::abs(pF[iFace].edge[0].v); @@ -1178,7 +1192,7 @@ HepNormal3D HepPolyhedron::GetUnitNormal(int iFace) const return ((pV[i2] - pV[i0]).cross(pV[i3] - pV[i1])).unit(); } -bool HepPolyhedron::GetNextNormal(HepNormal3D &normal) const +bool HepPolyhedron::GetNextNormal(Normal3D &normal) const /*********************************************************************** * * * Name: HepPolyhedron::GetNextNormal Date: 22.07.96 * @@ -1199,7 +1213,7 @@ bool HepPolyhedron::GetNextNormal(HepNormal3D &normal) const } } -bool HepPolyhedron::GetNextUnitNormal(HepNormal3D &normal) const +bool HepPolyhedron::GetNextUnitNormal(Normal3D &normal) const /*********************************************************************** * * * Name: HepPolyhedron::GetNextUnitNormal Date: 16.09.96 * @@ -1253,7 +1267,7 @@ double HepPolyhedron::GetVolume() const int i1 = std::abs(pF[iFace].edge[1].v); int i2 = std::abs(pF[iFace].edge[2].v); int i3 = std::abs(pF[iFace].edge[3].v); - HepPoint3D g; + Point3D g; if (i3 == 0) { i3 = i0; g = (pV[i0]+pV[i1]+pV[i2]) * (1./3.); @@ -1267,8 +1281,8 @@ double HepPolyhedron::GetVolume() const int HepPolyhedron::createTwistedTrap(double Dz, - const double xy1[][2], - const double xy2[][2]) + const double xy1[][2], + const double xy2[][2]) /*********************************************************************** * * * Name: createTwistedTrap Date: 05.11.02 * @@ -1285,15 +1299,15 @@ HepPolyhedron::createTwistedTrap(double Dz, { AllocateMemory(12,18); - pV[ 1] = HepPoint3D(xy1[0][0],xy1[0][1],-Dz); - pV[ 2] = HepPoint3D(xy1[1][0],xy1[1][1],-Dz); - pV[ 3] = HepPoint3D(xy1[2][0],xy1[2][1],-Dz); - pV[ 4] = HepPoint3D(xy1[3][0],xy1[3][1],-Dz); + pV[ 1] = Point3D(xy1[0][0],xy1[0][1],-Dz); + pV[ 2] = Point3D(xy1[1][0],xy1[1][1],-Dz); + pV[ 3] = Point3D(xy1[2][0],xy1[2][1],-Dz); + pV[ 4] = Point3D(xy1[3][0],xy1[3][1],-Dz); - pV[ 5] = HepPoint3D(xy2[0][0],xy2[0][1], Dz); - pV[ 6] = HepPoint3D(xy2[1][0],xy2[1][1], Dz); - pV[ 7] = HepPoint3D(xy2[2][0],xy2[2][1], Dz); - pV[ 8] = HepPoint3D(xy2[3][0],xy2[3][1], Dz); + pV[ 5] = Point3D(xy2[0][0],xy2[0][1], Dz); + pV[ 6] = Point3D(xy2[1][0],xy2[1][1], Dz); + pV[ 7] = Point3D(xy2[2][0],xy2[2][1], Dz); + pV[ 8] = Point3D(xy2[3][0],xy2[3][1], Dz); pV[ 9] = (pV[1]+pV[2]+pV[5]+pV[6])/4.; pV[10] = (pV[2]+pV[3]+pV[6]+pV[7])/4.; @@ -1301,9 +1315,9 @@ HepPolyhedron::createTwistedTrap(double Dz, pV[12] = (pV[4]+pV[1]+pV[8]+pV[5])/4.; enum {DUMMY, BOTTOM, - LEFT_BOTTOM, LEFT_FRONT, LEFT_TOP, LEFT_BACK, - BACK_BOTTOM, BACK_LEFT, BACK_TOP, BACK_RIGHT, - RIGHT_BOTTOM, RIGHT_BACK, RIGHT_TOP, RIGHT_FRONT, + LEFT_BOTTOM, LEFT_FRONT, LEFT_TOP, LEFT_BACK, + BACK_BOTTOM, BACK_LEFT, BACK_TOP, BACK_RIGHT, + RIGHT_BOTTOM, RIGHT_BACK, RIGHT_TOP, RIGHT_FRONT, FRONT_BOTTOM, FRONT_RIGHT, FRONT_TOP, FRONT_LEFT, TOP}; @@ -1336,8 +1350,8 @@ HepPolyhedron::createTwistedTrap(double Dz, int HepPolyhedron::createPolyhedron(int Nnodes, int Nfaces, - const double xyz[][3], - const int faces[][4]) + const double xyz[][3], + const int faces[][4]) /*********************************************************************** * * * Name: createPolyhedron Date: 05.11.02 * @@ -1356,7 +1370,7 @@ HepPolyhedron::createPolyhedron(int Nnodes, int Nfaces, if (nvert == 0) return 1; for (int i=0; i(xyz[i][0], xyz[i][1], xyz[i][2]); } for (int k=0; k(-Dx1,-Dy1,-Dz); + pV[2] = Point3D( Dx1,-Dy1,-Dz); + pV[3] = Point3D( Dx1, Dy1,-Dz); + pV[4] = Point3D(-Dx1, Dy1,-Dz); + pV[5] = Point3D(-Dx2,-Dy2, Dz); + pV[6] = Point3D( Dx2,-Dy2, Dz); + pV[7] = Point3D( Dx2, Dy2, Dz); + pV[8] = Point3D(-Dx2, Dy2, Dz); CreatePrism(); } @@ -1400,7 +1414,7 @@ HepPolyhedronTrd2::HepPolyhedronTrd2(double Dx1, double Dx2, HepPolyhedronTrd2::~HepPolyhedronTrd2() {} HepPolyhedronTrd1::HepPolyhedronTrd1(double Dx1, double Dx2, - double Dy, double Dz) + double Dy, double Dz) : HepPolyhedronTrd2(Dx1, Dx2, Dy, Dy, Dz) {} HepPolyhedronTrd1::~HepPolyhedronTrd1() {} @@ -1411,16 +1425,16 @@ HepPolyhedronBox::HepPolyhedronBox(double Dx, double Dy, double Dz) HepPolyhedronBox::~HepPolyhedronBox() {} HepPolyhedronTrap::HepPolyhedronTrap(double Dz, - double Theta, - double Phi, - double Dy1, - double Dx1, - double Dx2, - double Alp1, - double Dy2, - double Dx3, - double Dx4, - double Alp2) + double Theta, + double Phi, + double Dy1, + double Dx1, + double Dx2, + double Alp1, + double Dy2, + double Dx3, + double Dx4, + double Alp2) /*********************************************************************** * * * Name: HepPolyhedronTrap Date: 20.11.96 * @@ -1451,14 +1465,14 @@ HepPolyhedronTrap::HepPolyhedronTrap(double Dz, AllocateMemory(8,6); - pV[1] = HepPoint3D(-DzTthetaCphi-Dy1Talp1-Dx1,-DzTthetaSphi-Dy1,-Dz); - pV[2] = HepPoint3D(-DzTthetaCphi-Dy1Talp1+Dx1,-DzTthetaSphi-Dy1,-Dz); - pV[3] = HepPoint3D(-DzTthetaCphi+Dy1Talp1+Dx2,-DzTthetaSphi+Dy1,-Dz); - pV[4] = HepPoint3D(-DzTthetaCphi+Dy1Talp1-Dx2,-DzTthetaSphi+Dy1,-Dz); - pV[5] = HepPoint3D( DzTthetaCphi-Dy2Talp2-Dx3, DzTthetaSphi-Dy2, Dz); - pV[6] = HepPoint3D( DzTthetaCphi-Dy2Talp2+Dx3, DzTthetaSphi-Dy2, Dz); - pV[7] = HepPoint3D( DzTthetaCphi+Dy2Talp2+Dx4, DzTthetaSphi+Dy2, Dz); - pV[8] = HepPoint3D( DzTthetaCphi+Dy2Talp2-Dx4, DzTthetaSphi+Dy2, Dz); + pV[1] = Point3D(-DzTthetaCphi-Dy1Talp1-Dx1,-DzTthetaSphi-Dy1,-Dz); + pV[2] = Point3D(-DzTthetaCphi-Dy1Talp1+Dx1,-DzTthetaSphi-Dy1,-Dz); + pV[3] = Point3D(-DzTthetaCphi+Dy1Talp1+Dx2,-DzTthetaSphi+Dy1,-Dz); + pV[4] = Point3D(-DzTthetaCphi+Dy1Talp1-Dx2,-DzTthetaSphi+Dy1,-Dz); + pV[5] = Point3D( DzTthetaCphi-Dy2Talp2-Dx3, DzTthetaSphi-Dy2, Dz); + pV[6] = Point3D( DzTthetaCphi-Dy2Talp2+Dx3, DzTthetaSphi-Dy2, Dz); + pV[7] = Point3D( DzTthetaCphi+Dy2Talp2+Dx4, DzTthetaSphi+Dy2, Dz); + pV[8] = Point3D( DzTthetaCphi+Dy2Talp2-Dx4, DzTthetaSphi+Dy2, Dz); CreatePrism(); } @@ -1466,19 +1480,19 @@ HepPolyhedronTrap::HepPolyhedronTrap(double Dz, HepPolyhedronTrap::~HepPolyhedronTrap() {} HepPolyhedronPara::HepPolyhedronPara(double Dx, double Dy, double Dz, - double Alpha, double Theta, - double Phi) + double Alpha, double Theta, + double Phi) : HepPolyhedronTrap(Dz, Theta, Phi, Dy, Dx, Dx, Alpha, Dy, Dx, Dx, Alpha) {} HepPolyhedronPara::~HepPolyhedronPara() {} HepPolyhedronCons::HepPolyhedronCons(double Rmn1, - double Rmx1, - double Rmn2, - double Rmx2, - double Dz, - double Phi1, - double Dphi) + double Rmx1, + double Rmn2, + double Rmx2, + double Dz, + double Phi1, + double Dphi) /*********************************************************************** * * * Name: HepPolyhedronCons::HepPolyhedronCons Date: 15.12.96 * @@ -1526,7 +1540,7 @@ HepPolyhedronCons::HepPolyhedronCons(double Rmn1, std::cerr << " Rmn1=" << Rmn1 << " Rmx1=" << Rmx1; std::cerr << " Rmn2=" << Rmn2 << " Rmx2=" << Rmx2; std::cerr << " Dz=" << Dz << " Phi1=" << Phi1 << " Dphi=" << Dphi - << std::endl; + << std::endl; return; } @@ -1551,32 +1565,32 @@ HepPolyhedronCons::HepPolyhedronCons(double Rmn1, HepPolyhedronCons::~HepPolyhedronCons() {} HepPolyhedronCone::HepPolyhedronCone(double Rmn1, double Rmx1, - double Rmn2, double Rmx2, - double Dz) : + double Rmn2, double Rmx2, + double Dz) : HepPolyhedronCons(Rmn1, Rmx1, Rmn2, Rmx2, Dz, 0*deg, 360*deg) {} HepPolyhedronCone::~HepPolyhedronCone() {} HepPolyhedronTubs::HepPolyhedronTubs(double Rmin, double Rmax, - double Dz, - double Phi1, double Dphi) + double Dz, + double Phi1, double Dphi) : HepPolyhedronCons(Rmin, Rmax, Rmin, Rmax, Dz, Phi1, Dphi) {} HepPolyhedronTubs::~HepPolyhedronTubs() {} HepPolyhedronTube::HepPolyhedronTube (double Rmin, double Rmax, - double Dz) + double Dz) : HepPolyhedronCons(Rmin, Rmax, Rmin, Rmax, Dz, 0*deg, 360*deg) {} HepPolyhedronTube::~HepPolyhedronTube () {} HepPolyhedronPgon::HepPolyhedronPgon(double phi, - double dphi, - int npdv, - int nz, - const double *z, - const double *rmin, - const double *rmax) + double dphi, + int npdv, + int nz, + const double *z, + const double *rmin, + const double *rmax) /*********************************************************************** * * * Name: HepPolyhedronPgon Date: 09.12.96 * @@ -1621,9 +1635,9 @@ HepPolyhedronPgon::HepPolyhedronPgon(double phi, for (i=0; i rmax[i]) { std::cerr - << "HepPolyhedronPgon: error in radiuses rmin[" << i << "]=" - << rmin[i] << " rmax[" << i << "]=" << rmax[i] - << std::endl; + << "HepPolyhedronPgon: error in radiuses rmin[" << i << "]=" + << rmin[i] << " rmax[" << i << "]=" << rmax[i] + << std::endl; return; } } @@ -1662,16 +1676,16 @@ HepPolyhedronPgon::HepPolyhedronPgon(double phi, HepPolyhedronPgon::~HepPolyhedronPgon() {} HepPolyhedronPcon::HepPolyhedronPcon(double phi, double dphi, int nz, - const double *z, - const double *rmin, - const double *rmax) + const double *z, + const double *rmin, + const double *rmax) : HepPolyhedronPgon(phi, dphi, 0, nz, z, rmin, rmax) {} HepPolyhedronPcon::~HepPolyhedronPcon() {} HepPolyhedronSphere::HepPolyhedronSphere(double rmin, double rmax, - double phi, double dphi, - double the, double dthe) + double phi, double dphi, + double the, double dthe) /*********************************************************************** * * * Name: HepPolyhedronSphere Date: 11.12.96 * @@ -1767,10 +1781,10 @@ HepPolyhedronSphere::HepPolyhedronSphere(double rmin, double rmax, HepPolyhedronSphere::~HepPolyhedronSphere() {} HepPolyhedronTorus::HepPolyhedronTorus(double rmin, - double rmax, - double rtor, - double phi, - double dphi) + double rmax, + double rtor, + double phi, + double dphi) /*********************************************************************** * * * Name: HepPolyhedronTorus Date: 11.12.96 * @@ -1841,6 +1855,193 @@ HepPolyhedronTorus::HepPolyhedronTorus(double rmin, HepPolyhedronTorus::~HepPolyhedronTorus() {} +HepPolyhedronEllipsoid::HepPolyhedronEllipsoid(double ax, double by, + double cz, double zCut1, + double zCut2) +/*********************************************************************** + * * + * Name: HepPolyhedronEllipsoid Date: 25.02.05 * + * Author: G.Guerrieri Revised: * + * * + * Function: Constructor of polyhedron for ELLIPSOID * + * * + * Input: ax - semiaxis x * + * by - semiaxis y * + * cz - semiaxis z * + * zCut1 - lower cut plane level (solid lies above this plane) * + * zCut2 - upper cut plane level (solid lies below this plane) * + * * + ***********************************************************************/ +{ + // C H E C K I N P U T P A R A M E T E R S + + if (zCut1 >= cz || zCut2 <= -cz || zCut1 > zCut2) { + std::cerr << "HepPolyhedronEllipsoid: wrong zCut1 = " << zCut1 + << " zCut2 = " << zCut2 + << " for given cz = " << cz << std::endl; + return; + } + if (cz <= 0.0) { + std::cerr << "HepPolyhedronEllipsoid: bad z semi-axis: cz = " << cz + << std::endl; + return; + } + + double dthe; + double sthe; + int cutflag; + cutflag= 0; + if (zCut2 >= cz) + { + sthe= 0.0; + } + else + { + sthe= std::acos(zCut2/cz); + cutflag++; + } + if (zCut1 <= -cz) + { + dthe= pi - sthe; + } + else + { + dthe= std::acos(zCut1/cz)-sthe; + cutflag++; + } + + // P R E P A R E T W O P O L Y L I N E S + // generate sphere of radius cz first, then rescale x and y later + + int ns = (GetNumberOfRotationSteps() + 1) / 2; + int np1 = int(dthe*ns/pi) + 2 + cutflag; + + double *zz, *rr; + zz = new double[np1+1]; + rr = new double[np1+1]; + if (!zz || !rr) + { + std::cerr << "Out of memory in HepPolyhedronEllipsoid!" << std::endl; + //Exception("Out of memory in HepPolyhedronEllipsoid!"); + } + + double a = dthe/(np1-cutflag-1); + double cosa, sina; + int j=0; + if (sthe > 0.0) + { + zz[j]= zCut2; + rr[j]= 0.; + j++; + } + for (int i=0; i np1) + { + std::cerr << "Logic error in HepPolyhedronEllipsoid, memory corrupted!" + << std::endl; + } + if (j < np1) + { + std::cerr << "Warning: logic error in HepPolyhedronEllipsoid." + << std::endl; + np1= j; + } + zz[j] = 0.; + rr[j] = 0.; + + + // R O T A T E P O L Y L I N E S + + RotateAroundZ(0, 0.0, twopi, np1, 1, zz, rr, -1, 1); + SetReferences(); + + delete [] zz; + delete [] rr; + + // rescale x and y vertex coordinates + { + Point3D * p= pV; + for (int i=0; isetX( p->x() * ax/cz ); + p->setY( p->y() * by/cz ); + } + } +} + +HepPolyhedronEllipsoid::~HepPolyhedronEllipsoid() {} + +HepPolyhedronEllipticalCone::HepPolyhedronEllipticalCone(double ax, + double ay, + double h, + double zTopCut) +/*********************************************************************** + * * + * Name: HepPolyhedronEllipticalCone Date: 8.9.2005 * + * Author: D.Anninos Revised: 9.9.2005 * + * * + * Function: Constructor for EllipticalCone * + * * + * Input: ax, ay - X & Y semi axes at z = 0 * + * h - height of full cone * + * zTopCut - Top Cut in Z Axis * + * * + ***********************************************************************/ +{ + // C H E C K I N P U T P A R A M E T E R S + + int k = 0; + if ( (ax <= 0.) || (ay <= 0.) || (h <= 0.) || (zTopCut <= 0.) ) { k = 1; } + + if (k != 0) { + std::cerr << "HepPolyhedronCone: error in input parameters"; + std::cerr << std::endl; + return; + } + + // P R E P A R E T W O P O L Y L I N E S + + zTopCut = (h >= zTopCut ? zTopCut : h); + + double *zz, *rr; + zz = new double[2]; + rr = new double[2]; + zz[0] = zTopCut; + zz[1] = -zTopCut; + rr[0] = (h-zTopCut); + rr[1] = (h+zTopCut); + + // R O T A T E P O L Y L I N E S + + RotateAroundZ(0, 0., twopi, 2, 1, zz, rr, -1, 1); + SetReferences(); + + delete [] zz; + delete [] rr; + + // rescale x and y vertex coordinates + { + Point3D * p= pV; + for (int i=0; isetX( p->x() * ax ); + p->setY( p->y() * ay ); + } + } +} + +HepPolyhedronEllipticalCone::~HepPolyhedronEllipticalCone() {} + int HepPolyhedron::fNumberOfRotationSteps = DEFAULT_NUMBER_OF_STEPS; /*********************************************************************** * * diff --git a/source/intercoms/History b/source/intercoms/History index d14785bf80..5162f50309 100644 --- a/source/intercoms/History +++ b/source/intercoms/History @@ -1,4 +1,4 @@ -$Id: History,v 1.60 2005/05/19 16:11:53 asaim Exp $ +$Id: History,v 1.65 2005/11/09 10:12:31 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,19 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 9, 2005 Gabriele Cosmo (intercoms-V07-01-03) +- Removed inclusion of from G4UImessenger.hh. +- The tag coworks with: run-V07-01-05, radioactive_decay-V07-01-00. + +October 26, 2005 Koichi Murakami (intercoms-V07-01-02) +- Migration from strstream to sstream + +October 20, 2005, Joseph Perl (intercoms-V07-01-01) +- Tag to co-work with vis-V07-01-05. + +October 17, 2005 Jane Tinslay +- intercoms->graphics_reps migration for G4VGraphicsScene and G4VVisManager + May 19, 2005, M.Asai (intercoms-V07-00-02) - G4UIbatch is modified so that it now aborts the execution of the macro file (and any other parent macro files which issued this macro file) if a coomand diff --git a/source/intercoms/include/G4UIaliasList.hh b/source/intercoms/include/G4UIaliasList.hh index 39d1c03d38..0bf10d8208 100644 --- a/source/intercoms/include/G4UIaliasList.hh +++ b/source/intercoms/include/G4UIaliasList.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIaliasList.hh,v 1.5 2003/06/16 16:55:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4UIaliasList_h diff --git a/source/intercoms/include/G4UIbatch.hh b/source/intercoms/include/G4UIbatch.hh index d5972b720f..09a296f1b3 100644 --- a/source/intercoms/include/G4UIbatch.hh +++ b/source/intercoms/include/G4UIbatch.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIbatch.hh,v 1.8 2005/05/19 16:11:53 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $id$ diff --git a/source/intercoms/include/G4UIcmdWith3Vector.hh b/source/intercoms/include/G4UIcmdWith3Vector.hh index ce0f6eb531..bb01004b78 100644 --- a/source/intercoms/include/G4UIcmdWith3Vector.hh +++ b/source/intercoms/include/G4UIcmdWith3Vector.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWith3Vector.hh,v 1.6 2004/05/16 18:42:29 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh b/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh index b80b7e177d..44ebd0cea8 100644 --- a/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh +++ b/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWith3VectorAndUnit.hh,v 1.7 2004/05/16 20:42:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithABool.hh b/source/intercoms/include/G4UIcmdWithABool.hh index 12560db8e4..c0048e3707 100644 --- a/source/intercoms/include/G4UIcmdWithABool.hh +++ b/source/intercoms/include/G4UIcmdWithABool.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithABool.hh,v 1.6 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithADouble.hh b/source/intercoms/include/G4UIcmdWithADouble.hh index 6159433d83..d5df150514 100644 --- a/source/intercoms/include/G4UIcmdWithADouble.hh +++ b/source/intercoms/include/G4UIcmdWithADouble.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithADouble.hh,v 1.6 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh b/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh index 4965cd5d3a..59616e55b5 100644 --- a/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh +++ b/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithADoubleAndUnit.hh,v 1.7 2004/05/16 20:42:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithAString.hh b/source/intercoms/include/G4UIcmdWithAString.hh index 1092b66fca..8a2b86bfba 100644 --- a/source/intercoms/include/G4UIcmdWithAString.hh +++ b/source/intercoms/include/G4UIcmdWithAString.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithAString.hh,v 1.4 2001/07/11 10:01:12 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithAnInteger.hh b/source/intercoms/include/G4UIcmdWithAnInteger.hh index 26671229a5..a8f22d68de 100644 --- a/source/intercoms/include/G4UIcmdWithAnInteger.hh +++ b/source/intercoms/include/G4UIcmdWithAnInteger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithAnInteger.hh,v 1.6 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithoutParameter.hh b/source/intercoms/include/G4UIcmdWithoutParameter.hh index 62c8e7bf64..67c2855f9d 100644 --- a/source/intercoms/include/G4UIcmdWithoutParameter.hh +++ b/source/intercoms/include/G4UIcmdWithoutParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithoutParameter.hh,v 1.4 2001/07/11 10:01:13 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcommand.hh b/source/intercoms/include/G4UIcommand.hh index 1d6a690b29..135d857f1f 100644 --- a/source/intercoms/include/G4UIcommand.hh +++ b/source/intercoms/include/G4UIcommand.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcommand.hh,v 1.14 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UIcommandStatus.hh b/source/intercoms/include/G4UIcommandStatus.hh index d133506066..cc36932ad2 100644 --- a/source/intercoms/include/G4UIcommandStatus.hh +++ b/source/intercoms/include/G4UIcommandStatus.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcommandStatus.hh,v 1.4 2001/10/04 23:15:27 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4UIcommandStatus_h diff --git a/source/intercoms/include/G4UIcommandTree.hh b/source/intercoms/include/G4UIcommandTree.hh index b29108d518..73ff589f32 100644 --- a/source/intercoms/include/G4UIcommandTree.hh +++ b/source/intercoms/include/G4UIcommandTree.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcommandTree.hh,v 1.14 2003/06/16 16:55:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4UIcommandTree_h diff --git a/source/intercoms/include/G4UIcontrolMessenger.hh b/source/intercoms/include/G4UIcontrolMessenger.hh index c5ed313fe7..aa8e2b5a16 100644 --- a/source/intercoms/include/G4UIcontrolMessenger.hh +++ b/source/intercoms/include/G4UIcontrolMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcontrolMessenger.hh,v 1.10 2002/05/15 06:51:31 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4UIcontrolMessenger_h diff --git a/source/intercoms/include/G4UIdirectory.hh b/source/intercoms/include/G4UIdirectory.hh index 29973ccc94..d239fe7b1b 100644 --- a/source/intercoms/include/G4UIdirectory.hh +++ b/source/intercoms/include/G4UIdirectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIdirectory.hh,v 1.4 2001/07/11 10:01:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/include/G4UImanager.hh b/source/intercoms/include/G4UImanager.hh index e00fbb6408..de502945d6 100644 --- a/source/intercoms/include/G4UImanager.hh +++ b/source/intercoms/include/G4UImanager.hh @@ -22,7 +22,7 @@ // // // $Id: G4UImanager.hh,v 1.20 2003/06/16 16:55:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4UImanager_h diff --git a/source/intercoms/include/G4UImessenger.hh b/source/intercoms/include/G4UImessenger.hh index 4e87fe5034..0a5efa9c23 100644 --- a/source/intercoms/include/G4UImessenger.hh +++ b/source/intercoms/include/G4UImessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UImessenger.hh,v 1.6 2001/10/11 13:29:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UImessenger.hh,v 1.8 2005/11/09 10:09:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4UImessenger_h diff --git a/source/intercoms/include/G4UIparameter.hh b/source/intercoms/include/G4UIparameter.hh index d563fa2286..2e0c66cedd 100644 --- a/source/intercoms/include/G4UIparameter.hh +++ b/source/intercoms/include/G4UIparameter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIparameter.hh,v 1.7 2003/06/16 16:55:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIparameter.hh,v 1.8 2005/10/26 06:09:15 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------------- @@ -31,9 +31,6 @@ #define G4UIparameter_h 1 #include "globals.hh" - -#include - #include "G4UItokenNum.hh" // class description: diff --git a/source/intercoms/include/G4UIsession.hh b/source/intercoms/include/G4UIsession.hh index 5e37406d84..c7eb241ee0 100644 --- a/source/intercoms/include/G4UIsession.hh +++ b/source/intercoms/include/G4UIsession.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIsession.hh,v 1.4 2001/07/11 10:01:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $id$ diff --git a/source/intercoms/include/G4UItokenNum.hh b/source/intercoms/include/G4UItokenNum.hh index 5d42092558..775cb4ecf2 100644 --- a/source/intercoms/include/G4UItokenNum.hh +++ b/source/intercoms/include/G4UItokenNum.hh @@ -22,7 +22,7 @@ // // // $Id: G4UItokenNum.hh,v 1.7 2003/06/07 16:40:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4UItokenNum.hh diff --git a/source/intercoms/include/G4UnitsMessenger.hh b/source/intercoms/include/G4UnitsMessenger.hh index d27b0ee1b5..2696d7f3a7 100644 --- a/source/intercoms/include/G4UnitsMessenger.hh +++ b/source/intercoms/include/G4UnitsMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnitsMessenger.hh,v 1.4 2001/07/11 10:01:15 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description // diff --git a/source/intercoms/include/G4VFlavoredParallelWorld.hh b/source/intercoms/include/G4VFlavoredParallelWorld.hh index f38b01715f..260061a015 100644 --- a/source/intercoms/include/G4VFlavoredParallelWorld.hh +++ b/source/intercoms/include/G4VFlavoredParallelWorld.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFlavoredParallelWorld.hh,v 1.3 2001/07/11 10:01:15 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Abstract interface for GEANT4 Flavored Parallel World. diff --git a/source/intercoms/include/G4VGlobalFastSimulationManager.hh b/source/intercoms/include/G4VGlobalFastSimulationManager.hh index 4f5ecce519..f5dc5818cd 100644 --- a/source/intercoms/include/G4VGlobalFastSimulationManager.hh +++ b/source/intercoms/include/G4VGlobalFastSimulationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGlobalFastSimulationManager.hh,v 1.4 2002/11/20 14:46:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Abstract interface for GEANT4 Global Fast Simulation Manager. diff --git a/source/intercoms/src/G4UIaliasList.cc b/source/intercoms/src/G4UIaliasList.cc index 55dea4d720..d2b9abe6f1 100644 --- a/source/intercoms/src/G4UIaliasList.cc +++ b/source/intercoms/src/G4UIaliasList.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIaliasList.cc,v 1.5 2002/04/26 22:03:35 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UIaliasList.hh" diff --git a/source/intercoms/src/G4UIbatch.cc b/source/intercoms/src/G4UIbatch.cc index 42f89b7d65..1a81d618b7 100644 --- a/source/intercoms/src/G4UIbatch.cc +++ b/source/intercoms/src/G4UIbatch.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIbatch.cc,v 1.13 2005/05/19 16:40:45 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UIbatch.hh" diff --git a/source/intercoms/src/G4UIcmdWith3Vector.cc b/source/intercoms/src/G4UIcmdWith3Vector.cc index 2cd1d0da24..f94cc8537b 100644 --- a/source/intercoms/src/G4UIcmdWith3Vector.cc +++ b/source/intercoms/src/G4UIcmdWith3Vector.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4UIcmdWith3Vector.cc,v 1.6 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIcmdWith3Vector.cc,v 1.7 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4UIcmdWith3Vector.hh" -#include G4UIcmdWith3Vector::G4UIcmdWith3Vector (const char * theCommandPath,G4UImessenger * theMessenger) diff --git a/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc b/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc index eea0198498..27b5690bc7 100644 --- a/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc +++ b/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4UIcmdWith3VectorAndUnit.cc,v 1.7 2004/05/16 20:42:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIcmdWith3VectorAndUnit.cc,v 1.8 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4UIcmdWith3VectorAndUnit.hh" #include "G4Tokenizer.hh" #include "G4UnitsTable.hh" -#include +#include G4UIcmdWith3VectorAndUnit::G4UIcmdWith3VectorAndUnit (const char * theCommandPath,G4UImessenger * theMessenger) @@ -57,7 +57,7 @@ G4ThreeVector G4UIcmdWith3VectorAndUnit::GetNew3VectorRawValue(const char* param G4double vy; G4double vz; char unts[30]; - std::istrstream is((char*)paramString); + std::istringstream is(paramString); is >> vx >> vy >> vz >> unts; return G4ThreeVector(vx,vy,vz); } @@ -68,7 +68,7 @@ G4double G4UIcmdWith3VectorAndUnit::GetNewUnitValue(const char* paramString) G4double vy; G4double vz; char unts[30]; - std::istrstream is((char*)paramString); + std::istringstream is(paramString); is >> vx >> vy >> vz >> unts; G4String unt = unts; return ValueOf(unt); @@ -80,11 +80,11 @@ G4String G4UIcmdWith3VectorAndUnit::ConvertToStringWithBestUnit(G4ThreeVector ve G4String canList = unitParam->GetParameterCandidates(); G4Tokenizer candidateTokenizer(canList); G4String aToken = candidateTokenizer(); - char strg[120]; - std::ostrstream os(strg,120); - os << G4BestUnit(vec,CategoryOf(aToken)) << '\0'; - G4String st = strg; + std::ostringstream os; + os << G4BestUnit(vec,CategoryOf(aToken)); + G4String st = os.str(); + return st; } diff --git a/source/intercoms/src/G4UIcmdWithABool.cc b/source/intercoms/src/G4UIcmdWithABool.cc index da7adb1e9c..ee1e668c6b 100644 --- a/source/intercoms/src/G4UIcmdWithABool.cc +++ b/source/intercoms/src/G4UIcmdWithABool.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithABool.cc,v 1.6 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIcmdWithABool.cc,v 1.7 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4UIcmdWithABool.hh" -#include G4UIcmdWithABool::G4UIcmdWithABool (const char * theCommandPath,G4UImessenger * theMessenger) diff --git a/source/intercoms/src/G4UIcmdWithADouble.cc b/source/intercoms/src/G4UIcmdWithADouble.cc index afe4c76a23..31e3fa1b74 100644 --- a/source/intercoms/src/G4UIcmdWithADouble.cc +++ b/source/intercoms/src/G4UIcmdWithADouble.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithADouble.cc,v 1.6 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIcmdWithADouble.cc,v 1.7 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4UIcmdWithADouble.hh" -#include G4UIcmdWithADouble::G4UIcmdWithADouble (const char * theCommandPath,G4UImessenger * theMessenger) diff --git a/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc b/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc index 947fa2eb55..aaee2b0e58 100644 --- a/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc +++ b/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithADoubleAndUnit.cc,v 1.7 2004/05/16 20:42:37 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIcmdWithADoubleAndUnit.cc,v 1.8 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4Tokenizer.hh" #include "G4UnitsTable.hh" -#include +#include G4UIcmdWithADoubleAndUnit::G4UIcmdWithADoubleAndUnit (const char * theCommandPath,G4UImessenger * theMessenger) @@ -52,7 +52,7 @@ G4double G4UIcmdWithADoubleAndUnit::GetNewDoubleRawValue(const char* paramString G4double vl; char unts[30]; - std::istrstream is((char*)paramString); + std::istringstream is(paramString); is >> vl >> unts; return vl; @@ -63,7 +63,7 @@ G4double G4UIcmdWithADoubleAndUnit::GetNewUnitValue(const char* paramString) G4double vl; char unts[30]; - std::istrstream is((char*)paramString); + std::istringstream is(paramString); is >> vl >> unts; G4String unt = unts; @@ -76,11 +76,10 @@ G4String G4UIcmdWithADoubleAndUnit::ConvertToStringWithBestUnit(G4double val) G4String canList = unitParam->GetParameterCandidates(); G4Tokenizer candidateTokenizer(canList); G4String aToken = candidateTokenizer(); - char strg[60]; - std::ostrstream os(strg,60); - os << G4BestUnit(val,CategoryOf(aToken)) << '\0'; + std::ostringstream os; + os << G4BestUnit(val,CategoryOf(aToken)); - G4String st = strg; + G4String st = os.str(); return st; } diff --git a/source/intercoms/src/G4UIcmdWithAString.cc b/source/intercoms/src/G4UIcmdWithAString.cc index 5ef11de0af..ee95926132 100644 --- a/source/intercoms/src/G4UIcmdWithAString.cc +++ b/source/intercoms/src/G4UIcmdWithAString.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithAString.cc,v 1.4 2003/06/16 16:55:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIcmdWithAString.cc,v 1.5 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4UIcmdWithAString.hh" -#include G4UIcmdWithAString::G4UIcmdWithAString (const char * theCommandPath,G4UImessenger * theMessenger) diff --git a/source/intercoms/src/G4UIcmdWithAnInteger.cc b/source/intercoms/src/G4UIcmdWithAnInteger.cc index 0fba8f362e..97dbb5bad3 100644 --- a/source/intercoms/src/G4UIcmdWithAnInteger.cc +++ b/source/intercoms/src/G4UIcmdWithAnInteger.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4UIcmdWithAnInteger.cc,v 1.6 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIcmdWithAnInteger.cc,v 1.7 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4UIcmdWithAnInteger.hh" -#include G4UIcmdWithAnInteger::G4UIcmdWithAnInteger (const char * theCommandPath,G4UImessenger * theMessenger) diff --git a/source/intercoms/src/G4UIcmdWithoutParameter.cc b/source/intercoms/src/G4UIcmdWithoutParameter.cc index 117223c684..ea38aec49c 100644 --- a/source/intercoms/src/G4UIcmdWithoutParameter.cc +++ b/source/intercoms/src/G4UIcmdWithoutParameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithoutParameter.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/src/G4UIcommand.cc b/source/intercoms/src/G4UIcommand.cc index 27ec5e5180..02e123401f 100644 --- a/source/intercoms/src/G4UIcommand.cc +++ b/source/intercoms/src/G4UIcommand.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIcommand.cc,v 1.23 2004/05/16 18:42:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIcommand.cc,v 1.24 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -34,6 +34,7 @@ #include "G4UnitsTable.hh" #include "G4Tokenizer.hh" #include "G4ios.hh" +#include G4UIcommand::G4UIcommand() :messenger(0),token(IDENTIFIER),paramERR(0) @@ -351,19 +352,17 @@ G4String G4UIcommand::ConvertToString(G4bool boolVal) G4String G4UIcommand::ConvertToString(G4int intValue) { - char st[20]; - std::ostrstream os(st,20); - os << intValue << '\0'; - G4String vl = st; + std::ostringstream os; + os << intValue; + G4String vl = os.str(); return vl; } G4String G4UIcommand::ConvertToString(G4double doubleValue) { - char st[40]; - std::ostrstream os(st,40); - os << doubleValue << '\0'; - G4String vl = st; + std::ostringstream os; + os << doubleValue; + G4String vl = os.str(); return vl; } @@ -372,19 +371,17 @@ G4String G4UIcommand::ConvertToString(G4double doubleValue,const char* unitName) G4String unt = unitName; G4double uv = ValueOf(unitName); - char st[60]; - std::ostrstream os(st,60); - os << doubleValue/uv << " " << unitName << '\0'; - G4String vl = st; + std::ostringstream os; + os << doubleValue/uv << " " << unitName; + G4String vl = os.str(); return vl; } G4String G4UIcommand::ConvertToString(G4ThreeVector vec) { - char st[100]; - std::ostrstream os(st,100); - os << vec.x() << " " << vec.y() << " " << vec.z() << '\0'; - G4String vl = st; + std::ostringstream os; + os << vec.x() << " " << vec.y() << " " << vec.z(); + G4String vl = os.str(); return vl; } @@ -393,11 +390,10 @@ G4String G4UIcommand::ConvertToString(G4ThreeVector vec,const char* unitName) G4String unt = unitName; G4double uv = ValueOf(unitName); - char st[120]; - std::ostrstream os(st,120); + std::ostringstream os; os << vec.x()/uv << " " << vec.y()/uv << " " << vec.z()/uv - << " " << unitName << '\0'; - G4String vl = st; + << " " << unitName; + G4String vl = os.str(); return vl; } @@ -414,7 +410,7 @@ G4bool G4UIcommand::ConvertToBool(const char* st) G4int G4UIcommand::ConvertToInt(const char* st) { G4int vl; - std::istrstream is((char*)st); + std::istringstream is(st); is >> vl; return vl; } @@ -422,7 +418,7 @@ G4int G4UIcommand::ConvertToInt(const char* st) G4double G4UIcommand::ConvertToDouble(const char* st) { G4double vl; - std::istrstream is((char*)st); + std::istringstream is(st); is >> vl; return vl; } @@ -432,7 +428,7 @@ G4double G4UIcommand::ConvertToDimensionedDouble(const char* st) G4double vl; char unts[30]; - std::istrstream is((char*)st); + std::istringstream is(st); is >> vl >> unts; G4String unt = unts; @@ -444,7 +440,7 @@ G4ThreeVector G4UIcommand::ConvertTo3Vector(const char* st) G4double vx; G4double vy; G4double vz; - std::istrstream is((char*)st); + std::istringstream is(st); is >> vx >> vy >> vz; return G4ThreeVector(vx,vy,vz); } @@ -455,7 +451,7 @@ G4ThreeVector G4UIcommand::ConvertToDimensioned3Vector(const char* st) G4double vy; G4double vz; char unts[30]; - std::istrstream is((char*)st); + std::istringstream is(st); is >> vx >> vy >> vz >> unts; G4String unt = unts; G4double uv = ValueOf(unt); @@ -467,7 +463,6 @@ G4ThreeVector G4UIcommand::ConvertToDimensioned3Vector(const char* st) #include // isalpha(), toupper() -#include //#include "checkNewValue_debug.icc" //#define DEBUG 1 @@ -489,7 +484,7 @@ TypeCheck(const char * t) { G4String aNewValue; char type; - std::istrstream is((char*)t); + std::istringstream is(t); for (unsigned i=0; i< parameter.size(); i++) { is >> aNewValue; type = toupper(parameter[i]->GetParameterType()); @@ -623,7 +618,7 @@ RangeCheck(const char* t) { yystype result; char type; bp = 0; // reset buffer pointer for G4UIpGetc() - std::istrstream is((char*)t); + std::istringstream is(t); for (unsigned i=0; i< parameter.size(); i++) { type= toupper(parameter[i]->GetParameterType()); switch ( type ) { @@ -1050,7 +1045,7 @@ Yylex() // reads input and returns token number, KR486 c=='e' || c=='E' || c=='+' || c=='-'); G4UIpUngetc(c); const char* t = buf; - std::istrstream is((char*)t); + std::istringstream is(t); if ( IsInt(buf.data(),20) ) { is >> yylval.I; return CONSTINT; diff --git a/source/intercoms/src/G4UIcommandTree.cc b/source/intercoms/src/G4UIcommandTree.cc index 362444f0fa..082e43da27 100644 --- a/source/intercoms/src/G4UIcommandTree.cc +++ b/source/intercoms/src/G4UIcommandTree.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcommandTree.cc,v 1.12 2003/06/16 16:55:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UIcommandTree.hh" diff --git a/source/intercoms/src/G4UIcontrolMessenger.cc b/source/intercoms/src/G4UIcontrolMessenger.cc index 354a939316..57c531f49f 100644 --- a/source/intercoms/src/G4UIcontrolMessenger.cc +++ b/source/intercoms/src/G4UIcontrolMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcontrolMessenger.cc,v 1.9 2002/05/15 06:51:32 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include diff --git a/source/intercoms/src/G4UIdirectory.cc b/source/intercoms/src/G4UIdirectory.cc index 6aa0b1928e..f161b32383 100644 --- a/source/intercoms/src/G4UIdirectory.cc +++ b/source/intercoms/src/G4UIdirectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIdirectory.cc,v 1.3 2001/07/11 10:01:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/src/G4UImanager.cc b/source/intercoms/src/G4UImanager.cc index 5f2420e0aa..3e46c54cf2 100644 --- a/source/intercoms/src/G4UImanager.cc +++ b/source/intercoms/src/G4UImanager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UImanager.cc,v 1.29 2003/06/16 16:55:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UImanager.cc,v 1.30 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------------- @@ -40,7 +40,7 @@ #include "G4UIaliasList.hh" #include "G4Tokenizer.hh" -#include +#include G4UImanager * G4UImanager::fUImanager = 0; @@ -161,7 +161,7 @@ const char * aParameterName, G4bool reGet) GetCurrentStringValue( aCommand, aParameterName, reGet ); G4int value; const char* t = targetParameter; - std::istrstream is((char*)t); + std::istringstream is(t); is >> value; return value; } @@ -173,7 +173,7 @@ G4int parameterNumber, G4bool reGet) GetCurrentStringValue( aCommand, parameterNumber, reGet ); G4int value; const char* t = targetParameter; - std::istrstream is((char*)t); + std::istringstream is(t); is >> value; return value; } @@ -185,7 +185,7 @@ const char * aParameterName, G4bool reGet) GetCurrentStringValue( aCommand, aParameterName, reGet ); G4double value; const char* t = targetParameter; - std::istrstream is((char*)t); + std::istringstream is(t); is >> value; return value; } @@ -197,7 +197,7 @@ G4int parameterNumber, G4bool reGet) GetCurrentStringValue( aCommand, parameterNumber, reGet ); G4double value; const char* t = targetParameter; - std::istrstream is((char*)t); + std::istringstream is(t); is >> value; return value; } @@ -233,7 +233,7 @@ void G4UImanager::LoopS(const char* valueList) c1 += " "; c1 += parameterToken(); const char* t1 = c1; - std::istrstream is((char*)t1); + std::istringstream is(t1); G4double d1; G4double d2; G4double d3; @@ -247,10 +247,9 @@ void G4UImanager::Loop(const char * macroFile,const char * variableName, G4String cd; for(G4double d=initialValue;d<=finalValue;d+=stepSize) { - char st[20]; - std::ostrstream os(st,20); - os << d << '\0'; - cd += st; + std::ostringstream os; + os << d; + cd += os.str(); cd += " "; } Foreach(macroFile,variableName,cd); diff --git a/source/intercoms/src/G4UImessenger.cc b/source/intercoms/src/G4UImessenger.cc index 4822f0ba28..1c4a00dc76 100644 --- a/source/intercoms/src/G4UImessenger.cc +++ b/source/intercoms/src/G4UImessenger.cc @@ -21,17 +21,15 @@ // ******************************************************************** // // -// $Id: G4UImessenger.cc,v 1.5 2003/06/16 16:55:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UImessenger.cc,v 1.6 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UImessenger.hh" #include "G4UImanager.hh" #include "G4UIcommand.hh" -#include #include "G4ios.hh" - -#include +#include G4UImessenger::G4UImessenger() { } @@ -53,18 +51,16 @@ G4bool G4UImessenger::operator == (const G4UImessenger& messenger) const { G4String G4UImessenger::ItoS(G4int i) { - char defVal[20]; - std::ostrstream os(defVal,20); - os << i << '\0'; - return G4String(defVal); + std::ostringstream os; + os << i; + return G4String(os.str()); } G4String G4UImessenger::DtoS(G4double a) { - char defVal[40]; - std::ostrstream os(defVal,40); - os << a << '\0'; - return G4String(defVal); + std::ostringstream os; + os << a; + return G4String(os.str()); } G4String G4UImessenger::BtoS(G4bool b) @@ -78,7 +74,7 @@ G4int G4UImessenger::StoI(G4String s) { G4int vl; const char* t = s; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; return vl; } @@ -87,7 +83,7 @@ G4double G4UImessenger::StoD(G4String s) { G4double vl; const char* t = s; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; return vl; } diff --git a/source/intercoms/src/G4UIparameter.cc b/source/intercoms/src/G4UIparameter.cc index 59e55bdc3b..55aea198bd 100644 --- a/source/intercoms/src/G4UIparameter.cc +++ b/source/intercoms/src/G4UIparameter.cc @@ -21,16 +21,17 @@ // ******************************************************************** // // -// $Id: G4UIparameter.cc,v 1.12 2003/06/16 16:55:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIparameter.cc,v 1.13 2005/10/26 06:10:22 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UIparameter.hh" #include "G4UIcommandStatus.hh" - #include "G4Tokenizer.hh" - #include "G4ios.hh" +#include + + G4UIparameter::G4UIparameter():paramERR(0) { G4String nullString; @@ -108,18 +109,16 @@ void G4UIparameter::List() void G4UIparameter::SetDefaultValue(G4int theDefaultValue) { - char defVal[20]; - std::ostrstream os(defVal,20); - os << theDefaultValue << '\0'; - defaultValue = defVal; + std::ostringstream os; + os << theDefaultValue; + defaultValue = os.str(); } void G4UIparameter::SetDefaultValue(G4double theDefaultValue) { - char defVal[20]; - std::ostrstream os(defVal,20); - os << theDefaultValue << '\0'; - defaultValue = defVal; + std::ostringstream os; + os << theDefaultValue; + defaultValue = os.str(); } @@ -158,7 +157,7 @@ G4int G4UIparameter:: RangeCheck(const char* newValue) { yystype result; bp = 0; // reset buffer pointer for G4UIpGetc() - std::istrstream is((char*)newValue); + std::istringstream is(newValue); char type = toupper( parameterType ); switch (type) { case 'D': { is >> newVal.D; } break; @@ -674,7 +673,7 @@ Yylex() // reads input and returns token number KR486 c=='e' || c=='E' || c=='+' || c=='-'); G4UIpUngetc(c); const char* t = buf; - std::istrstream is((char*)t); + std::istringstream is(t); if ( IsInt(buf.data(),20) ) { is >> yylval.I; return CONSTINT; diff --git a/source/intercoms/src/G4UIsession.cc b/source/intercoms/src/G4UIsession.cc index b539d8dc8c..bc3bcf9b7f 100644 --- a/source/intercoms/src/G4UIsession.cc +++ b/source/intercoms/src/G4UIsession.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIsession.cc,v 1.6 2003/06/16 16:55:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------------- diff --git a/source/intercoms/src/G4UnitsMessenger.cc b/source/intercoms/src/G4UnitsMessenger.cc index 8d9b996887..d171e52f9a 100644 --- a/source/intercoms/src/G4UnitsMessenger.cc +++ b/source/intercoms/src/G4UnitsMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UnitsMessenger.cc,v 1.6 2005/05/03 17:30:29 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/intercoms/src/G4VGlobalFastSimulationManager.cc b/source/intercoms/src/G4VGlobalFastSimulationManager.cc index 7b3e443cb7..541043d6e1 100644 --- a/source/intercoms/src/G4VGlobalFastSimulationManager.cc +++ b/source/intercoms/src/G4VGlobalFastSimulationManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGlobalFastSimulationManager.cc,v 1.4 2002/11/20 14:46:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Abstract interface for GEANT4 Global Fast Simulation Manager. diff --git a/source/interfaces/GAG/include/G4UIGAG.hh b/source/interfaces/GAG/include/G4UIGAG.hh index 1ce4f7d0da..0e7dcc68ae 100644 --- a/source/interfaces/GAG/include/G4UIGAG.hh +++ b/source/interfaces/GAG/include/G4UIGAG.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIGAG.hh,v 1.6 2003/06/16 16:55:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4UIGAG.hh // GAG(Geant4 adaptive GUI) interface class diff --git a/source/interfaces/GAG/include/G4UIGainServer.hh b/source/interfaces/GAG/include/G4UIGainServer.hh index d303cdd3c1..4d1299bb44 100644 --- a/source/interfaces/GAG/include/G4UIGainServer.hh +++ b/source/interfaces/GAG/include/G4UIGainServer.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIGainServer.hh,v 1.4 2003/06/16 16:55:50 gunter Exp $ -// $Name: geant4-07-01 $ +// $Name: geant4-08-00 $ // diff --git a/source/interfaces/GAG/src/G4UIGAG.cc b/source/interfaces/GAG/src/G4UIGAG.cc index 8900a51e44..bd7a77bbd0 100644 --- a/source/interfaces/GAG/src/G4UIGAG.cc +++ b/source/interfaces/GAG/src/G4UIGAG.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIGAG.cc,v 1.16 2003/06/16 16:55:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIGAG.cc,v 1.17 2005/11/21 13:43:08 hajime Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4UIGAG.cc // 18.Feb.98 M.Nagamatu and T.Kodama created G4UIGAG from G4UIterminal @@ -32,7 +32,7 @@ #include "G4UIcommandTree.hh" #include "G4UIcommand.hh" #include "G4UIcommandStatus.hh" -#include +#include G4UIGAG::G4UIGAG()//: TVersion("T1.0a"), JVersion("J1.0a") { @@ -254,7 +254,7 @@ G4String G4UIGAG::GetCommand() G4String ss = nC(1,nC.length()-1); G4int vl; const char* tt = ss; - std::istrstream is((char*)tt); + std::istringstream is((char*)tt); is >> vl; G4int nh = UI->GetNumberOfHistory(); if(vl>=0 && vl -#include +#include #include "G4StateManager.hh" #include "G4UIcommandTree.hh" #include "G4UIcommand.hh" @@ -262,7 +262,7 @@ G4String G4UIGainServer::GetCommand() G4String ss = nC(1,nC.length()-1); G4int vl; const char* tt = ss; - std::istrstream is((char*)tt); + std::istringstream is((char*)tt); is >> vl; G4int nh = UI->GetNumberOfHistory(); if(vl>=0 && vl diff --git a/source/interfaces/basic/src/G4UIWin32.cc b/source/interfaces/basic/src/G4UIWin32.cc index 1a2f156a0d..e442106beb 100644 --- a/source/interfaces/basic/src/G4UIWin32.cc +++ b/source/interfaces/basic/src/G4UIWin32.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIWin32.cc,v 1.12 2004/06/07 13:33:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIXaw.cc b/source/interfaces/basic/src/G4UIXaw.cc index 93eae1eecd..f737506d41 100644 --- a/source/interfaces/basic/src/G4UIXaw.cc +++ b/source/interfaces/basic/src/G4UIXaw.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIXaw.cc,v 1.5 2002/11/06 08:12:37 barrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIXm.cc b/source/interfaces/basic/src/G4UIXm.cc index 7b56e7f650..35eb916bb9 100644 --- a/source/interfaces/basic/src/G4UIXm.cc +++ b/source/interfaces/basic/src/G4UIXm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UIXm.cc,v 1.12 2004/11/21 16:56:34 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIXm.cc,v 1.13 2005/11/28 18:20:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // G.Barrand @@ -31,7 +31,6 @@ #ifdef G4UI_BUILD_XM_SESSION #include "G4Types.hh" -#include #include diff --git a/source/interfaces/basic/src/G4UIcsh.cc b/source/interfaces/basic/src/G4UIcsh.cc index 0e76165ef8..27f73d249d 100644 --- a/source/interfaces/basic/src/G4UIcsh.cc +++ b/source/interfaces/basic/src/G4UIcsh.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcsh.cc,v 1.7 2003/06/16 16:56:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UIcsh.hh" diff --git a/source/interfaces/basic/src/G4UItcsh.cc b/source/interfaces/basic/src/G4UItcsh.cc index e3a516eef9..bf3b4417a4 100644 --- a/source/interfaces/basic/src/G4UItcsh.cc +++ b/source/interfaces/basic/src/G4UItcsh.cc @@ -21,18 +21,18 @@ // ******************************************************************** // // -// $Id: G4UItcsh.cc,v 1.10 2003/06/16 16:56:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UItcsh.cc,v 1.11 2005/10/26 06:19:35 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef WIN32 -#include #include "G4Types.hh" -#include #include "G4StateManager.hh" #include "G4UIcommandStatus.hh" #include "G4UItcsh.hh" +#include +#include // ASCII character code static const char AsciiCtrA = '\001'; @@ -107,10 +107,9 @@ void G4UItcsh::MakePrompt(const char* msg) break; case 'h': // history# { - char st[20]; - std::ostrstream os(st,20); - os << currentHistoryNo << '\0'; - promptString.append(st); + std::ostringstream os; + os << currentHistoryNo; + promptString.append(os.str()); i++; } break; diff --git a/source/interfaces/basic/src/G4UIterminal.cc b/source/interfaces/basic/src/G4UIterminal.cc index 87b0b87ac6..01e08c2889 100644 --- a/source/interfaces/basic/src/G4UIterminal.cc +++ b/source/interfaces/basic/src/G4UIterminal.cc @@ -21,18 +21,19 @@ // ******************************************************************** // // -// $Id: G4UIterminal.cc,v 1.19 2003/06/16 16:56:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UIterminal.cc,v 1.20 2005/10/26 06:19:35 kmura Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Types.hh" -#include #include "G4StateManager.hh" #include "G4UIcommandTree.hh" #include "G4UIcommand.hh" #include "G4UIcommandStatus.hh" #include "G4UIterminal.hh" #include "G4UIcsh.hh" +#include + ////////////////////////////////////////////// G4UIterminal::G4UIterminal(G4VUIshell* aShell) @@ -205,7 +206,7 @@ G4String G4UIterminal::GetCommand(const char* msg) G4String ss= nC(1, nC.length()-1); G4int vl; const char* tt= ss; - std::istrstream is((char*)tt); + std::istringstream is(tt); is >> vl; G4int nh= UI-> GetNumberOfHistory(); if(vl>=0 && vl - #include "G4VBasicShell.hh" #include "G4StateManager.hh" #include "G4UIcommandTree.hh" #include "G4UIcommand.hh" #include "G4UIcommandStatus.hh" #include "G4UImanager.hh" -#include +#include +#include G4VBasicShell::G4VBasicShell() :currentDirectory("/") @@ -330,7 +329,7 @@ void G4VBasicShell::ApplyShellCommand ( G4String ss = command(1,command.length()-1); G4int vl; const char* tt = ss; - std::istrstream is((char*)tt); + std::istringstream is(tt); is >> vl; G4int nh = UI->GetNumberOfHistory(); if(vl>=0 && vl 1.0 for water density 08-06-05 V.Ivanchenko (materials-V07-00-06) - take the head of subdirectory - murge tags 04 and 05 diff --git a/source/materials/include/G4AtomicShells.hh b/source/materials/include/G4AtomicShells.hh index 91c92f2772..6d9e5606f7 100644 --- a/source/materials/include/G4AtomicShells.hh +++ b/source/materials/include/G4AtomicShells.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShells.hh,v 1.5 2005/02/11 18:57:21 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // class description // diff --git a/source/materials/include/G4Element.hh b/source/materials/include/G4Element.hh index 7886fd5598..c0f67bab51 100644 --- a/source/materials/include/G4Element.hh +++ b/source/materials/include/G4Element.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Element.hh,v 1.18 2005/04/01 12:41:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Element.hh,v 1.20 2005/11/15 15:24:37 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description @@ -158,7 +158,7 @@ public: // with description //return pointer to an element, given its name: // static - G4Element* GetElement(G4String name); + G4Element* GetElement(G4String name, G4bool warning=true); //count number of materials which use this element // @@ -193,6 +193,11 @@ public: // without description G4int operator==(const G4Element&) const; G4int operator!=(const G4Element&) const; + G4Element(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4Element(G4Element&); diff --git a/source/materials/include/G4ElementTable.hh b/source/materials/include/G4ElementTable.hh index d4a5ed76df..922b7d90a4 100644 --- a/source/materials/include/G4ElementTable.hh +++ b/source/materials/include/G4ElementTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElementTable.hh,v 1.5 2003/06/16 16:56:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4ElementVector.hh b/source/materials/include/G4ElementVector.hh index 5b6ff25a81..71a64e4e01 100644 --- a/source/materials/include/G4ElementVector.hh +++ b/source/materials/include/G4ElementVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElementVector.hh,v 1.5 2003/06/16 16:56:15 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4IonisParamElm.hh b/source/materials/include/G4IonisParamElm.hh index bdea2fa182..bbed129e6d 100644 --- a/source/materials/include/G4IonisParamElm.hh +++ b/source/materials/include/G4IonisParamElm.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IonisParamElm.hh,v 1.7 2004/12/07 08:50:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IonisParamElm.hh,v 1.8 2005/11/09 15:38:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description @@ -55,25 +55,25 @@ public: // with description // retrieval methods - G4double GetZ() const {return fZ;}; // atomic number Z - G4double GetZ3() const {return fZ3;}; // std::pow (Z,1/3) - G4double GetZZ3() const {return fZZ3;}; // std::pow (Z(Z+1),1/3) - G4double GetlogZ3() const {return flogZ3;}; // std::log(Z)/3 + G4double GetZ() const {return fZ;} // atomic number Z + G4double GetZ3() const {return fZ3;} // std::pow (Z,1/3) + G4double GetZZ3() const {return fZZ3;} // std::pow (Z(Z+1),1/3) + G4double GetlogZ3() const {return flogZ3;} // std::log(Z)/3 G4double GetTau0() const {return fTau0;}; // 0.1*std::pow(Z,1/3)*MeV/proton_mass_c2 - G4double GetTaul() const {return fTaul;}; // 2*MeV/proton mass + G4double GetTaul() const {return fTaul;} // 2*MeV/proton mass - G4double GetAlow() const {return fAlow;}; - G4double GetBlow() const {return fBlow;}; - G4double GetClow() const {return fClow;}; + G4double GetAlow() const {return fAlow;} + G4double GetBlow() const {return fBlow;} + G4double GetClow() const {return fClow;} // parameters for the low energy ion.loss - G4double GetMeanExcitationEnergy() const {return fMeanExcitationEnergy;}; + G4double GetMeanExcitationEnergy() const {return fMeanExcitationEnergy;} // 16*std::pow(Z,0.9)*eV - G4double* GetShellCorrectionVector() const {return fShellCorrectionVector;}; + G4double* GetShellCorrectionVector() const {return fShellCorrectionVector;} // shell correction coefficients public: // without description @@ -83,6 +83,10 @@ public: // without description G4int operator==(const G4IonisParamElm&) const; G4int operator!=(const G4IonisParamElm&) const; + G4IonisParamElm(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. private: diff --git a/source/materials/include/G4IonisParamMat.hh b/source/materials/include/G4IonisParamMat.hh index 0de0b00bd9..ad8d1c429e 100644 --- a/source/materials/include/G4IonisParamMat.hh +++ b/source/materials/include/G4IonisParamMat.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IonisParamMat.hh,v 1.7 2002/10/29 16:17:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IonisParamMat.hh,v 1.8 2005/11/09 15:38:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description @@ -92,6 +92,11 @@ public: // without description G4int operator==(const G4IonisParamMat&) const; G4int operator!=(const G4IonisParamMat&) const; + G4IonisParamMat(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: // Compute mean parameters : ExcitationEnergy,Shell corretion vector ... diff --git a/source/materials/include/G4Isotope.hh b/source/materials/include/G4Isotope.hh index 6e837f6efa..bac60003aa 100644 --- a/source/materials/include/G4Isotope.hh +++ b/source/materials/include/G4Isotope.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Isotope.hh,v 1.16 2005/04/01 12:41:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Isotope.hh,v 1.18 2005/11/15 15:24:37 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,6 +41,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// 15.11.05: GetIsotope(isotopeName, G4bool warning=false) // 31.03.05: A becomes optional. Taken from Nist data base by default (mma) // 26.02.02: fIndexInTable renewed // 14.09.01: fCountUse: nb of elements which use this isotope @@ -86,7 +87,7 @@ class G4Isotope void decreaseCountUse() {fCountUse--;}; static - G4Isotope* GetIsotope(G4String name); + G4Isotope* GetIsotope(G4String name, G4bool warning=false); static const G4IsotopeTable* GetIsotopeTable(); @@ -109,7 +110,12 @@ class G4Isotope G4int operator==(const G4Isotope&) const; G4int operator!=(const G4Isotope&) const; - + + G4Isotope(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. + private: G4Isotope(G4Isotope&); diff --git a/source/materials/include/G4IsotopeVector.hh b/source/materials/include/G4IsotopeVector.hh index 49f1b4010d..7ce450bd61 100644 --- a/source/materials/include/G4IsotopeVector.hh +++ b/source/materials/include/G4IsotopeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4IsotopeVector.hh,v 1.5 2003/06/16 16:56:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4MPVEntry.hh b/source/materials/include/G4MPVEntry.hh index c4d23c8230..db170e05e7 100644 --- a/source/materials/include/G4MPVEntry.hh +++ b/source/materials/include/G4MPVEntry.hh @@ -22,7 +22,7 @@ // // // $Id: G4MPVEntry.hh,v 1.5 2001/07/11 10:01:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4Material.hh b/source/materials/include/G4Material.hh index 1bfb09e9c0..7c79fd1997 100644 --- a/source/materials/include/G4Material.hh +++ b/source/materials/include/G4Material.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Material.hh,v 1.22 2003/06/16 16:56:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Material.hh,v 1.24 2005/11/15 15:24:37 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description @@ -76,6 +76,7 @@ // 31-10-01, new function SetChemicalFormula() (mma) // 26-02-02, fIndexInTable renewed // 06-08-02, remove constructors with ChemicalFormula (mma) +// 15-11-05, GetMaterial(materialName, G4bool warning=true) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -218,7 +219,7 @@ public: // with description size_t GetIndex() const {return fIndexInTable;}; //return pointer to a material, given its name: - static G4Material* GetMaterial(G4String name); + static G4Material* GetMaterial(G4String name, G4bool warning=true); // //printing methods @@ -231,6 +232,10 @@ public: // without description G4int operator==(const G4Material&) const; G4int operator!=(const G4Material&) const; + G4Material(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. private: diff --git a/source/materials/include/G4MaterialPropertiesTable.hh b/source/materials/include/G4MaterialPropertiesTable.hh index fdb2bd5ad0..ca544cee6e 100644 --- a/source/materials/include/G4MaterialPropertiesTable.hh +++ b/source/materials/include/G4MaterialPropertiesTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertiesTable.hh,v 1.17 2005/06/27 15:28:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4MaterialPropertyVector.hh b/source/materials/include/G4MaterialPropertyVector.hh index f7c074865f..f4b9d193f9 100644 --- a/source/materials/include/G4MaterialPropertyVector.hh +++ b/source/materials/include/G4MaterialPropertyVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertyVector.hh,v 1.9 2003/06/16 16:56:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4MaterialTable.hh b/source/materials/include/G4MaterialTable.hh index d3ca51e2af..ef377b8ba3 100644 --- a/source/materials/include/G4MaterialTable.hh +++ b/source/materials/include/G4MaterialTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4MaterialTable.hh,v 1.5 2003/06/16 16:56:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4NistElementBuilder.hh b/source/materials/include/G4NistElementBuilder.hh index 4220320aa5..12b4bbae31 100644 --- a/source/materials/include/G4NistElementBuilder.hh +++ b/source/materials/include/G4NistElementBuilder.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4NistElementBuilder.hh,v 1.5 2005/05/12 17:29:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NistElementBuilder.hh,v 1.6 2005/10/31 11:35:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4NistElementBuilder_h #define G4NistElementBuilder_h 1 @@ -35,6 +35,8 @@ // // Author: V.Ivanchenko 21-11-2004 // +// Modifications: +// //---------------------------------------------------------------------------- // // Class Description: @@ -59,17 +61,17 @@ class G4NistElementBuilder public: G4NistElementBuilder(G4int vb); ~G4NistElementBuilder(); - + G4int GetZ (const G4String& symb); G4double GetA (G4int Z); G4double GetIsotopeMass (G4int Z, G4int N); - + G4int GetMaxNumElements() {return maxNumElements-1;}; - + void SetVerbose (G4int vb) {verbose = vb;}; void PrintElement (G4int Z); - - // Find or build a G4Element by atomic number + + // Find or build a G4Element by atomic number G4Element* FindOrBuildElement (G4int Z, G4bool buildIsotopes = true); // Find or build a G4Element by symbol diff --git a/source/materials/include/G4NistManager.hh b/source/materials/include/G4NistManager.hh index 05af81ef06..88f8bf564c 100644 --- a/source/materials/include/G4NistManager.hh +++ b/source/materials/include/G4NistManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4NistManager.hh,v 1.3 2005/05/12 17:29:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------- diff --git a/source/materials/include/G4NistMaterialBuilder.hh b/source/materials/include/G4NistMaterialBuilder.hh index 90d1980b4f..abbbf8896d 100644 --- a/source/materials/include/G4NistMaterialBuilder.hh +++ b/source/materials/include/G4NistMaterialBuilder.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4NistMaterialBuilder.hh,v 1.3 2005/05/12 17:29:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NistMaterialBuilder.hh,v 1.4 2005/10/31 11:35:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4NistMaterialBuilder_h #define G4NistMaterialBuilder_h 1 @@ -35,6 +35,7 @@ // Author: V.Ivanchenko 21-11-2004 // // Modifications: +// 31-10-2005 Add chemical effect and gas properties (V.Ivanchenko) // // //---------------------------------------------------------------------------- @@ -100,6 +101,10 @@ private: G4double pot=0.0, G4int ncomp=1, G4State=kStateSolid); + void AddChemicalFormula(const G4String& nameMat, const G4String& ch); + void AddGas(const G4String& nameMat, G4double t=STP_Temperature, + G4double p=STP_Pressure); + void AddElementByWeightFraction(G4int Z, G4double); void AddElementByAtomCount (G4int Z, G4int); @@ -108,10 +113,10 @@ private: // build a G4Material from dataBase G4Material* BuildMaterial(const G4String& name, G4bool isotopes); - + void DumpElm(G4int); void DumpMix(G4int); - + private: G4NistManager* matManager; @@ -135,6 +140,9 @@ private: std::vector indexes; std::vector elements; + std::vector temperatures; + std::vector presures; + G4bool first; }; diff --git a/source/materials/include/G4NistMessenger.hh b/source/materials/include/G4NistMessenger.hh index 0bcba68af5..51e4a5f656 100644 --- a/source/materials/include/G4NistMessenger.hh +++ b/source/materials/include/G4NistMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4NistMessenger.hh,v 1.1 2005/02/22 10:11:09 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // File name: G4NistMessenger // diff --git a/source/materials/include/G4OpticalSurface.hh b/source/materials/include/G4OpticalSurface.hh index ddb44a12da..502799dc3a 100644 --- a/source/materials/include/G4OpticalSurface.hh +++ b/source/materials/include/G4OpticalSurface.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpticalSurface.hh,v 1.7 2003/12/01 15:13:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4SandiaTable.hh b/source/materials/include/G4SandiaTable.hh index ed9c40c5f3..7d39228a23 100644 --- a/source/materials/include/G4SandiaTable.hh +++ b/source/materials/include/G4SandiaTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SandiaTable.hh,v 1.12 2004/12/07 08:50:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SandiaTable.hh,v 1.13 2005/11/09 15:38:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // class description // @@ -79,6 +79,12 @@ public: // with description G4double GetSandiaCofForMaterial(G4int,G4int); G4double* GetSandiaCofForMaterial(G4double energy); +public: // without description + + G4SandiaTable(__void__&); + // Fake default constructor for usage restricted to direct object + // persistency for clients requiring preallocation of memory for + // persistifiable objects. private: diff --git a/source/materials/include/G4StaticSandiaData.hh b/source/materials/include/G4StaticSandiaData.hh index 89e7562176..b678a7943b 100644 --- a/source/materials/include/G4StaticSandiaData.hh +++ b/source/materials/include/G4StaticSandiaData.hh @@ -22,7 +22,7 @@ // // // $Id: G4StaticSandiaData.hh,v 1.6 2002/04/15 16:50:36 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/include/G4SurfaceProperty.hh b/source/materials/include/G4SurfaceProperty.hh index b9737a5c1e..9f41723e13 100644 --- a/source/materials/include/G4SurfaceProperty.hh +++ b/source/materials/include/G4SurfaceProperty.hh @@ -22,7 +22,7 @@ // // // $Id: G4SurfaceProperty.hh,v 1.2 2003/12/01 15:13:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4AtomicShells.cc b/source/materials/src/G4AtomicShells.cc index dbd4d7fe88..f056f73cf2 100644 --- a/source/materials/src/G4AtomicShells.cc +++ b/source/materials/src/G4AtomicShells.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShells.cc,v 1.5 2005/02/11 18:57:22 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4Element.cc b/source/materials/src/G4Element.cc index 9f3fd46703..0157a20977 100644 --- a/source/materials/src/G4Element.cc +++ b/source/materials/src/G4Element.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Element.cc,v 1.20 2005/04/01 12:41:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Element.cc,v 1.22 2005/11/15 15:24:37 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -44,7 +44,8 @@ // 13-09-01: suppression of the data member fIndexInTable // 14-09-01: fCountUse: nb of materials which use this element // 26-02-02: fIndexInTable renewed -// 30-03-05: warning in GetElement(elementName) +// 30-03-05: warning in GetElement(elementName) +// 15-11-05: GetElement(elementName, G4bool warning=true) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,7 +60,7 @@ G4ElementTable G4Element::theElementTable; G4Element::G4Element(const G4String& name, const G4String& symbol, G4double zeff, G4double aeff) -:fName(name),fSymbol(symbol) + : fName(name), fSymbol(symbol) { if (zeff<1.) G4Exception (" ERROR from G4Element::G4Element !" " It is not allowed to create an Element with Z < 1" ); @@ -105,8 +106,9 @@ G4Element::G4Element(const G4String& name, const G4String& symbol, // Constructor to Generate element from a List of 'nIsotopes' isotopes, added // via AddIsotope -G4Element::G4Element(const G4String& name, const G4String& symbol, G4int nIsotopes) -:fName(name),fSymbol(symbol) +G4Element::G4Element(const G4String& name, + const G4String& symbol, G4int nIsotopes) + : fName(name),fSymbol(symbol) { InitializePointers(); @@ -190,6 +192,19 @@ void G4Element::InitializePointers() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency + +G4Element::G4Element( __void__& ) + : fZeff(0), fNeff(0), fAeff(0), fNbOfAtomicShells(0), + fAtomicShells(0), fNumberOfIsotopes(0), theIsotopeVector(0), + fRelativeAbundanceVector(0), fCountUse(0), fIndexInTable(0), + fCoulomb(0), fRadTsai(0), fIonisation(0) +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + G4Element::~G4Element() { if (fCountUse != 0) @@ -256,7 +271,7 @@ void G4Element::ComputeLradTsaiFactor() G4double Lrad, Lprad; G4int iz = (int)(fZeff+0.5) - 1 ; if (iz <= 3) { Lrad = Lrad_light[iz] ; Lprad = Lprad_light[iz] ; } - else { Lrad = std::log(184.15) - logZ3 ; Lprad = std::log(1194.) - 2*logZ3 ; } + else { Lrad = std::log(184.15) - logZ3 ; Lprad = std::log(1194.) - 2*logZ3;} fRadTsai = 4*alpha_rcl2*fZeff*(fZeff*(Lrad-fCoulomb) + Lprad); } @@ -286,7 +301,7 @@ size_t G4Element::GetNumberOfElements() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4Element* G4Element::GetElement(G4String elementName) +G4Element* G4Element::GetElement(G4String elementName, G4bool warning) { // search the element by its name for (size_t J=0 ; J warning from G4Element::GetElement(). The element: " << elementName << " does not exist in the table. Return NULL pointer." - << G4endl; + << G4endl; + } return 0; } diff --git a/source/materials/src/G4IonisParamElm.cc b/source/materials/src/G4IonisParamElm.cc index 3bf9a9fa10..8254ddbbc5 100644 --- a/source/materials/src/G4IonisParamElm.cc +++ b/source/materials/src/G4IonisParamElm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IonisParamElm.cc,v 1.11 2004/12/07 08:50:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IonisParamElm.cc,v 1.13 2005/11/18 14:54:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -90,7 +90,7 @@ G4IonisParamElm::G4IonisParamElm(G4double Z) fBlow =-3.229020*fClow/(fTau0*std::sqrt(Taum)); // Shell correction factors - fShellCorrectionVector = new G4double[3]; + fShellCorrectionVector = new G4double[3]; //[3] rate = 0.001*fMeanExcitationEnergy/eV; G4double rate2 = rate*rate; /* @@ -105,6 +105,16 @@ G4IonisParamElm::G4IonisParamElm(G4double Z) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency + +G4IonisParamElm::G4IonisParamElm(__void__&) + : fShellCorrectionVector(0) +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + G4IonisParamElm::~G4IonisParamElm() { if (fShellCorrectionVector) delete [] fShellCorrectionVector; diff --git a/source/materials/src/G4IonisParamMat.cc b/source/materials/src/G4IonisParamMat.cc index 04b12ee13f..a2c1558574 100644 --- a/source/materials/src/G4IonisParamMat.cc +++ b/source/materials/src/G4IonisParamMat.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IonisParamMat.cc,v 1.15 2005/05/12 17:29:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IonisParamMat.cc,v 1.17 2005/11/18 14:54:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... @@ -44,7 +44,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... G4IonisParamMat::G4IonisParamMat(G4Material* material) -:fMaterial(material) + : fMaterial(material) { ComputeMeanParameters(); ComputeDensityEffect(); @@ -53,6 +53,16 @@ G4IonisParamMat::G4IonisParamMat(G4Material* material) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency + +G4IonisParamMat::G4IonisParamMat(__void__&) + : fMaterial(0), fShellCorrectionVector(0) +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + void G4IonisParamMat::ComputeMeanParameters() { // compute mean excitation energy and shell correction vector @@ -74,7 +84,7 @@ void G4IonisParamMat::ComputeMeanParameters() fLogMeanExcEnergy /= fMaterial->GetTotNbOfElectPerVolume(); fMeanExcitationEnergy = std::exp(fLogMeanExcEnergy); - fShellCorrectionVector = new G4double[3]; + fShellCorrectionVector = new G4double[3]; //[3] for (G4int j=0; j<=2; j++) { diff --git a/source/materials/src/G4Isotope.cc b/source/materials/src/G4Isotope.cc index ae897cc558..47dd84bbbd 100644 --- a/source/materials/src/G4Isotope.cc +++ b/source/materials/src/G4Isotope.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Isotope.cc,v 1.16 2005/04/01 12:41:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Isotope.cc,v 1.18 2005/11/15 15:24:37 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -66,6 +66,16 @@ G4Isotope::G4Isotope(const G4String& Name, G4int Z, G4int N, G4double A) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency + +G4Isotope::G4Isotope(__void__&) + : fZ(0), fN(0), fA(0), fCountUse(0) +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + G4Isotope::~G4Isotope() { if (fCountUse != 0) @@ -175,7 +185,7 @@ size_t G4Isotope::GetNumberOfIsotopes() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4Isotope* G4Isotope::GetIsotope(G4String isotopeName) +G4Isotope* G4Isotope::GetIsotope(G4String isotopeName, G4bool warning) { // search the isotope by its name for (size_t J=0 ; J warning from G4Isotope::GetIsotope(). The isotope: " + << isotopeName << " does not exist in the table. Return NULL pointer." + << G4endl; + } return 0; } diff --git a/source/materials/src/G4MPVEntry.cc b/source/materials/src/G4MPVEntry.cc index a0b9436db4..d17c35ff8a 100644 --- a/source/materials/src/G4MPVEntry.cc +++ b/source/materials/src/G4MPVEntry.cc @@ -22,7 +22,7 @@ // // // $Id: G4MPVEntry.cc,v 1.6 2001/07/11 10:01:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4Material.cc b/source/materials/src/G4Material.cc index 8dd0b76537..ae110845d2 100644 --- a/source/materials/src/G4Material.cc +++ b/source/materials/src/G4Material.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Material.cc,v 1.27 2005/04/01 12:41:11 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Material.cc,v 1.31 2005/11/22 17:24:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // @@ -76,7 +76,7 @@ G4MaterialTable G4Material::theMaterialTable; G4Material::G4Material(const G4String& name, G4double z, G4double a, G4double density, G4State state, G4double temp, G4double pressure) -:fName(name) + : fName(name) { InitializePointers(); @@ -127,7 +127,7 @@ G4Material::G4Material(const G4String& name, G4double z, G4Material::G4Material(const G4String& name, G4double density, G4int nComponents, G4State state, G4double temp, G4double pressure) -:fName(name) + : fName(name) { InitializePointers(); @@ -161,6 +161,19 @@ G4Material::G4Material(const G4String& name, G4double density, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency + +G4Material::G4Material(__void__&) + : fNumberOfComponents(0), fNumberOfElements(0), theElementVector(0), + fImplicitElement(false), fMassFractionVector(0), fAtomsVector(0), + fMaterialPropertiesTable(0), fIndexInTable(0), + VecNbOfAtomsPerVolume(0), fIonisation(0), fSandiaTable(0) +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + // AddElement -- composition by atom count void G4Material::AddElement(G4Element* element, G4int nAtoms) @@ -406,7 +419,7 @@ size_t G4Material::GetNumberOfMaterials() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4Material* G4Material::GetMaterial(G4String materialName) +G4Material* G4Material::GetMaterial(G4String materialName, G4bool warning) { // search the material by its name for (size_t J=0 ; J warning from G4Material::GetMaterial(). The material: " << materialName << " does not exist in the table. Return NULL pointer." << G4endl; + } return 0; } @@ -449,7 +464,8 @@ G4Material::~G4Material() if (fIonisation) delete fIonisation; if (fSandiaTable) delete fSandiaTable; - //remove this material from theMaterialTable + // Remove this material from theMaterialTable. + // theMaterialTable[fIndexInTable] = 0; } diff --git a/source/materials/src/G4MaterialPropertiesTable.cc b/source/materials/src/G4MaterialPropertiesTable.cc index 5c4cb94ebd..681786e842 100644 --- a/source/materials/src/G4MaterialPropertiesTable.cc +++ b/source/materials/src/G4MaterialPropertiesTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertiesTable.cc,v 1.17 2005/06/27 15:28:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4MaterialPropertyVector.cc b/source/materials/src/G4MaterialPropertyVector.cc index 6aadcbc9ec..df606a0d54 100644 --- a/source/materials/src/G4MaterialPropertyVector.cc +++ b/source/materials/src/G4MaterialPropertyVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertyVector.cc,v 1.14 2003/06/16 16:56:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4NistElementBuilder.cc b/source/materials/src/G4NistElementBuilder.cc index c878067b97..a0589d74fd 100644 --- a/source/materials/src/G4NistElementBuilder.cc +++ b/source/materials/src/G4NistElementBuilder.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4NistElementBuilder.cc,v 1.5 2005/05/12 17:29:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NistElementBuilder.cc,v 1.7 2005/09/06 08:28:56 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -114,11 +114,12 @@ G4Element* G4NistElementBuilder::BuildElement(G4int Z, G4bool buildIsotopes) { G4double Zeff = (G4double)Z; G4double Aeff = atomicMass[Z]; - if (verbose > 0) { + if (verbose > 1) { G4cout << "G4NistElementBuilder: Build Element <" << elmSymbol[Z] << "> Z= " << Zeff - << " A= " << Aeff - << G4endl; + << " A= " << Aeff; + if(buildIsotopes) G4cout << " with natural isotope composition" << G4endl; + else G4cout << " isotopes are not built" << G4endl; } G4Element* theElement = 0; diff --git a/source/materials/src/G4NistManager.cc b/source/materials/src/G4NistManager.cc index 0b5b8ac81f..3808d7fe7b 100644 --- a/source/materials/src/G4NistManager.cc +++ b/source/materials/src/G4NistManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4NistManager.cc,v 1.2 2005/05/12 17:29:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/materials/src/G4NistMaterialBuilder.cc b/source/materials/src/G4NistMaterialBuilder.cc index d59b8f1251..49ea530415 100644 --- a/source/materials/src/G4NistMaterialBuilder.cc +++ b/source/materials/src/G4NistMaterialBuilder.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4NistMaterialBuilder.cc,v 1.4 2005/05/12 17:29:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NistMaterialBuilder.cc,v 1.7 2005/10/31 11:35:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------- @@ -35,6 +35,7 @@ // Creation date: 23.12.2004 // // Modifications: +// 31-10-2005 Add chemical effect and gas properties (V.Ivanchenko) // // // ------------------------------------------------------------------- @@ -105,15 +106,15 @@ G4Material* G4NistMaterialBuilder::FindOrBuildMaterial(const G4String& name, if(!mat) mat = BuildMaterial(name, isotopes); if (mat) { - if( verbose > 1) { + if( verbose > 1) G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial material " << name << " is available" << G4endl; - } } else { - G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial WARNING:" - << " material <" << name - << "> is not found out" << G4endl; + if( verbose > 0) + G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial WARNING:" + << " material <" << name + << "> is not found out" << G4endl; } return mat; @@ -125,7 +126,7 @@ G4Material* G4NistMaterialBuilder::BuildMaterial(const G4String& name, G4bool isotopes) { - if (verbose > 0) G4cout << "G4NistMaterialBuilder: BuildMaterial " << name + if (verbose > 1) G4cout << "G4NistMaterialBuilder: BuildMaterial " << name << G4endl; G4Material* mat = 0; @@ -134,9 +135,9 @@ G4Material* G4NistMaterialBuilder::BuildMaterial(const G4String& name, for (G4int i=0; i0) G4cout << "New material nComponents= " << nc << G4endl; + if (verbose>1) G4cout << "New material nComponents= " << nc << G4endl; if (nc > 0) { G4int idx = indexes[i]; for (G4int j=0; j 0) { + if(verbose > 1) { G4cout << "New material " << nameMat << " is prepeared; " << " nMaterials= " << nMaterials << " nComponents= " << nComponents @@ -344,6 +347,63 @@ void G4NistMaterialBuilder::AddMaterial(const G4String& nameMat, G4double dens, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +void G4NistMaterialBuilder::AddChemicalFormula(const G4String& nameMat, + const G4String& ch) +{ + if (nCurrent != 0) { + G4cout + << "WARNING: G4NistMaterialBuilder::AddChemicalFormula problem: previous mixture " + << nMaterials << " " << names[nMaterials] << " is not yet complete!" + << G4endl; + } + + if(nameMat == names[nMaterials-1]) { + chFormulas[nMaterials-1] = ch; + return; + } else { + for(G4int i=0; i 0) - G4cout << "G4NistMaterialBuilder::Initialise()" << G4endl; + G4cout << "### G4NistMaterialBuilder::Initialise()" << G4endl; if (!matManager) { G4cout << "G4NistMaterialBuilder::Initialise(): Warning : " @@ -573,6 +633,7 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddMaterial("G4_ALUMINUM_OXIDE", 3.97, 0, 145.2, 2); AddElementByWeightFraction( 8, 0.470749); AddElementByWeightFraction(13, 0.529251); + AddChemicalFormula("G4_ALUMINUM_OXIDE","Al_2O_3"); AddMaterial("G4_AMBER", 1.1, 0, 63.2, 3); AddElementByWeightFraction( 1, 0.10593 ); @@ -738,6 +799,7 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddMaterial("G4_CARBON_DIOXIDE", 0.00184212, 0, 85., 2, kStateGas); AddElementByWeightFraction( 6, 0.272916); AddElementByWeightFraction( 8, 0.727084); + AddChemicalFormula("G4_CARBON_DIOXIDE","CO_2"); AddMaterial("G4_CARBON_TETRACHLORIDE", 1.594, 0, 166.3, 2); AddElementByWeightFraction( 6, 0.078083); @@ -1219,6 +1281,7 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddMaterial("G4_POLYETHYLENE", 0.94, 0, 57.4, 2); AddElementByWeightFraction( 1, 0.143711); AddElementByWeightFraction( 6, 0.856289); + AddChemicalFormula("G4_POLYETHYLENE","(C_2H_4)_N-Polyethylene"); AddMaterial("G4_MYLAR", 1.4, 0, 78.7, 3); AddElementByWeightFraction( 1, 0.041959); @@ -1238,6 +1301,7 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddMaterial("G4_POLYPROPYLENE", 0.9, 0, 56.5, 2); AddElementByWeightFraction( 1, 0.143711); AddElementByWeightFraction( 6, 0.856289); + AddChemicalFormula("G4_POLYPROPYLENE","(C_2H_4)_N-Polypropylene"); AddMaterial("G4_POLYSTYRENE", 1.06, 0, 68.7, 2); AddElementByWeightFraction( 1, 0.077418); @@ -1330,6 +1394,7 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddMaterial("G4_SILICON_DIOXIDE", 2.32, 0, 139.2, 2); AddElementByWeightFraction( 8, 0.532565); AddElementByWeightFraction(14, 0.467435); + AddChemicalFormula("G4_SILICON_DIOXIDE","SiO_2"); AddMaterial("G4_SILVER_BROMIDE", 6.473, 0, 486.6, 2); AddElementByWeightFraction(35, 0.425537); @@ -1502,13 +1567,15 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddElementByWeightFraction( 6, 0.280555); AddElementByWeightFraction( 9, 0.710028); - AddMaterial("G4_WATER", 1,0, 75., 2); + AddMaterial("G4_WATER", 1.0,0, 75., 2); AddElementByWeightFraction( 1, 0.111894); AddElementByWeightFraction( 8, 0.888106); + AddChemicalFormula("G4_WATER","H_2O"); AddMaterial("G4_WATER_VAPOR", 0.000756182, 0, 71.6, 2, kStateGas); AddElementByWeightFraction( 1, 0.111894); AddElementByWeightFraction( 8, 0.888106); + AddChemicalFormula("G4_WATER_VAPOR","H_2O-Gas"); AddMaterial("G4_XYLENE", 0.87, 0, 61.8, 2); AddElementByWeightFraction( 1, 0.094935); @@ -1516,6 +1583,7 @@ void G4NistMaterialBuilder::NistCompoundMaterials() AddMaterial("G4_GRAPHITE", 1.7, 0, 78., 1); nNIST = nMaterials; + AddChemicalFormula("G4_GRAPHITE","Graphite"); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -1534,6 +1602,7 @@ void G4NistMaterialBuilder::HepAndNuclearMaterials() G4double density = universe_mean_density*cm3/g; AddMaterial("G4_Galactic", density, 1, 21.8, 1, kStateGas); + AddGas("G4_Galactic",2.73*kelvin, 3.e-18*pascal); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/src/G4NistMessenger.cc b/source/materials/src/G4NistMessenger.cc index d3bab2f14c..b829bf5858 100644 --- a/source/materials/src/G4NistMessenger.cc +++ b/source/materials/src/G4NistMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4NistMessenger.cc,v 1.1 2005/02/22 10:11:09 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // File name: G4NistMessenger diff --git a/source/materials/src/G4OpticalSurface.cc b/source/materials/src/G4OpticalSurface.cc index 70ee4a9b62..caf332c3de 100644 --- a/source/materials/src/G4OpticalSurface.cc +++ b/source/materials/src/G4OpticalSurface.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpticalSurface.cc,v 1.9 2003/12/01 15:13:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4SandiaTable.cc b/source/materials/src/G4SandiaTable.cc index c4d30e2a12..a14a8eb1c9 100644 --- a/source/materials/src/G4SandiaTable.cc +++ b/source/materials/src/G4SandiaTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SandiaTable.cc,v 1.20 2004/12/07 08:50:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SandiaTable.cc,v 1.21 2005/11/09 15:38:43 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... // @@ -71,7 +71,7 @@ G4SandiaTable::G4SandiaTable(G4int matIndex) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... G4SandiaTable::G4SandiaTable(G4Material* material) -:fMaterial(material) + : fMaterial(material) { fPhotoAbsorptionCof = 0 ; //build the CumulInterval array @@ -88,6 +88,16 @@ G4SandiaTable::G4SandiaTable(G4Material* material) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... +// Fake default constructor - sets only member data and allocates memory +// for usage restricted to object persistency + +G4SandiaTable::G4SandiaTable(__void__&) + : fMaterial(0), fMatSandiaMatrix(0), fPhotoAbsorptionCof(0) +{ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... + G4SandiaTable::~G4SandiaTable() { if(fMatSandiaMatrix) delete fMatSandiaMatrix; diff --git a/source/parameterisations/GNUmakefile b/source/parameterisations/GNUmakefile index 345e5c9450..a057ad6dd6 100644 --- a/source/parameterisations/GNUmakefile +++ b/source/parameterisations/GNUmakefile @@ -1,12 +1,12 @@ -# $Id: GNUmakefile,v 1.9 2004/12/15 08:49:47 gcosmo Exp $ +# $Id: GNUmakefile,v 1.10 2005/10/04 09:15:47 gcosmo Exp $ # ---------------------------------------------------------------- -# GNUmakefile for parameterisations library. HPW 09-Nov-04. +# GNUmakefile for parameterisations library. # ---------------------------------------------------------------- name := G4parmodels -SUBDIRS := gflash trd_clusters -SUBLIBS = G4gflash G4trdmodels +SUBDIRS := gflash +SUBLIBS = G4gflash GLOBLIBS = libG4processes.lib libG4digits_hits.lib libG4track.lib GLOBLIBS += libG4particles.lib libG4geometry.lib libG4materials.lib diff --git a/source/parameterisations/History b/source/parameterisations/History index 8bfa369ee2..9de845d12a 100644 --- a/source/parameterisations/History +++ b/source/parameterisations/History @@ -1,4 +1,4 @@ -$Id: History,v 1.13 2004/12/15 08:54:50 gcosmo Exp $ +$Id: History,v 1.15 2005/11/04 14:11:01 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,18 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 4th 2005 J.Weng (gpara-V07-01-01) +------------------------ +- Porting to new scheme for G4Region as envelope. + Coworks with: run-V07-01-03, geommng-V07-01-02, procuts-V07-01-00, + param-V07-01-01, raytracer-V07-01-05. + +Oct 4th, 2004 G.Cosmo (gpara-V07-01-00) +--------------------- +- Archived old TRD parameterised models. + Functionality now included in standard EM. +- Includes tag "gflash-V07-01-00". + Dec 15th, 2004 G.Cosmo (gpara-V06-02-02) ---------------------- - Corrected library names (global library and trd_models library) diff --git a/source/parameterisations/gflash/History b/source/parameterisations/gflash/History index eb438ef5dc..5b2eb1e0a0 100644 --- a/source/parameterisations/gflash/History +++ b/source/parameterisations/gflash/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2005/06/22 14:08:29 gcosmo Exp $ +$Id: History,v 1.8 2005/11/30 19:17:08 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,28 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 28th, 2005 J.Weng (gflash-V07-01-02) +--------------------- +- Design iteration. Added concrete sampling shower parameterisation + and tuning classes. + +Nov 28th, 2005 G.Cosmo (gflash-V07-01-01) +---------------------- +- Migration to for GFlashShowerModelMessenger. + +Oct 4th, 2005 G.Cosmo (gflash-V07-01-00) +--------------------- +- Corrected typo to name GFlashHomoShowerParamterisation, to become + GFlashHomoShowerParameterisation. Replaced affected files. +- Code cleanup for Software Reference Manual. +- Fixed usage of random numbers in GFlashHomoShowerParameterisation + to allow for event reproducibility. + +Jul 15th, 2005 J.Weng +--------------------- +- Added overflow protection in method GenerateRadius() for + GFlashHomoShowerParamterisation. + Jun 22nd, 2005 G.Cosmo (gflash-V07-00-04) ---------------------- - Corrected signature for IntegrateNspLongitudinal() to remove diff --git a/source/parameterisations/gflash/README b/source/parameterisations/gflash/README deleted file mode 100644 index 6d01207104..0000000000 --- a/source/parameterisations/gflash/README +++ /dev/null @@ -1,3 +0,0 @@ -This directory contains the code re-implementation of the GFLASH package -in C++ for Geant4. At the time of the first release, the homogenous shower -parameterisation part is included. diff --git a/source/parameterisations/gflash/include/G4GFlashSpot.hh b/source/parameterisations/gflash/include/G4GFlashSpot.hh index b1e9263356..f1b2c32b74 100644 --- a/source/parameterisations/gflash/include/G4GFlashSpot.hh +++ b/source/parameterisations/gflash/include/G4GFlashSpot.hh @@ -20,6 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: G4GFlashSpot.hh,v 1.3 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// G4GFlashSpot +// +// Class description: +// +// Definition of energy spot for GFlash parameterisation. + +//--------------------------------------------------------------- #ifndef G4GFlashSpot_h #define G4GFlashSpot_h @@ -30,25 +45,28 @@ class G4GFlashSpot { - public: - G4GFlashSpot(const GFlashEnergySpot * aSpot, const G4FastTrack * aTrack, G4TouchableHandle aH) - : theSpot(aSpot), theTrack(aTrack), theHandle(aH) {} - - ~G4GFlashSpot() {} - - const GFlashEnergySpot * GetEnergySpot() const {return theSpot;} - - const G4FastTrack * GetOriginatorTrack() const {return theTrack;} - - G4TouchableHandle GetTouchableHandle() const {return theHandle;} - - G4ThreeVector GetPosition() const {return GetOriginatorTrack()->GetPrimaryTrack()->GetPosition();} - - private: - - const GFlashEnergySpot * theSpot; - const G4FastTrack * theTrack; - G4TouchableHandle theHandle; + public: + + G4GFlashSpot(const GFlashEnergySpot * aSpot, + const G4FastTrack * aTrack, G4TouchableHandle aH) + : theSpot(aSpot), theTrack(aTrack), theHandle(aH) {} + + ~G4GFlashSpot() {} + + const GFlashEnergySpot * GetEnergySpot() const {return theSpot;} + + const G4FastTrack * GetOriginatorTrack() const {return theTrack;} + + G4TouchableHandle GetTouchableHandle() const {return theHandle;} + + G4ThreeVector GetPosition() const + {return GetOriginatorTrack()->GetPrimaryTrack()->GetPosition();} + + private: + + const GFlashEnergySpot * theSpot; + const G4FastTrack * theTrack; + G4TouchableHandle theHandle; }; #endif diff --git a/source/parameterisations/gflash/include/G4VGFlashSensitiveDetector.hh b/source/parameterisations/gflash/include/G4VGFlashSensitiveDetector.hh index eba5a636a2..3851328487 100644 --- a/source/parameterisations/gflash/include/G4VGFlashSensitiveDetector.hh +++ b/source/parameterisations/gflash/include/G4VGFlashSensitiveDetector.hh @@ -20,6 +20,23 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: G4VGFlashSensitiveDetector.hh,v 1.4 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// G4VGFlashSensitiveDetector +// +// Class description: +// +// Abstract base class of the sensitive detector for use with GFlash. +// The user's sensitive detector which generates hits must be derived +// from this class, and G4VSensitiveDetector. + +//--------------------------------------------------------------- #ifndef G4VGFlashSensitiveDetector_h #define G4VGFlashSensitiveDetector_h 1 @@ -29,72 +46,79 @@ #include "GFlashEnergySpot.hh" #include "G4GFlashSpot.hh" -// class description: -// -// This is the abstract base class of the sensitive detector for use with GFlash. The user's -// sensitive detector which generates hits must be derived from this -// class, and G4VSensitiveDetector. - class G4VGFlashSensitiveDetector { public: // with description + G4VGFlashSensitiveDetector() {} G4VGFlashSensitiveDetector(const G4VGFlashSensitiveDetector &) {} - // Constructors. The user's concrete class must use one of these constructors - // by the constructor initializer of the derived class. The name of - // the sensitive detector must be the same as for the corresponding GG4VSensitiveDetector. + // Constructors. The user's concrete class must use one of these + // constructors by the constructor initializer of the derived class. + // The name of the sensitive detector must be the same as for the + // corresponding GG4VSensitiveDetector. + + public: // without description - public: virtual ~G4VGFlashSensitiveDetector() {} - G4int operator==(const G4VGFlashSensitiveDetector &right) const {return this == &right;} - G4int operator!=(const G4VGFlashSensitiveDetector &right) const {return this != &right;}; + G4int operator==(const G4VGFlashSensitiveDetector &right) const + {return this == &right;} + G4int operator!=(const G4VGFlashSensitiveDetector &right) const + {return this != &right;} - protected: // with description - virtual G4bool ProcessHits(G4GFlashSpot*aSpot,G4TouchableHistory*ROhist) = 0; - // The user MUST implement this method for generating hit(s) from the GFlashSpots - // Be aware that this method is a protected method and it will be invoked - // by Hit() method of the Base class once the Readout geometry that may be associated to the - // corresponding G4VSensitiveDetector was taken into account. + public: // without description - - public: // with description inline G4bool Hit(G4GFlashSpot * aSpot) { + // This is the public method invoked by GFlashHitMaker for generating + // hits. The actual user's implementation for generating hits must be + // implemented in GenerateHits() virtual protected method. + G4bool result = true; - G4VSensitiveDetector * This = dynamic_cast(this); - if(!This) - { - G4Exception("Sensitive detector using GFlash needs to also inherit from G4VSensitiveDetector"); - } + G4VSensitiveDetector * This + = dynamic_cast(this); + if(!This) + { + G4Exception("G4VGFlashSensitiveDetector::Hit()", + "InvalidSetup", FatalException, + "Needs also to inherit from G4VSensitiveDetector!"); + } if(This->isActive()) { - G4VReadOutGeometry * ROgeometry = 0; + G4VReadOutGeometry * ROgeometry = 0; G4TouchableHistory* ROhis = 0; - if(This) ROgeometry = This->GetROgeometry(); - if(ROgeometry) - { - // fake pre-step point for touchable from read-out geometry. - G4Step fakeStep; - G4StepPoint * tmpPoint = fakeStep.GetPreStepPoint(); - tmpPoint->SetTouchableHandle(aSpot->GetTouchableHandle()); - tmpPoint->SetPosition(aSpot->GetPosition()); - tmpPoint->SetMomentumDirection(aSpot->GetOriginatorTrack()->GetPrimaryTrack()->GetMomentumDirection()); - result = ROgeometry->CheckROVolume(&fakeStep, ROhis); - } - if(result) result = ProcessHits(aSpot, ROhis); - } - else - { - result = false; - } - return result; + if(This) ROgeometry = This->GetROgeometry(); + if(ROgeometry) + { + // fake pre-step point for touchable from read-out geometry. + G4Step fakeStep; + G4StepPoint * tmpPoint = fakeStep.GetPreStepPoint(); + tmpPoint->SetTouchableHandle(aSpot->GetTouchableHandle()); + tmpPoint->SetPosition(aSpot->GetPosition()); + tmpPoint->SetMomentumDirection(aSpot->GetOriginatorTrack() + ->GetPrimaryTrack()->GetMomentumDirection()); + result = ROgeometry->CheckROVolume(&fakeStep, ROhis); + } + if(result) result = ProcessHits(aSpot, ROhis); + } + else + { + result = false; + } + return result; } - // This is the public method invoked by GFlashHitMaker for generating - // hit(s). The actual user's implementation for generating hit(s) must be - // implemented in GenerateHits() virtual protected method. + + protected: // with description + + virtual G4bool ProcessHits(G4GFlashSpot*aSpot, + G4TouchableHistory*ROhist) = 0; + // The user MUST implement this method for generating hit(s) from the + // GFlashSpots. Be aware that this method is a protected method and it + // will be invoked by Hit() method of the Base class once the Readout + // geometry that may be associated to the corresponding + // G4VSensitiveDetector was taken into account. }; #endif diff --git a/source/parameterisations/gflash/include/GFlashEnergySpot.hh b/source/parameterisations/gflash/include/GFlashEnergySpot.hh index a26323047b..80b58cab69 100644 --- a/source/parameterisations/gflash/include/GFlashEnergySpot.hh +++ b/source/parameterisations/gflash/include/GFlashEnergySpot.hh @@ -20,27 +20,46 @@ // * statement, and all its terms. * // ******************************************************************** // -// Created by Joanna Weng, 9.11.04 +// +// $Id: GFlashEnergySpot.hh,v 1.4 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// GFlashEnergySpot +// +// Class description: +// +// Alternative definition of energy spot for GFlash parameterisation. + +// +// Author: Joanna Weng - 9.11.04 +//--------------------------------------------------------------- #ifndef GFlashEnergySpot_h #define GFlashEnergySpot_h + #include "G4ThreeVector.hh" class GFlashEnergySpot { - public: - GFlashEnergySpot(); - GFlashEnergySpot(const G4ThreeVector& point, G4double E); - ~GFlashEnergySpot(); - - inline void SetEnergy(const G4double& E) {Energy = E;} - inline G4double GetEnergy() const {return Energy;} - - inline void SetPosition(const G4ThreeVector& point) {Point = point;} - inline G4ThreeVector GetPosition() const {return Point;} - - private: - G4double Energy; // energy deposition - G4ThreeVector Point; // locus of energy deposition + public: + + GFlashEnergySpot(); + GFlashEnergySpot(const G4ThreeVector& point, G4double E); + ~GFlashEnergySpot(); + + inline void SetEnergy(const G4double& E) {Energy = E;} + inline G4double GetEnergy() const {return Energy;} + + inline void SetPosition(const G4ThreeVector& point) {Point = point;} + inline G4ThreeVector GetPosition() const {return Point;} + + private: + + G4double Energy; // energy deposition + G4ThreeVector Point; // locus of energy deposition }; #endif diff --git a/source/parameterisations/gflash/include/GFlashHitMaker.hh b/source/parameterisations/gflash/include/GFlashHitMaker.hh index 7d914be8ef..c873d825a5 100644 --- a/source/parameterisations/gflash/include/GFlashHitMaker.hh +++ b/source/parameterisations/gflash/include/GFlashHitMaker.hh @@ -20,11 +20,25 @@ // * statement, and all its terms. * // ******************************************************************** // -// Created by Joanna Weng 9.11.2004 +// +// $Id: GFlashHitMaker.hh,v 1.4 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// GFlashHitMaker +// +// Class description: +// +// Singleton for GFlash parameterisation hit creation. +// +// Author: Joanna Weng - 9.11.04 +//--------------------------------------------------------------- #ifndef GFlashHitMaker_h #define GFlashHitMaker_h 1 -// has singleton semantics #include "G4TouchableHandle.hh" #include "G4Navigator.hh" @@ -35,28 +49,26 @@ class GFlashHitMaker { - public: - GFlashHitMaker(); - ~GFlashHitMaker(); - - void make(GFlashEnergySpot * aSpot, const G4FastTrack * aT ); - - private: - G4TouchableHandle fTouchableHandle; - G4Navigator *fpNavigator; - G4bool fNaviSetup; - - private: - GFlashHitMaker(const GFlashHitMaker & ) - { - G4Exception("GFlashHitMaker copy constructor not publicly available"); - } - GFlashHitMaker & operator = (const GFlashHitMaker & ) - { - G4Exception("GFlashHitMaker asignment operator not publicly available"); - return *this; - } - + public: + + GFlashHitMaker(); + ~GFlashHitMaker(); + + void make(GFlashEnergySpot * aSpot, const G4FastTrack * aT ); + + private: + + G4TouchableHandle fTouchableHandle; + G4Navigator *fpNavigator; + G4bool fNaviSetup; + + private: + + GFlashHitMaker(const GFlashHitMaker & ) {} + GFlashHitMaker & operator = (const GFlashHitMaker & ) + { + return *this; + } }; #endif diff --git a/source/parameterisations/gflash/include/GFlashHomoShowerParameterisation.hh b/source/parameterisations/gflash/include/GFlashHomoShowerParameterisation.hh new file mode 100644 index 0000000000..90fa1af757 --- /dev/null +++ b/source/parameterisations/gflash/include/GFlashHomoShowerParameterisation.hh @@ -0,0 +1,133 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: GFlashHomoShowerParameterisation.hh,v 1.3 2005/11/30 19:29:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// --------------------------------------------------------------- +// GEANT 4 class header file +// +// GFlashHomoShowerParameterisation +// +// Class description: +// +// GFlash homogeneous shower parameterisation. + +// Author: Joanna Weng - 02.2004 +// --------------------------------------------------------------- +#ifndef GFlashHomoShowerParameterisation_h +#define GFlashHomoShowerParameterisation_h 1 + +#include "globals.hh" +#include "GVFlashHomoShowerTuning.hh" +#include "GVFlashShowerParameterisation.hh" + +class G4Material; + +class GFlashHomoShowerParameterisation : public GVFlashShowerParameterisation +{ + public: // with description + + GFlashHomoShowerParameterisation(G4Material * aMat, + GVFlashHomoShowerTuning * aPar = 0); + ~GFlashHomoShowerParameterisation(); + + void ComputeRadialParameters(G4double y, G4double Tau); + void GenerateLongitudinalProfile(G4double Energy); + void ComputeZAX0EFFetc(); + + G4double IntegrateEneLongitudinal(G4double LongitudinalStep); + G4double IntegrateNspLongitudinal(G4double LongitudinalStep); + G4double ComputeTau(G4double LongitudinalPosition); + + G4double GeneratePhi(); + G4double GenerateRadius(G4int ispot, G4double Energy, + G4double LongitudinalPosition); + G4double GenerateExponential(G4double Energy); + void SetMaterial(G4Material *mat); + + inline G4double GetAveR99() {return (3.5 * Rm);} + inline G4double GetAveR90() {return (1.5 * Rm);} //ok + + inline G4double GetAveTmx() {return (X0 * std::exp(AveLogTmaxh));} + inline G4double GetAveT99() {return (X0 * AveLogTmaxh/(AveLogAlphah-1.00));} + inline G4double GetAveT90() {return (2.5* X0*std::exp( AveLogTmaxh) );} + + inline G4double GetNspot(){ return NSpot;} + inline G4double GetX0(){return X0;} + inline G4double GetEc(){return Ec;} + inline G4double GetRm(){return Rm;} + + private: + + G4Material *material; + + //Resolution + G4double ConstantResolution; + G4double NoiseResolution; + G4double SamplingResolution; + + // parametrization parameters + GVFlashHomoShowerTuning * thePar; + + // Cashed parameters: + // Longitudinal Coefficients for a homogeneous calo + G4double ParAveT1; + G4double ParAveA1,ParAveA2,ParAveA3; + G4double ParSigLogT1,ParSigLogT2; + G4double ParSigLogA1,ParSigLogA2; + G4double ParRho1,ParRho2; + + void ComputeLongitudinalParameters(G4double y); + void GenerateEnergyProfile(G4double y); + void GenerateNSpotProfile(G4double y); + + // Radial Coefficients + G4double ParRC1,ParRC2,ParRC3,ParRC4; + G4double ParWC1,ParWC2,ParWC3; + G4double ParWC4,ParWC5,ParWC6; + G4double ParRT1,ParRT2,ParRT3,ParRT4; + G4double ParRT5,ParRT6; + + // Spot multiplicity Coefficients + G4double ParSpotT1,ParSpotT2,ParSpotA1, ParSpotA2; + G4double ParSpotN1,ParSpotN2; + + // PARAMETRISATION variables (Energy & position dependent) + // Longitudinal + // homogeneous + G4double AveLogAlphah,AveLogTmaxh; + G4double SigmaLogAlphah,SigmaLogTmaxh; + G4double Rhoh; + G4double Alphah,Tmaxh,Betah; + + // Multiplicity + G4double NSpot,AlphaNSpot,TNSpot,BetaNSpot; + + //Radial + G4double RadiusCore, WeightCore,RadiusTail; +}; + +#endif + diff --git a/source/parameterisations/gflash/include/GFlashHomoShowerParamterisation.hh b/source/parameterisations/gflash/include/GFlashHomoShowerParamterisation.hh deleted file mode 100644 index dc90e93d8d..0000000000 --- a/source/parameterisations/gflash/include/GFlashHomoShowerParamterisation.hh +++ /dev/null @@ -1,123 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// Created by J. Weng 02.2004 -#ifndef GFlashHomoShowerParamterisation_h -#define GFlashHomoShowerParamterisation_h 1 - -#include "globals.hh" -#include "GVFlashHomoShowerTuning.hh" - -class G4Material; -class GFlashHomoShowerParamterisation -{ - public: - GFlashHomoShowerParamterisation(G4Material * aMat, GVFlashHomoShowerTuning * aPar = 0); - ~GFlashHomoShowerParamterisation(); - - void ComputeRadialParameters(G4double y, G4double Tau); - void GenerateLongitudinalProfile(G4double Energy); - void ComputeZAX0EFFetc(); - - G4double IntegrateEneLongitudinal(G4double LongitudinalStep); - G4double IntegrateNspLongitudinal(G4double LongitudinalStep); - G4double ComputeTau(G4double LongitudinalPosition); - - G4double GeneratePhi(); - G4double GenerateRadius(G4int ispot, G4double Energy, G4double LongitudinalPosition); - G4double GenerateExponential(G4double Energy); - - //Gets - //R - inline G4double GetAveR99() {return (3.5 * Rm);} - inline G4double GetAveR90() {return (1.5 * Rm);} //ok - //T - inline G4double GetAveTmx() {return (X0 * std::exp(AveLogTmaxh));} //exp ? - inline G4double GetAveT99() {return (X0 * AveLogTmaxh/(AveLogAlphah-1.00));} - inline G4double GetAveT90() {return (2.5 * X0 * std::exp( AveLogTmaxh) );} - // - inline G4double GetNspot(){ return NSpot;} - G4double GetEffZ(const G4Material * material); - G4double GetEffA(const G4Material * material); - G4double gam(G4double x, G4double a) const; // @@@@ gamma function - - private: - // medium related quantities - G4double density, A, Z, X0, Ec, Rm; - G4Material *material; - - public: - inline G4double GetX0(){return X0;} - inline G4double GetEc(){return Ec;} - inline G4double GetRm(){return Rm;} - void SetMaterial (G4Material *mat); - void PrintMaterial(); - - private: - //Resolution - G4double ConstantResolution; - G4double NoiseResolution; - G4double SamplingResolution; - - // parametrization parameters - GVFlashHomoShowerTuning * thePar; - - // Cashed parameters: - // Longitudinal Coefficients for a homogenious calo - G4double ParAveT1; - G4double ParAveA1,ParAveA2,ParAveA3; - G4double ParSigLogT1,ParSigLogT2; - G4double ParSigLogA1,ParSigLogA2; - G4double ParRho1,ParRho2; - - void ComputeLongitudinalParameters(G4double y); - void GenerateEnergyProfile(G4double y); - void GenerateNSpotProfile(G4double y); - - // Radial Coefficients - G4double ParRC1,ParRC2,ParRC3,ParRC4; - G4double ParWC1,ParWC2,ParWC3; - G4double ParWC4,ParWC5,ParWC6; - G4double ParRT1,ParRT2,ParRT3,ParRT4; - G4double ParRT5,ParRT6; - - //Spot multiplicity Coefficients - G4double ParSpotT1,ParSpotT2,ParSpotA1, ParSpotA2; - G4double ParSpotN1,ParSpotN2; - - //PARAMETRISATION variables (Energy & position dependent) - //Longitudinal - //homogenous - G4double AveLogAlphah,AveLogTmaxh; - G4double SigmaLogAlphah,SigmaLogTmaxh; - G4double Rhoh; - G4double Alphah,Tmaxh,Betah; - - //MMultiplicity - G4double NSpot,AlphaNSpot,TNSpot,BetaNSpot; - - //Radial - G4double RadiusCore, WeightCore,RadiusTail; -}; - -#endif - diff --git a/source/parameterisations/gflash/include/GFlashParticleBounds.hh b/source/parameterisations/gflash/include/GFlashParticleBounds.hh index 6e33e49acc..2b91d32e18 100644 --- a/source/parameterisations/gflash/include/GFlashParticleBounds.hh +++ b/source/parameterisations/gflash/include/GFlashParticleBounds.hh @@ -20,8 +20,23 @@ // * statement, and all its terms. * // ******************************************************************** // -// Created by Joanna Weng 9.11.2004 +// +// $Id: GFlashParticleBounds.hh,v 1.3 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// GFlashParticleBounds +// +// Class description: +// +// GFlash parameterisation particle bounds. +// +// Author: Joanna Weng - 9.11.04 +//--------------------------------------------------------------- #ifndef GFlashParticleBounds_h #define GFlashParticleBounds_h @@ -29,24 +44,30 @@ class GFlashParticleBounds { - public: - GFlashParticleBounds(); - ~GFlashParticleBounds(); - - // methods to get/set ELE/Gamma max & min energy bounds - G4double GetMinEneToParametrise(G4ParticleDefinition &particleType); - G4double GetMaxEneToParametrise(G4ParticleDefinition &particleType); - G4double GetEneToKill(G4ParticleDefinition &particleType) ; - - void SetMinEneToParametrise(G4ParticleDefinition &particleType,G4double enemin); - void SetMaxEneToParametrise(G4ParticleDefinition &particleType,G4double enemax); - void SetEneToKill(G4ParticleDefinition &particleType,G4double enekill); - private: - - // electron and positron - G4double EMinEneToParametrise; - G4double EMaxEneToParametrise; - G4double EEneToKill; + public: // with description + + GFlashParticleBounds(); + ~GFlashParticleBounds(); + + // methods to get/set ELE/Gamma max & min energy bounds + + G4double GetMinEneToParametrise(G4ParticleDefinition &particleType); + G4double GetMaxEneToParametrise(G4ParticleDefinition &particleType); + G4double GetEneToKill(G4ParticleDefinition &particleType) ; + + void SetMinEneToParametrise(G4ParticleDefinition &particleType, + G4double enemin); + void SetMaxEneToParametrise(G4ParticleDefinition &particleType, + G4double enemax); + void SetEneToKill(G4ParticleDefinition &particleType, + G4double enekill); + + private: + + // electron and positron + G4double EMinEneToParametrise; + G4double EMaxEneToParametrise; + G4double EEneToKill; }; #endif diff --git a/source/parameterisations/gflash/include/GFlashSamplingShowerParameterisation.hh b/source/parameterisations/gflash/include/GFlashSamplingShowerParameterisation.hh new file mode 100644 index 0000000000..e46f078268 --- /dev/null +++ b/source/parameterisations/gflash/include/GFlashSamplingShowerParameterisation.hh @@ -0,0 +1,171 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: GFlashSamplingShowerParameterisation.hh,v 1.3 2005/11/30 19:29:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// GFlashSamplingShowerParameterisation +// +// Class description: +// +// GFlash concrete sampling shower parameterisation + +// Author: Joanna Weng - 02.2004 +//--------------------------------------------------------------- +#ifndef GFlashSamplingShowerParameterisation_h +#define GFlashSamplingShowerParameterisation_h 1 + +#include "globals.hh" +#include "GFlashSamplingShowerTuning.hh" +#include "GVFlashShowerParameterisation.hh" + +class G4Material; + +class GFlashSamplingShowerParameterisation + : public GVFlashShowerParameterisation +{ + public: + + GFlashSamplingShowerParameterisation(G4Material* aMat1, G4Material* aMat2, + G4double d1, G4double d2, + GFlashSamplingShowerTuning * aPar = 0); + ~GFlashSamplingShowerParameterisation(); + + void ComputeRadialParameters(G4double y, G4double Tau); + void GenerateLongitudinalProfile(G4double Energy); + void ComputeZAX0EFFetc(); + + G4double IntegrateEneLongitudinal(G4double LongitudinalStep); + G4double IntegrateNspLongitudinal(G4double LongitudinalStep); + G4double ComputeTau(G4double LongitudinalPosition); + void SetMaterial(G4Material *mat1, G4Material *mat2); + G4double GeneratePhi(); + G4double GenerateRadius(G4int ispot, G4double Energy, + G4double LongitudinalPosition); + G4double GenerateExponential(G4double Energy); + + inline G4double GetAveR99() {return (3.5 * Rmeff);} + inline G4double GetAveR90() {return (1.5 * Rmeff);} //ok + // + inline G4double GetAveTmx() {return (X0eff*std::exp(AveLogTmax));} + inline G4double GetAveT99() {return (X0eff*AveLogTmax/(AveLogAlpha-1.00));} + inline G4double GetAveT90() {return (2.5* X0eff* std::exp( AveLogTmax));} + // + inline G4double GetNspot() {return NSpot;} + inline G4double GetX0() {return X0eff;} + inline G4double GetEc() {return Eceff;} + inline G4double GetRm() {return Rmeff;} + + G4double ApplySampling(const G4double DEne, const G4double Energy); + + private: + + // medium related quantities + // + G4Material *material1, *material2 ; + G4double density1, A1, Z1, X01, Ec1, Rm1, d1; + G4double density2, A2, Z2, X02, Ec2, Rm2, d2; + G4double Aeff, Rhoeff, X0eff, Eceff, Rmeff, Fs, ehat, Zeff; + + // Resolution + // + G4double ConstantResolution; + G4double NoiseResolution; + G4double SamplingResolution; + + // parametrization parameters + // + GFlashSamplingShowerTuning * thePar; + + // Cashed parameters: + // Longitudinal Coefficients for a homogenious calo + // + G4double ParAveT1, ParAveT2; + G4double ParAveA1,ParAveA2, ParAveA3; + G4double ParSigLogT1,ParSigLogT2; + G4double ParSigLogA1,ParSigLogA2; + G4double ParRho1,ParRho2; + + //Cashed parameters: + // Longitudinal Coefficients for a sampling calo + // + G4double ParsAveT1, ParsAveT2; + G4double ParsAveA1,ParsAveA2; + G4double ParsSigLogT1,ParsSigLogT2; + G4double ParsSigLogA1,ParsSigLogA2; + G4double ParsRho1,ParsRho2; + void ComputeLongitudinalParameters(G4double y); + void GenerateEnergyProfile(G4double y); + void GenerateNSpotProfile(G4double y); + + // Radial Coefficients homo + // + G4double ParRC1,ParRC2,ParRC3,ParRC4; + G4double ParWC1,ParWC2,ParWC3; + G4double ParWC4,ParWC5,ParWC6; + G4double ParRT1,ParRT2,ParRT3,ParRT4; + G4double ParRT5,ParRT6; + + // Radial Coefficients sampling + // + G4double ParsRC1,ParsRC2; + G4double ParsWC1,ParsWC2; + G4double ParsRT1,ParsRT2; + + // Spot multiplicity Coefficients + // + G4double ParsSpotT1,ParsSpotT2,ParsSpotA1, ParsSpotA2; + G4double ParsSpotN1,ParsSpotN2; + + // PARAMETRISATION variables (Energy & position dependent) + // Longitudinal + // homogeneous + // + G4double AveLogAlphah,AveLogTmaxh; + G4double SigmaLogAlphah,SigmaLogTmaxh; + G4double Rhoh; + G4double Alphah,Tmaxh,Betah; + + // PARAMETRISATION variables (Energy & position dependent) + // Longitudinal + // sampling + // + G4double AveLogAlpha,AveLogTmax; + G4double SigmaLogAlpha,SigmaLogTmax; + G4double Rho; + G4double Alpha,Tmax,Beta; + + // Multiplicity + // + G4double NSpot,AlphaNSpot,TNSpot,BetaNSpot; + + //Radial + // + G4double RadiusCore, WeightCore,RadiusTail; +}; + +#endif diff --git a/source/parameterisations/gflash/include/GFlashSamplingShowerTuning.hh b/source/parameterisations/gflash/include/GFlashSamplingShowerTuning.hh new file mode 100644 index 0000000000..e07d1464e4 --- /dev/null +++ b/source/parameterisations/gflash/include/GFlashSamplingShowerTuning.hh @@ -0,0 +1,123 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: GFlashSamplingShowerTuning.hh,v 1.2 2005/11/30 19:17:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// GFlashSamplingShowerTuning +// +// Class description: +// +// Tuning class for GFlash homogeneous shower parameterisation. +// Definitions: +// : shower center of gravity +// T: Depth at shower maximum +// Ec: Critical energy +// X0: Radiation length +// y = E/Ec +// +// Please, see hep-ex/0001020 for details. + +// Author: Joanna Weng - 11.2005 +//--------------------------------------------------------------- +#ifndef GFlashSamplingShowerTuning_hh +#define GFlashSamplingShowerTuning_hh + +#include "GVFlashHomoShowerTuning.hh" + +class GFlashSamplingShowerTuning : public GVFlashHomoShowerTuning +{ + public: // with description + + G4double ParsAveT1(){ return -0.55;} // t1 + G4double ParsAveT2(){ return -0.69;} // t2 + // T_sam = log(exp( log T_hom) + t1*Fs-1 + t2*(1-ehat)) + + G4double ParsAveA1(){ return -0.476; } // a1 + // alpha_sam = log(exp(log alphah_hom) +(a1*Fs-1)) + + G4double ParsSigLogT1(){ return -2.5;} // t1 + G4double ParsSigLogT2(){ return 1.25;} // t2 + // std::sqrt(var(ln(T_sam))) = 1/(t+t2*ln(y)) + + G4double ParsSigLogA1(){ return -0.82;} // a1 + G4double ParsSigLogA2(){ return 0.79; } // a2 + // std::sqrt(var(ln(alpha_sam))) = 1/(a1+a2*ln(y)) + + G4double ParsRho1(){ return 0.784; } // r1 + G4double ParsRho2(){ return -0.023;} // r2 + // Correlation(ln(T),ln(alpha))=r1+r2*ln(y) + + // Radial profiles + // f(r) := (1/dE(t))(dE(t,r)/dr) + // Ansatz: + // f(r) = p(2*r*Rc**2)/(r**2+Rc**2)**2+(1-p)*(2*r*Rt**2)/(r**2+Rt**2)**2, + // 0 = alpha_s/beta_s + // Ts = (alpha_s-1)/beta_s + // and + // Ts = T*(t1+t2*Z) + // alpha_s = alpha*(a1+a2*Z) + + G4double ParsSpotT1(){ return 0.813; } // t1 + G4double ParsSpotT2(){ return 0.0019;} // t2 + + G4double ParsSpotA1(){ return 0.844; } //a1 + G4double ParsSpotA2(){ return 0.0026;} //a2 + + // Resolution + + G4double ConstantResolution(){ return 0.00; } + G4double NoiseResolution() { return 0.00; } // not used + G4double SamplingResolution(){ return 0.11; } // not used + +}; + +#endif diff --git a/source/parameterisations/gflash/include/GFlashShowerModel.hh b/source/parameterisations/gflash/include/GFlashShowerModel.hh index 59c4c648ed..6cedd5c086 100644 --- a/source/parameterisations/gflash/include/GFlashShowerModel.hh +++ b/source/parameterisations/gflash/include/GFlashShowerModel.hh @@ -20,8 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // -/// Created by E.Barberio, Joanna Weng 9.11.2004 +// +// $Id: GFlashShowerModel.hh,v 1.8 2005/11/30 19:29:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// GFlashShowerModel +// +// Class description: +// +// GFlash parameterisation shower model. +// Authors: E.Barberio & Joanna Weng - 9.11.04 +//--------------------------------------------------------------- #ifndef GFlashShowerModel_h #define GFlashShowerModel_h 1 @@ -37,55 +51,72 @@ #include "GFlashHitMaker.hh" #include -class GFlashHomoShowerParamterisation; +class GVFlashShowerParameterisation; +class GFlashHomoShowerParameterisation; +class GFlashSamplingShowerParameterisation; class GFlashShowerModel : public G4VFastSimulationModel { - public: - /// Constructor, destructor - GFlashShowerModel (G4String, G4LogicalVolume*); - GFlashShowerModel (G4String); - ~GFlashShowerModel (); - - /// Checks whether conditions of fast - /// parametrisation are fullfilled - G4bool ModelTrigger(const G4FastTrack &); - G4bool IsApplicable(const G4ParticleDefinition&); - void DoIt(const G4FastTrack&, G4FastStep&); - - // setting - inline void SetFlagParamType(G4int I) { FlagParamType = I; } - inline void SetFlagParticleContainment(G4int I) { FlagParticleContainment = I; } - inline void SetStepInX0(G4double Lenght) { StepInX0=Lenght; } - inline void SetParametrisation(GFlashHomoShowerParamterisation &DetectorParametrisation){ Parametrisation=&DetectorParametrisation;} - inline void SetHitMaker(GFlashHitMaker &Maker){ HMaker=&Maker;} - inline void SetParticleBounds(GFlashParticleBounds &SpecificBound){PBound =&SpecificBound;} - - //getting - inline G4int GetFlagParamType() { return FlagParamType; } - inline G4int GetFlagParticleContainment() { return FlagParticleContainment; } - inline G4double GetStepInX0() { return StepInX0; } - // Gets ? - GFlashParticleBounds *PBound; - - private: - GFlashHomoShowerParamterisation *Parametrisation; - GFlashHitMaker *HMaker; - GFlashShowerModelMessenger* Messenger; - - //Control Flags - G4int FlagParamType; ///0=no GFlash 1=only em showers parametrized - G4int FlagParticleContainment; ///0=no check ///1=only fully contained... - G4double StepInX0; - G4double EnergyStop; - - // private methods - void ElectronDoIt(const G4FastTrack&, G4FastStep&); - // void GammaDoIt(const G4FastTrack&, G4FastStep&); - // void NeutrinoDoIt(const G4FastTrack&, G4FastStep&); - G4bool CheckParticleDefAndContainment(const G4FastTrack &fastTrack); - G4bool CheckContainment(const G4FastTrack &fastTrack); - + public: // with description + + GFlashShowerModel (G4String, G4Envelope*); + GFlashShowerModel (G4String); + ~GFlashShowerModel (); + // Constructors, destructor + + G4bool ModelTrigger(const G4FastTrack &); + G4bool IsApplicable(const G4ParticleDefinition&); + void DoIt(const G4FastTrack&, G4FastStep&); + // Checks whether conditions of fast parameterisation are fullfilled + + // setting + + inline void SetFlagParamType(G4int I) + { FlagParamType = I; } + inline void SetFlagParticleContainment(G4int I) + { FlagParticleContainment = I; } + inline void SetStepInX0(G4double Lenght) + { StepInX0=Lenght; } + inline void SetParameterisation(GVFlashShowerParameterisation &DP) + { Parameterisation=&DP;} + inline void SetHitMaker(GFlashHitMaker &Maker) + { HMaker=&Maker; } + inline void SetParticleBounds(GFlashParticleBounds &SpecificBound) + { PBound =&SpecificBound; } + + // getting + + inline G4int GetFlagParamType() + { return FlagParamType; } + inline G4int GetFlagParticleContainment() + { return FlagParticleContainment; } + inline G4double GetStepInX0() + { return StepInX0; } + + public: // without description + + // Gets ? + GFlashParticleBounds *PBound; + GVFlashShowerParameterisation *Parameterisation; + + private: + + void ElectronDoIt(const G4FastTrack&, G4FastStep&); + // void GammaDoIt(const G4FastTrack&, G4FastStep&); + // void NeutrinoDoIt(const G4FastTrack&, G4FastStep&); + G4bool CheckParticleDefAndContainment(const G4FastTrack &fastTrack); + G4bool CheckContainment(const G4FastTrack &fastTrack); + + private: + + GFlashHitMaker *HMaker; + GFlashShowerModelMessenger* Messenger; + + //Control Flags + G4int FlagParamType; ///0=no GFlash 1=only em showers parametrized + G4int FlagParticleContainment; ///0=no check ///1=only fully contained... + G4double StepInX0; + G4double EnergyStop; + }; #endif - diff --git a/source/parameterisations/gflash/include/GFlashShowerModelMessenger.hh b/source/parameterisations/gflash/include/GFlashShowerModelMessenger.hh index 064ca66df1..0a6315fa3c 100644 --- a/source/parameterisations/gflash/include/GFlashShowerModelMessenger.hh +++ b/source/parameterisations/gflash/include/GFlashShowerModelMessenger.hh @@ -20,7 +20,23 @@ // * statement, and all its terms. * // ******************************************************************** // -// Created by Joanna Weng, 9.11.04 +// +// $Id: GFlashShowerModelMessenger.hh,v 1.3 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// GFlashShowerModelMessenger +// +// Class description: +// +// Messenger for the GFlash parameterisation shower model control. + +// +// Author: Joanna Weng - 9.11.04 +//--------------------------------------------------------------- #ifndef GFlashShowerModelMessenger_h #define GFlashShowerModelMessenger_h 1 @@ -37,37 +53,25 @@ class G4UIcmdWithADouble; class GFlashShowerModelMessenger: public G4UImessenger { - public: - GFlashShowerModelMessenger(GFlashShowerModel * myModel); - ~GFlashShowerModelMessenger(); - - void SetNewValue(G4UIcommand * command,G4String newValues); - G4String GetCurrentValue(G4UIcommand * command); - - private: - GFlashShowerModel* myModel; - G4UIdirectory* myParaDir; - G4UIcmdWithAString* SwitchCmd; - G4UIcmdWithAnInteger* FlagCmd; - G4UIcmdWithAnInteger* ContCmd; // Containment Check - G4UIcmdWithADouble* StepInX0Cmd; - - G4UIcmdWithADoubleAndUnit* EmaxCmd; - G4UIcmdWithADoubleAndUnit* EminCmd; - G4UIcmdWithADoubleAndUnit* EkillCmd; + public: + + GFlashShowerModelMessenger(GFlashShowerModel * myModel); + ~GFlashShowerModelMessenger(); + + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + + GFlashShowerModel* myModel; + G4UIdirectory* myParaDir; + G4UIcmdWithAString* SwitchCmd; + G4UIcmdWithAnInteger* FlagCmd; + G4UIcmdWithAnInteger* ContCmd; // Containment Check + G4UIcmdWithADouble* StepInX0Cmd; + G4UIcmdWithADoubleAndUnit* EmaxCmd; + G4UIcmdWithADoubleAndUnit* EminCmd; + G4UIcmdWithADoubleAndUnit* EkillCmd; }; #endif - - - - - - - - - - - - - diff --git a/source/parameterisations/gflash/include/GVFlashHomoShowerTuning.hh b/source/parameterisations/gflash/include/GVFlashHomoShowerTuning.hh index 76d58d9291..3a3e81859b 100644 --- a/source/parameterisations/gflash/include/GVFlashHomoShowerTuning.hh +++ b/source/parameterisations/gflash/include/GVFlashHomoShowerTuning.hh @@ -20,103 +20,120 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: GVFlashHomoShowerTuning.hh,v 1.6 2005/11/30 19:17:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// --------------------------------------------------------------- +// GEANT 4 class header file +// +// GVFlashHomoShowerTuning +// +// Class description: +// +// Tuning class for GFlash homogeneous shower parameterisation. +// Definitions: +// : shower center of gravity +// T: Depth at shower maximum +// Ec: Critical energy +// X0: Radiation length +// y = E/Ec +// +// Homogeneous media: +// Average shower profile +// (1/E)(dE(t)/dt) = f(t) +// = (beta*t)**(alpha-1)*beta*std::exp(-beta*t)/Gamma(alpha) +// where Gamma is the Gamma function +// +// = alpha/beta +// T = (alpha-1)/beta +// and +// T = ln(y) + t1 +// alpha = a1+(a2+a3/Z)ln(y) + +// Author: J.P. Wellisch - October 2004 +//--------------------------------------------------------------- #ifndef GVFlashHomoShowerTuning_hh #define GVFlashHomoShowerTuning_hh -// J.P. Wellisch, Oct. 2004 - class GVFlashHomoShowerTuning { - public: - // Definitions: - // : shower center of gravity - // T: Depth at shower maximum - // Ec: Critical energy - // y = E/Ec - // X0: Radiation length - - // Homogeneous media: - // Avarage shower profile - // (1/E)(dE(t)/dt) = f(t) = (beta*t)**(alpha-1)*beta*std::exp(-beta*t)/Gamma(alpha) - // where Gamma: The Gamma function - // - // = alpha/beta - // T = (alpha-1)/beta - // and - // T = ln(y) + t1 - // alpha = a1+(a2+a3/Z)ln(y) - virtual G4double ParAveT1(){ return -0.858;} // t1 - virtual G4double ParAveA1(){ return 0.21; } // a1 - virtual G4double ParAveA2(){ return 0.492; } // a2 - virtual G4double ParAveA3(){ return 2.38; } // a3 - - // std::sqrt(var(ln(T))) = 1/(t+t2*ln(y)) - virtual G4double ParSigLogT1(){ return -1.4;} // t1 - virtual G4double ParSigLogT2(){ return 1.26;} // t2 - - // std::sqrt(var(ln(alpha))) = 1/(a1+a2*ln(y)) - virtual G4double ParSigLogA1(){ return -0.58;} // a1 - virtual G4double ParSigLogA2(){ return 0.86; } // a2 - - // Correlation(ln(T),ln(alpha))=r1+r2*ln(y) - virtual G4double ParRho1(){ return 0.705; } // r1 - virtual G4double ParRho2(){ return -0.023;} // r2 - - // Radial profiles - // f(r) := (1/dE(t))(dE(t,r)/dr) - // Ansatz: - // f(r) = p(2*r*Rc**2)/(r**2+Rc**2)**2+(1-p)*(2*r*Rt**2)/(r**2+Rt**2)**2, 0 = alpha_s/beta_s - // Ts = (alpha_s-1)/beta_s - // and - // Ts = T*(t1+t2*Z) - // alpha_s = alpha*(a1+a2*Z) - virtual G4double ParSpotT1(){ return 0.698; } // t1 - virtual G4double ParSpotT2(){ return 0.00212;} // t2 - - virtual G4double ParSpotA1(){ return 0.639; } //a1 - virtual G4double ParSpotA2(){ return 0.00334;} //a2 - + public: // with description + + virtual G4double ParAveT1(){ return -0.812;} // t1 + virtual G4double ParAveA1(){ return 0.81; } // a1 + virtual G4double ParAveA2(){ return 0.458; } // a2 + virtual G4double ParAveA3(){ return 2.26; } // a3 + + virtual G4double ParSigLogT1(){ return -1.4;} // t1 + virtual G4double ParSigLogT2(){ return 1.26;} // t2 + // std::sqrt(var(ln(T))) = 1/(t+t2*ln(y)) + + virtual G4double ParSigLogA1(){ return -0.58;} // a1 + virtual G4double ParSigLogA2(){ return 0.86; } // a2 + // std::sqrt(var(ln(alpha))) = 1/(a1+a2*ln(y)) + + virtual G4double ParRho1(){ return 0.705; } // r1 + virtual G4double ParRho2(){ return -0.023;} // r2 + // Correlation(ln(T),ln(alpha))=r1+r2*ln(y) + + // Radial profiles + // f(r) := (1/dE(t))(dE(t,r)/dr) + // Ansatz: + // f(r) = p(2*r*Rc**2)/(r**2+Rc**2)**2+(1-p)*(2*r*Rt**2)/(r**2+Rt**2)**2, + // 0 = alpha_s/beta_s + // Ts = (alpha_s-1)/beta_s + // and + // Ts = T*(t1+t2*Z) + // alpha_s = alpha*(a1+a2*Z) + + virtual G4double ParSpotT1(){ return 0.698; } // t1 + virtual G4double ParSpotT2(){ return 0.00212;} // t2 + + virtual G4double ParSpotA1(){ return 0.639; } //a1 + virtual G4double ParSpotA2(){ return 0.00334;} //a2 + }; #endif - - diff --git a/source/parameterisations/gflash/include/GVFlashShowerParameterisation.hh b/source/parameterisations/gflash/include/GVFlashShowerParameterisation.hh new file mode 100644 index 0000000000..f0096535de --- /dev/null +++ b/source/parameterisations/gflash/include/GVFlashShowerParameterisation.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: GVFlashShowerParameterisation.hh,v 1.1 2005/11/30 19:29:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// GVFlashShowerParameterisation +// +// Class description: +// +// Base class for GFlash shower parameterisation. + +// Author: Joanna Weng - 11.2005 +//--------------------------------------------------------------- +#ifndef GVFlashShowerParameterisation_h +#define GVFlashShowerParameterisation_h 1 + +#include "globals.hh" +#include "GVFlashHomoShowerTuning.hh" + +class G4Material; + +class GVFlashShowerParameterisation +{ + public: // with description + + GVFlashShowerParameterisation(); + virtual ~GVFlashShowerParameterisation(); + + virtual void ComputeRadialParameters(G4double y, G4double Tau) = 0; + virtual void GenerateLongitudinalProfile(G4double Energy) = 0; + virtual G4double IntegrateEneLongitudinal(G4double LongitudinalStep) = 0; + virtual G4double IntegrateNspLongitudinal(G4double LongitudinalStep) = 0; + virtual G4double ComputeTau(G4double LongitudinalPosition) = 0; + virtual G4double GenerateRadius(G4int ispot, G4double Energy, + G4double LongitudinalPosition) = 0; + virtual void ComputeLongitudinalParameters(G4double y) = 0; + virtual void GenerateEnergyProfile(G4double y) = 0; + virtual void GenerateNSpotProfile(G4double y) = 0; + virtual G4double GenerateExponential(G4double Energy) = 0; + + virtual G4double GetAveR99() = 0; + virtual G4double GetAveR90() = 0; + + virtual G4double GetAveTmx() = 0; + virtual G4double GetAveT99() = 0; + virtual G4double GetAveT90() = 0; + + virtual G4double GetNspot() = 0; + virtual G4double GetX0() = 0; + virtual G4double GetEc() = 0; + virtual G4double GetRm() = 0; + + G4double GeneratePhi(); + G4double GetEffZ(const G4Material * material); + G4double GetEffA(const G4Material * material); + G4double gam(G4double x, G4double a) const; // @@@@ gamma function + void PrintMaterial(const G4Material * mat); + + protected: + + GVFlashHomoShowerTuning * thePar; + // Parameterisation parameters + G4double density, A, Z, X0, Ec, Rm; + // Medium related quantities + G4double NSpot; +}; + +#endif diff --git a/source/parameterisations/gflash/include/Gamma.hh b/source/parameterisations/gflash/include/Gamma.hh index 06bf526f33..255ea722ea 100644 --- a/source/parameterisations/gflash/include/Gamma.hh +++ b/source/parameterisations/gflash/include/Gamma.hh @@ -20,33 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// +// $Id: Gamma.hh,v 1.5 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// GEANT 4 class header file +// +// Gamma +// +// Class description: +// +// Gamma function. + +//--------------------------------------------------------------- #ifndef MYGAMMA_H #define MYGAMMA_H #include -class MyGamma { - public: - MyGamma (); - ~MyGamma(); - - double Gamma(double z); - double Gamma(double a,double x); - private: - double GamCf(double a,double x); - double GamSer(double a,double x); - - // Abs - static short Abs(short d) { return (d > 0) ? d : -d; } - static int Abs(int d) { return (d > 0) ? d : -d; } - static long Abs(long d) { return (d > 0) ? d : -d; } - static float Abs(float d){ return (d > 0) ? d : -d; } - static double Abs(double d) { return (d > 0) ? d : -d; } - static double LnGamma(double z); - static double Log(double x){ return std::log(x); } - static double Exp(double x){ return std::exp(x); } - - +class MyGamma +{ + public: + + MyGamma (); + ~MyGamma(); + + double Gamma(double z); + double Gamma(double a,double x); + + private: + + double GamCf(double a,double x); + double GamSer(double a,double x); + + // Abs + static short Abs(short d) { return (d > 0) ? d : -d; } + static int Abs(int d) { return (d > 0) ? d : -d; } + static long Abs(long d) { return (d > 0) ? d : -d; } + static float Abs(float d) { return (d > 0) ? d : -d; } + static double Abs(double d) { return (d > 0) ? d : -d; } + static double LnGamma(double z); + static double Log(double x) { return std::log(x); } + static double Exp(double x) { return std::exp(x); } }; #endif diff --git a/source/parameterisations/gflash/src/GFlashEnergySpot.cc b/source/parameterisations/gflash/src/GFlashEnergySpot.cc index efff5edb37..21b5894eaa 100644 --- a/source/parameterisations/gflash/src/GFlashEnergySpot.cc +++ b/source/parameterisations/gflash/src/GFlashEnergySpot.cc @@ -20,23 +20,32 @@ // * statement, and all its terms. * // ******************************************************************** // -// Created by Joanna Weng, 9.11.04 +// $Id: GFlashEnergySpot.cc,v 1.4 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation +// +// ---------------- GFlashEnergySpot ---------------- +// +// Author: Joanna Weng - 9.11.2004 +// ------------------------------------------------------------ #include "G4VisAttributes.hh" #include "G4Colour.hh" #include "G4Polyline.hh" #include "G4VVisManager.hh" #include "G4Step.hh" -//GFlash #include "GFlashEnergySpot.hh" GFlashEnergySpot::GFlashEnergySpot() {} GFlashEnergySpot::GFlashEnergySpot(const G4ThreeVector& point, G4double E) { - Point = point; - Energy = E; - // initialize shower start @@@@@ + Point = point; + Energy = E; + // initialize shower start @@@@@ } GFlashEnergySpot::~GFlashEnergySpot() {} diff --git a/source/parameterisations/gflash/src/GFlashHitMaker.cc b/source/parameterisations/gflash/src/GFlashHitMaker.cc index f8bdade7e3..78f160a7dd 100644 --- a/source/parameterisations/gflash/src/GFlashHitMaker.cc +++ b/source/parameterisations/gflash/src/GFlashHitMaker.cc @@ -20,7 +20,17 @@ // * statement, and all its terms. * // ******************************************************************** // -// Created by E.Barberio & Joanna Weng 9.11.2004 +// $Id: GFlashHitMaker.cc,v 1.6 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation +// +// ---------------- GFlashHitMaker ---------------- +// +// Authors: E.Barberio & Joanna Weng +// ------------------------------------------------------------ #include "G4ios.hh" #include "G4TransportationManager.hh" @@ -33,75 +43,80 @@ GFlashHitMaker::GFlashHitMaker() { - fTouchableHandle = new G4TouchableHistory(); // talk to ?@@@ - fpNavigator = new G4Navigator(); - fNaviSetup = false; + fTouchableHandle = new G4TouchableHistory(); // talk to ?@@@ + fpNavigator = new G4Navigator(); + fNaviSetup = false; } GFlashHitMaker::~GFlashHitMaker() { - delete fpNavigator; + delete fpNavigator; } void GFlashHitMaker::make(GFlashEnergySpot * aSpot, const G4FastTrack * aT) { - // Locate the spot - if (!fNaviSetup) - { - fpNavigator-> - SetWorldVolume(G4TransportationManager::GetTransportationManager()-> - GetNavigatorForTracking()->GetWorldVolume() ); - fpNavigator-> - LocateGlobalPointAndUpdateTouchable(aSpot->GetPosition(), fTouchableHandle(), false); - fNaviSetup = true; - } - else - { - fpNavigator-> - LocateGlobalPointAndUpdateTouchable(aSpot->GetPosition(), fTouchableHandle()); - } - - //-------------------------------------- - // Fills attribute of the G4Step needed - // by our sensitive detector: - //------------------------------------- - // set spot information: - G4GFlashSpot theSpot(aSpot, aT, fTouchableHandle); - ///Navigator - //-------------------------------------- - // Produce Hits - // call sensitive part: taken/adapted from the stepping: - // Send G4Step information to Hit/Dig if the volume is sensitive - //--------------G4TouchableHistory---------------------------------------- - - G4VPhysicalVolume* pCurrentVolume = fTouchableHandle()->GetVolume(); - G4VSensitiveDetector* pSensitive; - if( pCurrentVolume != 0 ) - { - pSensitive = pCurrentVolume->GetLogicalVolume()->GetSensitiveDetector(); - G4VGFlashSensitiveDetector * gflashSensitive = - dynamic_cast (pSensitive); - if( gflashSensitive ) - { - gflashSensitive->Hit(&theSpot); - } - else if ( (!gflashSensitive ) && - ( pSensitive ) && - ( pCurrentVolume->GetLogicalVolume()->GetFastSimulationManager() ) - ) // Using gflash without implementing the - // gflashSensitive detector interface -> not allowed! - - { - std::cout<<"When using GFlash in geant4, please implement the "< + SetWorldVolume(G4TransportationManager::GetTransportationManager()-> + GetNavigatorForTracking()->GetWorldVolume() ); + fpNavigator-> + LocateGlobalPointAndUpdateTouchable(aSpot->GetPosition(), + fTouchableHandle(), false); + fNaviSetup = true; + } + else + { + fpNavigator-> + LocateGlobalPointAndUpdateTouchable(aSpot->GetPosition(), + fTouchableHandle()); + } + + //-------------------------------------- + // Fills attribute of the G4Step needed + // by our sensitive detector: + //------------------------------------- + // set spot information: + G4GFlashSpot theSpot(aSpot, aT, fTouchableHandle); + ///Navigator + //-------------------------------------- + // Produce Hits + // call sensitive part: taken/adapted from the stepping: + // Send G4Step information to Hit/Dig if the volume is sensitive + //--------------G4TouchableHistory---------------------------------------- + + G4VPhysicalVolume* pCurrentVolume = fTouchableHandle()->GetVolume(); + G4VSensitiveDetector* pSensitive; + if( pCurrentVolume != 0 ) + { + pSensitive = pCurrentVolume->GetLogicalVolume()->GetSensitiveDetector(); + G4VGFlashSensitiveDetector * gflashSensitive = + dynamic_cast (pSensitive); + if( gflashSensitive ) + { + gflashSensitive->Hit(&theSpot); + } + else if ( (!gflashSensitive ) && + ( pSensitive ) && + ( pCurrentVolume->GetLogicalVolume()->GetFastSimulationManager() ) + ) // Using gflash without implementing the + // gflashSensitive detector interface -> not allowed! + + { + G4cerr << "ERROR - GFlashHitMaker::make()" << G4endl + << " It is required to implement the "<< G4endl + << " G4VGFlashSensitiveDetector interface in "<< G4endl + << " addition to the usual SensitiveDetector class." + << G4endl; + G4Exception("GFlashHitMaker::make()", "InvalidSetup", FatalException, + "G4VGFlashSensitiveDetector interface not implemented."); + } + } + else + { + #ifdef GFLASH_DEBUG + G4cout << "GFlashHitMaker::Out of volume "<< G4endl; + #endif + } } diff --git a/source/parameterisations/gflash/src/GFlashHomoShowerParameterisation.cc b/source/parameterisations/gflash/src/GFlashHomoShowerParameterisation.cc new file mode 100644 index 0000000000..012adc70b2 --- /dev/null +++ b/source/parameterisations/gflash/src/GFlashHomoShowerParameterisation.cc @@ -0,0 +1,289 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: GFlashHomoShowerParameterisation.cc,v 1.4 2005/11/30 19:29:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation +// +// ------- GFlashHomoShowerParameterisation ------- +// +// Authors: E.Barberio & Joanna Weng - 9.11.2004 +// ------------------------------------------------------------ + +#include "GVFlashShowerParameterisation.hh" +#include "GFlashHomoShowerParameterisation.hh" +#include +#include "Randomize.hh" +#include "G4ios.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" + +GFlashHomoShowerParameterisation:: +GFlashHomoShowerParameterisation(G4Material * aMat, + GVFlashHomoShowerTuning * aPar) + : GVFlashShowerParameterisation() +{ + if(!aPar) { thePar = new GVFlashHomoShowerTuning; } + else { thePar = aPar; } + + SetMaterial(aMat); + PrintMaterial(aMat); + + /********************************************/ + /* Homo Calorimeter */ + /********************************************/ + // Longitudinal Coefficients for a homogenious calo + // shower max + // + ParAveT1 = thePar->ParAveT1(); // ln (ln y -0.812) + ParAveA1 = thePar->ParAveA1(); // ln a (0.81 + (0.458 + 2.26/Z)ln y) + ParAveA2 = thePar->ParAveA2(); + ParAveA3 = thePar->ParAveA3(); + + // Variance of shower max + ParSigLogT1 = thePar->ParSigLogT1(); // Sigma T1 (-1.4 + 1.26 ln y)**-1 + ParSigLogT2 = thePar->ParSigLogT2(); + + // variance of 'alpha' + // + ParSigLogA1 = thePar->ParSigLogA1(); // Sigma a (-0.58 + 0.86 ln y)**-1 + ParSigLogA2 = thePar->ParSigLogA2(); + + // correlation alpha%T + // + ParRho1 = thePar->ParRho1(); // Rho = 0.705 -0.023 ln y + ParRho2 = thePar->ParRho2(); + + // Radial Coefficients + // r_C (tau)= z_1 +z_2 tau + // r_t (tau)= k1 (std::exp (k3(tau -k2 ))+std::exp (k_4 (tau- k_2)))) + // + ParRC1 = thePar->ParRC1(); // z_1 = 0.0251 + 0.00319 ln E + ParRC2 = thePar->ParRC2(); + + ParRC3 = thePar->ParRC3(); // z_2 = 0.1162 + - 0.000381 Z + ParRC4 = thePar->ParRC4(); + + ParWC1 = thePar->ParWC1(); + ParWC2 = thePar->ParWC2(); + ParWC3 = thePar->ParWC3(); + ParWC4 = thePar->ParWC4(); + ParWC5 = thePar->ParWC5(); + ParWC6 = thePar->ParWC6(); + + ParRT1 = thePar->ParRT1(); + ParRT2 = thePar->ParRT2(); + ParRT3 = thePar->ParRT3(); + ParRT4 = thePar->ParRT4(); + ParRT5 = thePar->ParRT5(); + ParRT6 = thePar->ParRT6(); + + // Coeff for fluctueted radial profiles for a uniform media + // + ParSpotT1 = thePar->ParSpotT1(); // T_spot = T_hom =(0.698 + 0.00212) + ParSpotT2 = thePar->ParSpotT2(); + + ParSpotA1 = thePar->ParSpotA1(); // a_spot= a_hom (0.639 + 0.00334) + ParSpotA2 = thePar->ParSpotA2(); + + ParSpotN1 = thePar->ParSpotN1(); // N_Spot 93 * ln(Z) E ** 0.876 + ParSpotN2 = thePar->ParSpotN2(); + + // Inits + + NSpot = 0.00; + AlphaNSpot = 0.00; + TNSpot = 0.00; + BetaNSpot = 0.00; + + RadiusCore = 0.00; + WeightCore = 0.00; + RadiusTail = 0.00; + + G4cout << "/********************************************/ " << G4endl; + G4cout << " - GFlashHomoShowerParameterisation::Constructor - " << G4endl; + G4cout << "/********************************************/ " << G4endl; +} + +void GFlashHomoShowerParameterisation::SetMaterial(G4Material *mat) +{ + material= mat; + Z = GetEffZ(material); + A = GetEffA(material); + density = material->GetDensity()/(g/cm3); + X0 = material->GetRadlen(); + Ec = 2.66 * std::pow((X0 * Z / A),1.1); + G4double Es = 21*MeV; + Rm = X0*Es/Ec; + // PrintMaterial(); +} + +GFlashHomoShowerParameterisation::~GFlashHomoShowerParameterisation() +{} + +void GFlashHomoShowerParameterisation:: +GenerateLongitudinalProfile(G4double Energy) +{ + if (material==0) + { + G4Exception("GFlashHomoShowerParameterisation::GenerateLongitudinalProfile()", + "InvalidSetup", FatalException, "No material initialized!"); + } + + G4double y = Energy/Ec; + ComputeLongitudinalParameters(y); + GenerateEnergyProfile(y); + GenerateNSpotProfile(y); +} + +void +GFlashHomoShowerParameterisation::ComputeLongitudinalParameters(G4double y) +{ + AveLogTmaxh = std::log(ParAveT1 + std::log(y)); + //ok + AveLogAlphah = std::log(ParAveA1 + (ParAveA2+ParAveA3/Z)*std::log(y)); + //ok + + SigmaLogTmaxh = 1.00/( ParSigLogT1 + ParSigLogT2*std::log(y)) ; + //ok sigma (ln T hom) + SigmaLogAlphah = 1.00/( ParSigLogA1 + ParSigLogA2*std::log(y)); + //ok sigma (ln alpha hom) + Rhoh = ParRho1+ParRho2*std::log(y); //ok +} + +void GFlashHomoShowerParameterisation::GenerateEnergyProfile(G4double /* y */) +{ + G4double Correlation1h = std::sqrt((1+Rhoh)/2); + G4double Correlation2h = std::sqrt((1-Rhoh)/2); + + G4double Random1 = G4RandGauss::shoot(); + G4double Random2 = G4RandGauss::shoot(); + + // Parameters for Enenrgy Profile including correaltion and sigmas + + Tmaxh = std::exp( AveLogTmaxh + SigmaLogTmaxh * + (Correlation1h*Random1 + Correlation2h*Random2) ); + Alphah = std::exp( AveLogAlphah + SigmaLogAlphah * + (Correlation1h*Random1 - Correlation2h*Random2) ); + Betah = (Alphah-1.00)/Tmaxh; +} + +void GFlashHomoShowerParameterisation::GenerateNSpotProfile(const G4double y) +{ + TNSpot = Tmaxh * (ParSpotT1+ParSpotT2*Z); // ok + AlphaNSpot = Alphah * (ParSpotA1+ParSpotA2*Z); + BetaNSpot = (AlphaNSpot-1.00)/TNSpot; // ok + NSpot = ParSpotN1 * std::log(Z)*std::pow((y*Ec)/GeV,ParSpotN2 ); // ok +} + +G4double GFlashHomoShowerParameterisation:: +IntegrateEneLongitudinal(G4double LongitudinalStep) +{ + G4double LongitudinalStepInX0 = LongitudinalStep / X0; + G4float x1= Betah*LongitudinalStepInX0; + G4float x2= Alphah; + float x3 = gam(x1,x2); + G4double DEne=x3; + return DEne; +} + +G4double GFlashHomoShowerParameterisation:: +IntegrateNspLongitudinal(G4double LongitudinalStep) +{ + G4double LongitudinalStepInX0 = LongitudinalStep / X0; + G4float x1 = BetaNSpot*LongitudinalStepInX0; + G4float x2 = AlphaNSpot; + G4float x3 = gam(x1,x2); + G4double DNsp = x3; + return DNsp; +} + + +G4double GFlashHomoShowerParameterisation:: +GenerateRadius(G4int ispot, G4double Energy, G4double LongitudinalPosition) +{ + if(ispot < 1) + { + // Determine lateral parameters in the middle of the step. + // They depend on energy & position along step. + // + G4double Tau = ComputeTau(LongitudinalPosition); + ComputeRadialParameters(Energy,Tau); + } + + G4double Radius; + G4double Random1 = G4UniformRand(); + G4double Random2 = G4UniformRand(); + + if(Random1 = T* a /(a - 1) + * (Alphah-1.00) /Alphah * + std::exp(AveLogAlphah)/(std::exp(AveLogAlphah)-1.); //ok + return tau; +} + +void GFlashHomoShowerParameterisation:: +ComputeRadialParameters(G4double Energy, G4double Tau) +{ + G4double z1 = ParRC1 + ParRC2* std::log(Energy/GeV) ; //ok + G4double z2 = ParRC3+ParRC4*Z ; //ok + RadiusCore = z1 + z2 * Tau ; //ok + + G4double p1 = ParWC1+ParWC2*Z; //ok + G4double p2 = ParWC3+ParWC4*Z; //ok + G4double p3 = ParWC5+ParWC6*std::log(Energy/GeV); //ok + + WeightCore = p1 * std::exp( (p2-Tau)/p3 - std::exp( (p2-Tau) /p3) ); //ok + + G4double k1 = ParRT1+ParRT2*Z; // ok + G4double k2 = ParRT3; // ok + G4double k3 = ParRT4; // ok + G4double k4 = ParRT5+ParRT6* std::log(Energy/GeV); // ok + + RadiusTail = k1*(std::exp(k3*(Tau-k2)) + + std::exp(k4*(Tau-k2)) ); //ok +} + +G4double GFlashHomoShowerParameterisation:: +GenerateExponential(const G4double /* Energy */ ) +{ + G4double ParExp1 = 9./7.*X0; + G4double random = -ParExp1*CLHEP::RandExponential::shoot() ; + return random; +} diff --git a/source/parameterisations/gflash/src/GFlashHomoShowerParamterisation.cc b/source/parameterisations/gflash/src/GFlashHomoShowerParamterisation.cc deleted file mode 100644 index 9b4e2acc3a..0000000000 --- a/source/parameterisations/gflash/src/GFlashHomoShowerParamterisation.cc +++ /dev/null @@ -1,339 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// - //E.Barberio + Joanna Weng 9.11.2004 - - #include "GFlashHomoShowerParamterisation.hh" - #include - #include - #include "G4ios.hh" - #include "G4Material.hh" - #include "Gamma.hh" // @@@@ - #include "G4MaterialTable.hh" - #include "Randomize.hh" - - GFlashHomoShowerParamterisation:: - GFlashHomoShowerParamterisation(G4Material * aMat, GVFlashHomoShowerTuning * aPar) - { - if(!aPar) thePar = new GVFlashHomoShowerTuning; - else thePar = aPar; - SetMaterial(aMat); - - /********************************************/ - /* Homo Calorimeter */ - /********************************************/ - // Longitudinal Coefficients for a homogenious calo - // shower max - ParAveT1 = thePar->ParAveT1(); // ln (ln y -0.812) - ParAveA1 = thePar->ParAveA1(); // ln a (0.81 + (0.458 + 2.26/Z)ln y) - ParAveA2 = thePar->ParAveA2(); - ParAveA3 = thePar->ParAveA3(); - - // Variance of shower max - ParSigLogT1 = thePar->ParSigLogT1(); // Sigma T1 (-1.4 + 1.26 ln y)**-1 - ParSigLogT2 = thePar->ParSigLogT2(); - - // variance of 'alpha' - ParSigLogA1 = thePar->ParSigLogA1(); // Sigma a (-0.58 + 0.86 ln y)**-1 - ParSigLogA2 = thePar->ParSigLogA2(); - - // correlation alpha%T - ParRho1 = thePar->ParRho1(); // Rho = 0.705 -0.023 ln y - ParRho2 = thePar->ParRho2(); - - - // Radial Coefficients - // r_C (tau)= z_1 +z_2 tau - // r_t (tau)= k1 (std::exp (k3(tau -k2 ))+std::exp (k_4 (tau- k_2)))) - ParRC1 = thePar->ParRC1(); // z_1 = 0.0251 + 0.00319 ln E - ParRC2 = thePar->ParRC2(); - - ParRC3 = thePar->ParRC3(); // z_2 = 0.1162 + - 0.000381 Z - ParRC4 = thePar->ParRC4(); - - ParWC1 = thePar->ParWC1(); - ParWC2 = thePar->ParWC2(); - ParWC3 = thePar->ParWC3(); - ParWC4 = thePar->ParWC4(); - ParWC5 = thePar->ParWC5(); - ParWC6 = thePar->ParWC6(); - - ParRT1 = thePar->ParRT1(); - ParRT2 = thePar->ParRT2(); - ParRT3 = thePar->ParRT3(); - ParRT4 = thePar->ParRT4(); - ParRT5 = thePar->ParRT5(); - ParRT6 = thePar->ParRT6(); - - - // Coeff for fluctuedted radial profiles for a uniform media - ParSpotT1 = thePar->ParSpotT1(); // T_spot = T_hom =(0.698 + 0.00212) - ParSpotT2 = thePar->ParSpotT2(); - - ParSpotA1 = thePar->ParSpotA1(); // a_spot= a_hom (0.639 + 0.00334) - ParSpotA2 = thePar->ParSpotA2(); - - ParSpotN1 = thePar->ParSpotN1(); // N_Spot 93 * ln(Z) E ** 0.876 - ParSpotN2 = thePar->ParSpotN2(); - - // Inits - NSpot = 0.00; - AlphaNSpot = 0.00; - TNSpot = 0.00; - BetaNSpot = 0.00; - - RadiusCore = 0.00; - WeightCore = 0.00; - RadiusTail = 0.00; - - std::cout<<"/********************************************/ " <GetDensity()/(g/cm3); - X0 = material->GetRadlen(); - Ec = 2.66 * std::pow((X0 * Z / A),1.1); - G4double Es = 21*MeV; - Rm = X0*Es/Ec; - // PrintMaterial(); - } - - G4double GFlashHomoShowerParamterisation::GetEffZ(const G4Material * mat ) - { - // Returns Z or effective Z=sum(pi*Zi) (if compound/mixture) - // of given material. - // --- - G4double z = 0.; - G4int nofElements = mat->GetNumberOfElements(); - if (nofElements > 1) - { - // G4String text = "Effective Z for material mixture ("; - // text = text + mat->GetName(); - // text = text + ") is used."; - // cout << text <GetElement(i)->GetZ(); - G4double massFraction = mat->GetFractionVector()[i]; - // cout << mat->GetElement(i)->GetName() <<" Z= "<GetName(); - // text = text + ") is used." - // cout << text <GetElement(i)->GetA()/(g/mole); - G4double massFraction = mat->GetFractionVector()[i]; - // cout << mat->GetElement(i)->GetName() <<" A= "<GetName() << std::endl; - std::cout<<" Z = "<< Z << std::endl; - std::cout<<" A = "<< A << std::endl; - std::cout<<" X0 = "< - AveLogAlphah = std::log(ParAveA1 + (ParAveA2+ParAveA3/Z)*std::log(y)); //ok // - - SigmaLogTmaxh = 1.00/( ParSigLogT1 + ParSigLogT2*std::log(y)) ; //ok sigma (ln T hom) - SigmaLogAlphah = 1.00/( ParSigLogA1 + ParSigLogA2*std::log(y)); //ok sigma (ln alpha hom) - Rhoh = ParRho1+ParRho2*std::log(y); //ok - } - - void GFlashHomoShowerParamterisation::GenerateEnergyProfile(G4double /* y */) - { - G4double Correlation1h = std::sqrt((1+Rhoh)/2); - G4double Correlation2h = std::sqrt((1-Rhoh)/2); - - G4double Random1 = RandGauss::shoot(); - G4double Random2 = RandGauss::shoot(); - - //Parameters for Enenrgy Profile including correaltion and sigmas - Tmaxh = std::exp( AveLogTmaxh + SigmaLogTmaxh * - (Correlation1h*Random1 + Correlation2h*Random2) ); - Alphah = std::exp( AveLogAlphah + SigmaLogAlphah * - (Correlation1h*Random1 - Correlation2h*Random2) ); - Betah = (Alphah-1.00)/Tmaxh; - } - - void GFlashHomoShowerParamterisation::GenerateNSpotProfile(const G4double y) - { - TNSpot = Tmaxh * (ParSpotT1+ParSpotT2*Z); //ok. - AlphaNSpot = Alphah * (ParSpotA1+ParSpotA2*Z); - BetaNSpot = (AlphaNSpot-1.00)/TNSpot; // ok - NSpot = ParSpotN1 * std::log(Z)*std::pow((y*Ec)/GeV,ParSpotN2 ); //ok - } - - G4double GFlashHomoShowerParamterisation::IntegrateEneLongitudinal(G4double LongitudinalStep) - { - G4double LongitudinalStepInX0 = LongitudinalStep / X0; - G4float x1= Betah*LongitudinalStepInX0; - G4float x2= Alphah; - float x3 = gam(x1,x2); - G4double DEne=x3; - return DEne; - } - - G4double GFlashHomoShowerParamterisation::IntegrateNspLongitudinal(G4double LongitudinalStep) - { - G4double LongitudinalStepInX0 = LongitudinalStep / X0; - G4float x1 = BetaNSpot*LongitudinalStepInX0; - G4float x2 = AlphaNSpot; - float x3 = gam(x1,x2); - G4double DNsp = x3; - return DNsp; - } - - G4double GFlashHomoShowerParamterisation::GeneratePhi() - { - G4double Phi = twopi*G4UniformRand() ; - return Phi; - } - - G4double GFlashHomoShowerParamterisation::GenerateRadius(G4int ispot, G4double Energy, - G4double LongitudinalPosition) - { - if(ispot < 1) - { - //determine lateral parameters in the middle of the step - //They depend on energy & position along step - G4double Tau = ComputeTau(LongitudinalPosition); - ComputeRadialParameters(Energy,Tau); - } - - G4double Radius; - G4double Random1 = RandFlat::shoot(); - G4double Random2 = RandFlat::shoot(); - - if(Random1 = T* a /(a - 1) - * (Alphah-1.00) /Alphah * - std::exp(AveLogAlphah)/(std::exp(AveLogAlphah)-1.); //ok - return tau; - } - - void GFlashHomoShowerParamterisation::ComputeRadialParameters(G4double Energy, G4double Tau) - { - G4double z1 = ParRC1 + ParRC2* std::log(Energy/GeV) ; //ok - G4double z2 = ParRC3+ParRC4*Z ; //ok - RadiusCore = z1 + z2 * Tau ; // ok - - G4double p1 = ParWC1+ParWC2*Z; //ok - G4double p2 = ParWC3+ParWC4*Z; //ok - G4double p3 = ParWC5+ParWC6*std::log(Energy/GeV); //ok - - WeightCore = p1 * std::exp( (p2-Tau)/p3- std::exp( (p2-Tau) /p3) ); //ok - - G4double k1 = ParRT1+ParRT2*Z; // ok - G4double k2 = ParRT3; // ok - G4double k3 = ParRT4; // ok - G4double k4 = ParRT5+ParRT6* std::log(Energy/GeV); // ok - - RadiusTail = k1*(std::exp(k3*(Tau-k2)) + - std::exp(k4*(Tau-k2)) ); //ok - } - - G4double GFlashHomoShowerParamterisation::GenerateExponential(const G4double /* Energy */ ) - { - G4double ParExp1 = 9./7.*X0; - G4double random = -ParExp1*RandExponential::shoot() ; - return random; - } - - double GFlashHomoShowerParamterisation::gam(double x, double a) const - { - static MyGamma theG; - return theG.Gamma(a, x); - - } - diff --git a/source/parameterisations/gflash/src/GFlashParticleBounds.cc b/source/parameterisations/gflash/src/GFlashParticleBounds.cc index cf724b6d44..f65e85ef2b 100644 --- a/source/parameterisations/gflash/src/GFlashParticleBounds.cc +++ b/source/parameterisations/gflash/src/GFlashParticleBounds.cc @@ -20,7 +20,17 @@ // * statement, and all its terms. * // ******************************************************************** // -// Created by Joanna Weng 9.11.2004 +// $Id: GFlashParticleBounds.cc,v 1.3 2005/10/04 09:08:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation +// +// ---------------- GFlashParticleBounds ---------------- +// +// Author: Joanna Weng - 9.11.2004 +// ------------------------------------------------------------ #include "G4Electron.hh" #include "G4Positron.hh" @@ -29,68 +39,69 @@ GFlashParticleBounds::GFlashParticleBounds() { - // e+e- defaults - EMinEneToParametrise = 0.10*GeV; - EMaxEneToParametrise = 10000.00*GeV; - EEneToKill = 0.1*GeV; // Energie at which electrons are killed + // e+e- defaults + EMinEneToParametrise = 0.10*GeV; + EMaxEneToParametrise = 10000.00*GeV; + EEneToKill = 0.1*GeV; // Energie at which electrons are killed } GFlashParticleBounds::~GFlashParticleBounds() { } -void GFlashParticleBounds::SetMinEneToParametrise(G4ParticleDefinition &particleType,G4double enemin) +void GFlashParticleBounds:: +SetMinEneToParametrise(G4ParticleDefinition &particleType, G4double enemin) { - if( &particleType == G4Electron::ElectronDefinition()|| - &particleType == G4Positron::PositronDefinition()) - EMinEneToParametrise = enemin; + if( &particleType == G4Electron::ElectronDefinition()|| + &particleType == G4Positron::PositronDefinition()) + EMinEneToParametrise = enemin; } -void GFlashParticleBounds::SetMaxEneToParametrise(G4ParticleDefinition &particleType,G4double enemax) +void GFlashParticleBounds:: +SetMaxEneToParametrise(G4ParticleDefinition &particleType, G4double enemax) { - if( &particleType == G4Electron::ElectronDefinition()|| - &particleType == G4Positron::PositronDefinition()) - EMaxEneToParametrise = enemax; + if( &particleType == G4Electron::ElectronDefinition()|| + &particleType == G4Positron::PositronDefinition()) + EMaxEneToParametrise = enemax; } -void GFlashParticleBounds::SetEneToKill(G4ParticleDefinition &particleType,G4double enekill) +void GFlashParticleBounds:: +SetEneToKill(G4ParticleDefinition &particleType, G4double enekill) { - if( &particleType == G4Electron::ElectronDefinition()|| - &particleType == G4Positron::PositronDefinition()) - EEneToKill = enekill; + if( &particleType == G4Electron::ElectronDefinition()|| + &particleType == G4Positron::PositronDefinition()) + EEneToKill = enekill; } -G4double GFlashParticleBounds::GetMinEneToParametrise(G4ParticleDefinition &particleType) +G4double GFlashParticleBounds:: +GetMinEneToParametrise(G4ParticleDefinition &particleType) { - G4double result = DBL_MAX; - if( &particleType == G4Electron::ElectronDefinition()|| - &particleType == G4Positron::PositronDefinition()) - { - result = EMinEneToParametrise; - } - return result; + G4double result = DBL_MAX; + if( &particleType == G4Electron::ElectronDefinition()|| + &particleType == G4Positron::PositronDefinition()) + { + result = EMinEneToParametrise; + } + return result; } -G4double GFlashParticleBounds::GetMaxEneToParametrise(G4ParticleDefinition &particleType) +G4double GFlashParticleBounds:: +GetMaxEneToParametrise(G4ParticleDefinition &particleType) { - G4double result = 0; - if( &particleType == G4Electron::ElectronDefinition()|| - &particleType == G4Positron::PositronDefinition()) - { - result = EMaxEneToParametrise; - } - return result; + G4double result = 0; + if( &particleType == G4Electron::ElectronDefinition()|| + &particleType == G4Positron::PositronDefinition()) + { + result = EMaxEneToParametrise; + } + return result; } -G4double GFlashParticleBounds::GetEneToKill(G4ParticleDefinition & particleType) +G4double GFlashParticleBounds:: +GetEneToKill(G4ParticleDefinition & particleType) { - if (&particleType == G4Electron::ElectronDefinition() || - &particleType == G4Positron::PositronDefinition()) - return EEneToKill; - else return (-DBL_MAX); + if (&particleType == G4Electron::ElectronDefinition() || + &particleType == G4Positron::PositronDefinition()) + return EEneToKill; + else return (-DBL_MAX); } - - - - - diff --git a/source/parameterisations/gflash/src/GFlashSamplingShowerParameterisation.cc b/source/parameterisations/gflash/src/GFlashSamplingShowerParameterisation.cc new file mode 100644 index 0000000000..9ab0b376b8 --- /dev/null +++ b/source/parameterisations/gflash/src/GFlashSamplingShowerParameterisation.cc @@ -0,0 +1,406 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: GFlashSamplingShowerParameterisation.cc,v 1.3 2005/11/30 19:29:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation +// +// ------- GFlashSamplingShowerParameterisation ------- +// +// Authors: E.Barberio & Joanna Weng - 11.2005 +// ------------------------------------------------------------ + +#include "GVFlashShowerParameterisation.hh" +#include "GFlashSamplingShowerParameterisation.hh" +#include +#include "Randomize.hh" +#include "G4ios.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" + +GFlashSamplingShowerParameterisation:: +GFlashSamplingShowerParameterisation(G4Material* aMat1, G4Material* aMat2, + G4double d1, G4double d2, + GFlashSamplingShowerTuning* aPar) + : GVFlashShowerParameterisation() +{ + if(!aPar) { thePar = new GFlashSamplingShowerTuning; } + else { thePar = aPar; } + + SetMaterial(aMat1,aMat2 ); + this->d1=d1; + this->d2=d2; + + // Longitudinal Coefficients for a homogenious calo + + // shower max + ParAveT1 = thePar->ParAveT1(); // ln (ln y -0.812) + ParAveA1 = thePar->ParAveA1(); // ln a (0.81 + (0.458 + 2.26/Z)ln y) + ParAveA2 = thePar->ParAveA2(); + ParAveA3 = thePar->ParAveA3(); + // Sampling + ParsAveT1 = thePar->ParsAveT1(); // T_sam = log(exp( log T_hom) + t1*Fs-1 + t2*(1-ehat)); + ParsAveT2 = thePar->ParsAveT2(); + ParsAveA1 = thePar->ParsAveA1(); + // Variance of shower max sampling + ParsSigLogT1 = thePar->ParSigLogT1(); // Sigma T1 (-2.5 + 1.25 ln y)**-1 + ParsSigLogT2 = thePar->ParSigLogT2(); + // variance of 'alpha' + ParsSigLogA1 = thePar->ParSigLogA1(); // Sigma a (-0.82 + 0.79 ln y)**-1 + ParsSigLogA2 = thePar->ParSigLogA2(); + // correlation alpha%T + ParsRho1 = thePar->ParRho1(); // Rho = 0.784 -0.023 ln y + ParsRho2 = thePar->ParRho2(); + + // Radial Coefficients + // r_C (tau)= z_1 +z_2 tau + // r_t (tau)= k1 (std::exp (k3(tau -k2 ))+std::exp (k_4 (tau- k_2)))) + ParRC1 = thePar->ParRC1(); // z_1 = 0.0251 + 0.00319 ln E + ParRC2 = thePar->ParRC2(); + ParRC3 = thePar->ParRC3(); // z_2 = 0.1162 + - 0.000381 Z + ParRC4 = thePar->ParRC4(); + + ParWC1 = thePar->ParWC1(); + ParWC2 = thePar->ParWC2(); + ParWC3 = thePar->ParWC3(); + ParWC4 = thePar->ParWC4(); + ParWC5 = thePar->ParWC5(); + ParWC6 = thePar->ParWC6(); + ParRT1 = thePar->ParRT1(); + ParRT2 = thePar->ParRT2(); + ParRT3 = thePar->ParRT3(); + ParRT4 = thePar->ParRT4(); + ParRT5 = thePar->ParRT5(); + ParRT6 = thePar->ParRT6(); + + //additional sampling parameter + ParsRC1= thePar->ParsRC1(); + ParsRC2= thePar->ParsRC2(); + ParsWC1= thePar->ParsWC1(); + ParsWC2= thePar->ParsWC2(); + ParsRT1= thePar->ParsRT1(); + ParsRT2= thePar->ParsRT2(); + + // Coeff for fluctuedted radial profiles for a sampling media + ParsSpotT1 = thePar->ParSpotT1(); // T_spot = T_hom =(0.698 + 0.00212) + ParsSpotT2 = thePar->ParSpotT2(); + ParsSpotA1 = thePar->ParSpotA1(); // a_spot= a_hom (0.639 + 0.00334) + ParsSpotA2 = thePar->ParSpotA2(); + ParsSpotN1 = thePar->ParSpotN1(); // N_Spot 93 * ln(Z) E ** 0.876 + ParsSpotN2 = thePar->ParSpotN2(); + SamplingResolution = thePar->SamplingResolution(); + ConstantResolution = thePar->ConstantResolution(); + NoiseResolution = thePar->NoiseResolution(); + + // Inits + NSpot = 0.00; + AlphaNSpot = 0.00; + TNSpot = 0.00; + BetaNSpot = 0.00; + RadiusCore = 0.00; + WeightCore = 0.00; + RadiusTail = 0.00; + ComputeZAX0EFFetc(); + + G4cout << "/********************************************/ " << G4endl; + G4cout << " - GFlashSamplingShowerParameterisation::Constructor - " << G4endl; + G4cout << "/********************************************/ " << G4endl; +} + +// ------------------------------------------------------------ + +GFlashSamplingShowerParameterisation::~GFlashSamplingShowerParameterisation() +{} + +// ------------------------------------------------------------ + +void GFlashSamplingShowerParameterisation:: +SetMaterial(G4Material *mat1, G4Material *mat2) +{ + G4double Es = 21*MeV; + material1= mat1; + Z1 = GetEffZ(material1); + A1 = GetEffA(material1); + density1 = material1->GetDensity(); + X01 = material1->GetRadlen(); + Ec1 = 2.66 * std::pow((X01 * Z1 / A1),1.1); + Rm1 = X01*Es/Ec1; + + material2= mat2; + Z2 = GetEffZ(material2); + A2 = GetEffA(material2); + density2 = material2->GetDensity(); + X02 = material2->GetRadlen(); + Ec2 = 2.66 * std::pow((X02 * Z2 / A2),1.1); + Rm2 = X02*Es/Ec2; + // PrintMaterial(); +} + +// ------------------------------------------------------------ + +void GFlashSamplingShowerParameterisation::ComputeZAX0EFFetc() +{ + G4cout << "/************ ComputeZAX0EFFetc ************/" << G4endl; + G4cout << " - GFlashSamplingShowerParameterisation::Material - " << G4endl; + + G4double Es = 21*MeV; //constant + + // material and geometry parameters for a sampling calorimeter + G4double denominator = (d1*density1 + d2*density2); + G4double W1 = (d1*density1) / denominator; + G4double W2 = (d2*density2)/denominator; + Zeff = ( W1*Z2 ) + (W2*Z1); //X0*Es/Ec; + Aeff = ( W1*A1 ) + (W2*A2); + X0eff =(1/ (( W1 / X01) +( W2 / X02))); + Rhoeff = ( (d1 *density1 ) + (d2 * density2 ))/G4double (d2 + d1 ); + Rmeff = 1/ ((((W1*Ec1)/ X01) + ((W2* Ec2)/ X02) ) / Es ) ; + Eceff = X0eff *((W1*Ec1)/ X01 + (W2* Ec2)/ X02 ); + Fs = X0eff/G4double ((d1/mm )+(d2/mm) ); + ehat = (1. / (1+ 0.007*(Z1- Z2))); + + G4cout << "W1= " << W1 << G4endl; + G4cout << "W2= " << W2 << G4endl; + G4cout << "effective quantities Zeff = "<0.0 && DEne > 0.00) + { + G4float x1=DEne/Resolution; + G4float x2 = CLHEP::RandGamma::shoot(x1, 1.0)*Resolution; + DEneFluctuated=x2; + } + return DEneFluctuated; +} + +// ------------------------------------------------------------ + +G4double GFlashSamplingShowerParameterisation:: +IntegrateEneLongitudinal(G4double LongitudinalStep) +{ + G4double LongitudinalStepInX0 = LongitudinalStep / X0eff; + G4float x1= Betah*LongitudinalStepInX0; + G4float x2= Alphah; + float x3 = gam(x1,x2); + G4double DEne=x3; + return DEne; +} + +// ------------------------------------------------------------ + +G4double GFlashSamplingShowerParameterisation:: +IntegrateNspLongitudinal(G4double LongitudinalStep) +{ + G4double LongitudinalStepInX0 = LongitudinalStep / X0eff; + G4float x1 = BetaNSpot*LongitudinalStepInX0; + G4float x2 = AlphaNSpot; + G4float x3 = gam(x1,x2); + G4double DNsp = x3; + return DNsp; +} + +// ------------------------------------------------------------ + +G4double GFlashSamplingShowerParameterisation:: +GenerateRadius(G4int ispot, G4double Energy, G4double LongitudinalPosition) +{ + if(ispot < 1) + { + // Determine lateral parameters in the middle of the step. + // They depend on energy & position along step + // + G4double Tau = ComputeTau(LongitudinalPosition); + ComputeRadialParameters(Energy,Tau); + } + + G4double Radius; + G4double Random1 = G4UniformRand(); + G4double Random2 = G4UniformRand(); + if(Random1 = T* a /(a - 1) + * (Alpha-1.00) /Alpha + * std::exp(AveLogAlpha)/(std::exp(AveLogAlpha)-1.); //ok + return tau; +} + +// ------------------------------------------------------------ + +void GFlashSamplingShowerParameterisation:: +ComputeRadialParameters(G4double Energy, G4double Tau) +{ + G4double z1 = ParRC1 + ParRC2* std::log(Energy/GeV); //ok + G4double z2 = ParRC3+ParRC4*Zeff; //ok + RadiusCore = z1 + z2 * Tau; //ok + G4double p1 = ParWC1+ParWC2*Zeff; //ok + G4double p2 = ParWC3+ParWC4*Zeff; //ok + G4double p3 = ParWC5+ParWC6*std::log(Energy/GeV); //ok + WeightCore = p1 * std::exp( (p2-Tau)/p3- std::exp( (p2-Tau) /p3) ); //ok + + G4double k1 = ParRT1+ParRT2*Zeff; // ok + G4double k2 = ParRT3; // ok + G4double k3 = ParRT4; // ok + G4double k4 = ParRT5+ParRT6* std::log(Energy/GeV); // ok + + RadiusTail = k1*(std::exp(k3*(Tau-k2)) + + std::exp(k4*(Tau-k2)) ); //ok + + // sampling calorimeter + + RadiusCore = RadiusCore + ParsRC1*(1-ehat) + ParsRC2/Fs*exp(-Tau); //ok + WeightCore = WeightCore + (1-ehat) + * (ParsWC1+ParsWC2/Fs * exp(-pow((Tau-1.),2))); //ok + RadiusTail = RadiusTail + (1-ehat)* ParsRT1+ ParsRT2/Fs *exp(-Tau); //ok +} + +// ------------------------------------------------------------ + +G4double GFlashSamplingShowerParameterisation:: +GenerateExponential(const G4double /* Energy */ ) +{ + G4double ParExp1 = 9./7.*X0eff; + G4double random = -ParExp1*CLHEP::RandExponential::shoot() ; + return random; +} diff --git a/source/parameterisations/gflash/src/GFlashShowerModel.cc b/source/parameterisations/gflash/src/GFlashShowerModel.cc index aa993346ba..2b7ca28048 100644 --- a/source/parameterisations/gflash/src/GFlashShowerModel.cc +++ b/source/parameterisations/gflash/src/GFlashShowerModel.cc @@ -20,11 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // -//E.Barberio & Joanna Weng +// $Id: GFlashShowerModel.cc,v 1.12 2005/12/01 18:20:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation +// +// ---------------- GFlashShowerModel ---------------- +// +// Authors: E.Barberio & Joanna Weng - 9.11.2004 +// ------------------------------------------------------------ #include "G4Electron.hh" #include "G4Positron.hh" -#include "G4Gamma.hh" #include "G4NeutrinoE.hh" #include "G4NeutrinoMu.hh" #include "G4NeutrinoTau.hh" @@ -38,309 +47,340 @@ #include "geomdefs.hh" #include "GFlashShowerModel.hh" -#include "GFlashHomoShowerParamterisation.hh" +#include "GFlashHomoShowerParameterisation.hh" +#include "GFlashSamplingShowerParameterisation.hh" #include "GFlashEnergySpot.hh" -GFlashShowerModel::GFlashShowerModel(G4String modelName, G4LogicalVolume* envelope) -: G4VFastSimulationModel(modelName, envelope) +GFlashShowerModel::GFlashShowerModel(G4String modelName, + G4Envelope* envelope) + : G4VFastSimulationModel(modelName, envelope), + PBound(0), Parameterisation(0), HMaker(0) { - FlagParamType = 0; - FlagParticleContainment = 1; - StepInX0 = 0.1; - Messenger = new GFlashShowerModelMessenger(this); + FlagParamType = 0; + FlagParticleContainment = 1; + StepInX0 = 0.1; + Messenger = new GFlashShowerModelMessenger(this); } GFlashShowerModel::GFlashShowerModel(G4String modelName) -: G4VFastSimulationModel(modelName) + : G4VFastSimulationModel(modelName), + PBound(0), Parameterisation(0), HMaker(0) { - FlagParamType =1; - FlagParticleContainment = 1; - StepInX0 = 0.1; - Messenger = new GFlashShowerModelMessenger(this); + FlagParamType =1; + FlagParticleContainment = 1; + StepInX0 = 0.1; + Messenger = new GFlashShowerModelMessenger(this); } - GFlashShowerModel::~GFlashShowerModel() { - Messenger = new GFlashShowerModelMessenger(this); + delete Messenger; } -G4bool GFlashShowerModel::IsApplicable(const G4ParticleDefinition& particleType) +G4bool +GFlashShowerModel::IsApplicable(const G4ParticleDefinition& particleType) { - return - &particleType == G4Electron::ElectronDefinition() || - &particleType == G4Positron::PositronDefinition(); + return + &particleType == G4Electron::ElectronDefinition() || + &particleType == G4Positron::PositronDefinition(); } -/*********************************************************************/ -/* Checks whether conditions of fast parametrisation are fullfilled */ +/**********************************************************************/ +/* Checks whether conditions of fast parameterisation are fullfilled */ /**********************************************************************/ G4bool GFlashShowerModel::ModelTrigger(const G4FastTrack & fastTrack ) { - G4bool select = false; - if(FlagParamType != 0) - { - G4double ParticleEnergy = fastTrack.GetPrimaryTrack()->GetKineticEnergy(); - G4ParticleDefinition &ParticleType = *(fastTrack.GetPrimaryTrack()->GetDefinition()); - if(ParticleEnergy > PBound->GetMinEneToParametrise(ParticleType) || - ParticleEnergy < PBound->GetMaxEneToParametrise(ParticleType) ) - { - ///check conditions depending on particle flavour - Parametrisation->GenerateLongitudinalProfile(ParticleEnergy); // performance to be optimized @@@@@@@ - select = CheckParticleDefAndContainment(fastTrack); - if (select) EnergyStop= PBound->GetEneToKill(ParticleType); - } - } - return select; + G4bool select = false; + if(FlagParamType != 0) + { + G4double ParticleEnergy = fastTrack.GetPrimaryTrack()->GetKineticEnergy(); + G4ParticleDefinition &ParticleType = + *(fastTrack.GetPrimaryTrack()->GetDefinition()); + if(ParticleEnergy > PBound->GetMinEneToParametrise(ParticleType) || + ParticleEnergy < PBound->GetMaxEneToParametrise(ParticleType) ) + { + // check conditions depending on particle flavour + // performance to be optimized @@@@@@@ + Parameterisation->GenerateLongitudinalProfile(ParticleEnergy); + select = CheckParticleDefAndContainment(fastTrack); + if (select) EnergyStop= PBound->GetEneToKill(ParticleType); + } + } + return select; } -G4bool GFlashShowerModel::CheckParticleDefAndContainment(const G4FastTrack& fastTrack) +G4bool +GFlashShowerModel::CheckParticleDefAndContainment(const G4FastTrack& fastTrack) { - G4bool filter=false; - G4ParticleDefinition * ParticleType = fastTrack.GetPrimaryTrack()->GetDefinition(); - - if( ParticleType == G4Electron::ElectronDefinition() || - ParticleType == G4Positron::PositronDefinition() ) - { - filter=true; - if(FlagParticleContainment == 1) - { - filter=CheckContainment(fastTrack); - } - } - return filter; + G4bool filter=false; + G4ParticleDefinition * ParticleType = + fastTrack.GetPrimaryTrack()->GetDefinition(); + + if( ParticleType == G4Electron::ElectronDefinition() || + ParticleType == G4Positron::PositronDefinition() ) + { + filter=true; + if(FlagParticleContainment == 1) + { + filter=CheckContainment(fastTrack); + } + } + return filter; } G4bool GFlashShowerModel::CheckContainment(const G4FastTrack& fastTrack) { - //Note: typedef Hep3Vector G4ThreeVector; - - G4bool filter=false; - //track informations - G4ThreeVector DirectionShower = fastTrack.GetPrimaryTrackLocalDirection(); - G4ThreeVector InitialPositionShower = fastTrack.GetPrimaryTrackLocalPosition(); - - G4ThreeVector OrthoShower, CrossShower; - //Returns orthogonal vector - OrthoShower = DirectionShower.orthogonal(); - // Shower in direction perpendicular to OrthoShower and DirectionShower - CrossShower = DirectionShower.cross(OrthoShower); - - G4double R = Parametrisation->GetAveR90(); - G4double Z = Parametrisation->GetAveT90(); - G4int CosPhi[4] = {1,0,-1,0}; - G4int SinPhi[4] = {0,1,0,-1}; - - G4ThreeVector Position; - G4int NlateralInside=0; - //pointer to soild we're in - G4VSolid *SolidCalo = fastTrack.GetEnvelopeSolid(); - for(int i=0; i<4 ;i++) - { - // polar coordinates - Position = InitialPositionShower + - Z*DirectionShower + - R*CosPhi[i]*OrthoShower + - R*SinPhi[i]*CrossShower ; - - if(SolidCalo->Inside(Position) != kOutside) - NlateralInside++; - } - - //chose to parametrise or flag when all inetc... - if(NlateralInside==4) filter=true; - // std::cout << " points = " <GetAveR90(); + G4double Z = Parameterisation->GetAveT90(); + G4int CosPhi[4] = {1,0,-1,0}; + G4int SinPhi[4] = {0,1,0,-1}; + + G4ThreeVector Position; + G4int NlateralInside=0; + // pointer to solid we're in + G4VSolid *SolidCalo = fastTrack.GetEnvelopeSolid(); + for(int i=0; i<4 ;i++) + { + // polar coordinates + Position = InitialPositionShower + + Z*DirectionShower + + R*CosPhi[i]*OrthoShower + + R*SinPhi[i]*CrossShower ; + + if(SolidCalo->Inside(Position) != kOutside) + NlateralInside++; + } + + // choose to parameterise or flag when all inetc... + if(NlateralInside==4) filter=true; + // std::cout << " points = " <GetDefinition() == G4Electron::ElectronDefinition() || - fastTrack.GetPrimaryTrack()->GetDefinition() == G4Positron::PositronDefinition() ) - ElectronDoIt(fastTrack,fastStep); + // parametrise electrons + if(fastTrack.GetPrimaryTrack()->GetDefinition() + == G4Electron::ElectronDefinition() || + fastTrack.GetPrimaryTrack()->GetDefinition() + == G4Positron::PositronDefinition() ) + ElectronDoIt(fastTrack,fastStep); } -void GFlashShowerModel::ElectronDoIt(const G4FastTrack& fastTrack, G4FastStep& fastStep) +void +GFlashShowerModel::ElectronDoIt(const G4FastTrack& fastTrack, + G4FastStep& fastStep) { - // std::cout<<"--- ElectronDoit --- "<GetKineticEnergy()); - - //----------------------------- - // Get track parameters - //----------------------------- - //E,vect{p} and t,vec(x) - G4double Energy = fastTrack.GetPrimaryTrack()->GetKineticEnergy(); - - // axis of the shower, in global reference frame: - G4ThreeVector DirectionShower = fastTrack.GetPrimaryTrack()->GetMomentumDirection(); - G4ThreeVector OrthoShower, CrossShower; - OrthoShower = DirectionShower.orthogonal(); - CrossShower = DirectionShower.cross(OrthoShower); - - //-------------------------------- - ///Generate longitudinal profile - //-------------------------------- - Parametrisation->GenerateLongitudinalProfile(Energy); // performane iteration @@@@@@@ - - ///Initialisation of long. loop variables - G4VSolid *SolidCalo = fastTrack.GetEnvelopeSolid(); - G4ThreeVector pos = fastTrack.GetPrimaryTrackLocalPosition(); - G4ThreeVector dir = fastTrack.GetPrimaryTrackLocalDirection(); - G4double Bound = SolidCalo->DistanceToOut(pos,dir); - - G4double Dz = 0.00; - G4double ZEndStep = 0.00; - - G4double EnergyNow = Energy; - G4double EneIntegral = 0.00; - G4double LastEneIntegral = 0.00; - G4double DEne = 0.00; - - G4double NspIntegral = 0.00; - G4double LastNspIntegral = 0.00; - G4double DNsp = 0.00; - - // starting point of the shower: - G4ThreeVector PositionShower = fastTrack.GetPrimaryTrack()->GetPosition(); - G4ThreeVector NewPositionShower = PositionShower; - G4double StepLenght = 0.00; - - G4int NSpotDeposited =0; - - //-------------------------- - /// Begin Longitudinal Loop - //------------------------- - - do - { - //determine step size=min(1Xo,next boundary) - G4double stepLength = StepInX0*Parametrisation->GetX0(); - if(Bound < stepLength) - { - Dz = Bound; - Bound = 0.00; - } - else - { - Dz = stepLength; - Bound = Bound-Dz; - } - ZEndStep=ZEndStep+Dz; - - // Determine Energy Release in Step - if(EnergyNow > EnergyStop) - { - LastEneIntegral = EneIntegral; - EneIntegral = Parametrisation->IntegrateEneLongitudinal(ZEndStep); - DEne = std::min( EnergyNow, (EneIntegral-LastEneIntegral)*Energy); - LastNspIntegral = NspIntegral; - NspIntegral = Parametrisation->IntegrateNspLongitudinal(ZEndStep); - DNsp = std::max(1., std::floor( (NspIntegral-LastNspIntegral)*Parametrisation->GetNspot() ) ); - } - // end of the shower - else - { - DEne = EnergyNow; - DNsp = std::max(1., std::floor( (1.- NspIntegral)*Parametrisation->GetNspot() )); - } - EnergyNow = EnergyNow - DEne; - - // apply sampling fluctuation - // G4double DEneSampling = Parametrisation->ApplySampling(DEne,Energy); - - //move particle in the middle of the step - StepLenght = StepLenght + Dz/2.00; - NewPositionShower = NewPositionShower + - StepLenght*DirectionShower; - StepLenght = Dz/2.00; - - //generate spots & hits: - for (int i = 0; i < DNsp; i++) - { - NSpotDeposited++; - GFlashEnergySpot Spot; - - //Spot energy: the same for all spots - Spot.SetEnergy( DEne / DNsp ); - G4double PhiSpot = Parametrisation->GeneratePhi(); // phi of spot - G4double RSpot = Parametrisation->GenerateRadius(i,Energy,ZEndStep-Dz/2.); // radius of spot - ///check reference-> may be need to introduce rot matrix @@@ - //Position: equally spaced in z - - G4ThreeVector SpotPosition = NewPositionShower + - Dz/DNsp*DirectionShower*(i+1/2.-DNsp/2.) + - RSpot*std::cos(PhiSpot)*OrthoShower + - RSpot*std::sin(PhiSpot)*CrossShower; - Spot.SetPosition(SpotPosition); - - //Generate Hits of this spot - HMaker->make(&Spot, &fastTrack); - } - } - while(EnergyNow > 0.0 && Bound> 0.0); - - //--------------- - /// End Loop - //------------- - + // std::cout<<"--- ElectronDoit --- "< + GetKineticEnergy()); + + //----------------------------- + // Get track parameters + //----------------------------- + //E,vect{p} and t,vec(x) + G4double Energy = fastTrack.GetPrimaryTrack()->GetKineticEnergy(); + + // axis of the shower, in global reference frame: + G4ThreeVector DirectionShower = + fastTrack.GetPrimaryTrack()->GetMomentumDirection(); + G4ThreeVector OrthoShower, CrossShower; + OrthoShower = DirectionShower.orthogonal(); + CrossShower = DirectionShower.cross(OrthoShower); + + //-------------------------------- + ///Generate longitudinal profile + //-------------------------------- + Parameterisation->GenerateLongitudinalProfile(Energy); + // performance iteration @@@@@@@ + + ///Initialisation of long. loop variables + G4VSolid *SolidCalo = fastTrack.GetEnvelopeSolid(); + G4ThreeVector pos = fastTrack.GetPrimaryTrackLocalPosition(); + G4ThreeVector dir = fastTrack.GetPrimaryTrackLocalDirection(); + G4double Bound = SolidCalo->DistanceToOut(pos,dir); + + G4double Dz = 0.00; + G4double ZEndStep = 0.00; + + G4double EnergyNow = Energy; + G4double EneIntegral = 0.00; + G4double LastEneIntegral = 0.00; + G4double DEne = 0.00; + + G4double NspIntegral = 0.00; + G4double LastNspIntegral = 0.00; + G4double DNsp = 0.00; + + // starting point of the shower: + G4ThreeVector PositionShower = fastTrack.GetPrimaryTrack()->GetPosition(); + G4ThreeVector NewPositionShower = PositionShower; + G4double StepLenght = 0.00; + + G4int NSpotDeposited =0; + + //-------------------------- + /// Begin Longitudinal Loop + //------------------------- + + do + { + //determine step size=min(1Xo,next boundary) + G4double stepLength = StepInX0*Parameterisation->GetX0(); + if(Bound < stepLength) + { + Dz = Bound; + Bound = 0.00; + } + else + { + Dz = stepLength; + Bound = Bound-Dz; + } + ZEndStep=ZEndStep+Dz; + + // Determine Energy Release in Step + if(EnergyNow > EnergyStop) + { + LastEneIntegral = EneIntegral; + EneIntegral = Parameterisation->IntegrateEneLongitudinal(ZEndStep); + DEne = std::min( EnergyNow, + (EneIntegral-LastEneIntegral)*Energy); + LastNspIntegral = NspIntegral; + NspIntegral = Parameterisation->IntegrateNspLongitudinal(ZEndStep); + DNsp = std::max(1., std::floor( (NspIntegral-LastNspIntegral) + *Parameterisation->GetNspot() )); + } + // end of the shower + else + { + DEne = EnergyNow; + DNsp = std::max(1., std::floor( (1.- NspIntegral) + *Parameterisation->GetNspot() )); + } + EnergyNow = EnergyNow - DEne; + + // Apply sampling fluctuation - only in sampling calorimeters + // + GFlashSamplingShowerParameterisation* sp = + dynamic_cast(Parameterisation); + if (sp) + { + G4double DEneSampling = sp->ApplySampling(DEne,Energy); + DEne = DEneSampling; + } + + //move particle in the middle of the step + StepLenght = StepLenght + Dz/2.00; + NewPositionShower = NewPositionShower + + StepLenght*DirectionShower; + StepLenght = Dz/2.00; + + //generate spots & hits: + for (int i = 0; i < DNsp; i++) + { + NSpotDeposited++; + GFlashEnergySpot Spot; + + //Spot energy: the same for all spots + Spot.SetEnergy( DEne / DNsp ); + G4double PhiSpot = Parameterisation->GeneratePhi(); // phi of spot + G4double RSpot = Parameterisation // radius of spot + ->GenerateRadius(i,Energy,ZEndStep-Dz/2.); + + // check reference-> may be need to introduce rot matrix @@@ + // Position: equally spaced in z + + G4ThreeVector SpotPosition = NewPositionShower + + Dz/DNsp*DirectionShower*(i+1/2.-DNsp/2.) + + RSpot*std::cos(PhiSpot)*OrthoShower + + RSpot*std::sin(PhiSpot)*CrossShower; + Spot.SetPosition(SpotPosition); + + //Generate Hits of this spot + HMaker->make(&Spot, &fastTrack); + } + } + while(EnergyNow > 0.0 && Bound> 0.0); + + //--------------- + /// End Loop + //--------------- } -/* void GFlashShowerModel::GammaDoIt(const G4FastTrack& fastTrack, G4FastStep& fastStep) +/* + +void +GFlashShowerModel::GammaDoIt(const G4FastTrack& fastTrack, + G4FastStep& fastStep) { - - if( fastTrack.GetPrimaryTrack()->GetKineticEnergy() > EnergyStop ) - return; - - //deposita in uno spot unico l'energia - //con andamento exp decrescente. - - // Kill the particle to be parametrised - fastStep.KillPrimaryTrack(); - fastStep.SetPrimaryTrackPathLength(0.0); - fastStep.SetTotalEnergyDeposited(fastTrack.GetPrimaryTrack()->GetKineticEnergy()); - //other settings???? - feSpotList.clear(); - //----------------------------- - // Get track parameters - //----------------------------- - //E,vect{p} and t,vec(x) - G4double Energy = - fastTrack.GetPrimaryTrack()->GetKineticEnergy(); - // axis of the shower, in global reference frame: - G4ThreeVector DirectionShower - = fastTrack.GetPrimaryTrack()->GetMomentumDirection(); - // starting point of the shower: - G4ThreeVector PositionShower - = fastTrack.GetPrimaryTrack()->GetPosition(); - - //G4double DEneSampling = Parametrisation->ApplySampling(Energy,Energy); - //if(DEneSampling <= 0.00) DEneSampling=Energy; - - if(Energy > 0.0) - { - G4double dist = Parametrisation->GenerateExponential(Energy); - - GFlashEnergySpot Spot; - Spot.SetEnergy( Energy ); - G4ThreeVector SpotPosition = PositionShower + dist*DirectionShower; - Spot.SetPosition(SpotPosition); - - // Record the Spot: - feSpotList.push_back(Spot); - - //Generate Hits of this spot - HMaker->make(Spot); - } - + + if( fastTrack.GetPrimaryTrack()->GetKineticEnergy() > EnergyStop ) + return; + + //deposita in uno spot unico l'energia + //con andamento exp decrescente. + + // Kill the particle to be parametrised + fastStep.KillPrimaryTrack(); + fastStep.SetPrimaryTrackPathLength(0.0); + fastStep.SetTotalEnergyDeposited(fastTrack.GetPrimaryTrack() + ->GetKineticEnergy()); + // other settings???? + feSpotList.clear(); + + //----------------------------- + // Get track parameters + //----------------------------- + + // E,vect{p} and t,vec(x) + G4double Energy = + fastTrack.GetPrimaryTrack()->GetKineticEnergy(); + // axis of the shower, in global reference frame: + G4ThreeVector DirectionShower = + fastTrack.GetPrimaryTrack()->GetMomentumDirection(); + // starting point of the shower: + G4ThreeVector PositionShower = + fastTrack.GetPrimaryTrack()->GetPosition(); + + //G4double DEneSampling = Parameterisation->ApplySampling(Energy,Energy); + //if(DEneSampling <= 0.00) DEneSampling=Energy; + + if(Energy > 0.0) + { + G4double dist = Parameterisation->GenerateExponential(Energy); + + GFlashEnergySpot Spot; + Spot.SetEnergy( Energy ); + G4ThreeVector SpotPosition = PositionShower + dist*DirectionShower; + Spot.SetPosition(SpotPosition); + + // Record the Spot: + feSpotList.push_back(Spot); + + //Generate Hits of this spot + HMaker->make(Spot); + } } */ diff --git a/source/parameterisations/gflash/src/GFlashShowerModelMessenger.cc b/source/parameterisations/gflash/src/GFlashShowerModelMessenger.cc index e0a122a868..7ba9dfb674 100644 --- a/source/parameterisations/gflash/src/GFlashShowerModelMessenger.cc +++ b/source/parameterisations/gflash/src/GFlashShowerModelMessenger.cc @@ -20,7 +20,17 @@ // * statement, and all its terms. * // ******************************************************************** // -// Created by Joanna Weng, 9.11.04 +// $Id: GFlashShowerModelMessenger.cc,v 1.5 2005/11/28 18:09:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation +// +// ------------- GFlashShowerModelMessenger ------------- +// +// Author: Joanna Weng - 9.11.2004 +// ------------------------------------------------------------ #include "GFlashShowerModelMessenger.hh" #include "GFlashShowerModel.hh" @@ -35,122 +45,129 @@ #include "globals.hh" #include -#include +#include - - -GFlashShowerModelMessenger::GFlashShowerModelMessenger(GFlashShowerModel * aModel) +GFlashShowerModelMessenger:: +GFlashShowerModelMessenger(GFlashShowerModel * aModel) { - myParaDir = new G4UIdirectory("/GFlash/"); - myParaDir->SetGuidance("Parametrisation control."); - myModel= aModel; - - FlagCmd = new G4UIcmdWithAnInteger("/GFlash/flag",this); - FlagCmd->SetGuidance("Defines if GFlash is activated"); - FlagCmd->SetParameterName("flag",false,false); - - ContCmd = new G4UIcmdWithAnInteger("/GFlash/containment ",this); - ContCmd->SetGuidance("Defines if Containment is checked"); - ContCmd->SetParameterName("flag",false,false); - - StepInX0Cmd = new G4UIcmdWithADouble("/GFlash/stepXo",this); - StepInX0Cmd->SetGuidance("Defines step lenghts"); - StepInX0Cmd->SetParameterName("flag",false,false); - - EminCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Emin",this); - EminCmd->SetGuidance("Set minimum kinetic energy to trigger parametrisation"); - EminCmd->SetParameterName("Emin",false,false); - EminCmd->SetDefaultUnit("GeV"); - EminCmd->SetUnitCategory("Energy"); - EminCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - EmaxCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Emax",this); - EmaxCmd->SetGuidance("Set maximum kinetic energy to trigger parametrisation"); - EmaxCmd->SetParameterName("Emax",false,false); - EmaxCmd->SetDefaultUnit("GeV"); - EmaxCmd->SetUnitCategory("Energy"); - EmaxCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - EkillCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Ekill",this); - EkillCmd->SetGuidance("Set maximum kinetic energy for electrons to be killed"); - EkillCmd->SetParameterName("Ekill",false,false); - EkillCmd->SetDefaultUnit("GeV"); - EkillCmd->SetUnitCategory("Energy"); - EkillCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + myParaDir = new G4UIdirectory("/GFlash/"); + myParaDir->SetGuidance("Parametrisation control."); + myModel= aModel; + + FlagCmd = new G4UIcmdWithAnInteger("/GFlash/flag",this); + FlagCmd->SetGuidance("Defines if GFlash is activated"); + FlagCmd->SetParameterName("flag",false,false); + + ContCmd = new G4UIcmdWithAnInteger("/GFlash/containment ",this); + ContCmd->SetGuidance("Defines if Containment is checked"); + ContCmd->SetParameterName("flag",false,false); + + StepInX0Cmd = new G4UIcmdWithADouble("/GFlash/stepXo",this); + StepInX0Cmd->SetGuidance("Defines step lenghts"); + StepInX0Cmd->SetParameterName("flag",false,false); + + EminCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Emin",this); + EminCmd->SetGuidance("Set minimum kinetic energy to trigger parametrisation"); + EminCmd->SetParameterName("Emin",false,false); + EminCmd->SetDefaultUnit("GeV"); + EminCmd->SetUnitCategory("Energy"); + EminCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + EmaxCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Emax",this); + EmaxCmd->SetGuidance("Set maximum kinetic energy to trigger parametrisation"); + EmaxCmd->SetParameterName("Emax",false,false); + EmaxCmd->SetDefaultUnit("GeV"); + EmaxCmd->SetUnitCategory("Energy"); + EmaxCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + EkillCmd = new G4UIcmdWithADoubleAndUnit("/GFlash/Ekill",this); + EkillCmd->SetGuidance("Set maximum kinetic energy for electrons to be killed"); + EkillCmd->SetParameterName("Ekill",false,false); + EkillCmd->SetDefaultUnit("GeV"); + EkillCmd->SetUnitCategory("Energy"); + EkillCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } GFlashShowerModelMessenger::~GFlashShowerModelMessenger() { - delete ContCmd; - delete FlagCmd; - delete StepInX0Cmd; - delete EminCmd; - delete EmaxCmd; - delete EkillCmd; + delete ContCmd; + delete FlagCmd; + delete StepInX0Cmd; + delete EminCmd; + delete EmaxCmd; + delete EkillCmd; } -void GFlashShowerModelMessenger::SetNewValue(G4UIcommand * command,G4String newValues) +void GFlashShowerModelMessenger:: +SetNewValue(G4UIcommand * command,G4String newValues) { - - if( command == FlagCmd ) { - myModel->SetFlagParamType(FlagCmd->GetNewIntValue(newValues)); - this->GetCurrentValue(command); - } - if( command == ContCmd ) { - myModel->SetFlagParticleContainment(ContCmd->GetNewIntValue(newValues)); - this->GetCurrentValue(command); - } - if( command == StepInX0Cmd ) { - myModel->SetStepInX0(StepInX0Cmd->GetNewDoubleValue(newValues)); - this->GetCurrentValue(command); - } - - else if( command == EminCmd ) { - myModel->PBound->SetMinEneToParametrise(*G4Electron::ElectronDefinition() ,EminCmd->GetNewDoubleValue(newValues)); - this->GetCurrentValue(command); - } - - else if( command == EmaxCmd ) { - myModel->PBound->SetMaxEneToParametrise(*G4Electron::ElectronDefinition(), EmaxCmd->GetNewDoubleValue(newValues)); - this->GetCurrentValue(command); - } - - else if( command == EkillCmd ) { - myModel->PBound->SetEneToKill(*G4Electron::ElectronDefinition(), EkillCmd->GetNewDoubleValue(newValues)); - this->GetCurrentValue(command); - } - + + if( command == FlagCmd ) { + myModel->SetFlagParamType(FlagCmd->GetNewIntValue(newValues)); + this->GetCurrentValue(command); + } + if( command == ContCmd ) { + myModel->SetFlagParticleContainment(ContCmd->GetNewIntValue(newValues)); + this->GetCurrentValue(command); + } + if( command == StepInX0Cmd ) { + myModel->SetStepInX0(StepInX0Cmd->GetNewDoubleValue(newValues)); + this->GetCurrentValue(command); + } + + else if( command == EminCmd ) { + myModel->PBound->SetMinEneToParametrise(*G4Electron::ElectronDefinition(), + EminCmd->GetNewDoubleValue(newValues)); + this->GetCurrentValue(command); + } + + else if( command == EmaxCmd ) { + myModel->PBound->SetMaxEneToParametrise(*G4Electron::ElectronDefinition(), + EmaxCmd->GetNewDoubleValue(newValues)); + this->GetCurrentValue(command); + } + + else if( command == EkillCmd ) { + myModel->PBound->SetEneToKill(*G4Electron::ElectronDefinition(), + EkillCmd->GetNewDoubleValue(newValues)); + this->GetCurrentValue(command); + } + } G4String GFlashShowerModelMessenger::GetCurrentValue(G4UIcommand * command) { - G4String returnValue('\0'); - char line[255]; - std::ostrstream os(line,255); - - if( command == FlagCmd ) { - os <<"/GFlash/flag " << myModel->GetFlagParamType() << '\0'; - returnValue = G4String(line); - } - - else if( command == EkillCmd ) { - os <<"/GFlash/Ekill "<< myModel->PBound->GetEneToKill(*G4Electron::ElectronDefinition())/GeV << " GeV" << '\0'; - returnValue = G4String(line); - } - - else if( command == EminCmd ) { - os <<"/GFlash/Emin "<< myModel->PBound->GetMinEneToParametrise(*G4Electron::ElectronDefinition())/GeV << " GeV" << '\0'; - returnValue = G4String(line); - } - - else if( command == EmaxCmd ) { - os <<"/GFlash/Emax " <PBound->GetMaxEneToParametrise(*G4Electron::ElectronDefinition())/GeV << " GeV" << '\0'; - returnValue = G4String(line); - } - - return returnValue; + G4String returnValue('\0'); + std::ostringstream os; + + if( command == FlagCmd ) { + os << "/GFlash/flag " << myModel->GetFlagParamType() << '\0'; + returnValue = G4String(os.str()); + } + + else if( command == EkillCmd ) { + os << "/GFlash/Ekill " + << myModel->PBound->GetEneToKill(*G4Electron::ElectronDefinition())/GeV + << " GeV" << '\0'; + returnValue = G4String(os.str()); + } + + else if( command == EminCmd ) { + os << "/GFlash/Emin " + << myModel->PBound->GetMinEneToParametrise(*G4Electron::ElectronDefinition())/GeV + << " GeV" << '\0'; + returnValue = G4String(os.str()); + } + + else if( command == EmaxCmd ) { + os << "/GFlash/Emax " + << myModel->PBound->GetMaxEneToParametrise(*G4Electron::ElectronDefinition())/GeV + << " GeV" << '\0'; + returnValue = G4String(os.str()); + } + + return returnValue; } - diff --git a/source/parameterisations/gflash/src/GVFlashShowerParameterisation.cc b/source/parameterisations/gflash/src/GVFlashShowerParameterisation.cc new file mode 100644 index 0000000000..43a04168e6 --- /dev/null +++ b/source/parameterisations/gflash/src/GVFlashShowerParameterisation.cc @@ -0,0 +1,118 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: GVFlashShowerParameterisation.cc,v 1.1 2005/11/30 19:29:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class implementation +// +// ------- GVFlashShowerParameterisation ------- +// +// Authors: Joanna Weng - 11.2005 +// ------------------------------------------------------------ + +#include "GVFlashShowerParameterisation.hh" +#include +#include "Randomize.hh" +#include "G4ios.hh" +#include "G4Material.hh" +#include "Gamma.hh" // @@@@ +#include "G4MaterialTable.hh" + +GVFlashShowerParameterisation::GVFlashShowerParameterisation() + : thePar(0) +{ +} + +GVFlashShowerParameterisation::~GVFlashShowerParameterisation() +{ +} + +G4double GVFlashShowerParameterisation::GetEffZ(const G4Material * mat ) +{ + // Returns Z or effective Z=sum(pi*Zi) (if compound/mixture) + // of given material + // + G4double z = 0.; + G4int nofElements = mat->GetNumberOfElements(); + if (nofElements > 1) + { + for (G4int i=0; iGetElement(i)->GetZ(); + G4double massFraction = mat->GetFractionVector()[i]; + // cout << mat->GetElement(i)->GetName() + // <<" Z= "<GetName() << G4endl; + G4cout<<" Z = "<< Z << G4endl; + G4cout<<" A = "<< A << G4endl; + G4cout<<" X0 = "< #include @@ -29,142 +36,141 @@ MyGamma::MyGamma(){} MyGamma::~MyGamma(){} - - -//______________________________________________________________________________ +//____________________________________________________________________________ double MyGamma::Gamma(double z) { - // Computation of gamma(z) for all z>0. - // - // The algorithm is based on the article by C.Lanczos [1] as denoted in - // Numerical Recipes 2nd ed. on p. 207 (W.H.Press et al.). - // - // [1] C.Lanczos, SIAM Journal of Numerical Analysis B1 (1964), 86. - // - //--- Nve 14-nov-1998 UU-SAP Utrecht - - if (z<=0) return 0; - - double v = LnGamma(z); - return std::exp(v); + // Computation of gamma(z) for all z>0. + // + // The algorithm is based on the article by C.Lanczos [1] as denoted in + // Numerical Recipes 2nd ed. on p. 207 (W.H.Press et al.). + // + // [1] C.Lanczos, SIAM Journal of Numerical Analysis B1 (1964), 86. + // + //--- Nve 14-nov-1998 UU-SAP Utrecht + + if (z<=0) return 0; + + double v = LnGamma(z); + return std::exp(v); } -//______________________________________________________________________________ +//____________________________________________________________________________ double MyGamma::Gamma(double a,double x) -{ // Computation of the incomplete gamma function P(a,x) - // - // The algorithm is based on the formulas and code as denoted in - // Numerical Recipes 2nd ed. on p. 210-212 (W.H.Press et al.). - // - //--- Nve 14-nov-1998 UU-SAP Utrecht - - if (a <= 0 || x <= 0) return 0; - - if (x < (a+1)) return GamSer(a,x); - else return GamCf(a,x); +{ + // Computation of the incomplete gamma function P(a,x) + // + // The algorithm is based on the formulas and code as denoted in + // Numerical Recipes 2nd ed. on p. 210-212 (W.H.Press et al.). + // + //--- Nve 14-nov-1998 UU-SAP Utrecht + + if (a <= 0 || x <= 0) return 0; + + if (x < (a+1)) return GamSer(a,x); + else return GamCf(a,x); } -//______________________________________________________________________________ +//____________________________________________________________________________ double MyGamma::GamCf(double a,double x) { - // Computation of the incomplete gamma function P(a,x) - // via its continued fraction representation. - // - // The algorithm is based on the formulas and code as denoted in - // Numerical Recipes 2nd ed. on p. 210-212 (W.H.Press et al.). - // - //--- Nve 14-nov-1998 UU-SAP Utrecht - - int itmax = 100; // Maximum number of iterations - double eps = 3.e-7; // Relative accuracy - double fpmin = 1.e-30; // Smallest double value allowed here - - if (a <= 0 || x <= 0) return 0; - - double gln = LnGamma(a); - double b = x+1-a; - double c = 1/fpmin; - double d = 1/b; - double h = d; - double an,del; - for (int i=1; i<=itmax; i++) { - an = double(-i)*(double(i)-a); - b += 2; - d = an*d+b; - if (Abs(d) < fpmin) d = fpmin; - c = b+an/c; - if (Abs(c) < fpmin) c = fpmin; - d = 1/d; - del = d*c; - h = h*del; - if (Abs(del-1) < eps) break; - //if (i==itmax) cout << "*GamCf(a,x)* a too large or itmax too small" << endl; - } - double v = Exp(-x+a*Log(x)-gln)*h; - return (1-v); + // Computation of the incomplete gamma function P(a,x) + // via its continued fraction representation. + // + // The algorithm is based on the formulas and code as denoted in + // Numerical Recipes 2nd ed. on p. 210-212 (W.H.Press et al.). + // + //--- Nve 14-nov-1998 UU-SAP Utrecht + + int itmax = 100; // Maximum number of iterations + double eps = 3.e-7; // Relative accuracy + double fpmin = 1.e-30; // Smallest double value allowed here + + if (a <= 0 || x <= 0) return 0; + + double gln = LnGamma(a); + double b = x+1-a; + double c = 1/fpmin; + double d = 1/b; + double h = d; + double an,del; + for (int i=1; i<=itmax; i++) { + an = double(-i)*(double(i)-a); + b += 2; + d = an*d+b; + if (Abs(d) < fpmin) d = fpmin; + c = b+an/c; + if (Abs(c) < fpmin) c = fpmin; + d = 1/d; + del = d*c; + h = h*del; + if (Abs(del-1) < eps) break; + //if (i==itmax) cout << "*GamCf(a,x)* a too large or itmax too small" << endl; + } + double v = Exp(-x+a*Log(x)-gln)*h; + return (1-v); } -//______________________________________________________________________________ +//____________________________________________________________________________ double MyGamma::GamSer(double a,double x) { - // Computation of the incomplete gamma function P(a,x) - // via its series representation. - // - // The algorithm is based on the formulas and code as denoted in - // Numerical Recipes 2nd ed. on p. 210-212 (W.H.Press et al.). - // - //--- Nve 14-nov-1998 UU-SAP Utrecht - - int itmax = 100; // Maximum number of iterations - double eps = 3.e-7; // Relative accuracy - - if (a <= 0 || x <= 0) return 0; - - double gln = LnGamma(a); - double ap = a; - double sum = 1/a; - double del = sum; - for (int n=1; n<=itmax; n++) { - ap += 1; - del = del*x/ap; - sum += del; - if (MyGamma::Abs(del) < Abs(sum*eps)) break; - //if (n==itmax) cout << "*GamSer(a,x)* a too large or itmax too small" << endl; - } - double v = sum*Exp(-x+a*Log(x)-gln); - return v; + // Computation of the incomplete gamma function P(a,x) + // via its series representation. + // + // The algorithm is based on the formulas and code as denoted in + // Numerical Recipes 2nd ed. on p. 210-212 (W.H.Press et al.). + // + //--- Nve 14-nov-1998 UU-SAP Utrecht + + int itmax = 100; // Maximum number of iterations + double eps = 3.e-7; // Relative accuracy + + if (a <= 0 || x <= 0) return 0; + + double gln = LnGamma(a); + double ap = a; + double sum = 1/a; + double del = sum; + for (int n=1; n<=itmax; n++) { + ap += 1; + del = del*x/ap; + sum += del; + if (MyGamma::Abs(del) < Abs(sum*eps)) break; + //if (n==itmax) cout << "*GamSer(a,x)* a too large or itmax too small" << endl; + } + double v = sum*Exp(-x+a*Log(x)-gln); + return v; } double MyGamma::LnGamma(double z) { - // Computation of ln[gamma(z)] for all z>0. - // - // The algorithm is based on the article by C.Lanczos [1] as denoted in - // Numerical Recipes 2nd ed. on p. 207 (W.H.Press et al.). - // - // [1] C.Lanczos, SIAM Journal of Numerical Analysis B1 (1964), 86. - // - // The accuracy of the result is better than 2e-10. - // - //--- Nve 14-nov-1998 UU-SAP Utrecht - - if (z<=0) return 0; - - // Coefficients for the series expansion - double c[7] = { 2.5066282746310005, 76.18009172947146, -86.50532032941677 - ,24.01409824083091, -1.231739572450155, 0.1208650973866179e-2 - ,-0.5395239384953e-5}; - - double x = z; - double y = x; - double tmp = x+5.5; - tmp = (x+0.5)*Log(tmp)-tmp; - double ser = 1.000000000190015; - for (int i=1; i<7; i++) { - y += 1; - ser += c[i]/y; - } - double v = tmp+Log(c[0]*ser/x); - return v; + // Computation of ln[gamma(z)] for all z>0. + // + // The algorithm is based on the article by C.Lanczos [1] as denoted in + // Numerical Recipes 2nd ed. on p. 207 (W.H.Press et al.). + // + // [1] C.Lanczos, SIAM Journal of Numerical Analysis B1 (1964), 86. + // + // The accuracy of the result is better than 2e-10. + // + //--- Nve 14-nov-1998 UU-SAP Utrecht + + if (z<=0) return 0; + + // Coefficients for the series expansion + double c[7] = { 2.5066282746310005, 76.18009172947146, -86.50532032941677 + ,24.01409824083091, -1.231739572450155, 0.1208650973866179e-2 + ,-0.5395239384953e-5}; + + double x = z; + double y = x; + double tmp = x+5.5; + tmp = (x+0.5)*Log(tmp)-tmp; + double ser = 1.000000000190015; + for (int i=1; i<7; i++) { + y += 1; + ser += c[i]/y; + } + double v = tmp+Log(c[0]*ser/x); + return v; } diff --git a/source/parameterisations/trd_clusters/GNUmakefile b/source/parameterisations/trd_clusters/GNUmakefile deleted file mode 100644 index 6ec7e17398..0000000000 --- a/source/parameterisations/trd_clusters/GNUmakefile +++ /dev/null @@ -1,36 +0,0 @@ -# $Id: GNUmakefile,v 1.4 2004/12/15 08:44:55 gcosmo Exp $ -# --------------------------------------------------------------- -# GNUmakefile for trd_models library. G.Cosmo, 14/11/2000 -# --------------------------------------------------------------- - -name := G4trdmodels - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -CPPFLAGS += -I$(G4BASE)/global/management/include \ - -I$(G4BASE)/global/HEPRandom/include \ - -I$(G4BASE)/global/HEPGeometry/include \ - -I$(G4BASE)/global/HEPNumerics/include \ - -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/navigation/include \ - -I$(G4BASE)/track/include \ - -I$(G4BASE)/materials/include \ - -I$(G4BASE)/processes/management/include \ - -I$(G4BASE)/processes/cuts/include \ - -I$(G4BASE)/processes/parameterisation/include \ - -I$(G4BASE)/processes/electromagnetic/standard/include \ - -I$(G4BASE)/processes/electromagnetic/utils/include \ - -I$(G4BASE)/particles/management/include \ - -I$(G4BASE)/particles/bosons/include \ - -I$(G4BASE)/particles/hadrons/include \ - -I$(G4BASE)/particles/hadrons/barions/include \ - -I$(G4BASE)/particles/leptons/include \ - -I$(G4BASE)/digits_hits/detector/include \ - -I$(G4BASE)/digits_hits/hits/include - -include $(G4INSTALL)/config/common.gmk diff --git a/source/parameterisations/trd_clusters/History b/source/parameterisations/trd_clusters/History deleted file mode 100644 index c996daf128..0000000000 --- a/source/parameterisations/trd_clusters/History +++ /dev/null @@ -1,80 +0,0 @@ -$Id: History,v 1.3 2004/11/30 10:29:33 gcosmo Exp $ -------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - Category History file - --------------------- -This file should be used by G4 developers and category coordinators -to briefly summarize all major modifications introduced in the code -and keep track of all category-tags. -It DOES NOT substitute the CVS log-message one should put at every -committal in the CVS repository ! - - ---------------------------------------------------------- - * Reverse chronological order (last date on top), please * - ---------------------------------------------------------- - -Nov 30th, 2004 G.Cosmo (trdmodels-V06-02-01) ----------------------- -- Removed unnecessary inclusion of G4PAIonisation.hh from G4VClusterModel - and G4PhotoClusterModel. - -Nov 26th, 2004 H.P.Wellisch (trdmodels-V06-02-00) ---------------------------- -- Moved to submodule. - -Jun 7th, 2004 G.Cosmo (parmodels-V06-01-00) ---------------------- -- GNUmakefile: added definition of GLOBLIBS for DLLs support on Windows. - -Oct 4th, 2003 G.Cosmo (parmodels-V05-02-01) ---------------------- -- GNUmakefile: - o replaced "digits+hits" with "digits_hits". - o added dependency to new module "geometry/navigation". -- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". - -Sep 25th, 2003 H.Kurashige (parmodels-V05-02-00) --------------------------- -- Modify GNUmakefile to use processes/cuts category - -May 21st, 2003 G.Cosmo - (parmodels-V05-01-00) ----------------------- -- Fixed pedantic warnings in G4IrregularXrayTRmodel.cc and G4VXrayTRmodel.cc. - -Feb 12th, 2003 G.Cosmo - (parmodels-V05-00-01) ----------------------- -- Replaced call to RandPoisson::shoot() with G4Poisson(), more performant. - Affected files: G4IrregularXrayTRmodel.cc, G4VXTRdEdx.cc, G4VXrayTRadModel.cc. - -Jan 23rd, 2003 G.Cosmo - (parmodels-V05-00-00) ----------------------- -- Updated header files to remove redundant header inclusions - and properly order inclusion for complex numbers, to allow - porting on Windows .NET VC++ compiler. - -Nov 8th, 2001 M.Verderi - (parmodels-V03-02-02) ------------------------ -- Minor change in G4VClusterModel.cc - -Nov 8th, 2001 G.Cosmo - (parmodels-V03-02-01) ---------------------- -- Introduced changes in G4VClusterModel[.hh.cc] for reference-counted - touchables (R.Chytracek). - -Sep 18th, 2001 V.Grichine - (parmodels-V03-02-00) -------------------------- -- Added new classes describing X-ray transition radiation generation - inside radiators (i.e. just along incident particle track): - G4FoamXTRdEdx[.hh.cc], G4GamDistrXTRdEdx[.hh.cc], G4IrregularXTRdEdx[.hh.cc], - G4PlateIrrGasXTRdEdx[.hh.cc], G4RegularXTRdEdx[.hh.cc], G4VXTRdEdx[.hh.cc] - and G4VXrayTRadModel[.hh.cc] -- Modifications in existing classes, introducing some new parameters, - class fields and methods. - -Nov 14th, 2000 G.Cosmo - (parmodels-V02-00-00) ----------------------- -- Created. diff --git a/source/parameterisations/trd_clusters/include/G4GamDistrXrayTRmodel.hh b/source/parameterisations/trd_clusters/include/G4GamDistrXrayTRmodel.hh deleted file mode 100644 index ffc5dd8745..0000000000 --- a/source/parameterisations/trd_clusters/include/G4GamDistrXrayTRmodel.hh +++ /dev/null @@ -1,74 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4GamDistrXrayTRmodel.hh,v 1.2 2004/12/07 09:00:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// Rough model describing a radiator of X-ray transition radiation. -// Thicknesses of plates and gas gaps are distributed according to gamma -// distribution. x are thicknesses of plates or gas gaps: -// -// p(x) = (alpha/)^alpha * x^(alpha-1) * std::exp(-alpha*x/) / G(alpha) -// -// G(alpha) is Euler's gamma function. -// Plates have mean = fPlateThick > 0 and power alpha = fAlphaPlate > 0 : -// Gas gaps have mean = fGasThick > 0 and power alpha = fAlphaGas > 0 : -// We suppose that: -// formation zone ~ mean thickness << absorption length -// for each material and in the range 1-100 keV. This allows us to simplify -// interference effects in radiator stack (GetStackFactor method). -// -// -// History: -// 11.02.00 V. Grichine, first version -// - - -#ifndef G4GamDistrXrayTRmodel_h -#define G4GamDistrXrayTRmodel_h 1 - -#include "G4VXrayTRadModel.hh" -#include "G4VFastSimulationModel.hh" - -class G4GamDistrXrayTRmodel : public G4VXrayTRadModel -{ -public: - - G4GamDistrXrayTRmodel (G4LogicalVolume *anEnvelope, - G4double,G4double, - G4double,G4double ); - ~G4GamDistrXrayTRmodel (); - - // Pure virtual function from base class - - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); - -private: - - G4double fAlphaPlate, fAlphaGas ; -}; - -#endif diff --git a/source/parameterisations/trd_clusters/include/G4IrregularXTRdEdx.hh b/source/parameterisations/trd_clusters/include/G4IrregularXTRdEdx.hh deleted file mode 100644 index 87b8074334..0000000000 --- a/source/parameterisations/trd_clusters/include/G4IrregularXTRdEdx.hh +++ /dev/null @@ -1,62 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4IrregularXTRdEdx.hh,v 1.1 2004/11/09 09:20:32 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// Very rough model describing a radiator of X-ray transition radiation. -// Thicknesses of plates and gas gaps are exponentially distributed. -// We suppose that: -// formation zone << mean thickness << absorption length -// for each material and in the range 1-100 keV. This allows us to simplify -// essentially interference effects in radiator stack (GetStackFactor method). -// The price is decreasing of X-ray TR photon yield. -// -// History: -// 27.02.01 V. Grichine first version -// - - -#ifndef G4IrregularXTRdEdx_h -#define G4IrregularXTRdEdx_h 1 - -#include "G4VXTRdEdx.hh" -#include "G4VFastSimulationModel.hh" - -class G4IrregularXTRdEdx : public G4VXTRdEdx -{ -public: - - G4IrregularXTRdEdx (G4LogicalVolume *anEnvelope,G4double,G4double); - ~G4IrregularXTRdEdx(); - - // Pure virtual function from base class - - // void DoIt(const G4FastTrack&, G4FastStep&); - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); -}; - -#endif diff --git a/source/parameterisations/trd_clusters/include/G4PlateIrrGasXTRdEdx.hh b/source/parameterisations/trd_clusters/include/G4PlateIrrGasXTRdEdx.hh deleted file mode 100644 index a99e17ba09..0000000000 --- a/source/parameterisations/trd_clusters/include/G4PlateIrrGasXTRdEdx.hh +++ /dev/null @@ -1,61 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4PlateIrrGasXTRdEdx.hh,v 1.1 2004/11/09 09:20:32 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// Model describing a radiator of X-ray transition radiation. -// Thicknesses of plates is fixed while gas gaps are fully irregular. -// We suppose that: -// formation zone ~ mean thickness << absorption length -// for each material and in the range 1-100 keV. This allows us to simplify -// interference effects in radiator stack (GetStackFactor method). -// -// -// History: -// 27.02.01 V. Grichine, first version -// - - -#ifndef G4PlateIrrGasXTRdEdx_h -#define G4PlateIrrGasXTRdEdx_h 1 - -#include "G4VXTRdEdx.hh" -#include "G4VFastSimulationModel.hh" - -class G4PlateIrrGasXTRdEdx : public G4VXTRdEdx -{ -public: - - G4PlateIrrGasXTRdEdx (G4LogicalVolume *anEnvelope,G4double,G4double); - ~G4PlateIrrGasXTRdEdx (); - - // Pure virtual function from base class - - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); -}; - -#endif diff --git a/source/parameterisations/trd_clusters/include/G4PlateIrrGasXrayTRmodel.hh b/source/parameterisations/trd_clusters/include/G4PlateIrrGasXrayTRmodel.hh deleted file mode 100644 index 93c6b11f66..0000000000 --- a/source/parameterisations/trd_clusters/include/G4PlateIrrGasXrayTRmodel.hh +++ /dev/null @@ -1,61 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4PlateIrrGasXrayTRmodel.hh,v 1.1 2004/11/09 09:20:32 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// Model describing a radiator of X-ray transition radiation. -// Thicknesses of plates is fixed while gas gaps are fully irregular. -// We suppose that: -// formation zone ~ mean thickness << absorption length -// for each material and in the range 1-100 keV. This allows us to simplify -// interference effects in radiator stack (GetStackFactor method). -// -// -// History: -// 10.02.00 V. Grichine, first version -// - - -#ifndef G4PlateIrrGasXrayTRmodel_h -#define G4PlateIrrGasXrayTRmodel_h 1 - -#include "G4VXrayTRadModel.hh" -#include "G4VFastSimulationModel.hh" - -class G4PlateIrrGasXrayTRmodel : public G4VXrayTRadModel -{ -public: - - G4PlateIrrGasXrayTRmodel (G4LogicalVolume *anEnvelope,G4double,G4double); - ~G4PlateIrrGasXrayTRmodel (); - - // Pure virtual function from base class - - G4double GetStackFactor( G4double energy, G4double gamma, G4double varAngle); -}; - -#endif diff --git a/source/parameterisations/trd_clusters/include/G4VXTRdEdx.hh b/source/parameterisations/trd_clusters/include/G4VXTRdEdx.hh deleted file mode 100644 index acc0953c2c..0000000000 --- a/source/parameterisations/trd_clusters/include/G4VXTRdEdx.hh +++ /dev/null @@ -1,90 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VXTRdEdx.hh,v 1.1 2004/11/09 09:20:33 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// base class for 'fast' parametrisation model describing X-ray transition -// created in some G4Envelope. Anglur distribuiton is very rough !!! (see DoIt -// method -// -// History: -// 26.02.01 V. Grichine first version -// 26.02.01 V. Grichine, DoIt was transformed from virtual -// - - -#ifndef G4VXTRdEdx_h -#define G4VXTRdEdx_h 1 - - -#include -#include "globals.hh" - -#include "G4PhysicsTable.hh" -#include "G4PhysicsLogVector.hh" -#include "G4Gamma.hh" - -#include "G4VXrayTRmodel.hh" - - -class G4VXTRdEdx : public G4VXrayTRmodel -{ -public: - - G4VXTRdEdx (G4LogicalVolume *anEnvelope,G4double,G4double); - virtual ~G4VXTRdEdx (); - - // Pure virtual functions from base class - - void DoIt(const G4FastTrack&, G4FastStep&) ; - - // Pure virtuals must be implemented in inherited particular TR radiators - - virtual G4double GetStackFactor( G4double energy, G4double gamma, - G4double varAngle ) = 0 ; - -protected: - - void BuildTable() ; - void BuildEnergyTable() ; - void BuildAngleTable() ; - - G4complex OneInterfaceXTRdEdx( G4double energy, - G4double gamma, - G4double varAngle ) ; - - G4double SpectralAngleXTRdEdx(G4double varAngle) ; - - G4double SpectralXTRdEdx(G4double energy) ; - - G4double AngleSpectralXTRdEdx(G4double energy) ; - - G4double AngleXTRdEdx(G4double varAngle) ; -}; - -#endif - diff --git a/source/parameterisations/trd_clusters/include/G4VXrayTRmodel.hh b/source/parameterisations/trd_clusters/include/G4VXrayTRmodel.hh deleted file mode 100644 index f0ccce970f..0000000000 --- a/source/parameterisations/trd_clusters/include/G4VXrayTRmodel.hh +++ /dev/null @@ -1,162 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VXrayTRmodel.hh,v 1.1 2004/11/09 09:20:34 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -/////////////////////////////////////////////////////////////////////////// -// -// base class for 'fast' parametrisation model describing X-ray transition -// created in some G4Envelope. Anglur distribuiton is very rough !!! (see DoIt -// method -// -// History: -// 23.01.00 V. Grichine first version -// 09.02.00 V. Grichine, DoIt was transformed from virtual -// - - -#ifndef G4VXrayTRmodel_h -#define G4VXrayTRmodel_h 1 - - -#include -#include "globals.hh" - -#include "G4PhysicsTable.hh" -#include "G4PhysicsLogVector.hh" -#include "G4Gamma.hh" - -#include "G4VFastSimulationModel.hh" -// #include "G4ForwardXrayTR.hh" - -class G4VXrayTRmodel : public G4VFastSimulationModel -// , public G4ForwardXrayTR -{ -public: - - G4VXrayTRmodel (G4LogicalVolume *anEnvelope,G4double,G4double); - virtual ~G4VXrayTRmodel (); - - // Pure virtual functions from base class - - G4bool IsApplicable(const G4ParticleDefinition&); - - G4bool ModelTrigger(const G4FastTrack &); - - // Pure virtuals must be implemented in inherited particular TR radiators - - virtual void DoIt(const G4FastTrack&, G4FastStep&) = 0 ; - - virtual G4double GetStackFactor( G4double energy, G4double gamma, - G4double varAngle ) = 0 ; - - G4double OneBoundaryXTRNdensity( G4double energy, - G4double gamma, - G4double varAngle ) const ; - - - // for photon energy distribution tables - - G4double XTRNSpectralAngleDensity(G4double varAngle) ; - G4double XTRNSpectralDensity(G4double energy) ; - - // for photon angle distribution tables - - G4double XTRNAngleSpectralDensity(G4double energy) ; - G4double XTRNAngleDensity(G4double varAngle) ; - - void GetNumberOfPhotons() ; - - void ExampleDoIt(const G4FastTrack&, G4FastStep&) ; - - // Auxiliary functions for plate/gas material parameters - - G4double GetPlateFormationZone(G4double,G4double,G4double) ; - G4complex GetPlateComplexFZ(G4double,G4double,G4double) ; - void ComputePlatePhotoAbsCof() ; - G4double GetPlateLinearPhotoAbs(G4double) ; - void GetPlateZmuProduct() ; - G4double GetPlateZmuProduct(G4double,G4double,G4double) ; - - G4double GetGasFormationZone(G4double,G4double,G4double) ; - G4complex GetGasComplexFZ(G4double,G4double,G4double) ; - void ComputeGasPhotoAbsCof() ; - G4double GetGasLinearPhotoAbs(G4double) ; - void GetGasZmuProduct() ; - G4double GetGasZmuProduct(G4double,G4double,G4double) ; - - G4double GetXTRrandomEnergy( G4double scaledTkin, G4int iTkin ) ; - G4double GetXTRenergy( G4int iPlace, G4double position, G4int iTransfer ) ; - -protected: - - G4Gamma* fPtrGamma ; // pointer to TR photon - - G4double* fGammaCutInKineticEnergy ; // TR photon cut in energy array - G4double fGammaTkinCut ; // Tkin cut of TR photon in current mat. - - G4PhysicsTable* fAngleDistrTable ; - G4PhysicsTable* fEnergyDistrTable ; - - static G4PhysicsLogVector* fProtonEnergyVector ; - - - static G4double fTheMinEnergyTR ; // static min TR energy - static G4double fTheMaxEnergyTR ; // static max TR energy - G4double fMinEnergyTR ; // min TR energy in material - G4double fMaxEnergyTR ; // max TR energy in material - static G4double fTheMaxAngle ; // max theta of TR quanta - static G4double fTheMinAngle ; // max theta of TR quanta - G4double fMaxThetaTR ; // max theta of TR quanta - static G4int fBinTR ; // number of bins in TR vectors - - static G4double fMinProtonTkin ; // min Tkin of proton in tables - static G4double fMaxProtonTkin ; // max Tkin of proton in tables - static G4int fTotBin ; // number of bins in log scale - G4double fGamma ; // current Lorentz factor - G4double fEnergy ; // energy and - G4double fVarAngle ; // angle squared - - static G4double fPlasmaCof ; // physical consts for plasma energy - static G4double fCofTR ; - - G4double fSigma1, fSigma2 ; // plasma energy Sq of matter1/2 - - G4int fMatIndex1, fMatIndex2 ; - - G4int fPlateNumber ; - - G4double** fPlatePhotoAbsCof ; - G4int fPlateIntervalNumber ; - G4double fPlateThick ; - - G4double** fGasPhotoAbsCof ; - G4int fGasIntervalNumber ; - G4double fGasThick ; - - -}; - -#endif diff --git a/source/parameterisations/trd_clusters/src/G4FoamXTRdEdx.cc b/source/parameterisations/trd_clusters/src/G4FoamXTRdEdx.cc deleted file mode 100644 index 7b31b1801c..0000000000 --- a/source/parameterisations/trd_clusters/src/G4FoamXTRdEdx.cc +++ /dev/null @@ -1,110 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4FoamXTRdEdx.cc,v 1.1 2004/11/09 09:20:34 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// - -#include - -#include "G4FoamXTRdEdx.hh" -#include "Randomize.hh" - -#include "G4Gamma.hh" - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4FoamXTRdEdx::G4FoamXTRdEdx(G4Envelope *anEnvelope, - G4double a, G4double b) : - G4VXTRdEdx(anEnvelope,a,b) -{ - G4cout<<"Foam XTR dE/dx model is called"< - -#include "G4FoamXrayTRmodel.hh" -#include "Randomize.hh" - -#include "G4Gamma.hh" - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4FoamXrayTRmodel::G4FoamXrayTRmodel(G4Envelope *anEnvelope, - G4double a, G4double b) : - G4VXrayTRadModel(anEnvelope,a,b) -{ - G4cout<<"Foam X-ray TR radiator model is called"< - -#include "G4GamDistrXTRdEdx.hh" -#include "Randomize.hh" - -#include "G4Gamma.hh" - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4GamDistrXTRdEdx::G4GamDistrXTRdEdx(G4Envelope *anEnvelope, - G4double a, G4double alphaPlate, - G4double b, G4double alphaGas) : - G4VXTRdEdx(anEnvelope,a,b) -{ - G4cout<<"Gammma distributed X-ray TR radiator model is called"<GetDefinition()->GetPDGCharge() ; - - // Now we are ready to Generate TR photons - - G4double chargeSq = charge*charge ; - G4double kinEnergy = fastTrack.GetPrimaryTrack()->GetKineticEnergy() ; - G4double mass = fastTrack.GetPrimaryTrack()->GetDefinition()->GetPDGMass() ; - G4double gamma = 1.0 + kinEnergy/mass ; - // G4cout<<"gamma = "< - DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(), - direction) ; - - G4ThreeVector position = fastTrack.GetPrimaryTrackLocalPosition() + - distance*direction ; - - // Set final position: - - fastStep.SetPrimaryTrackFinalPosition(position); - - - for(iTkin=0;iTkinGetLowEdgeEnergy(iTkin)) break ; - } - iPlace = iTkin - 1 ; - - G4ParticleMomentum particleDir = fastTrack.GetPrimaryTrack()-> - GetMomentumDirection() ; - - if(iTkin == 0) // Tkin is too small, neglect of TR photon generation - { - return ; - } - else // general case: Tkin between two vectors of the material - { - if(iTkin == fTotBin) - { - numOfTR = G4Poisson( (*(*fEnergyDistrTable)(iPlace))(0)*chargeSq ) ; - } - else - { - E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ; - E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ; - W = 1.0/(E2 - E1) ; - W1 = (E2 - TkinScaled)*W ; - W2 = (TkinScaled - E1)*W ; - numOfTR = G4Poisson( ( (*(*fEnergyDistrTable)(iPlace))(0)*W1+ - (*(*fEnergyDistrTable)(iPlace+1))(0)*W2 ) - *chargeSq ) ; - } - - // G4cout<= 0.1 ) theta = 0.1 ; - - // G4cout<<" : theta = "< - DistanceToOut(positionTR,directionTR) ; - - positionTR = positionTR + distanceTR*directionTR ; - - fastStep.CreateSecondaryTrack( aPhotonTR, - positionTR, - fastTrack.GetPrimaryTrack()-> - GetGlobalTime() ) ; - } - kinEnergy -= sumEnergyTR ; - fastStep.SetPrimaryTrackFinalKineticEnergy(kinEnergy) ; - } - } - return ; -} - -***************************************************** */ - - -/////////////////////////////////////////////////////////////////////////// -// -// Very rough approximation for radiator interference factor for the case of -// fully irregular radiator. The plate and gas gap thicknesses are distributed -// according to exponent. The mean values of the plate and gas gap thicknesses -// are supposed to be much more than XTR formation zones but much less than -// mean absorption length of XTR photons in coresponding material. - -G4double -G4IrregularXrayTRmodel::GetStackFactor( G4double energy, G4double, G4double ) -{ - G4double result, plateFactor, gasFactor, factor ; - - plateFactor = 1.0/( 1.0 + fPlateThick*GetPlateLinearPhotoAbs(energy) ) ; - - gasFactor = 1.0/( 1.0 + fGasThick*GetGasLinearPhotoAbs(energy) ) ; - - factor = plateFactor*gasFactor ; - - result = ( 1 - std::pow(factor,G4double(fPlateNumber)) )/( 1 - factor ) ; - - result *= 1 + plateFactor ; - - return result ; -} - - -// -// -//////////////////////////////////////////////////////////////////////////// - - - - - - - - diff --git a/source/parameterisations/trd_clusters/src/G4PAIclusterModel.cc b/source/parameterisations/trd_clusters/src/G4PAIclusterModel.cc deleted file mode 100644 index e105a999e6..0000000000 --- a/source/parameterisations/trd_clusters/src/G4PAIclusterModel.cc +++ /dev/null @@ -1,191 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4PAIclusterModel.cc,v 1.2 2004/11/10 10:03:12 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// - -#include "G4Timer.hh" - -#include "G4PAIclusterModel.hh" -#include "Randomize.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "globals.hh" - -#include "G4ParticleDefinition.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4Gamma.hh" -#include "G4TransportationManager.hh" -#include "G4VSensitiveDetector.hh" -#include "G4VTouchable.hh" - - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4PAIclusterModel::G4PAIclusterModel(G4Envelope *anEnvelope) : - G4VClusterModel("G4PAIclusterModel",anEnvelope) -{ - const G4ParticleDefinition* theElectron = G4Electron::Electron(); - G4DataVector data; - fPAIonisation = new G4PAIModel(theElectron,"PAIclusterModel"); - fPAIonisation->Initialise(theElectron,data); -} - -/////////////////////////////////////////////////////////////////////////// - -G4PAIclusterModel::~G4PAIclusterModel() -{ - delete fPAIonisation ; -} - -/////////////////////////////////////////////////////////////////////////////// -// -// Returns condition for application of the model depending on particle type - - -G4bool G4PAIclusterModel::IsApplicable(const G4ParticleDefinition& particle) -{ - return ( particle.GetPDGCharge() != 0.0 && particle.GetPDGMass() != 0 ) ; -} - -///////////////////////////////////////////////////////////////////// -// -// UserTrigger() method: method which has to decide if -// the parameterisation has to be applied. -// Here ModelTrigger() asks the user (ie you) a 0/1 answer. -// -// Note that quantities like the local/global position/direction etc.. -// are available at this level via the fastTrack parameter (allowing -// to check distance from boundaries, see below to allow the decision) -// - -G4bool G4PAIclusterModel::ModelTrigger(const G4FastTrack& fastTrack) -{ - G4double kinEnergy, mass, gamma ; - kinEnergy = fastTrack.GetPrimaryTrack()->GetKineticEnergy() ; - mass = fastTrack.GetPrimaryTrack()->GetDefinition()->GetPDGMass() ; - gamma = 1.0 + kinEnergy/mass ; - if (gamma >= 1.2) return true ; - else return false ; -} - -////////////////////////////////////////////////////////////////////////////// -// -// - -void G4PAIclusterModel::DoIt( const G4FastTrack& fastTrack , - G4FastStep& fastStep ) -{ - G4double charge, charge2, kinEnergy, mass, massRatio, scaledTkin ; - G4double distance, energyTransfer, lambda, step, stepSum = 0.0 ; - G4double energyLoss = 0.0 ; - G4ThreeVector clusterPosition ; - - fClusterPositionVector.clear() ; - fClusterEnergyVector.clear() ; - - charge = fastTrack.GetPrimaryTrack()->GetDefinition()->GetPDGCharge() ; - charge2 = charge*charge ; - kinEnergy = fastTrack.GetPrimaryTrack()->GetKineticEnergy() ; - mass = fastTrack.GetPrimaryTrack()->GetDefinition()->GetPDGMass() ; - massRatio = proton_mass_c2/mass ; - scaledTkin = kinEnergy*massRatio ; - - G4ParticleMomentum direction(fastTrack.GetPrimaryTrackLocalDirection()); - - distance = fastTrack.GetEnvelopeSolid()-> - DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(),direction) ; - - G4ThreeVector position = fastTrack.GetPrimaryTrackLocalPosition() + - distance*direction ; - - // Set final position: - - fastStep.SetPrimaryTrackFinalPosition(position); - - // Cluster counting loop - - lambda = 1*mm;// fPAIonisation->GetFreePath( scaledTkin, charge2 ) ; - step = RandExponential::shoot(lambda) ; - // if (step < 0.0) step = 0.0 ; - stepSum += step ; - // distance -= stepSum ; - // if(distance < 0.0) // no change, return - if(stepSum > distance ) // no change, return - { - return ; - } - else - { - G4ThreeVector globalStartPosition = fastTrack.GetPrimaryTrack()-> - GetPosition() ; - G4ParticleMomentum globalDirection = fastTrack.GetPrimaryTrack()-> - GetMomentumDirection() ; - - // while(distance >= 0.0) - while(stepSum <= distance ) // global (or local ?) cluster coordinates - { - // clusterPosition = fastTrack.GetPrimaryTrackLocalPosition() + - // stepSum*direction ; - - clusterPosition = globalStartPosition + stepSum*globalDirection ; - energyTransfer = fPAIonisation->GetPostStepTransfer(scaledTkin) ; - - fClusterPositionVector.push_back(clusterPosition) ; - fClusterEnergyVector.push_back(energyTransfer) ; - - step = RandExponential::shoot(lambda) ; - // if (step < 0.0) step = 0.0 ; - stepSum += step ; - // distance -= step ; - energyLoss += energyTransfer ; - } - kinEnergy -= energyLoss ; - fastStep.SetPrimaryTrackFinalKineticEnergy(kinEnergy) ; - // fastStep.SetTotalEnergyDeposited(energyLoss); - - BuildDetectorResponse() ; - } - return ; -} - - -// -// -/////////////////////////////////////////////////////////////////////// - - - - - - - - - - - - diff --git a/source/parameterisations/trd_clusters/src/G4PhotoClusterModel.cc b/source/parameterisations/trd_clusters/src/G4PhotoClusterModel.cc deleted file mode 100644 index 440115a2d5..0000000000 --- a/source/parameterisations/trd_clusters/src/G4PhotoClusterModel.cc +++ /dev/null @@ -1,239 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4PhotoClusterModel.cc,v 1.1 2004/11/09 09:20:34 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// - -#include "G4Timer.hh" - -#include "G4PhotoClusterModel.hh" -#include "Randomize.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "globals.hh" - -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4Gamma.hh" -#include "G4TransportationManager.hh" -#include "G4VSensitiveDetector.hh" -#include "G4VTouchable.hh" - - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4PhotoClusterModel::G4PhotoClusterModel(G4Envelope *anEnvelope) : - G4VClusterModel("G4PhotoClusterModel",anEnvelope) -{ - fMatIndex = anEnvelope->GetMaterial()->GetIndex() ; - ComputePhotoAbsCof() ; - -} - -/////////////////////////////////////////////////////////////////////////// - -G4PhotoClusterModel::~G4PhotoClusterModel() -{ - for(G4int i=0;iGetKineticEnergy() > 1*keV && - fastTrack.GetPrimaryTrack()->GetKineticEnergy() < 40*keV ) ; -} - -////////////////////////////////////////////////////////////////////////////// -// -// - -void G4PhotoClusterModel::DoIt( const G4FastTrack& fastTrack , - G4FastStep& fastStep ) -{ - G4double energy ; - G4double distance, lambda, step ; - G4ThreeVector clusterPosition ; - - energy = fastTrack.GetPrimaryTrack()->GetKineticEnergy() ; - - G4ParticleMomentum direction(fastTrack.GetPrimaryTrackLocalDirection()); - - distance = fastTrack.GetEnvelopeSolid()-> - DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(),direction) ; - - G4ThreeVector position = fastTrack.GetPrimaryTrackLocalPosition() + - distance*direction ; - - // Set final position: - - fastStep.SetPrimaryTrackFinalPosition(position); - - // Cluster counting loop - - lambda = 1.0/GetLinearPhotoAbs(energy) ; - step = RandExponential::shoot(lambda) ; - - if(step > distance) // no change, return - { - return ; - } - else - { - G4ThreeVector globalStartPosition = fastTrack.GetPrimaryTrack()-> - GetPosition() ; - G4ParticleMomentum globalDirection = fastTrack.GetPrimaryTrack()-> - GetMomentumDirection() ; - - // global (or local ?) cluster coordinates - // clusterPosition = fastTrack.GetPrimaryTrackLocalPosition() + - // stepSum*direction ; - - clusterPosition = globalStartPosition + step*globalDirection ; - fClusterPositionVector.push_back(clusterPosition) ; - fClusterEnergyVector.push_back(energy) ; - - fastStep.KillPrimaryTrack(); - fastStep.SetPrimaryTrackPathLength(step); - fastStep.SetTotalEnergyDeposited(energy); - - BuildDetectorResponse() ; - } - return ; -} - -//////////////////////////////////////////////////////////////////////// -// -// Computes matrix of Sandia photo absorption cross section coefficients for -// G4Envelope material - -void G4PhotoClusterModel::ComputePhotoAbsCof() -{ - G4int i, j, numberOfElements ; - static const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - - G4SandiaTable thisMaterialSandiaTable(fMatIndex) ; - numberOfElements = (*theMaterialTable)[fMatIndex]->GetNumberOfElements() ; - G4int* thisMaterialZ = new G4int[numberOfElements] ; - - for(i=0;i - GetElement(i)->GetZ() ; - } - fIntervalNumber = thisMaterialSandiaTable.SandiaIntervals - (thisMaterialZ,numberOfElements) ; - - fIntervalNumber = thisMaterialSandiaTable.SandiaMixing - ( thisMaterialZ , - (*theMaterialTable)[fMatIndex]->GetFractionVector() , - numberOfElements,fIntervalNumber) ; - - fPhotoAbsCof = new G4double*[fIntervalNumber] ; - for(i=0;iGetDensity() ; - } - } - delete[] thisMaterialZ ; - return ; -} - -////////////////////////////////////////////////////////////////////// -// -// Returns the value of linear photo absorption coefficient (in reciprocal -// length) for G4Envelope material - -G4double G4PhotoClusterModel::GetLinearPhotoAbs(G4double omega) -{ - G4int i ; - G4double omega2, omega3, omega4 ; - - omega2 = omega*omega ; - omega3 = omega2*omega ; - omega4 = omega2*omega2 ; - - for(i=0;i - -#include "G4PlateIrrGasXTRdEdx.hh" -#include "Randomize.hh" - -#include "G4Gamma.hh" - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4PlateIrrGasXTRdEdx::G4PlateIrrGasXTRdEdx(G4Envelope *anEnvelope, - G4double a, G4double b) : - G4VXTRdEdx(anEnvelope,a,b) -{ - G4cout<<"PlateIrrGas X-ray TR radiator model is called"< - -#include "G4PlateIrrGasXrayTRmodel.hh" -#include "Randomize.hh" - -#include "G4Gamma.hh" - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4PlateIrrGasXrayTRmodel::G4PlateIrrGasXrayTRmodel(G4Envelope *anEnvelope, - G4double a, G4double b) : - G4VXrayTRadModel(anEnvelope,a,b) -{ - G4cout<<"PlateIrrGas X-ray TR radiator model is called"< - -#include "G4RegularXTRdEdx.hh" -#include "Randomize.hh" - -#include "G4Gamma.hh" - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4RegularXTRdEdx::G4RegularXTRdEdx(G4Envelope *anEnvelope, - G4double a, G4double b) : - G4VXTRdEdx(anEnvelope,a,b) -{ - G4cout<<"Regular X-ray TR dE/dx radiator model is called"<GetPreStepPoint() ; - fFakePostStepPoint = fFakeStep->GetPostStepPoint() ; - - fTouchable = new G4TouchableHistory ; - fNavigator = new G4Navigator ; - fNavigatorSetup = false ; - -} - -/////////////////////////////////////////////////////////////////////////// - -G4VClusterModel::~G4VClusterModel() -{ - delete fFakeStep ; - delete fNavigator ; -} - - -////////////////////////////////////////////////////////////////////////////// -// -// - -void G4VClusterModel::BuildDetectorResponse() -{ - for( size_t i = 0 ; i < fClusterEnergyVector.size() ; i++ ) - { - AssignClusterHit(fClusterPositionVector[i],fClusterEnergyVector[i]) ; - } - fClusterPositionVector.clear() ; - fClusterEnergyVector.clear() ; -} - -////////////////////////////////////////////////////////////////////////////// -// -// - -void G4VClusterModel::AssignClusterHit(const G4ThreeVector& position, - G4double energy ) -{ - // "converts" the energy spot into the fake - // G4Step to pass to sensitive detector: - - FillFakeStep(position,energy) ; - - // call sensitive part: taken/adapted from the stepping: - // Send G4Step information to Hit/Dig if the volume is sensitive - - G4VPhysicalVolume* pCurrentVolume = fFakeStep->GetPreStepPoint()->GetPhysicalVolume() ; - G4VSensitiveDetector* pSensitive ; - - if( pCurrentVolume != 0 ) - { - pSensitive = pCurrentVolume->GetLogicalVolume()->GetSensitiveDetector() ; - - if( pSensitive != 0 ) pSensitive->Hit(fFakeStep) ; - } -} - -////////////////////////////////////////////////////////////////////////////// -// -// - -void G4VClusterModel::FillFakeStep(const G4ThreeVector& position, - G4double energy ) -{ - G4ThreeVector dummyDirection; - // find in which volume the spot is. - - if (!fNavigatorSetup) - { - fNavigator->SetWorldVolume(G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking()->GetWorldVolume()) ; - fNavigatorSetup = true; - } - - fNavigator->LocateGlobalPointAndUpdateTouchableHandle(position,dummyDirection,fTouchable, false); - - // Fills attribute of the G4Step needed - // by our sensitive detector: - // - // set touchable volume at PreStepPoint: - - fFakePreStepPoint->SetTouchableHandle(fTouchable) ; - - // set total energy deposit: - - fFakeStep->SetTotalEnergyDeposit(energy) ; - - return ; -} - - -// -// -/////////////////////////////////////////////////////////////////////// - - - - diff --git a/source/parameterisations/trd_clusters/src/G4VXTRdEdx.cc b/source/parameterisations/trd_clusters/src/G4VXTRdEdx.cc deleted file mode 100644 index 98bc9a4a74..0000000000 --- a/source/parameterisations/trd_clusters/src/G4VXTRdEdx.cc +++ /dev/null @@ -1,393 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VXTRdEdx.cc,v 1.2 2004/12/07 09:00:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// - -#include "G4Timer.hh" - -#include "G4VXTRdEdx.hh" -#include "G4Poisson.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "globals.hh" -#include -#include "G4PhysicsTable.hh" -#include "G4PhysicsVector.hh" -#include "G4PhysicsLinearVector.hh" -#include "G4PhysicsLogVector.hh" -#include "G4Integrator.hh" -#include "G4Gamma.hh" - - - - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4VXTRdEdx::G4VXTRdEdx(G4Envelope *anEnvelope, G4double a, G4double b) : - G4VXrayTRmodel(anEnvelope,a,b) -{ - ; -} - -/////////////////////////////////////////////////////////////////////////// - -G4VXTRdEdx::~G4VXTRdEdx() -{ - ; -} - - -////////////////////////////////////////////////////////////////////////////// -// -// The main function which is responsible for the treatment of a particle passage -// trough G4Envelope - -void G4VXTRdEdx::DoIt( const G4FastTrack& fastTrack , - G4FastStep& fastStep ) -{ - G4int iTkin, iPlace, numOfTR, iTR ; - G4double energyTR, theta, phi, dirX, dirY, dirZ ; - G4double W, W1, W2, E1, E2 ; - - G4double charge = fastTrack.GetPrimaryTrack()->GetDefinition()->GetPDGCharge() ; - - // Now we are ready to Generate TR photons - - G4double chargeSq = charge*charge ; - G4double kinEnergy = fastTrack.GetPrimaryTrack()->GetKineticEnergy() ; - G4double mass = fastTrack.GetPrimaryTrack()->GetDefinition()->GetPDGMass() ; - G4double gamma = 1.0 + kinEnergy/mass ; - // G4cout<<"gamma = "< - DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(), - direction) ; - - G4ThreeVector position = fastTrack.GetPrimaryTrackLocalPosition() + - distance*direction ; - - // Set final position: - - fastStep.SetPrimaryTrackFinalPosition(position); - - - for(iTkin=0;iTkinGetLowEdgeEnergy(iTkin)) break ; - } - iPlace = iTkin - 1 ; - - // G4ParticleMomentum particleDir = fastTrack.GetPrimaryTrack()-> - // GetMomentumDirection() ; - - if(iTkin == 0) // Tkin is too small, neglect of TR photon generation - { - return ; - } - else // general case: Tkin between two vectors of the material - { - if(iTkin == fTotBin) - { - numOfTR = G4Poisson( (*(*fEnergyDistrTable)(iPlace))(0)*chargeSq ) ; - } - else - { - E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ; - E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ; - W = 1.0/(E2 - E1) ; - W1 = (E2 - TkinScaled)*W ; - W2 = (TkinScaled - E1)*W ; - numOfTR = G4Poisson( ( (*(*fEnergyDistrTable)(iPlace))(0)*W1+ - (*(*fEnergyDistrTable)(iPlace+1))(0)*W2 ) - *chargeSq ) ; - } - - // G4cout<= 0.1 ) theta = 0.1 ; - - // G4cout<<" : theta = "< - GetGlobalTime() ) ; - } - kinEnergy -= sumEnergyTR ; - fastStep.SetPrimaryTrackFinalKineticEnergy(kinEnergy) ; - } - } - return ; -} - - -////////////////////////////////////////////////////////////////////////// -// -// Build integral energy distribution of XTR photons - -void G4VXTRdEdx::BuildTable() -{ - G4int iTkin, iTR, iPlace ; - G4double radiatorCof = 1.0 ; // for tuning of XTR yield - - - fEnergyDistrTable = new G4PhysicsTable(fTotBin) ; - - fGammaTkinCut = 0.0 ; - - // setting of min/max TR energies - - if(fGammaTkinCut > fTheMinEnergyTR) fMinEnergyTR = fGammaTkinCut ; - else fMinEnergyTR = fTheMinEnergyTR ; - - if(fGammaTkinCut > fTheMaxEnergyTR) fMaxEnergyTR = 2.0*fGammaTkinCut ; - else fMaxEnergyTR = fTheMaxEnergyTR ; - - G4cout.precision(4) ; - G4Timer timer ; - timer.Start() ; - - for( iTkin = 0 ; iTkin < fTotBin ; iTkin++ ) // Lorentz factor loop - { - G4PhysicsLogVector* energyVector = new G4PhysicsLogVector( fMinEnergyTR, - fMaxEnergyTR, - fBinTR ) ; - - fGamma = 1.0 + (fProtonEnergyVector-> - GetLowEdgeEnergy(iTkin)/proton_mass_c2) ; - - fMaxThetaTR = 25.0/(fGamma*fGamma) ; // theta^2 - - fTheMinAngle = 1.0e-6 ; // was 5.e-6, e-5, e-4 - - if( fMaxThetaTR > fTheMaxAngle ) fMaxThetaTR = fTheMaxAngle ; - else - { - if( fMaxThetaTR < fTheMinAngle ) fMaxThetaTR = fTheMinAngle ; - } - - G4PhysicsLinearVector* angleVector = new G4PhysicsLinearVector( 0.0, - fMaxThetaTR, - fBinTR ) ; - - G4double energySum = 0.0 ; - G4double angleSum = 0.0 ; - G4Integrator integral ; - energyVector->PutValue(fBinTR-1,energySum) ; - angleVector->PutValue(fBinTR-1,angleSum) ; - - for( iTR = fBinTR - 2 ; iTR >= 0 ; iTR-- ) - { - energySum += radiatorCof*fCofTR*integral.Legendre10( - this,&G4VXTRdEdx::SpectralXTRdEdx, - energyVector->GetLowEdgeEnergy(iTR), - energyVector->GetLowEdgeEnergy(iTR+1) ) ; - - // angleSum += fCofTR*integral.Legendre96( - // this,&G4VXTRdEdx::AngleXTRdEdx, - // angleVector->GetLowEdgeEnergy(iTR), - // angleVector->GetLowEdgeEnergy(iTR+1) ) ; - - energyVector->PutValue(iTR,energySum) ; - // angleVector ->PutValue(iTR,angleSum) ; - } - G4cout< matter2, or 2->1) -// varAngle =2* (1 - std::cos(theta)) or approximately = theta*theta -// - -G4complex G4VXTRdEdx::OneInterfaceXTRdEdx( G4double energy, - G4double gamma, - G4double varAngle ) -{ - G4complex Z1 = GetPlateComplexFZ(energy,gamma,varAngle) ; - G4complex Z2 = GetGasComplexFZ(energy,gamma,varAngle) ; - - G4complex zOut = (Z1 - Z2)*(Z1 - Z2) - * (varAngle*energy/hbarc/hbarc) ; - return zOut ; - -} - - -////////////////////////////////////////////////////////////////////////////// -// -// For photon energy distribution tables. Integrate first over angle -// - -G4double G4VXTRdEdx::SpectralAngleXTRdEdx(G4double varAngle) -{ - G4double result = GetStackFactor(fEnergy,fGamma,varAngle) ; - if(result < 0.0) result = 0.0 ; - return result ; -} - -///////////////////////////////////////////////////////////////////////// -// -// For second integration over energy - -G4double G4VXTRdEdx::SpectralXTRdEdx(G4double energy) -{ - fEnergy = energy ; - G4Integrator integral ; - return integral.Legendre96(this,&G4VXTRdEdx::SpectralAngleXTRdEdx, - 0.0,0.3*fMaxThetaTR) + - integral.Legendre96(this,&G4VXTRdEdx::SpectralAngleXTRdEdx, - 0.3*fMaxThetaTR,fMaxThetaTR) ; -} - -////////////////////////////////////////////////////////////////////////// -// -// for photon angle distribution tables -// - -G4double G4VXTRdEdx::AngleSpectralXTRdEdx(G4double energy) -{ - G4double result = GetStackFactor(energy,fGamma,fVarAngle) ; - if(result < 0) result = 0.0 ; - return result ; -} - -/////////////////////////////////////////////////////////////////////////// -// -// - -G4double G4VXTRdEdx::AngleXTRdEdx(G4double varAngle) -{ - fVarAngle = varAngle ; - G4Integrator integral ; - return integral.Legendre10(this,&G4VXTRdEdx::AngleSpectralXTRdEdx, - fMinEnergyTR,fMaxEnergyTR) ; -} - - -// -// -/////////////////////////////////////////////////////////////////////// - - - - diff --git a/source/parameterisations/trd_clusters/src/G4VXrayTRadModel.cc b/source/parameterisations/trd_clusters/src/G4VXrayTRadModel.cc deleted file mode 100644 index 38c9c4f35b..0000000000 --- a/source/parameterisations/trd_clusters/src/G4VXrayTRadModel.cc +++ /dev/null @@ -1,318 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VXrayTRadModel.cc,v 1.2 2004/12/07 09:00:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// - -#include "G4Timer.hh" - -#include "G4VXrayTRadModel.hh" - -#include "globals.hh" -#include -#include "G4Poisson.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" -#include "G4PhysicsTable.hh" -#include "G4PhysicsVector.hh" -#include "G4PhysicsLinearVector.hh" -#include "G4PhysicsLogVector.hh" -#include "G4Integrator.hh" -#include "G4Gamma.hh" - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4VXrayTRadModel::G4VXrayTRadModel(G4Envelope *anEnvelope, G4double a, G4double b) : - G4VXrayTRmodel(anEnvelope,a,b) -{ - ; -} - -/////////////////////////////////////////////////////////////////////////// - -G4VXrayTRadModel::~G4VXrayTRadModel() -{ - ; -} - - -////////////////////////////////////////////////////////////////////////////// -// -// The main function which is responsible for the treatment of a particle passage -// trough G4Envelope - -void G4VXrayTRadModel::DoIt( const G4FastTrack& fastTrack , - G4FastStep& fastStep ) -{ - G4int iTkin, iPlace, numOfTR, iTR ; - G4double energyTR, theta, phi, dirX, dirY, dirZ ; - G4double W, W1, W2, E1, E2 ; - - G4double charge = fastTrack.GetPrimaryTrack()->GetDefinition()->GetPDGCharge() ; - - // Now we are ready to Generate TR photons - - G4double chargeSq = charge*charge ; - G4double kinEnergy = fastTrack.GetPrimaryTrack()->GetKineticEnergy() ; - G4double mass = fastTrack.GetPrimaryTrack()->GetDefinition()->GetPDGMass() ; - G4double gamma = 1.0 + kinEnergy/mass ; - // G4cout<<"gamma = "< - DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(), - direction) ; - - G4ThreeVector position = fastTrack.GetPrimaryTrackLocalPosition() + - distance*direction ; - - // Set final position: - - fastStep.SetPrimaryTrackFinalPosition(position); - - - for(iTkin=0;iTkinGetLowEdgeEnergy(iTkin)) break ; - } - iPlace = iTkin - 1 ; - - // G4ParticleMomentum particleDir = fastTrack.GetPrimaryTrack()-> - // GetMomentumDirection() ; - - if(iTkin == 0) // Tkin is too small, neglect of TR photon generation - { - return ; - } - else // general case: Tkin between two vectors of the material - { - if(iTkin == fTotBin) - { - numOfTR = G4Poisson( (*(*fEnergyDistrTable)(iPlace))(0)*chargeSq ) ; - } - else - { - E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ; - E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ; - W = 1.0/(E2 - E1) ; - W1 = (E2 - TkinScaled)*W ; - W2 = (TkinScaled - E1)*W ; - numOfTR = G4Poisson( ( (*(*fEnergyDistrTable)(iPlace))(0)*W1+ - (*(*fEnergyDistrTable)(iPlace+1))(0)*W2 ) - *chargeSq ) ; - } - - // G4cout<= 0.1 ) theta = 0.1 ; - - // G4cout<<" : theta = "< - DistanceToOut(positionTR,directionTR) ; - - positionTR = positionTR + distanceTR*directionTR ; - - fastStep.CreateSecondaryTrack( aPhotonTR, - positionTR, - fastTrack.GetPrimaryTrack()-> - GetGlobalTime() ) ; - } - kinEnergy -= sumEnergyTR ; - fastStep.SetPrimaryTrackFinalKineticEnergy(kinEnergy) ; - } - } - return ; -} - - -////////////////////////////////////////////////////////////////////////// -// -// Build integral energy distribution of XTR photons - -void G4VXrayTRadModel::BuildTable() -{ - G4int iTkin, iTR, iPlace ; - G4double radiatorCof = 1.0 ; // for tuning of XTR yield - - // fAngleDistrTable = new G4PhysicsTable(fTotBin) ; - fEnergyDistrTable = new G4PhysicsTable(fTotBin) ; - - fGammaTkinCut = 0.0 ; - // setting of min/max TR energies - if(fGammaTkinCut > fTheMinEnergyTR) fMinEnergyTR = fGammaTkinCut ; - else fMinEnergyTR = fTheMinEnergyTR ; - - if(fGammaTkinCut > fTheMaxEnergyTR) fMaxEnergyTR = 2.0*fGammaTkinCut ; - else fMaxEnergyTR = fTheMaxEnergyTR ; - - G4cout.precision(4) ; - - G4Timer timer ; - timer.Start() ; - for(iTkin=0;iTkin - GetLowEdgeEnergy(iTkin)/proton_mass_c2) ; - - fMaxThetaTR = 25.0/(fGamma*fGamma) ; // theta^2 - - fTheMinAngle = 1.0e-6 ; // was 5.e-6, e-5, e-4 - - if( fMaxThetaTR > fTheMaxAngle ) fMaxThetaTR = fTheMaxAngle ; - else - { - if( fMaxThetaTR < fTheMinAngle ) fMaxThetaTR = fTheMinAngle ; - } - - G4PhysicsLinearVector* angleVector = new G4PhysicsLinearVector( 0.0, - fMaxThetaTR, - fBinTR ) ; - - G4double energySum = 0.0 ; - G4double angleSum = 0.0 ; - G4Integrator integral ; - energyVector->PutValue(fBinTR-1,energySum) ; - angleVector->PutValue(fBinTR-1,angleSum) ; - - for(iTR=fBinTR-2;iTR>=0;iTR--) - { - energySum += radiatorCof*fCofTR*integral.Legendre10( - this,&G4VXrayTRmodel::XTRNSpectralDensity, - energyVector->GetLowEdgeEnergy(iTR), - energyVector->GetLowEdgeEnergy(iTR+1) ) ; - - // angleSum += fCofTR*integral.Legendre96( - // this,&G4VXrayTRmodel::XTRNSpectralDensity, - // angleVector->GetLowEdgeEnergy(iTR), - // angleVector->GetLowEdgeEnergy(iTR+1) ) ; - - energyVector->PutValue(iTR,energySum) ; - // angleVector ->PutValue(iTR,angleSum) ; - } - G4cout< -#include "G4PhysicsTable.hh" -#include "G4PhysicsVector.hh" -#include "G4PhysicsLinearVector.hh" -#include "G4PhysicsLogVector.hh" -#include "G4Integrator.hh" -#include "G4Gamma.hh" - -// Initialization of local constants - -G4double G4VXrayTRmodel::fTheMinEnergyTR = 1.0*keV ; -G4double G4VXrayTRmodel::fTheMaxEnergyTR = 100.0*keV ; -G4double G4VXrayTRmodel::fTheMaxAngle = 1.0e-3 ; -G4double G4VXrayTRmodel::fTheMinAngle = 5.0e-6 ; -G4int G4VXrayTRmodel::fBinTR = 50 ; - -G4double G4VXrayTRmodel::fMinProtonTkin = 100.0*GeV ; -G4double G4VXrayTRmodel::fMaxProtonTkin = 100.0*TeV ; -G4int G4VXrayTRmodel::fTotBin = 50 ; -// Proton energy vector initialization - -G4PhysicsLogVector* G4VXrayTRmodel:: -fProtonEnergyVector = new G4PhysicsLogVector(fMinProtonTkin, - fMaxProtonTkin, - fTotBin ) ; - -G4double G4VXrayTRmodel::fPlasmaCof = 4.0*pi*fine_structure_const* - hbarc*hbarc*hbarc/electron_mass_c2 ; - -G4double G4VXrayTRmodel::fCofTR = fine_structure_const/pi ; - - - - - -//////////////////////////////////////////////////////////////////////////// -// -// Constructor, destructor - -G4VXrayTRmodel::G4VXrayTRmodel(G4Envelope *anEnvelope, G4double a, G4double b) : - G4VFastSimulationModel("G4VXrayTRmodel",anEnvelope) - // , G4ForwardXrayTR("G4VXrayTRmodel") -{ - fPlateNumber = anEnvelope->GetNoDaughters() ; - G4cout<<"the number of TR radiator plates = "<GetDaughter(0)->GetLogicalVolume()-> - GetMaterial()->GetIndex() ; - G4cout<<"plate material = "<GetDaughter(0)->GetLogicalVolume()-> - GetMaterial()->GetName()<GetMaterial()->GetIndex() ; - G4cout<<"gas material = "< - GetMaterial()->GetName()<GetDaughter(0)->GetLogicalVolume()-> - GetMaterial()->GetElectronDensity() ; - // fSigma1 = (20.9*eV)*(20.9*eV) ; - G4cout<<"plate plasma energy = "<GetMaterial()->GetElectronDensity() ; - G4cout<<"gas plasma energy = "<GetDefinition()->GetPDGMass() ; - // G4double kinEnergy = fastTrack.GetPrimaryTrack()->GetKineticEnergy() ; - // G4double gamma = 1.0 + kinEnergy/mass ; // Lorentz factor - // G4cout << "gamma = " << gamma << G4endl ; - // if (gamma >= 100.0) return true ; - // else return false ; - - return true ; -} - - -////////////////////////////////////////////////////////////////////////// -// -// User method to code the parameterisation properly -// said. This is simple example of creation of one X-ray photon with the -// energy in the range of around 5 keV produced by relativistic charged -// particle -// - -void G4VXrayTRmodel::ExampleDoIt( const G4FastTrack& fastTrack , - G4FastStep& fastStep ) -{ - - // The primary track continues along its direction. - // One secondary (a photon) is added: - - // G4cout << " TR `model' applied \n " << endl; - - // Primary: idem as in "DefaultModel": - // - - G4double distance = fastTrack.GetEnvelopeSolid()-> - DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(), - fastTrack.GetPrimaryTrackLocalDirection()) ; - - G4ThreeVector position = fastTrack.GetPrimaryTrackLocalPosition() + - distance*fastTrack.GetPrimaryTrackLocalDirection() ; - - // Set final position: - - fastStep.SetPrimaryTrackFinalPosition(position); - - //--------------------------- - // Secondary: Adds one "secondary": - // - // First, user has to say how many secondaries will be created: - - fastStep.SetNumberOfSecondaryTracks(1); - - // Build the secondary direction: - - G4ParticleMomentum direction(fastTrack.GetPrimaryTrackLocalDirection()); - // direction.setZ(direction.z()*0.5); - // direction.setY(direction.y()+direction.z()*0.1); - direction = direction.unit(); // necessary !? - - // Dynamics (Note that many constructors exists for G4DynamicParticle - - G4double gammaEnergy = 3.0*keV + G4UniformRand()*2*keV ; - - G4DynamicParticle dynamique(G4Gamma::GammaDefinition(), - direction, - // fastTrack.GetPrimaryTrack()->GetKineticEnergy()/2. - gammaEnergy ); - // -- position: - - G4double Dist = fastTrack.GetEnvelopeSolid()-> - DistanceToOut(fastTrack.GetPrimaryTrackLocalPosition(),direction) ; - - G4ThreeVector posi = fastTrack.GetPrimaryTrackLocalPosition() + Dist*direction ; - - // Creation of the secondary Track: - - fastStep.CreateSecondaryTrack( dynamique, - posi, - fastTrack.GetPrimaryTrack()->GetGlobalTime()); - -} - -////////////////////////////////////////////////////////////////////// -// -// Calculates formation zone for plates. Omega is energy !!! - -G4double G4VXrayTRmodel::GetPlateFormationZone( G4double omega , - G4double gamma , - G4double varAngle ) -{ - G4double cof, lambda ; - lambda = 1.0/gamma/gamma + varAngle + fSigma1/omega/omega ; - cof = 2.0*hbarc/omega/lambda ; - return cof ; -} - -////////////////////////////////////////////////////////////////////// -// -// Calculates complex formation zone for plates. Omega is energy !!! - -G4complex G4VXrayTRmodel::GetPlateComplexFZ( G4double omega , - G4double gamma , - G4double varAngle ) -{ - G4double cof, length,delta, real, image ; - - length = 0.5*GetPlateFormationZone(omega,gamma,varAngle) ; - delta = length*GetPlateLinearPhotoAbs(omega) ; - cof = 1.0/(1.0 + delta*delta) ; - - real = length*cof ; - image = real*delta ; - - G4complex zone(real,image); - return zone ; -} - -//////////////////////////////////////////////////////////////////////// -// -// Computes matrix of Sandia photo absorption cross section coefficients for -// plate material - -void G4VXrayTRmodel::ComputePlatePhotoAbsCof() -{ - G4int i, j, numberOfElements ; - static const G4MaterialTable* - theMaterialTable = G4Material::GetMaterialTable(); - - G4SandiaTable thisMaterialSandiaTable(fMatIndex1) ; - numberOfElements = (*theMaterialTable)[fMatIndex1]->GetNumberOfElements() ; - G4int* thisMaterialZ = new G4int[numberOfElements] ; - - for(i=0;i - GetElement(i)->GetZ() ; - } - fPlateIntervalNumber = thisMaterialSandiaTable.SandiaIntervals - (thisMaterialZ,numberOfElements) ; - - fPlateIntervalNumber = thisMaterialSandiaTable.SandiaMixing - ( thisMaterialZ , - (*theMaterialTable)[fMatIndex1]->GetFractionVector() , - numberOfElements,fPlateIntervalNumber) ; - - fPlatePhotoAbsCof = new G4double*[fPlateIntervalNumber] ; - - for(i=0;iGetDensity() ; - } - } - delete[] thisMaterialZ ; - return ; -} - -////////////////////////////////////////////////////////////////////// -// -// Returns the value of linear photo absorption coefficient (in reciprocal -// length) for plate for given energy of X-ray photon omega - -G4double G4VXrayTRmodel::GetPlateLinearPhotoAbs(G4double omega) -{ - G4int i ; - G4double omega2, omega3, omega4 ; - - omega2 = omega*omega ; - omega3 = omega2*omega ; - omega4 = omega2*omega2 ; - - for(i=0;iGetNumberOfElements() ; - G4int* thisMaterialZ = new G4int[numberOfElements] ; - - for(i=0;i - GetElement(i)->GetZ() ; - } - fGasIntervalNumber = thisMaterialSandiaTable.SandiaIntervals - (thisMaterialZ,numberOfElements) ; - - fGasIntervalNumber = thisMaterialSandiaTable.SandiaMixing - ( thisMaterialZ , - (*theMaterialTable)[fMatIndex2]->GetFractionVector() , - numberOfElements,fGasIntervalNumber) ; - - fGasPhotoAbsCof = new G4double*[fGasIntervalNumber] ; - - for(i=0;iGetDensity() ; - } - } - delete[] thisMaterialZ ; - return ; -} - -////////////////////////////////////////////////////////////////////// -// -// Returns the value of linear photo absorption coefficient (in reciprocal -// length) for gas - -G4double G4VXrayTRmodel::GetGasLinearPhotoAbs(G4double omega) -{ - G4int i ; - G4double omega2, omega3, omega4 ; - - omega2 = omega*omega ; - omega3 = omega2*omega ; - omega4 = omega2*omega2 ; - - for(i=0;i matter2, or 2->1) -// varAngle =2* (1 - std::cos(theta)) or approximately = theta*theta -// - -G4double -G4VXrayTRmodel::OneBoundaryXTRNdensity( G4double energy,G4double gamma, - G4double varAngle ) const -{ - G4double formationLength1, formationLength2 ; - formationLength1 = 1.0/ - (1.0/(gamma*gamma) - + fSigma1/(energy*energy) - + varAngle) ; - formationLength2 = 1.0/ - (1.0/(gamma*gamma) - + fSigma2/(energy*energy) - + varAngle) ; - return (varAngle/energy)*(formationLength1 - formationLength2) - *(formationLength1 - formationLength2) ; - -} - - -////////////////////////////////////////////////////////////////////////////// -// -// For photon energy distribution tables. Integrate first over angle -// - -G4double G4VXrayTRmodel::XTRNSpectralAngleDensity(G4double varAngle) -{ - return OneBoundaryXTRNdensity(fEnergy,fGamma,varAngle)* - GetStackFactor(fEnergy,fGamma,varAngle) ; -} - -///////////////////////////////////////////////////////////////////////// -// -// For second integration over energy - -G4double G4VXrayTRmodel::XTRNSpectralDensity(G4double energy) -{ - fEnergy = energy ; - G4Integrator integral ; - return integral.Legendre96(this,&G4VXrayTRmodel::XTRNSpectralAngleDensity, - 0.0,0.2*fMaxThetaTR) + - integral.Legendre10(this,&G4VXrayTRmodel::XTRNSpectralAngleDensity, - 0.2*fMaxThetaTR,fMaxThetaTR) ; -} - -////////////////////////////////////////////////////////////////////////// -// -// for photon angle distribution tables -// - -G4double G4VXrayTRmodel::XTRNAngleSpectralDensity(G4double energy) -{ - return OneBoundaryXTRNdensity(energy,fGamma,fVarAngle)* - GetStackFactor(energy,fGamma,fVarAngle) ; -} - -/////////////////////////////////////////////////////////////////////////// -// -// - -G4double G4VXrayTRmodel::XTRNAngleDensity(G4double varAngle) -{ - fVarAngle = varAngle ; - G4Integrator integral ; - return integral.Legendre96(this,&G4VXrayTRmodel::XTRNAngleSpectralDensity, - fMinEnergyTR,fMaxEnergyTR) ; -} - -////////////////////////////////////////////////////////////////////////////// -// -// Check number of photons for a range of Lorentz factors from both energy -// and angular tables - -void G4VXrayTRmodel::GetNumberOfPhotons() -{ - G4int iTkin ; - G4double gamma, numberE ; - - std::ofstream outEn("numberE.dat", std::ios::out ) ; - outEn.setf( std::ios::scientific, std::ios::floatfield ); - - std::ofstream outAng("numberAng.dat", std::ios::out ) ; - outAng.setf( std::ios::scientific, std::ios::floatfield ); - - for(iTkin=0;iTkin - GetLowEdgeEnergy(iTkin)/proton_mass_c2) ; - numberE = (*(*fEnergyDistrTable)(iTkin))(0) ; - // numberA = (*(*fAngleDistrTable)(iTkin))(0) ; - G4cout<= - ( (*(*fEnergyDistrTable)(iPlace))(iTransfer)*W1 + - (*(*fEnergyDistrTable)(iPlace+1))(iTransfer)*W2) ) break ; - } - transfer = GetXTRenergy(iPlace,position,iTransfer); - - } - // G4cout<<"XTR transfer = "<GetLowEdgeEnergy(iTransfer) ; - } - else - { - y1 = (*(*fEnergyDistrTable)(iPlace))(iTransfer-1) ; - y2 = (*(*fEnergyDistrTable)(iPlace))(iTransfer) ; - - x1 = (*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer-1) ; - x2 = (*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer) ; - - if ( x1 == x2 ) result = x2 ; - else - { - if ( y1 == y2 ) result = x1 + (x2 - x1)*G4UniformRand() ; - else - { - result = x1 + (position - y1)*(x2 - x1)/(y2 - y1) ; - } - } - } - return result ; -} - - - -// -// -/////////////////////////////////////////////////////////////////////// - diff --git a/source/particles/History b/source/particles/History index 886b8dad83..395de921b3 100644 --- a/source/particles/History +++ b/source/particles/History @@ -1,4 +1,4 @@ -$Id: History,v 1.119 2005/05/30 07:13:18 asaim Exp $ +$Id: History,v 1.124 2005/11/18 21:07:35 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,18 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +- Nov 18, 2005 M.Asai (particles-V07-01-04) +- Migration to . + +- Nov 15, 2005 M.Asai (particles-V07-01-03) +- Enforce G4ParticleTable::SetReadiness(). + +- Nov 10, 2005 M.Asai (particles-V07-01-02) +- Bringing back particles-V07-00-01 tag. + +- Aug 27, 2005 H.Kurashige (particles-V07-01-01) +- Prohibit G4IonTable::CreateIon in PreInit status + - May 30, 2005 M.Asai (particles-V07-00-04) - Drop particles-V07-00-01 tag and collect developments in later tags in 02 and 03. diff --git a/source/particles/bosons/include/G4BosonConstructor.hh b/source/particles/bosons/include/G4BosonConstructor.hh index bbdd4ee360..6b3f7394c8 100644 --- a/source/particles/bosons/include/G4BosonConstructor.hh +++ b/source/particles/bosons/include/G4BosonConstructor.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BosonConstructor.hh,v 1.3 2001/07/11 10:01:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BosonConstructor.hh,v 1.5 2005/09/30 22:59:05 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,14 +37,13 @@ class G4BosonConstructor { //This class is a utility class for constructBoson - //short lived particles public: G4BosonConstructor(); ~G4BosonConstructor(); public: - void ConstructParticle(); + static void ConstructParticle(); }; #endif diff --git a/source/particles/bosons/include/G4ChargedGeantino.hh b/source/particles/bosons/include/G4ChargedGeantino.hh index f560788ed4..1b59f33e50 100644 --- a/source/particles/bosons/include/G4ChargedGeantino.hh +++ b/source/particles/bosons/include/G4ChargedGeantino.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ChargedGeantino.hh,v 1.9 2002/12/16 11:15:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ChargedGeantino.hh,v 1.11 2005/01/14 03:49:04 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,47 +31,32 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New impelemenataion as an utility class H.Kurashige, 14 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBoson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4ChargedGeantino_h #define G4ChargedGeantino_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBoson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### ChargedGeantino ### // ###################################################################### -class G4ChargedGeantino : public G4VBoson +class G4ChargedGeantino : public G4ParticleDefinition { private: - static G4ChargedGeantino theChargedGeantino; + static G4ChargedGeantino* theInstance; private: - G4ChargedGeantino( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + G4ChargedGeantino(){} public: - virtual ~G4ChargedGeantino(){} + ~G4ChargedGeantino(){} + static G4ChargedGeantino* Definition(); static G4ChargedGeantino* ChargedGeantinoDefinition(); static G4ChargedGeantino* ChargedGeantino(); diff --git a/source/particles/bosons/include/G4Gamma.hh b/source/particles/bosons/include/G4Gamma.hh index 61df83ce4d..241ec61c95 100644 --- a/source/particles/bosons/include/G4Gamma.hh +++ b/source/particles/bosons/include/G4Gamma.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4Gamma.hh,v 1.12 2002/12/16 11:15:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Gamma.hh,v 1.14 2005/01/14 03:49:05 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -30,48 +30,33 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added SetCuts, L.Urban, 12 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New impelemenataion as an utility class H.Kurashige, 14 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBoson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. #ifndef G4Gamma_h #define G4Gamma_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBoson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### GAMMA ### // ###################################################################### -class G4Gamma : public G4VBoson +class G4Gamma : public G4ParticleDefinition { private: - static G4Gamma theGamma; - - private: // hide conxtructor as private - G4Gamma( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4Gamma* theInstance; + + private: // hide constructor as private + G4Gamma(){} public: - virtual ~G4Gamma(){} + ~G4Gamma(){} + static G4Gamma* Definition(); static G4Gamma* GammaDefinition(); static G4Gamma* Gamma(); }; diff --git a/source/particles/bosons/include/G4Geantino.hh b/source/particles/bosons/include/G4Geantino.hh index a9a63371bd..d6d06d7ac9 100644 --- a/source/particles/bosons/include/G4Geantino.hh +++ b/source/particles/bosons/include/G4Geantino.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Geantino.hh,v 1.9 2002/12/16 11:15:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Geantino.hh,v 1.11 2005/01/14 03:49:05 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,50 +31,34 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New impelemenataion as an utility class H.Kurashige, 14 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBoson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4Geantino_h #define G4Geantino_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBoson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### GEANTINO ### // ###################################################################### -class G4Geantino : public G4VBoson +class G4Geantino : public G4ParticleDefinition { private: - static G4Geantino theGeantino; + static G4Geantino* theInstance; private: - G4Geantino( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + G4Geantino() {} public: - virtual ~G4Geantino(){} + ~G4Geantino(){} + static G4Geantino* Definition(); static G4Geantino* GeantinoDefinition(); static G4Geantino* Geantino(); - }; #endif diff --git a/source/particles/bosons/include/G4OpticalPhoton.hh b/source/particles/bosons/include/G4OpticalPhoton.hh index 92f7f5c084..7c3d7b6d78 100644 --- a/source/particles/bosons/include/G4OpticalPhoton.hh +++ b/source/particles/bosons/include/G4OpticalPhoton.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpticalPhoton.hh,v 1.8 2002/12/16 11:15:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpticalPhoton.hh,v 1.11 2005/01/30 22:57:53 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,35 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New impelemenataion as an utility class H.Kurashige, 14 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBoson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4OpticalPhoton_h #define G4OpticalPhoton_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBoson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### OPTICAL PHOTON ### // ###################################################################### -class G4OpticalPhoton: public G4VBoson +class G4OpticalPhoton : public G4ParticleDefinition { private: - static G4OpticalPhoton theOpticalPhoton; + static G4OpticalPhoton* theInstance; private: - G4OpticalPhoton ( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + G4OpticalPhoton () {} public: - virtual ~G4OpticalPhoton (){} + ~G4OpticalPhoton (){} + static G4OpticalPhoton* Definition(); static G4OpticalPhoton* OpticalPhotonDefinition(); static G4OpticalPhoton* OpticalPhoton(); + }; #endif diff --git a/source/particles/bosons/include/G4UnknownParticle.hh b/source/particles/bosons/include/G4UnknownParticle.hh index ef92391092..2913358650 100644 --- a/source/particles/bosons/include/G4UnknownParticle.hh +++ b/source/particles/bosons/include/G4UnknownParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnknownParticle.hh,v 1.4 2005/01/30 22:58:02 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4VBoson.hh b/source/particles/bosons/include/G4VBoson.hh deleted file mode 100644 index 1a1737cd7e..0000000000 --- a/source/particles/bosons/include/G4VBoson.hh +++ /dev/null @@ -1,85 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VBoson.hh,v 1.5 2004/07/26 08:14:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// Revised, Hisaya Kurashige, 15 Dec 1996 -// Revised, Hisaya Kurashige, 24 Feb 1997 -// ------------------------------------------------------------ - -#ifndef G4VBoson_h -#define G4VBoson_h 1 - -#include "globals.hh" - -#include "G4ParticleDefinition.hh" - -class G4VBoson : public G4ParticleDefinition -{ - // A virtual class for Bosons particles. It defines - // public methods which describe the behavior of a - // boson. - - private: - - const G4VBoson & operator=(const G4VBoson &right); - - public: - - G4VBoson(const G4String& aName, - G4double mass, - G4double width, - G4double charge, - G4int iSpin, - G4int iParity, - G4int iConjugation, - G4int iIsospin, - G4int iIsospinZ, - G4int gParity, - const G4String& pType, - G4int lepton, - G4int baryon, - G4int encoding, - G4bool stable, - G4double lifetime, - G4DecayTable *decaytable) - : G4ParticleDefinition(aName, mass, width, charge, iSpin, iParity, - iConjugation, iIsospin, iIsospinZ, gParity, - pType, lepton, baryon, encoding, stable, - lifetime, decaytable) {}; - - virtual ~G4VBoson() {}; - - G4int operator==(const G4VBoson &right) const; - G4int operator!=(const G4VBoson &right) const; - -}; - -#endif diff --git a/source/particles/bosons/src/G4BosonConstructor.cc b/source/particles/bosons/src/G4BosonConstructor.cc index 40175c6f5e..2270e9a7a0 100644 --- a/source/particles/bosons/src/G4BosonConstructor.cc +++ b/source/particles/bosons/src/G4BosonConstructor.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BosonConstructor.cc,v 1.3 2001/07/11 10:01:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BosonConstructor.cc,v 1.4 2004/09/02 01:52:26 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4ChargedGeantino.cc b/source/particles/bosons/src/G4ChargedGeantino.cc index 3caa677e9d..ce8729bab5 100644 --- a/source/particles/bosons/src/G4ChargedGeantino.cc +++ b/source/particles/bosons/src/G4ChargedGeantino.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ChargedGeantino.cc,v 1.12 2003/06/16 16:56:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ChargedGeantino.cc,v 1.14 2005/01/14 03:49:06 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,67 +31,58 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Operators (+=, *=, ++, -> etc.) correctly used, P. Urban, 26/6/96 -// Add G4ChargedGeantino::ChargedGeantinoDefinition() H.Kurashige, 4 July 1996 -// ---------------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class H.Kurashige, 14 July 2004 +// ---------------------------------------------------------------- #include "G4ChargedGeantino.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### ChargedGeantino ### // ###################################################################### +G4ChargedGeantino* G4ChargedGeantino::theInstance = 0; -G4ChargedGeantino::G4ChargedGeantino( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBoson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4ChargedGeantino* G4ChargedGeantino::Definition() { - SetParticleSubType("geantino"); - // Anti-particle of ChargedGeantino is ChargedGeantino itself - SetAntiPDGEncoding(encoding); -} + if (theInstance !=0) return theInstance; -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4ChargedGeantino G4ChargedGeantino::theChargedGeantino( - "chargedgeantino", 0.0*MeV, 0.0*MeV, +1.*eplus, + const G4String name = "chargedgeantino"; + // search in particle table + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, +1.*eplus, 0, 0, 0, 0, 0, 0, "geantino", 0, 0, 0, - true, 0.0, NULL -); - -G4ChargedGeantino* G4ChargedGeantino::ChargedGeantinoDefinition(){return &theChargedGeantino;} - -// ********************************************************************** -// **************************** SetCuts ********************************* -// ********************************************************************** - - -G4ChargedGeantino* G4ChargedGeantino::ChargedGeantino() -{ - return &theChargedGeantino; + true, 0.0, NULL, + false, "geantino", 0 + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } + + +G4ChargedGeantino* G4ChargedGeantino::ChargedGeantinoDefinition() +{ + return Definition(); +} + +G4ChargedGeantino* G4ChargedGeantino::ChargedGeantino() +{ + return Definition(); +} + diff --git a/source/particles/bosons/src/G4Gamma.cc b/source/particles/bosons/src/G4Gamma.cc index 089d98416a..392dff942f 100644 --- a/source/particles/bosons/src/G4Gamma.cc +++ b/source/particles/bosons/src/G4Gamma.cc @@ -21,73 +21,66 @@ // ******************************************************************** // // -// $Id: G4Gamma.cc,v 1.10 2003/06/16 16:56:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Gamma.cc,v 1.12 2005/01/14 03:49:06 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- // GEANT 4 class implementation file // // History: first implementation, based on object model of -// 4th April 1996, G.Cosmo -// ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Added SetCuts implementation , L.Urban , 12 June 1996 -// Code uses operators (+=, *=, ++, -> etc.) correctly, P. Urban, 26/6/96 -// Add GammaDefinition(), H.Kurashige, 4 July 1996 +// 4-th April 1996, G.Cosmo +// **************************************************************** +// New impelemenataion as an utility class H.Kurashige, 14 July 2004 +// ---------------------------------------------------------------- -// ---------------------------------------------------------------------- - -#include "G4ios.hh" -#include -#include - #include "G4Gamma.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### GAMMA ### // ###################################################################### +G4Gamma* G4Gamma::theInstance = 0; -G4Gamma::G4Gamma( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBoson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) + +G4Gamma* G4Gamma::Definition() { - SetParticleSubType("photon"); - // Anti-particle of gamma is gamma itself - SetAntiPDGEncoding(encoding); -} + if (theInstance !=0) return theInstance; -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4Gamma G4Gamma::theGamma( - "gamma", 0.0*MeV, 0.0*MeV, 0.0, + const G4String name = "gamma"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, 2, -1, -1, 0, 0, 0, "gamma", 0, 0, 22, - true, 0.0, NULL -); -G4Gamma* G4Gamma::GammaDefinition() {return &theGamma;} - -G4Gamma* G4Gamma::Gamma() -{ - return &theGamma; + true, 0.0, NULL, + false, "photon", 22 + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} + +G4Gamma* G4Gamma::GammaDefinition() +{ + return Definition(); +} + +G4Gamma* G4Gamma::Gamma() +{ + return Definition(); } diff --git a/source/particles/bosons/src/G4Geantino.cc b/source/particles/bosons/src/G4Geantino.cc index 80cb657c6c..2b70973328 100644 --- a/source/particles/bosons/src/G4Geantino.cc +++ b/source/particles/bosons/src/G4Geantino.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Geantino.cc,v 1.12 2003/06/16 16:56:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Geantino.cc,v 1.14 2005/01/14 03:49:06 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -30,68 +30,58 @@ // // History: first implementation, based on object model of // 4th April 1996, G.Cosmo -// ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Operators (+=, *=, ++, -> etc.) correctly used, P. Urban, 26/6/96 -// Add G4Geantino::GeantinoDefinition() H.Kurashige, 4 July 1996 -// ---------------------------------------------------------------------- - -#include -#include +// **************************************************************** +// New impelemenataion as an utility class H.Kurashige, 14 July 2004 +// ---------------------------------------------------------------- #include "G4Geantino.hh" - +#include "G4ParticleTable.hh" // ###################################################################### // ### GEANTINO ### // ###################################################################### +G4Geantino* G4Geantino::theInstance = 0; -G4Geantino::G4Geantino( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBoson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Geantino* G4Geantino::Definition() { - SetParticleSubType("geantino"); - // Anti-particle of geantino is geantino itself - SetAntiPDGEncoding(encoding); -} + if (theInstance !=0) return theInstance; -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table + const G4String name = "geantino"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, + 0, 0, 0, + 0, 0, 0, + "geantino", 0, 0, 0, + true, 0.0, NULL, + false, "geantino", 0 + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; -G4Geantino G4Geantino::theGeantino( - "geantino", 0.0*MeV, 0.0*MeV, 0.0, - 0, 0, 0, - 0, 0, 0, - "geantino", 0, 0, 0, - true, 0.0, NULL -); - -G4Geantino* G4Geantino::GeantinoDefinition() {return &theGeantino;} - -// ********************************************************************** -// **************************** SetCuts ********************************* -// ********************************************************************** - -G4Geantino* G4Geantino::Geantino() -{ - return &theGeantino; +} + +G4Geantino* G4Geantino::GeantinoDefinition() +{ + return Definition(); +} + +G4Geantino* G4Geantino::Geantino() +{ + return Definition(); } diff --git a/source/particles/bosons/src/G4OpticalPhoton.cc b/source/particles/bosons/src/G4OpticalPhoton.cc index 45649c36d6..feb0dbcf92 100644 --- a/source/particles/bosons/src/G4OpticalPhoton.cc +++ b/source/particles/bosons/src/G4OpticalPhoton.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpticalPhoton.cc,v 1.10 2003/06/16 16:56:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpticalPhoton.cc,v 1.12 2005/01/14 03:49:06 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,68 +32,58 @@ // 4th April 1996, G.Cosmo // by H.Kurashige,17 Oct. 1996 // ********************************************************************** -// Changed name intto "opticalphoton" Hisaya Kurashige, 08 Jan 1998 -// ---------------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class H.Kurashige, 14 July 2004 +// ---------------------------------------------------------------- #include "G4OpticalPhoton.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### OPTICAL PHOTON ### // ###################################################################### +G4OpticalPhoton* G4OpticalPhoton::theInstance = 0; -G4OpticalPhoton::G4OpticalPhoton( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBoson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4OpticalPhoton* G4OpticalPhoton::Definition() { - SetParticleSubType("photon"); - // Anti-particle of OpticalPhoton is OpticalPhoton itself - SetAntiPDGEncoding(encoding); -} + if (theInstance !=0) return theInstance; - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// !! PDG encoding is set to 0 because G4OpticalPhoton is not -// !! gamma which has PDG code of 22 -G4OpticalPhoton G4OpticalPhoton::theOpticalPhoton( - "opticalphoton", 0.0*MeV, 0.0*MeV, 0.0, + const G4String name = "opticalphoton"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, 2, -1, -1, 0, 0, 0, "opticalphoton", 0, 0, 0, - true, 0.0, NULL -); - -G4OpticalPhoton* G4OpticalPhoton::OpticalPhotonDefinition() - {return &theOpticalPhoton;} - - -G4OpticalPhoton* G4OpticalPhoton::OpticalPhoton() -{ - return &theOpticalPhoton; + true, 0.0, NULL, + false, "photon", 0 + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } - +G4OpticalPhoton* G4OpticalPhoton::OpticalPhotonDefinition() +{ + return Definition(); +} + +G4OpticalPhoton* G4OpticalPhoton::OpticalPhoton() +{ + return Definition(); +} diff --git a/source/particles/bosons/src/G4UnknownParticle.cc b/source/particles/bosons/src/G4UnknownParticle.cc index c5c69b41a9..df7ca29c0f 100644 --- a/source/particles/bosons/src/G4UnknownParticle.cc +++ b/source/particles/bosons/src/G4UnknownParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4UnknownParticle.cc,v 1.3 2005/01/14 03:49:06 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/include/G4AntiLambda.hh b/source/particles/hadrons/barions/include/G4AntiLambda.hh index 77eaca9465..628fdc4a6b 100644 --- a/source/particles/hadrons/barions/include/G4AntiLambda.hh +++ b/source/particles/hadrons/barions/include/G4AntiLambda.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiLambda.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiLambda.hh,v 1.12 2005/01/14 03:49:06 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiLambda_h #define G4AntiLambda_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiLambda ### // ###################################################################### -class G4AntiLambda : public G4VBaryon +class G4AntiLambda : public G4ParticleDefinition { private: - static G4AntiLambda theAntiLambda; - - private: - G4AntiLambda( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiLambda* theInstance; + G4AntiLambda(){} + ~G4AntiLambda(){} public: - virtual ~G4AntiLambda(){} - + static G4AntiLambda* Definition(); static G4AntiLambda* AntiLambdaDefinition(); static G4AntiLambda* AntiLambda(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh b/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh index fbdd7a0f2b..ffbbb5ee21 100644 --- a/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiLambdacPlus.hh,v 1.6 2001/10/15 10:09:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiLambdacPlus.hh,v 1.8 2005/01/14 03:49:06 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,46 +31,29 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiLambdacPlus_h #define G4AntiLambdacPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiLambdacPlus ### // ###################################################################### -class G4AntiLambdacPlus : public G4VBaryon +class G4AntiLambdacPlus : public G4ParticleDefinition { private: - static G4AntiLambdacPlus theAntiLambdacPlus; - - private: - G4AntiLambdacPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiLambdacPlus* theInstance; + G4AntiLambdacPlus(){} + ~G4AntiLambdacPlus(){} public: - virtual ~G4AntiLambdacPlus(){} - + static G4AntiLambdacPlus* Definition(); static G4AntiLambdacPlus* AntiLambdacPlusDefinition(); static G4AntiLambdacPlus* AntiLambdacPlus(); }; diff --git a/source/particles/hadrons/barions/include/G4AntiNeutron.hh b/source/particles/hadrons/barions/include/G4AntiNeutron.hh index fea7d6d4d7..668594eae9 100644 --- a/source/particles/hadrons/barions/include/G4AntiNeutron.hh +++ b/source/particles/hadrons/barions/include/G4AntiNeutron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiNeutron.hh,v 1.11 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiNeutron.hh,v 1.13 2005/01/14 03:49:06 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiNeutron_h #define G4AntiNeutron_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### ANTINEUTRON ### // ###################################################################### -class G4AntiNeutron : public G4VBaryon +class G4AntiNeutron : public G4ParticleDefinition { private: - static G4AntiNeutron theAntiNeutron; - - private: // constructors are hide as private - G4AntiNeutron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiNeutron* theInstance; + G4AntiNeutron(){} + ~G4AntiNeutron(){} public: - virtual ~G4AntiNeutron(){} - + static G4AntiNeutron* Definition(); static G4AntiNeutron* AntiNeutronDefinition(); static G4AntiNeutron* AntiNeutron(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh b/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh index 28e3488178..12547062b1 100644 --- a/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiOmegaMinus.hh,v 1.7 2001/10/16 08:15:45 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiOmegaMinus.hh,v 1.9 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiOmegaMinus_h #define G4AntiOmegaMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiOmegaMinus ### // ###################################################################### -class G4AntiOmegaMinus : public G4VBaryon +class G4AntiOmegaMinus : public G4ParticleDefinition { private: - static G4AntiOmegaMinus theAntiOmegaMinus; - - private: - G4AntiOmegaMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiOmegaMinus* theInstance; + G4AntiOmegaMinus(){} + ~G4AntiOmegaMinus(){} public: - virtual ~G4AntiOmegaMinus(){} - + static G4AntiOmegaMinus* Definition(); static G4AntiOmegaMinus* AntiOmegaMinusDefinition(); static G4AntiOmegaMinus* AntiOmegaMinus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh b/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh index 039d192189..470adbf30f 100644 --- a/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiOmegacZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiOmegacZero.hh,v 1.11 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,50 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiOmegacZero_h #define G4AntiOmegacZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### AntiOmegacZero ### +// ### AntiOmegacZero ### // ###################################################################### -class G4AntiOmegacZero : public G4VBaryon +class G4AntiOmegacZero : public G4ParticleDefinition { private: - static G4AntiOmegacZero theAntiOmegacZero; - - private: - G4AntiOmegacZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiOmegacZero* theInstance; + G4AntiOmegacZero(){} + ~G4AntiOmegacZero(){} public: - virtual ~G4AntiOmegacZero(){} - + static G4AntiOmegacZero* Definition(); static G4AntiOmegacZero* AntiOmegacZeroDefinition(); static G4AntiOmegacZero* AntiOmegacZero(); - }; - #endif diff --git a/source/particles/hadrons/barions/include/G4AntiProton.hh b/source/particles/hadrons/barions/include/G4AntiProton.hh index f3d31c4b0b..ee9365c502 100644 --- a/source/particles/hadrons/barions/include/G4AntiProton.hh +++ b/source/particles/hadrons/barions/include/G4AntiProton.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiProton.hh,v 1.8 2001/10/16 08:15:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiProton.hh,v 1.10 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,29 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiProton_h #define G4AntiProton_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### ANTIPROTON ### // ###################################################################### -class G4AntiProton : public G4VBaryon +class G4AntiProton : public G4ParticleDefinition { private: - static G4AntiProton theAntiProton; - - private: // constructors are hide as private - - G4AntiProton( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiProton* theInstance; + G4AntiProton(){} + ~G4AntiProton(){} public: - virtual ~G4AntiProton(){} - + static G4AntiProton* Definition(); static G4AntiProton* AntiProtonDefinition(); static G4AntiProton* AntiProton(); }; diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh b/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh index b253552d68..4414f9b7c3 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaMinus.hh,v 1.7 2001/10/16 08:15:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmaMinus.hh,v 1.9 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiSigmaMinus_h #define G4AntiSigmaMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiSigmaMinus ### // ###################################################################### -class G4AntiSigmaMinus : public G4VBaryon +class G4AntiSigmaMinus : public G4ParticleDefinition { private: - static G4AntiSigmaMinus theAntiSigmaMinus; - - private: - G4AntiSigmaMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiSigmaMinus* theInstance; + G4AntiSigmaMinus(){} + ~G4AntiSigmaMinus(){} public: - virtual ~G4AntiSigmaMinus(){} - + static G4AntiSigmaMinus* Definition(); static G4AntiSigmaMinus* AntiSigmaMinusDefinition(); static G4AntiSigmaMinus* AntiSigmaMinus(); - }; - #endif diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh index d421e1fecd..646c6176b9 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaPlus.hh,v 1.7 2001/10/16 08:15:47 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmaPlus.hh,v 1.9 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiSigmaPlus_h #define G4AntiSigmaPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiSigmaPlus ### // ###################################################################### -class G4AntiSigmaPlus : public G4VBaryon +class G4AntiSigmaPlus : public G4ParticleDefinition { private: - static G4AntiSigmaPlus theAntiSigmaPlus; - - private: - G4AntiSigmaPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiSigmaPlus* theInstance; + G4AntiSigmaPlus(){} + ~G4AntiSigmaPlus(){} public: - virtual ~G4AntiSigmaPlus(){} - + static G4AntiSigmaPlus* Definition(); static G4AntiSigmaPlus* AntiSigmaPlusDefinition(); static G4AntiSigmaPlus* AntiSigmaPlus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh b/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh index 04e3865f41..0ad25a39e0 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaZero.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmaZero.hh,v 1.12 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiSigmaZero_h #define G4AntiSigmaZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiSigmaZero ### // ###################################################################### -class G4AntiSigmaZero : public G4VBaryon +class G4AntiSigmaZero : public G4ParticleDefinition { private: - static G4AntiSigmaZero theAntiSigmaZero; - - private: - G4AntiSigmaZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiSigmaZero* theInstance; + G4AntiSigmaZero(){} + ~G4AntiSigmaZero(){} public: - virtual ~G4AntiSigmaZero(){} - + static G4AntiSigmaZero* Definition(); static G4AntiSigmaZero* AntiSigmaZeroDefinition(); static G4AntiSigmaZero* AntiSigmaZero(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh index 2f96601882..0eddf2b4e9 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmacPlus.hh,v 1.6 2001/10/15 10:09:25 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmacPlus.hh,v 1.8 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 June 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiSigmacPlus_h #define G4AntiSigmacPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### AntiSigmacPlus ### +// ### AntiSigmacPlus ### // ###################################################################### -class G4AntiSigmacPlus : public G4VBaryon +class G4AntiSigmacPlus : public G4ParticleDefinition { private: - static G4AntiSigmacPlus theAntiSigmacPlus; - - private: - G4AntiSigmacPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiSigmacPlus* theInstance; + G4AntiSigmacPlus(){} + ~G4AntiSigmacPlus(){} public: - virtual ~G4AntiSigmacPlus(){} - + static G4AntiSigmacPlus* Definition(); static G4AntiSigmacPlus* AntiSigmacPlusDefinition(); static G4AntiSigmacPlus* AntiSigmacPlus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh index 17208b1691..26cbedd7a4 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmacPlusPlus.hh,v 1.6 2001/10/15 10:09:26 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmacPlusPlus.hh,v 1.8 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 June 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiSigmacPlusPlus_h #define G4AntiSigmacPlusPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### AntiSigmacPlusPlus ### +// ### AntiSigmacPlusPlus ### // ###################################################################### -class G4AntiSigmacPlusPlus : public G4VBaryon +class G4AntiSigmacPlusPlus : public G4ParticleDefinition { private: - static G4AntiSigmacPlusPlus theAntiSigmacPlusPlus; - - private: - G4AntiSigmacPlusPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiSigmacPlusPlus* theInstance; + G4AntiSigmacPlusPlus(){} + ~G4AntiSigmacPlusPlus(){} public: - virtual ~G4AntiSigmacPlusPlus(){} - + static G4AntiSigmacPlusPlus* Definition(); static G4AntiSigmacPlusPlus* AntiSigmacPlusPlusDefinition(); static G4AntiSigmacPlusPlus* AntiSigmacPlusPlus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh b/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh index b7d15ea2ae..87b80c27cf 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmacZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmacZero.hh,v 1.11 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 June 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiSigmacZero_h #define G4AntiSigmacZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### AntiSigmacZero ### +// ### AntiSigmacZero ### // ###################################################################### -class G4AntiSigmacZero : public G4VBaryon +class G4AntiSigmacZero : public G4ParticleDefinition { private: - static G4AntiSigmacZero theAntiSigmacZero; - - private: - G4AntiSigmacZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiSigmacZero* theInstance; + G4AntiSigmacZero(){} + ~G4AntiSigmacZero(){} public: - virtual ~G4AntiSigmacZero(){} - + static G4AntiSigmacZero* Definition(); static G4AntiSigmacZero* AntiSigmacZeroDefinition(); static G4AntiSigmacZero* AntiSigmacZero(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4AntiXiMinus.hh b/source/particles/hadrons/barions/include/G4AntiXiMinus.hh index 2c32c1266d..98ac3d0653 100644 --- a/source/particles/hadrons/barions/include/G4AntiXiMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiXiMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiXiMinus.hh,v 1.7 2001/10/16 08:15:47 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiXiMinus.hh,v 1.9 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiXiMinus_h #define G4AntiXiMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiXiMinus ### // ###################################################################### -class G4AntiXiMinus : public G4VBaryon +class G4AntiXiMinus : public G4ParticleDefinition { private: - static G4AntiXiMinus theAntiXiMinus; - - private: - G4AntiXiMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiXiMinus* theInstance; + G4AntiXiMinus(){} + ~G4AntiXiMinus(){} public: - virtual ~G4AntiXiMinus(){} - + static G4AntiXiMinus* Definition(); static G4AntiXiMinus* AntiXiMinusDefinition(); - static G4AntiXiMinus* AntiXiMinus(); - + static G4AntiXiMinus* AntiXiMinus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4AntiXiZero.hh b/source/particles/hadrons/barions/include/G4AntiXiZero.hh index 070e75e5b3..eb4f3f08fa 100644 --- a/source/particles/hadrons/barions/include/G4AntiXiZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiXiZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiXiZero.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiXiZero.hh,v 1.12 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiXiZero_h #define G4AntiXiZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiXiZero ### // ###################################################################### -class G4AntiXiZero : public G4VBaryon +class G4AntiXiZero : public G4ParticleDefinition { private: - static G4AntiXiZero theAntiXiZero; - - private: - G4AntiXiZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiXiZero* theInstance; + G4AntiXiZero(){} + ~G4AntiXiZero(){} public: - virtual ~G4AntiXiZero(){} - + static G4AntiXiZero* Definition(); static G4AntiXiZero* AntiXiZeroDefinition(); static G4AntiXiZero* AntiXiZero(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4AntiXicPlus.hh b/source/particles/hadrons/barions/include/G4AntiXicPlus.hh index 59aeeb42cc..09eba7a81f 100644 --- a/source/particles/hadrons/barions/include/G4AntiXicPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiXicPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiXicPlus.hh,v 1.6 2001/10/15 10:09:26 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiXicPlus.hh,v 1.8 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 June 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiXicPlus_h #define G4AntiXicPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### AntiXicPlus ### +// ### AntiXicPlus ### // ###################################################################### -class G4AntiXicPlus : public G4VBaryon +class G4AntiXicPlus : public G4ParticleDefinition { private: - static G4AntiXicPlus theAntiXicPlus; - - private: - G4AntiXicPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiXicPlus* theInstance; + G4AntiXicPlus(){} + ~G4AntiXicPlus(){} public: - virtual ~G4AntiXicPlus(){} - + static G4AntiXicPlus* Definition(); static G4AntiXicPlus* AntiXicPlusDefinition(); static G4AntiXicPlus* AntiXicPlus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4AntiXicZero.hh b/source/particles/hadrons/barions/include/G4AntiXicZero.hh index c18a5a3b29..7e97720f40 100644 --- a/source/particles/hadrons/barions/include/G4AntiXicZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiXicZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiXicZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiXicZero.hh,v 1.11 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiXicZero_h #define G4AntiXicZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### AntiXicZero ### +// ### AntiXicZero ### // ###################################################################### -class G4AntiXicZero : public G4VBaryon +class G4AntiXicZero : public G4ParticleDefinition { private: - static G4AntiXicZero theAntiXicZero; - - private: - G4AntiXicZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiXicZero* theInstance; + G4AntiXicZero(){} + ~G4AntiXicZero(){} public: - virtual ~G4AntiXicZero(){} - + static G4AntiXicZero* Definition(); static G4AntiXicZero* AntiXicZeroDefinition(); static G4AntiXicZero* AntiXicZero(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4BaryonConstructor.hh b/source/particles/hadrons/barions/include/G4BaryonConstructor.hh index 0236121e56..eba9c5e1ae 100644 --- a/source/particles/hadrons/barions/include/G4BaryonConstructor.hh +++ b/source/particles/hadrons/barions/include/G4BaryonConstructor.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BaryonConstructor.hh,v 1.3 2001/07/11 10:01:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BaryonConstructor.hh,v 1.4 2005/09/30 22:59:05 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,20 +37,19 @@ class G4BaryonConstructor { //This class is a utility class for construction - //short lived particles public: G4BaryonConstructor(); ~G4BaryonConstructor(); public: - void ConstructParticle(); + static void ConstructParticle(); protected: - void ConstructNucleons(); - void ConstructStrangeBaryons(); - void ConstructCharmBaryons(); - void ConstructBottomBaryons(); + static void ConstructNucleons(); + static void ConstructStrangeBaryons(); + static void ConstructCharmBaryons(); + static void ConstructBottomBaryons(); }; #endif diff --git a/source/particles/hadrons/barions/include/G4Lambda.hh b/source/particles/hadrons/barions/include/G4Lambda.hh index fc22b6ac7f..8795859f8f 100644 --- a/source/particles/hadrons/barions/include/G4Lambda.hh +++ b/source/particles/hadrons/barions/include/G4Lambda.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Lambda.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Lambda.hh,v 1.12 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 -// --------------------------------------------------------------- - -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. +// New implementation as a utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------- #ifndef G4Lambda_h #define G4Lambda_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### Lambda ### // ###################################################################### -class G4Lambda : public G4VBaryon +class G4Lambda : public G4ParticleDefinition { private: - static G4Lambda theLambda; - - private: - G4Lambda( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4Lambda* theInstance; + G4Lambda(){} + ~G4Lambda(){} public: - virtual ~G4Lambda(){} - + static G4Lambda* Definition(); static G4Lambda* LambdaDefinition(); - static G4Lambda* Lambda(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4LambdacPlus.hh b/source/particles/hadrons/barions/include/G4LambdacPlus.hh index a1111df573..db15353eb1 100644 --- a/source/particles/hadrons/barions/include/G4LambdacPlus.hh +++ b/source/particles/hadrons/barions/include/G4LambdacPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LambdacPlus.hh,v 1.6 2001/10/15 10:09:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LambdacPlus.hh,v 1.8 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,46 +31,29 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 12 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4LambdacPlus_h #define G4LambdacPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### LambdacPlus ### +// ### LambdacPlus ### // ###################################################################### -class G4LambdacPlus : public G4VBaryon +class G4LambdacPlus : public G4ParticleDefinition { private: - static G4LambdacPlus theLambdacPlus; - - private: - G4LambdacPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4LambdacPlus* theInstance; + G4LambdacPlus(){} + ~G4LambdacPlus(){} public: - virtual ~G4LambdacPlus(){} - + static G4LambdacPlus* Definition(); static G4LambdacPlus* LambdacPlusDefinition(); static G4LambdacPlus* LambdacPlus(); }; diff --git a/source/particles/hadrons/barions/include/G4Neutron.hh b/source/particles/hadrons/barions/include/G4Neutron.hh index 4d317ee67b..31f79ae35c 100644 --- a/source/particles/hadrons/barions/include/G4Neutron.hh +++ b/source/particles/hadrons/barions/include/G4Neutron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Neutron.hh,v 1.12 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Neutron.hh,v 1.14 2005/01/14 03:49:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,70 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -//---------------------------------------------------------------- - -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. +// New implementation as a utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------- #ifndef G4Neutron_h #define G4Neutron_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### NEUTRON ### // ###################################################################### -class G4Neutron : public G4VBaryon +class G4Neutron : public G4ParticleDefinition { private: - static G4Neutron theNeutron; - - private: - G4Neutron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4Neutron* theInstance; + G4Neutron(){} + ~G4Neutron(){} public: - virtual ~G4Neutron(){} - + static G4Neutron* Definition(); static G4Neutron* NeutronDefinition(); static G4Neutron* Neutron(); - - public: //With Description - G4int GetAtomicNumber() const; - G4int GetAtomicMass() const; - - G4double GetExcitationEnergy() const {return 0.;} - void SetExcitationEnergy(G4double ){} - // These two methods are dummy because all particles derived from - // G4Neutron is "groud state" nuclei - }; -inline - G4int G4Neutron::GetAtomicNumber() const -{ - return 0; -} - -inline - G4int G4Neutron::GetAtomicMass() const -{ - return 1; -} - #endif diff --git a/source/particles/hadrons/barions/include/G4OmegaMinus.hh b/source/particles/hadrons/barions/include/G4OmegaMinus.hh index 8dc3048639..1a472fbda4 100644 --- a/source/particles/hadrons/barions/include/G4OmegaMinus.hh +++ b/source/particles/hadrons/barions/include/G4OmegaMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OmegaMinus.hh,v 1.7 2001/10/16 08:15:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OmegaMinus.hh,v 1.9 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4OmegaMinus_h #define G4OmegaMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### OmegaMinus ### // ###################################################################### -class G4OmegaMinus : public G4VBaryon +class G4OmegaMinus : public G4ParticleDefinition { private: - static G4OmegaMinus theOmegaMinus; - - private: - G4OmegaMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4OmegaMinus* theInstance; + G4OmegaMinus(){} + ~G4OmegaMinus(){} public: - virtual ~G4OmegaMinus(){} - + static G4OmegaMinus* Definition(); static G4OmegaMinus* OmegaMinusDefinition(); static G4OmegaMinus* OmegaMinus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4OmegacZero.hh b/source/particles/hadrons/barions/include/G4OmegacZero.hh index 28639790d2..fa55cd3c4b 100644 --- a/source/particles/hadrons/barions/include/G4OmegacZero.hh +++ b/source/particles/hadrons/barions/include/G4OmegacZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OmegacZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OmegacZero.hh,v 1.11 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,50 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4OmegacZero_h #define G4OmegacZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### OmegacZero ### // ###################################################################### -class G4OmegacZero : public G4VBaryon +class G4OmegacZero : public G4ParticleDefinition { private: - static G4OmegacZero theOmegacZero; - - private: - G4OmegacZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4OmegacZero* theInstance; + G4OmegacZero(){} + ~G4OmegacZero(){} public: - virtual ~G4OmegacZero(){} - + static G4OmegacZero* Definition(); static G4OmegacZero* OmegacZeroDefinition(); static G4OmegacZero* OmegacZero(); - }; - #endif diff --git a/source/particles/hadrons/barions/include/G4Proton.hh b/source/particles/hadrons/barions/include/G4Proton.hh index 27fd78b79d..eff6372454 100644 --- a/source/particles/hadrons/barions/include/G4Proton.hh +++ b/source/particles/hadrons/barions/include/G4Proton.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Proton.hh,v 1.9 2001/10/16 08:15:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Proton.hh,v 1.11 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,71 +31,32 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4Proton_h #define G4Proton_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### PROTON ### // ###################################################################### -class G4Proton : public G4VBaryon +class G4Proton : public G4ParticleDefinition { private: - static G4Proton theProton; - - private: - G4Proton( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4Proton* theInstance; + G4Proton(){} + ~G4Proton(){} public: - virtual ~G4Proton() {} - + static G4Proton* Definition(); static G4Proton* ProtonDefinition(); static G4Proton* Proton(); - - public: //With Description - G4int GetAtomicNumber() const; - G4int GetAtomicMass() const; - - G4double GetExcitationEnergy() const {return 0.;} - void SetExcitationEnergy(G4double ){} - // These two methods are dummy because all particles derived from - // G4Proton is "groud state" nuclei - }; -inline - G4int G4Proton::GetAtomicNumber() const -{ - return 1; -} - -inline - G4int G4Proton::GetAtomicMass() const -{ - return 1; -} #endif diff --git a/source/particles/hadrons/barions/include/G4SigmaMinus.hh b/source/particles/hadrons/barions/include/G4SigmaMinus.hh index bf286fe972..bed15ac922 100644 --- a/source/particles/hadrons/barions/include/G4SigmaMinus.hh +++ b/source/particles/hadrons/barions/include/G4SigmaMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmaMinus.hh,v 1.7 2001/10/16 08:15:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmaMinus.hh,v 1.9 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4SigmaMinus_h #define G4SigmaMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### SigmaMinus ### // ###################################################################### -class G4SigmaMinus : public G4VBaryon +class G4SigmaMinus : public G4ParticleDefinition { private: - static G4SigmaMinus theSigmaMinus; - - private: - G4SigmaMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4SigmaMinus* theInstance; + G4SigmaMinus(){} + ~G4SigmaMinus(){} public: - virtual ~G4SigmaMinus(){} - + static G4SigmaMinus* Definition(); static G4SigmaMinus* SigmaMinusDefinition(); static G4SigmaMinus* SigmaMinus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4SigmaPlus.hh b/source/particles/hadrons/barions/include/G4SigmaPlus.hh index f247981279..acfba65cca 100644 --- a/source/particles/hadrons/barions/include/G4SigmaPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmaPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmaPlus.hh,v 1.7 2001/10/16 08:15:51 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmaPlus.hh,v 1.9 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4SigmaPlus_h #define G4SigmaPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### SigmaPlus ### // ###################################################################### -class G4SigmaPlus : public G4VBaryon +class G4SigmaPlus : public G4ParticleDefinition { private: - static G4SigmaPlus theSigmaPlus; - - private: - G4SigmaPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4SigmaPlus* theInstance; + G4SigmaPlus(){} + ~G4SigmaPlus(){} public: - virtual ~G4SigmaPlus(){} - + static G4SigmaPlus* Definition(); static G4SigmaPlus* SigmaPlusDefinition(); static G4SigmaPlus* SigmaPlus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4SigmaZero.hh b/source/particles/hadrons/barions/include/G4SigmaZero.hh index a930bb5e18..a44769e831 100644 --- a/source/particles/hadrons/barions/include/G4SigmaZero.hh +++ b/source/particles/hadrons/barions/include/G4SigmaZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmaZero.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmaZero.hh,v 1.12 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4SigmaZero_h #define G4SigmaZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### SigmaZero ### // ###################################################################### -class G4SigmaZero : public G4VBaryon +class G4SigmaZero : public G4ParticleDefinition { private: - static G4SigmaZero theSigmaZero; - - private: - G4SigmaZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4SigmaZero* theInstance; + G4SigmaZero(){} + ~G4SigmaZero(){} public: - virtual ~G4SigmaZero(){} - + static G4SigmaZero* Definition(); static G4SigmaZero* SigmaZeroDefinition(); static G4SigmaZero* SigmaZero(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4SigmacPlus.hh b/source/particles/hadrons/barions/include/G4SigmacPlus.hh index ab5654e7a7..8c83cf0c04 100644 --- a/source/particles/hadrons/barions/include/G4SigmacPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmacPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmacPlus.hh,v 1.6 2001/10/15 10:09:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmacPlus.hh,v 1.8 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 June 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4SigmacPlus_h #define G4SigmacPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### SigmacPlus ### +// ### SigmacPlus ### // ###################################################################### -class G4SigmacPlus : public G4VBaryon +class G4SigmacPlus : public G4ParticleDefinition { private: - static G4SigmacPlus theSigmacPlus; - - private: - G4SigmacPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4SigmacPlus* theInstance; + G4SigmacPlus(){} + ~G4SigmacPlus(){} public: - virtual ~G4SigmacPlus(){} - + static G4SigmacPlus* Definition(); static G4SigmacPlus* SigmacPlusDefinition(); static G4SigmacPlus* SigmacPlus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh b/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh index f44e3ec93d..1a6e505940 100644 --- a/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmacPlusPlus.hh,v 1.6 2001/10/15 10:09:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmacPlusPlus.hh,v 1.8 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 June 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4SigmacPlusPlus_h #define G4SigmacPlusPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### SigmacPlusPlus ### +// ### SigmacPlusPlus ### // ###################################################################### -class G4SigmacPlusPlus : public G4VBaryon +class G4SigmacPlusPlus : public G4ParticleDefinition { private: - static G4SigmacPlusPlus theSigmacPlusPlus; - - private: - G4SigmacPlusPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4SigmacPlusPlus* theInstance; + G4SigmacPlusPlus(){} + ~G4SigmacPlusPlus(){} public: - virtual ~G4SigmacPlusPlus(){} - + static G4SigmacPlusPlus* Definition(); static G4SigmacPlusPlus* SigmacPlusPlusDefinition(); static G4SigmacPlusPlus* SigmacPlusPlus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4SigmacZero.hh b/source/particles/hadrons/barions/include/G4SigmacZero.hh index 9802aa9e71..abefa3f6b5 100644 --- a/source/particles/hadrons/barions/include/G4SigmacZero.hh +++ b/source/particles/hadrons/barions/include/G4SigmacZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmacZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmacZero.hh,v 1.11 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 June 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4SigmacZero_h #define G4SigmacZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### SigmacZero ### +// ### SigmacZero ### // ###################################################################### -class G4SigmacZero : public G4VBaryon +class G4SigmacZero : public G4ParticleDefinition { private: - static G4SigmacZero theSigmacZero; - - private: - G4SigmacZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4SigmacZero* theInstance; + G4SigmacZero(){} + ~G4SigmacZero(){} public: - virtual ~G4SigmacZero(){} - + static G4SigmacZero* Definition(); static G4SigmacZero* SigmacZeroDefinition(); static G4SigmacZero* SigmacZero(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4VBaryon.hh b/source/particles/hadrons/barions/include/G4VBaryon.hh deleted file mode 100644 index 773da5b915..0000000000 --- a/source/particles/hadrons/barions/include/G4VBaryon.hh +++ /dev/null @@ -1,85 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VBaryon.hh,v 1.5 2004/07/26 08:21:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// ------------------------------------------------------------ -// Revised, Hisaya Kurashige, 15 Dec 1996 -// Revised, Hisaya Kurashige, 24 Frb 1997 -// ------------------------------------------------------------ - - -#ifndef G4VBaryon_h -#define G4VBaryon_h 1 - -#include "G4ios.hh" -#include "globals.hh" - -#include "G4ParticleDefinition.hh" - -class G4VBaryon : public G4ParticleDefinition -{ - // A virtual class for Barions particles. It defines - // public methods which describe the behavior of a - // barion. - - private: - - const G4VBaryon & operator=(const G4VBaryon &right); - - public: - - G4VBaryon(const G4String& aName, - G4double mass, - G4double width, - G4double charge, - G4int iSpin, - G4int iParity, - G4int iConjugation, - G4int iIsospin, - G4int iIsospinZ, - G4int gParity, - const G4String& pType, - G4int lepton, - G4int baryon, - G4int encoding, - G4bool stable, - G4double lifetime, - G4DecayTable *decaytable) - : G4ParticleDefinition(aName, mass, width, charge, iSpin, iParity, - iConjugation, iIsospin, iIsospinZ, gParity, - pType, lepton, baryon, encoding, stable, - lifetime, decaytable) {}; - - virtual ~G4VBaryon() {}; - -}; - -#endif diff --git a/source/particles/hadrons/barions/include/G4XiMinus.hh b/source/particles/hadrons/barions/include/G4XiMinus.hh index 973bf84ede..25d79dcd13 100644 --- a/source/particles/hadrons/barions/include/G4XiMinus.hh +++ b/source/particles/hadrons/barions/include/G4XiMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XiMinus.hh,v 1.7 2001/10/16 08:15:51 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XiMinus.hh,v 1.9 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4XiMinus_h #define G4XiMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### XiMinus ### // ###################################################################### -class G4XiMinus : public G4VBaryon +class G4XiMinus : public G4ParticleDefinition { private: - static G4XiMinus theXiMinus; - - private: - G4XiMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4XiMinus* theInstance; + G4XiMinus(){} + ~G4XiMinus(){} public: - virtual ~G4XiMinus(){} - + static G4XiMinus* Definition(); static G4XiMinus* XiMinusDefinition(); static G4XiMinus* XiMinus(); }; - #endif diff --git a/source/particles/hadrons/barions/include/G4XiZero.hh b/source/particles/hadrons/barions/include/G4XiZero.hh index 077f02388c..306eacf98a 100644 --- a/source/particles/hadrons/barions/include/G4XiZero.hh +++ b/source/particles/hadrons/barions/include/G4XiZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XiZero.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XiZero.hh,v 1.12 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4XiZero_h #define G4XiZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### XiZero ### // ###################################################################### -class G4XiZero : public G4VBaryon +class G4XiZero : public G4ParticleDefinition { private: - static G4XiZero theXiZero; - - private: - G4XiZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4XiZero* theInstance; + G4XiZero(){} + ~G4XiZero(){} public: - virtual ~G4XiZero(){} - + static G4XiZero* Definition(); static G4XiZero* XiZeroDefinition(); static G4XiZero* XiZero(); - }; #endif diff --git a/source/particles/hadrons/barions/include/G4XicPlus.hh b/source/particles/hadrons/barions/include/G4XicPlus.hh index a473955ef1..d6ae33aa9b 100644 --- a/source/particles/hadrons/barions/include/G4XicPlus.hh +++ b/source/particles/hadrons/barions/include/G4XicPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XicPlus.hh,v 1.6 2001/10/15 10:09:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XicPlus.hh,v 1.8 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,46 +31,29 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4XicPlus_h #define G4XicPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### XicPlus ### // ###################################################################### -class G4XicPlus : public G4VBaryon +class G4XicPlus : public G4ParticleDefinition { private: - static G4XicPlus theXicPlus; - - private: - G4XicPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4XicPlus* theInstance; + G4XicPlus(){} + ~G4XicPlus(){} public: - virtual ~G4XicPlus(){} - + static G4XicPlus* Definition(); static G4XicPlus* XicPlusDefinition(); static G4XicPlus* XicPlus(); }; diff --git a/source/particles/hadrons/barions/include/G4XicZero.hh b/source/particles/hadrons/barions/include/G4XicZero.hh index a6bfe4d7c4..645896682f 100644 --- a/source/particles/hadrons/barions/include/G4XicZero.hh +++ b/source/particles/hadrons/barions/include/G4XicZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XicZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XicZero.hh,v 1.11 2005/01/14 03:49:08 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 14 June 19 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VBaryon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4XicZero_h #define G4XicZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VBaryon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### XicZero ### +// ### XicZero ### // ###################################################################### -class G4XicZero : public G4VBaryon +class G4XicZero : public G4ParticleDefinition { private: - static G4XicZero theXicZero; - - private: - G4XicZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4XicZero* theInstance; + G4XicZero(){} + ~G4XicZero(){} public: - virtual ~G4XicZero(){} - + static G4XicZero* Definition(); static G4XicZero* XicZeroDefinition(); static G4XicZero* XicZero(); - }; #endif diff --git a/source/particles/hadrons/barions/src/G4AntiLambda.cc b/source/particles/hadrons/barions/src/G4AntiLambda.cc index e92a57b2e7..dc0d5e2775 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambda.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambda.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiLambda.cc,v 1.14 2003/06/16 16:56:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiLambda.cc,v 1.16 2005/01/14 03:49:09 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiLambda.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,59 +44,61 @@ // ### AntiLambda ### // ###################################################################### -G4AntiLambda::G4AntiLambda( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiLambda* G4AntiLambda::theInstance = 0; + +G4AntiLambda* G4AntiLambda::Definition() { - SetParticleSubType("lambda"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_lambda"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.115684*GeV, 2.501e-12*MeV, 0.0, + 1, +1, 0, + 0, 0, 0, + "baryon", 0, -1, -3122, + false, 0.2632*ns, NULL, + false, "lambda"); //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[2]; // anti_lambda -> anti_proton + pi+ mode[0] = new G4PhaseSpaceDecayChannel("anti_lambda",0.639,2,"anti_proton","pi+"); - // anti_lambda -> anti_neutron + pi0 + // anti_lambda -> anti_neutron + pi0 mode[1] = new G4PhaseSpaceDecayChannel("anti_lambda",0.358,2,"anti_neutron","pi0"); for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiLambda* G4AntiLambda::AntiLambdaDefinition() +{ + return Definition(); +} -G4AntiLambda G4AntiLambda::theAntiLambda( - "anti_lambda", 1.115684*GeV, 2.501e-12*MeV, 0.0, - 1, +1, 0, - 0, 0, 0, - "baryon", 0, -1, -3122, - false, 0.2632*ns, NULL -); +G4AntiLambda* G4AntiLambda::AntiLambda() +{ + return Definition(); +} -G4AntiLambda* G4AntiLambda::AntiLambdaDefinition(){return &theAntiLambda;} - -G4AntiLambda* G4AntiLambda::AntiLambda(){return &theAntiLambda;} diff --git a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc index 91cde66263..e101b4d9a7 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiLambdacPlus.cc,v 1.9 2004/02/13 05:53:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiLambdacPlus.cc,v 1.11 2005/01/14 03:49:09 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,58 +31,62 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiLambdacPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### AntiLambdacPlus ### +// ### AntiLambdacPlus ### // ###################################################################### -G4AntiLambdacPlus::G4AntiLambdacPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiLambdacPlus* G4AntiLambdacPlus::theInstance = 0; + +G4AntiLambdacPlus* G4AntiLambdacPlus::Definition() { - SetParticleSubType("lambda_c"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_lambda_c+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.2849*GeV, 3.30e-9*MeV, -1.*eplus, + 1, +1, 0, + 0, 0, 0, + "baryon", 0, +1, -4122, + false, 0.206e-3*ns, NULL, + false, "lambda_c"); + + // decay mode is not defined here, with expectation of pre-assigned. + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiLambdacPlus* G4AntiLambdacPlus::AntiLambdacPlusDefinition() +{ + return Definition(); +} -G4AntiLambdacPlus G4AntiLambdacPlus::theAntiLambdacPlus( - "anti_lambda_c+", 2.2849*GeV, 3.30e-9*MeV, -1.*eplus, - 1, +1, 0, - 0, 0, 0, - "baryon", 0, +1, -4122, - false, 0.206e-3*ns, NULL -); +G4AntiLambdacPlus* G4AntiLambdacPlus::AntiLambdacPlus() +{ + return Definition(); +} -G4AntiLambdacPlus* G4AntiLambdacPlus::AntiLambdacPlusDefinition(){return &theAntiLambdacPlus;} -G4AntiLambdacPlus* G4AntiLambdacPlus::AntiLambdacPlus(){return &theAntiLambdacPlus;} diff --git a/source/particles/hadrons/barions/src/G4AntiNeutron.cc b/source/particles/hadrons/barions/src/G4AntiNeutron.cc index 38f3d66cc5..1cfb5398fe 100644 --- a/source/particles/hadrons/barions/src/G4AntiNeutron.cc +++ b/source/particles/hadrons/barions/src/G4AntiNeutron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiNeutron.cc,v 1.14 2004/02/13 05:53:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiNeutron.cc,v 1.16 2005/01/14 03:49:09 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,50 +32,56 @@ // 4th April 1996, G.Cosmo // H.Kurashige 7 July 1996 // ********************************************************************** -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4AntiNeutron.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### ANTI NEUTRON ### // ###################################################################### +G4AntiNeutron* G4AntiNeutron::theInstance = 0; -G4AntiNeutron::G4AntiNeutron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiNeutron* G4AntiNeutron::Definition() { - SetParticleSubType("nucleon"); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// -G4AntiNeutron G4AntiNeutron::theAntiNeutron( - "anti_neutron", 0.93956563*GeV, 7.432e-28*GeV, 0.0, + if (theInstance !=0) return theInstance; + const G4String name = "anti_neutron"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.93956563*GeV, 7.432e-28*GeV, 0.0, 1, +1, 0, 1, +1, 0, "baryon", 0, -1, -2112, - true, -1.0, NULL -); -G4AntiNeutron* G4AntiNeutron::AntiNeutronDefinition(){return &theAntiNeutron;} -G4AntiNeutron* G4AntiNeutron::AntiNeutron(){return &theAntiNeutron;} + true, -1.0, NULL, + false, "neucleon" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} + +G4AntiNeutron* G4AntiNeutron::AntiNeutronDefinition() +{ + return Definition(); +} + +G4AntiNeutron* G4AntiNeutron::AntiNeutron() +{ + return Definition(); +} + diff --git a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc index f1d5a4a26c..495596eb47 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiOmegaMinus.cc,v 1.10 2004/02/13 05:53:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiOmegaMinus.cc,v 1.12 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiOmegaMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,26 +44,37 @@ // ### AntiOmegaMinus ### // ###################################################################### -G4AntiOmegaMinus::G4AntiOmegaMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("omega"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4AntiOmegaMinus* G4AntiOmegaMinus::theInstance = 0; +G4AntiOmegaMinus* G4AntiOmegaMinus::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "anti_omega-"; + // search in particle table + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.67245*GeV, 8.02e-12*MeV, eplus, + 3, +1, 0, + 0, 0, 0, + "baryon", 0, -1, -3334, + false, 0.0822*ns, NULL, + false, "omega"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[3]; // anti_omega- -> anti_lambda + kaon+ @@ -74,32 +83,23 @@ G4AntiOmegaMinus::G4AntiOmegaMinus( mode[1] = new G4PhaseSpaceDecayChannel("anti_omega-",0.236,2,"anti_xi0","pi+"); // anti_omega- -> anti_xi- + pi0 mode[2] = new G4PhaseSpaceDecayChannel("anti_omega-",0.086,2,"anti_xi-","pi0"); - - for (G4int index=0; index <3; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <3; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiOmegaMinus* G4AntiOmegaMinus::AntiOmegaMinusDefinition() +{ + return Definition(); +} -G4AntiOmegaMinus G4AntiOmegaMinus::theAntiOmegaMinus( - "anti_omega-", 1.67245*GeV, 8.02e-12*MeV, eplus, - 3, +1, 0, - 0, 0, 0, - "baryon", 0, -1, -3334, - false, 0.0822*ns, NULL -); +G4AntiOmegaMinus* G4AntiOmegaMinus::AntiOmegaMinus() +{ + return Definition(); +} -G4AntiOmegaMinus* G4AntiOmegaMinus::AntiOmegaMinusDefinition(){return &theAntiOmegaMinus;} - -G4AntiOmegaMinus* G4AntiOmegaMinus::AntiOmegaMinus(){return &theAntiOmegaMinus;} diff --git a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc index 0e57dfcce1..740aa0ce92 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiOmegacZero.cc,v 1.14 2004/02/13 05:53:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiOmegacZero.cc,v 1.16 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,59 +31,62 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiOmegacZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### AntiOmegacZero ### +// ### AntiOmegacZero ### // ###################################################################### -G4AntiOmegacZero::G4AntiOmegacZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiOmegacZero* G4AntiOmegacZero::theInstance = 0; + +G4AntiOmegacZero* G4AntiOmegacZero::Definition() { - SetParticleSubType("omega_c"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_omega_c0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.6975*GeV, 1.02e-8*MeV, 0.*eplus, + 1, +1, 0, + 0, 0, 0, + "baryon", 0, -1, -4332, + false, 0.064e-3*ns, NULL, + false, "omega_c"); + + //Decay Table is not defined here, wth expectation of pre-assigned + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiOmegacZero* G4AntiOmegacZero::AntiOmegacZeroDefinition() +{ + return Definition(); +} -G4AntiOmegacZero G4AntiOmegacZero::theAntiOmegacZero( - "anti_omega_c0", 2.6975*GeV, 1.02e-8*MeV, 0.*eplus, - 1, +1, 0, - 0, 0, 0, - "baryon", 0, -1, -4332, - false, 0.064e-3*ns, NULL -); - -G4AntiOmegacZero* G4AntiOmegacZero::AntiOmegacZeroDefinition(){return &theAntiOmegacZero;} -G4AntiOmegacZero* G4AntiOmegacZero::AntiOmegacZero(){return &theAntiOmegacZero;} +G4AntiOmegacZero* G4AntiOmegacZero::AntiOmegacZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/barions/src/G4AntiProton.cc b/source/particles/hadrons/barions/src/G4AntiProton.cc index ab7e0a12d4..cd9ea61470 100644 --- a/source/particles/hadrons/barions/src/G4AntiProton.cc +++ b/source/particles/hadrons/barions/src/G4AntiProton.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiProton.cc,v 1.8 2003/06/16 16:56:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiProton.cc,v 1.10 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,56 +32,56 @@ // 4th April 1996, G.Cosmo // H.Kurashige 7 July 1996 // ********************************************************************** +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -#include -#include - #include "G4AntiProton.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### ANTIPROTON ### // ###################################################################### -G4AntiProton::G4AntiProton( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("nucleon"); -} -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// -G4AntiProton G4AntiProton::theAntiProton( - "anti_proton", 0.9382723*GeV, 0.0*MeV, -1.0*eplus, +G4AntiProton* G4AntiProton::theInstance = 0; + +G4AntiProton* G4AntiProton::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "anti_proton"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.9382723*GeV, 0.0*MeV, -1.0*eplus, 1, +1, 0, 1, -1, 0, "baryon", 0, -1, -2212, - true, -1.0, NULL -); - -G4AntiProton* G4AntiProton::AntiProtonDefinition(){return &theAntiProton;} -G4AntiProton* G4AntiProton::AntiProton(){return &theAntiProton;} - - + true, -1.0, NULL, + false, "neucleon" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} +G4AntiProton* G4AntiProton::AntiProtonDefinition() +{ + return Definition(); +} +G4AntiProton* G4AntiProton::AntiProton() +{ + return Definition(); +} diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc index 8db71d9ed3..7fe668324c 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaMinus.cc,v 1.10 2003/06/16 16:56:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmaMinus.cc,v 1.12 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiSigmaMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,63 +44,58 @@ // ### AntiSigmaMinus ### // ###################################################################### -G4AntiSigmaMinus::G4AntiSigmaMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiSigmaMinus* G4AntiSigmaMinus::theInstance = 0; + +G4AntiSigmaMinus* G4AntiSigmaMinus::Definition() { - SetParticleSubType("sigma"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "anti_sigma-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.19744*GeV, 4.45e-12*MeV, eplus, + 1, +1, 0, + 2, +2, 0, + "baryon", 0, -1, -3112, + false, 0.1479*ns, NULL, + false, "sigma"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // anti_sigma- -> anti_neutron + pi+ mode[0] = new G4PhaseSpaceDecayChannel("anti_sigma-",1.00,2,"anti_neutron","pi+"); - - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); - + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4AntiSigmaMinus G4AntiSigmaMinus::theAntiSigmaMinus( - "anti_sigma-", 1.19744*GeV, 4.45e-12*MeV, eplus, - 1, +1, 0, - 2, +2, 0, - "baryon", 0, -1, -3112, - false, 0.1479*ns, NULL -); - -G4AntiSigmaMinus* G4AntiSigmaMinus::AntiSigmaMinusDefinition() +G4AntiSigmaMinus* G4AntiSigmaMinus::AntiSigmaMinusDefinition() { - return &theAntiSigmaMinus; + return Definition(); } -G4AntiSigmaMinus* G4AntiSigmaMinus::AntiSigmaMinus() +G4AntiSigmaMinus* G4AntiSigmaMinus::AntiSigmaMinus() { - return &theAntiSigmaMinus; + return Definition(); } + diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc index 3f47046d17..a682ac66d5 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaPlus.cc,v 1.10 2004/02/13 05:53:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmaPlus.cc,v 1.12 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,83 +31,73 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiSigmaPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### AntiSigmaPlus ####### +// ### AntiSigmaPlus #### // ###################################################################### -G4AntiSigmaPlus::G4AntiSigmaPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("sigma"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4AntiSigmaPlus* G4AntiSigmaPlus::theInstance = 0; - // create decay channels +G4AntiSigmaPlus* G4AntiSigmaPlus::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "anti_sigma+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.18937*GeV, 8.209e-12*MeV, -1.*eplus, + 1, +1, 0, + 2, -2, 0, + "baryon", 0, -1, -3222, + false, 0.0799*ns, NULL, + false, "sigma"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + + // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[2]; // anti_sigma+ -> anti_proton + pi0 mode[0] = new G4PhaseSpaceDecayChannel("anti_sigma+",0.516,2,"anti_proton","pi0"); // anti_sigma+ -> anti_neutron + pi+ mode[1] = new G4PhaseSpaceDecayChannel("anti_sigma+",0.483,2,"anti_neutron","pi-"); - - for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); delete [] mode; - - SetDecayTable(table); + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4AntiSigmaPlus G4AntiSigmaPlus::theAntiSigmaPlus( - "anti_sigma+", 1.18937*GeV, 8.209e-12*MeV, -1.*eplus, - 1, +1, 0, - 2, -2, 0, - "baryon", 0, -1, -3222, - false, 0.0799*ns, NULL -); - -G4AntiSigmaPlus* G4AntiSigmaPlus::AntiSigmaPlusDefinition() -{ - return &theAntiSigmaPlus; +G4AntiSigmaPlus* G4AntiSigmaPlus::AntiSigmaPlusDefinition() +{ + return Definition(); } -G4AntiSigmaPlus* G4AntiSigmaPlus::AntiSigmaPlus() -{ - return &theAntiSigmaPlus; +G4AntiSigmaPlus* G4AntiSigmaPlus::AntiSigmaPlus() +{ + return Definition(); } - - - diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc index add09f480a..803b940eff 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaZero.cc,v 1.14 2003/06/16 16:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmaZero.cc,v 1.16 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,77 +31,69 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiSigmaZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### AntiSigmaZero ### +// ### AntiSigmaZero ### // ###################################################################### -G4AntiSigmaZero::G4AntiSigmaZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("sigma"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4AntiSigmaZero* G4AntiSigmaZero::theInstance = 0; +G4AntiSigmaZero* G4AntiSigmaZero::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "anti_sigma0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.19255*GeV, 8.9e-3*MeV, 0.0, + 1, +1, 0, + 2, 0, 0, + "baryon", 0, -1, -3212, + false, 7.4e-11*ns, NULL, + false, "sigma"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + // create decay channels // anti_sigma0 -> anti_lambda + gamma G4VDecayChannel* mode = new G4PhaseSpaceDecayChannel("anti_sigma0",1.000,2,"anti_lambda","gamma"); - table->Insert(mode); + table->Insert(mode); - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4AntiSigmaZero G4AntiSigmaZero::theAntiSigmaZero( - "anti_sigma0", 1.19255*GeV, 8.9e-3*MeV, 0.0, - 1, +1, 0, - 2, 0, 0, - "baryon", 0, -1, -3212, - false, 7.4e-11*ns, NULL -); - -G4AntiSigmaZero* G4AntiSigmaZero::AntiSigmaZeroDefinition() +G4AntiSigmaZero* G4AntiSigmaZero::AntiSigmaZeroDefinition() { - return &theAntiSigmaZero; + return Definition(); } -G4AntiSigmaZero* G4AntiSigmaZero::AntiSigmaZero() +G4AntiSigmaZero* G4AntiSigmaZero::AntiSigmaZero() { - return &theAntiSigmaZero; + return Definition(); } diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc index 896911348c..769562e76f 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmacPlus.cc,v 1.8 2004/02/13 05:53:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmacPlus.cc,v 1.10 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,72 +31,72 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiSigmacPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### AntiSigmacPlus ### +// ### AntiSigmacPlus ### // ###################################################################### -G4AntiSigmacPlus::G4AntiSigmacPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("sigma_c"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4AntiSigmacPlus* G4AntiSigmacPlus::theInstance = 0; +G4AntiSigmacPlus* G4AntiSigmacPlus::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "anti_sigma_c+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4513*GeV, 2.0*MeV, -1.0*eplus, + 1, +1, 0, + 2, -1, 0, + "baryon", 0, -1, -4212, + false, 0.0*ns, NULL, + false, "sigma_c"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // anti_sigmac+ -> anti_lambda_c + pi0 mode[0] = new G4PhaseSpaceDecayChannel("anti_sigma_c+",1.000,2,"anti_lambda_c+","pi0"); - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiSigmacPlus* G4AntiSigmacPlus::AntiSigmacPlusDefinition() +{ + return Definition(); +} -G4AntiSigmacPlus G4AntiSigmacPlus::theAntiSigmacPlus( - "anti_sigma_c+", 2.4513*GeV, 2.0*MeV, -1.0*eplus, - 1, +1, 0, - 2, -1, 0, - "baryon", 0, -1, -4212, - false, 0.0*ns, NULL -); +G4AntiSigmacPlus* G4AntiSigmacPlus::AntiSigmacPlus() +{ + return Definition(); +} -G4AntiSigmacPlus* G4AntiSigmacPlus::AntiSigmacPlusDefinition(){return &theAntiSigmacPlus;} -G4AntiSigmacPlus* G4AntiSigmacPlus::AntiSigmacPlus(){return &theAntiSigmacPlus;} diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc index a1dfc4f197..efaf8576c9 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmacPlusPlus.cc,v 1.8 2004/02/13 05:53:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmacPlusPlus.cc,v 1.10 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,14 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiSigmacPlusPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -47,58 +44,60 @@ // ### AntiSigmacPlusPlus ### // ###################################################################### -G4AntiSigmacPlusPlus::G4AntiSigmacPlusPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("sigma_c"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4AntiSigmacPlusPlus* G4AntiSigmacPlusPlus::theInstance = 0; +G4AntiSigmacPlusPlus* G4AntiSigmacPlusPlus::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "anti_sigma_c++"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4526*GeV, 2.0*MeV, -2.0*eplus, + 1, +1, 0, + 2, -2, 0, + "baryon", 0, -1, -4222, + false, 0.0*ns, NULL, + false, "sigma_c"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // anti_sigma_c++ -> anti_lambda_c+ + pi- mode[0] = new G4PhaseSpaceDecayChannel("anti_sigma_c++",1.000,2,"anti_lambda_c+","pi-"); - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - - SetDecayTable(table); + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiSigmacPlusPlus* G4AntiSigmacPlusPlus::AntiSigmacPlusPlusDefinition() +{ + return Definition(); +} -G4AntiSigmacPlusPlus G4AntiSigmacPlusPlus::theAntiSigmacPlusPlus( - "anti_sigma_c++", 2.4526*GeV, 2.0*MeV, -2.0*eplus, - 1, +1, 0, - 2, -2, 0, - "baryon", 0, -1, -4222, - false, 0.0*ns, NULL -); - -G4AntiSigmacPlusPlus* G4AntiSigmacPlusPlus::AntiSigmacPlusPlusDefinition(){return &theAntiSigmacPlusPlus;} -G4AntiSigmacPlusPlus* G4AntiSigmacPlusPlus::AntiSigmacPlusPlus(){return &theAntiSigmacPlusPlus;} +G4AntiSigmacPlusPlus* G4AntiSigmacPlusPlus::AntiSigmacPlusPlus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc index df21d11bcd..060a3c9af4 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiSigmacZero.cc,v 1.13 2004/02/13 05:53:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiSigmacZero.cc,v 1.15 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,72 +31,71 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiSigmacZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### AntiSigmacZero ### +// ### AntiSigmacZero ### // ###################################################################### -G4AntiSigmacZero::G4AntiSigmacZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiSigmacZero* G4AntiSigmacZero::theInstance = 0; + +G4AntiSigmacZero* G4AntiSigmacZero::Definition() { - SetParticleSubType("sigma_c"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_sigma_c0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4521*GeV, 1.5*MeV, +0.0*eplus, + 1, +1, 0, + 2, 0, 0, + "baryon", 0, -1, -4112, + false, 0.0*ns, NULL, + false, "sigma_c"); //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // anti_sigmac0 -> anti_lambda_c+ + pi+ mode[0] = new G4PhaseSpaceDecayChannel("anti_sigma_c0",1.000,2,"anti_lambda_c+","pi+"); - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - - SetDecayTable(table); + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiSigmacZero* G4AntiSigmacZero::AntiSigmacZeroDefinition() +{ + return Definition(); +} -G4AntiSigmacZero G4AntiSigmacZero::theAntiSigmacZero( - "anti_sigma_c0", 2.4521*GeV, 1.5*MeV, +0.0*eplus, - 1, +1, 0, - 2, 0, 0, - "baryon", 0, -1, -4112, - false, 0.0*ns, NULL -); - -G4AntiSigmacZero* G4AntiSigmacZero::AntiSigmacZeroDefinition(){return &theAntiSigmacZero;} -G4AntiSigmacZero* G4AntiSigmacZero::AntiSigmacZero(){return &theAntiSigmacZero;} +G4AntiSigmacZero* G4AntiSigmacZero::AntiSigmacZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc index e67fb79d16..5800a71bcc 100644 --- a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiXiMinus.cc,v 1.9 2003/06/16 16:57:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiXiMinus.cc,v 1.11 2005/01/14 03:49:10 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiXiMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,62 +44,58 @@ // ### AntiXiMinus ### // ###################################################################### -G4AntiXiMinus::G4AntiXiMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("xi"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4AntiXiMinus* G4AntiXiMinus::theInstance = 0; +G4AntiXiMinus* G4AntiXiMinus::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "anti_xi-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.32132*GeV, 4.02e-12*MeV, eplus, + 1, +1, 0, + 1, +1, 0, + "baryon", 0, -1, -3312, + false, 0.1639*ns, NULL, + false, "xi"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // anti_xi- -> anti_lambda + pi+ mode[0] = new G4PhaseSpaceDecayChannel("anti_xi-",1.000,2,"anti_lambda","pi+"); - - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - - SetDecayTable(table); + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4AntiXiMinus G4AntiXiMinus::theAntiXiMinus( - "anti_xi-", 1.32132*GeV, 4.02e-12*MeV, eplus, - 1, +1, 0, - 1, +1, 0, - "baryon", 0, -1, -3312, - false, 0.1639*ns, NULL -); - -G4AntiXiMinus* G4AntiXiMinus::AntiXiMinusDefinition() -{ - return &theAntiXiMinus; +G4AntiXiMinus* G4AntiXiMinus::AntiXiMinusDefinition() +{ + return Definition(); } -G4AntiXiMinus* G4AntiXiMinus::AntiXiMinus() -{ - return &theAntiXiMinus; +G4AntiXiMinus* G4AntiXiMinus::AntiXiMinus() +{ + return Definition(); } + + diff --git a/source/particles/hadrons/barions/src/G4AntiXiZero.cc b/source/particles/hadrons/barions/src/G4AntiXiZero.cc index e6651dd32c..ab9d77f7a6 100644 --- a/source/particles/hadrons/barions/src/G4AntiXiZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXiZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiXiZero.cc,v 1.14 2003/06/16 16:57:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiXiZero.cc,v 1.17 2005/02/24 19:29:09 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiXiZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,56 +44,59 @@ // ### AntiXiZero ### // ###################################################################### -G4AntiXiZero::G4AntiXiZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiXiZero* G4AntiXiZero::theInstance = 0; + +G4AntiXiZero* G4AntiXiZero::Definition() { - SetParticleSubType("xi"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_xi0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.3149*GeV, 2.27e-12*MeV, 0.0, + 1, +1, 0, + 1, -1, 0, + "baryon", 0, -1, -3322, + false, 0.290*ns, NULL, + false, "xi"); //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // anti_xi0 -> anti_lambda + pi0 mode[0] = new G4PhaseSpaceDecayChannel("anti_xi0",1.000,2,"anti_lambda","pi0"); - - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); - delete [] mode; - SetDecayTable(table); + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + delete [] mode; + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiXiZero* G4AntiXiZero::AntiXiZeroDefinition() +{ + return Definition(); +} -G4AntiXiZero G4AntiXiZero::theAntiXiZero( - "anti_xi0", 1.3149*GeV, 2.27e-12*MeV, 0.0, - 1, +1, 0, - 1, -1, 0, - "baryon", 0, -1, -3322, - false, 0.290*ns, NULL -); +G4AntiXiZero* G4AntiXiZero::AntiXiZero() +{ + return Definition(); +} -G4AntiXiZero* G4AntiXiZero::AntiXiZeroDefinition(){return &theAntiXiZero;} -G4AntiXiZero* G4AntiXiZero::AntiXiZero(){return &theAntiXiZero;} diff --git a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc index a241681a22..bdfe505748 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiXicPlus.cc,v 1.9 2004/02/13 05:53:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiXicPlus.cc,v 1.11 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,58 +31,60 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// Modified PDG encoding H.Kurashige 24 Sep. 98 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiXicPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### AntiXicPlus ### +// ### AntiXicPlus ### // ###################################################################### -G4AntiXicPlus::G4AntiXicPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiXicPlus* G4AntiXicPlus::theInstance = 0; + +G4AntiXicPlus* G4AntiXicPlus::Definition() { - SetParticleSubType("xi_c"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_xi_c+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4663*GeV, 1.49e-9*MeV, -1.*eplus, + 1, +1, 0, + 1, -1, 0, + "baryon", 0, -1, -4232, + false, 0.35e-3*ns, NULL, + false, "xi_c"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiXicPlus* G4AntiXicPlus::AntiXicPlusDefinition() +{ + return Definition(); +} + +G4AntiXicPlus* G4AntiXicPlus::AntiXicPlus() +{ + return Definition(); +} -G4AntiXicPlus G4AntiXicPlus::theAntiXicPlus( - "anti_xi_c+", 2.4663*GeV, 1.49e-9*MeV, -1.*eplus, - 1, +1, 0, - 1, -1, 0, - "baryon", 0, -1, -4232, - false, 0.35e-3*ns, NULL -); -G4AntiXicPlus* G4AntiXicPlus::AntiXicPlusDefinition(){return &theAntiXicPlus;} -G4AntiXicPlus* G4AntiXicPlus::AntiXicPlus(){return &theAntiXicPlus;} diff --git a/source/particles/hadrons/barions/src/G4AntiXicZero.cc b/source/particles/hadrons/barions/src/G4AntiXicZero.cc index 690f54e6bb..fd789aab4c 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiXicZero.cc,v 1.14 2004/02/13 05:53:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiXicZero.cc,v 1.16 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,15 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// Modified PDG encoding H.Kurashige 24 Sep. 98 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4AntiXicZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -48,42 +44,47 @@ // ### AntiXicZero ### // ###################################################################### -G4AntiXicZero::G4AntiXicZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiXicZero* G4AntiXicZero::theInstance = 0; + +G4AntiXicZero* G4AntiXicZero::Definition() { - SetParticleSubType("xi_c"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_xi_c0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4718*GeV, 6.7e-9*MeV, 0.0, + 1, +1, 0, + 1, +1, 0, + "baryon", 0, -1, -4132, + false, 0.098e-3*ns, NULL, + false, "xi_c"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiXicZero* G4AntiXicZero::AntiXicZeroDefinition() +{ + return Definition(); +} -G4AntiXicZero G4AntiXicZero::theAntiXicZero( - "anti_xi_c0", 2.4718*GeV, 6.7e-9*MeV, 0.0, - 1, +1, 0, - 1, +1, 0, - "baryon", 0, -1, -4132, - false, 0.098e-3*ns, NULL -); +G4AntiXicZero* G4AntiXicZero::AntiXicZero() +{ + return Definition(); +} -G4AntiXicZero* G4AntiXicZero::AntiXicZeroDefinition(){return &theAntiXicZero;} -G4AntiXicZero* G4AntiXicZero::AntiXicZero(){return &theAntiXicZero;} diff --git a/source/particles/hadrons/barions/src/G4BaryonConstructor.cc b/source/particles/hadrons/barions/src/G4BaryonConstructor.cc index 4cb04416e5..18000d4ba5 100644 --- a/source/particles/hadrons/barions/src/G4BaryonConstructor.cc +++ b/source/particles/hadrons/barions/src/G4BaryonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4BaryonConstructor.cc,v 1.3 2001/07/11 10:01:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Lambda.cc b/source/particles/hadrons/barions/src/G4Lambda.cc index 7624810aaf..3a292b0a16 100644 --- a/source/particles/hadrons/barions/src/G4Lambda.cc +++ b/source/particles/hadrons/barions/src/G4Lambda.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Lambda.cc,v 1.14 2003/06/16 16:57:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Lambda.cc,v 1.16 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4Lambda.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,59 +44,61 @@ // ### Lambda ### // ###################################################################### -G4Lambda::G4Lambda( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("lambda"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4Lambda* G4Lambda::theInstance = 0; - // create decay channels +G4Lambda* G4Lambda::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "lambda"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.115684*GeV, 2.501e-12*MeV, 0.0, + 1, +1, 0, + 0, 0, 0, + "baryon", 0, +1, 3122, + false, 0.2632*ns, NULL, + false, "lambda"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + + // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[2]; // lambda -> proton + pi- mode[0] = new G4PhaseSpaceDecayChannel("lambda",0.639,2,"proton","pi-"); // lambda -> neutron + pi0 mode[1] = new G4PhaseSpaceDecayChannel("lambda",0.358,2,"neutron","pi0"); - - for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); delete [] mode; - - SetDecayTable(table); + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4Lambda* G4Lambda::LambdaDefinition() +{ + return Definition(); +} -G4Lambda G4Lambda::theLambda( - "lambda", 1.115684*GeV, 2.501e-12*MeV, 0.0, - 1, +1, 0, - 0, 0, 0, - "baryon", 0, +1, 3122, - false, 0.2632*ns, NULL -); +G4Lambda* G4Lambda::Lambda() +{ + return Definition(); +} -G4Lambda* G4Lambda::LambdaDefinition(){return &theLambda;} - -G4Lambda* G4Lambda::Lambda() {return &theLambda;} diff --git a/source/particles/hadrons/barions/src/G4LambdacPlus.cc b/source/particles/hadrons/barions/src/G4LambdacPlus.cc index 9c168089a7..0c91bfccd7 100644 --- a/source/particles/hadrons/barions/src/G4LambdacPlus.cc +++ b/source/particles/hadrons/barions/src/G4LambdacPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LambdacPlus.cc,v 1.9 2004/02/13 05:53:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LambdacPlus.cc,v 1.11 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,58 +31,59 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 12 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4LambdacPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### LambdacPlus ### +// ### LambdacPlus ### // ###################################################################### -G4LambdacPlus::G4LambdacPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4LambdacPlus* G4LambdacPlus::theInstance = 0; + +G4LambdacPlus* G4LambdacPlus::Definition() { - SetParticleSubType("lambda_c"); + if (theInstance !=0) return theInstance; + const G4String name = "lambda_c+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.2849*GeV, 3.30e-9*MeV, +1.*eplus, + 1, +1, 0, + 0, 0, 0, + "baryon", 0, +1, 4122, + false, 0.206e-3*ns, NULL, + false, "lambda_c"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4LambdacPlus* G4LambdacPlus::LambdacPlusDefinition() +{ + return Definition(); +} -G4LambdacPlus G4LambdacPlus::theLambdacPlus( - "lambda_c+", 2.2849*GeV, 3.30e-9*MeV, +1.*eplus, - 1, +1, 0, - 0, 0, 0, - "baryon", 0, +1, 4122, - false, 0.206e-3*ns, NULL -); - -G4LambdacPlus* G4LambdacPlus::LambdacPlusDefinition(){return &theLambdacPlus;} -G4LambdacPlus* G4LambdacPlus::LambdacPlus(){return &theLambdacPlus;} +G4LambdacPlus* G4LambdacPlus::LambdacPlus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/barions/src/G4Neutron.cc b/source/particles/hadrons/barions/src/G4Neutron.cc index 492b7e7e8f..9873a98b49 100644 --- a/source/particles/hadrons/barions/src/G4Neutron.cc +++ b/source/particles/hadrons/barions/src/G4Neutron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Neutron.cc,v 1.16 2004/02/13 05:53:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Neutron.cc,v 1.18 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -33,64 +33,67 @@ // H.Kurashige 7 July 1996 // add neutron life time Oct 17 2000 // ********************************************************************** -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4Neutron.hh" +#include "G4ParticleTable.hh" + #include "G4NeutronBetaDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### // ### NEUTRON ### // ###################################################################### +G4Neutron* G4Neutron::theInstance = 0; -G4Neutron::G4Neutron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Neutron* G4Neutron::Definition() { - SetParticleSubType("nucleon"); - - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); - - // create a decay channel - G4VDecayChannel* mode = new G4NeutronBetaDecayChannel("neutron",1.00); - table->Insert(mode); - - SetDecayTable(table); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4Neutron G4Neutron::theNeutron( - "neutron", 0.93956563*GeV, 7.432e-28*GeV, 0.0, + if (theInstance !=0) return theInstance; + const G4String name = "neutron"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.93956563*GeV, 7.432e-28*GeV, 0.0, 1, +1, 0, 1, -1, 0, "baryon", 0, +1, 2112, - true, 886.7*second, NULL -); + false, 886.7*second, NULL, + false, "neucleon" + ); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + // create a decay channel + G4VDecayChannel* mode = new G4NeutronBetaDecayChannel("neutron",1.00); + table->Insert(mode); + anInstance->SetDecayTable(table); -G4Neutron* G4Neutron::NeutronDefinition(){return &theNeutron;} -G4Neutron* G4Neutron::Neutron(){return &theNeutron;} + anInstance->SetAtomicNumber(0); + anInstance->SetAtomicMass(1); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} + +G4Neutron* G4Neutron::NeutronDefinition() +{ + return Definition(); +} + +G4Neutron* G4Neutron::Neutron() +{ + return Definition(); +} diff --git a/source/particles/hadrons/barions/src/G4OmegaMinus.cc b/source/particles/hadrons/barions/src/G4OmegaMinus.cc index cc18f61b7e..63407200df 100644 --- a/source/particles/hadrons/barions/src/G4OmegaMinus.cc +++ b/source/particles/hadrons/barions/src/G4OmegaMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OmegaMinus.cc,v 1.10 2004/02/13 05:53:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OmegaMinus.cc,v 1.12 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4OmegaMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,25 +44,36 @@ // ### OmegaMinus ### // ###################################################################### -G4OmegaMinus::G4OmegaMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4OmegaMinus* G4OmegaMinus::theInstance = 0; + +G4OmegaMinus* G4OmegaMinus::Definition() { - SetParticleSubType("omega"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "omega-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.67245*GeV, 8.02e-12*MeV, -1*eplus, + 3, +1, 0, + 0, 0, 0, + "baryon", 0, +1, 3334, + false, 0.0822*ns, NULL, + false, "omega"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[3]; @@ -74,32 +83,25 @@ G4OmegaMinus::G4OmegaMinus( mode[1] = new G4PhaseSpaceDecayChannel("omega-",0.236,2,"xi0","pi-"); // omega- -> xi- + pi0 mode[2] = new G4PhaseSpaceDecayChannel("omega-",0.086,2,"xi-","pi0"); - - for (G4int index=0; index <3; index++ ) table->Insert(mode[index]); - delete [] mode; - SetDecayTable(table); + for (G4int index=0; index <3; index++ ) table->Insert(mode[index]); + delete [] mode; + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4OmegaMinus* G4OmegaMinus::OmegaMinusDefinition() +{ + return Definition(); +} + +G4OmegaMinus* G4OmegaMinus::OmegaMinus() +{ + return Definition(); +} -G4OmegaMinus G4OmegaMinus::theOmegaMinus( - "omega-", 1.67245*GeV, 8.02e-12*MeV, -1*eplus, - 3, +1, 0, - 0, 0, 0, - "baryon", 0, +1, 3334, - false, 0.0822*ns, NULL -); -G4OmegaMinus* G4OmegaMinus::OmegaMinusDefinition(){return &theOmegaMinus;} -G4OmegaMinus* G4OmegaMinus::OmegaMinus(){return &theOmegaMinus;} diff --git a/source/particles/hadrons/barions/src/G4OmegacZero.cc b/source/particles/hadrons/barions/src/G4OmegacZero.cc index 4006143022..20a8035d99 100644 --- a/source/particles/hadrons/barions/src/G4OmegacZero.cc +++ b/source/particles/hadrons/barions/src/G4OmegacZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OmegacZero.cc,v 1.14 2004/02/13 05:53:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OmegacZero.cc,v 1.16 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,14 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4OmegacZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -47,51 +44,47 @@ // ### OmegacZero ### // ###################################################################### -G4OmegacZero::G4OmegacZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4OmegacZero* G4OmegacZero::theInstance = 0; + +G4OmegacZero* G4OmegacZero::Definition() { - SetParticleSubType("omega_c"); + if (theInstance !=0) return theInstance; + const G4String name = "omega_c0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.6975*GeV, 1.02e-8*MeV, 0.*eplus, + 1, +1, 0, + 0, 0, 0, + "baryon", 0, +1, 4332, + false, 0.064e-3*ns, NULL, + false, "omega_c"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4OmegacZero G4OmegacZero::theOmegacZero( - "omega_c0", 2.6975*GeV, 1.02e-8*MeV, 0.*eplus, - 1, +1, 0, - 0, 0, 0, - "baryon", 0, +1, 4332, - false, 0.064e-3*ns, NULL -); - -G4OmegacZero* G4OmegacZero::OmegacZeroDefinition(){return &theOmegacZero;} -G4OmegacZero* G4OmegacZero::OmegacZero(){return &theOmegacZero;} - - - - - - - +G4OmegacZero* G4OmegacZero::OmegacZeroDefinition() +{ + return Definition(); +} +G4OmegacZero* G4OmegacZero::OmegacZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/barions/src/G4Proton.cc b/source/particles/hadrons/barions/src/G4Proton.cc index a416fd8706..680de9e16c 100644 --- a/source/particles/hadrons/barions/src/G4Proton.cc +++ b/source/particles/hadrons/barions/src/G4Proton.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Proton.cc,v 1.8 2003/06/16 16:57:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Proton.cc,v 1.10 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,59 +31,59 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Code uses operators (+=, *=, ++, -> etc.) correctly, P. Urban, 26/6/96 -// Add ProtonDefinition(), H.Kurashige 4 July 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4Proton.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### PROTON ### // ###################################################################### +G4Proton* G4Proton::theInstance = 0; -G4Proton::G4Proton( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Proton* G4Proton::Definition() { - SetParticleSubType("nucleon"); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4Proton G4Proton::theProton( - "proton", 0.9382723*GeV, 0.0*MeV, eplus, + if (theInstance !=0) return theInstance; + const G4String name = "proton"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.9382723*GeV, 0.0*MeV, eplus, 1, +1, 0, 1, +1, 0, "baryon", 0, +1, 2212, - true, -1.0, NULL -); + true, -1.0, NULL, + false, "neucleon" + ); -G4Proton* G4Proton::ProtonDefinition(){return &theProton;} - -G4Proton* G4Proton::Proton() -{ - return &theProton; + anInstance->SetAtomicNumber(1); + anInstance->SetAtomicMass(1); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } + +G4Proton* G4Proton::ProtonDefinition() +{ + return Definition(); +} + +G4Proton* G4Proton::Proton() +{ + return Definition(); +} + + diff --git a/source/particles/hadrons/barions/src/G4SigmaMinus.cc b/source/particles/hadrons/barions/src/G4SigmaMinus.cc index 7f7d6e4eee..7c4aa9543b 100644 --- a/source/particles/hadrons/barions/src/G4SigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4SigmaMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmaMinus.cc,v 1.9 2003/06/16 16:57:11 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmaMinus.cc,v 1.11 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4SigmaMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,56 +44,58 @@ // ### SigmaMinus ### // ###################################################################### -G4SigmaMinus::G4SigmaMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("sigma"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4SigmaMinus* G4SigmaMinus::theInstance = 0; +G4SigmaMinus* G4SigmaMinus::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "sigma-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.19744*GeV, 4.45e-12*MeV, -1*eplus, + 1, +1, 0, + 2, -2, 0, + "baryon", 0, +1, 3112, + false, 0.1479*ns, NULL, + false, "sigma"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // sigma- -> neutron + pi- mode[0] = new G4PhaseSpaceDecayChannel("sigma-",1.00,2,"neutron","pi-"); - - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4SigmaMinus* G4SigmaMinus::SigmaMinusDefinition() +{ + return Definition(); +} -G4SigmaMinus G4SigmaMinus::theSigmaMinus( - "sigma-", 1.19744*GeV, 4.45e-12*MeV, -1*eplus, - 1, +1, 0, - 2, -2, 0, - "baryon", 0, +1, 3112, - false, 0.1479*ns, NULL -); +G4SigmaMinus* G4SigmaMinus::SigmaMinus() +{ + return Definition(); +} -G4SigmaMinus* G4SigmaMinus::SigmaMinusDefinition(){return &theSigmaMinus;} - -G4SigmaMinus* G4SigmaMinus::SigmaMinus(){return &theSigmaMinus;} diff --git a/source/particles/hadrons/barions/src/G4SigmaPlus.cc b/source/particles/hadrons/barions/src/G4SigmaPlus.cc index 2b3d5445cd..8d77e6fc86 100644 --- a/source/particles/hadrons/barions/src/G4SigmaPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmaPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmaPlus.cc,v 1.10 2004/02/13 05:53:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmaPlus.cc,v 1.12 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4SigmaPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,25 +44,36 @@ // ### SigmaPlus ### // ###################################################################### -G4SigmaPlus::G4SigmaPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4SigmaPlus* G4SigmaPlus::theInstance = 0; + +G4SigmaPlus* G4SigmaPlus::Definition() { - SetParticleSubType("sigma"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "sigma+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.18937*GeV, 8.209e-12*MeV, eplus, + 1, +1, 0, + 2, +2, 0, + "baryon", 0, +1, 3222, + false, 0.0799*ns, NULL, + false, "sigma"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[2]; @@ -72,32 +81,23 @@ G4SigmaPlus::G4SigmaPlus( mode[0] = new G4PhaseSpaceDecayChannel("sigma+",0.516,2,"proton","pi0"); // sigma+ -> neutron + pi+ mode[1] = new G4PhaseSpaceDecayChannel("sigma+",0.483,2,"neutron","pi+"); - - for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4SigmaPlus* G4SigmaPlus::SigmaPlusDefinition() +{ + return Definition(); +} -G4SigmaPlus G4SigmaPlus::theSigmaPlus( - "sigma+", 1.18937*GeV, 8.209e-12*MeV, eplus, - 1, +1, 0, - 2, +2, 0, - "baryon", 0, +1, 3222, - false, 0.0799*ns, NULL -); +G4SigmaPlus* G4SigmaPlus::SigmaPlus() +{ + return Definition(); +} -G4SigmaPlus* G4SigmaPlus::SigmaPlusDefinition(){return &theSigmaPlus;} - -G4SigmaPlus* G4SigmaPlus::SigmaPlus(){return &theSigmaPlus;} diff --git a/source/particles/hadrons/barions/src/G4SigmaZero.cc b/source/particles/hadrons/barions/src/G4SigmaZero.cc index a202bf69d5..87c7cd6a61 100644 --- a/source/particles/hadrons/barions/src/G4SigmaZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmaZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmaZero.cc,v 1.14 2003/06/16 16:57:13 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmaZero.cc,v 1.16 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,12 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include #include "G4SigmaZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -45,54 +44,57 @@ // ### SigmaZero ### // ###################################################################### -G4SigmaZero::G4SigmaZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4SigmaZero* G4SigmaZero::theInstance = 0; + +G4SigmaZero* G4SigmaZero::Definition() { - SetParticleSubType("sigma"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "sigma0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.19255*GeV, 8.9e-3*MeV, 0.0, + 1, +1, 0, + 2, 0, 0, + "baryon", 0, +1, 3212, + false, 7.4e-11*ns, NULL, + false, "sigma"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels // sigma0 -> lambda + gamma G4VDecayChannel* mode = new G4PhaseSpaceDecayChannel("sigma0",1.000,2,"lambda","gamma"); - table->Insert(mode); + table->Insert(mode); - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4SigmaZero* G4SigmaZero::SigmaZeroDefinition() +{ + return Definition(); +} -G4SigmaZero G4SigmaZero::theSigmaZero( - "sigma0", 1.19255*GeV, 8.9e-3*MeV, 0.0, - 1, +1, 0, - 2, 0, 0, - "baryon", 0, +1, 3212, - false, 7.4e-11*ns, NULL -); +G4SigmaZero* G4SigmaZero::SigmaZero() +{ + return Definition(); +} -G4SigmaZero* G4SigmaZero::SigmaZeroDefinition(){return &theSigmaZero;} -G4SigmaZero* G4SigmaZero::SigmaZero(){return &theSigmaZero;} diff --git a/source/particles/hadrons/barions/src/G4SigmacPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlus.cc index ba908b1b5a..f9662855c3 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmacPlus.cc,v 1.8 2004/02/13 05:53:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmacPlus.cc,v 1.10 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,71 +31,71 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4SigmacPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### SigmacPlus ### +// ### SigmacPlus ### // ###################################################################### -G4SigmacPlus::G4SigmacPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4SigmacPlus* G4SigmacPlus::theInstance = 0; + +G4SigmacPlus* G4SigmacPlus::Definition() { - SetParticleSubType("sigma_c"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "sigma_c+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4513*GeV, 2.0*MeV, +1.0*eplus, + 1, +1, 0, + 2, +1, 0, + "baryon", 0, +1, 4212, + false, 0.0*ns, NULL, + false, "sigma_c"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // sigmac+ -> lambda_c + pi0 mode[0] = new G4PhaseSpaceDecayChannel("sigma_c+",1.000,2,"lambda_c+","pi0"); - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4SigmacPlus* G4SigmacPlus::SigmacPlusDefinition() +{ + return Definition(); +} -G4SigmacPlus G4SigmacPlus::theSigmacPlus( - "sigma_c+", 2.4513*GeV, 2.0*MeV, +1.0*eplus, - 1, +1, 0, - 2, +1, 0, - "baryon", 0, +1, 4212, - false, 0.0*ns, NULL -); +G4SigmacPlus* G4SigmacPlus::SigmacPlus() +{ + return Definition(); +} -G4SigmacPlus* G4SigmacPlus::SigmacPlusDefinition(){return &theSigmacPlus;} -G4SigmacPlus* G4SigmacPlus::SigmacPlus(){return &theSigmacPlus;} diff --git a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc index 5d6370b520..b68b649577 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmacPlusPlus.cc,v 1.8 2004/02/13 05:53:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmacPlusPlus.cc,v 1.10 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,71 +31,72 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4SigmacPlusPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### SigmacPlusPlus ### +// ### SigmacPlusPlus ### // ###################################################################### -G4SigmacPlusPlus::G4SigmacPlusPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4SigmacPlusPlus* G4SigmacPlusPlus::theInstance = 0; + +G4SigmacPlusPlus* G4SigmacPlusPlus::Definition() { - SetParticleSubType("sigma_c"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "sigma_c++"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (theInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4526*GeV, 2.0*MeV, +2.0*eplus, + 1, +1, 0, + 2, +2, 0, + "baryon", 0, +1, 4222, + false, 0.0*ns, NULL, + false, "sigma_c"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // sigma_c++ -> lambda_c+ + pi+ mode[0] = new G4PhaseSpaceDecayChannel("sigma_c++",1.000,2,"lambda_c+","pi+"); - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4SigmacPlusPlus* G4SigmacPlusPlus::SigmacPlusPlusDefinition() +{ + return Definition(); +} + +G4SigmacPlusPlus* G4SigmacPlusPlus::SigmacPlusPlus() +{ + return Definition(); +} -G4SigmacPlusPlus G4SigmacPlusPlus::theSigmacPlusPlus( - "sigma_c++", 2.4526*GeV, 2.0*MeV, +2.0*eplus, - 1, +1, 0, - 2, +2, 0, - "baryon", 0, +1, 4222, - false, 0.0*ns, NULL -); -G4SigmacPlusPlus* G4SigmacPlusPlus::SigmacPlusPlusDefinition(){return &theSigmacPlusPlus;} -G4SigmacPlusPlus* G4SigmacPlusPlus::SigmacPlusPlus(){return &theSigmacPlusPlus;} diff --git a/source/particles/hadrons/barions/src/G4SigmacZero.cc b/source/particles/hadrons/barions/src/G4SigmacZero.cc index 04333ee130..bbc6c8821e 100644 --- a/source/particles/hadrons/barions/src/G4SigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmacZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SigmacZero.cc,v 1.13 2004/02/13 05:53:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SigmacZero.cc,v 1.15 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,14 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4SigmacZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -47,57 +44,59 @@ // ### SigmacZero ### // ###################################################################### -G4SigmacZero::G4SigmacZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4SigmacZero* G4SigmacZero::theInstance = 0; + +G4SigmacZero* G4SigmacZero::Definition() { - SetParticleSubType("sigma_c"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "sigma_c0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4521*GeV, 1.5*MeV, +0.0*eplus, + 1, +1, 0, + 2, 0, 0, + "baryon", 0, +1, 4112, + false, 0.0*ns, NULL, + false, "sigma_c"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // sigmac0 -> lambda_c+ + pi- mode[0] = new G4PhaseSpaceDecayChannel("sigma_c0",1.000,2,"lambda_c+","pi-"); - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4SigmacZero* G4SigmacZero::SigmacZeroDefinition() +{ + return Definition(); +} -G4SigmacZero G4SigmacZero::theSigmacZero( - "sigma_c0", 2.4521*GeV, 1.5*MeV, +0.0*eplus, - 1, +1, 0, - 2, 0, 0, - "baryon", 0, +1, 4112, - false, 0.0*ns, NULL -); - -G4SigmacZero* G4SigmacZero::SigmacZeroDefinition(){return &theSigmacZero;} -G4SigmacZero* G4SigmacZero::SigmacZero(){return &theSigmacZero;} +G4SigmacZero* G4SigmacZero::SigmacZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/barions/src/G4XiMinus.cc b/source/particles/hadrons/barions/src/G4XiMinus.cc index 9d560a5052..f324dbeeab 100644 --- a/source/particles/hadrons/barions/src/G4XiMinus.cc +++ b/source/particles/hadrons/barions/src/G4XiMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XiMinus.cc,v 1.9 2003/06/16 16:57:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XiMinus.cc,v 1.11 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4XiMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,56 +44,58 @@ // ### XiMinus ### // ###################################################################### -G4XiMinus::G4XiMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4XiMinus* G4XiMinus::theInstance = 0; + +G4XiMinus* G4XiMinus::Definition() { - SetParticleSubType("xi"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "xi-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.32132*GeV, 4.02e-12*MeV, -1*eplus, + 1, +1, 0, + 1, -1, 0, + "baryon", 0, +1, 3312, + false, 0.1639*ns, NULL, + false, "xi"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // xi- -> lambda + pi- mode[0] = new G4PhaseSpaceDecayChannel("xi-",1.000,2,"lambda","pi-"); - - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4XiMinus* G4XiMinus::XiMinusDefinition() +{ + return Definition(); +} -G4XiMinus G4XiMinus::theXiMinus( - "xi-", 1.32132*GeV, 4.02e-12*MeV, -1*eplus, - 1, +1, 0, - 1, -1, 0, - "baryon", 0, +1, 3312, - false, 0.1639*ns, NULL -); +G4XiMinus* G4XiMinus::XiMinus() +{ + return Definition(); +} -G4XiMinus* G4XiMinus::XiMinusDefinition(){return &theXiMinus;} - -G4XiMinus* G4XiMinus::XiMinus(){return &theXiMinus;} diff --git a/source/particles/hadrons/barions/src/G4XiZero.cc b/source/particles/hadrons/barions/src/G4XiZero.cc index 2aa5439e73..e2c5a6c568 100644 --- a/source/particles/hadrons/barions/src/G4XiZero.cc +++ b/source/particles/hadrons/barions/src/G4XiZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XiZero.cc,v 1.14 2003/06/16 16:57:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XiZero.cc,v 1.16 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,13 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 Feb 1997 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4XiZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -46,56 +44,59 @@ // ### XiZero ### // ###################################################################### -G4XiZero::G4XiZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4XiZero* G4XiZero::theInstance = 0; + +G4XiZero* G4XiZero::Definition() { - SetParticleSubType("xi"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "xi0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.3149*GeV, 2.27e-12*MeV, 0.0, + 1, +1, 0, + 1, +1, 0, + "baryon", 0, +1, 3322, + false, 0.290*ns, NULL, + false, "xi"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[1]; // xi0 -> lambda + pi0 mode[0] = new G4PhaseSpaceDecayChannel("xi0",1.000,2,"lambda","pi0"); - - for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); + + for (G4int index=0; index <1; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4XiZero* G4XiZero::XiZeroDefinition() +{ + return Definition(); +} -G4XiZero G4XiZero::theXiZero( - "xi0", 1.3149*GeV, 2.27e-12*MeV, 0.0, - 1, +1, 0, - 1, +1, 0, - "baryon", 0, +1, 3322, - false, 0.290*ns, NULL -); +G4XiZero* G4XiZero::XiZero() +{ + return Definition(); +} -G4XiZero* G4XiZero::XiZeroDefinition(){return &theXiZero;} -G4XiZero* G4XiZero::XiZero(){return &theXiZero;} diff --git a/source/particles/hadrons/barions/src/G4XicPlus.cc b/source/particles/hadrons/barions/src/G4XicPlus.cc index 81da83f616..9bd8abdad5 100644 --- a/source/particles/hadrons/barions/src/G4XicPlus.cc +++ b/source/particles/hadrons/barions/src/G4XicPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XicPlus.cc,v 1.9 2004/02/13 05:53:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XicPlus.cc,v 1.11 2005/01/14 03:49:11 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,15 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// Modified PDG encoding H.Kurashige 24 Sep. 98 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4XicPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -48,41 +44,46 @@ // ### XicPlus ### // ###################################################################### -G4XicPlus::G4XicPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4XicPlus* G4XicPlus::theInstance = 0; + +G4XicPlus* G4XicPlus::Definition() { - SetParticleSubType("xi_c"); + if (theInstance !=0) return theInstance; + const G4String name = "xi_c+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4663*GeV, 1.49e-9*MeV, +1.*eplus, + 1, +1, 0, + 1, +1, 0, + "baryon", 0, +1, 4232, + false, 0.35e-3*ns, NULL, + false, "xi_c"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4XicPlus* G4XicPlus::XicPlusDefinition() +{ + return Definition(); +} -G4XicPlus G4XicPlus::theXicPlus( - "xi_c+", 2.4663*GeV, 1.49e-9*MeV, +1.*eplus, - 1, +1, 0, - 1, +1, 0, - "baryon", 0, +1, 4232, - false, 0.35e-3*ns, NULL -); +G4XicPlus* G4XicPlus::XicPlus() +{ + return Definition(); +} -G4XicPlus* G4XicPlus::XicPlusDefinition(){return &theXicPlus;} -G4XicPlus* G4XicPlus::XicPlus(){return &theXicPlus;} diff --git a/source/particles/hadrons/barions/src/G4XicZero.cc b/source/particles/hadrons/barions/src/G4XicZero.cc index e25d7395ce..4c2713abac 100644 --- a/source/particles/hadrons/barions/src/G4XicZero.cc +++ b/source/particles/hadrons/barions/src/G4XicZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XicZero.cc,v 1.14 2004/02/13 05:53:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XicZero.cc,v 1.16 2005/01/14 03:49:12 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,59 +31,59 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 14 June 1997 -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// Modified PDG encoding H.Kurashige 24 Sep. 98 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4XicZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### XicZero ### +// ### XicZero ### // ###################################################################### -G4XicZero::G4XicZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VBaryon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4XicZero* G4XicZero::theInstance = 0; + +G4XicZero* G4XicZero::Definition() { - SetParticleSubType("xi_c"); + if (theInstance !=0) return theInstance; + const G4String name = "xi_c0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 2.4718*GeV, 6.7e-9*MeV, 0.0, + 1, +1, 0, + 1, -1, 0, + "baryon", 0, +1, 4132, + false, 0.098e-3*ns, NULL, + false, "xi_c"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4XicZero* G4XicZero::XicZeroDefinition() +{ + return Definition(); +} -G4XicZero G4XicZero::theXicZero( - "xi_c0", 2.4718*GeV, 6.7e-9*MeV, 0.0, - 1, +1, 0, - 1, -1, 0, - "baryon", 0, +1, 4132, - false, 0.098e-3*ns, NULL -); - -G4XicZero* G4XicZero::XicZeroDefinition(){return &theXicZero;} -G4XicZero* G4XicZero::XicZero(){return &theXicZero;} +G4XicZero* G4XicZero::XicZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/ions/include/G4Alpha.hh b/source/particles/hadrons/ions/include/G4Alpha.hh index ca65e08fb8..940d6ba897 100644 --- a/source/particles/hadrons/ions/include/G4Alpha.hh +++ b/source/particles/hadrons/ions/include/G4Alpha.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Alpha.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Alpha.hh,v 1.9 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,47 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4Alpha_h #define G4Alpha_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VIon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### ALPHA ### // ###################################################################### -class G4Alpha : public G4VIon +class G4Alpha : public G4ParticleDefinition { private: - static G4Alpha theAlpha; + static G4Alpha* theInstance; + G4Alpha(){} + ~G4Alpha(){} public: - G4Alpha( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~G4Alpha(); - - static G4Alpha* AlphaDefinition(); - static G4Alpha* Alpha(); + static G4Alpha* Definition(); + static G4Alpha* AlphaDefinition(); + static G4Alpha* Alpha(); }; #endif diff --git a/source/particles/hadrons/ions/include/G4Deuteron.hh b/source/particles/hadrons/ions/include/G4Deuteron.hh index 085bf03d30..66052f7d57 100644 --- a/source/particles/hadrons/ions/include/G4Deuteron.hh +++ b/source/particles/hadrons/ions/include/G4Deuteron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Deuteron.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Deuteron.hh,v 1.9 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,45 +31,29 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4Deuteron_h #define G4Deuteron_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VIon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### DEUTERON ### // ###################################################################### -class G4Deuteron : public G4VIon +class G4Deuteron : public G4ParticleDefinition { private: - static G4Deuteron theDeuteron; + static G4Deuteron* theInstance; + G4Deuteron(){} + ~G4Deuteron(){} public: - G4Deuteron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~G4Deuteron(); - + static G4Deuteron* Definition(); static G4Deuteron* DeuteronDefinition(); static G4Deuteron* Deuteron(); }; diff --git a/source/particles/hadrons/ions/include/G4GenericIon.hh b/source/particles/hadrons/ions/include/G4GenericIon.hh index 95cbeb0127..572cc4598d 100644 --- a/source/particles/hadrons/ions/include/G4GenericIon.hh +++ b/source/particles/hadrons/ions/include/G4GenericIon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GenericIon.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4GenericIon.hh,v 1.9 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,44 +31,37 @@ // History: first implementation, based on object model of // 4-th Dec 1998, H.Kurashige // **************************************************************** +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// **************************************************************** // This class is used only by G4IonTable and not for tracking // G4IonTable creates various ions other than alpha,deuteron,triton, // and He3. Processes for these ions will be same as ones for // this "GenericIon". So, user should register processes for ions // to this class in his/her UserPhysicsList +// ---------------------------------------------------------------------- #ifndef G4GenericIon_h #define G4GenericIon_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VIon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### GenericIon ### // ###################################################################### -class G4GenericIon : public G4VIon +class G4GenericIon : public G4ParticleDefinition { private: - static G4GenericIon theGenericIon; + static G4GenericIon* theInstance; + G4GenericIon(){} + ~G4GenericIon(){} public: - G4GenericIon( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~G4GenericIon(); - - static G4GenericIon* GenericIonDefinition(); - static G4GenericIon* GenericIon(); + static G4GenericIon* Definition(); + static G4GenericIon* GenericIonDefinition(); + static G4GenericIon* GenericIon(); }; #endif diff --git a/source/particles/hadrons/ions/include/G4He3.hh b/source/particles/hadrons/ions/include/G4He3.hh index 40054c3485..3d3bee85b7 100644 --- a/source/particles/hadrons/ions/include/G4He3.hh +++ b/source/particles/hadrons/ions/include/G4He3.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3.hh,v 1.7 2001/10/16 08:16:06 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4He3.hh,v 1.9 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,45 +31,32 @@ // History: first implementation, based on object model of // 24-th April 1998,H.Kurashige // **************************************************************** -// ---------------------------------------------------------------------- -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. +// New implementation as a utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------- #ifndef G4He3_h #define G4He3_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VIon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### He3 ### +// ### He3 ### // ###################################################################### -class G4He3 : public G4VIon +class G4He3 : public G4ParticleDefinition { private: - static G4He3 theHe3; + static G4He3* theInstance; + G4He3(){} + ~G4He3(){} public: - G4He3( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - virtual ~G4He3(); - - static G4He3* He3Definition(); - static G4He3* He3(); + static G4He3* Definition(); + static G4He3* He3Definition(); + static G4He3* He3(); }; - #endif diff --git a/source/particles/hadrons/ions/include/G4IonConstructor.hh b/source/particles/hadrons/ions/include/G4IonConstructor.hh index 6514e9eb9f..29e1b23bab 100644 --- a/source/particles/hadrons/ions/include/G4IonConstructor.hh +++ b/source/particles/hadrons/ions/include/G4IonConstructor.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IonConstructor.hh,v 1.3 2001/07/11 10:01:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IonConstructor.hh,v 1.4 2005/09/30 22:59:05 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,17 +37,16 @@ class G4IonConstructor { //This class is a utility class for construction - //short lived particles public: G4IonConstructor(); ~G4IonConstructor(); public: - void ConstructParticle(); + static void ConstructParticle(); protected: - void ConstructLightIons(); + static void ConstructLightIons(); }; #endif diff --git a/source/particles/hadrons/ions/include/G4Triton.hh b/source/particles/hadrons/ions/include/G4Triton.hh index e1a29f0432..7ab8fe2979 100644 --- a/source/particles/hadrons/ions/include/G4Triton.hh +++ b/source/particles/hadrons/ions/include/G4Triton.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Triton.hh,v 1.7 2001/10/16 08:16:06 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Triton.hh,v 1.9 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,50 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VIon -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4Triton_h #define G4Triton_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VIon.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### TRITON ### // ###################################################################### -class G4Triton : public G4VIon +class G4Triton : public G4ParticleDefinition { private: - static G4Triton theTriton; + static G4Triton* theInstance; + G4Triton(){} + ~G4Triton(){} public: - G4Triton( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - - virtual ~G4Triton(); - - static G4Triton* TritonDefinition(); - static G4Triton* Triton(); - + static G4Triton* Definition(); + static G4Triton* TritonDefinition(); + static G4Triton* Triton(); }; - #endif diff --git a/source/particles/hadrons/ions/include/G4VIon.hh b/source/particles/hadrons/ions/include/G4VIon.hh deleted file mode 100644 index 2db3adc91e..0000000000 --- a/source/particles/hadrons/ions/include/G4VIon.hh +++ /dev/null @@ -1,104 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VIon.hh,v 1.6 2004/07/26 08:17:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// ------------------------------------------------------------ -// Revised, Hisaya Kurashige, 16 Dec 1996 -// Revised, Hisaya Kurashige, 24 Feb 1997 -// ---------------------------------------------------------------- - -#ifndef G4VIon_h -#define G4VIon_h 1 - -#include "G4ios.hh" -#include "globals.hh" - -#include "G4ParticleDefinition.hh" - -class G4VIon : public G4ParticleDefinition -{ - // A virtual class for Ions particles. It defines - // public methods which describe the behavior of a - // ion. - - private: - - const G4VIon & operator=(const G4VIon &right); - - public: - - G4VIon(const G4String& aName, - G4double mass, - G4double width, - G4double charge, - G4int iSpin, - G4int iParity, - G4int iConjugation, - G4int iIsospin, - G4int iIsospinZ, - G4int gParity, - const G4String& pType, - G4int lepton, - G4int baryon, - G4int encoding, - G4bool stable, - G4double lifetime, - G4DecayTable *decaytable) - : G4ParticleDefinition(aName, mass, width, charge, iSpin, iParity, - iConjugation, iIsospin, iIsospinZ, gParity, - pType, lepton, baryon, encoding, stable, - lifetime, decaytable) {}; - - virtual ~G4VIon() {}; - - public: //With Description - G4int GetAtomicNumber() const; - G4int GetAtomicMass() const; - - G4double GetExcitationEnergy() const {return 0.;} - void SetExcitationEnergy(G4double ){} - // These two methods are dummy because all particles derived from - // G4VIon is "groud state" nuclei - -}; -inline - G4int G4VIon::GetAtomicNumber() const -{ - return int(GetPDGCharge()/eplus); -} - -inline - G4int G4VIon::GetAtomicMass() const -{ - return GetBaryonNumber(); -} - -#endif diff --git a/source/particles/hadrons/ions/src/G4Alpha.cc b/source/particles/hadrons/ions/src/G4Alpha.cc index e936f75fcd..ef7f18c8cc 100644 --- a/source/particles/hadrons/ions/src/G4Alpha.cc +++ b/source/particles/hadrons/ions/src/G4Alpha.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Alpha.cc,v 1.8 2003/06/16 16:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Alpha.cc,v 1.10 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,59 +31,60 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added by J.L.Chuma, TRIUMF, 27 June 1996 -// Added G4Alpha::AlphaDefinition() by H.Kurashige 27 June 1996 -// Fixed parameters by H.Kurashige, 25 Apr 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4Alpha.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### ALPHA ### // ###################################################################### -G4Alpha::G4Alpha( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Alpha* G4Alpha::theInstance = 0; + +G4Alpha* G4Alpha::Definition() { - SetParticleSubType("static"); + if (theInstance !=0) return theInstance; + const G4String name = "alpha"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 3.727417*GeV, 0.0*MeV, +2.0*eplus, + 0, +1, 0, + 0, 0, 0, + "nucleus", 0, +4, 0, + true, -1.0, NULL, + false, "static" + ); + + anInstance->SetAtomicNumber(2); + anInstance->SetAtomicMass(4); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -G4Alpha::~G4Alpha() +G4Alpha* G4Alpha::AlphaDefinition() { + return Definition(); } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4Alpha* G4Alpha::Alpha() +{ + return Definition(); +} -G4Alpha G4Alpha::theAlpha( - "alpha", 3.727417*GeV, 0.0*MeV, +2.0*eplus, - 0, +1, 0, - 0, 0, 0, - "nucleus", 0, +4, 0, - true, -1.0, NULL -); -G4Alpha* G4Alpha::AlphaDefinition(){return &theAlpha;} -G4Alpha* G4Alpha::Alpha(){return &theAlpha;} diff --git a/source/particles/hadrons/ions/src/G4Deuteron.cc b/source/particles/hadrons/ions/src/G4Deuteron.cc index 45954b8c6d..b49e360c30 100644 --- a/source/particles/hadrons/ions/src/G4Deuteron.cc +++ b/source/particles/hadrons/ions/src/G4Deuteron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Deuteron.cc,v 1.8 2003/06/16 16:57:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Deuteron.cc,v 1.10 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,59 +31,60 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added by J.L.Chuma, TRIUMF, 27 June 1996 -// Added G4Deuteron::DeuteronDefinition() by H.Kurashige, 27 June 1996 -// Fixed parameters H. Kurashige, 25 Apr 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4Deuteron.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### DEUTERON ### // ###################################################################### -G4Deuteron::G4Deuteron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Deuteron* G4Deuteron::theInstance = 0; + +G4Deuteron* G4Deuteron::Definition() { - SetParticleSubType("static"); + if (theInstance !=0) return theInstance; + const G4String name = "deuteron"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 1.875613*GeV, 0.0*MeV, +1.0*eplus, + 2, +1, 0, + 0, 0, 0, + "nucleus", 0, +2, 0, + true, -1.0, NULL, + false, "static" + ); + + anInstance->SetAtomicNumber(1); + anInstance->SetAtomicMass(2); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -G4Deuteron::~G4Deuteron() +G4Deuteron* G4Deuteron::DeuteronDefinition() { + return Definition(); } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4Deuteron* G4Deuteron::Deuteron() +{ + return Definition(); +} -G4Deuteron G4Deuteron::theDeuteron( - "deuteron", 1.875613*GeV, 0.0*MeV, +1.0*eplus, - 2, +1, 0, - 0, 0, 0, - "nucleus", 0, +2, 0, - true, -1.0, NULL -); -G4Deuteron* G4Deuteron::DeuteronDefinition(){return &theDeuteron;} -G4Deuteron* G4Deuteron::Deuteron(){return &theDeuteron;} diff --git a/source/particles/hadrons/ions/src/G4GenericIon.cc b/source/particles/hadrons/ions/src/G4GenericIon.cc index bb4b41c6ca..69fea1793d 100644 --- a/source/particles/hadrons/ions/src/G4GenericIon.cc +++ b/source/particles/hadrons/ions/src/G4GenericIon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GenericIon.cc,v 1.8 2003/06/16 16:57:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4GenericIon.cc,v 1.10 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,59 +31,59 @@ // History: first implementation, based on object model of // 4 Dec. 98 by H.Kurashige // ---------------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4GenericIon.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### GenericIon ### +// ### GenericIon ### // ###################################################################### +G4GenericIon* G4GenericIon::theInstance = 0; -G4GenericIon::G4GenericIon( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4GenericIon* G4GenericIon::Definition() { - SetParticleSubType("generic"); -} - -G4GenericIon::~G4GenericIon() -{ -} - + if (theInstance !=0) return theInstance; + const G4String name = "GenericIon"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding //!!!! -//!!!! this particle is not used for tracking +//!!!! this particle should not be used for tracking //!!!! all properties except name and type are meaningless //!!!! -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4GenericIon G4GenericIon::theGenericIon( - "GenericIon", 0.9382723*GeV, 0.0*MeV, eplus, + anInstance = new G4ParticleDefinition( + name, 0.9382723*GeV, 0.0*MeV, eplus, 1, +1, 0, 1, +1, 0, "nucleus", 0, +1, 0, - true, -1.0, NULL -); + true, -1.0, NULL, + false, "generic" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} + +G4GenericIon* G4GenericIon::GenericIonDefinition() +{ + return Definition(); +} + +G4GenericIon* G4GenericIon::GenericIon() +{ + return Definition(); +} -G4GenericIon* G4GenericIon::GenericIonDefinition(){return &theGenericIon;} -G4GenericIon* G4GenericIon::GenericIon(){return &theGenericIon;} diff --git a/source/particles/hadrons/ions/src/G4He3.cc b/source/particles/hadrons/ions/src/G4He3.cc index 29b066d48b..8d5b3f8b5c 100644 --- a/source/particles/hadrons/ions/src/G4He3.cc +++ b/source/particles/hadrons/ions/src/G4He3.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3.cc,v 1.8 2003/06/16 16:57:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4He3.cc,v 1.10 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,56 +31,60 @@ // History: first implementation, based on object model of // 24th April 1998, H.Kurashige // ********************************************************************** +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include #include "G4He3.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### He3 ### +// ### He3 ### // ###################################################################### -G4He3::G4He3( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("static"); -} +G4He3* G4He3::theInstance = 0; -G4He3::~G4He3() +G4He3* G4He3::Definition() { + if (theInstance !=0) return theInstance; + const G4String name = "He3"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 2.80923*GeV, 0.0*MeV, +2.0*eplus, + 1, +1, 0, + 0, 0, 0, + "nucleus", 0, +3, 0, + true, -1.0, NULL, + false, "static" + ); + + anInstance->SetAtomicNumber(2); + anInstance->SetAtomicMass(3); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} + +G4He3* G4He3::He3Definition() +{ + return Definition(); +} + +G4He3* G4He3::He3() +{ + return Definition(); } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4He3 G4He3::theHe3( - "He3", 2.80923*GeV, 0.0*MeV, +2.0*eplus, - 1, +1, 0, - 0, 0, 0, - "nucleus", 0, +3, 0, - true, -1.0, NULL -); - -G4He3* G4He3::He3Definition(){return &theHe3;} -G4He3* G4He3::He3(){return &theHe3;} diff --git a/source/particles/hadrons/ions/src/G4IonConstructor.cc b/source/particles/hadrons/ions/src/G4IonConstructor.cc index 3491a61c48..d3f25cd485 100644 --- a/source/particles/hadrons/ions/src/G4IonConstructor.cc +++ b/source/particles/hadrons/ions/src/G4IonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonConstructor.cc,v 1.3 2001/07/11 10:01:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4Triton.cc b/source/particles/hadrons/ions/src/G4Triton.cc index 04d2a30dd5..86e94d5ef5 100644 --- a/source/particles/hadrons/ions/src/G4Triton.cc +++ b/source/particles/hadrons/ions/src/G4Triton.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Triton.cc,v 1.8 2003/06/16 16:57:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Triton.cc,v 1.10 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,58 +31,60 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added by J.L.Chuma, TRIUMF, 27 June 1996 -// Add G4Triton::TritonDefinition() by H.Kurashige 27 June 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4Triton.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### TRITON ### // ###################################################################### -G4Triton::G4Triton( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VIon( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Triton* G4Triton::theInstance = 0; + +G4Triton* G4Triton::Definition() { - SetParticleSubType("static"); + if (theInstance !=0) return theInstance; + const G4String name = "triton"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 2.80925*GeV, 0.0*MeV, +1.0*eplus, + 1, +1, 0, + 0, 0, 0, + "nucleus", 0, +3, 0, + true, -1.0, NULL, + false, "static" + ); + + anInstance->SetAtomicNumber(1); + anInstance->SetAtomicMass(3); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -G4Triton::~G4Triton() +G4Triton* G4Triton::TritonDefinition() { + return Definition(); } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4Triton* G4Triton::Triton() +{ + return Definition(); +} -G4Triton G4Triton::theTriton( - "triton", 2.80925*GeV, 0.0*MeV, +1.0*eplus, - 1, +1, 0, - 0, 0, 0, - "nucleus", 0, +3, 0, - true, -1.0, NULL -); -G4Triton* G4Triton::TritonDefinition(){return &theTriton;} -G4Triton* G4Triton::Triton(){return &theTriton;} diff --git a/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh index 4d9b552948..ba43b65b1f 100644 --- a/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiBMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiBMesonZero.hh,v 1.10 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiBMesonZero_h #define G4AntiBMesonZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiBMesonZero ### // ###################################################################### -class G4AntiBMesonZero : public G4VMeson +class G4AntiBMesonZero : public G4ParticleDefinition { private: - static G4AntiBMesonZero theAntiBMesonZero; - - private: // constructors are hide as private - G4AntiBMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiBMesonZero* theInstance; + G4AntiBMesonZero(){} + ~G4AntiBMesonZero(){} public: - virtual ~G4AntiBMesonZero(){} - + static G4AntiBMesonZero* Definition(); static G4AntiBMesonZero* AntiBMesonZeroDefinition(); static G4AntiBMesonZero* AntiBMesonZero(); - }; - #endif diff --git a/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh index 0de2948dc3..1c8788e6f7 100644 --- a/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiBsMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiBsMesonZero.hh,v 1.10 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiBsMesonZero_h #define G4AntiBsMesonZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### AntiBsMesonZero ### +// ### AntiBsMesonZero ### // ###################################################################### -class G4AntiBsMesonZero : public G4VMeson +class G4AntiBsMesonZero : public G4ParticleDefinition { private: - static G4AntiBsMesonZero theAntiBsMesonZero; - - private: // constructors are hide as private - G4AntiBsMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiBsMesonZero* theInstance; + G4AntiBsMesonZero(){} + ~G4AntiBsMesonZero(){} public: - virtual ~G4AntiBsMesonZero(){} - + static G4AntiBsMesonZero* Definition(); static G4AntiBsMesonZero* AntiBsMesonZeroDefinition(); static G4AntiBsMesonZero* AntiBsMesonZero(); - }; - #endif diff --git a/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh index 7fee4de00d..40ed507e18 100644 --- a/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiDMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiDMesonZero.hh,v 1.10 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiDMesonZero_h #define G4AntiDMesonZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### AntiDMesonZero ### // ###################################################################### -class G4AntiDMesonZero : public G4VMeson +class G4AntiDMesonZero : public G4ParticleDefinition { private: - static G4AntiDMesonZero theAntiDMesonZero; - - private: // constructors are hide as private - G4AntiDMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiDMesonZero* theInstance; + G4AntiDMesonZero(){} + ~G4AntiDMesonZero(){} public: - virtual ~G4AntiDMesonZero() {} - + static G4AntiDMesonZero* Definition(); static G4AntiDMesonZero* AntiDMesonZeroDefinition(); static G4AntiDMesonZero* AntiDMesonZero(); - }; - #endif diff --git a/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh b/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh index d579998ad3..778dadc52c 100644 --- a/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiKaonZero.hh,v 1.10 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiKaonZero.hh,v 1.12 2005/01/14 03:49:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,51 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - - #ifndef G4AntiKaonZero_h #define G4AntiKaonZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### ANTI KAONZERO ### // ###################################################################### -class G4AntiKaonZero : public G4VMeson +class G4AntiKaonZero : public G4ParticleDefinition { private: - static G4AntiKaonZero theAntiKaonZero; - - private: // constructors are hide as private - - G4AntiKaonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiKaonZero* theInstance; + G4AntiKaonZero(){} + ~G4AntiKaonZero(){} public: - virtual ~G4AntiKaonZero() {} - + static G4AntiKaonZero* Definition(); static G4AntiKaonZero* AntiKaonZeroDefinition(); static G4AntiKaonZero* AntiKaonZero(); - }; #endif diff --git a/source/particles/hadrons/mesons/include/G4BMesonMinus.hh b/source/particles/hadrons/mesons/include/G4BMesonMinus.hh index b64920a171..3a29cae8fd 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BMesonMinus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BMesonMinus.hh,v 1.7 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,45 +31,29 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4BMesonMinus_h #define G4BMesonMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### BMesonMinus ### // ###################################################################### -class G4BMesonMinus : public G4VMeson +class G4BMesonMinus : public G4ParticleDefinition { private: - static G4BMesonMinus theBMesonMinus; - - private: // constructors are hide as private - G4BMesonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4BMesonMinus* theInstance; + G4BMesonMinus(){} + ~G4BMesonMinus(){} public: - virtual ~G4BMesonMinus(){} - + static G4BMesonMinus* Definition(); static G4BMesonMinus* BMesonMinusDefinition(); static G4BMesonMinus* BMesonMinus(); }; diff --git a/source/particles/hadrons/mesons/include/G4BMesonPlus.hh b/source/particles/hadrons/mesons/include/G4BMesonPlus.hh index 2b0edf0602..6b512135bc 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BMesonPlus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BMesonPlus.hh,v 1.7 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,45 +31,29 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4BMesonPlus_h #define G4BMesonPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### BMesonPLUS ### // ###################################################################### -class G4BMesonPlus : public G4VMeson +class G4BMesonPlus : public G4ParticleDefinition { private: - static G4BMesonPlus theBMesonPlus; - - private: // constructors are hide as private - G4BMesonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4BMesonPlus* theInstance; + G4BMesonPlus(){} + ~G4BMesonPlus(){} public: - virtual ~G4BMesonPlus(){} - + static G4BMesonPlus* Definition(); static G4BMesonPlus* BMesonPlusDefinition(); static G4BMesonPlus* BMesonPlus(); }; diff --git a/source/particles/hadrons/mesons/include/G4BMesonZero.hh b/source/particles/hadrons/mesons/include/G4BMesonZero.hh index 2f931b5bea..5aa296cf75 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BMesonZero.hh,v 1.10 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4BMesonZero_h #define G4BMesonZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### BMesonZero ### // ###################################################################### -class G4BMesonZero : public G4VMeson +class G4BMesonZero : public G4ParticleDefinition { private: - static G4BMesonZero theBMesonZero; - - private: // constructors are hide as private - G4BMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4BMesonZero* theInstance; + G4BMesonZero(){} + ~G4BMesonZero(){} public: - virtual ~G4BMesonZero(){} - + static G4BMesonZero* Definition(); static G4BMesonZero* BMesonZeroDefinition(); static G4BMesonZero* BMesonZero(); - }; #endif diff --git a/source/particles/hadrons/mesons/include/G4BsMesonZero.hh b/source/particles/hadrons/mesons/include/G4BsMesonZero.hh index 3d5469559e..43f705f5b7 100644 --- a/source/particles/hadrons/mesons/include/G4BsMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4BsMesonZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BsMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BsMesonZero.hh,v 1.10 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4BsMesonZero_h #define G4BsMesonZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### BsMesonZero ### +// ### BsMesonZero ### // ###################################################################### -class G4BsMesonZero : public G4VMeson +class G4BsMesonZero : public G4ParticleDefinition { private: - static G4BsMesonZero theBsMesonZero; - - private: // constructors are hide as private - G4BsMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4BsMesonZero* theInstance; + G4BsMesonZero(){} + ~G4BsMesonZero(){} public: - virtual ~G4BsMesonZero(){} - + static G4BsMesonZero* Definition(); static G4BsMesonZero* BsMesonZeroDefinition(); static G4BsMesonZero* BsMesonZero(); - }; #endif diff --git a/source/particles/hadrons/mesons/include/G4DMesonMinus.hh b/source/particles/hadrons/mesons/include/G4DMesonMinus.hh index d5433777d0..f4960846df 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DMesonMinus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DMesonMinus.hh,v 1.7 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,45 +31,29 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4DMesonMinus_h #define G4DMesonMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### DMesonMinus ### // ###################################################################### -class G4DMesonMinus : public G4VMeson +class G4DMesonMinus : public G4ParticleDefinition { private: - static G4DMesonMinus theDMesonMinus; - - private: // constructors are hide as private - G4DMesonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4DMesonMinus* theInstance; + G4DMesonMinus(){} + ~G4DMesonMinus(){} public: - virtual ~G4DMesonMinus() {} - + static G4DMesonMinus* Definition(); static G4DMesonMinus* DMesonMinusDefinition(); static G4DMesonMinus* DMesonMinus(); }; diff --git a/source/particles/hadrons/mesons/include/G4DMesonPlus.hh b/source/particles/hadrons/mesons/include/G4DMesonPlus.hh index df85b428e8..4e2faf2549 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DMesonPlus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DMesonPlus.hh,v 1.7 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,45 +31,29 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4DMesonPlus_h #define G4DMesonPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### DMesonPLUS ### // ###################################################################### -class G4DMesonPlus : public G4VMeson +class G4DMesonPlus : public G4ParticleDefinition { private: - static G4DMesonPlus theDMesonPlus; - - private: // constructors are hide as private - G4DMesonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4DMesonPlus* theInstance; + G4DMesonPlus(){} + ~G4DMesonPlus(){} public: - virtual ~G4DMesonPlus(){} - + static G4DMesonPlus* Definition(); static G4DMesonPlus* DMesonPlusDefinition(); static G4DMesonPlus* DMesonPlus(); }; diff --git a/source/particles/hadrons/mesons/include/G4DMesonZero.hh b/source/particles/hadrons/mesons/include/G4DMesonZero.hh index 5bc540560a..e35cf38ba9 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DMesonZero.hh,v 1.10 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4DMesonZero_h #define G4DMesonZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### DMesonZero ### // ###################################################################### -class G4DMesonZero : public G4VMeson +class G4DMesonZero : public G4ParticleDefinition { private: - static G4DMesonZero theDMesonZero; - - private: // constructors are hide as private - G4DMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4DMesonZero* theInstance; + G4DMesonZero(){} + ~G4DMesonZero(){} public: - virtual ~G4DMesonZero(){} - + static G4DMesonZero* Definition(); static G4DMesonZero* DMesonZeroDefinition(); static G4DMesonZero* DMesonZero(); - }; #endif diff --git a/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh b/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh index e138c2d178..6dfab176a5 100644 --- a/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DsMesonMinus.hh,v 1.5 2001/10/15 10:06:13 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DsMesonMinus.hh,v 1.7 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,45 +31,29 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4DsMesonMinus_h #define G4DsMesonMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### DsMesonMinus ### // ###################################################################### -class G4DsMesonMinus : public G4VMeson +class G4DsMesonMinus : public G4ParticleDefinition { private: - static G4DsMesonMinus theDsMesonMinus; - - private: // constructors are hide as private - G4DsMesonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4DsMesonMinus* theInstance; + G4DsMesonMinus(){} + ~G4DsMesonMinus(){} public: - virtual ~G4DsMesonMinus(){} - + static G4DsMesonMinus* Definition(); static G4DsMesonMinus* DsMesonMinusDefinition(); static G4DsMesonMinus* DsMesonMinus(); }; diff --git a/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh b/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh index 4a83363cca..acdc651f13 100644 --- a/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DsMesonPlus.hh,v 1.5 2001/10/15 10:06:13 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DsMesonPlus.hh,v 1.7 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,45 +31,29 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4DsMesonPlus_h #define G4DsMesonPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### DsMesonPlus ### +// ### DsMesonPlus ### // ###################################################################### -class G4DsMesonPlus : public G4VMeson +class G4DsMesonPlus : public G4ParticleDefinition { private: - static G4DsMesonPlus theDsMesonPlus; - - private: // constructors are hide as private - G4DsMesonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4DsMesonPlus* theInstance; + G4DsMesonPlus(){} + ~G4DsMesonPlus(){} public: - virtual ~G4DsMesonPlus(){} - + static G4DsMesonPlus* Definition(); static G4DsMesonPlus* DsMesonPlusDefinition(); static G4DsMesonPlus* DsMesonPlus(); }; diff --git a/source/particles/hadrons/mesons/include/G4Eta.hh b/source/particles/hadrons/mesons/include/G4Eta.hh index deec66cda0..56d1330a29 100644 --- a/source/particles/hadrons/mesons/include/G4Eta.hh +++ b/source/particles/hadrons/mesons/include/G4Eta.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Eta.hh,v 1.9 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Eta.hh,v 1.11 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4Eta_h #define G4Eta_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### ETA ### // ###################################################################### -class G4Eta : public G4VMeson +class G4Eta : public G4ParticleDefinition { private: - static G4Eta theEta; - - private: // constructors are hide as private - G4Eta( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4Eta* theInstance; + G4Eta(){} + ~G4Eta(){} public: - virtual ~G4Eta(){} - - static G4Eta* EtaDefinition(); - static G4Eta* Eta(); - + static G4Eta* Definition(); + static G4Eta* EtaDefinition(); + static G4Eta* Eta(); }; #endif diff --git a/source/particles/hadrons/mesons/include/G4EtaPrime.hh b/source/particles/hadrons/mesons/include/G4EtaPrime.hh index bad9486ad6..7d9302e225 100644 --- a/source/particles/hadrons/mesons/include/G4EtaPrime.hh +++ b/source/particles/hadrons/mesons/include/G4EtaPrime.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EtaPrime.hh,v 1.9 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EtaPrime.hh,v 1.11 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -30,47 +30,31 @@ // // History: first implementation, 8 June 1998 Hisaya Kurashige // ********************************************************************** -// ------------------------------------------------------------ - -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. +// New implementation as a utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------- #ifndef G4EtaPrime_h #define G4EtaPrime_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### EtaPrime ### // ###################################################################### -class G4EtaPrime : public G4VMeson +class G4EtaPrime : public G4ParticleDefinition { private: - static G4EtaPrime theEtaPrime; - - private: // constructors are hide as private - G4EtaPrime( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4EtaPrime* theInstance; + G4EtaPrime(){} + ~G4EtaPrime(){} public: - virtual ~G4EtaPrime(){} - - static G4EtaPrime* EtaPrimeDefinition(); - static G4EtaPrime* EtaPrime(); - + static G4EtaPrime* Definition(); + static G4EtaPrime* EtaPrimeDefinition(); + static G4EtaPrime* EtaPrime(); }; #endif diff --git a/source/particles/hadrons/mesons/include/G4JPsi.hh b/source/particles/hadrons/mesons/include/G4JPsi.hh index dce8dc9f32..5e66f43d17 100644 --- a/source/particles/hadrons/mesons/include/G4JPsi.hh +++ b/source/particles/hadrons/mesons/include/G4JPsi.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4JPsi.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4JPsi.hh,v 1.10 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // // Created, Hisaya Kurashige, 15 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ------------------------------------------------------------ - - -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. +// New implementation as a utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------- #ifndef G4JPsi_h #define G4JPsi_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### JPsi ### +// ### JPsi ### // ###################################################################### -class G4JPsi : public G4VMeson +class G4JPsi : public G4ParticleDefinition { private: - static G4JPsi theJPsi; - - private: // constructors are hide as private - G4JPsi( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4JPsi* theInstance; + G4JPsi(){} + ~G4JPsi(){} public: - virtual ~G4JPsi(){} - + static G4JPsi* Definition(); static G4JPsi* JPsiDefinition(); static G4JPsi* JPsi(); - }; #endif diff --git a/source/particles/hadrons/mesons/include/G4KaonMinus.hh b/source/particles/hadrons/mesons/include/G4KaonMinus.hh index 47bfa8c642..84f45bac02 100644 --- a/source/particles/hadrons/mesons/include/G4KaonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4KaonMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonMinus.hh,v 1.7 2001/10/16 08:16:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonMinus.hh,v 1.9 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,46 +31,29 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4KaonMinus_h #define G4KaonMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### KAONMINUS ### // ###################################################################### -class G4KaonMinus : public G4VMeson +class G4KaonMinus : public G4ParticleDefinition { private: - static G4KaonMinus theKaonMinus; - - private: // constructors are hide as private - G4KaonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4KaonMinus* theInstance; + G4KaonMinus(){} + ~G4KaonMinus(){} public: - virtual ~G4KaonMinus(){} - + static G4KaonMinus* Definition(); static G4KaonMinus* KaonMinusDefinition(); static G4KaonMinus* KaonMinus(); }; diff --git a/source/particles/hadrons/mesons/include/G4KaonPlus.hh b/source/particles/hadrons/mesons/include/G4KaonPlus.hh index 07636ed88e..266dac0d74 100644 --- a/source/particles/hadrons/mesons/include/G4KaonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4KaonPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonPlus.hh,v 1.7 2001/10/16 08:16:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonPlus.hh,v 1.9 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4KaonPlus_h #define G4KaonPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### KAONPLUS ### // ###################################################################### -class G4KaonPlus : public G4VMeson +class G4KaonPlus : public G4ParticleDefinition { private: - static G4KaonPlus theKaonPlus; + static G4KaonPlus* theInstance; + G4KaonPlus(){} + ~G4KaonPlus(){} - private: // constructors are hide as private - G4KaonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - -public: - virtual ~G4KaonPlus(){} + public: + static G4KaonPlus* Definition(); static G4KaonPlus* KaonPlusDefinition(); static G4KaonPlus* KaonPlus(); }; - #endif diff --git a/source/particles/hadrons/mesons/include/G4KaonZero.hh b/source/particles/hadrons/mesons/include/G4KaonZero.hh index a3b5a58560..0e6906e25e 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZero.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonZero.hh,v 1.10 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonZero.hh,v 1.12 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,51 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4KaonZero_h #define G4KaonZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### KAONZERO ### // ###################################################################### -class G4KaonZero : public G4VMeson +class G4KaonZero : public G4ParticleDefinition { private: - static G4KaonZero theKaonZero; - - private: // constructors are hide as private - G4KaonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - - public: - virtual ~G4KaonZero() {} + static G4KaonZero* theInstance; + G4KaonZero(){} + ~G4KaonZero(){} + public: + static G4KaonZero* Definition(); static G4KaonZero* KaonZeroDefinition(); static G4KaonZero* KaonZero(); - }; - #endif diff --git a/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh b/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh index 775e90eb30..cd4105094a 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonZeroLong.hh,v 1.9 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonZeroLong.hh,v 1.11 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4KaonZeroLong_h #define G4KaonZeroLong_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### KAONZERO LONG ### // ###################################################################### -class G4KaonZeroLong : public G4VMeson +class G4KaonZeroLong : public G4ParticleDefinition { private: - static G4KaonZeroLong theKaonZeroLong; - - private: // constructors are hide as private - G4KaonZeroLong( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4KaonZeroLong* theInstance; + G4KaonZeroLong(){} + ~G4KaonZeroLong(){} public: - virtual ~G4KaonZeroLong() {} - + static G4KaonZeroLong* Definition(); static G4KaonZeroLong* KaonZeroLongDefinition(); static G4KaonZeroLong* KaonZeroLong(); - }; #endif diff --git a/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh b/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh index 7b9e895534..42279a14d2 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonZeroShort.hh,v 1.9 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonZeroShort.hh,v 1.11 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4KaonZeroShort_h #define G4KaonZeroShort_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### KAONZERO SHORT ### // ###################################################################### -class G4KaonZeroShort : public G4VMeson +class G4KaonZeroShort : public G4ParticleDefinition { private: - static G4KaonZeroShort theKaonZeroShort; + static G4KaonZeroShort* theInstance; + G4KaonZeroShort(){} + ~G4KaonZeroShort(){} public: - private: // constructors are hide as private - G4KaonZeroShort( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - - public: - virtual ~G4KaonZeroShort() {} + static G4KaonZeroShort* Definition(); static G4KaonZeroShort* KaonZeroShortDefinition(); static G4KaonZeroShort* KaonZeroShort(); - }; #endif diff --git a/source/particles/hadrons/mesons/include/G4MesonConstructor.hh b/source/particles/hadrons/mesons/include/G4MesonConstructor.hh index 78514fd3f5..a40de90336 100644 --- a/source/particles/hadrons/mesons/include/G4MesonConstructor.hh +++ b/source/particles/hadrons/mesons/include/G4MesonConstructor.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MesonConstructor.hh,v 1.3 2001/07/11 10:01:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MesonConstructor.hh,v 1.4 2005/09/30 22:59:05 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,19 +37,18 @@ class G4MesonConstructor { //This class is a utility class for construction - //short lived particles public: G4MesonConstructor(); ~G4MesonConstructor(); public: - void ConstructParticle(); + static void ConstructParticle(); protected: - void ConstructLightMesons(); - void ConstructCharmMesons(); - void ConstructBottomMesons(); + static void ConstructLightMesons(); + static void ConstructCharmMesons(); + static void ConstructBottomMesons(); }; #endif diff --git a/source/particles/hadrons/mesons/include/G4PionMinus.hh b/source/particles/hadrons/mesons/include/G4PionMinus.hh index e488f8b037..8f8000f859 100644 --- a/source/particles/hadrons/mesons/include/G4PionMinus.hh +++ b/source/particles/hadrons/mesons/include/G4PionMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PionMinus.hh,v 1.7 2001/10/16 08:16:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PionMinus.hh,v 1.9 2005/01/14 03:49:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4PionMinus_h #define G4PionMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### PIONMINUS ### // ###################################################################### -class G4PionMinus : public G4VMeson +class G4PionMinus : public G4ParticleDefinition { private: - static G4PionMinus thePionMinus; - - private: // constructors are hide as private - G4PionMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4PionMinus* theInstance; + G4PionMinus(){} + ~G4PionMinus(){} public: - virtual ~G4PionMinus(){} - static G4PionMinus* PionMinusDefinition(); - static G4PionMinus* PionMinus(); - + static G4PionMinus* Definition(); + static G4PionMinus* PionMinusDefinition(); + static G4PionMinus* PionMinus(); }; #endif diff --git a/source/particles/hadrons/mesons/include/G4PionPlus.hh b/source/particles/hadrons/mesons/include/G4PionPlus.hh index 8adf176017..14280031be 100644 --- a/source/particles/hadrons/mesons/include/G4PionPlus.hh +++ b/source/particles/hadrons/mesons/include/G4PionPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PionPlus.hh,v 1.7 2001/10/16 08:16:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PionPlus.hh,v 1.9 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4PionPlus_h #define G4PionPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### PIONPLUS ### // ###################################################################### -class G4PionPlus : public G4VMeson +class G4PionPlus : public G4ParticleDefinition { private: - static G4PionPlus thePionPlus; - - private: - G4PionPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4PionPlus* theInstance; + G4PionPlus(){} + ~G4PionPlus(){} public: - virtual ~G4PionPlus(){} - + static G4PionPlus* Definition(); static G4PionPlus* PionPlusDefinition(); static G4PionPlus* PionPlus(); }; - #endif diff --git a/source/particles/hadrons/mesons/include/G4PionZero.hh b/source/particles/hadrons/mesons/include/G4PionZero.hh index 59aab78f1e..af24b2d285 100644 --- a/source/particles/hadrons/mesons/include/G4PionZero.hh +++ b/source/particles/hadrons/mesons/include/G4PionZero.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PionZero.hh,v 1.10 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PionZero.hh,v 1.12 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,46 +31,29 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VMeson -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4PionZero_h #define G4PionZero_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VMeson.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### PIONZERO ### // ###################################################################### -class G4PionZero : public G4VMeson +class G4PionZero : public G4ParticleDefinition { private: - static G4PionZero thePionZero; - - private: // constructors are hide as private - G4PionZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4PionZero* theInstance; + G4PionZero(){} + ~G4PionZero(){} public: - virtual ~G4PionZero() {} - + static G4PionZero* Definition(); static G4PionZero* PionZeroDefinition(); static G4PionZero* PionZero(); }; diff --git a/source/particles/hadrons/mesons/include/G4VMeson.hh b/source/particles/hadrons/mesons/include/G4VMeson.hh deleted file mode 100644 index 600a1a66c0..0000000000 --- a/source/particles/hadrons/mesons/include/G4VMeson.hh +++ /dev/null @@ -1,84 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VMeson.hh,v 1.5 2004/07/26 08:19:43 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// ------------------------------------------------------------ -// Revised, Hisaya Kurashige, 15 Dec 1996 -// Revised, Hisaya Kurashige, 22 Feb 1997 -// ---------------------------------------------------------------- - -#ifndef G4VMeson_h -#define G4VMeson_h 1 - -#include "G4ios.hh" -#include "globals.hh" - -#include "G4ParticleDefinition.hh" - -class G4VMeson : public G4ParticleDefinition -{ - // A virtual class for Mesons particles. It defines - // public methods which describe the behavior of a - // meson. - - private: - - const G4VMeson & operator=(const G4VMeson &right); - - public: - - G4VMeson(const G4String& aName, - G4double mass, - G4double width, - G4double charge, - G4int iSpin, - G4int iParity, - G4int iConjugation, - G4int iIsospin, - G4int iIsospinZ, - G4int gParity, - const G4String& pType, - G4int lepton, - G4int baryon, - G4int encoding, - G4bool stable, - G4double lifetime, - G4DecayTable *decaytable) - : G4ParticleDefinition(aName, mass, width, charge, iSpin, iParity, - iConjugation, iIsospin, iIsospinZ, gParity, - pType, lepton, baryon, encoding, stable, - lifetime, decaytable) {}; - - virtual ~G4VMeson() {}; - -}; - -#endif diff --git a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc index d5f76dec05..42a3716c2e 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiBMesonZero.cc,v 1.13 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiBMesonZero.cc,v 1.15 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -30,57 +30,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ---------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4AntiBMesonZero.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### AntiBMesonZero ### // ###################################################################### -G4AntiBMesonZero::G4AntiBMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiBMesonZero* G4AntiBMesonZero::theInstance = 0; + +G4AntiBMesonZero* G4AntiBMesonZero::Definition() { - SetParticleSubType("B"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_B0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 5.2792*GeV, 4.27e-10*MeV, 0., + 0, -1, 0, + 1, +1, 0, + "meson", 0, 0, -511, + false, 1.56e-3*ns, NULL, + false, "B"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiBMesonZero* G4AntiBMesonZero::AntiBMesonZeroDefinition() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4AntiBMesonZero G4AntiBMesonZero::theAntiBMesonZero( - "anti_B0", 5.2792*GeV, 4.27e-10*MeV, 0., - 0, -1, 0, - 1, +1, 0, - "meson", 0, 0, -511, - false, 1.56e-3*ns, NULL -); - -G4AntiBMesonZero* G4AntiBMesonZero::AntiBMesonZeroDefinition(){return &theAntiBMesonZero;} -G4AntiBMesonZero* G4AntiBMesonZero::AntiBMesonZero(){return &theAntiBMesonZero;} +G4AntiBMesonZero* G4AntiBMesonZero::AntiBMesonZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc index e6d5cbeb83..8ed06b54f6 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiBsMesonZero.cc,v 1.13 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiBsMesonZero.cc,v 1.15 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -30,57 +30,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ---------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4AntiBsMesonZero.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### AntiBsMesonZero ### +// ### AntiBsMesonZero ### // ###################################################################### -G4AntiBsMesonZero::G4AntiBsMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiBsMesonZero* G4AntiBsMesonZero::theInstance = 0; + +G4AntiBsMesonZero* G4AntiBsMesonZero::Definition() { - SetParticleSubType("Bs"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_Bs0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 5.3692*GeV, 4.51e-10*MeV, 0., + 0, -1, 0, + 0, 0, 0, + "meson", 0, 0, -531, + false, 1.61e-3*ns, NULL, + false, "Bs"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiBsMesonZero* G4AntiBsMesonZero::AntiBsMesonZeroDefinition() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4AntiBsMesonZero G4AntiBsMesonZero::theAntiBsMesonZero( - "anti_Bs0", 5.3692*GeV, 4.51e-10*MeV, 0., - 0, -1, 0, - 0, 0, 0, - "meson", 0, 0, -531, - false, 1.61e-3*ns, NULL -); - -G4AntiBsMesonZero* G4AntiBsMesonZero::AntiBsMesonZeroDefinition(){return &theAntiBsMesonZero;} -G4AntiBsMesonZero* G4AntiBsMesonZero::AntiBsMesonZero(){return &theAntiBsMesonZero;} +G4AntiBsMesonZero* G4AntiBsMesonZero::AntiBsMesonZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc index d2c4195da1..9cc7a2ca3f 100644 --- a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiDMesonZero.cc,v 1.13 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiDMesonZero.cc,v 1.15 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -30,57 +30,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ---------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4AntiDMesonZero.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### AntiDMesonZero ### // ###################################################################### -G4AntiDMesonZero::G4AntiDMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiDMesonZero* G4AntiDMesonZero::theInstance = 0; + +G4AntiDMesonZero* G4AntiDMesonZero::Definition() { - SetParticleSubType("D"); + if (theInstance !=0) return theInstance; + const G4String name = "anti_D0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.8645*GeV, 1.599e-9*MeV, 0., + 0, -1, 0, + 1, +1, 0, + "meson", 0, 0, -421, + false, 0.415e-3*ns, NULL, + false, "D"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiDMesonZero* G4AntiDMesonZero::AntiDMesonZeroDefinition() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4AntiDMesonZero G4AntiDMesonZero::theAntiDMesonZero( - "anti_D0", 1.8645*GeV, 1.599e-9*MeV, 0., - 0, -1, 0, - 1, +1, 0, - "meson", 0, 0, -421, - false, 0.415e-3*ns, NULL -); - -G4AntiDMesonZero* G4AntiDMesonZero::AntiDMesonZeroDefinition(){return &theAntiDMesonZero;} -G4AntiDMesonZero* G4AntiDMesonZero::AntiDMesonZero(){return &theAntiDMesonZero;} +G4AntiDMesonZero* G4AntiDMesonZero::AntiDMesonZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc index 85db67e089..4fb0b879e2 100644 --- a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiKaonZero.cc,v 1.12 2003/06/16 16:57:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiKaonZero.cc,v 1.14 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,11 +32,11 @@ // 4th April 1996, G.Cosmo // H.Kurashige 7 Jul 96 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4AntiKaonZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -45,60 +45,62 @@ // ### ANTIKAONZERO ### // ###################################################################### -G4AntiKaonZero::G4AntiKaonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) -{ - SetParticleSubType("kaon"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); +G4AntiKaonZero* G4AntiKaonZero::theInstance = 0; - // create decay channels +G4AntiKaonZero* G4AntiKaonZero::Definition() +{ + if (theInstance !=0) return theInstance; + const G4String name = "anti_kaon0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 0.497672*GeV, 0.0*MeV, 0.0, + 0, -1, 0, + 1, 1, 0, + "meson", 0, 0, -311, + false, 0.0, NULL, + false, "kaon"); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + + // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[2]; // kaon0 -> Kaon0L mode[0] = new G4PhaseSpaceDecayChannel("anti_kaon0",0.500,1,"kaon0L"); // kaon0 -> Kaon0S mode[1] = new G4PhaseSpaceDecayChannel("anti_kaon0",0.500,1,"kaon0S"); - for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); - + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4AntiKaonZero* G4AntiKaonZero::AntiKaonZeroDefinition() +{ + return Definition(); +} + +G4AntiKaonZero* G4AntiKaonZero::AntiKaonZero() +{ + return Definition(); +} -G4AntiKaonZero G4AntiKaonZero::theAntiKaonZero( - "anti_kaon0", 0.497672*GeV, 0.0*MeV, 0.0, - 0, -1, 0, - 1, 1, 0, - "meson", 0, 0, -311, - false, 0.0, NULL -); - -G4AntiKaonZero* G4AntiKaonZero::AntiKaonZeroDefinition(){return &theAntiKaonZero;} -G4AntiKaonZero* G4AntiKaonZero::AntiKaonZero(){return &theAntiKaonZero;} diff --git a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc index 0c3904f087..6dfdeb6b10 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BMesonMinus.cc,v 1.8 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BMesonMinus.cc,v 1.10 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,60 +31,59 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ---------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4BMesonMinus.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### BMesonMinus ### +// ### BMesonMinus ### // ###################################################################### -G4BMesonMinus::G4BMesonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4BMesonMinus* G4BMesonMinus::theInstance = 0; + +G4BMesonMinus* G4BMesonMinus::Definition() { - SetParticleSubType("B"); + if (theInstance !=0) return theInstance; + const G4String name = "B-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 5.2789*GeV, 3.93e-10*MeV, -1.*eplus, + 0, -1, 0, + 1, -1, 0, + "meson", 0, 0, -521, + false, 1.62e-3*ns, NULL, + false, "B"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4BMesonMinus* G4BMesonMinus::BMesonMinusDefinition() +{ + return Definition(); +} + +G4BMesonMinus* G4BMesonMinus::BMesonMinus() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4BMesonMinus G4BMesonMinus::theBMesonMinus -( - "B-", 5.2789*GeV, 3.93e-10*MeV, -1.*eplus, - 0, -1, 0, - 1, -1, 0, - "meson", 0, 0, -521, - false, 1.62e-3*ns, NULL -); - -G4BMesonMinus* G4BMesonMinus::BMesonMinusDefinition(){return &theBMesonMinus;} -G4BMesonMinus* G4BMesonMinus::BMesonMinus(){return &theBMesonMinus;} diff --git a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc index ec8f32f928..a73bf3c1d2 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BMesonPlus.cc,v 1.8 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BMesonPlus.cc,v 1.10 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,59 +31,59 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ---------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4BMesonPlus.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### BMesonPLUS ### // ###################################################################### -G4BMesonPlus::G4BMesonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4BMesonPlus* G4BMesonPlus::theInstance = 0; + +G4BMesonPlus* G4BMesonPlus::Definition() { - SetParticleSubType("B"); + if (theInstance !=0) return theInstance; + const G4String name = "B+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 5.2789*GeV, 3.93e-10*MeV, +1.*eplus, + 0, -1, 0, + 1, +1, 0, + "meson", 0, 0, 521, + false, 1.62e-3*ns, NULL, + false, "B"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4BMesonPlus* G4BMesonPlus::BMesonPlusDefinition() +{ + return Definition(); +} + +G4BMesonPlus* G4BMesonPlus::BMesonPlus() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4BMesonPlus G4BMesonPlus::theBMesonPlus( - "B+", 5.2789*GeV, 3.93e-10*MeV, +1.*eplus, - 0, -1, 0, - 1, +1, 0, - "meson", 0, 0, 521, - false, 1.62e-3*ns, NULL -); - -G4BMesonPlus* G4BMesonPlus::BMesonPlusDefinition(){return &theBMesonPlus;} -G4BMesonPlus* G4BMesonPlus::BMesonPlus(){return &theBMesonPlus;} diff --git a/source/particles/hadrons/mesons/src/G4BMesonZero.cc b/source/particles/hadrons/mesons/src/G4BMesonZero.cc index 719c596586..7f53e3cf43 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BMesonZero.cc,v 1.13 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BMesonZero.cc,v 1.15 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -30,58 +30,57 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ---------------------------------------------------------------- - - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4BMesonZero.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### BMesonZero ### // ###################################################################### -G4BMesonZero::G4BMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4BMesonZero* G4BMesonZero::theInstance = 0; + +G4BMesonZero* G4BMesonZero::Definition() { - SetParticleSubType("B"); + if (theInstance !=0) return theInstance; + const G4String name = "B0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 5.2792*GeV, 4.27e-10*MeV, 0., + 0, -1, 0, + 1, -1, 0, + "meson", 0, 0, 511, + false, 1.56e-3*ns, NULL, + false, "B"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4BMesonZero* G4BMesonZero::BMesonZeroDefinition() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4BMesonZero G4BMesonZero::theBMesonZero( - "B0", 5.2792*GeV, 4.27e-10*MeV, 0., - 0, -1, 0, - 1, -1, 0, - "meson", 0, 0, 511, - false, 1.56e-3*ns, NULL -); +G4BMesonZero* G4BMesonZero::BMesonZero() +{ + return Definition(); +} -G4BMesonZero* G4BMesonZero::BMesonZeroDefinition(){return &theBMesonZero;} -G4BMesonZero* G4BMesonZero::BMesonZero(){return &theBMesonZero;} diff --git a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc index d4dbf4b94c..fbe9ede14e 100644 --- a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BsMesonZero.cc,v 1.13 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BsMesonZero.cc,v 1.15 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -30,57 +30,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ---------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4BsMesonZero.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### BsMesonZero ### +// ### BsMesonZero ### // ###################################################################### -G4BsMesonZero::G4BsMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4BsMesonZero* G4BsMesonZero::theInstance = 0; + +G4BsMesonZero* G4BsMesonZero::Definition() { - SetParticleSubType("Bs"); + if (theInstance !=0) return theInstance; + const G4String name = "Bs0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 5.3692*GeV, 4.51e-10*MeV, 0., + 0, -1, 0, + 0, 0, 0, + "meson", 0, 0, 531, + false, 1.61e-3*ns, NULL, + false, "Bs"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4BsMesonZero* G4BsMesonZero::BsMesonZeroDefinition() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4BsMesonZero G4BsMesonZero::theBsMesonZero( - "Bs0", 5.3692*GeV, 4.51e-10*MeV, 0., - 0, -1, 0, - 0, 0, 0, - "meson", 0, 0, 531, - false, 1.61e-3*ns, NULL -); - -G4BsMesonZero* G4BsMesonZero::BsMesonZeroDefinition(){return &theBsMesonZero;} -G4BsMesonZero* G4BsMesonZero::BsMesonZero(){return &theBsMesonZero;} +G4BsMesonZero* G4BsMesonZero::BsMesonZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc index 62e6ccba5d..3e33aa34b8 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DMesonMinus.cc,v 1.8 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DMesonMinus.cc,v 1.10 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,62 +31,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ---------------------------------------------------------------- - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4DMesonMinus.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### DMesonMinus ### +// ### DMesonMinus ### // ###################################################################### -G4DMesonMinus::G4DMesonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4DMesonMinus* G4DMesonMinus::theInstance = 0; + +G4DMesonMinus* G4DMesonMinus::Definition() { - SetParticleSubType("D"); + if (theInstance !=0) return theInstance; + const G4String name = "D-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.8693*GeV, 6.26e-10*MeV, -1.*eplus, + 0, -1, 0, + 1, -1, 0, + "meson", 0, 0, -411, + false, 1.057e-3*ns, NULL, + false, "D"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -// In this version, charged pions are set to stable -G4DMesonMinus G4DMesonMinus::theDMesonMinus -( - "D-", 1.8693*GeV, 6.26e-10*MeV, -1.*eplus, - 0, -1, 0, - 1, -1, 0, - "meson", 0, 0, -411, - false, 1.057e-3*ns, NULL -); - -G4DMesonMinus* G4DMesonMinus::DMesonMinusDefinition(){return &theDMesonMinus;} -G4DMesonMinus* G4DMesonMinus::DMesonMinus(){return &theDMesonMinus;} - - - +G4DMesonMinus* G4DMesonMinus::DMesonMinusDefinition() +{ + return Definition(); +} +G4DMesonMinus* G4DMesonMinus::DMesonMinus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc index c05cbdad36..ed30618fac 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DMesonPlus.cc,v 1.8 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DMesonPlus.cc,v 1.10 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,61 +31,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ------------------------------------------------------------ - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4DMesonPlus.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### DMesonPLUS ### // ###################################################################### -G4DMesonPlus::G4DMesonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4DMesonPlus* G4DMesonPlus::theInstance = 0; + +G4DMesonPlus* G4DMesonPlus::Definition() { - SetParticleSubType("D"); + if (theInstance !=0) return theInstance; + const G4String name = "D+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 1.8693*GeV, 6.26e-10*MeV, +1.*eplus, + 0, -1, 0, + 1, +1, 0, + "meson", 0, 0, 411, + false, 1.057e-3*ns, NULL, + false, "D"); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -// In this version, charged pions are set to stable -G4DMesonPlus G4DMesonPlus::theDMesonPlus( - "D+", 1.8693*GeV, 6.26e-10*MeV, +1.*eplus, - 0, -1, 0, - 1, +1, 0, - "meson", 0, 0, 411, - false, 1.057e-3*ns, NULL -); - -G4DMesonPlus* G4DMesonPlus::DMesonPlusDefinition(){return &theDMesonPlus;} -G4DMesonPlus* G4DMesonPlus::DMesonPlus(){return &theDMesonPlus;} - - - +G4DMesonPlus* G4DMesonPlus::DMesonPlusDefinition() +{ + return Definition(); +} +G4DMesonPlus* G4DMesonPlus::DMesonPlus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4DMesonZero.cc b/source/particles/hadrons/mesons/src/G4DMesonZero.cc index bcfad21c8e..53e2bb3931 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DMesonZero.cc,v 1.13 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DMesonZero.cc,v 1.15 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -30,57 +30,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -#include -#include - #include "G4DMesonZero.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### DMesonZero ### // ###################################################################### -G4DMesonZero::G4DMesonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4DMesonZero* G4DMesonZero::theInstance = 0; + +G4DMesonZero* G4DMesonZero::Definition() { - SetParticleSubType("D"); + if (theInstance !=0) return theInstance; + const G4String name = "D0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 1.8645*GeV, 1.599e-9*MeV, 0., + 0, -1, 0, + 1, -1, 0, + "meson", 0, 0, 421, + false, 0.415e-3*ns, NULL, + false, "D" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4DMesonZero* G4DMesonZero::DMesonZeroDefinition() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4DMesonZero G4DMesonZero::theDMesonZero( - "D0", 1.8645*GeV, 1.599e-9*MeV, 0., - 0, -1, 0, - 1, -1, 0, - "meson", 0, 0, 421, - false, 0.415e-3*ns, NULL -); - -G4DMesonZero* G4DMesonZero::DMesonZeroDefinition(){return &theDMesonZero;} -G4DMesonZero* G4DMesonZero::DMesonZero(){return &theDMesonZero;} +G4DMesonZero* G4DMesonZero::DMesonZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc index a378a16578..df409caaf5 100644 --- a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DsMesonMinus.cc,v 1.8 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DsMesonMinus.cc,v 1.10 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,61 +31,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -#include -#include - #include "G4DsMesonMinus.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### DsMesonMinus ### // ###################################################################### -G4DsMesonMinus::G4DsMesonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4DsMesonMinus* G4DsMesonMinus::theInstance = 0; + +G4DsMesonMinus* G4DsMesonMinus::Definition() { - SetParticleSubType("Ds"); + if (theInstance !=0) return theInstance; + const G4String name = "Ds-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 1.9685*GeV, 1.342e-9*MeV, -1.*eplus, + 0, -1, 0, + 0, 0, 0, + "meson", 0, 0, -431, + false, 0.467e-3*ns, NULL, + false, "Ds" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -// In this version, charged pions are set to stable -G4DsMesonMinus G4DsMesonMinus::theDsMesonMinus( - "Ds-", 1.9685*GeV, 1.342e-9*MeV, -1.*eplus, - 0, -1, 0, - 0, 0, 0, - "meson", 0, 0, -431, - false, 0.467e-3*ns, NULL -); - -G4DsMesonMinus* G4DsMesonMinus::DsMesonMinusDefinition(){return &theDsMesonMinus;} -G4DsMesonMinus* G4DsMesonMinus::DsMesonMinus(){return &theDsMesonMinus;} - - - +G4DsMesonMinus* G4DsMesonMinus::DsMesonMinusDefinition() +{ + return Definition(); +} +G4DsMesonMinus* G4DsMesonMinus::DsMesonMinus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc index 3c026dcfb1..726dae6162 100644 --- a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DsMesonPlus.cc,v 1.8 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DsMesonPlus.cc,v 1.10 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,61 +31,56 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -#include -#include - #include "G4DsMesonPlus.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### DsMesonPLUS ### +// ### DsMesonPLUS ### // ###################################################################### -G4DsMesonPlus::G4DsMesonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4DsMesonPlus* G4DsMesonPlus::theInstance = 0; + +G4DsMesonPlus* G4DsMesonPlus::Definition() { - SetParticleSubType("Ds"); + if (theInstance !=0) return theInstance; + const G4String name = "Ds+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 1.9685*GeV, 1.342e-9*MeV, +1.*eplus, + 0, -1, 0, + 0, 0, 0, + "meson", 0, 0, 431, + false, 0.467e-3*ns, NULL, + false, "Ds" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -// In this version, charged pions are set to stable -G4DsMesonPlus G4DsMesonPlus::theDsMesonPlus( - "Ds+", 1.9685*GeV, 1.342e-9*MeV, +1.*eplus, - 0, -1, 0, - 0, 0, 0, - "meson", 0, 0, 431, - false, 0.467e-3*ns, NULL -); - -G4DsMesonPlus* G4DsMesonPlus::DsMesonPlusDefinition(){return &theDsMesonPlus;} -G4DsMesonPlus* G4DsMesonPlus::DsMesonPlus(){return &theDsMesonPlus;} - - - +G4DsMesonPlus* G4DsMesonPlus::DsMesonPlusDefinition() +{ + return Definition(); +} +G4DsMesonPlus* G4DsMesonPlus::DsMesonPlus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4Eta.cc b/source/particles/hadrons/mesons/src/G4Eta.cc index c420bd4700..ef29e0a137 100644 --- a/source/particles/hadrons/mesons/src/G4Eta.cc +++ b/source/particles/hadrons/mesons/src/G4Eta.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Eta.cc,v 1.13 2003/06/16 16:57:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Eta.cc,v 1.15 2005/01/14 03:49:15 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,12 +31,12 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // H.Kurashige 7 Jul 96 -// ------------------------------------------------------------ - -#include -#include +// ********************************************************************** +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4Eta.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -45,30 +45,36 @@ // ### ETA ### // ###################################################################### +G4Eta* G4Eta::theInstance = 0; -G4Eta::G4Eta( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Eta* G4Eta::Definition() { - SetParticleSubType("eta"); - // Anti-particle of Eta is Eta itself - SetAntiPDGEncoding(encoding); + if (theInstance !=0) return theInstance; + const G4String name = "eta"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding - SetPDGStable(false); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + anInstance = new G4ParticleDefinition( + name, 0.54730*GeV, 1.18*keV, 0.0, + 0, -1, +1, + 0, 0, +1, + "meson", 0, 0, 221, + false, 0.0*ns, NULL, + false, "eta", 221); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[4]; @@ -81,31 +87,22 @@ G4Eta::G4Eta( // eta -> gamma + pi+ + pi- mode[3] = new G4PhaseSpaceDecayChannel("eta",0.048,3,"gamma","pi+","pi-"); - for (G4int index=0; index <4; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <4; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4Eta* G4Eta::EtaDefinition() +{ + return Definition(); +} -G4Eta G4Eta::theEta( - "eta", 0.54730*GeV, 1.18*keV, 0.0, - 0, -1, +1, - 0, 0, +1, - "meson", 0, 0, 221, - false, 0.0*ns, NULL -); - -G4Eta* G4Eta::EtaDefinition(){return &theEta;} -G4Eta* G4Eta::Eta(){return &theEta;} +G4Eta* G4Eta::Eta() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4EtaPrime.cc b/source/particles/hadrons/mesons/src/G4EtaPrime.cc index ab8265cc20..bb4c35badf 100644 --- a/source/particles/hadrons/mesons/src/G4EtaPrime.cc +++ b/source/particles/hadrons/mesons/src/G4EtaPrime.cc @@ -21,53 +21,58 @@ // ******************************************************************** // // -// $Id: G4EtaPrime.cc,v 1.14 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EtaPrime.cc,v 1.16 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------- // GEANT 4 class implementation file // // History: first implementation, 8 June 1998 Hisaya Kurashige -// ---------------------------------------------------------------- - -#include -#include +// ********************************************************************** +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4EtaPrime.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### EtaPrime ### +// ### EtaPrime ### // ###################################################################### +G4EtaPrime* G4EtaPrime::theInstance = 0; -G4EtaPrime::G4EtaPrime( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4EtaPrime* G4EtaPrime::Definition() { - SetParticleSubType("eta_prime"); - // Anti-particle of EtaPrime is EtaPrime itself - SetAntiPDGEncoding(encoding); + if (theInstance !=0) return theInstance; + const G4String name = "eta_prime"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding - SetPDGStable(false); - - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + anInstance = new G4ParticleDefinition( + name, 0.95777*GeV, 0.202*MeV, 0.0, + 0, -1, +1, + 0, 0, +1, + "meson", 0, 0, 331, + false, 0.0*ns, NULL, + false, "eta_prime", 331); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[3]; @@ -78,31 +83,22 @@ G4EtaPrime::G4EtaPrime( // EtaPrime -> rho0 + gamma mode[2] = new G4PhaseSpaceDecayChannel("eta_prime",0.302,2,"rho0","gamma"); - for (G4int index=0; index <3; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <3; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4EtaPrime* G4EtaPrime::EtaPrimeDefinition() +{ + return Definition(); +} -G4EtaPrime G4EtaPrime::theEtaPrime( - "eta_prime", 0.95777*GeV, 0.202*MeV, 0.0, - 0, -1, +1, - 0, 0, +1, - "meson", 0, 0, 331, - false, 0.0*ns, NULL -); - -G4EtaPrime* G4EtaPrime::EtaPrimeDefinition(){return &theEtaPrime;} -G4EtaPrime* G4EtaPrime::EtaPrime(){return &theEtaPrime;} +G4EtaPrime* G4EtaPrime::EtaPrime() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4JPsi.cc b/source/particles/hadrons/mesons/src/G4JPsi.cc index 105fbada92..6f8686c77e 100644 --- a/source/particles/hadrons/mesons/src/G4JPsi.cc +++ b/source/particles/hadrons/mesons/src/G4JPsi.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4JPsi.cc,v 1.12 2003/06/16 16:57:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4JPsi.cc,v 1.14 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -30,61 +30,57 @@ // // Created Hisaya Kurashige, 16 June 1997 // ********************************************************************** -// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998 -// ------------------------------------------------------------ - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4JPsi.hh" - -#include "G4DecayTable.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### JPsi ### +// ### JPsi ### // ###################################################################### -G4JPsi::G4JPsi( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4JPsi* G4JPsi::theInstance = 0; + +G4JPsi* G4JPsi::Definition() { - SetParticleSubType("J/psi"); - // Anti-particle of J/Psi is J/Psi itself - SetAntiPDGEncoding(encoding); - + if (theInstance !=0) return theInstance; + const G4String name = "J/psi"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 3.09688*GeV, 0.087*MeV, 0., + 2, -1, -1, + 0, 0, -1, + "meson", 0, 0, 443, + false, 0.0*ns, NULL, + false, "J/psi", 443); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4JPsi* G4JPsi::JPsiDefinition() +{ + return Definition(); +} -// In this version, charged pions are set to stable -G4JPsi G4JPsi::theJPsi( - "J/psi", 3.09688*GeV, 0.087*MeV, 0., - 2, -1, -1, - 0, 0, -1, - "meson", 0, 0, 443, - false, 0.0*ns, NULL -); +G4JPsi* G4JPsi::JPsi() +{ + return Definition(); +} -G4JPsi* G4JPsi::JPsiDefinition(){return &theJPsi;} -G4JPsi* G4JPsi::JPsi(){return &theJPsi;} diff --git a/source/particles/hadrons/mesons/src/G4KaonMinus.cc b/source/particles/hadrons/mesons/src/G4KaonMinus.cc index 18c58f1951..0675ffa70e 100644 --- a/source/particles/hadrons/mesons/src/G4KaonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonMinus.cc,v 1.10 2004/02/13 05:53:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonMinus.cc,v 1.12 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,38 +32,51 @@ // 4th April 1996, G.Cosmo // H.Kurashige 7 Jul 96 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4KaonMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4KL3DecayChannel.hh" #include "G4DecayTable.hh" + // ###################################################################### // ### KAONMINUS ### // ###################################################################### -G4KaonMinus::G4KaonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4KaonMinus* G4KaonMinus::theInstance = 0; + +G4KaonMinus* G4KaonMinus::Definition() { - SetParticleSubType("kaon"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "kaon-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 0.493677*GeV, 5.315e-14*MeV, -1.*eplus, + 0, -1, 0, + 1, -1, 0, + "meson", 0, 0, -321, + false, 12.371*ns, NULL, + false, "kaon"); + + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[6]; @@ -75,39 +88,27 @@ G4KaonMinus::G4KaonMinus( mode[2] = new G4PhaseSpaceDecayChannel("kaon-",0.056,3,"pi-","pi+","pi-"); // kaon- -> pi- + pi0 + pi0 mode[3] = new G4PhaseSpaceDecayChannel("kaon-",0.017,3,"pi-","pi0","pi0"); - // kaon- -> pi0 + e- + anti_nu_e (Ke3) + // kaon- -> pi0 + e- + anti_nu_e (Ke3) mode[4] = new G4KL3DecayChannel("kaon-",0.048,"pi0","e-","anti_nu_e"); - // kaon- -> pi0 + mu- + anti_nu_mu (Kmu3) + // kaon- -> pi0 + mu- + anti_nu_mu (Kmu3) mode[5] = new G4KL3DecayChannel("kaon-",0.032,"pi0","mu-","anti_nu_mu"); - - for (G4int index=0; index <6; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <6; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// -G4KaonMinus G4KaonMinus::theKaonMinus( - "kaon-", 0.493677*GeV, 5.315e-14*MeV, -1.*eplus, - 0, -1, 0, - 1, -1, 0, - "meson", 0, 0, -321, - false, 12.371*ns, NULL -); - -G4KaonMinus* G4KaonMinus::KaonMinusDefinition(){return &theKaonMinus;} -G4KaonMinus* G4KaonMinus::KaonMinus(){return &theKaonMinus;} - +G4KaonMinus* G4KaonMinus::KaonMinusDefinition() +{ + return Definition(); +} +G4KaonMinus* G4KaonMinus::KaonMinus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4KaonPlus.cc b/source/particles/hadrons/mesons/src/G4KaonPlus.cc index 3c0defae1e..786b97f47c 100644 --- a/source/particles/hadrons/mesons/src/G4KaonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonPlus.cc,v 1.9 2004/02/13 05:53:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonPlus.cc,v 1.11 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,11 +32,11 @@ // 4th April 1996, G.Cosmo // H.Kurashige 7 Jul 96 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4KaonPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4KL3DecayChannel.hh" @@ -46,25 +46,37 @@ // ### KAONPLUS ### // ###################################################################### -G4KaonPlus::G4KaonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4KaonPlus* G4KaonPlus::theInstance = 0; + +G4KaonPlus* G4KaonPlus::Definition() { - SetParticleSubType("kaon"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "kaon+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 0.493677*GeV, 5.315e-14*MeV, +1.*eplus, + 0, -1, 0, + 1, +1, 0, + "meson", 0, 0, 321, + false, 12.371*ns, NULL, + false, "kaon"); + + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[6]; @@ -76,43 +88,27 @@ G4KaonPlus::G4KaonPlus( mode[2] = new G4PhaseSpaceDecayChannel("kaon+",0.056,3,"pi+","pi+","pi-"); // kaon+ -> pi+ + pi0 + pi0 mode[3] = new G4PhaseSpaceDecayChannel("kaon+",0.017,3,"pi+","pi0","pi0"); - // kaon+ -> pi0 + e+ + nu_e (Ke3) + // kaon+ -> pi0 + e+ + nu_e (Ke3) mode[4] = new G4KL3DecayChannel("kaon+",0.048,"pi0","e+","nu_e"); - // kaon+ -> pi0 + mu+ + nu_mu (Kmu3) + // kaon+ -> pi0 + mu+ + nu_mu (Kmu3) mode[5] = new G4KL3DecayChannel("kaon+",0.032,"pi0","mu+","nu_mu"); - - for (G4int index=0; index <6; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <6; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -// In this version, charged pions are set to stable -G4KaonPlus G4KaonPlus::theKaonPlus( - "kaon+", 0.493677*GeV, 5.315e-14*MeV, +1.*eplus, - 0, -1, 0, - 1, +1, 0, - "meson", 0, 0, 321, - false, 12.371*ns, NULL -); - -G4KaonPlus* G4KaonPlus::KaonPlusDefinition(){return &theKaonPlus;} - -G4KaonPlus* G4KaonPlus::KaonPlus(){return &theKaonPlus;} - - - +G4KaonPlus* G4KaonPlus::KaonPlusDefinition() +{ + return Definition(); +} +G4KaonPlus* G4KaonPlus::KaonPlus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4KaonZero.cc b/source/particles/hadrons/mesons/src/G4KaonZero.cc index 847829f413..fed0d0f357 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZero.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonZero.cc,v 1.12 2003/06/16 16:57:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonZero.cc,v 1.14 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,38 +32,50 @@ // 4th April 1996, G.Cosmo // H.Kurashige 7 Jul 96 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4KaonZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" // ###################################################################### -// ### KAONZERO ### +// ### KAONZERO ### // ###################################################################### -G4KaonZero::G4KaonZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4KaonZero* G4KaonZero::theInstance = 0; + +G4KaonZero* G4KaonZero::Definition() { - SetParticleSubType("kaon"); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "kaon0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 0.497672*GeV, 0.0*MeV, 0.0, + 0, -1, 0, + 1, -1, 0, + "meson", 0, 0, 311, + false, 0.0, NULL, + false, "kaon"); + + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[2]; @@ -72,32 +84,22 @@ G4KaonZero::G4KaonZero( // kaon0 -> Kaon0S mode[1] = new G4PhaseSpaceDecayChannel("kaon0",0.500,1,"kaon0S"); - for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); - + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4KaonZero* G4KaonZero::KaonZeroDefinition() +{ + return Definition(); +} -G4KaonZero G4KaonZero::theKaonZero( - "kaon0", 0.497672*GeV, 0.0*MeV, 0.0, - 0, -1, 0, - 1, -1, 0, - "meson", 0, 0, 311, - false, 0.0, NULL -); - -G4KaonZero* G4KaonZero::KaonZeroDefinition(){return &theKaonZero;} -G4KaonZero* G4KaonZero::KaonZero(){return &theKaonZero;} +G4KaonZero* G4KaonZero::KaonZero() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc index f8c1aeada9..4890129e0d 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonZeroLong.cc,v 1.13 2003/06/16 16:57:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonZeroLong.cc,v 1.15 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,40 +32,51 @@ // 4th April 1996, G.Cosmo // H.Kurashige 7 Jul 96 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4KaonZeroLong.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4KL3DecayChannel.hh" #include "G4DecayTable.hh" + // ###################################################################### // ### KAONZEROLONG ### // ###################################################################### -G4KaonZeroLong::G4KaonZeroLong( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4KaonZeroLong* G4KaonZeroLong::theInstance = 0; + +G4KaonZeroLong* G4KaonZeroLong::Definition() { - SetParticleSubType("kaon"); - // Anti-particle of K0Long is K0Long itself - SetAntiPDGEncoding(encoding); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "kaon0L"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 0.497672*GeV, 1.273e-14*MeV, 0.0, + 0, -1, 0, + 1, 0, 0, + "meson", 0, 0, 130, + false, 51.7*ns, NULL, + false, "kaon", 130); + + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[6]; @@ -73,40 +84,31 @@ G4KaonZeroLong::G4KaonZeroLong( mode[0] = new G4PhaseSpaceDecayChannel("kaon0L",0.211,3,"pi0","pi0","pi0"); // kaon0L -> pi0 + pi+ + pi- mode[1] = new G4PhaseSpaceDecayChannel("kaon0L",0.126,3,"pi0","pi+","pi-"); - // kaon0L -> pi- + e+ + nu_e (Ke3) + // kaon0L -> pi- + e+ + nu_e (Ke3) mode[2] = new G4KL3DecayChannel("kaon0L",0.194,"pi-","e+","nu_e"); - // kaon0L -> pi+ + e- + anti_nu_e (Ke3) + // kaon0L -> pi+ + e- + anti_nu_e (Ke3) mode[3] = new G4KL3DecayChannel("kaon0L",0.194,"pi+","e-","anti_nu_e"); - // kaon0L -> pi- + mu+ + nu_mu (Kmu3) + // kaon0L -> pi- + mu+ + nu_mu (Kmu3) mode[4] = new G4KL3DecayChannel("kaon0L",0.136,"pi-","mu+","nu_mu"); - // kaon0L -> pi+ + mu- + anti_nu_mu (Kmu3) + // kaon0L -> pi+ + mu- + anti_nu_mu (Kmu3) mode[5] = new G4KL3DecayChannel("kaon0L",0.136,"pi+","mu-","anti_nu_mu"); - for (G4int index=0; index <6; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <6; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4KaonZeroLong* G4KaonZeroLong::KaonZeroLongDefinition() +{ + return Definition(); +} -G4KaonZeroLong G4KaonZeroLong::theKaonZeroLong( - "kaon0L", 0.497672*GeV, 1.273e-14*MeV, 0.0, - 0, -1, 0, - 1, 0, 0, - "meson", 0, 0, 130, - false, 51.7*ns, NULL -); - -G4KaonZeroLong* G4KaonZeroLong::KaonZeroLongDefinition(){return &theKaonZeroLong;} -G4KaonZeroLong* G4KaonZeroLong::KaonZeroLong(){return &theKaonZeroLong;} +G4KaonZeroLong* G4KaonZeroLong::KaonZeroLong() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc index 18630643bf..3b65d92327 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4KaonZeroShort.cc,v 1.13 2003/06/16 16:57:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KaonZeroShort.cc,v 1.15 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,11 +32,11 @@ // 4th April 1996, G.Cosmo // H.Kurashige 7 Jul 96 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4KaonZeroShort.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -45,28 +45,37 @@ // ### KAONZEROSHORT ### // ###################################################################### -G4KaonZeroShort::G4KaonZeroShort( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4KaonZeroShort* G4KaonZeroShort::theInstance = 0; + +G4KaonZeroShort* G4KaonZeroShort::Definition() { - SetParticleSubType("kaon"); - // Anti-particle of K0Short is K0Short itself - SetAntiPDGEncoding(encoding); - - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "kaon0S"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 0.497672*GeV, 7.373e-12*MeV, 0.0, + 0, -1, 0, + 1, 0, 0, + "meson", 0, 0, 310, + false, 0.08926*ns, NULL, + false, "kaon", 310); + + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create decay channels G4VDecayChannel** mode = new G4VDecayChannel*[2]; @@ -75,32 +84,22 @@ G4KaonZeroShort::G4KaonZeroShort( // kaon0s -> pi0 + pi0 mode[1] = new G4PhaseSpaceDecayChannel("kaon0S",0.313,2,"pi0","pi0"); - for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); + for (G4int index=0; index <2; index++ ) table->Insert(mode[index]); delete [] mode; - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table +G4KaonZeroShort* G4KaonZeroShort::KaonZeroShortDefinition() +{ + return Definition(); +} -G4KaonZeroShort G4KaonZeroShort::theKaonZeroShort( - "kaon0S", 0.497672*GeV, 7.373e-12*MeV, 0.0, - 0, -1, 0, - 1, 0, 0, - "meson", 0, 0, 310, - false, 0.08926*ns, NULL -); - -G4KaonZeroShort* G4KaonZeroShort::KaonZeroShortDefinition(){return &theKaonZeroShort;} - -G4KaonZeroShort* G4KaonZeroShort::KaonZeroShort(){return &theKaonZeroShort;} +G4KaonZeroShort* G4KaonZeroShort::KaonZeroShort() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4MesonConstructor.cc b/source/particles/hadrons/mesons/src/G4MesonConstructor.cc index bb2c6061b1..a057811ec0 100644 --- a/source/particles/hadrons/mesons/src/G4MesonConstructor.cc +++ b/source/particles/hadrons/mesons/src/G4MesonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4MesonConstructor.cc,v 1.4 2001/07/11 10:01:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionMinus.cc b/source/particles/hadrons/mesons/src/G4PionMinus.cc index 5956f891b8..3b4c60a990 100644 --- a/source/particles/hadrons/mesons/src/G4PionMinus.cc +++ b/source/particles/hadrons/mesons/src/G4PionMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PionMinus.cc,v 1.8 2003/06/16 16:57:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PionMinus.cc,v 1.10 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,15 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Code uses operators (+=, *=, ++, -> etc.) correctly, P. Urban, 26/6/96 -// Add PionMinusDefinition(), H.Kurashige 4 July 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4PionMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -48,62 +44,56 @@ // ### PIONMINUS ### // ###################################################################### -G4PionMinus::G4PionMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4PionMinus* G4PionMinus::theInstance = 0; + +G4PionMinus* G4PionMinus::Definition() { - SetParticleSubType("pi"); - SetPDGStable(false); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "pi-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 0.1395700*GeV, 2.5284e-14*MeV, -1.*eplus, + 0, -1, 0, + 2, -2, -1, + "meson", 0, 0, -211, + false, 26.030*ns, NULL, + false, "pi"); + + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create a decay channel // pi- -> mu- + anti_nu_mu G4VDecayChannel* mode = new G4PhaseSpaceDecayChannel("pi-",1.00,2,"mu-","anti_nu_mu"); table->Insert(mode); - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// -G4PionMinus G4PionMinus::thePionMinus( - "pi-", 0.1395700*GeV, 2.5284e-14*MeV, -1.*eplus, - 0, -1, 0, - 2, -2, -1, - "meson", 0, 0, -211, - false, 26.030*ns, NULL -); - -G4PionMinus* G4PionMinus::PionMinusDefinition(){return &thePionMinus;} - -G4PionMinus* G4PionMinus::PionMinus(){return &thePionMinus;} - - - - - - +G4PionMinus* G4PionMinus::PionMinusDefinition() +{ + return Definition(); +} +G4PionMinus* G4PionMinus::PionMinus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4PionPlus.cc b/source/particles/hadrons/mesons/src/G4PionPlus.cc index badc00ad1a..f8d0da1aef 100644 --- a/source/particles/hadrons/mesons/src/G4PionPlus.cc +++ b/source/particles/hadrons/mesons/src/G4PionPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PionPlus.cc,v 1.9 2003/06/16 16:57:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PionPlus.cc,v 1.11 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,15 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Code uses operators (+=, *=, ++, -> etc.) correctly, P. Urban, 26/6/96 -// Add PionPlusDefinition(), H.Kurashige 4 July 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4PionPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4DecayTable.hh" @@ -48,59 +44,56 @@ // ### PIONPLUS ### // ###################################################################### -G4PionPlus::G4PionPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4PionPlus* G4PionPlus::theInstance = 0; + +G4PionPlus* G4PionPlus::Definition() { - SetParticleSubType("pi"); - SetPDGStable(false); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + if (theInstance !=0) return theInstance; + const G4String name = "pi+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + + anInstance = new G4ParticleDefinition( + name, 0.1395700*GeV, 2.5284e-14*MeV, +1.*eplus, + 0, -1, 0, + 2, +2, -1, + "meson", 0, 0, 211, + false, 26.030*ns, NULL, + false, "pi"); + + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create a decay channel // pi+ -> mu+ + nu_mu G4VDecayChannel* mode = new G4PhaseSpaceDecayChannel("pi+",1.00,2,"mu+","nu_mu"); table->Insert(mode); - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -// In this version, charged pions are set to stable -G4PionPlus G4PionPlus::thePionPlus( - "pi+", 0.1395700*GeV, 2.5284e-14*MeV, +1.*eplus, - 0, -1, 0, - 2, +2, -1, - "meson", 0, 0, 211, - false, 26.030*ns, NULL -); - -G4PionPlus* G4PionPlus::PionPlusDefinition(){return &thePionPlus;} - -G4PionPlus* G4PionPlus::PionPlus(){return &thePionPlus;} - - +G4PionPlus* G4PionPlus::PionPlusDefinition() +{ + return Definition(); +} +G4PionPlus* G4PionPlus::PionPlus() +{ + return Definition(); +} diff --git a/source/particles/hadrons/mesons/src/G4PionZero.cc b/source/particles/hadrons/mesons/src/G4PionZero.cc index 47732c34e8..738b096d5a 100644 --- a/source/particles/hadrons/mesons/src/G4PionZero.cc +++ b/source/particles/hadrons/mesons/src/G4PionZero.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PionZero.cc,v 1.13 2003/06/16 16:57:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PionZero.cc,v 1.15 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,15 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Operators (+=, *=, ++, -> etc.) correctly used, P. Urban, 26/6/96 -// Add PionZeroDefinition(), H.Kurashige 4 July 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4PionZero.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" @@ -50,30 +46,37 @@ // ### PIONZERO ### // ###################################################################### -G4PionZero::G4PionZero( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VMeson( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4PionZero* G4PionZero::theInstance = 0; + +G4PionZero* G4PionZero::Definition() { - SetParticleSubType("pi"); - // Anti-particle of Pi0 is pi0 itself - SetAntiPDGEncoding(encoding); + if (theInstance !=0) return theInstance; + const G4String name = "pi0"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding - SetPDGStable(false); + anInstance = new G4ParticleDefinition( + name, 0.1349764*GeV, 7.8e-06*MeV, 0.0, + 0, -1, +1, + 2, 0, -1, + "meson", 0, 0, 111, + false, 8.4e-8*ns, NULL, + false, "pi", 111); - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); // create a decay channel G4VDecayChannel* mode; @@ -84,30 +87,19 @@ G4PionZero::G4PionZero( mode = new G4DalitzDecayChannel("pi0",0.012,"e-","e+"); table->Insert(mode); - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4PionZero G4PionZero::thePionZero( - "pi0", 0.1349764*GeV, 7.8e-06*MeV, 0.0, - 0, -1, +1, - 2, 0, -1, - "meson", 0, 0, 111, - false, 8.4e-8*ns, NULL -); - -G4PionZero* G4PionZero::PionZeroDefinition(){return &thePionZero;} - -G4PionZero* G4PionZero::PionZero(){return &thePionZero;} +G4PionZero* G4PionZero::PionZeroDefinition() +{ + return Definition(); +} +G4PionZero* G4PionZero::PionZero() +{ + return Definition(); +} diff --git a/source/particles/leptons/include/G4AntiNeutrinoE.hh b/source/particles/leptons/include/G4AntiNeutrinoE.hh index 54a061de04..5b34a2cd0c 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoE.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoE.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiNeutrinoE.hh,v 1.9 2002/12/16 11:15:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiNeutrinoE.hh,v 1.11 2005/01/14 03:49:16 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,50 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiNeutrinoE_h #define G4AntiNeutrinoE_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### ANTI NEUTRINO ### +// ### ANTI NEUTRINO E ### // ###################################################################### -class G4AntiNeutrinoE : public G4VLepton +class G4AntiNeutrinoE : public G4ParticleDefinition { private: - static G4AntiNeutrinoE theAntiNeutrinoE; - - private: // constructors are hide as private - G4AntiNeutrinoE( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiNeutrinoE* theInstance; + G4AntiNeutrinoE(){} + ~G4AntiNeutrinoE(){} public: - virtual ~G4AntiNeutrinoE(){} - + static G4AntiNeutrinoE* Definition(); static G4AntiNeutrinoE* AntiNeutrinoEDefinition(); static G4AntiNeutrinoE* AntiNeutrinoE(); - }; #endif diff --git a/source/particles/leptons/include/G4AntiNeutrinoMu.hh b/source/particles/leptons/include/G4AntiNeutrinoMu.hh index 58aff1db43..a540bd7b2f 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoMu.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoMu.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiNeutrinoMu.hh,v 1.9 2002/12/16 11:15:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiNeutrinoMu.hh,v 1.11 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,50 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiNeutrinoMu_h #define G4AntiNeutrinoMu_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### ANTI NEUTRINO ### +// ### ANTI NEUTRINO MU ### // ###################################################################### -class G4AntiNeutrinoMu : public G4VLepton +class G4AntiNeutrinoMu : public G4ParticleDefinition { private: - static G4AntiNeutrinoMu theAntiNeutrinoMu; - - private: // constructors are hide as private - G4AntiNeutrinoMu( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiNeutrinoMu* theInstance; + G4AntiNeutrinoMu(){} + ~G4AntiNeutrinoMu(){} public: - virtual ~G4AntiNeutrinoMu(){} - + static G4AntiNeutrinoMu* Definition(); static G4AntiNeutrinoMu* AntiNeutrinoMuDefinition(); static G4AntiNeutrinoMu* AntiNeutrinoMu(); - }; #endif diff --git a/source/particles/leptons/include/G4AntiNeutrinoTau.hh b/source/particles/leptons/include/G4AntiNeutrinoTau.hh index b01a13c0cc..1cf44b7e44 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoTau.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoTau.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiNeutrinoTau.hh,v 1.9 2002/12/16 11:15:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiNeutrinoTau.hh,v 1.12 2005/01/30 22:58:04 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4AntiNeutrinoTau_h #define G4AntiNeutrinoTau_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" + // ###################################################################### -// ### ANTI NEUTRINO ### +// ### ANTI NEUTRINO TAU ### // ###################################################################### -class G4AntiNeutrinoTau : public G4VLepton +class G4AntiNeutrinoTau : public G4ParticleDefinition { private: - static G4AntiNeutrinoTau theAntiNeutrinoTau; - - private: // constructors are hide as private - G4AntiNeutrinoTau( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4AntiNeutrinoTau* theInstance; + G4AntiNeutrinoTau(){} + ~G4AntiNeutrinoTau(){} public: - virtual ~G4AntiNeutrinoTau(){} - + static G4AntiNeutrinoTau* Definition(); static G4AntiNeutrinoTau* AntiNeutrinoTauDefinition(); static G4AntiNeutrinoTau* AntiNeutrinoTau(); - }; #endif diff --git a/source/particles/leptons/include/G4Electron.hh b/source/particles/leptons/include/G4Electron.hh index 2cb0adcdeb..462bd743b9 100644 --- a/source/particles/leptons/include/G4Electron.hh +++ b/source/particles/leptons/include/G4Electron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Electron.hh,v 1.8 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Electron.hh,v 1.11 2005/01/30 22:58:04 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,51 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Added SetCuts implementation for Electron, L.Urban, 30 May 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4Electron_h #define G4Electron_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" -class G4Positron; +#include "G4ParticleDefinition.hh" + // ###################################################################### // ### ELECTRON ### // ###################################################################### -class G4Electron : public G4VLepton +class G4Electron : public G4ParticleDefinition { - friend class G4Positron; private: - static G4Electron theElectron; - - private: //hide constructor as private - G4Electron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4Electron* theInstance; + G4Electron(){} + ~G4Electron(){} public: - virtual ~G4Electron(){} - + static G4Electron* Definition(); static G4Electron* ElectronDefinition(); static G4Electron* Electron(); - }; #endif diff --git a/source/particles/leptons/include/G4LeptonConstructor.hh b/source/particles/leptons/include/G4LeptonConstructor.hh index 974d9019ee..a4724aabb1 100644 --- a/source/particles/leptons/include/G4LeptonConstructor.hh +++ b/source/particles/leptons/include/G4LeptonConstructor.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LeptonConstructor.hh,v 1.3 2001/07/11 10:01:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LeptonConstructor.hh,v 1.5 2005/09/30 22:59:05 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,19 +37,18 @@ class G4LeptonConstructor { //This class is a utility class for constructLepton - //short lived particles public: G4LeptonConstructor(); ~G4LeptonConstructor(); public: - void ConstructParticle(); + static void ConstructParticle(); protected: - void ConstructELeptons(); - void ConstructMuLeptons(); - void ConstructTauLeptons(); + static void ConstructELeptons(); + static void ConstructMuLeptons(); + static void ConstructTauLeptons(); }; #endif diff --git a/source/particles/leptons/include/G4MuonMinus.hh b/source/particles/leptons/include/G4MuonMinus.hh index 13b76c0f9c..184b67868f 100644 --- a/source/particles/leptons/include/G4MuonMinus.hh +++ b/source/particles/leptons/include/G4MuonMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MuonMinus.hh,v 1.7 2001/10/16 08:16:15 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuonMinus.hh,v 1.10 2005/01/30 22:58:04 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,52 +31,33 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Added SetCuts, L.Urban, 12 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4MuonMinus_h #define G4MuonMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### MUONMINUS ### // ###################################################################### -class G4MuonMinus : public G4VLepton +class G4MuonMinus : public G4ParticleDefinition { private: - static G4MuonMinus theMuonMinus; + static G4MuonMinus* theInstance; + G4MuonMinus(){} + ~G4MuonMinus(){} - private: // constructors are hide as private - G4MuonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); public: - virtual ~G4MuonMinus(){} - + static G4MuonMinus* Definition(); static G4MuonMinus* MuonMinusDefinition(); static G4MuonMinus* MuonMinus(); - }; - #endif diff --git a/source/particles/leptons/include/G4MuonPlus.hh b/source/particles/leptons/include/G4MuonPlus.hh index 3666ca38b8..dc0f6e748f 100644 --- a/source/particles/leptons/include/G4MuonPlus.hh +++ b/source/particles/leptons/include/G4MuonPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MuonPlus.hh,v 1.7 2001/10/16 08:16:15 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuonPlus.hh,v 1.9 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,52 +31,33 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Added SetCuts, L.Urban, 12 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4MuonPlus_h #define G4MuonPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### MUONPLUS ### // ###################################################################### -class G4MuonPlus : public G4VLepton +class G4MuonPlus : public G4ParticleDefinition { private: - static G4MuonPlus theMuonPlus; - - private: // constructors are hide as private - G4MuonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4MuonPlus* theInstance; + G4MuonPlus(){} + ~G4MuonPlus(){} public: - virtual ~G4MuonPlus(){} - + static G4MuonPlus* Definition(); static G4MuonPlus* MuonPlusDefinition(); static G4MuonPlus* MuonPlus(); }; - #endif diff --git a/source/particles/leptons/include/G4NeutrinoE.hh b/source/particles/leptons/include/G4NeutrinoE.hh index 4ac8394dda..7e205b89be 100644 --- a/source/particles/leptons/include/G4NeutrinoE.hh +++ b/source/particles/leptons/include/G4NeutrinoE.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutrinoE.hh,v 1.9 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NeutrinoE.hh,v 1.11 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,50 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- - -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. #ifndef G4NeutrinoE_h #define G4NeutrinoE_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### NEUTRINO ### +// ### NEUTRINO E ### // ###################################################################### -class G4NeutrinoE : public G4VLepton +class G4NeutrinoE : public G4ParticleDefinition { private: - static G4NeutrinoE theNeutrinoE; - - private: - G4NeutrinoE( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); - - public: - virtual ~G4NeutrinoE(){} + static G4NeutrinoE* theInstance; + G4NeutrinoE(){} + ~G4NeutrinoE(){} + public: + static G4NeutrinoE* Definition(); static G4NeutrinoE* NeutrinoEDefinition(); static G4NeutrinoE* NeutrinoE(); - }; #endif diff --git a/source/particles/leptons/include/G4NeutrinoMu.hh b/source/particles/leptons/include/G4NeutrinoMu.hh index 3e8336e5ab..eaf0b5bfe6 100644 --- a/source/particles/leptons/include/G4NeutrinoMu.hh +++ b/source/particles/leptons/include/G4NeutrinoMu.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutrinoMu.hh,v 1.9 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NeutrinoMu.hh,v 1.11 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,49 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. #ifndef G4NeutrinoMu_h #define G4NeutrinoMu_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### -// ### NEUTRINO ### +// ### NEUTRINO MU ### // ###################################################################### -class G4NeutrinoMu : public G4VLepton +class G4NeutrinoMu : public G4ParticleDefinition { private: - static G4NeutrinoMu theNeutrinoMu; - - private: - G4NeutrinoMu( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4NeutrinoMu* theInstance; + G4NeutrinoMu(){} + ~G4NeutrinoMu(){} public: - virtual ~G4NeutrinoMu(){} - + static G4NeutrinoMu* Definition(); static G4NeutrinoMu* NeutrinoMuDefinition(); static G4NeutrinoMu* NeutrinoMu(); - }; #endif diff --git a/source/particles/leptons/include/G4NeutrinoTau.hh b/source/particles/leptons/include/G4NeutrinoTau.hh index 656971c5f9..81fd70a447 100644 --- a/source/particles/leptons/include/G4NeutrinoTau.hh +++ b/source/particles/leptons/include/G4NeutrinoTau.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutrinoTau.hh,v 1.9 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NeutrinoTau.hh,v 1.12 2005/01/30 22:58:04 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,48 +31,31 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. #ifndef G4NeutrinoTau_h #define G4NeutrinoTau_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" + // ###################################################################### -// ### NEUTRINO ### +// ### NEUTRINO TAU ### // ###################################################################### -class G4NeutrinoTau : public G4VLepton +class G4NeutrinoTau : public G4ParticleDefinition { private: - static G4NeutrinoTau theNeutrinoTau; - - private: - G4NeutrinoTau( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4NeutrinoTau* theInstance; + G4NeutrinoTau(){} + ~G4NeutrinoTau(){} public: - virtual ~G4NeutrinoTau(){} - + static G4NeutrinoTau* Definition(); static G4NeutrinoTau* NeutrinoTauDefinition(); static G4NeutrinoTau* NeutrinoTau(); - }; #endif diff --git a/source/particles/leptons/include/G4Positron.hh b/source/particles/leptons/include/G4Positron.hh index 4f57f698d3..394bb3760b 100644 --- a/source/particles/leptons/include/G4Positron.hh +++ b/source/particles/leptons/include/G4Positron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Positron.hh,v 1.8 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Positron.hh,v 1.10 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,51 +31,30 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added SetCuts, L.Urban, 12 June 1996 -// Revised, Hisaya Kurashige, 4 July 1996 -// Revised, Hisaya Kurashige, 7 July 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 -// Revised, Hisaya Kurashige, 15 Dec 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. #ifndef G4Positron_h #define G4Positron_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" -#include "G4Electron.hh" +#include "G4ParticleDefinition.hh" + // ###################################################################### // ### POSITRON ### // ###################################################################### -class G4Positron : public G4VLepton +class G4Positron : public G4ParticleDefinition { private: - static G4Positron thePositron; - - private: //hide constructor as private - G4Positron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4Positron* theInstance; + G4Positron(){} + ~G4Positron(){} public: - virtual ~G4Positron(){}; - + static G4Positron* Definition(); static G4Positron* PositronDefinition(); static G4Positron* Positron(); }; diff --git a/source/particles/leptons/include/G4TauMinus.hh b/source/particles/leptons/include/G4TauMinus.hh index 77b25cce3d..e3c25f871a 100644 --- a/source/particles/leptons/include/G4TauMinus.hh +++ b/source/particles/leptons/include/G4TauMinus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TauMinus.hh,v 1.7 2001/10/16 08:16:16 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TauMinus.hh,v 1.9 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,53 +31,33 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - #ifndef G4TauMinus_h #define G4TauMinus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### TAUMINUS ### // ###################################################################### -class G4TauMinus : public G4VLepton +class G4TauMinus : public G4ParticleDefinition { private: - static G4TauMinus theTauMinus; - - private: // constructors are hide as private - G4TauMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4TauMinus* theInstance; + G4TauMinus(){} + ~G4TauMinus(){} public: - virtual ~G4TauMinus(){} - - static G4TauMinus* TauMinusDefinition(); - static G4TauMinus* TauMinus(); - + static G4TauMinus* Definition(); + static G4TauMinus* TauMinusDefinition(); + static G4TauMinus* TauMinus(); }; - #endif diff --git a/source/particles/leptons/include/G4TauPlus.hh b/source/particles/leptons/include/G4TauPlus.hh index b30b840fb1..ce74df20e0 100644 --- a/source/particles/leptons/include/G4TauPlus.hh +++ b/source/particles/leptons/include/G4TauPlus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TauPlus.hh,v 1.7 2001/10/16 08:16:16 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TauPlus.hh,v 1.9 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -31,53 +31,32 @@ // History: first implementation, based on object model of // 4-th April 1996, G.Cosmo // **************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Revised, G.Cosmo, 6 June 1996 -// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996 +// New implementation as a utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------- -// Each class inheriting from G4VLepton -// corresponds to a particle type; one and only one -// instance for each class is guaranteed. - - #ifndef G4TauPlus_h #define G4TauPlus_h 1 #include "globals.hh" #include "G4ios.hh" -#include "G4VLepton.hh" +#include "G4ParticleDefinition.hh" // ###################################################################### // ### TAUPLUS ### // ###################################################################### -class G4TauPlus : public G4VLepton +class G4TauPlus : public G4ParticleDefinition { private: - static G4TauPlus theTauPlus; - - private: // constructors are hide as private - G4TauPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable - ); + static G4TauPlus* theInstance; + G4TauPlus(){} + ~G4TauPlus(){} public: - virtual ~G4TauPlus(){} - - static G4TauPlus* TauPlusDefinition(); - static G4TauPlus* TauPlus(); - + static G4TauPlus* Definition(); + static G4TauPlus* TauPlusDefinition(); + static G4TauPlus* TauPlus(); }; - #endif diff --git a/source/particles/leptons/include/G4VLepton.hh b/source/particles/leptons/include/G4VLepton.hh deleted file mode 100644 index 49e27b91ab..0000000000 --- a/source/particles/leptons/include/G4VLepton.hh +++ /dev/null @@ -1,87 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4VLepton.hh,v 1.5 2004/07/26 08:16:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// Revised, Hisaya Kurashige, 15 Dec 1996 -// Revised, Hisaya Kurashige, 24 Frb 1997 -// ------------------------------------------------------------ - -#ifndef G4VLepton_h -#define G4VLepton_h 1 - -#include "G4ios.hh" -#include "globals.hh" - -#include "G4ParticleDefinition.hh" - -class G4VLepton : public G4ParticleDefinition -{ - // A virtual class for Leptons particles. It defines - // public methods which describe the behavior of a - // lepton. - - private: - - const G4VLepton & operator=(const G4VLepton &right); - - public: - - G4VLepton(const G4String& aName, - G4double mass, - G4double width, - G4double charge, - G4int iSpin, - G4int iParity, - G4int iConjugation, - G4int iIsospin, - G4int iIsospinZ, - G4int gParity, - const G4String& pType, - G4int lepton, - G4int baryon, - G4int encoding, - G4bool stable, - G4double lifetime, - G4DecayTable *decaytable) - : G4ParticleDefinition(aName, mass, width, charge, iSpin, iParity, - iConjugation, iIsospin, iIsospinZ, gParity, - pType, lepton, baryon, encoding, stable, - lifetime, decaytable) {}; - - virtual ~G4VLepton() {}; - - G4int operator==(const G4VLepton &right) const; - G4int operator!=(const G4VLepton &right) const; - -}; - -#endif - diff --git a/source/particles/leptons/src/G4AntiNeutrinoE.cc b/source/particles/leptons/src/G4AntiNeutrinoE.cc index f55dda2f4a..b899e0d16c 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoE.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoE.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiNeutrinoE.cc,v 1.12 2003/06/16 16:57:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiNeutrinoE.cc,v 1.14 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,57 +31,57 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo by H.Kurashige,7 July 1996 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4AntiNeutrinoE.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### ANTI NEUTRINO ### +// ### ANTI NEUTRINO E ### // ###################################################################### -G4AntiNeutrinoE::G4AntiNeutrinoE( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiNeutrinoE* G4AntiNeutrinoE::theInstance = 0; + +G4AntiNeutrinoE* G4AntiNeutrinoE::Definition() { - SetParticleSubType("e"); -} -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// -G4AntiNeutrinoE G4AntiNeutrinoE::theAntiNeutrinoE( - "anti_nu_e", 0.0*MeV, 0.0*MeV, 0.0, + if (theInstance !=0) return theInstance; + const G4String name = "anti_nu_e"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, 1, 0, 0, 0, 0, 0, "lepton", -1, 0, -12, - true, 0.0, NULL -); - -G4AntiNeutrinoE* G4AntiNeutrinoE::AntiNeutrinoEDefinition() -{ - return &theAntiNeutrinoE; -} -G4AntiNeutrinoE* G4AntiNeutrinoE::AntiNeutrinoE() -{ - return &theAntiNeutrinoE; + true, 0.0, NULL, + false, "e" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } +G4AntiNeutrinoE* G4AntiNeutrinoE::AntiNeutrinoEDefinition() +{ + return Definition(); +} + +G4AntiNeutrinoE* G4AntiNeutrinoE::AntiNeutrinoE() +{ + return Definition(); +} + + diff --git a/source/particles/leptons/src/G4AntiNeutrinoMu.cc b/source/particles/leptons/src/G4AntiNeutrinoMu.cc index f845ab6fac..4a2ed32f0b 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoMu.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoMu.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiNeutrinoMu.cc,v 1.12 2003/06/16 16:57:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiNeutrinoMu.cc,v 1.14 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,59 +32,55 @@ // 4th April 1996, G.Cosmo // by H.Kurashige,7 July 1996 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4AntiNeutrinoMu.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### ANTI MU NEUTRINO ### // ###################################################################### +G4AntiNeutrinoMu* G4AntiNeutrinoMu::theInstance = 0; -G4AntiNeutrinoMu::G4AntiNeutrinoMu( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiNeutrinoMu* G4AntiNeutrinoMu::Definition() { - SetParticleSubType("mu"); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// -G4AntiNeutrinoMu G4AntiNeutrinoMu::theAntiNeutrinoMu( - "anti_nu_mu", 0.0*MeV, 0.0*MeV, 0.0, + if (theInstance !=0) return theInstance; + const G4String name = "anti_nu_mu"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, 1, 0, 0, 0, 0, 0, "lepton", -1, 0, -14, - true, 0.0, NULL -); - -G4AntiNeutrinoMu* G4AntiNeutrinoMu::AntiNeutrinoMuDefinition() -{ - return &theAntiNeutrinoMu; + true, 0.0, NULL, + false, "mu" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -G4AntiNeutrinoMu* G4AntiNeutrinoMu::AntiNeutrinoMu() +G4AntiNeutrinoMu* G4AntiNeutrinoMu::AntiNeutrinoMuDefinition() { - return &theAntiNeutrinoMu; + return Definition(); +} + +G4AntiNeutrinoMu* G4AntiNeutrinoMu::AntiNeutrinoMu() +{ + return Definition(); } diff --git a/source/particles/leptons/src/G4AntiNeutrinoTau.cc b/source/particles/leptons/src/G4AntiNeutrinoTau.cc index 40b7f16b31..27d25d5d74 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoTau.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoTau.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AntiNeutrinoTau.cc,v 1.12 2003/06/16 16:57:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4AntiNeutrinoTau.cc,v 1.14 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,59 +32,56 @@ // 4th April 1996, G.Cosmo // by H.Kurashige,7 July 1996 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4AntiNeutrinoTau.hh" +#include "G4ParticleTable.hh" + // ###################################################################### // ### ANTI TAU NEUTRINO ### // ###################################################################### +G4AntiNeutrinoTau* G4AntiNeutrinoTau::theInstance = 0; -G4AntiNeutrinoTau::G4AntiNeutrinoTau( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4AntiNeutrinoTau* G4AntiNeutrinoTau::Definition() { - SetParticleSubType("tau"); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// -G4AntiNeutrinoTau G4AntiNeutrinoTau::theAntiNeutrinoTau( - "anti_nu_tau", 0.0*MeV, 0.0*MeV, 0.0, + if (theInstance !=0) return theInstance; + const G4String name = "anti_nu_tau"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, 1, 0, 0, 0, 0, 0, "lepton", -1, 0, -16, - true, 0.0, NULL -); - -G4AntiNeutrinoTau* G4AntiNeutrinoTau::AntiNeutrinoTauDefinition() -{ - return &theAntiNeutrinoTau; + true, 0.0, NULL, + false, "tau" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -G4AntiNeutrinoTau* G4AntiNeutrinoTau::AntiNeutrinoTau() +G4AntiNeutrinoTau* G4AntiNeutrinoTau::AntiNeutrinoTauDefinition() { - return &theAntiNeutrinoTau; + return Definition(); +} + +G4AntiNeutrinoTau* G4AntiNeutrinoTau::AntiNeutrinoTau() +{ + return Definition(); } diff --git a/source/particles/leptons/src/G4Electron.cc b/source/particles/leptons/src/G4Electron.cc index a7d84cb5eb..6edb3d7fc4 100644 --- a/source/particles/leptons/src/G4Electron.cc +++ b/source/particles/leptons/src/G4Electron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Electron.cc,v 1.9 2003/06/16 16:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Electron.cc,v 1.11 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,66 +31,56 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Added SetCuts implementation, L.Urban, 30 May 1996 -// Revised, G.Cosmo, 6 June 1996 -// Code uses operators (+=, *=, ++, -> etc.) correctly, P. Urban, 26/6/96 -// Add ElectronDefinition() H.Kurashige 4 July 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4Electron.hh" +#include "G4ParticleTable.hh" + // ###################################################################### // ### ELECTRON ### // ###################################################################### +G4Electron* G4Electron::theInstance = 0; -G4Electron::G4Electron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Electron* G4Electron::Definition() { - SetParticleSubType("e"); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4Electron G4Electron::theElectron( - "e-", 0.51099906*MeV, 0.0*MeV, -1.*eplus, + if (theInstance !=0) return theInstance; + const G4String name = "e-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.51099906*MeV, 0.0*MeV, -1.*eplus, 1, 0, 0, 0, 0, 0, "lepton", 1, 0, 11, - true, -1.0, NULL -); - -G4Electron* G4Electron::ElectronDefinition(){return &theElectron;} - -G4Electron* G4Electron::Electron() -{ - return &theElectron; + true, -1.0, NULL, + false, "e" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} + +G4Electron* G4Electron::ElectronDefinition() +{ + return Definition(); +} + +G4Electron* G4Electron::Electron() +{ + return Definition(); } - - - - diff --git a/source/particles/leptons/src/G4LeptonConstructor.cc b/source/particles/leptons/src/G4LeptonConstructor.cc index 0183e826ba..9e6d10f88a 100644 --- a/source/particles/leptons/src/G4LeptonConstructor.cc +++ b/source/particles/leptons/src/G4LeptonConstructor.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LeptonConstructor.cc,v 1.3 2001/07/11 10:01:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LeptonConstructor.cc,v 1.4 2004/09/02 01:52:40 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4MuonMinus.cc b/source/particles/leptons/src/G4MuonMinus.cc index 27135daf97..8d4ca07879 100644 --- a/source/particles/leptons/src/G4MuonMinus.cc +++ b/source/particles/leptons/src/G4MuonMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MuonMinus.cc,v 1.8 2003/06/16 16:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuonMinus.cc,v 1.10 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,16 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Added SetCuts implementation, L.Urban, 12 June 1996 -// Operators (+=, *=, ++, -> etc.) correctly used, P. Urban, 26/6/96 -// Add MuonMinusDefinition(), H.Kurashige 4 July 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4MuonMinus.hh" +#include "G4ParticleTable.hh" #include "G4MuonDecayChannel.hh" #include "G4DecayTable.hh" @@ -48,57 +43,53 @@ // ###################################################################### // ### MUONMINUS ### // ###################################################################### +G4MuonMinus* G4MuonMinus::theInstance = 0; -G4MuonMinus::G4MuonMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4MuonMinus* G4MuonMinus::Definition() { - SetParticleSubType("mu"); - SetPDGStable(false); + if (theInstance !=0) return theInstance; + const G4String name = "mu-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.1056584*GeV, 2.99591e-16*MeV, -1.*eplus, + 1, 0, 0, + 0, 0, 0, + "lepton", 1, 0, 13, + false, 2197.03*ns, NULL, + false, "mu" + ); //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); + G4DecayTable* table = new G4DecayTable(); // create a decay channel G4VDecayChannel* mode = new G4MuonDecayChannel("mu-",1.00); table->Insert(mode); - - SetDecayTable(table); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4MuonMinus G4MuonMinus::theMuonMinus( - "mu-", 0.1056584*GeV, 2.99591e-16*MeV, -1.*eplus, - 1, 0, 0, - 0, 0, 0, - "lepton", 1, 0, 13, - true, 2197.03*ns, NULL -); - -G4MuonMinus* G4MuonMinus::MuonMinusDefinition() {return &theMuonMinus;} +G4MuonMinus* G4MuonMinus::MuonMinusDefinition() +{ + return Definition(); +} G4MuonMinus* G4MuonMinus::MuonMinus() -{ - return &theMuonMinus; +{ + return Definition(); } + diff --git a/source/particles/leptons/src/G4MuonPlus.cc b/source/particles/leptons/src/G4MuonPlus.cc index d0e3ef8347..4abfc3f34a 100644 --- a/source/particles/leptons/src/G4MuonPlus.cc +++ b/source/particles/leptons/src/G4MuonPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MuonPlus.cc,v 1.8 2003/06/16 16:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuonPlus.cc,v 1.10 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,16 +31,11 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Added SetCuts implementation, L.Urban, 10 May 1996 -// Operators (+=, *=, ++, -> etc.) correctly used, P. Urban, 26/6/96 -// Add MuonPlusDefinition(), H.Kurashige 4 July 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4MuonPlus.hh" +#include "G4ParticleTable.hh" #include "G4MuonDecayChannel.hh" #include "G4DecayTable.hh" @@ -48,65 +43,52 @@ // ###################################################################### // ### MUONPLUS ### // ###################################################################### +G4MuonPlus* G4MuonPlus::theInstance = 0; -G4MuonPlus::G4MuonPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4MuonPlus* G4MuonPlus::Definition() { - SetParticleSubType("mu"); - SetPDGStable(false); - - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); - - // create a decay channel - G4VDecayChannel* mode = new G4MuonDecayChannel("mu+",1.00); - table->Insert(mode); - - SetDecayTable(table); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -G4MuonPlus G4MuonPlus::theMuonPlus( - "mu+", 0.1056584*GeV, 2.99591e-16*MeV, +1.*eplus, + if (theInstance !=0) return theInstance; + const G4String name = "mu+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.1056584*GeV, 2.99591e-16*MeV, +1.*eplus, 1, 0, 0, 0, 0, 0, "lepton", -1, 0, -13, - true, 2197.03*ns, NULL -); - -G4MuonPlus* G4MuonPlus::MuonPlusDefinition() {return &theMuonPlus;} - -G4MuonPlus* G4MuonPlus::MuonPlus() -{ - return &theMuonPlus; + false, 2197.03*ns, NULL, + false, "mu" + ); + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + // create a decay channel + G4VDecayChannel* mode = new G4MuonDecayChannel("mu+",1.00); + table->Insert(mode); + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } +G4MuonPlus* G4MuonPlus::MuonPlusDefinition() +{ + return Definition(); +} - - - - - +G4MuonPlus* G4MuonPlus::MuonPlus() +{ + return Definition(); +} diff --git a/source/particles/leptons/src/G4NeutrinoE.cc b/source/particles/leptons/src/G4NeutrinoE.cc index ad5635e2df..e0e24195b1 100644 --- a/source/particles/leptons/src/G4NeutrinoE.cc +++ b/source/particles/leptons/src/G4NeutrinoE.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutrinoE.cc,v 1.12 2003/06/16 16:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NeutrinoE.cc,v 1.14 2005/01/14 03:49:17 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,52 +32,55 @@ // 4th April 1996, G.Cosmo // by H.Kurashige,7 July 1996 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4NeutrinoE.hh" +#include "G4ParticleTable.hh" // ###################################################################### -// ### NEUTRINO ### +// ### NEUTRINO E ### // ###################################################################### +G4NeutrinoE* G4NeutrinoE::theInstance = 0; -G4NeutrinoE::G4NeutrinoE( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4NeutrinoE* G4NeutrinoE::Definition() { - SetParticleSubType("e"); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4NeutrinoE G4NeutrinoE::theNeutrinoE( - "nu_e", 0.0*MeV, 0.0*MeV, 0.0, + if (theInstance !=0) return theInstance; + const G4String name = "nu_e"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, 1, 0, 0, 0, 0, 0, "lepton", 1, 0, 12, - true, 0.0, NULL -); + true, 0.0, NULL, + false, "e" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} -G4NeutrinoE* G4NeutrinoE::NeutrinoEDefinition() {return &theNeutrinoE;} -G4NeutrinoE* G4NeutrinoE::NeutrinoE() {return &theNeutrinoE;} +G4NeutrinoE* G4NeutrinoE::NeutrinoEDefinition() +{ + return Definition(); +} + +G4NeutrinoE* G4NeutrinoE::NeutrinoE() +{ + return Definition(); +} diff --git a/source/particles/leptons/src/G4NeutrinoMu.cc b/source/particles/leptons/src/G4NeutrinoMu.cc index 23ba4f008a..424028cdda 100644 --- a/source/particles/leptons/src/G4NeutrinoMu.cc +++ b/source/particles/leptons/src/G4NeutrinoMu.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutrinoMu.cc,v 1.13 2003/06/16 16:57:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NeutrinoMu.cc,v 1.15 2005/01/14 03:49:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,59 +32,56 @@ // 4th April 1996, G.Cosmo // by H.Kurashige,7 July 1996 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4NeutrinoMu.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### MU NEUTRINO ### // ###################################################################### +G4NeutrinoMu* G4NeutrinoMu::theInstance = 0; -G4NeutrinoMu::G4NeutrinoMu( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4NeutrinoMu* G4NeutrinoMu::Definition() { - SetParticleSubType("mu"); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4NeutrinoMu G4NeutrinoMu::theNeutrinoMu( - "nu_mu", 0.0*MeV, 0.0*MeV, 0.0, + if (theInstance !=0) return theInstance; + const G4String name = "nu_mu"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, 1, 0, 0, 0, 0, 0, "lepton", 1, 0, 14, - true, 0.0, NULL -); - -G4NeutrinoMu* G4NeutrinoMu::NeutrinoMuDefinition() -{ - return &theNeutrinoMu; + true, 0.0, NULL, + false, "mu" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; } -G4NeutrinoMu* G4NeutrinoMu::NeutrinoMu() +G4NeutrinoMu* G4NeutrinoMu::NeutrinoMuDefinition() { - return &theNeutrinoMu; + return Definition(); } +G4NeutrinoMu* G4NeutrinoMu::NeutrinoMu() +{ + return Definition(); +} + + diff --git a/source/particles/leptons/src/G4NeutrinoTau.cc b/source/particles/leptons/src/G4NeutrinoTau.cc index 0048931afe..324a1e5a89 100644 --- a/source/particles/leptons/src/G4NeutrinoTau.cc +++ b/source/particles/leptons/src/G4NeutrinoTau.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutrinoTau.cc,v 1.12 2003/06/16 16:57:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NeutrinoTau.cc,v 1.14 2005/01/14 03:49:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,52 +32,55 @@ // 4th April 1996, G.Cosmo // by H.Kurashige,7 July 1996 // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4NeutrinoTau.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### TAU NEUTRINO ### // ###################################################################### +G4NeutrinoTau* G4NeutrinoTau::theInstance = 0; -G4NeutrinoTau::G4NeutrinoTau( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4NeutrinoTau* G4NeutrinoTau::Definition() { - SetParticleSubType("tau"); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4NeutrinoTau G4NeutrinoTau::theNeutrinoTau( - "nu_tau", 0.0*MeV, 0.0*MeV, 0.0, + if (theInstance !=0) return theInstance; + const G4String name = "nu_tau"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.0*MeV, 0.0*MeV, 0.0, 1, 0, 0, 0, 0, 0, "lepton", 1, 0, 16, - true, 0.0, NULL -); + true, 0.0, NULL, + false, "tau" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} -G4NeutrinoTau* G4NeutrinoTau::NeutrinoTauDefinition(){return &theNeutrinoTau;} -G4NeutrinoTau* G4NeutrinoTau::NeutrinoTau(){return &theNeutrinoTau;} +G4NeutrinoTau* G4NeutrinoTau::NeutrinoTauDefinition() +{ + return Definition(); +} + +G4NeutrinoTau* G4NeutrinoTau::NeutrinoTau() +{ + return Definition(); +} diff --git a/source/particles/leptons/src/G4Positron.cc b/source/particles/leptons/src/G4Positron.cc index 9bd21cfdd7..b9e3fc1779 100644 --- a/source/particles/leptons/src/G4Positron.cc +++ b/source/particles/leptons/src/G4Positron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Positron.cc,v 1.8 2003/06/16 16:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Positron.cc,v 1.10 2005/01/14 03:49:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -31,60 +31,56 @@ // History: first implementation, based on object model of // 4th April 1996, G.Cosmo // ********************************************************************** -// Added particle definitions, H.Kurashige, 19 April 1996 -// Added SetCuts implementation, L.Urban, 12 June 1996 -// Code uses operators (+=, *=, ++, -> etc.) correctly, P. Urban, 26/6/96 -// Add PositronDefinition(), H.Kurashige 4 July 1996 +// New impelemenataion as an utility class M.Asai, 26 July 2004 // ---------------------------------------------------------------------- -#include -#include - #include "G4Positron.hh" +#include "G4ParticleTable.hh" // ###################################################################### // ### POSITRON ### // ###################################################################### +G4Positron* G4Positron::theInstance = 0; -G4Positron::G4Positron( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4Positron* G4Positron::Definition() { - SetParticleSubType("e"); -} - - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -G4Positron G4Positron::thePositron( - "e+", 0.51099906*MeV, 0.0*MeV, +1.*eplus, + if (theInstance !=0) return theInstance; + const G4String name = "e+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 0.51099906*MeV, 0.0*MeV, +1.*eplus, 1, 0, 0, 0, 0, 0, "lepton", -1, 0, -11, - true, -1.0, NULL -); + true, -1.0, NULL, + false, "e" + ); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} -G4Positron* G4Positron::PositronDefinition() {return &thePositron;} +G4Positron* G4Positron::PositronDefinition() +{ + return Definition(); +} G4Positron* G4Positron::Positron() { - return &thePositron; + return Definition(); } + + diff --git a/source/particles/leptons/src/G4TauMinus.cc b/source/particles/leptons/src/G4TauMinus.cc index 0c9a9aabd8..9e1bcd6b9b 100644 --- a/source/particles/leptons/src/G4TauMinus.cc +++ b/source/particles/leptons/src/G4TauMinus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TauMinus.cc,v 1.10 2004/02/13 05:53:01 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TauMinus.cc,v 1.12 2005/01/14 03:49:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,11 +32,11 @@ // 4th April 1996, G.Cosmo // 7 July 1996 H.Kurashige // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4TauMinus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4TauLeptonicDecayChannel.hh" @@ -45,88 +45,87 @@ // ###################################################################### // ### TAUMINUS ### // ###################################################################### +G4TauMinus* G4TauMinus::theInstance = 0; -G4TauMinus::G4TauMinus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4TauMinus* G4TauMinus::Definition() { - SetParticleSubType("tau"); - SetPDGStable(false); - - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); - - // create decay channels - G4VDecayChannel** mode = new G4VDecayChannel*[6]; - // tau- -> mu- + anti_nu_mu + nu_tau - mode[0] = new G4TauLeptonicDecayChannel("tau-",0.174,"mu-"); - // tau- -> e- + anti_nu_e + nu_tau - mode[1] = new G4TauLeptonicDecayChannel("tau-",0.178,"e-"); - // tau- -> pi- + nu_tau - mode[2] = new G4PhaseSpaceDecayChannel("tau-",0.113,2,"pi-","nu_tau"); - // tau- -> pi0 + pi0 + pi- + nu_tau - mode[3] = new G4PhaseSpaceDecayChannel("tau-",0.252,3,"pi0","pi-","nu_tau"); - // tau- -> pi0 + pi0 + pi- + nu_tau - mode[4] = new G4PhaseSpaceDecayChannel(); - mode[4]->SetParent("tau-"); - mode[4]->SetBR(0.093); - mode[4]->SetNumberOfDaughters(4); - mode[4]->SetDaughter(0,"pi0"); - mode[4]->SetDaughter(1,"pi0"); - mode[4]->SetDaughter(2,"pi-"); - mode[4]->SetDaughter(3,"nu_tau"); - // tau- -> pi- + pi- + pi+ + nu_tau - mode[5] = new G4PhaseSpaceDecayChannel(); - mode[5]->SetParent("tau-"); - mode[5]->SetBR(0.098); - mode[5]->SetNumberOfDaughters(4); - mode[5]->SetDaughter(0,"pi-"); - mode[5]->SetDaughter(1,"pi-"); - mode[5]->SetDaughter(2,"pi+"); - mode[5]->SetDaughter(3,"nu_tau"); - - for (G4int index=0; index <6; index++ ) table->Insert(mode[index]); - delete [] mode; - - SetDecayTable(table); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table - -G4TauMinus G4TauMinus::theTauMinus( - "tau-", 1.77705*GeV, 2.265e-9*MeV, -1.*eplus, + if (theInstance !=0) return theInstance; + const G4String name = "tau-"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 1.77705*GeV, 2.265e-9*MeV, -1.*eplus, 1, 0, 0, 0, 0, 0, "lepton", 1, 0, 15, - true, 295.6e-6*ns, NULL -); + false, 295.6e-6*ns, NULL, + false, "tau" + ); -G4TauMinus* G4TauMinus::TauMinusDefinition() {return &theTauMinus;} + //create Decay Table + G4DecayTable* table = new G4DecayTable(); + + // create decay channels + G4VDecayChannel* mode; + // tau- -> mu- + anti_nu_mu + nu_tau + mode = new G4TauLeptonicDecayChannel("tau-",0.174,"mu-"); + table->Insert(mode); + // tau- -> e- + anti_nu_e + nu_tau + mode = new G4TauLeptonicDecayChannel("tau-",0.178,"e-"); + table->Insert(mode); + // tau- -> pi- + nu_tau + mode = new G4PhaseSpaceDecayChannel("tau-",0.113,2,"pi-","nu_tau"); + table->Insert(mode); + // tau- -> pi0 + pi0 + pi- + nu_tau + mode = new G4PhaseSpaceDecayChannel("tau-",0.252,3,"pi0","pi-","nu_tau"); + table->Insert(mode); + // tau- -> pi0 + pi0 + pi- + nu_tau + mode = new G4PhaseSpaceDecayChannel(); + mode->SetParent("tau-"); + mode->SetBR(0.093); + mode->SetNumberOfDaughters(4); + mode->SetDaughter(0,"pi0"); + mode->SetDaughter(1,"pi0"); + mode->SetDaughter(2,"pi-"); + mode->SetDaughter(3,"nu_tau"); + table->Insert(mode); + // tau- -> pi- + pi- + pi+ + nu_tau + mode = new G4PhaseSpaceDecayChannel(); + mode->SetParent("tau-"); + mode->SetBR(0.098); + mode->SetNumberOfDaughters(4); + mode->SetDaughter(0,"pi-"); + mode->SetDaughter(1,"pi-"); + mode->SetDaughter(2,"pi+"); + mode->SetDaughter(3,"nu_tau"); + table->Insert(mode); + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} + +G4TauMinus* G4TauMinus::TauMinusDefinition() +{ + return Definition(); +} G4TauMinus* G4TauMinus::TauMinus() -{ - return &theTauMinus; +{ + return Definition(); } diff --git a/source/particles/leptons/src/G4TauPlus.cc b/source/particles/leptons/src/G4TauPlus.cc index 9af670c15b..3736fad099 100644 --- a/source/particles/leptons/src/G4TauPlus.cc +++ b/source/particles/leptons/src/G4TauPlus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TauPlus.cc,v 1.10 2004/02/13 05:53:01 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TauPlus.cc,v 1.12 2005/01/14 03:49:18 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -32,11 +32,11 @@ // 4th April 1996, G.Cosmo // 7 July 1996 H.Kurashige // ********************************************************************** - -#include -#include +// New impelemenataion as an utility class M.Asai, 26 July 2004 +// ---------------------------------------------------------------------- #include "G4TauPlus.hh" +#include "G4ParticleTable.hh" #include "G4PhaseSpaceDecayChannel.hh" #include "G4TauLeptonicDecayChannel.hh" @@ -45,88 +45,86 @@ // ###################################################################### // ### TAPLUS ### // ###################################################################### +G4TauPlus* G4TauPlus::theInstance = 0; -G4TauPlus::G4TauPlus( - const G4String& aName, G4double mass, - G4double width, G4double charge, - G4int iSpin, G4int iParity, - G4int iConjugation, G4int iIsospin, - G4int iIsospin3, G4int gParity, - const G4String& pType, G4int lepton, - G4int baryon, G4int encoding, - G4bool stable, G4double lifetime, - G4DecayTable *decaytable ) - : G4VLepton( aName,mass,width,charge,iSpin,iParity, - iConjugation,iIsospin,iIsospin3,gParity,pType, - lepton,baryon,encoding,stable,lifetime,decaytable ) +G4TauPlus* G4TauPlus::Definition() { - SetParticleSubType("tau"); - SetPDGStable(false); - - //create Decay Table - G4DecayTable* table = GetDecayTable(); - if (table!=NULL) delete table; - table = new G4DecayTable(); - - // create decay channels - G4VDecayChannel** mode = new G4VDecayChannel*[6]; - // tau+ -> mu+ + nu_mu + anti_nu_tau - mode[0] = new G4TauLeptonicDecayChannel("tau+",0.174,"mu+"); - // tau+ -> e+ + nu_e + anti_nu_tau - mode[1] = new G4TauLeptonicDecayChannel("tau+",0.178,"e+"); - // tau+ -> pi+ + anti_nu_tau - mode[2] = new G4PhaseSpaceDecayChannel("tau+",0.113,2,"pi+","anti_nu_tau"); - // tau+ -> pi0 + pi0 + pi+ + anti_nu_tau - mode[3] = new G4PhaseSpaceDecayChannel("tau+",0.252,3,"pi0","pi+","anti_nu_tau"); - // tau+ -> pi0 + pi0 + pi+ + anti_nu_tau - mode[4] = new G4PhaseSpaceDecayChannel(); - mode[4]->SetParent("tau+"); - mode[4]->SetBR(0.093); - mode[4]->SetNumberOfDaughters(4); - mode[4]->SetDaughter(0,"pi0"); - mode[4]->SetDaughter(1,"pi0"); - mode[4]->SetDaughter(2,"pi+"); - mode[4]->SetDaughter(3,"anti_nu_tau"); - // tau+ -> pi+ + pi+ + pi- + anti_nu_tau - mode[5] = new G4PhaseSpaceDecayChannel(); - mode[5]->SetParent("tau+"); - mode[5]->SetBR(0.098); - mode[5]->SetNumberOfDaughters(4); - mode[5]->SetDaughter(0,"pi+"); - mode[5]->SetDaughter(1,"pi+"); - mode[5]->SetDaughter(2,"pi-"); - mode[5]->SetDaughter(3,"anti_nu_tau"); - - for (G4int index=0; index <6; index++ ) table->Insert(mode[index]); - - delete [] mode; - - SetDecayTable(table); -} - -// ...................................................................... -// ... static member definitions ... -// ...................................................................... -// -// Arguments for constructor are as follows -// name mass width charge -// 2*spin parity C-conjugation -// 2*Isospin 2*Isospin3 G-parity -// type lepton number baryon number PDG encoding -// stable lifetime decay table -// -G4TauPlus G4TauPlus::theTauPlus( - "tau+", 1.77705*GeV, 2.265e-9*MeV, 1.*eplus, + if (theInstance !=0) return theInstance; + const G4String name = "tau+"; + // search in particle table] + G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); + G4ParticleDefinition* anInstance = pTable->FindParticle(name); + if (anInstance ==0) + { + // create particle + // + // Arguments for constructor are as follows + // name mass width charge + // 2*spin parity C-conjugation + // 2*Isospin 2*Isospin3 G-parity + // type lepton number baryon number PDG encoding + // stable lifetime decay table + // shortlived subType anti_encoding + anInstance = new G4ParticleDefinition( + name, 1.77705*GeV, 2.265e-9*MeV, 1.*eplus, 1, 0, 0, 0, 0, 0, "lepton", -1, 0, -15, - true, 295.6e-6*ns, NULL -); + false, 295.6e-6*ns, NULL, + false, "tau" + ); -G4TauPlus* G4TauPlus::TauPlusDefinition(){return &theTauPlus;} + //create Decay Table + G4DecayTable* table = new G4DecayTable(); -G4TauPlus* G4TauPlus::TauPlus() -{ - return &theTauPlus; + // create decay channels + G4VDecayChannel* mode; + // tau+ -> mu+ + nu_mu + anti_nu_tau + mode = new G4TauLeptonicDecayChannel("tau+",0.174,"mu+"); + table->Insert(mode); + // tau+ -> e+ + nu_e + anti_nu_tau + mode = new G4TauLeptonicDecayChannel("tau+",0.178,"e+"); + table->Insert(mode); + // tau+ -> pi+ + anti_nu_tau + mode = new G4PhaseSpaceDecayChannel("tau+",0.113,2,"pi+","anti_nu_tau"); + table->Insert(mode); + // tau+ -> pi0 + pi0 + pi+ + anti_nu_tau + mode = new G4PhaseSpaceDecayChannel("tau+",0.252,3,"pi0","pi+","anti_nu_tau"); + table->Insert(mode); + // tau+ -> pi0 + pi0 + pi+ + anti_nu_tau + mode = new G4PhaseSpaceDecayChannel(); + mode->SetParent("tau+"); + mode->SetBR(0.093); + mode->SetNumberOfDaughters(4); + mode->SetDaughter(0,"pi0"); + mode->SetDaughter(1,"pi0"); + mode->SetDaughter(2,"pi+"); + mode->SetDaughter(3,"anti_nu_tau"); + table->Insert(mode); + // tau+ -> pi+ + pi+ + pi- + anti_nu_tau + mode = new G4PhaseSpaceDecayChannel(); + mode->SetParent("tau+"); + mode->SetBR(0.098); + mode->SetNumberOfDaughters(4); + mode->SetDaughter(0,"pi+"); + mode->SetDaughter(1,"pi+"); + mode->SetDaughter(2,"pi-"); + mode->SetDaughter(3,"anti_nu_tau"); + table->Insert(mode); + + anInstance->SetDecayTable(table); + } + theInstance = reinterpret_cast(anInstance); + return theInstance; +} + +G4TauPlus* G4TauPlus::TauPlusDefinition() +{ + return Definition(); +} + +G4TauPlus* G4TauPlus::TauPlus() +{ + return Definition(); } diff --git a/source/particles/management/include/G4DalitzDecayChannel.hh b/source/particles/management/include/G4DalitzDecayChannel.hh index c20d0b7b72..73edbec223 100644 --- a/source/particles/management/include/G4DalitzDecayChannel.hh +++ b/source/particles/management/include/G4DalitzDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4DalitzDecayChannel.hh,v 1.4 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayProducts.hh b/source/particles/management/include/G4DecayProducts.hh index 1d57396086..c13eff028a 100644 --- a/source/particles/management/include/G4DecayProducts.hh +++ b/source/particles/management/include/G4DecayProducts.hh @@ -22,7 +22,7 @@ // // // $Id: G4DecayProducts.hh,v 1.11 2004/06/11 14:25:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayTable.hh b/source/particles/management/include/G4DecayTable.hh index 27ae54da3a..6f0c2a326a 100644 --- a/source/particles/management/include/G4DecayTable.hh +++ b/source/particles/management/include/G4DecayTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4DecayTable.hh,v 1.8 2003/06/16 16:58:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayTableMessenger.hh b/source/particles/management/include/G4DecayTableMessenger.hh index 50fab6cd07..ee256602a2 100644 --- a/source/particles/management/include/G4DecayTableMessenger.hh +++ b/source/particles/management/include/G4DecayTableMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4DecayTableMessenger.hh,v 1.7 2003/05/19 17:10:07 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4DynamicParticle.hh b/source/particles/management/include/G4DynamicParticle.hh index 86d6a45284..08f91b8f60 100644 --- a/source/particles/management/include/G4DynamicParticle.hh +++ b/source/particles/management/include/G4DynamicParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticle.hh,v 1.16 2005/05/30 07:13:18 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DynamicParticle.icc b/source/particles/management/include/G4DynamicParticle.icc index 1e54a66e1c..da9c84fa1f 100644 --- a/source/particles/management/include/G4DynamicParticle.icc +++ b/source/particles/management/include/G4DynamicParticle.icc @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticle.icc,v 1.14 2005/05/30 07:13:18 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DynamicParticleFastVector.hh b/source/particles/management/include/G4DynamicParticleFastVector.hh index 96cd445641..f40fd34897 100644 --- a/source/particles/management/include/G4DynamicParticleFastVector.hh +++ b/source/particles/management/include/G4DynamicParticleFastVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticleFastVector.hh,v 1.3 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ElectronOccupancy.hh b/source/particles/management/include/G4ElectronOccupancy.hh index d7e4cc65ee..77e44b1abb 100644 --- a/source/particles/management/include/G4ElectronOccupancy.hh +++ b/source/particles/management/include/G4ElectronOccupancy.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElectronOccupancy.hh,v 1.8 2004/06/11 14:25:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4IonTable.hh b/source/particles/management/include/G4IonTable.hh index ceae3c30d4..bf152eff28 100644 --- a/source/particles/management/include/G4IonTable.hh +++ b/source/particles/management/include/G4IonTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonTable.hh,v 1.21 2004/12/02 08:08:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4Ions.hh b/source/particles/management/include/G4Ions.hh index 09f88025b2..7000d89f91 100644 --- a/source/particles/management/include/G4Ions.hh +++ b/source/particles/management/include/G4Ions.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ions.hh,v 1.10 2003/03/11 05:49:41 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4IsotopeProperty.hh b/source/particles/management/include/G4IsotopeProperty.hh index 4c6ceda87a..2a711900c8 100644 --- a/source/particles/management/include/G4IsotopeProperty.hh +++ b/source/particles/management/include/G4IsotopeProperty.hh @@ -22,7 +22,7 @@ // // // $Id: G4IsotopeProperty.hh,v 1.3 2001/07/11 10:01:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4KL3DecayChannel.hh b/source/particles/management/include/G4KL3DecayChannel.hh index d9eae797c3..5992d472e6 100644 --- a/source/particles/management/include/G4KL3DecayChannel.hh +++ b/source/particles/management/include/G4KL3DecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4KL3DecayChannel.hh,v 1.4 2001/07/11 10:01:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4MuonDecayChannel.hh b/source/particles/management/include/G4MuonDecayChannel.hh index a58dfa0eab..205829355c 100644 --- a/source/particles/management/include/G4MuonDecayChannel.hh +++ b/source/particles/management/include/G4MuonDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuonDecayChannel.hh,v 1.5 2001/07/11 10:01:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NeutronBetaDecayChannel.hh b/source/particles/management/include/G4NeutronBetaDecayChannel.hh index d62baede11..6e3d396faa 100644 --- a/source/particles/management/include/G4NeutronBetaDecayChannel.hh +++ b/source/particles/management/include/G4NeutronBetaDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronBetaDecayChannel.hh,v 1.1 2001/09/18 02:15:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NucleiProperties.hh b/source/particles/management/include/G4NucleiProperties.hh index bdb3a08bbd..7ec78c06af 100644 --- a/source/particles/management/include/G4NucleiProperties.hh +++ b/source/particles/management/include/G4NucleiProperties.hh @@ -22,7 +22,7 @@ // // // $Id: G4NucleiProperties.hh,v 1.13 2001/10/16 08:16:19 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NucleiPropertiesTable.hh b/source/particles/management/include/G4NucleiPropertiesTable.hh index aca851ea08..4e29c7164a 100644 --- a/source/particles/management/include/G4NucleiPropertiesTable.hh +++ b/source/particles/management/include/G4NucleiPropertiesTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTable.hh,v 1.12 2004/12/02 08:08:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1997 diff --git a/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh b/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh index 6fa622383b..2da9a7089a 100644 --- a/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh +++ b/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTheoreticalTable.hh,v 1.6 2003/12/12 06:48:41 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4PDGCodeChecker.hh b/source/particles/management/include/G4PDGCodeChecker.hh index 1083a349f2..2756f0c597 100644 --- a/source/particles/management/include/G4PDGCodeChecker.hh +++ b/source/particles/management/include/G4PDGCodeChecker.hh @@ -22,7 +22,7 @@ // // // $Id: G4PDGCodeChecker.hh,v 1.6 2001/07/11 10:01:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleDefinition.hh b/source/particles/management/include/G4ParticleDefinition.hh index d7d6fcdc11..6b46bae2fd 100644 --- a/source/particles/management/include/G4ParticleDefinition.hh +++ b/source/particles/management/include/G4ParticleDefinition.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleDefinition.hh,v 1.27 2005/01/14 03:00:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleDefinition.icc b/source/particles/management/include/G4ParticleDefinition.icc index 9ea06491dc..060c29fefc 100644 --- a/source/particles/management/include/G4ParticleDefinition.icc +++ b/source/particles/management/include/G4ParticleDefinition.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleDefinition.icc,v 1.9 2005/01/14 03:00:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // inline diff --git a/source/particles/management/include/G4ParticleMessenger.hh b/source/particles/management/include/G4ParticleMessenger.hh index 56595995f5..93803dd4ba 100644 --- a/source/particles/management/include/G4ParticleMessenger.hh +++ b/source/particles/management/include/G4ParticleMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleMessenger.hh,v 1.6 2003/05/19 17:10:22 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4ParticleMomentum.hh b/source/particles/management/include/G4ParticleMomentum.hh index f2971feca1..599405b5f4 100644 --- a/source/particles/management/include/G4ParticleMomentum.hh +++ b/source/particles/management/include/G4ParticleMomentum.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleMomentum.hh,v 1.5 2001/07/11 10:01:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticlePropertyData.hh b/source/particles/management/include/G4ParticlePropertyData.hh index 85db5a1cfb..a753c58730 100644 --- a/source/particles/management/include/G4ParticlePropertyData.hh +++ b/source/particles/management/include/G4ParticlePropertyData.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticlePropertyData.hh,v 1.1 2003/06/11 07:20:06 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticlePropertyMessenger.hh b/source/particles/management/include/G4ParticlePropertyMessenger.hh index eae393f502..d8d5e6c288 100644 --- a/source/particles/management/include/G4ParticlePropertyMessenger.hh +++ b/source/particles/management/include/G4ParticlePropertyMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticlePropertyMessenger.hh,v 1.6 2003/05/19 17:10:22 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4ParticlePropertyTable.hh b/source/particles/management/include/G4ParticlePropertyTable.hh index 3ebff3e632..10275e1134 100644 --- a/source/particles/management/include/G4ParticlePropertyTable.hh +++ b/source/particles/management/include/G4ParticlePropertyTable.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ParticlePropertyTable.hh,v 1.3 2003/12/09 15:35:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTable.hh b/source/particles/management/include/G4ParticleTable.hh index 9c92eb6f01..4ad2639c5f 100644 --- a/source/particles/management/include/G4ParticleTable.hh +++ b/source/particles/management/include/G4ParticleTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTable.hh,v 1.17 2004/08/31 19:10:49 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTable.icc b/source/particles/management/include/G4ParticleTable.icc index 19662eba0f..dbec455d5a 100644 --- a/source/particles/management/include/G4ParticleTable.icc +++ b/source/particles/management/include/G4ParticleTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTable.icc,v 1.9 2004/08/31 19:10:50 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTableIterator.hh b/source/particles/management/include/G4ParticleTableIterator.hh index 23b76a83c3..19b4a51f90 100644 --- a/source/particles/management/include/G4ParticleTableIterator.hh +++ b/source/particles/management/include/G4ParticleTableIterator.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTableIterator.hh,v 1.6 2003/06/16 16:58:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleWithCuts.hh b/source/particles/management/include/G4ParticleWithCuts.hh index 89b237593d..c918a8b610 100644 --- a/source/particles/management/include/G4ParticleWithCuts.hh +++ b/source/particles/management/include/G4ParticleWithCuts.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleWithCuts.hh,v 1.18 2003/06/25 10:18:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------- diff --git a/source/particles/management/include/G4PhaseSpaceDecayChannel.hh b/source/particles/management/include/G4PhaseSpaceDecayChannel.hh index 12527190ab..5d20c63a5f 100644 --- a/source/particles/management/include/G4PhaseSpaceDecayChannel.hh +++ b/source/particles/management/include/G4PhaseSpaceDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhaseSpaceDecayChannel.hh,v 1.5 2001/10/15 09:58:31 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4PrimaryParticle.hh b/source/particles/management/include/G4PrimaryParticle.hh index 1270e00290..b92ea7ffb3 100644 --- a/source/particles/management/include/G4PrimaryParticle.hh +++ b/source/particles/management/include/G4PrimaryParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryParticle.hh,v 1.2 2005/06/28 08:34:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/particles/management/include/G4PrimaryVertex.hh b/source/particles/management/include/G4PrimaryVertex.hh index dca89f2dea..8a4d4e7853 100644 --- a/source/particles/management/include/G4PrimaryVertex.hh +++ b/source/particles/management/include/G4PrimaryVertex.hh @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryVertex.hh,v 1.2 2005/06/28 08:34:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/particles/management/include/G4ShortLivedTable.hh b/source/particles/management/include/G4ShortLivedTable.hh index e5a8980090..86a57773ac 100644 --- a/source/particles/management/include/G4ShortLivedTable.hh +++ b/source/particles/management/include/G4ShortLivedTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShortLivedTable.hh,v 1.11 2003/06/16 16:58:22 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4TauLeptonicDecayChannel.hh b/source/particles/management/include/G4TauLeptonicDecayChannel.hh index 4a124d1074..9d080369c7 100644 --- a/source/particles/management/include/G4TauLeptonicDecayChannel.hh +++ b/source/particles/management/include/G4TauLeptonicDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TauLeptonicDecayChannel.hh,v 1.1 2002/03/08 08:47:52 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4VDecayChannel.hh b/source/particles/management/include/G4VDecayChannel.hh index cc911a5672..17ca647be4 100644 --- a/source/particles/management/include/G4VDecayChannel.hh +++ b/source/particles/management/include/G4VDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDecayChannel.hh,v 1.11 2004/12/02 08:08:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4VIsotopeTable.hh b/source/particles/management/include/G4VIsotopeTable.hh index 1ca78a8b99..5d8ebd969f 100644 --- a/source/particles/management/include/G4VIsotopeTable.hh +++ b/source/particles/management/include/G4VIsotopeTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4VIsotopeTable.hh,v 1.5 2001/07/11 10:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4VUserPrimaryParticleInformation.hh b/source/particles/management/include/G4VUserPrimaryParticleInformation.hh index ca5669528e..d215eac267 100644 --- a/source/particles/management/include/G4VUserPrimaryParticleInformation.hh +++ b/source/particles/management/include/G4VUserPrimaryParticleInformation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserPrimaryParticleInformation.hh,v 1.1 2005/03/25 00:40:32 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4VUserPrimaryVertexInformation.hh b/source/particles/management/include/G4VUserPrimaryVertexInformation.hh index cb7045bfe0..92324391cd 100644 --- a/source/particles/management/include/G4VUserPrimaryVertexInformation.hh +++ b/source/particles/management/include/G4VUserPrimaryVertexInformation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserPrimaryVertexInformation.hh,v 1.1 2005/03/25 00:40:32 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4DalitzDecayChannel.cc b/source/particles/management/src/G4DalitzDecayChannel.cc index f50239aba4..1ec7da1373 100644 --- a/source/particles/management/src/G4DalitzDecayChannel.cc +++ b/source/particles/management/src/G4DalitzDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4DalitzDecayChannel.cc,v 1.7 2004/12/10 18:02:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayProducts.cc b/source/particles/management/src/G4DecayProducts.cc index 90f001b78a..32fec044e8 100644 --- a/source/particles/management/src/G4DecayProducts.cc +++ b/source/particles/management/src/G4DecayProducts.cc @@ -22,7 +22,7 @@ // // // $Id: G4DecayProducts.cc,v 1.13 2004/12/02 07:46:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayTable.cc b/source/particles/management/src/G4DecayTable.cc index d6fbc759ff..1d1fbb2982 100644 --- a/source/particles/management/src/G4DecayTable.cc +++ b/source/particles/management/src/G4DecayTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4DecayTable.cc,v 1.7 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayTableMessenger.cc b/source/particles/management/src/G4DecayTableMessenger.cc index badea17eee..d901e8d61f 100644 --- a/source/particles/management/src/G4DecayTableMessenger.cc +++ b/source/particles/management/src/G4DecayTableMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4DecayTableMessenger.cc,v 1.5 2003/06/16 16:58:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4DynamicParticle.cc b/source/particles/management/src/G4DynamicParticle.cc index eac55c30a4..5acfc34361 100644 --- a/source/particles/management/src/G4DynamicParticle.cc +++ b/source/particles/management/src/G4DynamicParticle.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DynamicParticle.cc,v 1.22 2005/05/30 07:13:18 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DynamicParticle.cc,v 1.23 2005/08/26 03:40:43 kurasige Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4ElectronOccupancy.cc b/source/particles/management/src/G4ElectronOccupancy.cc index 99a9590137..e3756c8067 100644 --- a/source/particles/management/src/G4ElectronOccupancy.cc +++ b/source/particles/management/src/G4ElectronOccupancy.cc @@ -22,7 +22,7 @@ // // // $Id: G4ElectronOccupancy.cc,v 1.8 2004/06/11 14:25:29 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4IonTable.cc b/source/particles/management/src/G4IonTable.cc index e73a625b12..f1f1023bcf 100644 --- a/source/particles/management/src/G4IonTable.cc +++ b/source/particles/management/src/G4IonTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IonTable.cc,v 1.36 2004/12/02 07:46:08 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IonTable.cc,v 1.39 2005/11/18 21:07:35 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -44,6 +44,7 @@ #include "G4IonTable.hh" #include "G4ParticleTable.hh" +#include "G4StateManager.hh" #include "G4Ions.hh" #include "G4UImanager.hh" #include "G4NucleiProperties.hh" @@ -55,7 +56,7 @@ #include #include -#include +#include //////////////////// @@ -108,13 +109,29 @@ G4IonTable::~G4IonTable() G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E, G4int J) { G4ParticleDefinition* ion=0; + + // check whether the cuurent state is not "PreInit" + // to make sure that GenericIon has processes + G4ApplicationState currentState = G4StateManager::GetStateManager()->GetCurrentState(); + if (currentState == G4State_PreInit){ +#ifdef G4VERBOSE + if (GetVerboseLevel()>1) { + G4cout << "G4IonTable::CreateIon() : can not create ion of "; + G4cout << " Z =" << Z << " A = " << A << G4endl; + G4cout << " because the current state is PreInit !!" << G4endl; + } +#endif + G4Exception( "G4IonTable::CreateIon()","Illegal operation", + JustWarning, "Can not create ions in PreInit state"); + return 0; + } // get ion name G4String name = GetIonName(Z, A, E); if ( name(0) == '?') { #ifdef G4VERBOSE if (GetVerboseLevel()>0) { - G4cout << "G4IonTable::GetIon() : can not create ions " << G4endl; + G4cout << "G4IonTable::CreateIon() : can not create ions " << G4endl; G4cout << " Z =" << Z << " A = " << A << G4endl; } #endif @@ -150,7 +167,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4double E, G4int #ifdef G4VERBOSE if (GetVerboseLevel()>1) { - G4cout << "G4IonTable::GetIon() : create ion of " << name << G4endl; + G4cout << "G4IonTable::CreateIon() : create ion of " << name << G4endl; } #endif @@ -189,7 +206,9 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int Z, G4int A, G4double E, G4int J) } #endif G4cerr << "G4IonTable::GetIon called with Z="<GetVerboseLevel(); diff --git a/source/particles/management/src/G4Ions.cc b/source/particles/management/src/G4Ions.cc index b95f06de4d..4c96eba52d 100644 --- a/source/particles/management/src/G4Ions.cc +++ b/source/particles/management/src/G4Ions.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ions.cc,v 1.9 2003/06/16 16:58:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4IsotopeProperty.cc b/source/particles/management/src/G4IsotopeProperty.cc index 2c835e52dc..e6705bb474 100644 --- a/source/particles/management/src/G4IsotopeProperty.cc +++ b/source/particles/management/src/G4IsotopeProperty.cc @@ -22,7 +22,7 @@ // // // $Id: G4IsotopeProperty.cc,v 1.4 2003/06/16 16:58:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4KL3DecayChannel.cc b/source/particles/management/src/G4KL3DecayChannel.cc index 3fbf18afa2..dc8d683b43 100644 --- a/source/particles/management/src/G4KL3DecayChannel.cc +++ b/source/particles/management/src/G4KL3DecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4KL3DecayChannel.cc,v 1.7 2004/12/10 18:02:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4MuonDecayChannel.cc b/source/particles/management/src/G4MuonDecayChannel.cc index f345b3f57a..2c89f1add8 100644 --- a/source/particles/management/src/G4MuonDecayChannel.cc +++ b/source/particles/management/src/G4MuonDecayChannel.cc @@ -1,202 +1,202 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// $Id: G4MuonDecayChannel.cc,v 1.13 2005/06/23 11:02:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// History: first implementation, based on object model of -// 30 May 1997 H.Kurashige -// -// Fix bug in calcuration of electron energy in DecayIt 28 Feb. 01 H.Kurashige -//2005 -// M. Melissas ( melissas AT cppm.in2p3.fr) -// J. Brunner ( brunner AT cppm.in2p3.fr) -// Adding V-A fluxes for neutrinos using a new algortithm : -// ------------------------------------------------------------ - -#include "G4ParticleDefinition.hh" -#include "G4DecayProducts.hh" -#include "G4VDecayChannel.hh" -#include "G4MuonDecayChannel.hh" -#include "Randomize.hh" -#include "G4LorentzVector.hh" -#include "G4LorentzRotation.hh" -#include "G4RotationMatrix.hh" - - -G4MuonDecayChannel::G4MuonDecayChannel(const G4String& theParentName, - G4double theBR) - :G4VDecayChannel("Muon Decay",1) -{ - // set names for daughter particles - if (theParentName == "mu+") { - SetBR(theBR); - SetParent("mu+"); - SetNumberOfDaughters(3); - SetDaughter(0, "e+"); - SetDaughter(1, "nu_e"); - SetDaughter(2, "anti_nu_mu"); - } else if (theParentName == "mu-") { - SetBR(theBR); - SetParent("mu-"); - SetNumberOfDaughters(3); - SetDaughter(0, "e-"); - SetDaughter(1, "anti_nu_e"); - SetDaughter(2, "nu_mu"); - } else { -#ifdef G4VERBOSE - if (GetVerboseLevel()>0) { - G4cout << "G4MuonDecayChannel:: constructor :"; - G4cout << " parent particle is not muon but "; - G4cout << theParentName << G4endl; - } -#endif - } -} - -G4MuonDecayChannel::~G4MuonDecayChannel() -{ -} - -G4DecayProducts *G4MuonDecayChannel::DecayIt(G4double) -{ - // this version neglects muon polarization,and electron mass - // assumes the pure V-A coupling - // the Neutrinos are correctly V-A. -#ifdef G4VERBOSE - if (GetVerboseLevel()>1) G4cout << "G4MuonDecayChannel::DecayIt "; -#endif - - if (parent == 0) FillParent(); - if (daughters == 0) FillDaughters(); - - // parent mass - G4double parentmass = parent->GetPDGMass(); - - //daughters'mass - G4double daughtermass[3]; - G4double sumofdaughtermass = 0.0; - for (G4int index=0; index<3; index++){ - daughtermass[index] = daughters[index]->GetPDGMass(); - sumofdaughtermass += daughtermass[index]; - } - - //create parent G4DynamicParticle at rest - G4ThreeVector dummy; - G4DynamicParticle * parentparticle = new G4DynamicParticle( parent, dummy, 0.0); - //create G4Decayproducts - G4DecayProducts *products = new G4DecayProducts(*parentparticle); - delete parentparticle; - - // calculate daughter momentum - G4double daughtermomentum[3]; - // calcurate electron energy - G4double xmax = (1.0+daughtermass[0]*daughtermass[0]/parentmass/parentmass); - G4double x; - - G4double Ee,Ene; - - G4double gam; - G4double EMax=parentmass/2-daughtermass[0]; - - - //Generating Random Energy -do { - Ee=G4UniformRand(); - do{ - x=xmax*G4UniformRand(); - gam=G4UniformRand(); - }while (gam >x*(1.-x)); - Ene=x; - } while ( Ene < (1.-Ee)); - G4double Enm=(2.-Ee-Ene); - - - //initialisation of rotation parameters - - G4double costheta,sintheta,rphi,rtheta,rpsi; - costheta= 1.-2./Ee-2./Ene+2./Ene/Ee; - sintheta=sqrt(1.-costheta*costheta); - - - rphi=twopi*G4UniformRand()*rad; - rtheta=(acos(2.*G4UniformRand()-1.)); - rpsi=twopi*G4UniformRand()*rad; - - G4RotationMatrix *rot= new G4RotationMatrix(); - rot->set(rphi,rtheta,rpsi); - - //electron 0 - daughtermomentum[0]=sqrt(Ee*Ee*EMax*EMax+2.0*Ee*EMax * daughtermass[0]); - G4ThreeVector *direction0 =new G4ThreeVector(0.0,0.0,1.0); - - *direction0 *= *rot; - - G4DynamicParticle * daughterparticle = new G4DynamicParticle ( daughters[0], *direction0 * daughtermomentum[0]); - - products->PushProducts(daughterparticle); - - //electronic neutrino 1 - - daughtermomentum[1]=sqrt(Ene*Ene*EMax*EMax+2.0*Ene*EMax * daughtermass[1]); - G4ThreeVector *direction1 =new G4ThreeVector(sintheta,0.0,costheta); - - *direction1 *= *rot; - - G4DynamicParticle * daughterparticle1 = new G4DynamicParticle ( daughters[1], *direction1 * daughtermomentum[1]); - products->PushProducts(daughterparticle1); - - //muonnic neutrino 2 - - daughtermomentum[2]=sqrt(Enm*Enm*EMax*EMax +2.0*Enm*EMax*daughtermass[2]); - G4ThreeVector *direction2 =new G4ThreeVector(-Ene/Enm*sintheta,0,-Ee/Enm-Ene/Enm*costheta); - - *direction2 *= *rot; - - G4DynamicParticle * daughterparticle2 = new G4DynamicParticle ( daughters[2], - *direction2 * daughtermomentum[2]); - products->PushProducts(daughterparticle2); - - - - - // output message -#ifdef G4VERBOSE - if (GetVerboseLevel()>1) { - G4cout << "G4MuonDecayChannel::DecayIt "; - G4cout << " create decay products in rest frame " <DumpInfo(); - } -#endif - return products; -} - - - - - - +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MuonDecayChannel.cc,v 1.14 2005/12/13 08:44:02 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// History: first implementation, based on object model of +// 30 May 1997 H.Kurashige +// +// Fix bug in calcuration of electron energy in DecayIt 28 Feb. 01 H.Kurashige +//2005 +// M. Melissas ( melissas AT cppm.in2p3.fr) +// J. Brunner ( brunner AT cppm.in2p3.fr) +// Adding V-A fluxes for neutrinos using a new algortithm : +// ------------------------------------------------------------ + +#include "G4ParticleDefinition.hh" +#include "G4DecayProducts.hh" +#include "G4VDecayChannel.hh" +#include "G4MuonDecayChannel.hh" +#include "Randomize.hh" +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +#include "G4RotationMatrix.hh" + + +G4MuonDecayChannel::G4MuonDecayChannel(const G4String& theParentName, + G4double theBR) + :G4VDecayChannel("Muon Decay",1) +{ + // set names for daughter particles + if (theParentName == "mu+") { + SetBR(theBR); + SetParent("mu+"); + SetNumberOfDaughters(3); + SetDaughter(0, "e+"); + SetDaughter(1, "nu_e"); + SetDaughter(2, "anti_nu_mu"); + } else if (theParentName == "mu-") { + SetBR(theBR); + SetParent("mu-"); + SetNumberOfDaughters(3); + SetDaughter(0, "e-"); + SetDaughter(1, "anti_nu_e"); + SetDaughter(2, "nu_mu"); + } else { +#ifdef G4VERBOSE + if (GetVerboseLevel()>0) { + G4cout << "G4MuonDecayChannel:: constructor :"; + G4cout << " parent particle is not muon but "; + G4cout << theParentName << G4endl; + } +#endif + } +} + +G4MuonDecayChannel::~G4MuonDecayChannel() +{ +} + +G4DecayProducts *G4MuonDecayChannel::DecayIt(G4double) +{ + // this version neglects muon polarization,and electron mass + // assumes the pure V-A coupling + // the Neutrinos are correctly V-A. +#ifdef G4VERBOSE + if (GetVerboseLevel()>1) G4cout << "G4MuonDecayChannel::DecayIt "; +#endif + + if (parent == 0) FillParent(); + if (daughters == 0) FillDaughters(); + + // parent mass + G4double parentmass = parent->GetPDGMass(); + + //daughters'mass + G4double daughtermass[3]; + G4double sumofdaughtermass = 0.0; + for (G4int index=0; index<3; index++){ + daughtermass[index] = daughters[index]->GetPDGMass(); + sumofdaughtermass += daughtermass[index]; + } + + //create parent G4DynamicParticle at rest + G4ThreeVector dummy; + G4DynamicParticle * parentparticle = new G4DynamicParticle( parent, dummy, 0.0); + //create G4Decayproducts + G4DecayProducts *products = new G4DecayProducts(*parentparticle); + delete parentparticle; + + // calculate daughter momentum + G4double daughtermomentum[3]; + // calcurate electron energy + G4double xmax = (1.0+daughtermass[0]*daughtermass[0]/parentmass/parentmass); + G4double x; + + G4double Ee,Ene; + + G4double gam; + G4double EMax=parentmass/2-daughtermass[0]; + + + //Generating Random Energy +do { + Ee=G4UniformRand(); + do{ + x=xmax*G4UniformRand(); + gam=G4UniformRand(); + }while (gam >x*(1.-x)); + Ene=x; + } while ( Ene < (1.-Ee)); + G4double Enm=(2.-Ee-Ene); + + + //initialisation of rotation parameters + + G4double costheta,sintheta,rphi,rtheta,rpsi; + costheta= 1.-2./Ee-2./Ene+2./Ene/Ee; + sintheta=sqrt(1.-costheta*costheta); + + + rphi=twopi*G4UniformRand()*rad; + rtheta=(acos(2.*G4UniformRand()-1.)); + rpsi=twopi*G4UniformRand()*rad; + + G4RotationMatrix *rot= new G4RotationMatrix(); + rot->set(rphi,rtheta,rpsi); + + //electron 0 + daughtermomentum[0]=sqrt(Ee*Ee*EMax*EMax+2.0*Ee*EMax * daughtermass[0]); + G4ThreeVector *direction0 =new G4ThreeVector(0.0,0.0,1.0); + + *direction0 *= *rot; + + G4DynamicParticle * daughterparticle = new G4DynamicParticle ( daughters[0], *direction0 * daughtermomentum[0]); + + products->PushProducts(daughterparticle); + + //electronic neutrino 1 + + daughtermomentum[1]=sqrt(Ene*Ene*EMax*EMax+2.0*Ene*EMax * daughtermass[1]); + G4ThreeVector *direction1 =new G4ThreeVector(sintheta,0.0,costheta); + + *direction1 *= *rot; + + G4DynamicParticle * daughterparticle1 = new G4DynamicParticle ( daughters[1], *direction1 * daughtermomentum[1]); + products->PushProducts(daughterparticle1); + + //muonnic neutrino 2 + + daughtermomentum[2]=sqrt(Enm*Enm*EMax*EMax +2.0*Enm*EMax*daughtermass[2]); + G4ThreeVector *direction2 =new G4ThreeVector(-Ene/Enm*sintheta,0,-Ee/Enm-Ene/Enm*costheta); + + *direction2 *= *rot; + + G4DynamicParticle * daughterparticle2 = new G4DynamicParticle ( daughters[2], + *direction2 * daughtermomentum[2]); + products->PushProducts(daughterparticle2); + + + + + // output message +#ifdef G4VERBOSE + if (GetVerboseLevel()>1) { + G4cout << "G4MuonDecayChannel::DecayIt "; + G4cout << " create decay products in rest frame " <DumpInfo(); + } +#endif + return products; +} + + + + + + diff --git a/source/particles/management/src/G4NeutronBetaDecayChannel.cc b/source/particles/management/src/G4NeutronBetaDecayChannel.cc index 5cc8168fe4..48ce2d5fda 100644 --- a/source/particles/management/src/G4NeutronBetaDecayChannel.cc +++ b/source/particles/management/src/G4NeutronBetaDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronBetaDecayChannel.cc,v 1.6 2004/12/10 18:02:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NucleiProperties.cc b/source/particles/management/src/G4NucleiProperties.cc index 8ac2d59fc8..6c7e3af749 100644 --- a/source/particles/management/src/G4NucleiProperties.cc +++ b/source/particles/management/src/G4NucleiProperties.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiProperties.cc,v 1.11 2004/12/02 08:08:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NucleiPropertiesTableA.cc b/source/particles/management/src/G4NucleiPropertiesTableA.cc index b00ba77079..b2023c38a8 100644 --- a/source/particles/management/src/G4NucleiPropertiesTableA.cc +++ b/source/particles/management/src/G4NucleiPropertiesTableA.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTableA.cc,v 1.9 2004/12/02 08:08:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1997 diff --git a/source/particles/management/src/G4NucleiPropertiesTableB.cc b/source/particles/management/src/G4NucleiPropertiesTableB.cc index 9ee4cfb737..77acfc34e8 100644 --- a/source/particles/management/src/G4NucleiPropertiesTableB.cc +++ b/source/particles/management/src/G4NucleiPropertiesTableB.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTableB.cc,v 1.8 2003/12/12 06:48:41 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc b/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc index a7ebc43c43..0b58e38bf4 100644 --- a/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc +++ b/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTheoreticalTableA.cc,v 1.7 2004/12/02 08:08:59 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4PDGCodeChecker.cc b/source/particles/management/src/G4PDGCodeChecker.cc index ecd22dd3d8..afa3e2c6f0 100644 --- a/source/particles/management/src/G4PDGCodeChecker.cc +++ b/source/particles/management/src/G4PDGCodeChecker.cc @@ -22,7 +22,7 @@ // // // $Id: G4PDGCodeChecker.cc,v 1.7 2004/12/07 09:05:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticleDefinition.cc b/source/particles/management/src/G4ParticleDefinition.cc index df3861286c..0bf4f7b01b 100644 --- a/source/particles/management/src/G4ParticleDefinition.cc +++ b/source/particles/management/src/G4ParticleDefinition.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleDefinition.cc,v 1.24 2005/04/17 04:59:41 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParticleDefinition.cc,v 1.25 2005/08/26 03:40:43 kurasige Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -123,12 +123,16 @@ G4ParticleDefinition::G4ParticleDefinition( G4ParticleDefinition::G4ParticleDefinition(const G4ParticleDefinition &) { - G4Exception("You call Copy Constructor of G4ParticleDefinition "); + G4Exception("G4ParticleDefinition::G4ParticleDefinition()", + "illegal constructor call", FatalException, + "You call Copy Constructor of G4ParticleDefinition "); } G4ParticleDefinition::G4ParticleDefinition() { - G4Exception("You call Default Constructor of G4ParticleDefinition "); + G4Exception("G4ParticleDefinition::G4ParticleDefinition()", + "illegal constructor call", FatalException, + "You call Default Constructor of G4ParticleDefinition "); } diff --git a/source/particles/management/src/G4ParticleMessenger.cc b/source/particles/management/src/G4ParticleMessenger.cc index 4e68126f7c..3bc48f50ce 100644 --- a/source/particles/management/src/G4ParticleMessenger.cc +++ b/source/particles/management/src/G4ParticleMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleMessenger.cc,v 1.7 2003/06/16 16:58:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticlePropertyMessenger.cc b/source/particles/management/src/G4ParticlePropertyMessenger.cc index d65a53a926..5f1796334d 100644 --- a/source/particles/management/src/G4ParticlePropertyMessenger.cc +++ b/source/particles/management/src/G4ParticlePropertyMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticlePropertyMessenger.cc,v 1.6 2003/06/16 16:58:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticleTable.cc b/source/particles/management/src/G4ParticleTable.cc index 40118a5a92..7d201089f2 100644 --- a/source/particles/management/src/G4ParticleTable.cc +++ b/source/particles/management/src/G4ParticleTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleTable.cc,v 1.22 2004/12/08 00:07:24 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParticleTable.cc,v 1.24 2005/11/15 23:18:40 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // class G4ParticleTable // @@ -56,7 +56,7 @@ //////////////////// G4ParticleTable::G4ParticleTable():verboseLevel(0),fParticleMessenger(0),noName(" "), -readyToUse(true) +readyToUse(false) { fDictionary = new G4PTblDictionary(); fIterator = new G4PTblDicIterator( *fDictionary ); @@ -106,7 +106,9 @@ G4ParticleTable::~G4ParticleTable() //////////////////// G4ParticleTable::G4ParticleTable(const G4ParticleTable &right) { - G4Exception("you call copy constructor of G4ParticleTable"); + G4Exception("G4ParticleTable::G4ParticleTable()", + "illegal constructor call", JustWarning, + "you call copy constructor of G4ParticleTable"); fDictionary = new G4PTblDictionary(*(right.fDictionary)); fIterator = new G4PTblDicIterator(*fDictionary); } @@ -392,13 +394,13 @@ void G4ParticleTable::CheckReadiness() G4String msg; msg = " Access to G4ParticleTable for finding a particle or equivalent\n"; msg += "operation occurs before G4VUserPhysicsList is instantiated and\n"; - msg += "assigned to G4RunManager. Such an access will be prohibited by\n"; - msg += "Geant4 version 7.0. To fix this problem, please make sure that\n"; - msg += "the main() instantiates G4VUserPhysicsList and set it to\n"; + msg += "assigned to G4RunManager. Such an access is prohibited by\n"; + msg += "Geant4 version 8.0. To fix this problem, please make sure that\n"; + msg += "your main() instantiates G4VUserPhysicsList and set it to\n"; msg += "G4RunManager before instantiating other user classes such as\n"; msg += "G4VUserPrimaryParticleGeneratorAction."; G4Exception("G4ParticleTable::CheckReadiness()", - "PartMan0000",JustWarning,msg); + "PartMan0000",FatalException,msg); } } diff --git a/source/particles/management/src/G4PhaseSpaceDecayChannel.cc b/source/particles/management/src/G4PhaseSpaceDecayChannel.cc index 57f51a3ea9..7057ff3c95 100644 --- a/source/particles/management/src/G4PhaseSpaceDecayChannel.cc +++ b/source/particles/management/src/G4PhaseSpaceDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhaseSpaceDecayChannel.cc,v 1.9 2004/12/10 18:02:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4PrimaryParticle.cc b/source/particles/management/src/G4PrimaryParticle.cc index d87d5a3cc3..b23570a0fb 100644 --- a/source/particles/management/src/G4PrimaryParticle.cc +++ b/source/particles/management/src/G4PrimaryParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryParticle.cc,v 1.1 2005/03/25 00:40:32 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4PrimaryParticle.hh" diff --git a/source/particles/management/src/G4PrimaryVertex.cc b/source/particles/management/src/G4PrimaryVertex.cc index 7de65084e8..7d565b1f2a 100644 --- a/source/particles/management/src/G4PrimaryVertex.cc +++ b/source/particles/management/src/G4PrimaryVertex.cc @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryVertex.cc,v 1.1 2005/03/25 00:40:32 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4PrimaryVertex.hh" diff --git a/source/particles/management/src/G4ShortLivedTable.cc b/source/particles/management/src/G4ShortLivedTable.cc index c0a99214ba..e77342f90e 100644 --- a/source/particles/management/src/G4ShortLivedTable.cc +++ b/source/particles/management/src/G4ShortLivedTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShortLivedTable.cc,v 1.11 2003/06/16 16:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ShortLivedTable.cc,v 1.12 2005/11/18 21:07:35 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -39,9 +39,6 @@ #include "G4ios.hh" -#include - - G4ShortLivedTable::G4ShortLivedTable() { fShortLivedList = new G4ShortLivedList(); diff --git a/source/particles/management/src/G4TauLeptonicDecayChannel.cc b/source/particles/management/src/G4TauLeptonicDecayChannel.cc index 3cb4d6dde5..c2e6d67c42 100644 --- a/source/particles/management/src/G4TauLeptonicDecayChannel.cc +++ b/source/particles/management/src/G4TauLeptonicDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TauLeptonicDecayChannel.cc,v 1.4 2004/12/10 18:02:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4VDecayChannel.cc b/source/particles/management/src/G4VDecayChannel.cc index 794dfdbea2..cb5fcb0be2 100644 --- a/source/particles/management/src/G4VDecayChannel.cc +++ b/source/particles/management/src/G4VDecayChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDecayChannel.cc,v 1.16 2004/12/02 08:09:00 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VDecayChannel.cc,v 1.17 2005/08/26 03:40:43 kurasige Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -281,7 +281,9 @@ void G4VDecayChannel::FillDaughters() } #endif daughters = 0; - G4Exception("G4VDecayChannel::FillDaughters"); + G4Exception("G4VDecayChannel::FillDaughters", + "can not fill daughters", FatalException, + "numberOfDaughters is not defined yet"); } //create and set the array of pointers to daughter particles @@ -300,7 +302,9 @@ void G4VDecayChannel::FillDaughters() } #endif daughters[index] = 0; - G4Exception("G4VDecayChannel::FillDaughters"); + G4Exception("G4VDecayChannel::FillDaughters", + "can not fill daughters", FatalException, + "name of a daughter is not defined yet"); } //search daughter particles in the particle table daughters[index] = particletable->FindParticle(*daughters_name[index]); @@ -364,7 +368,9 @@ void G4VDecayChannel::FillParent() } #endif parent = 0; - G4Exception("G4VDecayChannel::FillParent"); + G4Exception("G4VDecayChannel::FillParent()", + "can not fill parent", FatalException, + "parent name is not defined yet"); } // search parent particle in the particle table parent = particletable->FindParticle(*parent_name); @@ -376,7 +382,9 @@ void G4VDecayChannel::FillParent() G4cout << *parent_name << " does not exist !!" << G4endl; } #endif - G4Exception("G4VDecayChannel::FillParent"); + G4Exception("G4VDecayChannel::FillParent()", + "can not fill parent", FatalException, + "parent does not exist"); } parent_mass = parent->GetPDGMass(); } @@ -433,9 +441,14 @@ G4int G4VDecayChannel::GetAngularMomentum() } } } else { - G4Exception ("G4VDecayChannel::GetAngularMomentum: Sorry, can't handle 3 particle decays (up to now)"); + G4Exception("G4VDecayChannel::GetAngularMomentum", + "can not calculate", JustWarning, + "Sorry, can't handle 3 particle decays (up to now)"); + return 0; } - G4Exception ("G4VDecayChannel::GetAngularMomentum: Can't find angular momentum for this decay!"); + G4Exception ("G4VDecayChannel::GetAngularMomentum", + "can not calculate", JustWarning, + "Can't find angular momentum for this decay!"); return 0; } diff --git a/source/particles/management/src/G4VUserPrimaryParticleInformation.cc b/source/particles/management/src/G4VUserPrimaryParticleInformation.cc index 5264a9569c..fe13fc4065 100644 --- a/source/particles/management/src/G4VUserPrimaryParticleInformation.cc +++ b/source/particles/management/src/G4VUserPrimaryParticleInformation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserPrimaryParticleInformation.cc,v 1.1 2005/03/25 00:40:32 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VUserPrimaryParticleInformation.hh" G4VUserPrimaryParticleInformation::G4VUserPrimaryParticleInformation() {;} diff --git a/source/particles/management/src/G4VUserPrimaryVertexInformation.cc b/source/particles/management/src/G4VUserPrimaryVertexInformation.cc index 544bc2acd2..75ad25e387 100644 --- a/source/particles/management/src/G4VUserPrimaryVertexInformation.cc +++ b/source/particles/management/src/G4VUserPrimaryVertexInformation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserPrimaryVertexInformation.cc,v 1.1 2005/03/25 00:40:32 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4DiQuarks.hh b/source/particles/shortlived/include/G4DiQuarks.hh index 494a36b740..505f093d77 100644 --- a/source/particles/shortlived/include/G4DiQuarks.hh +++ b/source/particles/shortlived/include/G4DiQuarks.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DiQuarks.hh,v 1.4 2001/07/11 10:02:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DiQuarks.hh,v 1.5 2004/09/02 01:52:41 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -58,9 +58,7 @@ class G4DiQuarks : public G4VShortLivedParticle G4bool stable, G4double lifetime, G4DecayTable *decaytable ); - G4DiQuarks* DiQuarksDefinition(){return this;}; - G4DiQuarks* DiQuarks(){return this;}; - virtual ~G4DiQuarks(){} + virtual ~G4DiQuarks(); }; diff --git a/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh b/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh index 346b4af73a..bc0b463313 100644 --- a/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedBaryonConstructor.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedBaryons.hh b/source/particles/shortlived/include/G4ExcitedBaryons.hh index 0dbd750398..2af340418c 100644 --- a/source/particles/shortlived/include/G4ExcitedBaryons.hh +++ b/source/particles/shortlived/include/G4ExcitedBaryons.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExcitedBaryons.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ExcitedBaryons.hh,v 1.6 2004/09/02 01:52:41 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -58,8 +58,7 @@ class G4ExcitedBaryons : public G4VShortLivedParticle G4bool stable, G4double lifetime, G4DecayTable *decaytable ); - G4ExcitedBaryons* ExcitedBaryonsDefinition(){return this;}; - G4ExcitedBaryons* ExcitedBaryons(){return this;}; + virtual ~G4ExcitedBaryons(); void SetMultipletName(const G4String& name); }; diff --git a/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh b/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh index ea38d261d6..fa20c329be 100644 --- a/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedDeltaConstructor.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh b/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh index 1c9089dcb9..fa8d731b18 100644 --- a/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedLambdaConstructor.hh,v 1.7 2003/05/19 17:11:20 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh b/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh index ccb847f5e6..c5eb24d921 100644 --- a/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh @@ -28,7 +28,7 @@ // and all its terms. // // $Id: G4ExcitedMesonConstructor.hh,v 1.7 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedMesons.hh b/source/particles/shortlived/include/G4ExcitedMesons.hh index a286d64986..288c24d921 100644 --- a/source/particles/shortlived/include/G4ExcitedMesons.hh +++ b/source/particles/shortlived/include/G4ExcitedMesons.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExcitedMesons.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ExcitedMesons.hh,v 1.6 2004/09/02 01:52:41 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -58,12 +58,8 @@ class G4ExcitedMesons : public G4VShortLivedParticle G4bool stable, G4double lifetime, G4DecayTable *decaytable ); - - G4ExcitedMesons* ExcitedMesonsDefinition(){return this;}; - G4ExcitedMesons* ExcitedMesons(){return this;}; - + virtual ~G4ExcitedMesons(); void SetMultipletName(const G4String& ); - }; inline diff --git a/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh b/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh index 7631ded132..82ca985ec8 100644 --- a/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedNucleonConstructor.hh,v 1.5 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh b/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh index 1d3b880a98..9bf8dff884 100644 --- a/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedSigmaConstructor.hh,v 1.5 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedXiConstructor.hh b/source/particles/shortlived/include/G4ExcitedXiConstructor.hh index db4574ccad..4bbe54a39f 100644 --- a/source/particles/shortlived/include/G4ExcitedXiConstructor.hh +++ b/source/particles/shortlived/include/G4ExcitedXiConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedXiConstructor.hh,v 1.5 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4Gluons.hh b/source/particles/shortlived/include/G4Gluons.hh index 67e674e1b2..1f52c66ee4 100644 --- a/source/particles/shortlived/include/G4Gluons.hh +++ b/source/particles/shortlived/include/G4Gluons.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Gluons.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Gluons.hh,v 1.5 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -58,9 +58,7 @@ class G4Gluons : public G4VShortLivedParticle G4bool stable, G4double lifetime, G4DecayTable *decaytable ); - G4Gluons* GluonsDefinition(){return this;}; - G4Gluons* Gluons(){return this;}; - virtual ~G4Gluons(){} + virtual ~G4Gluons(); }; diff --git a/source/particles/shortlived/include/G4Quarks.hh b/source/particles/shortlived/include/G4Quarks.hh index c91bbf5cfc..3f877413a8 100644 --- a/source/particles/shortlived/include/G4Quarks.hh +++ b/source/particles/shortlived/include/G4Quarks.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Quarks.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Quarks.hh,v 1.5 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -41,7 +41,7 @@ #include "G4VShortLivedParticle.hh" // ###################################################################### -// ### Quarks ### +// ### Quarks ### // ###################################################################### class G4Quarks : public G4VShortLivedParticle @@ -58,9 +58,7 @@ class G4Quarks : public G4VShortLivedParticle G4bool stable, G4double lifetime, G4DecayTable *decaytable ); - G4Quarks* QuarksDefinition(){return this;}; - G4Quarks* Quarks(){return this;}; - virtual ~G4Quarks(){} + virtual ~G4Quarks(); }; diff --git a/source/particles/shortlived/include/G4ShortLivedConstructor.hh b/source/particles/shortlived/include/G4ShortLivedConstructor.hh index ffac0e0da1..adec2a77c2 100644 --- a/source/particles/shortlived/include/G4ShortLivedConstructor.hh +++ b/source/particles/shortlived/include/G4ShortLivedConstructor.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShortLivedConstructor.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ShortLivedConstructor.hh,v 1.5 2005/09/30 22:59:05 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -44,13 +44,13 @@ class G4ShortLivedConstructor ~G4ShortLivedConstructor(); public: - void ConstructParticle(); + static void ConstructParticle(); protected: - void ConstructResonances(); - void ConstructBaryons(); - void ConstructMesons(); - void ConstructQuarks(); + static void ConstructResonances(); + static void ConstructBaryons(); + static void ConstructMesons(); + static void ConstructQuarks(); private: static G4bool isConstructed; diff --git a/source/particles/shortlived/include/G4VShortLivedParticle.hh b/source/particles/shortlived/include/G4VShortLivedParticle.hh index 51cd58c6ed..6380dc5f8f 100644 --- a/source/particles/shortlived/include/G4VShortLivedParticle.hh +++ b/source/particles/shortlived/include/G4VShortLivedParticle.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VShortLivedParticle.hh,v 1.6 2003/03/10 08:43:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VShortLivedParticle.hh,v 1.7 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -68,7 +68,7 @@ class G4VShortLivedParticle : public G4ParticleDefinition G4double lifetime, G4DecayTable *decaytable); - virtual ~G4VShortLivedParticle() {}; + virtual ~G4VShortLivedParticle(); G4int operator==(const G4VShortLivedParticle &right) const; G4int operator!=(const G4VShortLivedParticle &right) const; diff --git a/source/particles/shortlived/src/G4DiQuarks.cc b/source/particles/shortlived/src/G4DiQuarks.cc index a0757f0ab1..3a7181374f 100644 --- a/source/particles/shortlived/src/G4DiQuarks.cc +++ b/source/particles/shortlived/src/G4DiQuarks.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DiQuarks.cc,v 1.5 2003/06/16 16:58:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DiQuarks.cc,v 1.6 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -57,3 +57,6 @@ G4DiQuarks::G4DiQuarks( { SetParticleSubType("di_quark"); } + +G4DiQuarks::~G4DiQuarks() {} + diff --git a/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc b/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc index f89c519af9..16b21bb1ad 100644 --- a/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedBaryonConstructor.cc,v 1.6 2001/07/11 10:02:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedBaryons.cc b/source/particles/shortlived/src/G4ExcitedBaryons.cc index b1ba3e4480..94ea43e506 100644 --- a/source/particles/shortlived/src/G4ExcitedBaryons.cc +++ b/source/particles/shortlived/src/G4ExcitedBaryons.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExcitedBaryons.cc,v 1.5 2003/06/16 16:58:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ExcitedBaryons.cc,v 1.6 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -56,3 +56,6 @@ G4ExcitedBaryons::G4ExcitedBaryons( lepton,baryon,encoding,stable,lifetime,decaytable ) { } + +G4ExcitedBaryons::~G4ExcitedBaryons() {} + diff --git a/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc b/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc index 561c080fd9..1ec24b3434 100644 --- a/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedDeltaConstructor.cc,v 1.8 2004/02/13 05:54:07 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc b/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc index 64958aebbd..5381ea3ca2 100644 --- a/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedLambdaConstructor.cc,v 1.8 2004/02/13 05:54:07 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc b/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc index 3b769ba04d..2e9afeddc4 100644 --- a/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedMesonConstructor.cc,v 1.14 2004/02/13 05:54:07 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedMesons.cc b/source/particles/shortlived/src/G4ExcitedMesons.cc index 31c52fd524..df837268ce 100644 --- a/source/particles/shortlived/src/G4ExcitedMesons.cc +++ b/source/particles/shortlived/src/G4ExcitedMesons.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExcitedMesons.cc,v 1.5 2003/06/16 16:58:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ExcitedMesons.cc,v 1.6 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -56,3 +56,6 @@ G4ExcitedMesons::G4ExcitedMesons( lepton,baryon,encoding,stable,lifetime,decaytable ) { } + +G4ExcitedMesons::~G4ExcitedMesons() {} + diff --git a/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc b/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc index 867e88d802..42ee5c4812 100644 --- a/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedNucleonConstructor.cc,v 1.7 2004/02/13 05:54:07 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc b/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc index 7ee1557e6c..14efba7cc7 100644 --- a/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedSigmaConstructor.cc,v 1.8 2003/06/20 00:40:04 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedXiConstructor.cc b/source/particles/shortlived/src/G4ExcitedXiConstructor.cc index a21f1aa4f0..52950d17bd 100644 --- a/source/particles/shortlived/src/G4ExcitedXiConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedXiConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedXiConstructor.cc,v 1.5 2001/07/11 10:02:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4Gluons.cc b/source/particles/shortlived/src/G4Gluons.cc index c25b932e7a..3285b29c09 100644 --- a/source/particles/shortlived/src/G4Gluons.cc +++ b/source/particles/shortlived/src/G4Gluons.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Gluons.cc,v 1.5 2003/06/16 16:58:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Gluons.cc,v 1.6 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -57,3 +57,6 @@ G4Gluons::G4Gluons( { SetParticleSubType("gluon"); } + +G4Gluons::~G4Gluons() {} + diff --git a/source/particles/shortlived/src/G4Quarks.cc b/source/particles/shortlived/src/G4Quarks.cc index 4db27b2ebd..ac385c8b34 100644 --- a/source/particles/shortlived/src/G4Quarks.cc +++ b/source/particles/shortlived/src/G4Quarks.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Quarks.cc,v 1.5 2003/06/16 16:58:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Quarks.cc,v 1.6 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------------------------------------------------------------- @@ -57,3 +57,6 @@ G4Quarks::G4Quarks( { SetParticleSubType("quark"); } + +G4Quarks::~G4Quarks() {} + diff --git a/source/particles/shortlived/src/G4ShortLivedConstructor.cc b/source/particles/shortlived/src/G4ShortLivedConstructor.cc index e598284f14..eeebad7152 100644 --- a/source/particles/shortlived/src/G4ShortLivedConstructor.cc +++ b/source/particles/shortlived/src/G4ShortLivedConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShortLivedConstructor.cc,v 1.12 2004/02/13 05:54:07 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4VShortLivedParticle.cc b/source/particles/shortlived/src/G4VShortLivedParticle.cc index 4f7654605d..5a1d6d4714 100644 --- a/source/particles/shortlived/src/G4VShortLivedParticle.cc +++ b/source/particles/shortlived/src/G4VShortLivedParticle.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VShortLivedParticle.cc,v 1.6 2003/03/10 08:43:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VShortLivedParticle.cc,v 1.7 2004/09/02 01:52:42 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -58,12 +58,7 @@ G4VShortLivedParticle::G4VShortLivedParticle(const G4String& aName, } - -const G4VShortLivedParticle & G4VShortLivedParticle::operator=(const G4VShortLivedParticle& right) -{ - if (this != &right) { - } return right; -} +G4VShortLivedParticle::~G4VShortLivedParticle() {} G4int G4VShortLivedParticle::operator==(const G4VShortLivedParticle &right) const { diff --git a/source/particles/utils/include/G4HtmlPPReporter.hh b/source/particles/utils/include/G4HtmlPPReporter.hh index d79013c960..1a9cdea9a0 100644 --- a/source/particles/utils/include/G4HtmlPPReporter.hh +++ b/source/particles/utils/include/G4HtmlPPReporter.hh @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4HtmlPPReporter.hh,v 1.1 2003/09/21 19:38:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/include/G4SimplePPReporter.hh b/source/particles/utils/include/G4SimplePPReporter.hh index a5de3c502a..bc0cc25bdd 100644 --- a/source/particles/utils/include/G4SimplePPReporter.hh +++ b/source/particles/utils/include/G4SimplePPReporter.hh @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4SimplePPReporter.hh,v 1.1 2003/09/21 19:38:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/include/G4TextPPReporter.hh b/source/particles/utils/include/G4TextPPReporter.hh index 8b1b4a6c51..b7e7ca5698 100644 --- a/source/particles/utils/include/G4TextPPReporter.hh +++ b/source/particles/utils/include/G4TextPPReporter.hh @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4TextPPReporter.hh,v 1.1 2004/03/11 09:47:44 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/include/G4TextPPRetriever.hh b/source/particles/utils/include/G4TextPPRetriever.hh index af70eed785..54cbe45851 100644 --- a/source/particles/utils/include/G4TextPPRetriever.hh +++ b/source/particles/utils/include/G4TextPPRetriever.hh @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4TextPPRetriever.hh,v 1.1 2004/03/11 09:47:44 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/include/G4VParticlePropertyReporter.hh b/source/particles/utils/include/G4VParticlePropertyReporter.hh index c0a44acde3..9ddac44f2b 100644 --- a/source/particles/utils/include/G4VParticlePropertyReporter.hh +++ b/source/particles/utils/include/G4VParticlePropertyReporter.hh @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4VParticlePropertyReporter.hh,v 1.1 2003/09/21 19:38:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/include/G4VParticlePropertyRetriever.hh b/source/particles/utils/include/G4VParticlePropertyRetriever.hh index dada77c5ab..1c134a831c 100644 --- a/source/particles/utils/include/G4VParticlePropertyRetriever.hh +++ b/source/particles/utils/include/G4VParticlePropertyRetriever.hh @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4VParticlePropertyRetriever.hh,v 1.1 2004/03/11 09:47:44 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/src/G4HtmlPPReporter.cc b/source/particles/utils/src/G4HtmlPPReporter.cc index 80f9983214..7363918b1b 100644 --- a/source/particles/utils/src/G4HtmlPPReporter.cc +++ b/source/particles/utils/src/G4HtmlPPReporter.cc @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4HtmlPPReporter.cc,v 1.3 2004/02/13 06:33:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/src/G4SimplePPReporter.cc b/source/particles/utils/src/G4SimplePPReporter.cc index 514c68aea4..71a3242dbf 100644 --- a/source/particles/utils/src/G4SimplePPReporter.cc +++ b/source/particles/utils/src/G4SimplePPReporter.cc @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4SimplePPReporter.cc,v 1.1 2003/09/21 19:38:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/src/G4TextPPReporter.cc b/source/particles/utils/src/G4TextPPReporter.cc index 2a2c42e7fc..7f27f68ddb 100644 --- a/source/particles/utils/src/G4TextPPReporter.cc +++ b/source/particles/utils/src/G4TextPPReporter.cc @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4TextPPReporter.cc,v 1.1 2004/03/11 09:47:45 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/src/G4TextPPRetriever.cc b/source/particles/utils/src/G4TextPPRetriever.cc index 2fcc9a575b..a629a3b401 100644 --- a/source/particles/utils/src/G4TextPPRetriever.cc +++ b/source/particles/utils/src/G4TextPPRetriever.cc @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4TextPPRetriever.cc,v 1.1 2004/03/11 09:47:45 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/particles/utils/src/G4VParticlePropertyReporter.cc b/source/particles/utils/src/G4VParticlePropertyReporter.cc index 77fc0db6ae..a15ead286d 100644 --- a/source/particles/utils/src/G4VParticlePropertyReporter.cc +++ b/source/particles/utils/src/G4VParticlePropertyReporter.cc @@ -27,7 +27,7 @@ // and all its terms. // // $Id: G4VParticlePropertyReporter.cc,v 1.1 2003/09/21 19:38:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/persistency/History b/source/persistency/History index 0ddb2bc3de..57e73dd76c 100644 --- a/source/persistency/History +++ b/source/persistency/History @@ -15,6 +15,13 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +28 June, 05 G.Cosmo (persistency-V07-01-01) +- Trivial fixes to G4MCTSimParticle and G4MCTSimVertex to support for + CLHEP-2.0.X series. + +28 June, 05 G.Cosmo (persistency-V07-01-00) +- Migration to for G4MCTSimParticle and G4MCTSimVertex. + 07 June, 04 G.Cosmo (persistency-V06-01-00) - GNUmakefile: added definition of GLOBLIBS for DLLs support on Windows. diff --git a/source/persistency/include/G4MCTSimParticle.hh b/source/persistency/include/G4MCTSimParticle.hh index 25622645a6..146d061b04 100644 --- a/source/persistency/include/G4MCTSimParticle.hh +++ b/source/persistency/include/G4MCTSimParticle.hh @@ -30,7 +30,7 @@ #include #include #include -#include "CLHEP/Vector/LorentzVector.h" +#include "G4LorentzVector.hh" // ==================================================================== // @@ -52,16 +52,16 @@ protected: int trackID; int parentTrackID; G4bool primaryFlag; - HepLorentzVector momentumAtVertex; + G4LorentzVector momentumAtVertex; G4MCTSimVertex* vertex; G4bool storeFlag; public: G4MCTSimParticle(); G4MCTSimParticle(std::string aname, int apcode, int atid, int ptid, - const HepLorentzVector& p); + const G4LorentzVector& p); G4MCTSimParticle(std::string aname, int apcode, int atid, int ptid, - const HepLorentzVector& p, const G4MCTSimVertex* v); + const G4LorentzVector& p, const G4MCTSimVertex* v); virtual ~G4MCTSimParticle(); // copy constructor and assignment operator @@ -87,8 +87,8 @@ public: void SetPrimaryFlag(G4bool q); G4bool GetPrimaryFlag() const; - void SetMomentumAtVertex(const HepLorentzVector& p); - const HepLorentzVector& GetMomentumAtVertex() const; + void SetMomentumAtVertex(const G4LorentzVector& p); + const G4LorentzVector& GetMomentumAtVertex() const; void SetVertex(const G4MCTSimVertex* v); G4MCTSimVertex* GetVertex() const; @@ -162,10 +162,10 @@ inline void G4MCTSimParticle::SetParentTrackID(int id) inline int G4MCTSimParticle::GetParentTrackID() const { return parentTrackID; } -inline void G4MCTSimParticle::SetMomentumAtVertex(const HepLorentzVector& p) +inline void G4MCTSimParticle::SetMomentumAtVertex(const G4LorentzVector& p) { momentumAtVertex= p; } -inline const HepLorentzVector& G4MCTSimParticle::GetMomentumAtVertex() const +inline const G4LorentzVector& G4MCTSimParticle::GetMomentumAtVertex() const { return momentumAtVertex; } inline void G4MCTSimParticle::SetVertex(const G4MCTSimVertex* v) diff --git a/source/persistency/include/G4MCTSimVertex.hh b/source/persistency/include/G4MCTSimVertex.hh index 503190587a..0fb36066bd 100644 --- a/source/persistency/include/G4MCTSimVertex.hh +++ b/source/persistency/include/G4MCTSimVertex.hh @@ -30,7 +30,7 @@ #include #include #include -#include "CLHEP/Vector/ThreeVector.h" +#include "G4ThreeVector.hh" #include "G4MCTSimParticle.hh" // ==================================================================== @@ -45,7 +45,7 @@ private: std::vector outParticleTrackIDList; int id; // assigned independently from G4 - Hep3Vector position; + G4ThreeVector position; double time; std::string volumeName; int volumeNumber; @@ -54,8 +54,8 @@ private: public: G4MCTSimVertex(); - G4MCTSimVertex(const Hep3Vector& x, double t); - G4MCTSimVertex(const Hep3Vector& x, double t, + G4MCTSimVertex(const G4ThreeVector& x, double t); + G4MCTSimVertex(const G4ThreeVector& x, double t, std::string vname, int ncopy, std::string pname); ~G4MCTSimVertex(); @@ -67,8 +67,8 @@ public: void SetID(int i); int GetID() const; - void SetPosition(const Hep3Vector& x); - const Hep3Vector& GetPosition() const; + void SetPosition(const G4ThreeVector& x); + const G4ThreeVector& GetPosition() const; void SetTime(double t); double GetTime() const; @@ -125,10 +125,10 @@ inline const G4MCTSimVertex& inline void G4MCTSimVertex::SetID(int i) { id= i; } inline int G4MCTSimVertex::GetID() const { return id; } -inline void G4MCTSimVertex::SetPosition(const Hep3Vector& x) +inline void G4MCTSimVertex::SetPosition(const G4ThreeVector& x) { position= x; } -inline const Hep3Vector& G4MCTSimVertex::GetPosition() const +inline const G4ThreeVector& G4MCTSimVertex::GetPosition() const { return position; } inline void G4MCTSimVertex::SetTime(double t) diff --git a/source/persistency/src/G4MCTSimParticle.cc b/source/persistency/src/G4MCTSimParticle.cc index bece963eb8..7414086c79 100644 --- a/source/persistency/src/G4MCTSimParticle.cc +++ b/source/persistency/src/G4MCTSimParticle.cc @@ -25,7 +25,7 @@ // ==================================================================== #include "globals.hh" -#include +#include #include #include "G4ios.hh" #include "G4MCTSimParticle.hh" @@ -50,7 +50,7 @@ G4MCTSimParticle::G4MCTSimParticle() ///////////////////////////////////////////////////////////// G4MCTSimParticle::G4MCTSimParticle(std::string aname, int apcode, int atid, int ptid, - const HepLorentzVector& p) + const G4LorentzVector& p) : parentParticle(0), name(aname), pdgID(apcode), trackID(atid), parentTrackID(ptid), @@ -63,7 +63,7 @@ G4MCTSimParticle::G4MCTSimParticle(std::string aname, int apcode, ///////////////////////////////////////////////////////////// G4MCTSimParticle::G4MCTSimParticle(std::string aname, int apcode, int atid, int ptid, - const HepLorentzVector& p, + const G4LorentzVector& p, const G4MCTSimVertex* v ) : parentParticle(0), name(aname), pdgID(apcode), @@ -133,12 +133,11 @@ void G4MCTSimParticle::SetStoreFlagToParentTree(G4bool q) void G4MCTSimParticle::PrintSingle(std::ostream& ostr) const ////////////////////////////////////////////////////////// { - char stp[20]; - std::ostrstream os(stp,20); + std::ostringstream os; char cqp=' '; if(storeFlag) cqp='+'; os << cqp << trackID << '\0'; - std::string stid(stp); + std::string stid(os.str()); ostr << std::setw(6) << stid; //ostr << std::setw(4) << trackID; @@ -159,12 +158,11 @@ void G4MCTSimParticle::PrintSingle(std::ostream& ostr) const if(vertex) { ostr << " %" << vertex-> GetCreatorProcessName() << G4endl; - char stv[20]; - std::ostrstream osv(stv,20); + std::ostringstream osv; char cqv=' '; if(vertex->GetStoreFlag()) cqv='+'; osv << cqv << vertex-> GetID() << '\0'; - std::string svid(stv); + std::string svid(osv.str()); ostr << " " << std::setw(6) << svid; //ostr << " " << std::setw(4) << vertex-> GetID(); ostr.unsetf(std::ios::fixed); diff --git a/source/persistency/src/G4MCTSimVertex.cc b/source/persistency/src/G4MCTSimVertex.cc index ac9bb1696b..7d89230315 100644 --- a/source/persistency/src/G4MCTSimVertex.cc +++ b/source/persistency/src/G4MCTSimVertex.cc @@ -25,7 +25,7 @@ // ==================================================================== #include "globals.hh" -#include +#include #include #include "G4ios.hh" #include "G4MCTSimParticle.hh" @@ -48,7 +48,7 @@ G4MCTSimVertex::G4MCTSimVertex() } ///////////////////////////////////////////////////////// -G4MCTSimVertex::G4MCTSimVertex(const Hep3Vector& x, double t) +G4MCTSimVertex::G4MCTSimVertex(const G4ThreeVector& x, double t) : inParticleTrackID(0), id(-1), position(x), time(t), volumeName(""), volumeNumber(-1), creatorProcessName("none"), storeFlag(false) @@ -57,7 +57,7 @@ G4MCTSimVertex::G4MCTSimVertex(const Hep3Vector& x, double t) } /////////////////////////////////////////////////////////////// -G4MCTSimVertex::G4MCTSimVertex(const Hep3Vector& x, double t, +G4MCTSimVertex::G4MCTSimVertex(const G4ThreeVector& x, double t, std::string vname, int ncopy, std::string pname) : inParticleTrackID(0), id(-1), position(x), time(t), volumeName(vname), volumeNumber(ncopy), @@ -77,12 +77,11 @@ G4MCTSimVertex::~G4MCTSimVertex() void G4MCTSimVertex::Print(std::ostream& ostr) const ////////////////////////////////////////////////// { - char st[20]; - std::ostrstream os(st,20); + std::ostringstream os; char cq=' '; if(storeFlag) cq='+'; os << cq << id << '\0'; - std::string sid(st); + std::string sid(os.str()); ostr.unsetf(std::ios::fixed); ostr.setf(std::ios::scientific|std::ios::right|std::ios::showpoint); diff --git a/source/processes/cuts/History b/source/processes/cuts/History index d063acf8bf..76479b6f97 100644 --- a/source/processes/cuts/History +++ b/source/processes/cuts/History @@ -1,4 +1,4 @@ -$Id: History,v 1.12 2004/12/02 06:53:56 kurasige Exp $ +$Id: History,v 1.14 2005/11/18 21:20:13 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,13 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +November 18th, 2005 - M.Asai (procuts-V07-01-01) +- migration to sstream. + +October 28th, 2005 - M.Asai (procuts-V07-01-00) +- Working tag for merging "envelope" to G4Region. + December 2nd, 2004 - H.Kurashige (procuts-V06-02-03) - migration to cmath diff --git a/source/processes/cuts/include/G4MCCIndexConversionTable.hh b/source/processes/cuts/include/G4MCCIndexConversionTable.hh index e594edc28f..6c384d09a9 100644 --- a/source/processes/cuts/include/G4MCCIndexConversionTable.hh +++ b/source/processes/cuts/include/G4MCCIndexConversionTable.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MCCIndexConversionTable.hh,v 1.2 2004/12/15 15:42:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4MaterialCutsCouple.hh b/source/processes/cuts/include/G4MaterialCutsCouple.hh index 53275bfe52..749702a458 100644 --- a/source/processes/cuts/include/G4MaterialCutsCouple.hh +++ b/source/processes/cuts/include/G4MaterialCutsCouple.hh @@ -22,7 +22,7 @@ // // // $Id: G4MaterialCutsCouple.hh,v 1.2 2003/09/19 14:40:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4PhysicsTableHelper.hh b/source/processes/cuts/include/G4PhysicsTableHelper.hh index 82086ce01d..3a6e9b889c 100644 --- a/source/processes/cuts/include/G4PhysicsTableHelper.hh +++ b/source/processes/cuts/include/G4PhysicsTableHelper.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsTableHelper.hh,v 1.2 2004/11/07 01:38:17 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4ProductionCuts.hh b/source/processes/cuts/include/G4ProductionCuts.hh index e27814453d..923fbdbcc6 100644 --- a/source/processes/cuts/include/G4ProductionCuts.hh +++ b/source/processes/cuts/include/G4ProductionCuts.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProductionCuts.hh,v 1.3 2004/06/07 13:47:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4ProductionCutsTable.hh b/source/processes/cuts/include/G4ProductionCutsTable.hh index 67c3618c1d..d5065e0193 100644 --- a/source/processes/cuts/include/G4ProductionCutsTable.hh +++ b/source/processes/cuts/include/G4ProductionCutsTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProductionCutsTable.hh,v 1.5 2004/12/02 06:53:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ProductionCutsTable.hh,v 1.6 2005/08/18 16:52:52 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -51,6 +51,7 @@ class G4RegionStore; class G4VRangeToEnergyConverter; class G4LogicalVolume; +class G4VPhysicalVolume; class G4ProductionCuts; #include "globals.hh" @@ -78,7 +79,7 @@ class G4ProductionCutsTable virtual ~G4ProductionCutsTable(); public: // with description - void UpdateCoupleTable(); + void UpdateCoupleTable(G4VPhysicalVolume* currentWorld); // This method triggers an update of the table of G4ProductionCuts objects. void SetEnergyRange(G4double lowedge, G4double highedge); diff --git a/source/processes/cuts/include/G4RToEConvForAntiNeutron.hh b/source/processes/cuts/include/G4RToEConvForAntiNeutron.hh index 840ae81a96..64a363b2bb 100644 --- a/source/processes/cuts/include/G4RToEConvForAntiNeutron.hh +++ b/source/processes/cuts/include/G4RToEConvForAntiNeutron.hh @@ -22,7 +22,7 @@ // // // $Id: G4RToEConvForAntiNeutron.hh,v 1.1 2003/09/19 14:42:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4RToEConvForAntiProton.hh b/source/processes/cuts/include/G4RToEConvForAntiProton.hh index 148477e9c6..8e66a42df3 100644 --- a/source/processes/cuts/include/G4RToEConvForAntiProton.hh +++ b/source/processes/cuts/include/G4RToEConvForAntiProton.hh @@ -22,7 +22,7 @@ // // // $Id: G4RToEConvForAntiProton.hh,v 1.1 2003/09/19 14:42:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4RToEConvForElectron.hh b/source/processes/cuts/include/G4RToEConvForElectron.hh index f2afeabe84..3618efb713 100644 --- a/source/processes/cuts/include/G4RToEConvForElectron.hh +++ b/source/processes/cuts/include/G4RToEConvForElectron.hh @@ -22,7 +22,7 @@ // // // $Id: G4RToEConvForElectron.hh,v 1.1 2003/09/19 14:42:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4RToEConvForGamma.hh b/source/processes/cuts/include/G4RToEConvForGamma.hh index 7d3ffa14a0..dad350ec5a 100644 --- a/source/processes/cuts/include/G4RToEConvForGamma.hh +++ b/source/processes/cuts/include/G4RToEConvForGamma.hh @@ -22,7 +22,7 @@ // // // $Id: G4RToEConvForGamma.hh,v 1.1 2003/09/19 14:43:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4RToEConvForNeutron.hh b/source/processes/cuts/include/G4RToEConvForNeutron.hh index ef5ab8bb68..97bccba885 100644 --- a/source/processes/cuts/include/G4RToEConvForNeutron.hh +++ b/source/processes/cuts/include/G4RToEConvForNeutron.hh @@ -22,7 +22,7 @@ // // // $Id: G4RToEConvForNeutron.hh,v 1.1 2003/09/19 14:43:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4RToEConvForPositron.hh b/source/processes/cuts/include/G4RToEConvForPositron.hh index e1310c2e05..84559b2546 100644 --- a/source/processes/cuts/include/G4RToEConvForPositron.hh +++ b/source/processes/cuts/include/G4RToEConvForPositron.hh @@ -22,7 +22,7 @@ // // // $Id: G4RToEConvForPositron.hh,v 1.1 2003/09/19 14:43:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4RToEConvForProton.hh b/source/processes/cuts/include/G4RToEConvForProton.hh index 9ffb142737..8b782e06ae 100644 --- a/source/processes/cuts/include/G4RToEConvForProton.hh +++ b/source/processes/cuts/include/G4RToEConvForProton.hh @@ -22,7 +22,7 @@ // // // $Id: G4RToEConvForProton.hh,v 1.1 2003/09/19 14:44:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/include/G4VRangeToEnergyConverter.hh b/source/processes/cuts/include/G4VRangeToEnergyConverter.hh index a49d5b18d5..2f62b29a63 100644 --- a/source/processes/cuts/include/G4VRangeToEnergyConverter.hh +++ b/source/processes/cuts/include/G4VRangeToEnergyConverter.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRangeToEnergyConverter.hh,v 1.3 2004/12/02 06:53:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/src/G4MCCIndexConversionTable.cc b/source/processes/cuts/src/G4MCCIndexConversionTable.cc index ccb75ae3e6..cb27f6329b 100644 --- a/source/processes/cuts/src/G4MCCIndexConversionTable.cc +++ b/source/processes/cuts/src/G4MCCIndexConversionTable.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MCCIndexConversionTable.cc,v 1.2 2004/12/15 15:42:36 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/src/G4MaterialCutsCouple.cc b/source/processes/cuts/src/G4MaterialCutsCouple.cc index cd60860d2d..7ffb3b0202 100644 --- a/source/processes/cuts/src/G4MaterialCutsCouple.cc +++ b/source/processes/cuts/src/G4MaterialCutsCouple.cc @@ -22,7 +22,7 @@ // // // $Id: G4MaterialCutsCouple.cc,v 1.2 2003/09/19 14:45:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/cuts/src/G4PhysicsTableHelper.cc b/source/processes/cuts/src/G4PhysicsTableHelper.cc index c7e1e2250c..e75bf01bdf 100644 --- a/source/processes/cuts/src/G4PhysicsTableHelper.cc +++ b/source/processes/cuts/src/G4PhysicsTableHelper.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PhysicsTableHelper.cc,v 1.3 2004/12/15 15:42:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/cuts/src/G4ProductionCuts.cc b/source/processes/cuts/src/G4ProductionCuts.cc index f12b5ab353..54ef603eb9 100644 --- a/source/processes/cuts/src/G4ProductionCuts.cc +++ b/source/processes/cuts/src/G4ProductionCuts.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProductionCuts.cc,v 1.4 2004/06/07 13:47:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/cuts/src/G4ProductionCutsTable.cc b/source/processes/cuts/src/G4ProductionCutsTable.cc index b8ecee7939..31f162ccca 100644 --- a/source/processes/cuts/src/G4ProductionCutsTable.cc +++ b/source/processes/cuts/src/G4ProductionCutsTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProductionCutsTable.cc,v 1.11 2004/12/02 06:53:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ProductionCutsTable.cc,v 1.12 2005/08/18 16:52:52 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,6 +37,7 @@ #include "G4ParticleTable.hh" #include "G4RegionStore.hh" #include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" #include "G4RToEConvForElectron.hh" #include "G4RToEConvForGamma.hh" #include "G4RToEConvForPositron.hh" @@ -91,7 +92,7 @@ G4ProductionCutsTable::~G4ProductionCutsTable() } } -void G4ProductionCutsTable::UpdateCoupleTable() +void G4ProductionCutsTable::UpdateCoupleTable(G4VPhysicalVolume* currentWorld) { if(firstUse) { @@ -113,7 +114,12 @@ void G4ProductionCutsTable::UpdateCoupleTable() // Update Material-Cut-Couple typedef std::vector::iterator regionIterator; for(regionIterator rItr=fG4RegionStore->begin(); - rItr!=fG4RegionStore->end();rItr++){ + rItr!=fG4RegionStore->end();rItr++) + { + // Material scan is to be done only for the regions appear in the + // current tracking world. + if((*rItr)->GetWorldPhysical()!=currentWorld) continue; + G4ProductionCuts* fProductionCut = (*rItr)->GetProductionCuts(); std::vector::const_iterator mItr = (*rItr)->GetMaterialIterator(); diff --git a/source/processes/cuts/src/G4RToEConvForAntiNeutron.cc b/source/processes/cuts/src/G4RToEConvForAntiNeutron.cc index 54773013ea..4ab6e17854 100644 --- a/source/processes/cuts/src/G4RToEConvForAntiNeutron.cc +++ b/source/processes/cuts/src/G4RToEConvForAntiNeutron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RToEConvForAntiNeutron.cc,v 1.1 2003/09/19 14:46:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RToEConvForAntiNeutron.cc,v 1.2 2005/11/18 21:20:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -36,8 +36,6 @@ #include "G4PhysicsLogVector.hh" #include "G4ios.hh" -#include -#include G4RToEConvForAntiNeutron::G4RToEConvForAntiNeutron() : G4VRangeToEnergyConverter() { diff --git a/source/processes/cuts/src/G4RToEConvForAntiProton.cc b/source/processes/cuts/src/G4RToEConvForAntiProton.cc index 4f2291599b..2b1c0f41d7 100644 --- a/source/processes/cuts/src/G4RToEConvForAntiProton.cc +++ b/source/processes/cuts/src/G4RToEConvForAntiProton.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RToEConvForAntiProton.cc,v 1.1 2003/09/19 14:46:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RToEConvForAntiProton.cc,v 1.2 2005/11/18 21:20:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -36,8 +36,6 @@ #include "G4PhysicsLogVector.hh" #include "G4ios.hh" -#include -#include G4RToEConvForAntiProton::G4RToEConvForAntiProton() : G4VRangeToEnergyConverter() { diff --git a/source/processes/cuts/src/G4RToEConvForElectron.cc b/source/processes/cuts/src/G4RToEConvForElectron.cc index 293b137286..92ad9e296a 100644 --- a/source/processes/cuts/src/G4RToEConvForElectron.cc +++ b/source/processes/cuts/src/G4RToEConvForElectron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RToEConvForElectron.cc,v 1.3 2004/12/02 06:53:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RToEConvForElectron.cc,v 1.4 2005/11/18 21:20:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,8 +37,6 @@ #include "G4PhysicsLogVector.hh" #include "G4ios.hh" -#include -#include G4RToEConvForElectron::G4RToEConvForElectron() : G4VRangeToEnergyConverter() { diff --git a/source/processes/cuts/src/G4RToEConvForGamma.cc b/source/processes/cuts/src/G4RToEConvForGamma.cc index 4cbcfa0810..8113457c3e 100644 --- a/source/processes/cuts/src/G4RToEConvForGamma.cc +++ b/source/processes/cuts/src/G4RToEConvForGamma.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RToEConvForGamma.cc,v 1.2 2004/12/02 06:53:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RToEConvForGamma.cc,v 1.3 2005/11/18 21:20:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,8 +37,6 @@ #include "G4PhysicsLogVector.hh" #include "G4ios.hh" -#include -#include G4RToEConvForGamma::G4RToEConvForGamma() : G4VRangeToEnergyConverter() { diff --git a/source/processes/cuts/src/G4RToEConvForNeutron.cc b/source/processes/cuts/src/G4RToEConvForNeutron.cc index b35c7b7557..6e341346a9 100644 --- a/source/processes/cuts/src/G4RToEConvForNeutron.cc +++ b/source/processes/cuts/src/G4RToEConvForNeutron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RToEConvForNeutron.cc,v 1.1 2003/09/19 14:47:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RToEConvForNeutron.cc,v 1.2 2005/11/18 21:20:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -36,8 +36,6 @@ #include "G4PhysicsLogVector.hh" #include "G4ios.hh" -#include -#include G4RToEConvForNeutron::G4RToEConvForNeutron() : G4VRangeToEnergyConverter() { diff --git a/source/processes/cuts/src/G4RToEConvForPositron.cc b/source/processes/cuts/src/G4RToEConvForPositron.cc index e6ce342617..a5a3c07af6 100644 --- a/source/processes/cuts/src/G4RToEConvForPositron.cc +++ b/source/processes/cuts/src/G4RToEConvForPositron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RToEConvForPositron.cc,v 1.3 2004/12/02 06:53:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RToEConvForPositron.cc,v 1.4 2005/11/18 21:20:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -37,8 +37,6 @@ #include "G4PhysicsLogVector.hh" #include "G4ios.hh" -#include -#include G4RToEConvForPositron::G4RToEConvForPositron() : G4VRangeToEnergyConverter() { diff --git a/source/processes/cuts/src/G4RToEConvForProton.cc b/source/processes/cuts/src/G4RToEConvForProton.cc index ac66ec67c3..55ee1ef54b 100644 --- a/source/processes/cuts/src/G4RToEConvForProton.cc +++ b/source/processes/cuts/src/G4RToEConvForProton.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RToEConvForProton.cc,v 1.1 2003/09/19 14:47:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RToEConvForProton.cc,v 1.2 2005/11/18 21:20:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -36,8 +36,6 @@ #include "G4PhysicsLogVector.hh" #include "G4ios.hh" -#include -#include G4RToEConvForProton::G4RToEConvForProton() : G4VRangeToEnergyConverter() { diff --git a/source/processes/cuts/src/G4VRangeToEnergyConverter.cc b/source/processes/cuts/src/G4VRangeToEnergyConverter.cc index f1613e6e6a..ee19cc4be2 100644 --- a/source/processes/cuts/src/G4VRangeToEnergyConverter.cc +++ b/source/processes/cuts/src/G4VRangeToEnergyConverter.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRangeToEnergyConverter.cc,v 1.3 2004/12/02 06:53:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VRangeToEnergyConverter.cc,v 1.4 2005/11/18 21:20:13 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -36,8 +36,6 @@ #include "G4PhysicsLogVector.hh" #include "G4ios.hh" -#include -#include // energy range G4double G4VRangeToEnergyConverter::LowestEnergy = 0.99e-3*MeV; diff --git a/source/processes/decay/include/G4Decay.hh b/source/processes/decay/include/G4Decay.hh index eb0424a6b8..8d2c7bf0fa 100644 --- a/source/processes/decay/include/G4Decay.hh +++ b/source/processes/decay/include/G4Decay.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Decay.hh,v 1.13 2004/12/02 07:06:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Decay.hh,v 1.14 2005/11/21 18:06:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -133,7 +133,7 @@ class G4Decay : public G4VRestDiscreteProcess ); public: //With Description - virtual void StartTracking(); + virtual void StartTracking(G4Track*); virtual void EndTracking(); // inform Start/End of tracking for each track to the physics process diff --git a/source/processes/decay/include/G4UnknownDecay.hh b/source/processes/decay/include/G4UnknownDecay.hh index c355496fd5..ddd09c3aaa 100644 --- a/source/processes/decay/include/G4UnknownDecay.hh +++ b/source/processes/decay/include/G4UnknownDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnknownDecay.hh,v 1.2 2004/12/02 07:06:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/decay/include/G4VExtDecayer.hh b/source/processes/decay/include/G4VExtDecayer.hh index b40c2c4364..99bbb6894b 100644 --- a/source/processes/decay/include/G4VExtDecayer.hh +++ b/source/processes/decay/include/G4VExtDecayer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VExtDecayer.hh,v 1.3 2001/07/11 10:02:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/decay/src/G4Decay.cc b/source/processes/decay/src/G4Decay.cc index bdf659e6f5..5bb3b11c1f 100644 --- a/source/processes/decay/src/G4Decay.cc +++ b/source/processes/decay/src/G4Decay.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Decay.cc,v 1.20 2005/04/29 05:09:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Decay.cc,v 1.21 2005/11/21 18:06:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -309,7 +309,7 @@ G4VParticleChange* G4Decay::DecayIt(const G4Track& aTrack, const G4Step& ) } -void G4Decay::StartTracking() +void G4Decay::StartTracking(G4Track*) { currentInteractionLength = -1.0; ResetNumberOfInteractionLengthLeft(); diff --git a/source/processes/decay/src/G4UnknownDecay.cc b/source/processes/decay/src/G4UnknownDecay.cc index 0813e1b296..3563c34bb1 100644 --- a/source/processes/decay/src/G4UnknownDecay.cc +++ b/source/processes/decay/src/G4UnknownDecay.cc @@ -22,7 +22,7 @@ // // // $Id: G4UnknownDecay.cc,v 1.2 2004/10/19 00:56:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/electromagnetic/highenergy/History b/source/processes/electromagnetic/highenergy/History index 1a1ecaaa8b..223e6e9a81 100644 --- a/source/processes/electromagnetic/highenergy/History +++ b/source/processes/electromagnetic/highenergy/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2005/05/18 11:02:10 vnivanch Exp $ +$Id: History,v 1.12 2005/11/29 08:18:55 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,23 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +29 November 05: V.Ivant (emhighenergy-V07-01-04) +- Fix initialisation problems in G4hhIonisation and G4eeToHadrons and related classes + +23 November 05: V.Ivant (emhighenergy-V07-01-03) +- G4eeToHadrons - fix verbosity, restore missing line +- G4eeToHadronsModel - change verbosity level + +30 October 05: V.Ivant (emhighenergy-V07-01-02) +- Remove magnetic change from G4BraggNoDeltaModel and G4BetheBlochNoDeltaModel +- add G4hhIonisation - ionisation for heavy exotic particles + +05 August 05: V.Ivant (emhighenergy-V07-01-01) +- Remove inline constructors and destructors + +30 June 05: V.Ivant (emhighenergy-V07-01-00) +- Fix a misprint in G4BetheBlochNoDeltaModel + 18 May 05: V.Ivant (highenergy-V07-00-01) - Use optimised interfaces from utils - reorganise ee->hadrons models - Add G4BetheBlochNoDeltaModel and G4BraggNoDeltaModel for simulation diff --git a/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh b/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh index 426d45c6d5..82f2f821d6 100644 --- a/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh +++ b/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh @@ -22,7 +22,7 @@ // // // $Id: G4AnnihiToMuPair.hh,v 1.1 2004/11/19 18:44:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------ G4AnnihiToMuPair physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, November 2002 diff --git a/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh b/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh index 18adf31d17..a81ba9ad3b 100644 --- a/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BetheBlochNoDeltaModel.hh,v 1.2 2005/05/18 11:02:10 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BetheBlochNoDeltaModel.hh,v 1.5 2005/10/29 20:09:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -54,7 +54,7 @@ class G4BetheBlochNoDeltaModel : public G4BetheBlochModel public: - G4BetheBlochNoDeltaModel(G4double ch = 1.0, const G4ParticleDefinition* p = 0, + G4BetheBlochNoDeltaModel(const G4ParticleDefinition* p = 0, const G4String& nam = "BetheBlochNoD"); virtual ~G4BetheBlochNoDeltaModel(); @@ -76,30 +76,16 @@ private: G4BetheBlochNoDeltaModel & operator=(const G4BetheBlochNoDeltaModel &right); G4BetheBlochNoDeltaModel(const G4BetheBlochNoDeltaModel&); - G4double mcharge2; - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4BetheBlochNoDeltaModel::G4BetheBlochNoDeltaModel(G4double ch, - const G4ParticleDefinition*p, const G4String& nam) : - G4BetheBlochModel(p, nam), mcharge2(ch*ch) -{} - -inline G4BetheBlochNoDeltaModel::~G4BetheBlochNoDeltaModel() -{} - inline G4double G4BetheBlochNoDeltaModel::ComputeDEDXPerVolume( const G4Material* material, const G4ParticleDefinition* pd, G4double kinEnergy, G4double) { - G4double dedx = G4BraggIonModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX); - if(mcharge2 > 2.0) { - G4double m = pd->GetPDGMass(); - dedx *= mcharge2*kinEnergy*(kinEnergy + 2.0*m)/((kinEnergy + m)*(kinEnergy + m)); - } + G4double dedx = G4BetheBlochModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX); return dedx; } diff --git a/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh b/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh index 4eb029b67c..47b8a5fc3f 100644 --- a/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BraggNoDeltaModel.hh,v 1.2 2005/05/18 11:02:10 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BraggNoDeltaModel.hh,v 1.4 2005/10/29 20:09:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -54,7 +54,7 @@ class G4BraggNoDeltaModel : public G4BraggIonModel public: - G4BraggNoDeltaModel(G4double ch = 1.0, const G4ParticleDefinition* p = 0, + G4BraggNoDeltaModel(const G4ParticleDefinition* p = 0, const G4String& nam = "BraggNoD"); virtual ~G4BraggNoDeltaModel(); @@ -76,29 +76,16 @@ private: G4BraggNoDeltaModel & operator=(const G4BraggNoDeltaModel &right); G4BraggNoDeltaModel(const G4BraggNoDeltaModel&); - G4double mcharge2; - }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4BraggNoDeltaModel::G4BraggNoDeltaModel(G4double ch, const G4ParticleDefinition*p, - const G4String& nam) : G4BraggIonModel(p, nam), mcharge2(ch*ch) -{} - -inline G4BraggNoDeltaModel::~G4BraggNoDeltaModel() -{} - inline G4double G4BraggNoDeltaModel::ComputeDEDXPerVolume( const G4Material* material, const G4ParticleDefinition* pd, G4double kinEnergy, G4double) { G4double dedx = G4BraggIonModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX); - if(mcharge2 > 2.0) { - G4double m = pd->GetPDGMass(); - dedx *= mcharge2*kinEnergy*(kinEnergy + 2.0*m)/((kinEnergy + m)*(kinEnergy + m)); - } return dedx; } diff --git a/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh b/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh index dc6ec5ab4c..d135008bc7 100644 --- a/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh +++ b/source/processes/electromagnetic/highenergy/include/G4GammaConversionToMuons.hh @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversionToMuons.hh,v 1.1 2004/11/19 18:44:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 diff --git a/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh b/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh index a95300c99c..533372a07c 100644 --- a/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh +++ b/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4Vee2hadrons.hh,v 1.1 2004/11/19 18:44:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh b/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh index 6f66462a3d..f58cb9d360 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eeCrossSections.hh,v 1.1 2004/11/19 18:44:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh b/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh index ae3ad7d098..bf7035c0ff 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eeToHadrons.hh,v 1.4 2005/05/18 10:12:32 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eeToHadrons.hh,v 1.5 2005/11/23 19:17:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -89,6 +89,7 @@ private: G4eeToHadrons(const G4eeToHadrons&); G4eeToHadronsMultiModel* multimodel; + G4double csFactor; G4bool isInitialised; }; diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh b/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh index e869012cbc..5f9de7e69e 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToHadronsModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eeToHadronsModel.hh,v 1.3 2005/05/18 10:12:32 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh b/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh index 283ccffe1c..4d759a4f3b 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eeToHadronsMultiModel.hh,v 1.1 2005/05/18 10:12:32 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh b/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh index 64c0ed48fe..7816d9d287 100644 --- a/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh +++ b/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eeToTwoPiModel.hh,v 1.1 2004/11/19 18:44:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh b/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh new file mode 100644 index 0000000000..748fc52b27 --- /dev/null +++ b/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh @@ -0,0 +1,141 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4hhIonisation.hh,v 1.1 2005/10/30 15:40:05 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4hhIonisation +// +// Author: Vladimir Ivanchenko +// +// Creation date: 30.09.2005 +// +// Modifications: +// +// +// Class Description: +// +// This class manages the ionisation process for exsotic hadrons +// without any delta electrons production +// + +// ------------------------------------------------------------------- +// + +#ifndef G4hhIonisation_h +#define G4hhIonisation_h 1 + +#include "G4VEnergyLossProcess.hh" +#include "globals.hh" +#include "G4VEmModel.hh" + +class G4Material; +class G4VEmFluctuationModel; + +class G4hhIonisation : public G4VEnergyLossProcess +{ + +public: + + G4hhIonisation(const G4String& name = "hhIoni"); + + virtual ~G4hhIonisation(); + + G4bool IsApplicable(const G4ParticleDefinition& p); + + G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); + + // Print out of the class parameters + virtual void PrintInfo(); + +protected: + + std::vector* SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&); + + virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, + const G4ParticleDefinition*); + +private: + + // hide assignment operator + G4hhIonisation & operator=(const G4hhIonisation &right); + G4hhIonisation(const G4hhIonisation&); + + G4double mass; + G4double ratio; + G4double minKinEnergy; + + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + G4VEmFluctuationModel* flucModel; + + G4bool isInitialised; + + G4double eth; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4bool G4hhIonisation::IsApplicable(const G4ParticleDefinition& p) +{ + return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 100.0*MeV && + !p.IsShortLived()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4hhIonisation::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double cut) +{ + G4double x = 0.5*cut/electron_mass_c2; + G4double y = electron_mass_c2/mass; + G4double g = x*y + std::sqrt((1. + x)*(1. + x*y*y)); + return mass*(g - 1.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline std::vector* G4hhIonisation::SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&) +{ + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/highenergy/src/G4AnnihiToMuPair.cc b/source/processes/electromagnetic/highenergy/src/G4AnnihiToMuPair.cc index b34ab40c35..914f70cd60 100644 --- a/source/processes/electromagnetic/highenergy/src/G4AnnihiToMuPair.cc +++ b/source/processes/electromagnetic/highenergy/src/G4AnnihiToMuPair.cc @@ -22,7 +22,7 @@ // // // $Id: G4AnnihiToMuPair.cc,v 1.2 2004/12/01 18:13:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------ G4AnnihiToMuPair physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, November 2002 diff --git a/source/processes/electromagnetic/highenergy/src/G4BetheBlochNoDeltaModel.cc b/source/processes/electromagnetic/highenergy/src/G4BetheBlochNoDeltaModel.cc new file mode 100644 index 0000000000..638e507ea5 --- /dev/null +++ b/source/processes/electromagnetic/highenergy/src/G4BetheBlochNoDeltaModel.cc @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4BetheBlochNoDeltaModel.cc,v 1.2 2005/10/29 20:09:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4BetheBlochNoDeltaModel +// +// Author: Vladimir Ivanchenko +// +// Creation date: 05.08.2005 +// +// Modifications: +// +// +// Class Description: +// +// Ionisation of heavy charged particles + +// ------------------------------------------------------------------- +// + +#include "G4BetheBlochNoDeltaModel.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4BetheBlochNoDeltaModel::G4BetheBlochNoDeltaModel( + const G4ParticleDefinition*p, const G4String& nam) : + G4BetheBlochModel(p, nam) +{} + +G4BetheBlochNoDeltaModel::~G4BetheBlochNoDeltaModel() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + diff --git a/source/processes/electromagnetic/highenergy/src/G4BraggNoDeltaModel.cc b/source/processes/electromagnetic/highenergy/src/G4BraggNoDeltaModel.cc new file mode 100644 index 0000000000..a97f78ac80 --- /dev/null +++ b/source/processes/electromagnetic/highenergy/src/G4BraggNoDeltaModel.cc @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4BraggNoDeltaModel.cc,v 1.2 2005/10/29 20:09:36 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4BraggNoDeltaModel +// +// Author: Vladimir Ivanchenko +// +// Creation date: 05.08.2005 +// +// Modifications: +// +// +// Class Description: +// +// Ionisation of heavy charged particles + +// ------------------------------------------------------------------- +// + +#include "G4BraggNoDeltaModel.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +G4BraggNoDeltaModel::G4BraggNoDeltaModel(const G4ParticleDefinition*p, + const G4String& nam) : + G4BraggIonModel(p, nam) +{} + +G4BraggNoDeltaModel::~G4BraggNoDeltaModel() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + diff --git a/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc b/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc index eed4337aed..f52903fcd1 100644 --- a/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc +++ b/source/processes/electromagnetic/highenergy/src/G4GammaConversionToMuons.cc @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversionToMuons.cc,v 1.3 2005/05/18 16:01:03 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 diff --git a/source/processes/electromagnetic/highenergy/src/G4eeCrossSections.cc b/source/processes/electromagnetic/highenergy/src/G4eeCrossSections.cc index a64e77ad52..32fe19a248 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeCrossSections.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeCrossSections.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eeCrossSections.cc,v 1.2 2004/12/01 18:13:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eeCrossSections.cc,v 1.5 2005/11/29 08:21:33 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -157,8 +157,11 @@ void G4eeCrossSections::Initialise() aomsigg = 0.; phomsigg = 0.; - G4double emin, emax; G4String w0, w1, w2; + ph3p = 0; + + /* + G4double emin, emax; G4int nbins; const G4String fname = "wrhopi.wid"; ifstream fi(fname.c_str()); @@ -177,6 +180,7 @@ void G4eeCrossSections::Initialise() ph3p->PutValue(5*i + 4, s4); } fi.close(); + */ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -230,8 +234,10 @@ G4double G4eeCrossSections::Width3p(G4double s, G4double mres, G4double G4eeCrossSections::PhaseSpace3p(G4double e) { - G4bool b; - G4double x = ph3p->GetValue(e, b); + + // G4bool b; + // G4double x = ph3p->GetValue(e, b); + G4double x = 1.0; G4double emev = e/MeV; G4double y = 414.12/emev; x *= pow(e/MsOm, 5.0) * pow(emev*0.1, 3.0)*(1.0 - y*y); diff --git a/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc b/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc index d5c1def8c2..0f97630fd6 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eeToHadrons.cc,v 1.4 2005/05/18 10:12:32 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eeToHadrons.cc,v 1.6 2005/11/29 08:15:20 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -37,6 +37,7 @@ // Modifications: // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 23-11-05 Istert AddEmModel which was lost (V.Ivantchenko) // // @@ -55,15 +56,17 @@ using namespace std; G4eeToHadrons::G4eeToHadrons(const G4String& name) : G4VEmProcess(name), + multimodel(0), + csFactor(1.0), isInitialised(false) -{} +{ + SetVerboseLevel(1); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4eeToHadrons::~G4eeToHadrons() -{ - delete multimodel; -} +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -74,11 +77,14 @@ void G4eeToHadrons::InitialiseProcess(const G4ParticleDefinition*) SetBuildTableFlag(false); SetIntegral(true); + SetMaxKinEnergy(10.0*TeV); SetSecondaryParticle(G4Gamma::Gamma()); SetParticle(G4Positron::Positron()); multimodel = new G4eeToHadronsMultiModel(verboseLevel); + if(csFactor > 1.0) multimodel->SetCrossSecFactor(csFactor); + AddEmModel(1, multimodel); } } @@ -93,7 +99,8 @@ void G4eeToHadrons::PrintInfo() void G4eeToHadrons::SetCrossSecFactor(G4double fac) { - multimodel->SetCrossSecFactor(fac); + if(multimodel) multimodel->SetCrossSecFactor(fac); + csFactor = fac; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc index 60c5b7db02..741b354d2f 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eeToHadronsModel.cc,v 1.4 2005/05/18 10:12:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eeToHadronsModel.cc,v 1.5 2005/11/23 19:17:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -127,7 +127,7 @@ void G4eeToHadronsModel::Initialise(const G4ParticleDefinition*, } ComputeCMCrossSectionPerElectron(); } - if(verbose>0) { + if(verbose>1) { G4cout << "G4eeToHadronsModel: Cross secsions per electron" << " nbins= " << nbins << " emin(MeV)= " << emin/MeV diff --git a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc index cdc09e1a20..e97302ee56 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eeToHadronsMultiModel.cc,v 1.1 2005/05/18 10:12:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eeToHadronsMultiModel.cc,v 1.2 2005/11/23 19:17:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -66,8 +66,8 @@ G4eeToHadronsMultiModel::G4eeToHadronsMultiModel(G4int ver, const G4String& name G4eeToHadronsMultiModel::~G4eeToHadronsMultiModel() { G4int n = models.size(); - if(n>1) { - for(G4int i=1; i0) { + for(G4int i=0; i 0) { + G4cout << " e+ annihilation into hadrons active above " + << thKineticEnergy/GeV << " GeV" + << G4endl; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -114,8 +116,9 @@ void G4eeToHadronsMultiModel::SetCrossSecFactor(G4double fac) { if(fac > 1.0) { csFactor = fac; - G4cout << "### G4eeToHadronsMultiModel: The cross section for G4eeToHadronsMultiModel is " - << "increased by the Factor= " << csFactor << G4endl; + if(verbose > 0) + G4cout << "### G4eeToHadronsMultiModel: The cross section for G4eeToHadronsMultiModel is " + << "increased by the Factor= " << csFactor << G4endl; } } diff --git a/source/processes/electromagnetic/highenergy/src/G4eeToTwoPiModel.cc b/source/processes/electromagnetic/highenergy/src/G4eeToTwoPiModel.cc index 4f02e01ff1..503b5bba2e 100644 --- a/source/processes/electromagnetic/highenergy/src/G4eeToTwoPiModel.cc +++ b/source/processes/electromagnetic/highenergy/src/G4eeToTwoPiModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eeToTwoPiModel.cc,v 1.2 2004/12/01 18:13:44 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eeToTwoPiModel.cc,v 1.3 2005/11/29 08:13:07 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -85,7 +85,7 @@ G4PhysicsVector* G4eeToTwoPiModel::PhysicsVector(G4double emin, { G4double tmin = max(emin, 2.0*massPi); G4double tmax = max(tmin, emax); - G4int nbins = (G4int)((tmax - tmin)/MeV); + G4int nbins = (G4int)((tmax - tmin)/(5.*MeV)); G4PhysicsVector* v = new G4PhysicsLinearVector(emin,emax,nbins); return v; } diff --git a/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc b/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc new file mode 100644 index 0000000000..1f122819dd --- /dev/null +++ b/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc @@ -0,0 +1,129 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4hhIonisation.cc,v 1.2 2005/11/29 08:13:48 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4hhIonisation +// +// Author: Vladimir Ivanchenko +// +// Creation date: 30.09.2005 +// +// Modifications: +// +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4hhIonisation.hh" +#include "G4BraggNoDeltaModel.hh" +#include "G4BetheBlochNoDeltaModel.hh" +#include "G4UniversalFluctuation.hh" +#include "G4BohrFluctuations.hh" +#include "G4UnitsTable.hh" +#include "G4Electron.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4hhIonisation::G4hhIonisation(const G4String& name) + : G4VEnergyLossProcess(name), + theParticle(0), + theBaseParticle(0), + isInitialised(false) +{ + minKinEnergy = 0.1*keV; + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(minKinEnergy); + SetMaxKinEnergy(100.0*TeV); + SetVerboseLevel(2); + mass = 0.0; + ratio = 0.0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4hhIonisation::~G4hhIonisation() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4hhIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition* part, + const G4ParticleDefinition* bpart) +{ + if(isInitialised) return; + + theParticle = part; + if(bpart) G4cout << "G4hhIonisation::InitialiseEnergyLossProcess WARNING: no " + << "base particle should be defined for the process " + << GetProcessName() << G4endl; + + SetBaseParticle(0); + SetSecondaryParticle(G4Electron::Electron()); + mass = theParticle->GetPDGMass(); + ratio = electron_mass_c2/mass; + eth = 2.0*MeV*mass/proton_mass_c2; + flucModel = new G4BohrFluctuations(); + + G4int nm = 1; + + if(eth > minKinEnergy) { + G4VEmModel* em = new G4BraggNoDeltaModel(); + em->SetLowEnergyLimit(minKinEnergy); + em->SetHighEnergyLimit(eth); + AddEmModel(nm, em, flucModel); + nm++; + } + + G4VEmModel* em1 = new G4BetheBlochNoDeltaModel(); + em1->SetLowEnergyLimit(std::max(eth,minKinEnergy)); + em1->SetHighEnergyLimit(100.0*TeV); + AddEmModel(nm, em1, flucModel); + + SetStepLimits(0.1, 0.1*mm); + + G4cout << "G4hhIonisation is initialised: nm= " << nm << G4endl; + + isInitialised = true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4hhIonisation::PrintInfo() +{ + G4cout << " Delta-ray will not be produced; " + << "Bether-Bloch model for E > " << std::max(eth,minKinEnergy) + << G4endl; + if(eth > minKinEnergy) G4cout + << " ICRU49 parametrisation scaled from protons below."; + G4cout << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/lowenergy/History b/source/processes/electromagnetic/lowenergy/History index d43a2fdcab..9dc6c33c16 100644 --- a/source/processes/electromagnetic/lowenergy/History +++ b/source/processes/electromagnetic/lowenergy/History @@ -1,4 +1,4 @@ -$Id: History,v 1.227 2005/05/31 13:10:47 pia Exp $ +$Id: History,v 1.244 2005/11/30 16:34:11 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,170 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +30.11.2005 G.Cosmo, tag emlowen-V07-01-14 + * Fixes for migration to from obsolete . + * Trivial fix to G4LowEnergyGammaConversion for support of + CLHEP-2.0.X series. + NOTE: usage of RandBit can lead to event irreproducibility ! + +04.11.2005 MGP, tag emlowen-V07-01-13 + Fix in G4hLowEnergyIonistation (see note on 08.09.2005) + On top of emlowen-V07-01-12 + +04.11.2005 MGP, tag emlowen-V07-01-12 + Fixes in atomic relaxation by A. Mantero + On top of geant4-07-01-ref-04 + +21.09.2005 Ziad FRANCIS, tag emlowen-V07-01-11 + * Small corrections in G4DNAProtonBornExcitationProcess + * ProtonBornExcitationCrossSection data file created + * ProtonBornExcitation is tested an seems working fine. + +21.09.2005 Ziad FRANCIS, tag emlowen-V07-01-10 + * G4DNARuddIonizationFinalStatesPolicy modifications so it + becomes a common policy for HydrogenRuddIonization and + ProtonRuddIonization. + So, G4DNAHydrogenRuddIonizationFinalStatesPolicy.hh .icc + where deleted (useless). + * G4DNAElectronBornExcitation Process implemented with data + file "ElectronBornExcitationCrossSection" and tested by + modified G4DNATest.cc + * G4DNAProtonBornExcitation Process was implemented. + ! It was NOT tested + ! Data file "ProtonBornExcitation" is NOT ready yet + +16.09.2005 Ziad FRANCIS, tag emlowen-V07-01-09 + * Implementation of Hydrogen Ionization Process in liquid water + according to the model of Eugene Rudd. Files created : + - G4DNAHydrogenRuddIonization.hh & .cc + - G4DNAHydrogenRuddIonizationFinalStatesPolicy.hh & .icc + - "RuddHydrogenIonizationCrossSection.dat" located in + ...lowenergy/test/ contains the total integrated + cross section. + * G4DNATest was modified in order to take into account + G4DNAHydrogenRuddIonization process. + * Duplicated functions in G4DNARuddIonizationFinalStatesPolicy + .hh & . icc were removed and fixed. + * G4DNARuddTotalCrossSectionPolicy.hh was removed (not needed). + * G4DNAHydrogenRuddIonization Process was tested and seems + working fine. + +15.09.2005 Ziad FRANCIS, tag emlowen-V07-01-08 + * Implementation of Proton Charge Increase process according to + the model proposed by Dingfelder(2000). Files created : + - G4DNAChargeIncreaseInWater.hh .icc + - G4DNAProtonChargeIncrease.hh .cc + - G4DNAProtonChargeIncreaseTotalCrossSectionPolicy.hh + .icc + - G4DNAProtonChargeIncreaseFinalStatesPolicy.hh .icc + * G4DNATest was modified in order to take into account this + proton charge increase process in liquid water. + * G4DNAProtonChargeIncrease was tested and seems to be OK! + +15.09.2005 Ziad FRANCIS, tag emlowen-V07-01-07 + * Implementation of slow protons Charge Transfer process + according to the model used by M.Dingfelder(2000). Files + created : + - G4DNAChargeDecreaseInWater.hh .icc + - G4DNAProtonChargeDecrease.hh .cc + - G4DNAProtonChargeDecreaseTotalCrossSectionPolicy.hh + .icc + - G4DNAProtonChargeDecreaseFinalStatesPolicy.hh .icc + * G4DNATest was modified in order to take into account + ProtonChargeDecrease process testing. + * G4DNAProtonChargeDecrease was Tested and seems working fine ! + +13.09.2005 Ziad FRANCIS, tag emlowen-V07-01-06 + * Implementation of slow protons (<500keV) ionization process according + to the Rudd semi empirical model, files created : + - G4DNAIonizationInWater.hh .icc + - G4DNAProtonRuddIonizationFinalStatesPolicy.hh .icc + - G4DNAProtonRuddIonization.hh .cc + * Total integrated cross sections are in a data file + "RuddProtonIonizationCrossSection.dat" + * G4DNATest was modified in order to take into account this + ProtonRuddIonization process which was tested in a first + approach. + +12.09.2005 R.Capra, tag emlowen-V07-01-05 + * Minor changes to G4DNATest in order to corectly support + secondaries. + * Minor changes to G4VDNAProcessInWater in order to corectly + kill particles with secondaries + +10.09.2005 R.Capra, tag emlowen-V07-01-04 + * Minor fixes to G4DNATotalCrossSectionFromFilePolicy. It had + compilation errors. + +08.09.2005 R.Capra, tag emlowen-V07-01-03 + * There is a serius bug in G4hLowEnergyLoss. There are + a lot of static data members. Moreover there are static + vectors with fixed dimensions. + The vector dimension has been resized from 10 to 100 in order + to avoid memory corruption errors caused by code in + src/G4hLowEnergyIonisation.cc. + The bug cannot be considered properly fixed. It is still + pending + * test/G4DNATest.cc has been upgraded in order to manage + processes with more than one secondary particle + +26.07.2005 Ziad FRANCIS, tag emlowen-V07-01-02 + * G4DNAEmfietzoglouExcitationTotalCrossSectionPolicy.hh and + G4DNAEmfietzoglouExcitationTotalCrossSectionPolicy.icc were + tested using G4DNATest + * G4DNATest upgrade in order to manage G4DNAElectronExcitation + testing + * Implementation of Electron Excitation process + (G4DNAElectronExcitation) + +20.07.2005 Riccardo Capra, tag emlowen-V07-01-01 + * Small corrections in G4DNATotalCrossSectionFromFilePolicy + * Implementation of DNA excitation processes for protons and + alphas. + - Processes tested (preliminary test). Protons seems fine + while alpha particle total cross section differs from + plots in the reference documents + * G4DNATest upgrade in order to manage the new implemented + processes and in order to select the particle type from + command line + +07.07.2005 Riccardo Capra, tag emlowen-V07-01-00 + * G4DNAElectronElasticBrenner and G4DNAElectronElasticEmfietzoglou + were tested with G4DNATest + - Some minor correction to the related classes + * Implementation of the total cross-section policy that allows + reading file tables (tested) + * Correction in the Save method of the G4(*)EMDataSet classes + - The previous tag has a problem with units + +24.06.2005 Riccardo Capra, tag emlowen-V07-00-13 + * Changes to G4(*)EMDataSet classes according to the design + iteration: + - LoadData is now a public virtual method + - SaveData is a new method that allows data saving in the same + format of LoadData. + - Constructors with the filename cannot be used anymore. They + are substituted with constructors that generates an empty + data set + - Energies and Data can be set after de construction with + the new SetEnergiesData + + * Changes to G4VLowEnergyDiscretePhotonProcess in order to + inherit from G4VLowEnergyTestableDiscreteProcess. + - GetMeanFreePath and PostStepDoIt methods of all discrete + processes made inherit from G4VLowEnergyTestableDiscreteProcess + could be (partially) tested with a unique testing code now. + + * DNA code changed according to the design iteration tha now + uses templated classes + + * Code builds and links the test codes unde Linux. + - G4(*)EMDataSet and DNA classes test are still in progress + - Some minor changes could be done to the structures used to + configure the policy-based processes + +??.??.???? ?, tag emlowen-V07-00-12 + 31.05.2005 MGP, tag emlowen-V07-00-11 Fix to Penelope ionisation (for atomic deexcitation?) contributed by A. Mantero diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh index b6f99802cb..bdba86872c 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AtomicDeexcitation.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransitionManager.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh index c3902b23cd..5a77fdd5a8 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShell.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh index 6d9e3c2c1b..a4ab2891cb 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AtomicTransitionManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransitionManager.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh b/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh index 7c5c7fba58..0563f16f28 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4AugerData.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4AugerData.hh -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh b/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh index e159e87089..06e00486e6 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4BremsstrahlungParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4BremsstrahlungParameters.hh,v 1.9 2003/06/16 16:59:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // V. Ivanchenko (Vladimir.Ivantchenko@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh index d53490ad92..67ea778ec9 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4CompositeEMDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4CompositeEMDataSet.hh,v 1.5 2003/06/16 16:59:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh index afbbb1fc5a..458b8d1928 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4CrossSectionHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4CrossSectionHandler.hh,v 1.8 2003/06/16 16:59:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh index 355c75c9a5..10f74b1c83 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4EMDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4EMDataSet.hh,v 1.4 2003/05/20 20:03:34 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh b/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh index 8241145c9d..e01ac0011c 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4FluoTransition.hh @@ -22,7 +22,7 @@ // // // $Id: G4FluoTransition.hh,v 1.2 ???? -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh index 34c0494469..96d1a7e0c7 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LinInterpolation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LinInterpolation.hh,v 1.2 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh index 385f91221c..434745ae09 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LogLogInterpolation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LogLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh index 4a7cf37043..5fab359a54 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyBremsstrahlung.hh @@ -23,7 +23,7 @@ // // ------------------------------------------------------------------- // $Id: G4LowEnergyBremsstrahlung.hh,v 1.36 2003/11/10 17:50:46 trindade Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Forti // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh index b61f0f63b4..fde632297d 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyCompton.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LowEnergyCompton.hh,v 1.20 2003/12/09 15:36:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh index 3973187ec2..ae6899dedd 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyGammaConversion.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyGammaConversion.hh,v 1.14 2001/10/08 07:45:33 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh index cab8580a67..bd24dee1ff 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyIonisation.hh @@ -22,7 +22,7 @@ // // ------------------------------------------------------------------- // $Id: G4LowEnergyIonisation.hh,v 1.40 2003/06/16 16:59:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Forti // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh index 7a0485f81e..6b261259e4 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPhotoElectric.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyPhotoElectric.hh,v 1.26 2004/05/12 09:20:03 silvarod Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh index c1b75d714e..09c9806ea5 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedCompton.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyPolarizedCompton.hh,v 1.8 2002/05/31 18:11:45 flongo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedRayleigh.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedRayleigh.hh index 14c9173319..bf59420fe9 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedRayleigh.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyPolarizedRayleigh.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LowEnergyPolarizedRayleigh.hh,v 1.4 2005/05/20 15:19:18 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh index 97790f0c02..246b405c57 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4LowEnergyRayleigh.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyRayleigh.hh,v 1.15 2001/10/08 07:45:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlung.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlung.hh index 4979e7d1a5..d3334bf739 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlung.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlung.hh @@ -23,7 +23,7 @@ // // ------------------------------------------------------------------- // $Id: G4PenelopeBremsstrahlung.hh,v 1.7 2003/11/11 17:18:30 pandola Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: L.Pandola // diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungAngular.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungAngular.hh index 28e31cddcb..038d87d548 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungAngular.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungAngular.hh @@ -23,7 +23,7 @@ // // ------------------------------------------------------------------- // $Id: G4PenelopeBremsstrahlungAngular.hh,v 1.2 2003/11/07 12:26:08 pandola Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: L.Pandola // diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungContinuous.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungContinuous.hh index 55e35b8200..cc874301c3 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungContinuous.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopeBremsstrahlungContinuous.hh @@ -23,7 +23,7 @@ // // ------------------------------------------------------------------- // $Id: G4PenelopeBremsstrahlungContinuous.hh,v 1.2 2003/03/19 10:28:28 pandola Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: L.Pandola // diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopeCompton.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopeCompton.hh index 0f9c62e854..4c228e2ed4 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopeCompton.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopeCompton.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PenelopeCompton.hh,v 1.9 2004/06/03 08:17:52 pandola Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Luciano Pandola // diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopeGammaConversion.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopeGammaConversion.hh index 3db652e470..b026ad9543 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopeGammaConversion.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopeGammaConversion.hh @@ -22,7 +22,7 @@ // // // $Id: G4PenelopeGammaConversion.hh,v 1.1 2002/12/06 16:25:00 pandola Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: L. Pandola // diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopeIonisation.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopeIonisation.hh index 86f099517e..e2f452375e 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopeIonisation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopeIonisation.hh @@ -22,7 +22,7 @@ // // ------------------------------------------------------------------- // $Id: G4PenelopeIonisation.hh,v 1.4 2003/07/09 12:36:46 pandola Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: L. Pandola // diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectric.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectric.hh index 5e2b575e42..61b3a7f4b8 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectric.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopePhotoElectric.hh @@ -22,7 +22,7 @@ // // // $Id: G4PenelopePhotoElectric.hh,v 1.3 2005/05/31 10:09:14 pandola Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: L.Pandola // diff --git a/source/processes/electromagnetic/lowenergy/include/G4PenelopeRayleigh.hh b/source/processes/electromagnetic/lowenergy/include/G4PenelopeRayleigh.hh index c8ce0a2402..6f1d3a65e7 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4PenelopeRayleigh.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4PenelopeRayleigh.hh @@ -22,7 +22,7 @@ // // // $Id: G4PenelopeRayleigh.hh,v 1.4 2004/03/18 13:40:13 pandola Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Luciano Pandola // diff --git a/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh b/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh index b068510206..747b5af2d5 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4RangeNoTest.hh @@ -22,7 +22,7 @@ // // // $Id: G4RangeNoTest.hh,v 1.3 2003/05/20 20:03:34 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh b/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh index 974ab3b313..dcae54a51d 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4RangeTest.hh @@ -22,7 +22,7 @@ // // // $Id: G4RangeTest.hh,v 1.3 2003/01/22 18:42:23 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh b/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh index 3705076d57..b51ef5282f 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4SemiLogInterpolation.hh @@ -22,7 +22,7 @@ // // // $Id: G4SemiLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh b/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh index 266e03656d..05bfbad731 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4ShellData.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShellData.hh,v 1.3 2003/06/16 16:59:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh index 526fe70b1b..b77c30f9da 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4ShellEMDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShellEMDataSet.hh,v 1.5 2003/06/16 16:59:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh index bfbdaa166b..1b6e398218 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VCrossSectionHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCrossSectionHandler.hh,v 1.13 2003/06/16 16:59:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh b/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh index 6d3c9e5206..10595d89ef 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VDataSetAlgorithm.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDataSetAlgorithm.hh,v 1.6 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh b/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh index ac33c3b9fd..d0068b8ff4 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VEMDataSet.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEMDataSet.hh,v 1.6 2002/05/28 09:15:26 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VLowEnergyDiscretePhotonProcess.hh b/source/processes/electromagnetic/lowenergy/include/G4VLowEnergyDiscretePhotonProcess.hh index b637682bbd..ddd697f10e 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VLowEnergyDiscretePhotonProcess.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VLowEnergyDiscretePhotonProcess.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4VLowEnergyDiscretePhotonProcess.hh,v 1.2 2005/05/20 15:19:18 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh b/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh index 068e1cc3cf..cbd62bb0fc 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VRangeTest.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRangeTest.hh,v 1.2 2003/01/22 18:42:23 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh b/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh index e1a078badd..7b8446abd6 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4VeLowEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VeLowEnergyLoss.hh,v 1.8 2003/01/22 18:42:24 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // 3.4.2000 Veronique Lefebure: // Move utils/include/G4VEnergyLoss.hh to diff --git a/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh b/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh index d20f3f4f1f..20d8a3c966 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eBremsstrahlungSpectrum.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eBremsstrahlungSpectrum.hh,v 1.7 2003/12/09 15:36:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh b/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh index 67f4c06698..65791a9676 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eIonisationCrossSectionHandler.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eIonisationCrossSectionHandler.hh,v 1.5 2003/06/16 16:59:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh b/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh index 02500ed6db..97600b79cd 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eIonisationParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4eIonisationParameters.hh,v 1.7 2003/06/16 16:59:54 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // V. Ivanchenko diff --git a/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh b/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh index c3590e1e56..0274c12834 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eIonisationSpectrum.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eIonisationSpectrum.hh,v 1.6 2003/12/09 15:36:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh index 4c98105b30..3145d44a51 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4eLowEnergyLoss.hh,v 1.13 2004/12/02 14:01:12 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc index 53e0db4588..f2190127b8 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc +++ b/source/processes/electromagnetic/lowenergy/include/G4eLowEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4eLowEnergyLoss.icc,v 1.7 2003/06/16 16:59:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // --------------------------------------------------------------- // GEANT 4 class inlined methods file diff --git a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh index c832692a3c..7280874a1f 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4hLowEnergyLoss.hh,v 1.16 2004/12/02 14:01:12 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc index da88b187bd..76c92c843f 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc +++ b/source/processes/electromagnetic/lowenergy/include/G4hLowEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4hLowEnergyLoss.icc,v 1.2 2001/07/11 10:02:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: // --------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSection.hh b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSection.hh index f2da725c04..b9107b8336 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSection.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSection.hh @@ -62,6 +62,13 @@ public: G4double deltaEnergy, G4bool testFlag = false) const; +std::vector CalculateCrossSections(G4int Z, + G4double incidentEnergy, + G4double hMass, + G4double deltaEnergy, + G4bool testFlag) const; + + protected: virtual std::vector Probabilities(G4int Z, diff --git a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExp.hh b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExp.hh index 4b4dd99e62..ecb0d75e05 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExp.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExp.hh @@ -41,7 +41,7 @@ // // ------------------------------------------------------------------- // $Id: G4hShellCrossSectionDoubleExp.hh,v 1.2 2004/11/26 08:50:47 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4HSHELLCROSSSECTIONDOUBLEEXP_HH #define G4HSHELLCROSSSECTIONDOUBLEEXP_HH 1 diff --git a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExpData.hh b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExpData.hh index 068f14a965..067cf5343c 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExpData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionDoubleExpData.hh @@ -36,7 +36,7 @@ // Further documentation available from http://www.ge.infn.it/geant4/lowE // ------------------------------------------------------------------- // $Id: G4hShellCrossSectionDoubleExpData.hh,v 1.2 2004/11/26 08:50:47 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4hShellCrossSectionDoubleExpData_HH #define G4hShellCrossSectionDoubleExpData_HH 1 diff --git a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExp.hh b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExp.hh index 0e8b1d9d4d..5fbd46fd6e 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExp.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExp.hh @@ -41,7 +41,7 @@ // ------------------------------------------------------------------- // $Id: G4hShellCrossSectionExp.hh,v 1.2 2004/11/26 08:50:47 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4HSHELLCROSSSECTIONEXP_HH #define G4HSHELLCROSSSECTIONEXP_HH 1 diff --git a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExpData.hh b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExpData.hh index a39ad834c1..476ceb1219 100644 --- a/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExpData.hh +++ b/source/processes/electromagnetic/lowenergy/include/G4hShellCrossSectionExpData.hh @@ -34,7 +34,7 @@ // Further documentation available from http://www.ge.infn.it/geant4/lowE // ------------------------------------------------------------------- // $Id: G4hShellCrossSectionExpData.hh,v 1.2 2004/11/26 08:50:47 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #ifndef G4hShellCrossSectionExpData_HH #define G4hShellCrossSectionExpData_HH 1 diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc index 2302f8ee46..f90ebc3c90 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicDeexcitation.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicDeexcitation.cc,v 1.11 -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) @@ -43,8 +43,8 @@ #include "G4FluoTransition.hh" G4AtomicDeexcitation::G4AtomicDeexcitation(): - minGammaEnergy(250.*eV), - minElectronEnergy(250.*eV), + minGammaEnergy(100.*eV), + minElectronEnergy(100.*eV), fAuger(false) {} @@ -310,6 +310,9 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) // Now we have that shellnum is the shellIndex of the shell named ShellId + + // G4cout << " the index of the shell is: "<ReachableAugerShell(Z,shellNum); + // G4cout << " corresponding to the ID: "<< anAugerTransition->FinalShellId() << G4endl; + + G4int transitionSize = (anAugerTransition->TransitionOriginatingShellIds())->size(); while (transitionLoopShellIndex < transitionSize) { @@ -350,6 +356,27 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) // Now we have the entire probability of an auger transition for the vacancy // located in shellNum (index of shellId) + + // AM *********************** F I X E D **************************** AM + // Here we duplicate the previous loop, this time looking to the sum of the probabilities + // to be under the random number shoot by G4 UniformRdandom. This could have been done in the + // previuos loop, while integrating the probabilities. There is a bug that will be fixed + // 5 minutes from now: a line: + // G4int numberOfPossibleAuger = (anAugerTransition-> + // AugerTransitionProbabilities(transitionLoopShellId))->size(); + // to be inserted. + // AM *********************** F I X E D **************************** AM + + // Remains to get the same result with a single loop. + + // AM *********************** F I X E D **************************** AM + // Another Bug: in EADL Auger Transition are normalized to all the transitions deriving from + // a vacancy in one shell, but no alla of these are present in data tables. So if a transition + // doesn't occur in the maoin onesm a local energy deposition must occur, instead of (like now) + // generating the last transition present in EADL data. + // AM *********************** F I X E D **************************** AM + + G4double totalVacancyAugerProbability = partSum; @@ -363,6 +390,7 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) G4int numberOfPossibleAuger = (anAugerTransition->AugerTransitionProbabilities(transitionRandomShellId))->size(); + G4bool foundFlag = false; while (transitionRandomShellIndex < transitionSize) { @@ -371,11 +399,9 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) transitionRandomShellId = *(pos+transitionRandomShellIndex); - // G4int transitionRandomShellId = *(anAugerTransition->TransitionOriginatingShellIds())[transitionRandomShellIndex]; - - augerIndex = 0; - + numberOfPossibleAuger = (anAugerTransition-> + AugerTransitionProbabilities(transitionRandomShellId))->size(); while (augerIndex < numberOfPossibleAuger) { G4double thisProb =anAugerTransition->AugerTransitionProbability(augerIndex, @@ -383,7 +409,10 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) partSum += thisProb; - if (partSum >= (partialProb/totalVacancyAugerProbability) ) {break;} + if (partSum >= (partialProb/totalVacancyAugerProbability) ) { + foundFlag = true; + break; + } augerIndex++; } if (partSum >= (partialProb/totalVacancyAugerProbability) ) {break;} @@ -391,8 +420,10 @@ G4DynamicParticle* G4AtomicDeexcitation::GenerateAuger(G4int Z, G4int shellId) } // Now we have the index of the shell from wich comes the auger electron (augerIndex), - // and the id of the shell, from which the transition e- come (transitionRandomShellid) - + // and the id of the shell, from which the transition e- come (transitionRandomShellid) + // If no Transition has been found, 0 is returned. + + if (!foundFlag) {return 0;} // Isotropic angular distribution for the outcoming e- G4double newcosTh = 1.-2.*G4UniformRand(); diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc index 2b7d1426ec..217418ec8a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShell.cc,v 1.2 ???? -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc index 2f518720ac..de153404a1 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AtomicTransitionManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicTransitionManager.cc,v 1.2 ???? -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // Alfonso Mantero (Alfonso.Mantero@ge.infn.it) diff --git a/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc b/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc index bb962b1ec8..f313fda4da 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AugerData.cc @@ -40,7 +40,7 @@ #include "G4Element.hh" #include "G4ElementVector.hh" #include -#include +#include G4AugerData::G4AugerData() { @@ -232,15 +232,14 @@ std::vector G4AugerData::LoadData(G4int Z) { // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; if(Z != 0){ ost << "au-tr-pr-"<< Z << ".dat"; } else{ ost << "au-tr-pr-"<<".dat"; } - G4String name(nameChar); + G4String name(ost.str()); char* path = getenv("G4LEDATA"); if (!path) @@ -400,8 +399,8 @@ std::vector G4AugerData::LoadData(G4int Z) } else { - std::vector::iterator vectorIndex = (initIds->end())-1; - if((G4int)a != *vectorIndex){ + // std::vector::iterator vectorIndex = (initIds->end())-1; + if((G4int)a != initIds->back()){ if((initIds->size()) == 1) { @@ -409,9 +408,9 @@ std::vector G4AugerData::LoadData(G4int Z) } else { - initIds->push_back((G4int)a); + G4int augerShellId = 0; - augerShellId = *vectorIndex; + augerShellId = initIds->back(); (*newIdMap)[augerShellId] = *newIds; (*newEnergyMap)[augerShellId] = *transEnergies; @@ -422,6 +421,7 @@ std::vector G4AugerData::LoadData(G4int Z) newIds = new std::vector; transEnergies = new G4DataVector; transProbabilities = new G4DataVector; + initIds->push_back((G4int)a); } } } diff --git a/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc b/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc index 9f79ce415e..58358ca175 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4AugerTransition.cc @@ -133,9 +133,11 @@ G4int G4AugerTransition::AugerOriginatingShellId(G4int index, G4int startShellId G4double G4AugerTransition::AugerTransitionEnergy(G4int index, G4int startShellId) const { const G4DataVector* energies = AugerTransitionEnergies(startShellId); - G4DataVector::const_iterator pos = energies->begin(); - G4double energy = 0; - energy = *(pos+index); + G4double energy = 0; + if (index < (G4int) energies->size()) { + G4DataVector::const_iterator pos = energies->begin(); + energy = *(pos+index); + } return energy; } diff --git a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc index dc4dde09e6..a32018ef1a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungCrossSectionHandler.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BremsstrahlungCrossSectionHandler.cc,v 1.8 2003/06/16 17:00:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc index 93b45338e5..2b89eb1774 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4BremsstrahlungParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BremsstrahlungParameters.cc,v 1.17 2003/06/16 17:00:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BremsstrahlungParameters.cc,v 1.18 2005/11/30 16:34:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // V.Ivanchenko (Vladimir.Ivantchenko@cern.ch) @@ -45,7 +45,6 @@ #include "G4LogLogInterpolation.hh" #include "G4Material.hh" #include -#include G4BremsstrahlungParameters:: G4BremsstrahlungParameters(const G4String& name, diff --git a/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc index a9638fa3fb..a9e04b128b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CompositeEMDataSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CompositeEMDataSet.cc,v 1.7 2003/06/16 17:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4CompositeEMDataSet.cc,v 1.7.2.1 2005/11/30 16:35:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -36,7 +36,7 @@ #include "G4EMDataSet.hh" #include "G4VDataSetAlgorithm.hh" #include -#include +#include G4CompositeEMDataSet::G4CompositeEMDataSet(G4VDataSetAlgorithm* interpolation, @@ -105,12 +105,11 @@ void G4CompositeEMDataSet::LoadData(const G4String& fileName) { // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; ost << fileName << Z << ".dat"; - G4String name(nameChar); + G4String name(ost.str()); char* path = getenv("G4LEDATA"); if (!path) diff --git a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc index acd4419a86..51d3aa0445 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4CrossSectionHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CrossSectionHandler.cc,v 1.16 2003/06/16 17:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4CrossSectionHandler.cc,v 1.17 2005/11/30 16:34:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -46,8 +46,6 @@ #include "Randomize.hh" #include #include -#include -#include #include "G4LogLogInterpolation.hh" diff --git a/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc index 94469013ec..0d9e2e725a 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4EMDataSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EMDataSet.cc,v 1.9 2003/06/16 17:00:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EMDataSet.cc,v 1.9.2.1 2005/11/30 16:35:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -35,7 +35,7 @@ #include "G4EMDataSet.hh" #include "G4VDataSetAlgorithm.hh" #include -#include +#include // Constructor @@ -143,12 +143,11 @@ void G4EMDataSet::LoadData(const G4String& fileName) { // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; ost << fileName << z << ".dat"; - G4String name(nameChar); + G4String name(ost.str()); char* path = getenv("G4LEDATA"); if (!path) diff --git a/source/processes/electromagnetic/lowenergy/src/G4FluoData.cc b/source/processes/electromagnetic/lowenergy/src/G4FluoData.cc index 6e805c3b6b..3500ed20f9 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4FluoData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4FluoData.cc @@ -34,7 +34,7 @@ #include "G4DataVector.hh" #include "G4FluoTransition.hh" #include -#include +#include G4FluoData::G4FluoData() { @@ -175,15 +175,14 @@ void G4FluoData::LoadData(G4int Z) { // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; if(Z != 0){ ost << "fl-tr-pr-"<< Z << ".dat"; } else{ ost << "fl-tr-pr-"<<".dat"; } - G4String name(nameChar); + G4String name(ost.str()); char* path = getenv("G4LEDATA"); if (!path) diff --git a/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc b/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc index e39b828b38..a4789a5afd 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4FluoTransition.cc @@ -22,7 +22,7 @@ // // // $Id: G4FluoTransition.cc,v 1.2 ???? -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc index a81f6bdccc..875e8178b4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LinInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4LinInterpolation.cc,v 1.2 2002/05/28 09:20:19 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc index e665f10ba8..2ec528d04c 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LogLogInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogLogInterpolation.cc,v 1.6 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc index 08e780dfa7..818fce4de3 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyBremsstrahlung.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LowEnergyBremsstrahlung.cc,v 1.70 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc index 792eb85266..0cd1dae835 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyCompton.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LowEnergyCompton.cc,v 1.39 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc index 41080c8420..c73f665e3f 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyGammaConversion.cc @@ -22,8 +22,8 @@ // // -------------------------------------------------------------------- /// -// $Id: G4LowEnergyGammaConversion.cc,v 1.34 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LowEnergyGammaConversion.cc,v 1.35 2005/11/30 10:44:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -209,7 +209,7 @@ G4VParticleChange* G4LowEnergyGammaConversion::PostStepDoIt(const G4Track& aTrac G4double electronTotEnergy; G4double positronTotEnergy; - if (RandBit::shootBit()) + if (CLHEP::RandBit::shootBit()) { electronTotEnergy = (1. - epsilon) * photonEnergy; positronTotEnergy = epsilon * photonEnergy; diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc index 6bbe6dbc7e..987bf9ef80 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyIonisation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LowEnergyIonisation.cc,v 1.101 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc index 2acf594920..84f0eee8ee 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPhotoElectric.cc @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyPhotoElectric.cc,v 1.53 2004/11/18 12:08:52 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc index 6a3cb0a9f5..6fc75f9940 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedCompton.cc @@ -22,7 +22,7 @@ // // // $Id: G4LowEnergyPolarizedCompton.cc,v 1.20 2005/05/16 09:04:32 capra Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedRayleigh.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedRayleigh.cc index 9a4e3c0309..c2146f5efb 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedRayleigh.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyPolarizedRayleigh.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LowEnergyPolarizedRayleigh.cc,v 1.5 2005/06/27 15:29:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc index e1aee59d08..462f1b7c14 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc @@ -23,7 +23,7 @@ // -------------------------------------------------------------------- // // $Id: G4LowEnergyRayleigh.cc,v 1.35 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc index 486b30d523..76c308c238 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PenelopeBremsstrahlung.cc,v 1.17 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc index e705185434..6ed7cb3ea8 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PenelopeBremsstrahlungAngular.cc,v 1.6 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc index 55a7ce6b85..aded4b2253 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4PenelopeBremsstrahlungContinuous.cc,v 1.7 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PenelopeBremsstrahlungContinuous.cc,v 1.8 2005/11/30 16:34:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // @@ -45,7 +45,7 @@ #include "Randomize.hh" #include "G4ParticleDefinition.hh" #include "globals.hh" -#include +#include G4PenelopeBremsstrahlungContinuous::G4PenelopeBremsstrahlungContinuous (G4int Zed,G4double taglio,G4double e1, G4double e2, @@ -83,10 +83,9 @@ void G4PenelopeBremsstrahlungContinuous::LoadFromFile() } G4String pathString(path); G4String filename = "br-pen-cont-"; - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; ost << filename << Zmat << ".dat"; - G4String name(nameChar); + G4String name(ost.str()); G4String dirFile = pathString + "/penelope/" + name; std::ifstream file(dirFile); std::filebuf* lsdp = file.rdbuf(); diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeCompton.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeCompton.cc index 9bf277ac1e..8e420d58fb 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeCompton.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeCompton.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PenelopeCompton.cc,v 1.25 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Luciano Pandola // diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc index e3ad3938a5..b6435a8e43 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PenelopeIonisation.cc,v 1.18 2005/05/23 12:52:41 mantero Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc index 54944f5e09..19b32034e0 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc @@ -22,7 +22,7 @@ // // // $Id: G4PenelopePhotoElectric.cc,v 1.10 2005/06/27 15:29:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: L. Pandola // diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleigh.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleigh.cc index 628424cf26..ab889793ee 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleigh.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleigh.cc @@ -23,7 +23,7 @@ // -------------------------------------------------------------------- // // $Id: G4PenelopeRayleigh.cc,v 1.13 2004/12/02 14:01:35 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: L. Pandola (luciano.pandola@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc b/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc index b886227bad..7d319aed38 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4RangeTest.cc @@ -22,7 +22,7 @@ // // // $Id: G4RangeTest.cc,v 1.7 2003/06/16 17:00:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc b/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc index 5d64b33bac..59cf03ed8f 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4SemiLogInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4SemiLogInterpolation.cc,v 1.5 2004/12/02 14:01:36 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc index a7783fb851..0d9153b0b4 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShellData.cc,v 1.6 2003/06/16 17:00:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ShellData.cc,v 1.7 2005/11/30 16:34:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -35,7 +35,7 @@ #include "G4ShellData.hh" #include "G4DataVector.hh" #include -#include +#include // Constructor @@ -160,12 +160,11 @@ void G4ShellData::LoadData(const G4String& fileName) { // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; ost << fileName << ".dat"; - G4String name(nameChar); + G4String name(ost.str()); char* path = getenv("G4LEDATA"); if (!path) diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc index 94671efbb2..db757a78ea 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShellEMDataSet.cc,v 1.10 2003/06/16 17:00:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ShellEMDataSet.cc,v 1.10.2.1 2005/11/30 16:35:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -37,7 +37,7 @@ #include "G4EMDataSet.hh" #include "G4VDataSetAlgorithm.hh" #include -#include +#include G4ShellEMDataSet::G4ShellEMDataSet(G4int Z, @@ -102,13 +102,12 @@ void G4ShellEMDataSet::LoadData(const G4String& fileName) { // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; if (z != 0) ost << fileName << z << ".dat"; else ost << fileName << ".dat"; - G4String name(nameChar); + G4String name(ost.str()); char* path = getenv("G4LEDATA"); if (!path) diff --git a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc index fea3e58c88..36a2931343 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCrossSectionHandler.cc,v 1.14 2004/12/02 14:01:36 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VCrossSectionHandler.cc,v 1.14.2.1 2005/11/30 16:35:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -50,7 +50,7 @@ #include #include #include -#include +#include G4VCrossSectionHandler::G4VCrossSectionHandler() @@ -160,12 +160,11 @@ void G4VCrossSectionHandler::LoadData(const G4String& fileName) // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; ost << fileName << Z << ".dat"; - G4String name(nameChar); + G4String name(ost.str()); char* path = getenv("G4LEDATA"); if (!path) @@ -233,12 +232,11 @@ void G4VCrossSectionHandler::LoadShellData(const G4String& fileName) // Build the complete string identifying the file with the data set - char nameChar[100] = {""}; - std::ostrstream ost(nameChar, 100, std::ios::out); + std::ostringstream ost; ost << fileName << Z << ".dat"; - G4String name(nameChar); + G4String name(ost.str()); char* path = getenv("G4LEDATA"); if (!path) diff --git a/source/processes/electromagnetic/lowenergy/src/G4VLowEnergyDiscretePhotonProcess.cc b/source/processes/electromagnetic/lowenergy/src/G4VLowEnergyDiscretePhotonProcess.cc index eb1defce9e..0395ff26ab 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VLowEnergyDiscretePhotonProcess.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VLowEnergyDiscretePhotonProcess.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4VLowEnergyDiscretePhotonProcess.cc,v 1.2.2.1 2005/06/27 15:29:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc index 0adbd02325..122f05b019 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VeLowEnergyLoss.cc,v 1.24 2004/12/02 14:01:36 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc index 9875b2052d..72a3537963 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eBremsstrahlungSpectrum.cc,v 1.14 2004/12/02 14:01:36 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc index d4f6096dd4..1eeb3dbd2b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eIonisationCrossSectionHandler.cc,v 1.10 2003/06/16 17:00:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc index fb1109a0be..a83bd08a73 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4eIonisationParameters.cc,v 1.21 2004/02/17 11:17:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eIonisationParameters.cc,v 1.22 2005/11/30 16:34:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // @@ -52,7 +52,7 @@ #include "G4Material.hh" #include "G4DataVector.hh" #include -#include +#include G4eIonisationParameters:: G4eIonisationParameters(G4int minZ, G4int maxZ) @@ -186,10 +186,9 @@ void G4eIonisationParameters::LoadData() for (size_t i=0; iHighEnergyLimit(0, 0); + protonHighEnergy = std::min(protonHighEnergy,theProtonModel->HighEnergyLimit(0, 0)); theAntiProtonModel = new G4QAOLowEnergyLoss(theAntiProtonTable) ; theNuclearStoppingModel = new G4hNuclearStoppingModel(theNuclearTable) ; theIonEffChargeModel = new G4hIonEffChargeSquare("Ziegler1988") ; @@ -332,12 +334,22 @@ void G4hLowEnergyIonisation::BuildPhysicsTable( { { BuildLossTable(*theProton) ; + +// The following vector has a fixed dimension (see src/G4hLowEnergyLoss.cc for more details) +// It happended in the past that caused memory corruption errors. The problem is still pending, even if temporary solved +// G4cout << "[NOTE]: __LINE__=" << __LINE__ << ", aParticleType=" << aParticleType.GetParticleName() << ", theProton=" << theProton << ", theLossTable=" << theLossTable << ", CounterOfpProcess=" << CounterOfpProcess << G4endl; + RecorderOfpProcess[CounterOfpProcess] = theLossTable ; CounterOfpProcess++; } } else { { BuildLossTable(*theAntiProton) ; + +// The following vector has a fixed dimension (see src/G4hLowEnergyLoss.cc for more details) +// It happended in the past that caused memory corruption errors. The problem is still pending, even if temporary solved +// G4cout << "[NOTE]: __LINE__=" << __LINE__ << ", aParticleType=" << aParticleType.GetParticleName() << ", theAntiProton=" << theAntiProton << ", theLossTable=" << theLossTable << ", CounterOfpbarProcess=" << CounterOfpbarProcess << G4endl; + RecorderOfpbarProcess[CounterOfpbarProcess] = theLossTable ; CounterOfpbarProcess++; } @@ -832,7 +844,7 @@ G4double G4hLowEnergyIonisation::GetConstraints( * chargeSquare ; if(theBarkas && tscaled > highEnergy) { - fBarkas = -BarkasTerm(material,tscaled)*std::sqrt(chargeSquare)*chargeSquare; + fBarkas = -BarkasTerm(material,tscaled)*std::sqrt(chargeSquare)*chargeSquare + BlochTerm(material,tscaled,chargeSquare); } } @@ -1264,17 +1276,20 @@ G4VParticleChange* G4hLowEnergyIonisation::PostStepDoIt( // G4cout << "Fluorescence is switched :" << theFluo << G4endl; if(theFluo && Z > 5) { - - G4int shell = shellCS->SelectRandomShell(Z, KineticEnergy, - ParticleMass,DeltaKineticEnergy); + + + + // Atom total cross section for the Empiric Model if (expFlag) { - // Atom total cross section for the Empiric Model - shellCS->SetTotalCS(totalCrossSectionMap[Z]); - if (shell==1) { - aParticleChange.ProposeLocalEnergyDeposit (KineticEnergy); - aParticleChange.ProposeEnergy(0); - } + shellCS->SetTotalCS(totalCrossSectionMap[Z]); } + G4int shell = shellCS->SelectRandomShell(Z, KineticEnergy,ParticleMass,DeltaKineticEnergy); + + if (expFlag && shell==1) { + aParticleChange.ProposeLocalEnergyDeposit (KineticEnergy); + aParticleChange.ProposeEnergy(0); + } + const G4AtomicShell* atomicShell = (G4AtomicTransitionManager::Instance())->Shell(Z, shell); diff --git a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc index 9aef92118c..647e01b6bb 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4hLowEnergyLoss.cc,v 1.21 2004/12/02 14:01:36 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4hLowEnergyLoss.cc,v 1.22 2005/09/08 09:25:18 capra Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file @@ -68,19 +68,22 @@ // The NumberOfProcesses data member can be changed using the (public static) // functions Get/Set/Plus/MinusNumberOfProcesses (see G4hLowEnergyLoss.hh) + +// The following vectors have a fixed dimension this means that if they are +// filled in with more than 100 elements will corrupt the memory. G4int G4hLowEnergyLoss::NumberOfProcesses = 1 ; G4int G4hLowEnergyLoss::CounterOfProcess = 0 ; G4PhysicsTable** G4hLowEnergyLoss::RecorderOfProcess = - new G4PhysicsTable*[10] ; + new G4PhysicsTable*[100] ; G4int G4hLowEnergyLoss::CounterOfpProcess = 0 ; G4PhysicsTable** G4hLowEnergyLoss::RecorderOfpProcess = - new G4PhysicsTable*[10] ; + new G4PhysicsTable*[100] ; G4int G4hLowEnergyLoss::CounterOfpbarProcess = 0 ; G4PhysicsTable** G4hLowEnergyLoss::RecorderOfpbarProcess = - new G4PhysicsTable*[10] ; + new G4PhysicsTable*[100] ; G4PhysicsTable* G4hLowEnergyLoss::theDEDXpTable = 0 ; G4PhysicsTable* G4hLowEnergyLoss::theDEDXpbarTable = 0 ; diff --git a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc index 7f05606c67..cadbe10947 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSection.cc @@ -60,57 +60,56 @@ std::vector G4hShellCrossSection::GetCrossSection(G4int Z, G4double deltaEnergy, G4bool) const { - return Probabilities(Z,incidentEnergy,mass,deltaEnergy); + return CalculateCrossSections(Z,incidentEnergy,mass,deltaEnergy,false); } -//std::vector G4hShellCrossSection::Probabilities( -// G4int Z, -// G4double incidentEnergy, -// G4double hMass, -// G4double deltaEnergy, -// G4bool testFlag) const -//{ -// // Cross-sections for proton ionization calculated as in -// // "M. Gryzinski, Two-Particle Collisions. I. General Relations for -// // Collisions in the Laboratory system, Phys.Rev. 138 A305" -// // Other reference papers are Gryzinski's "Paper I" and "Paper II" -// // V.Ivanchenko add only implementation of the formula (53) -// // last factor neglected because it is 1 with a good accuracy -// -// const G4AtomicTransitionManager* transitionManager = -// G4AtomicTransitionManager::Instance(); -// -// size_t nShells = transitionManager->NumberOfShells(Z); -// -// // Vector that stores the calculated cross-sections for each shell: -// std::vector crossSections; -// -// // In this loop we calculate cross-section for every shell in the atom -// for (size_t k=0; kShell(Z,k)->BindingEnergy(); -// G4double xEnergy = 0.5*bindingEnergy; -// G4double y = incidentEnergy*electron_mass_c2/(xEnergy*hMass); -// G4double dele = deltaEnergy + xEnergy; -// G4double x = electron_mass_c2/dele; -// -// G4double aCrossSection = (dele/(xEnergy*(1. + 1./y)) -// + 4.*std::log(2.7 + std::sqrt(y))/3.) * x*x*x; -// -// // Fill the vector of cross sections with the value just calculated -// crossSections.push_back(aCrossSection); -// -// if (testFlag) -// { -// G4cout <<"Element: " < G4hShellCrossSection::CalculateCrossSections(G4int Z, + G4double incidentEnergy, + G4double hMass, + G4double deltaEnergy, + G4bool testFlag) const +{ + // Cross-sections for proton ionization calculated as in + // "M. Gryzinski, Two-Particle Collisions. I. General Relations for + // Collisions in the Laboratory system, Phys.Rev. 138 A305" + // Other reference papers are Gryzinski's "Paper I" and "Paper II" + // V.Ivanchenko add only implementation of the formula (53) + // last factor neglected because it is 1 with a good accuracy + + const G4AtomicTransitionManager* transitionManager = + G4AtomicTransitionManager::Instance(); + + size_t nShells = transitionManager->NumberOfShells(Z); + + // Vector that stores the calculated cross-sections for each shell: + std::vector crossSections; + + // In this loop we calculate cross-section for every shell in the atom + for (size_t k=0; kShell(Z,k)->BindingEnergy(); + G4double xEnergy = 0.5*bindingEnergy; + G4double y = incidentEnergy*electron_mass_c2/(xEnergy*hMass); + G4double dele = deltaEnergy + xEnergy; + G4double x = electron_mass_c2/dele; + + G4double aCrossSection = (dele/(xEnergy*(1. + 1./y)) + + 4.*std::log(2.7 + std::sqrt(y))/3.) * x*x*x; + + // Fill the vector of cross sections with the value just calculated + crossSections.push_back(aCrossSection); + + if (testFlag) + { + G4cout <<"Element: " < G4hShellCrossSection::Probabilities( G4double deltaEnergy ) const { - std::vector crossSection = GetCrossSection(Z, incidentEnergy, hMass, deltaEnergy,true); + std::vector crossSection = CalculateCrossSections(Z, incidentEnergy, hMass, deltaEnergy,true); G4double nShells = crossSection.size(); // Partial and total cross-section used for normalization of crossSections: diff --git a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExp.cc b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExp.cc index 2c25428898..7ea6b6e1b2 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExp.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExp.cc @@ -37,8 +37,8 @@ // Class Description: // Empiric Model for shell cross sections in proton ionisation // ------------------------------------------------------------------- -// $Id: G4hShellCrossSectionDoubleExp.cc,v 1.6 2004/12/02 14:01:37 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4hShellCrossSectionDoubleExp.cc,v 1.7 2005/06/08 13:18:28 mantero Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "globals.hh" #include @@ -182,7 +182,7 @@ std::vector G4hShellCrossSectionDoubleExp::Probabilities( hMass = 0.0; deltaEnergy = 0.0; - std::vector kProbability(0); + std::vector kProbability;//(0); kProbability.push_back(GetCrossSectionDoubleExp(Z,incidentEnergy)/atomTotalCrossSection); // ---- MGP ---- Next line corrected to kProbability[0] instead of [1], which is not initialized! kProbability.push_back(1 - kProbability[0]); diff --git a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExpData.cc b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExpData.cc index e94714b9bd..c8f3bf81b5 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExpData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionDoubleExpData.cc @@ -29,12 +29,10 @@ // 22 Apr 2004 First committed to cvs // // ------------------------------------------------------------------- -// $Id: G4hShellCrossSectionDoubleExpData.cc,v 1.2 2004/11/26 08:51:05 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4hShellCrossSectionDoubleExpData.cc,v 1.3 2005/11/30 16:34:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4hShellCrossSectionDoubleExpData.hh" -#include -#include G4hShellCrossSectionDoubleExpData::G4hShellCrossSectionDoubleExpData() { diff --git a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExp.cc b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExp.cc index 48cd6d3b93..3d808741e5 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExp.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExp.cc @@ -38,7 +38,7 @@ // Empiric Model for shell cross sections in proton ionisation // ------------------------------------------------------------------- // $Id: G4hShellCrossSectionExp.cc,v 1.4 2004/12/02 14:01:37 pia Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "globals.hh" #include diff --git a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExpData.cc b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExpData.cc index ebf313c4c0..4e319f93ed 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExpData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hShellCrossSectionExpData.cc @@ -29,12 +29,11 @@ // 22 Apr 2004 First committed to cvs // // ------------------------------------------------------------------- -// $Id: G4hShellCrossSectionExpData.cc,v 1.1 2004/04/27 09:45:49 saliceti Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4hShellCrossSectionExpData.cc,v 1.2 2005/12/06 10:19:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4hShellCrossSectionExpData.hh" #include -#include G4hShellCrossSectionExpData::G4hShellCrossSectionExpData() { diff --git a/source/processes/electromagnetic/muons/History b/source/processes/electromagnetic/muons/History index ccc15c0f88..3c99208c34 100644 --- a/source/processes/electromagnetic/muons/History +++ b/source/processes/electromagnetic/muons/History @@ -1,4 +1,4 @@ -$Id: History,v 1.81 2005/06/06 11:19:16 vnivanch Exp $ +$Id: History,v 1.87 2005/10/23 16:47:23 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,28 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +23 October 05: V.Ivant (emmuons-V07-01-05) +- G4MuPairProductionModel - add protection needed for sampling of pair energy + in the case of low cuts + +2 October 05: mma (emmuons-V07-01-04) +- G4MuIonisation : SetStepLimits (0.2, 1*mm) + integral on + +2 September 05: V.Ivant. (emmuons-V07-01-03) +- G4MuIonisation : SetStepLimits (0.2, 0.1*mm) + integral off + +2 September 05: V.Ivant. (emmuons-V07-01-02) +- This tag is 7.1 + bug fixes +- G4MuIonisation : SetStepLimits (0.2, 1*mm) + +12 August 05: mma (emmuons-V07-01-01) +- G4MuIonisation : SetStepLimits (0.2, 0.1*mm) + +03 August 05: V.Ivant (emmuons-V07-01-00) +- Fix initialisation of G4MuPairProductionModel and G4MuBremsstrahlungModel +- Fix angular distribution of gammas and energy momentum balance in G4MuBremsstrahlungModel +- Fix angular distribution of e+,e- and energy momentum balance in G4MuPairProductionModel + 06 June 05: V.Ivant (muons-V07-00-04) - Fix Valgrind complain for non-initialised variable in G4EnergyLossForExtrapolator diff --git a/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh b/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh index d297f4c8ff..f825ae318e 100644 --- a/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh +++ b/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh @@ -1,6 +1,3 @@ -#ifndef G4EnergyLossForExtrapolator_h -#define G4EnergyLossForExtrapolator_h 1 - // // ******************************************************************** // * DISCLAIMER * @@ -23,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4EnergyLossForExtrapolator.hh,v 1.1 2005/04/08 14:00:17 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EnergyLossForExtrapolator.hh,v 1.2 2005/12/13 08:44:04 gunter Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // @@ -43,6 +40,10 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +#ifndef G4EnergyLossForExtrapolator_h +#define G4EnergyLossForExtrapolator_h 1 + + #include "globals.hh" #include diff --git a/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh b/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh index 516c84e21b..0881bdb238 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MuBetheBlochModel.hh,v 1.14 2005/04/12 13:31:16 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh index 27c3496b3a..399bd7a1b2 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MuBremsstrahlung.hh,v 1.26 2005/04/11 10:40:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.hh index 305bd52040..16453f7061 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuBremsstrahlung52.hh,v 1.2 2004/11/10 08:49:09 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------- G4MuBremsstrahlung52 physics process ------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.icc b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.icc index f71528e3f1..de5a95a0ba 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.icc +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.icc @@ -22,7 +22,7 @@ // // // $Id: G4MuBremsstrahlung52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------- G4MuBremsstrahlung52 physics process ------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh index e8dbd74e2b..4bb03ed3d6 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MuBremsstrahlungModel.hh,v 1.12 2005/04/12 18:12:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuBremsstrahlungModel.hh,v 1.13 2005/08/04 08:19:04 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -68,6 +68,8 @@ public: virtual ~G4MuBremsstrahlungModel(); + void SetParticle(const G4ParticleDefinition*); + void Initialise(const G4ParticleDefinition*, const G4DataVector&); void SetLowestKineticEnergy(G4double e) {lowestKinEnergy = e;}; @@ -127,13 +129,15 @@ private: G4MuBremsstrahlungModel & operator=(const G4MuBremsstrahlungModel &right); G4MuBremsstrahlungModel(const G4MuBremsstrahlungModel&); - G4ParticleDefinition* theGamma; - G4ParticleChangeForLoss* fParticleChange; + G4ParticleDefinition* theGamma; + const G4ParticleDefinition* particle; + G4ParticleChangeForLoss* fParticleChange; G4double highKinEnergy; G4double lowKinEnergy; G4double lowestKinEnergy; G4double minThreshold; + G4double mass; // tables for sampling G4int nzdat,ntdat,NBIN; diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh index 3088ecfc58..c1e97faa2b 100644 --- a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MuIonisation.hh,v 1.27 2005/04/11 10:40:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation52.hh b/source/processes/electromagnetic/muons/include/G4MuIonisation52.hh index dc97396b05..8db2fadfa5 100644 --- a/source/processes/electromagnetic/muons/include/G4MuIonisation52.hh +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation52.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuIonisation52.hh,v 1.2 2004/11/10 08:49:09 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // --------------- G4MuIonisation52 physics process ------------------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation52.icc b/source/processes/electromagnetic/muons/include/G4MuIonisation52.icc index 34f2b199dd..7da265c3d1 100644 --- a/source/processes/electromagnetic/muons/include/G4MuIonisation52.icc +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation52.icc @@ -22,7 +22,7 @@ // // // $Id: G4MuIonisation52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT 4 class inlined methods file diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh index 0f1afc17ab..5046840c79 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MuPairProduction.hh,v 1.26 2005/04/11 10:40:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction52.hh b/source/processes/electromagnetic/muons/include/G4MuPairProduction52.hh index 42622bcbe1..dbaf5a7fc0 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProduction52.hh +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction52.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuPairProduction52.hh,v 1.2 2004/11/10 08:49:09 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------- G4MuPairProduction52 physics process ------------------ // by Laszlo Urban, May 1998 diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction52.icc b/source/processes/electromagnetic/muons/include/G4MuPairProduction52.icc index 680d3954f7..371f3e2f48 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProduction52.icc +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction52.icc @@ -22,7 +22,7 @@ // // // $Id: G4MuPairProduction52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------- G4MuPairProduction52 physics process ------------------ // by Laszlo Urban, May 1998 diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh b/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh index a2c320ff68..92619c3330 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh +++ b/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MuPairProductionModel.hh,v 1.17 2005/04/12 18:12:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuPairProductionModel.hh,v 1.18 2005/08/04 08:19:04 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -70,6 +70,8 @@ public: virtual ~G4MuPairProductionModel(); + void SetParticle(const G4ParticleDefinition*); + void Initialise(const G4ParticleDefinition*, const G4DataVector&); void SetLowestKineticEnergy(G4double e) {lowestKinEnergy = e;}; diff --git a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh index 0f0ded6f1a..b427303d41 100644 --- a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh +++ b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMuEnergyLoss.hh,v 1.10 2004/12/02 08:20:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // ------------------------------------------------------------------- // GEANT 4 class header file // diff --git a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc index 9cc760a8eb..bf03ecc9af 100644 --- a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc +++ b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4VMuEnergyLoss.icc,v 1.4 2003/01/17 18:54:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // --------------------------------------------------------------- // GEANT 4 class inlined methods file // diff --git a/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc b/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc index f243299ffd..59655738bc 100644 --- a/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc +++ b/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EnergyLossForExtrapolator.cc,v 1.5 2005/06/27 15:29:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc b/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc index 606d79c3cb..515d09bd99 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MuBetheBlochModel.cc,v 1.18 2005/04/12 13:31:16 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuBetheBlochModel.cc,v 1.20 2005/08/18 14:38:55 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -78,6 +78,9 @@ G4MuBetheBlochModel::G4MuBetheBlochModel(const G4ParticleDefinition* p, taulim(8.4146e-3), alphaprime(fine_structure_const/twopi) { + theElectron = G4Electron::Electron(); + corr = G4LossTableManager::Instance()->EmCorrections(); + if(p) SetParticle(p); } @@ -90,10 +93,12 @@ G4MuBetheBlochModel::~G4MuBetheBlochModel() void G4MuBetheBlochModel::SetParticle(const G4ParticleDefinition* p) { - particle = p; - mass = particle->GetPDGMass(); - massSquare = mass*mass; - ratio = electron_mass_c2/mass; + if(!particle) { + particle = p; + mass = particle->GetPDGMass(); + massSquare = mass*mass; + ratio = electron_mass_c2/mass; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -109,16 +114,12 @@ G4double G4MuBetheBlochModel::MinEnergyCut(const G4ParticleDefinition*, void G4MuBetheBlochModel::Initialise(const G4ParticleDefinition* p, const G4DataVector&) { - if(!particle) SetParticle(p); - - theElectron = G4Electron::Electron(); + if(p) SetParticle(p); if(pParticleChange) fParticleChange = reinterpret_cast(pParticleChange); else fParticleChange = new G4ParticleChangeForLoss(); - - corr = G4LossTableManager::Instance()->EmCorrections(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -244,12 +245,12 @@ G4double G4MuBetheBlochModel::CrossSectionPerVolume(const G4Material* material, vector* G4MuBetheBlochModel::SampleSecondaries( const G4MaterialCutsCouple*, const G4DynamicParticle* dp, - G4double minEnergy, + G4double minKinEnergy, G4double maxEnergy) { G4double tmax = MaxSecondaryKinEnergy(dp); G4double maxKinEnergy = min(maxEnergy,tmax); - G4double minKinEnergy = min(minEnergy,maxKinEnergy); + if(minKinEnergy >= maxKinEnergy) return 0; G4double kineticEnergy = dp->GetKineticEnergy(); G4double totEnergy = kineticEnergy + mass; diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc index 712e80f71f..1164702b5d 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MuBremsstrahlung.cc,v 1.36 2005/04/08 15:18:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung52.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung52.cc index aac43b8b6f..777d58c333 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung52.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung52.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuBremsstrahlung52.cc,v 1.4 2004/12/02 08:20:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------- G4MuBremsstrahlung52 physics process --------------------------- diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc index 5d91919e36..1246833df2 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MuBremsstrahlungModel.cc,v 1.16 2005/05/18 16:06:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuBremsstrahlungModel.cc,v 1.18 2005/08/18 14:38:55 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -43,6 +43,7 @@ // 13-02-03 Add name (V.Ivanchenko) // 10-02-04 Add lowestKinEnergy (V.Ivanchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 03-08-05 Angular correlations according to PRM (V.Ivantchenko) // // @@ -77,9 +78,10 @@ G4double G4MuBremsstrahlungModel::tdat[]={1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e using namespace std; -G4MuBremsstrahlungModel::G4MuBremsstrahlungModel(const G4ParticleDefinition*, +G4MuBremsstrahlungModel::G4MuBremsstrahlungModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam), + particle(0), lowestKinEnergy(1.0*GeV), minThreshold(1.0*keV), nzdat(5), @@ -88,7 +90,9 @@ G4MuBremsstrahlungModel::G4MuBremsstrahlungModel(const G4ParticleDefinition*, cutFixed(0.98*keV), samplingTablesAreFilled(false) { - highKinEnergy = HighEnergyLimit(); + theGamma = G4Gamma::Gamma(); + + if(p) SetParticle(p); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -113,27 +117,44 @@ G4double G4MuBremsstrahlungModel::MinEnergyCut(const G4ParticleDefinition*, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4MuBremsstrahlungModel::Initialise(const G4ParticleDefinition*, +void G4MuBremsstrahlungModel::SetParticle(const G4ParticleDefinition* p) +{ + if(!particle) { + particle = p; + mass = particle->GetPDGMass(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuBremsstrahlungModel::Initialise(const G4ParticleDefinition* p, const G4DataVector& cuts) { - theGamma = G4Gamma::Gamma(); + if(p) SetParticle(p); + + highKinEnergy = HighEnergyLimit(); - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); G4double fixedEnergy = 0.5*highKinEnergy; // G4double fixedEnergy = 500000.*TeV; - for (size_t ii=0; iiGetMaterialCutsCouple(i); - const G4Material* material = couple->GetMaterial(); - G4DataVector* dv = ComputePartialSumSigma(material, fixedEnergy,cuts[i]); - partialSumSigma.push_back(dv); + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + if(theCoupleTable) { + G4int numOfCouples = theCoupleTable->GetTableSize(); + + for (size_t ii=0; ii0) { + for (G4int i=0; iGetMaterialCutsCouple(i); + const G4Material* material = couple->GetMaterial(); + G4DataVector* dv = ComputePartialSumSigma(material, fixedEnergy,cuts[i]); + partialSumSigma.push_back(dv); + } + } } if(!samplingTablesAreFilled) MakeSamplingTables(); if(pParticleChange) @@ -178,7 +199,7 @@ G4double G4MuBremsstrahlungModel::ComputeDEDXPerVolume( G4double G4MuBremsstrahlungModel::ComputMuBremLoss(G4double Z, G4double A, G4double tkin, G4double cut) { - G4double totalEnergy = (G4MuonPlus::MuonPlus())->GetPDGMass() + tkin; + G4double totalEnergy = mass + tkin; G4double ak1 = 0.05; G4int k2=5; G4double xgi[]={0.03377,0.16940,0.38069,0.61931,0.83060,0.96623}; @@ -218,7 +239,7 @@ G4double G4MuBremsstrahlungModel::ComputeMicroscopicCrossSection( G4double A, G4double cut) { - G4double totalEnergy = (G4MuonPlus::MuonPlus())->GetPDGMass() + tkin; + G4double totalEnergy = tkin + mass; G4double ak1 = 2.3; G4int k2 = 4; G4double xgi[]={0.03377,0.16940,0.38069,0.61931,0.83060,0.96623}; @@ -261,11 +282,9 @@ G4double G4MuBremsstrahlungModel::ComputeDMicroscopicCrossSection( G4double gammaEnergy) // differential cross section { - G4double particleMass = (G4MuonPlus::MuonPlus())->GetPDGMass(); - static const G4double sqrte=sqrt(exp(1.)) ; static const G4double bh=202.4,bh1=446.,btf=183.,btf1=1429. ; - static const G4double rmass=particleMass/electron_mass_c2 ; + static const G4double rmass=mass/electron_mass_c2 ; static const G4double cc=classic_electr_radius/rmass ; static const G4double coeff= 16.*fine_structure_const*cc*cc/3. ; @@ -273,9 +292,9 @@ G4double G4MuBremsstrahlungModel::ComputeDMicroscopicCrossSection( if( gammaEnergy > tkin) return dxsection ; - G4double E = tkin + particleMass ; + G4double E = tkin + mass ; G4double v = gammaEnergy/E ; - G4double delta = 0.5*particleMass*particleMass*v/(E-gammaEnergy) ; + G4double delta = 0.5*mass*mass*v/(E-gammaEnergy) ; G4double rab0=delta*sqrte ; G4double z13 = exp(-log(Z)/3.) ; @@ -299,15 +318,15 @@ G4double G4MuBremsstrahlungModel::ComputeDMicroscopicCrossSection( // nucleus contribution logarithm G4double rab1=b*z13; G4double fn=log(rab1/(dnstar*(electron_mass_c2+rab0*rab1))* - (particleMass+delta*(dnstar*sqrte-2.))) ; + (mass+delta*(dnstar*sqrte-2.))) ; if(fn <0.) fn = 0. ; // electron contribution logarithm - G4double epmax1=E/(1.+0.5*particleMass*rmass/E) ; + G4double epmax1=E/(1.+0.5*mass*rmass/E) ; G4double fe=0.; if(gammaEnergyGetPDGMass(); + TotalEnergy,Maxep; for (G4int iz=0; iz* G4MuBremsstrahlungModel::SampleSecondaries( const G4MaterialCutsCouple* couple, const G4DynamicParticle* dp, - G4double minEnergy, + G4double tmin, G4double maxEnergy) { + G4double kineticEnergy = dp->GetKineticEnergy(); // check against insufficient energy G4double tmax = min(kineticEnergy, maxEnergy); - G4double tmin = min(tmax, minEnergy); + if(tmin >= tmax) return 0; - static G4double ysmall = -100. ; - static G4double ytablelow = -5. ; + static const G4double ysmall = -100. ; + static const G4double ytablelow = -5. ; - G4ParticleMomentum ParticleDirection = dp->GetMomentumDirection(); + G4ParticleMomentum partDirection = dp->GetMomentumDirection(); // select randomly one element constituing the material const G4Element* anElement = SelectRandomAtom(couple); - G4double totalEnergy = kineticEnergy + dp->GetMass(); + G4double totalEnergy = kineticEnergy + mass; + G4double totalMomentum = sqrt(kineticEnergy*(kineticEnergy + 2.0*mass)); G4double dy = 5./G4float(NBIN); @@ -533,29 +553,37 @@ vector* G4MuBremsstrahlungModel::SampleSecondaries( x = exp(y) ; v = cutFixed*exp(x*log(tmax/cutFixed)) ; - + } while ( v <= 0.); // create G4DynamicParticle object for the Gamma - G4double GammaEnergy = v; + G4double gEnergy = v; - // angles of the emitted gamma. ( Z - axis along the parent particle) - // Teta = electron_mass_c2/TotalEnergy for the moment ..... + // sample angle + G4double gam = totalEnergy/mass; + G4double rmax = gam*min(1.0, totalEnergy/gEnergy - 1.0); + rmax *= rmax; + x = G4UniformRand()*rmax/(1.0 + rmax); - G4double Teta = electron_mass_c2/totalEnergy ; - G4double Phi = twopi * G4UniformRand() ; - G4double dirx = sin(Teta)*cos(Phi) , diry = sin(Teta)*sin(Phi) , - dirz = cos(Teta) ; + G4double theta = sqrt(x/(1.0 - x))/gam; + G4double sint = sin(theta); + G4double phi = twopi * G4UniformRand() ; + G4double dirx = sint*cos(phi), diry = sint*sin(phi), dirz = cos(theta) ; - G4ThreeVector GammaDirection ( dirx, diry, dirz); - GammaDirection.rotateUz(ParticleDirection); + G4ThreeVector gDirection(dirx, diry, dirz); + gDirection.rotateUz(partDirection); + + partDirection *= totalMomentum; + partDirection -= gEnergy*gDirection; + partDirection = partDirection.unit(); // primary change - kineticEnergy -= GammaEnergy; + kineticEnergy -= gEnergy; fParticleChange->SetProposedKineticEnergy(kineticEnergy); + fParticleChange->SetProposedMomentumDirection(partDirection); // save secondary - G4DynamicParticle* aGamma = new G4DynamicParticle(theGamma,GammaDirection,GammaEnergy); + G4DynamicParticle* aGamma = new G4DynamicParticle(theGamma,gDirection,gEnergy); vector* vdp = new vector; vdp->push_back(aGamma); diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc index 05da6557f3..45efca58c6 100644 --- a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc +++ b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MuIonisation.cc,v 1.47 2005/04/08 15:18:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuIonisation.cc,v 1.51 2005/10/02 16:39:50 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -31,7 +31,7 @@ // File name: G4MuIonisation // // Author: Laszlo Urban -// +// // Creation date: 30.09.1997 // // Modifications: @@ -64,6 +64,9 @@ // 17-08-04 Utilise mu+ tables for mu- (V.Ivanchenko) // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 12-08-05 SetStepLimits(0.2, 0.1*mm) (mma) +// 02-09-05 SetStepLimits(0.2, 1*mm) (V.Ivantchenko) +// 12-08-05 SetStepLimits(0.2, 0.1*mm) + integral off (V.Ivantchenko) // // ------------------------------------------------------------------- // @@ -130,7 +133,8 @@ void G4MuIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition* par em2->SetHighEnergyLimit(100.0*TeV); AddEmModel(3, em2, flucModel); - SetStepLimits(0.2, 1.0*mm); + SetStepLimits(0.2, 1*mm); + SetIntegral(true); ratio = electron_mass_c2/mass; isInitialised = true; diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisation52.cc b/source/processes/electromagnetic/muons/src/G4MuIonisation52.cc index bce9122505..02eaf4bb05 100644 --- a/source/processes/electromagnetic/muons/src/G4MuIonisation52.cc +++ b/source/processes/electromagnetic/muons/src/G4MuIonisation52.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuIonisation52.cc,v 1.4 2004/12/02 08:20:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // --------------- G4MuIonisation52 physics process ------------------------------ // by Laszlo Urban, September 1997 diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc index 82ea549fa9..3c2822eb93 100644 --- a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc +++ b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MuPairProduction.cc,v 1.46 2005/04/08 15:18:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProduction52.cc b/source/processes/electromagnetic/muons/src/G4MuPairProduction52.cc index 8cd83fe1e9..51f647d064 100644 --- a/source/processes/electromagnetic/muons/src/G4MuPairProduction52.cc +++ b/source/processes/electromagnetic/muons/src/G4MuPairProduction52.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuPairProduction52.cc,v 1.4 2004/12/02 08:20:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------- G4MuPairProduction52 physics process --------------------------- // by Laszlo Urban, May 1998 diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc index 32e4a1a04a..16f357e8bb 100644 --- a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc +++ b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MuPairProductionModel.cc,v 1.25 2005/04/12 18:12:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MuPairProductionModel.cc,v 1.28 2005/10/23 16:47:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -50,6 +50,8 @@ // material (V.Ivanchenko) // 01-11-04 Fix bug in expression inside ComputeDMicroscopicCrossSection (R.Kokoulin) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 03-08-05 Add SetParticle method (V.Ivantchenko) +// 23-10-05 Add protection in sampling of e+e- pair energy needed for low cuts (V.Ivantchenko) // // Class Description: @@ -86,7 +88,7 @@ G4double G4MuPairProductionModel::wgi[]={ 0.0506,0.1112,0.1569,0.1813,0.1813,0.1 using namespace std; -G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition*, +G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam), minPairEnergy(4.*electron_mass_c2), @@ -94,9 +96,8 @@ G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition*, factorForCross(4.*fine_structure_const*fine_structure_const *classic_electr_radius*classic_electr_radius/(3.*pi)), sqrte(sqrt(exp(1.))), - particleMass(G4MuonPlus::MuonPlus()->GetPDGMass()), currentZ(0), - particle(G4MuonPlus::MuonPlus()), + particle(0), nzdat(5), ntdat(8), nbiny(1000), @@ -107,6 +108,11 @@ G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition*, samplingTablesAreFilled(false) { SetLowEnergyLimit(minPairEnergy); + + theElectron = G4Electron::Electron(); + thePositron = G4Positron::Positron(); + + if(p) SetParticle(p); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -122,16 +128,24 @@ G4double G4MuPairProductionModel::MinEnergyCut(const G4ParticleDefinition*, return minPairEnergy; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuPairProductionModel::SetParticle(const G4ParticleDefinition* p) +{ + if(!particle) { + particle = p; + particleMass = particle->GetPDGMass(); + } +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4MuPairProductionModel::Initialise(const G4ParticleDefinition*, +void G4MuPairProductionModel::Initialise(const G4ParticleDefinition* p, const G4DataVector&) { + if(p) SetParticle(p); if (!samplingTablesAreFilled) MakeSamplingTables(); - theElectron = G4Electron::Electron(); - thePositron = G4Positron::Positron(); - if(pParticleChange) fParticleChange = reinterpret_cast(pParticleChange); else @@ -435,7 +449,7 @@ void G4MuPairProductionModel::MakeSamplingTables() vector* G4MuPairProductionModel::SampleSecondaries( const G4MaterialCutsCouple* couple, const G4DynamicParticle* aDynamicParticle, - G4double cut, + G4double tmin, G4double tmax) { G4double kineticEnergy = aDynamicParticle->GetKineticEnergy(); @@ -448,23 +462,28 @@ vector* G4MuPairProductionModel::SampleSecondaries( G4double dt = log(kineticEnergy/tdat[it-1])/log(tdat[it]/tdat[it-1]); // select randomly one element constituing the material - G4int iymin = 0; - G4int iymax = nbiny-1; const G4Element* anElement = SelectRandomAtom(kineticEnergy, dt, it, couple); SetCurrentElement(anElement->GetZ()); G4double maxPairEnergy = MaxSecondaryEnergy(particle,kineticEnergy); - G4double maxEnergy = min(tmax, maxPairEnergy); - G4double minEnergy = min(maxEnergy, cut); - + G4double maxEnergy = std::min(tmax, maxPairEnergy); + G4double minEnergy = std::max(tmin, minPairEnergy); + if(minEnergy >= maxEnergy) return 0; + //G4cout << "emin= " << minEnergy << " emax= " << maxEnergy + // << " minPair= " << minPairEnergy << " maxpair= " << maxPairEnergy + // << " ymin= " << ymin << " dy= " << dy << G4endl; + G4int iymin = 0; + G4int iymax = nbiny-1; if( minEnergy > minPairEnergy) { G4double xc = log(minEnergy/minPairEnergy)/log(maxPairEnergy/minPairEnergy); iymin = (G4int)((log(xc) - ymin)/dy); if(iymin >= nbiny) iymin = nbiny-1; + else if(iymin < 0) iymin = 0; xc = log(maxEnergy/minPairEnergy)/log(maxPairEnergy/minPairEnergy); iymax = (G4int)((log(xc) - ymin)/dy) + 1; if(iymax >= nbiny) iymax = nbiny-1; + else if(iymax < 0) iymax = 0; } // sample e-e+ energy, pair energy first @@ -488,6 +507,7 @@ vector* G4MuPairProductionModel::SampleSecondaries( p2 = InterpolatedIntegralCrossSection(dt, dz, iz, it, iy, currentZ); if(p <= p2) break; } + // G4cout << "iy= " << iy << " iymin= " << iymin << " iymax= " << iymax << " Z= " << currentZ << G4endl; G4double y = ya[iy-1] + dy*(p - p1)/(p2 - p1); G4double PairEnergy = minPairEnergy*exp(exp(y)*log(maxPairEnergy/minPairEnergy)); @@ -495,7 +515,7 @@ vector* G4MuPairProductionModel::SampleSecondaries( if(PairEnergy > maxEnergy) PairEnergy = maxEnergy; // sample r=(E+-E-)/PairEnergy ( uniformly .....) - G4double rmax = + G4double rmax = (1.-6.*particleMass*particleMass/(totalEnergy*(totalEnergy-PairEnergy))) *sqrt(1.-minPairEnergy/PairEnergy); G4double r = rmax * (-1.+2.*G4UniformRand()) ; @@ -506,36 +526,44 @@ vector* G4MuPairProductionModel::SampleSecondaries( // angles of the emitted particles ( Z - axis along the parent particle) // (mean theta for the moment) - G4double Teta = electron_mass_c2/totalEnergy ; - G4double Phi = twopi * G4UniformRand() ; - G4double dirx = sin(Teta)*cos(Phi); - G4double diry = sin(Teta)*sin(Phi); - G4double dirz = cos(Teta) ; + // + // scattered electron (positron) angles. ( Z - axis along the parent photon) + // + // universal distribution suggested by L. Urban + // (Geant3 manual (1993) Phys211), + // derived from Tsai distribution (Rev Mod Phys 49,421(1977)) + // G4cout << "Ee= " << ElectronEnergy << " Ep= " << PositronEnergy << G4endl; + G4double u; + const G4double a1 = 0.625 , a2 = 3.*a1 , d = 27. ; - //G4double finalPx,finalPy,finalPz ; - G4double ElectKineEnergy = ElectronEnergy - electron_mass_c2 ; + if (9./(9.+d) >G4UniformRand()) u= - log(G4UniformRand()*G4UniformRand())/a1; + else u= - log(G4UniformRand()*G4UniformRand())/a2; - G4ThreeVector ElectDirection ( dirx, diry, dirz ); + G4double TetEl = u*electron_mass_c2/ElectronEnergy; + G4double TetPo = u*electron_mass_c2/PositronEnergy; + G4double Phi = twopi * G4UniformRand(); + G4double dxEl= sin(TetEl)*cos(Phi),dyEl= sin(TetEl)*sin(Phi),dzEl=cos(TetEl); + G4double dxPo=-sin(TetPo)*cos(Phi),dyPo=-sin(TetPo)*sin(Phi),dzPo=cos(TetPo); + + G4ThreeVector ElectDirection (dxEl, dyEl, dzEl); ElectDirection.rotateUz(ParticleDirection); // create G4DynamicParticle object for the particle1 G4DynamicParticle* aParticle1= new G4DynamicParticle(theElectron, ElectDirection, - ElectKineEnergy); + ElectronEnergy - electron_mass_c2); - G4double PositKineEnergy = PositronEnergy - electron_mass_c2 ; - - G4ThreeVector PositDirection ( -dirx, -diry, dirz ); + G4ThreeVector PositDirection (dxPo, dyPo, dzPo); PositDirection.rotateUz(ParticleDirection); // create G4DynamicParticle object for the particle2 G4DynamicParticle* aParticle2= new G4DynamicParticle(thePositron, PositDirection, - PositKineEnergy); + PositronEnergy - electron_mass_c2); // primary change - kineticEnergy -= (ElectKineEnergy + PositKineEnergy + 2.0*electron_mass_c2); + kineticEnergy -= (ElectronEnergy + PositronEnergy); fParticleChange->SetProposedKineticEnergy(kineticEnergy); vector* vdp = new vector; diff --git a/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc b/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc index c04fe098c2..f09d043c50 100644 --- a/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc +++ b/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMuEnergyLoss.cc,v 1.31 2004/12/02 08:20:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // -------------------------------------------------------------- // GEANT 4 class implementation file // diff --git a/source/processes/electromagnetic/standard/History b/source/processes/electromagnetic/standard/History index 62b6002bcc..b95b589b18 100644 --- a/source/processes/electromagnetic/standard/History +++ b/source/processes/electromagnetic/standard/History @@ -1,4 +1,4 @@ -$Id: History,v 1.150 2005/05/30 08:46:58 vnivanch Exp $ +$Id: History,v 1.196 2005/12/11 12:21:11 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,167 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + 12 December 05: L.Urban (emstand-V07-01-30) +- G4MultipleScattering: data member rangecut removed, step limit + does not depend on cut any more + + 8 December 05: mma (emstand-V07-01-29) +- G4MultipleScattering: world is now: navigator->GetWorldVolume() + + 7 December 05: mma (emstand-V07-01-28) +- G4MultipleScattering: tlimitmin = facrange*rangecut(e-) for every particle +- rangecut computed using index instead of particle name +- volume name World removed + + 5 December 05: mma (emstand-V07-01-27) +- particleChange.SetProposedKineticEnergy(0.) for killed particle in + G4PEEffectModel, G4BetheHeilterModel, G4eplusAnnihilation. + + + 1 December 05: V.Ivant (emstand-V07-01-26) +- G4MultipleScattering - add control on verbosity inside SetStepLimitation + and extend PrintInfo output + +30 November 05: G.Cosmo (emstand-V07-01-25) +- Trivial fixes to G4PAIModel and G4PAIPhotonModel for support of + CLHEP 2.0.X series. + +29 November 05: V.Ivant (emstand-V07-01-24) +- Do not use G4Alpha inside G4BraggIonModel to avoid clash with + new particle design + +16 November 05: mma (emstand-V07-01-23) +- replace RandBit() by G4UniformRand() in G4GammaConversion52 and + G4BetheHeitlerModel + +16 November 05: V. Ivanchenko (emstand-V07-01-22) +- G4eBremsstrahlungModel.cc: add electron deviation + +13 November 05: L.urban (emstand-V07-01-21) +- G4MultipleScattering: some code cleaning, slightly better timing + for sampling calorimeters (by 1 - 6 %, depending on cut and + geometry) +- additionnal printing in G4PAIModel + +05 November 05: L.Urban +- G4MultipleScattering: minimum stepsize depends on cut in range + tlimitmin = facrange*rangecut + +27 October 05: mma (emstand-V07-01-20) +- G4MultipleScattering: stepLimitAlgorithm renamed to steppingAlgorithm; + Function MscStepLimitation (G4bool algorithm, G4double facrange) + +25 October 05: L.Urban +- G4MultipleScattering: data member prec renamed to stepLimitAlgorithm + SetstepLimitAlgorithm(G4bool) triggers 'default' facrange + values (true 0.02, false 0.2), but facrange can be set separately too. + +23 October 05: L.Urban +- G4MultipleScattering: 'new' msc stepping + 7.1 like stepping + together, one can choose between them using data members + prec and facrange + +23 October 05: V.Ivant (emstand-V07-01-05b) +- a tag included fixes in G4BraggModel.cc and G4BraggIonModel.cc + on top of emstand-V07-01-05a; assumed for the patch-01 + +17 October 05: V.Ivant (emstand-V07-01-19) +- fix in G4BraggModel.cc in chemical formula correction + +17 October 05: L.Urban (emstand-V07-01-18) +- G4UniversalFluctuation.cc: correction for very small loss + to avoid 0 energy loss +- fix in G4BraggIonModel.cc in chemical formula correction + +13 October 05: mma (emstand-V07-01-17) +- G4MultipleScattering.cc: remove SetFacrange(0.02) from InitialiseProcess + +12 October 05: L.Urban (emstand-V07-01-16) +- G4MultipleScattering.cc: change in TruePathLengthLimit conditions, + slightly better timing and much weaker cut dependence + +10 October 05: V.Ivant (emstand-07-01-15) +- Fix non-initilised variable in G4MultipleScattering + +7 October 05: L.Urban (emstand-V07-01-14) +- G4MultipleScattering.cc: bug fixed in TruePathLengthLimit. + Must cowork with emutils-V07-01-05 + +6 October 05: L.Urban (emstand-V07-01-13) +- G4MultipleScattering: change in conditions limiting + the step --> better timing with the same physics + +4 October 05: L.Urban (emstand-V07-01-12) +- G4MultipleScattering: upper limit for facrange 0.2, + facgeom =2 always, corr. in set function of facgeom + +4 October 05: V.Ivant (emstand-V07-01-11) +- Move G4MultipleScattering80 and G4MscModel80 into + G4MultipleScattering and G4MscModel + +3 October 05: L.Urban (emstand-V07-01-10) +- G4MultipleScattering80 : weaker step limitation above + Tkinlimit = 2 MeV for e+/e- (limit scaled with mass + for other particles).Soft limit: facrange increases + linearly with energy above Tkinlimit. +- G4UniversalFluctuation : cut dependence of the en.loss + distribution has been reduced + +2 October 05: mma (emstand-V07-01-09) +- G4eIonisation, G4hIonisation : SetStepLimits (0.2, 1*mm) + integral on + +2 October 05: L.Urban +- conditions for step limit now are considered 'final' in + G4MultipleScattering80.cc + code cleaning +- nuclear size correction has been removed from G4MscModel80, + the correction is already included in the (theoretical) + tabulated cross section values for Tkin > 10 MeV + +16 September 05: L.Urban +- reordering of the conditions in TruePathLengthLimit of + G4MultipleScattering80.cc (It gives the same result than + preceding version, but it is faster) + +12 September 05: L.Urban +- new version of G4MultipleScattering80, now the true pathlength + limit is determined by the physics (facrange) + geometry + +2 September 05: V.Ivant. (emstand-V07-01-08) +- G4hIonisation : SetStepLimits (0.2, 0.1*mm) + integral off + +2 September 05: V.Ivant. (emstand-V07-01-07) +- G4eIonisation : integral off + +2 September 05: V.Ivant. (emstand-V07-01-06) +- G4eIonisation : SetStepLimits (0.2, 0.1*mm) +- add G4MultipleScattering80 and G4MscModel80 + +2 September 05: V.Ivant. (emstand-V07-01-05) +- This tag is 7.1 + bug fixes +- G4eIonisation : SetStepLimits (1, 1*mm) +- G4hIonisation : SetStepLimits (0.2, 1*mm) + +12 August 05: mma (emstand-V07-01-04) +- G4eIonisation and G4hIonisation : SetStepLimits (0.2, 0.1*mm) + +11 August 05: Laszlo + mma (emstand-V07-01-03) +- add G4MultipleScattering80 and G4MscModel80 + +03 August 05: V.Ivant (emstand-V07-01-02) +- Fix intialisation G4eBremsstrahlungModel + +25 July 05: V.Ivant (emstand-V07-01-01) +- Fix in G4MollerBhabhaModel: add protection in calculation of recoil direction + for the case of complete energy transfer from e+ to e- + +30 June 05: V.Ivant (emstand-V07-01-00) +24 May 05: V.Ivant (stand-V07-00-12) +- Change G4BaggIonModel and G4BaggModel in order to have parameterization + of chemical effect be independent on method of material definition (by + number of atoms or by mass fractions); +- Increase number of bins for internal table of G4BetheHeitlerModel +- Add protection for (tmax < meanPot and pot0) in G4UniversalFluctuations + 30 May 05: V.Ivant (stand-V07-00-11) - Fix compilation warning at SUN in G4BaggIonModel; diff --git a/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh b/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh index 1bdad0acae..597d530019 100644 --- a/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BetheBlochModel.hh,v 1.5 2005/05/12 11:06:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh b/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh index 460c45bb30..4be5426be8 100644 --- a/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BetheHeitlerModel.hh,v 1.3 2005/05/12 11:06:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh b/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh index fdb3d2e180..259a488177 100644 --- a/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh +++ b/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BohrFluctuations.hh,v 1.1 2004/12/01 17:36:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh b/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh index e5e1474490..18cdd34de7 100644 --- a/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BraggIonModel.hh,v 1.4 2005/05/12 11:06:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4BraggModel.hh b/source/processes/electromagnetic/standard/include/G4BraggModel.hh index d22ac27740..7ca5175b68 100644 --- a/source/processes/electromagnetic/standard/include/G4BraggModel.hh +++ b/source/processes/electromagnetic/standard/include/G4BraggModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BraggModel.hh,v 1.6 2005/05/12 11:06:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh index bba8e67d98..fc42365da1 100644 --- a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh @@ -22,7 +22,7 @@ // // // $Id: G4ComptonScattering.hh,v 1.15 2005/05/12 11:06:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //------------------ G4ComptonScattering physics process ----------------------- // by Michel Maire, April 1996 diff --git a/source/processes/electromagnetic/standard/include/G4ComptonScattering52.hh b/source/processes/electromagnetic/standard/include/G4ComptonScattering52.hh index c9bf5a2204..c96b998ab5 100644 --- a/source/processes/electromagnetic/standard/include/G4ComptonScattering52.hh +++ b/source/processes/electromagnetic/standard/include/G4ComptonScattering52.hh @@ -22,7 +22,7 @@ // // // $Id: G4ComptonScattering52.hh,v 1.1 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //------------------ G4ComptonScattering52 physics process ----------------------- // by Michel Maire, April 1996 diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversion.hh b/source/processes/electromagnetic/standard/include/G4GammaConversion.hh index 21981ced68..5dcedf32a9 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversion.hh +++ b/source/processes/electromagnetic/standard/include/G4GammaConversion.hh @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversion.hh,v 1.17 2005/05/12 11:06:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //------------------ G4GammaConversion physics process------------------------ diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversion52.hh b/source/processes/electromagnetic/standard/include/G4GammaConversion52.hh index e75ab1b38b..3d0c15e9f0 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversion52.hh +++ b/source/processes/electromagnetic/standard/include/G4GammaConversion52.hh @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversion52.hh,v 1.1 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //------------------ G4GammaConversion52 physics process ------------------------- // by Michel Maire, 24 May 1996 diff --git a/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh b/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh index 9cdbc416c8..a8abf7f2a4 100644 --- a/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh +++ b/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh @@ -22,7 +22,7 @@ // // // $Id: G4InitXscPAI.hh,v 1.7 2004/11/10 08:53:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4InitXscPAI.hh -- header file diff --git a/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh b/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh index 234c85b06a..c3953d262e 100644 --- a/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh +++ b/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4IonFluctuations.hh,v 1.1 2004/12/01 17:36:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh b/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh index 62de551cd2..a744cd5c1c 100644 --- a/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh +++ b/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4KleinNishinaCompton.hh,v 1.6 2005/05/12 11:06:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh b/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh index 9df378841e..162af04393 100644 --- a/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh +++ b/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MollerBhabhaModel.hh,v 1.13 2005/05/12 11:06:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4MscModel.hh b/source/processes/electromagnetic/standard/include/G4MscModel.hh index 8cbfa9b36b..481ca3aba6 100644 --- a/source/processes/electromagnetic/standard/include/G4MscModel.hh +++ b/source/processes/electromagnetic/standard/include/G4MscModel.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MscModel.hh,v 1.6 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MscModel.hh,v 1.7 2005/10/04 08:42:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -49,7 +49,9 @@ // 17-08-04 name of data member facxsi changed to factail (L.Urban) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) // 15-04-05 optimize internal interface - add SampleSecondaries method (V.Ivanchenko) - +// 11-08-05 computation of lateral correlation added (L.Urban) +// 02-10-05 nuclear size correction computation removed, the correction +// included in the (theoretical) tabulated values (L.Urban) // // Class Description: // @@ -62,30 +64,42 @@ #ifndef G4MscModel_h #define G4MscModel_h 1 +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + #include "G4VEmModel.hh" class G4ParticleChangeForMSC; class G4Navigator; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + class G4MscModel : public G4VEmModel { public: - G4MscModel(G4double&, G4double&, G4double&, G4double&, G4bool&, - const G4String& nam = "MscUni"); + G4MscModel(G4double dtrl,G4double factail, G4bool samplez, + const G4String& nam = "MscUni"); - virtual ~G4MscModel(); + ~G4MscModel(); - virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + void Initialise(const G4ParticleDefinition*, const G4DataVector&); - virtual G4double CrossSectionPerVolume(const G4Material*, + G4double ComputeCrossSectionPerAtom( + const G4ParticleDefinition* particle, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicWeight=0., + G4double cut =0., + G4double emax=0.); + + G4double CrossSectionPerVolume(const G4Material*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy = 0.0, G4double maxEnergy = DBL_MAX); - virtual std::vector* SampleSecondaries( + std::vector* SampleSecondaries( const G4MaterialCutsCouple*, const G4DynamicParticle*, G4double length, @@ -105,20 +119,12 @@ public: G4double SampleDisplacement(); - void SetLateralDisplasmentFlag(G4bool val); + G4double LatCorrelation(); + + void SetLateralDisplasmentFlag(G4bool val) { latDisplasment = val;}; private: - G4double ComputeTransportCrossSection( - const G4ParticleDefinition* particle, - G4double KineticEnergy, - G4double AtomicNumber, - G4double AtomicWeight); - - // hide assignment operator - G4MscModel & operator=(const G4MscModel &right); - G4MscModel(const G4MscModel&); - const G4ParticleDefinition* particle; G4ParticleChangeForMSC* fParticleChange; G4Navigator* navigator; @@ -132,16 +138,15 @@ private: G4double taulim; G4double currentTau; G4double dtrl; - G4double NuclCorrPar; - G4double FactPar; G4double factail ; - G4double sigmafactor; G4double b; G4double xsi; G4double lambda0; + G4double lambdaeff; G4double tPathLength; + G4double zPathLength; G4double par1,par2,par3 ; G4double stepmin ; @@ -155,14 +160,7 @@ private: G4bool isInitialized; }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void G4MscModel::SetLateralDisplasmentFlag(G4bool val) -{ - latDisplasment = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/source/processes/electromagnetic/standard/include/G4MscModel71.hh b/source/processes/electromagnetic/standard/include/G4MscModel71.hh new file mode 100644 index 0000000000..41dfaa3501 --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4MscModel71.hh @@ -0,0 +1,169 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4MscModel71.hh,v 1.1 2005/10/03 01:09:57 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ------------------------------------------------------------------- +// +// +// GEANT4 Class header file +// +// +// File name: G4MscMOdel71 +// +// Author: Laszlo Urban +// +// Creation date: 01.03.2001 +// +// Modifications: +// +// 27-03-03 Move model part from G4MultipleScattering (V.Ivanchenko) +// 27-03-03 Rename (V.Ivanchenko) +// +// 05-08-03 angle distribution has been modified (L.Urban) +// 26-11-03 new data member currentRange (L.Urban) +// 01-03-04 changes in data members + signature changed in SampleCosineTheta +// 11-03-04 changes in data members (L.Urban) +// 23-04-04 changes in data members and in signature of SampleCosineTheta +// (L.Urban) +// 17-08-04 name of data member facxsi changed to factail (L.Urban) +// 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 15-04-05 optimize internal interface - add SampleSecondaries method (V.Ivanchenko) +// 03-10-05 Model is freezed with the name McsModel71 (V.Ivanchenko) + +// +// Class Description: +// +// Implementation of the model of multiple scattering based on +// H.W.Lewis Phys Rev 78 (1950) 526 and L.Urban model + +// ------------------------------------------------------------------- +// + +#ifndef G4MscModel71_h +#define G4MscModel71_h 1 + +#include "G4VEmModel.hh" + +class G4ParticleChangeForMSC; +class G4Navigator; + +class G4MscModel71 : public G4VEmModel +{ + +public: + + G4MscModel71(G4double&, G4double&, G4double&, G4double&, G4bool&, + const G4String& nam = "MscUni"); + + virtual ~G4MscModel71(); + + virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); + + virtual G4double CrossSectionPerVolume(const G4Material*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy = 0.0, + G4double maxEnergy = DBL_MAX); + + virtual std::vector* SampleSecondaries( + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double length, + G4double safety); + + G4double GeomPathLength(G4PhysicsTable* theLambdaTable, + const G4MaterialCutsCouple* couple, + const G4ParticleDefinition* particle, + G4double& kineticEnergy, + G4double lambda, + G4double range, + G4double truePathLength); + + G4double TrueStepLength(G4double geomStepLength); + + G4double SampleCosineTheta(G4double trueStepLength,G4double KineticEnergy); + + G4double SampleDisplacement(); + + void SetLateralDisplasmentFlag(G4bool val); + +private: + + G4double ComputeTransportCrossSection( + const G4ParticleDefinition* particle, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicWeight); + + // hide assignment operator + G4MscModel71 & operator=(const G4MscModel71 &right); + G4MscModel71(const G4MscModel71&); + + const G4ParticleDefinition* particle; + G4ParticleChangeForMSC* fParticleChange; + G4Navigator* navigator; + + G4double mass; + G4double charge; + G4double massRate; + + G4double taubig; + G4double tausmall; + G4double taulim; + G4double currentTau; + G4double dtrl; + G4double NuclCorrPar; + G4double FactPar; + G4double factail ; + + G4double sigmafactor; + G4double b; + G4double xsi; + + G4double lambda0; + G4double tPathLength; + G4double par1,par2,par3 ; + + G4double stepmin ; + + G4double currentKinEnergy; + G4double currentRange ; + G4double currentRadLength; + + G4bool samplez; + G4bool latDisplasment; + G4bool isInitialized; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4MscModel71::SetLateralDisplasmentFlag(G4bool val) +{ + latDisplasment = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif + diff --git a/source/processes/electromagnetic/standard/include/G4MultipleScattering.hh b/source/processes/electromagnetic/standard/include/G4MultipleScattering.hh index fb2ac2c12c..cd21ef5136 100644 --- a/source/processes/electromagnetic/standard/include/G4MultipleScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4MultipleScattering.hh @@ -20,11 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MultipleScattering.hh,v 1.13 2005/04/15 14:41:13 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MultipleScattering.hh,v 1.24 2005/12/11 08:34:18 urban Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -//------------- G4MultipleScattering physics process -------------------------- +//------------- G4MultipleScattering physics process ------------------------- // by Laszlo Urban, March 2001 // // 07-08-01 new methods Store/Retrieve PhysicsTable @@ -49,11 +49,22 @@ // with the corresponding set function (L.Urban) // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) // 15-04-05 optimize internal interfaces (V.Ivanchenko) +// 02-10-05 new algorithm for step limitation, new data members (L.Urban) +// 05-10-05 value of data member tlimitmin has been changed (L.Urban) +// 23-10-05 new Boolean data member prec (false ~ 7.1 like, true new step +// limit in TruePathLengthLimit, L.Urban) +// 25-10-05 prec renamed to steppingAlgorithm, set function triggers +// 'default' facrange too, true - 0.02, false - 0.2 (L.Urban) +// 26-10-05 the above is put in the function MscStepLimitation() (mma) +// 05-11-05 new data member rangecut (L.Urban) +// 13-11-05 some code cleaning (L.Urban) +// 07-12-05 GeomLimit is protected instead of public +// 11-12-05 data menber rangecut removed (L.Urban) // //------------------------------------------------------------------------------ // -// $Id: G4MultipleScattering.hh,v 1.13 2005/04/15 14:41:13 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MultipleScattering.hh,v 1.24 2005/12/11 08:34:18 urban Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // class description // @@ -70,6 +81,8 @@ #include "G4VMultipleScattering.hh" +class G4Navigator; + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class G4MultipleScattering : public G4VMultipleScattering @@ -79,65 +92,66 @@ public: // with description G4MultipleScattering(const G4String& processName="msc"); - virtual ~G4MultipleScattering(); + ~G4MultipleScattering(); // returns true for charged particles, false otherwise G4bool IsApplicable (const G4ParticleDefinition& p); G4double TruePathLengthLimit(const G4Track& track, - G4double& lambda, - G4double currentMinimalStep); + G4double& lambda, + G4double currentMinimalStep); // Print few lines of informations about the process: validity range, void PrintInfo(); - // geom. step length distribution should be sampled or not - void Setsamplez(G4bool value); + // set boolean flag steppingAlgorithm + // ( true/false : standard or 7.1 style process) + void MscStepLimitation(G4bool algorithm, G4double factor = -1.); - // activate boundary algorithm - void SetBoundary(G4bool value); + // geom. step length distribution should be sampled or not + void Setsamplez(G4bool value) { samplez = value;}; + + // activate boundary algorithm (in fact stepping algorithm) + void SetBoundary(G4bool value) { boundary = value;}; // to reduce the energy/step dependence - void Setdtrl(G4double value); + void Setdtrl(G4double value) { dtrl = value;}; - void Setfactail(G4double value); + // 'soften' step limitation above Tkinlimit + void SetTkinlimit(G4double value) { Tkinlimit = value;}; - // Steplimit after boundary crossing = facrange*range - // estimated nb of steps at boundary nsmallstep = 1/facrange - void SetFacrange(G4double val); + // Steplimit = facrange*max(range,lambda) + void SetFacrange(G4double val) { facrange=val;}; - // corrs to transport cross section for high energy - void SetNuclCorrPar(G4double val); - void SetFactPar(G4double val); + // connected with step size reduction due to geometry + void SetFacgeom(G4double val) { facgeom=val;}; + + // minimum steplimit + void SetTlimitmin(G4double val) { tlimitmin=val;}; protected: // This function initialise models void InitialiseProcess(const G4ParticleDefinition*); -private: - - // hide assignment operator as private - G4MultipleScattering & operator = (const G4MultipleScattering &right); - G4MultipleScattering ( const G4MultipleScattering &); + G4double GeomLimit(const G4Track& track); private: // data members + G4Navigator* navigator; + G4double lowKineticEnergy; G4double highKineticEnergy; G4int totBins; + G4double Tkinlimit,Tlimit; G4double facrange; - G4double tlimit; - G4double tlimitmin; + G4double tlimit,tlimitmin; + G4double geombig,geommin,facgeom; + G4double safety,facsafety; G4double dtrl; - G4double NuclCorrPar; - G4double FactPar; G4double factail; - G4double cf; - - G4int stepnolastmsc; - G4int nsmallstep; + G4bool steppingAlgorithm; G4bool samplez; G4bool boundary; @@ -145,58 +159,6 @@ private: // data members }; -//-------------------------------------------------------------------- -// inline methods -//-------------------------------------------------------------------- - -inline G4bool G4MultipleScattering::IsApplicable (const G4ParticleDefinition& p) -{ - return (p.GetPDGCharge() != 0.0 && !p.IsShortLived()); -} - -// geom. step length distribution should be sampled or not -inline void G4MultipleScattering::Setsamplez(G4bool value) -{ - samplez = value; -} - -// activate boundary algorithm -inline void G4MultipleScattering::SetBoundary(G4bool value) -{ - boundary = value; -} - -// to reduce the energy/step dependence -inline void G4MultipleScattering::Setdtrl(G4double value) -{ - dtrl = value; -} - -inline void G4MultipleScattering::Setfactail(G4double value) -{ - factail = value; -} - -// Steplimit after boundary crossing = facrange*range -// estimated nb of steps at boundary nsmallstep = 1/facrange -inline void G4MultipleScattering::SetFacrange(G4double val) -{ - facrange = val; - nsmallstep = G4int(std::log((cf+facrange-1.)/facrange)/std::log(cf))+1; -} - -// corrs to transport cross section for high energy -inline void G4MultipleScattering::SetNuclCorrPar(G4double val) -{ - NuclCorrPar = val; -} - -inline void G4MultipleScattering::SetFactPar(G4double val) -{ - FactPar = val; -} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif - - - diff --git a/source/processes/electromagnetic/standard/include/G4MultipleScattering52.hh b/source/processes/electromagnetic/standard/include/G4MultipleScattering52.hh index db301c0bf8..ec43bb1a9a 100644 --- a/source/processes/electromagnetic/standard/include/G4MultipleScattering52.hh +++ b/source/processes/electromagnetic/standard/include/G4MultipleScattering52.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MultipleScattering52.hh,v 1.2 2004/12/01 19:37:13 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //------------- G4MultipleScattering52 physics process -------------------------- // by Laszlo Urban, March 2001 diff --git a/source/processes/electromagnetic/standard/include/G4MultipleScattering52.icc b/source/processes/electromagnetic/standard/include/G4MultipleScattering52.icc index e77b95f7a1..1b1c9c099e 100644 --- a/source/processes/electromagnetic/standard/include/G4MultipleScattering52.icc +++ b/source/processes/electromagnetic/standard/include/G4MultipleScattering52.icc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4MultipleScattering52.icc,v 1.1 2004/11/19 19:19:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //------------ G4MultipleScattering52 physics process --------------------------- // by Laszlo Urban, March 2001 diff --git a/source/processes/electromagnetic/standard/include/G4MultipleScattering71.hh b/source/processes/electromagnetic/standard/include/G4MultipleScattering71.hh new file mode 100644 index 0000000000..e9a124d9bd --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4MultipleScattering71.hh @@ -0,0 +1,203 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4MultipleScattering71.hh,v 1.1 2005/10/03 01:09:57 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//------------- G4MultipleScattering71 physics process -------------------------- +// by Laszlo Urban, March 2001 +// +// 07-08-01 new methods Store/Retrieve PhysicsTable +// 23-08-01 new angle and z distribution,energy dependence reduced, +// Store,Retrieve methods commented out temporarily, L.Urban +// 11-09-01 G4MultipleScatteringx put as default: G4MultipleScattering +// Store,Retrieve methods reactived (mma) +// 13-09-01 Unused TrueToGeomTransformation method deleted, +// class description (L.Urban) +// 19-09-01 come back to previous process name msc +// 17-04-02 NEW angle distribution + boundary algorithm modified, L.Urban +// 22-04-02 boundary algorithm modified -> important improvement in timing !!!! +// (L.Urban) +// 24-05-02 changes in data members, L.Urban +// 30-10-02 changes in data members, L.Urban +// 20-01-03 Migrade to cut per region (V.Ivanchenko) +// 05-02-03 changes in data members, L.Urban +// 28-03-03 Move to model design (V.Ivanchenko) +// 18-04-03 Change name (V.Ivanchenko) +// 16-06-03: ShortLived are not applicable any more (V.Ivanchenko) +// 17-08-04 name of data member facxsi changed to factail together +// with the corresponding set function (L.Urban) +// 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) +// 15-04-05 optimize internal interfaces (V.Ivanchenko) +// 03-10-05 Process is freezed with the name 71 (V.Ivanchenko) +// +//------------------------------------------------------------------------------ +// +// $Id: G4MultipleScattering71.hh,v 1.1 2005/10/03 01:09:57 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + +// class description +// +// The class simulates the multiple scattering for any kind +// of charged particle. +// +// class description - end + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4MultipleScattering71_h +#define G4MultipleScattering71_h 1 + +#include "G4VMultipleScattering.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4MultipleScattering71 : public G4VMultipleScattering + +{ +public: // with description + + G4MultipleScattering71(const G4String& processName="msc"); + + virtual ~G4MultipleScattering71(); + + // returns true for charged particles, false otherwise + G4bool IsApplicable (const G4ParticleDefinition& p); + + G4double TruePathLengthLimit(const G4Track& track, + G4double& lambda, + G4double currentMinimalStep); + + // Print few lines of informations about the process: validity range, + void PrintInfo(); + + // geom. step length distribution should be sampled or not + void Setsamplez(G4bool value); + + // activate boundary algorithm + void SetBoundary(G4bool value); + + // to reduce the energy/step dependence + void Setdtrl(G4double value); + + void Setfactail(G4double value); + + // Steplimit after boundary crossing = facrange*range + // estimated nb of steps at boundary nsmallstep = 1/facrange + void SetFacrange(G4double val); + + // corrs to transport cross section for high energy + void SetNuclCorrPar(G4double val); + void SetFactPar(G4double val); + +protected: + + // This function initialise models + void InitialiseProcess(const G4ParticleDefinition*); + +private: + + // hide assignment operator as private + G4MultipleScattering71 & operator = (const G4MultipleScattering71 &right); + G4MultipleScattering71 ( const G4MultipleScattering71 &); + +private: // data members + + G4double lowKineticEnergy; + G4double highKineticEnergy; + G4int totBins; + + G4double facrange; + G4double tlimit; + G4double tlimitmin; + G4double dtrl; + G4double NuclCorrPar; + G4double FactPar; + G4double factail; + G4double cf; + + G4int stepnolastmsc; + G4int nsmallstep; + + G4bool samplez; + G4bool boundary; + G4bool isInitialized; + +}; + +//-------------------------------------------------------------------- +// inline methods +//-------------------------------------------------------------------- + +inline G4bool G4MultipleScattering71::IsApplicable (const G4ParticleDefinition& p) +{ + return (p.GetPDGCharge() != 0.0 && !p.IsShortLived()); +} + +// geom. step length distribution should be sampled or not +inline void G4MultipleScattering71::Setsamplez(G4bool value) +{ + samplez = value; +} + +// activate boundary algorithm +inline void G4MultipleScattering71::SetBoundary(G4bool value) +{ + boundary = value; +} + +// to reduce the energy/step dependence +inline void G4MultipleScattering71::Setdtrl(G4double value) +{ + dtrl = value; +} + +inline void G4MultipleScattering71::Setfactail(G4double value) +{ + factail = value; +} + +// Steplimit after boundary crossing = facrange*range +// estimated nb of steps at boundary nsmallstep = 1/facrange +inline void G4MultipleScattering71::SetFacrange(G4double val) +{ + facrange = val; + nsmallstep = G4int(std::log((cf+facrange-1.)/facrange)/std::log(cf))+1; +} + +// corrs to transport cross section for high energy +inline void G4MultipleScattering71::SetNuclCorrPar(G4double val) +{ + NuclCorrPar = val; +} + +inline void G4MultipleScattering71::SetFactPar(G4double val) +{ + FactPar = val; +} + +#endif + + + diff --git a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh index 13afbfd845..db78f997ce 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh @@ -22,7 +22,7 @@ // // // $Id: G4PAIxSection.hh,v 1.11 2004/04/02 10:51:12 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4PAIxSection.hh -- header file diff --git a/source/processes/electromagnetic/standard/include/G4PEEffectModel.hh b/source/processes/electromagnetic/standard/include/G4PEEffectModel.hh index b28fcead5e..d778c8dce1 100644 --- a/source/processes/electromagnetic/standard/include/G4PEEffectModel.hh +++ b/source/processes/electromagnetic/standard/include/G4PEEffectModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PEEffectModel.hh,v 1.3 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh index 17a5e87baa..ba111bbe72 100644 --- a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh +++ b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhotoElectricEffect.hh,v 1.18 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //------------------ G4PhotoElectricEffect physics process ------------------ diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect52.hh b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect52.hh index 333feda1ec..a0031db09d 100644 --- a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect52.hh +++ b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect52.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PhotoElectricEffect52.hh,v 1.1 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh index 76b20e5a3a..c61ceb8ff4 100644 --- a/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh +++ b/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolarizedComptonScattering.hh,v 1.8 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // --------- G4PolarizedComptonScattering physics process ---------------------- // by Vicente Lara, March 1998 diff --git a/source/processes/electromagnetic/standard/include/G4SCProcessorStand.hh b/source/processes/electromagnetic/standard/include/G4SCProcessorStand.hh index 3a6a038831..111be5d6f7 100644 --- a/source/processes/electromagnetic/standard/include/G4SCProcessorStand.hh +++ b/source/processes/electromagnetic/standard/include/G4SCProcessorStand.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4SCProcessorStand.hh,v 1.1 2004/12/01 17:36:05 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh b/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh index 0183f1da1a..07e266a80a 100644 --- a/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh +++ b/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh @@ -22,7 +22,7 @@ // // // $Id: G4SynchrotronRadiation.hh,v 1.12 2004/11/10 08:53:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh b/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh index ff115baca9..1b547da467 100644 --- a/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh +++ b/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4UniversalFluctuation.hh,v 1.2 2005/02/07 14:37:50 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh index ee73d3f04b..401ffc0934 100644 --- a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VeEnergyLoss.hh,v 1.13 2004/12/01 19:37:13 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc index 95fa8a482d..b5742b6664 100644 --- a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc +++ b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4VeEnergyLoss.icc,v 1.13 2003/06/16 17:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh index a14050c9da..6cb9f7ee2a 100644 --- a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VhEnergyLoss.hh,v 1.18 2004/12/01 19:37:13 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------- G4VhEnergyLoss physics process -------------------------------- // by Laszlo Urban, 30 May 1997 diff --git a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc index 58cbb9ffec..97fbe98141 100644 --- a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc +++ b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.icc @@ -22,7 +22,7 @@ // // // $Id: G4VhEnergyLoss.icc,v 1.6 2003/01/17 18:55:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------- G4VhEnergyLoss physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh index f98fbf0a86..4e2cfa0f22 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eBremsstrahlung.hh,v 1.32 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.hh index 197846dcbb..bbfd69673b 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.hh +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.hh @@ -22,7 +22,7 @@ // // // $Id: G4eBremsstrahlung52.hh,v 1.2 2004/11/10 08:53:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------ G4eBremsstrahlung5252 physics process ------ diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.icc b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.icc index 681194d3cf..3cbba2497c 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.icc +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.icc @@ -22,7 +22,7 @@ // // // $Id: G4eBremsstrahlung52.icc,v 1.2 2004/12/01 19:37:13 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------ G4eBremsstrahlung52 physics process --------- // by Michel Maire, 27 July 1996 diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh index d2db33aa4e..fbeef75788 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eBremsstrahlungModel.hh,v 1.16 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation.hh b/source/processes/electromagnetic/standard/include/G4eIonisation.hh index 90f3cb27ac..3da751c362 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4eIonisation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eIonisation.hh,v 1.31 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation52.hh b/source/processes/electromagnetic/standard/include/G4eIonisation52.hh index 62f477f34e..cf453d82f1 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation52.hh +++ b/source/processes/electromagnetic/standard/include/G4eIonisation52.hh @@ -22,7 +22,7 @@ // // // $Id: G4eIonisation52.hh,v 1.2 2004/11/10 08:53:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------- G4eIonisation52 physics process -------------------------------- // by Laszlo Urban, 20 March 1997 diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation52.icc b/source/processes/electromagnetic/standard/include/G4eIonisation52.icc index 43a4ef285c..6acfd7ea94 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation52.icc +++ b/source/processes/electromagnetic/standard/include/G4eIonisation52.icc @@ -22,7 +22,7 @@ // // // $Id: G4eIonisation52.icc,v 1.1 2003/08/08 11:30:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //----------------- G4eIonisation52 physics process ------------------------------ diff --git a/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh b/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh index 5b20b10622..b642ae17d4 100644 --- a/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh +++ b/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eeToTwoGammaModel.hh,v 1.9 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh index 7906843f5c..0c06e8db5f 100644 --- a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh +++ b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eplusAnnihilation.hh,v 1.17 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eplusAnnihilation.hh,v 1.18 2005/12/05 16:44:43 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -38,7 +38,8 @@ // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivanchenko) // 15-03-05 Update interface according to changings in G4VEmProcess (V.Ivanchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivanchenko) -// 04-05-05, Make class to be default (V.Ivanchenko) +// 04-05-05 Make class to be default (V.Ivanchenko) +// 04-12-05 SetProposedKineticEnergy(0.) for annihilated positron (mma) // // // Class Description: @@ -122,6 +123,7 @@ inline std::vector* G4eplusAnnihilation::SecondariesPostStep const G4MaterialCutsCouple* couple, const G4DynamicParticle* dp) { + fParticleChange.SetProposedKineticEnergy(0.); fParticleChange.ProposeTrackStatus(fStopAndKill); return model->SampleSecondaries(couple, dp); } diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation52.hh b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation52.hh index 33d1283cde..de2dcf199d 100644 --- a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation52.hh +++ b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation52.hh @@ -22,7 +22,7 @@ // // // $Id: G4eplusAnnihilation52.hh,v 1.1 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation.hh b/source/processes/electromagnetic/standard/include/G4hIonisation.hh index 45016f499b..af088b1054 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4hIonisation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4hIonisation.hh,v 1.32 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation52.hh b/source/processes/electromagnetic/standard/include/G4hIonisation52.hh index 484aa147cf..d4114bee60 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation52.hh +++ b/source/processes/electromagnetic/standard/include/G4hIonisation52.hh @@ -22,7 +22,7 @@ // // // $Id: G4hIonisation52.hh,v 1.2 2004/11/10 08:53:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // --------------- G4hIonisation52 physics process ------------------------------- // by Laszlo Urban, 30 May 1997 diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation52.icc b/source/processes/electromagnetic/standard/include/G4hIonisation52.icc index 0771187ef9..27842ea17c 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation52.icc +++ b/source/processes/electromagnetic/standard/include/G4hIonisation52.icc @@ -22,7 +22,7 @@ // // // $Id: G4hIonisation52.icc,v 1.1 2003/08/08 11:30:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //------------------ G4hIonisation52 physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh index bd645e0610..5dacb9aa34 100644 --- a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ionIonisation.hh,v 1.38 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc b/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc index 84016b2a6c..a2e1b0504f 100644 --- a/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BetheBlochModel.cc,v 1.6 2005/04/12 18:12:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BetheBlochModel.cc,v 1.7 2005/08/18 15:05:13 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -93,7 +93,7 @@ void G4BetheBlochModel::Initialise(const G4ParticleDefinition* p, { if(!particle) SetParticle(p); G4String pname = particle->GetParticleName(); - if(particle->GetParticleType() == "nucleus" && + if(particle->GetParticleType() == "nucleus" && pname != "deuteron" && pname != "triton") isIon = true; if(pParticleChange) @@ -193,14 +193,14 @@ G4double G4BetheBlochModel::CrossSectionPerVolume(const G4Material* material, vector* G4BetheBlochModel::SampleSecondaries( const G4MaterialCutsCouple*, const G4DynamicParticle* dp, - G4double minEnergy, + G4double minKinEnergy, G4double maxEnergy) { G4double kineticEnergy = dp->GetKineticEnergy(); G4double tmax = MaxSecondaryEnergy(dp->GetDefinition(),kineticEnergy); G4double maxKinEnergy = min(maxEnergy,tmax); - G4double minKinEnergy = min(minEnergy,maxKinEnergy); + if(minKinEnergy >= maxKinEnergy) return 0; G4double totEnergy = kineticEnergy + mass; G4double etot2 = totEnergy*totEnergy; diff --git a/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc b/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc index c324724f2e..089ad8ee4c 100644 --- a/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BetheHeitlerModel.cc,v 1.3 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BetheHeitlerModel.cc,v 1.7 2005/12/05 16:44:43 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -36,6 +36,9 @@ // // Modifications: // 18-04-05 Use G4ParticleChangeForGamma (V.Ivantchenko) +// 24-06-05 Increase number of bins to 200 (V.Ivantchenko) +// 16-11-05 replace shootBit() by G4UniformRand() mma +// 04-12-05 SetProposedKineticEnergy(0.) for the killed photon (mma) // // Class Description: // @@ -61,7 +64,7 @@ G4BetheHeitlerModel::G4BetheHeitlerModel(const G4ParticleDefinition*, const G4String& nam) : G4VEmModel(nam), theCrossSectionTable(0), - nbins(100) + nbins(200) { theGamma = G4Gamma::Gamma(); thePositron = G4Positron::Positron(); @@ -195,17 +198,18 @@ std::vector* G4BetheHeitlerModel::SampleSecondaries( G4double epsil ; G4double epsil0 = electron_mass_c2/GammaEnergy ; + if(epsil0 > 1.0) return 0; // do it fast if GammaEnergy < 2. MeV static const G4double Egsmall=2.*MeV; - if (GammaEnergy < Egsmall) { + if (GammaEnergy < Egsmall) { - epsil = epsil0 + (0.5-epsil0)*G4UniformRand(); + epsil = epsil0 + (0.5-epsil0)*G4UniformRand(); - } else { + } else { // now comes the case with GammaEnergy >= 2. MeV - // select randomly one element constituing the material + // select randomly one element constituing the material const G4Element* anElement = SelectRandomAtom(aMaterial, theGamma, GammaEnergy); // Extract Coulomb factor for this Element @@ -222,7 +226,7 @@ std::vector* G4BetheHeitlerModel::SampleSecondaries( G4double epsilmin = max(epsil0,epsil1) , epsilrange = 0.5 - epsilmin; // - // sample the energy rate of the created electron (or positron) + // sample the energy rate of the created electron (or positron) // //G4double epsil, screenvar, greject ; G4double screenvar, greject ; @@ -253,7 +257,7 @@ std::vector* G4BetheHeitlerModel::SampleSecondaries( // G4double ElectTotEnergy, PositTotEnergy; - if (RandBit::shootBit()) { + if (G4UniformRand() > 0.5) { ElectTotEnergy = (1.-epsil)*GammaEnergy; PositTotEnergy = epsil*GammaEnergy; @@ -314,6 +318,8 @@ std::vector* G4BetheHeitlerModel::SampleSecondaries( fvect->push_back(aParticle1); fvect->push_back(aParticle2); + // kill incident photon + fParticleChange->SetProposedKineticEnergy(0.); fParticleChange->ProposeTrackStatus(fStopAndKill); return fvect; diff --git a/source/processes/electromagnetic/standard/src/G4BohrFluctuations.cc b/source/processes/electromagnetic/standard/src/G4BohrFluctuations.cc index 9eba828008..913e6bddfb 100644 --- a/source/processes/electromagnetic/standard/src/G4BohrFluctuations.cc +++ b/source/processes/electromagnetic/standard/src/G4BohrFluctuations.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BohrFluctuations.cc,v 1.3 2005/05/01 20:26:24 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc b/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc index 029832d8bd..185f3fbf0a 100644 --- a/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc +++ b/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4BraggIonModel.cc,v 1.6 2005/05/30 08:46:58 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4BraggIonModel.cc,v 1.10 2005/11/29 07:58:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -36,6 +36,7 @@ // // Modifications: // 11-05-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 29-11-05 Do not use G4Alpha class (V.Ivantchenko) // // Class Description: @@ -53,7 +54,6 @@ #include "G4BraggIonModel.hh" #include "Randomize.hh" #include "G4Electron.hh" -#include "G4Alpha.hh" #include "G4ParticleChangeForLoss.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -70,7 +70,7 @@ G4BraggIonModel::G4BraggIonModel(const G4ParticleDefinition* p, const G4String& highKinEnergy = 2.0*MeV; lowKinEnergy = 0.0*MeV; lowestKinEnergy = 1.0*keV; - HeMass = G4Alpha::Alpha()->GetPDGMass(); + HeMass = 3.72742*GeV; rateMassHe2p = HeMass/proton_mass_c2; massFactor = 1000.*amu_c2/HeMass; theZieglerFactor = eV*cm2*1.0e-15; @@ -97,7 +97,7 @@ void G4BraggIonModel::Initialise(const G4ParticleDefinition* p, { if(p != particle) SetParticle(p); G4String pname = particle->GetParticleName(); - if(particle->GetParticleType() == "nucleus" && + if(particle->GetParticleType() == "nucleus" && pname != "deuteron" && pname != "triton") isIon = true; if(pParticleChange) @@ -176,12 +176,12 @@ G4double G4BraggIonModel::CrossSectionPerVolume(const G4Material* material, std::vector* G4BraggIonModel::SampleSecondaries( const G4MaterialCutsCouple*, const G4DynamicParticle* dp, - G4double minEnergy, + G4double xmin, G4double maxEnergy) { G4double tmax = MaxSecondaryKinEnergy(dp); G4double xmax = min(tmax, maxEnergy); - G4double xmin = min(xmax, minEnergy); + if(xmin >= xmax) return 0; G4double kineticEnergy = dp->GetKineticEnergy(); G4double energy = kineticEnergy + mass; @@ -242,28 +242,20 @@ std::vector* G4BraggIonModel::SampleSecondaries( G4bool G4BraggIonModel::HasMaterial(const G4Material* material) { + const size_t numberOfMolecula = 11 ; + SetMoleculaNumber(numberOfMolecula) ; G4String chFormula = material->GetChemicalFormula() ; - // ICRU Report N49, 1993. Power's model for He. - const size_t numberOfMolecula = 30 ; - SetMoleculaNumber(numberOfMolecula) ; - static G4String nameMol[numberOfMolecula] = { - "H_2", "Be-Solid", "C-Solid", "Graphite", "N_2", - "O_2", "Al-Solid", "Si-Solid", "Ar-Solid", "Cu-Solid", - "Ge", "W-Solid", "Au-Solid", "Pb-Solid", "C_2H_2", - "CO_2", "Cellulose-Nitrat", "C_2H_4", "LiF", - "CH_4", "Nylon", "Polycarbonate", "(CH_2)_N-Polyetilene", "PMMA", - "(C_8H_8)_N", "SiO_2", "CsI", "H_2O", "H_2O-Gas"} ; - - // Special treatment for water in gas state - - const G4State theState = material->GetState() ; - if( theState == kStateGas && "H_2O" == chFormula) - chFormula = G4String("H_2O-Gas"); + // ICRU Report N49, 1993. Ziegler model for He. + static G4String molName[numberOfMolecula] = { + "CaF_2", "Cellulose_Nitrate", "LiF", "Policarbonate", + "(C_2H_4)_N-Polyethylene", "(C_2H_4)_N-Polymethly_Methacralate", + "Polysterene", "SiO_2", "NaI", "H_2O", + "Graphite" } ; // Search for the material in the table for (size_t i=0; i(pParticleChange); - else + else fParticleChange = new G4ParticleChangeForLoss(); } @@ -173,12 +174,12 @@ G4double G4BraggModel::CrossSectionPerVolume( vector* G4BraggModel::SampleSecondaries( const G4MaterialCutsCouple*, const G4DynamicParticle* dp, - G4double tmin, + G4double xmin, G4double maxEnergy) { G4double tmax = MaxSecondaryKinEnergy(dp); G4double xmax = min(tmax, maxEnergy); - G4double xmin = min(xmax,tmin); + if(xmin >= xmax) return 0; G4double kineticEnergy = dp->GetKineticEnergy(); G4double energy = kineticEnergy + mass; @@ -289,11 +290,14 @@ G4double G4BraggModel::StoppingPower(const G4Material* material, {1.286E+1, 1.462E+1, 5.625E+3, 2.621E+3, 3.512E-2}, {3.229E+1, 3.696E+1, 8.918E+3, 3.244E+3, 1.273E-1}, {1.604E+1, 1.825E+1, 6.967E+3, 2.307E+3, 3.775E-2}, - {8.049E+0, 9.099E+0, 9.257E+3, 3.846E+2, 1.007E-2}, + {8.049E+0, 9.099E+0, 9.257E+3, 3.846E+2, 1.007E-2}, {4.015E+0, 4.542E+0, 3.955E+3, 4.847E+2, 7.904E-3}, {4.571E+0, 5.173E+0, 4.346E+3, 4.779E+2, 8.572E-3}, {2.631E+0, 2.601E+0, 1.701E+3, 1.279E+3, 1.638E-2} }; - + + static G4double atomicWeight[11] = { + 101.96128, 44.0098, 16.0426, 28.0536, 42.0804, + 104.1512, 44.665, 60.0843, 18.0152, 18.0152, 12.0}; if ( T < 10.0 ) { ionloss = a[iMolecula][0] * sqrt(T) ; @@ -307,7 +311,7 @@ G4double G4BraggModel::StoppingPower(const G4Material* material, if ( ionloss < 0.0) ionloss = 0.0 ; if ( 10 == iMolecula ) { - if (T < 100.0) { + if (T < 100.0) { ionloss *= (1.0+0.023+0.0066*log10(T)); } else if (T < 700.0) { @@ -317,6 +321,7 @@ G4double G4BraggModel::StoppingPower(const G4Material* material, ionloss *=(1.0+0.089-0.0248*log10(700.-99.)); } } + ionloss /= atomicWeight[iMolecula]; // pure material (normally not the case for this function) } else if(1 == (material->GetNumberOfElements())) { @@ -481,21 +486,13 @@ G4double G4BraggModel::DEDX(const G4Material* material, const G4int numberOfElements = material->GetNumberOfElements(); const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); - + // compaund material with parametrisation if( HasMaterial(material) ) { - eloss = StoppingPower(material, kineticEnergy) - * (material->GetTotNbOfAtomsPerVolume()); - if(1 < numberOfElements) { - G4int nAtoms = 0; - - const G4int* theAtomsVector = material->GetAtomsVector(); - for (G4int iel=0; ielGetDensity()/amu; + // pure material } else if(1 == numberOfElements) { diff --git a/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc b/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc index ba86dd0dae..2c9ca48dad 100644 --- a/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ComptonScattering.cc,v 1.24 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //------------ G4ComptonScattering physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4ComptonScattering52.cc b/source/processes/electromagnetic/standard/src/G4ComptonScattering52.cc index 19de03191b..479fd8b02b 100644 --- a/source/processes/electromagnetic/standard/src/G4ComptonScattering52.cc +++ b/source/processes/electromagnetic/standard/src/G4ComptonScattering52.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ComptonScattering52.cc,v 1.1 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //------------ G4ComptonScattering52 physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4GammaConversion.cc b/source/processes/electromagnetic/standard/src/G4GammaConversion.cc index 6a1da57360..725f243bcc 100644 --- a/source/processes/electromagnetic/standard/src/G4GammaConversion.cc +++ b/source/processes/electromagnetic/standard/src/G4GammaConversion.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4GammaConversion.cc,v 1.24 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //------------------ G4GammaConversion physics process ------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4GammaConversion52.cc b/source/processes/electromagnetic/standard/src/G4GammaConversion52.cc index cf5e6dc969..bce292d176 100644 --- a/source/processes/electromagnetic/standard/src/G4GammaConversion52.cc +++ b/source/processes/electromagnetic/standard/src/G4GammaConversion52.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GammaConversion52.cc,v 1.1 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4GammaConversion52.cc,v 1.2 2005/11/16 15:23:02 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //------------------ G4GammaConversion52 physics process ------------------------- // by Michel Maire, 24 May 1996 @@ -57,6 +57,7 @@ // 21-03-02 DoIt: correction of the e+e- angular distribution (bug 363) mma // 08-11-04 Remove of Store/Retrieve tables (V.Ivantchenko) // 04-05-05 Add 52 to class name (V.Ivanchenko) +// 16-11-05 replace shootBit() by G4UniformRand() mma // ----------------------------------------------------------------------------- #include "G4GammaConversion52.hh" @@ -386,7 +387,7 @@ G4VParticleChange* G4GammaConversion52::PostStepDoIt(const G4Track& aTrack, // G4double ElectTotEnergy, PositTotEnergy; - if (RandBit::shootBit()) + if (G4UniformRand() > 0.5) { ElectTotEnergy = (1.-epsil)*GammaEnergy; PositTotEnergy = epsil*GammaEnergy; diff --git a/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc b/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc index 70c8f942c1..40dd3f1d6c 100644 --- a/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc +++ b/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc @@ -22,7 +22,7 @@ // // // $Id: G4InitXscPAI.cc,v 1.8 2005/05/03 08:07:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4InitXscPAI.cc -- class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc b/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc index f12fe13119..551564f554 100644 --- a/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc +++ b/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4IonFluctuations.cc,v 1.2 2004/12/01 19:37:14 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc b/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc index a63ef48785..d5d4d3e599 100644 --- a/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc +++ b/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4KleinNishinaCompton.cc,v 1.5 2005/04/18 17:31:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4KleinNishinaCompton.cc,v 1.6 2005/08/11 10:03:33 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc b/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc index b847cfd326..0937cb3c40 100644 --- a/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc +++ b/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MollerBhabhaModel.cc,v 1.20 2005/04/12 18:12:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MollerBhabhaModel.cc,v 1.22 2005/08/18 15:05:13 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -42,6 +42,8 @@ // 27-01-03 Make models region aware (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 25-07-05 Add protection in calculation of recoil direction for the case +// of complete energy transfer from e+ to e- (V.Ivanchenko) // // // Class Description: @@ -250,9 +252,8 @@ std::vector* G4MollerBhabhaModel::SampleSecondaries( G4double tmin, G4double maxEnergy) { - std::vector* vdp = new std::vector; G4double tmax = std::min(maxEnergy, MaxSecondaryKinEnergy(dp)); - if(tmin > tmax) tmin = tmax; + if(tmin >= tmax) return 0; G4double kineticEnergy = dp->GetKineticEnergy(); G4double energy = kineticEnergy + electron_mass_c2; @@ -338,7 +339,8 @@ std::vector* G4MollerBhabhaModel::SampleSecondaries( sqrt(deltaKinEnergy * (deltaKinEnergy + 2.0*electron_mass_c2)); G4double cost = deltaKinEnergy * (energy + electron_mass_c2) / (deltaMomentum * totalMomentum); - G4double sint = sqrt(1.0 - cost*cost); + G4double sint = 1.0 - cost*cost; + if(sint > 0.0) sint = sqrt(sint); G4double phi = twopi * G4UniformRand() ; @@ -347,12 +349,16 @@ std::vector* G4MollerBhabhaModel::SampleSecondaries( // primary change kineticEnergy -= deltaKinEnergy; - G4ThreeVector dir = totalMomentum*direction - deltaMomentum*deltaDirection; - direction = dir.unit(); fParticleChange->SetProposedKineticEnergy(kineticEnergy); - fParticleChange->SetProposedMomentumDirection(direction); + + if(kineticEnergy > DBL_MIN) { + G4ThreeVector dir = totalMomentum*direction - deltaMomentum*deltaDirection; + direction = dir.unit(); + fParticleChange->SetProposedMomentumDirection(direction); + } // create G4DynamicParticle object for delta ray + std::vector* vdp = new std::vector; G4DynamicParticle* delta = new G4DynamicParticle(theElectron, deltaDirection,deltaKinEnergy); vdp->push_back(delta); diff --git a/source/processes/electromagnetic/standard/src/G4MscModel.cc b/source/processes/electromagnetic/standard/src/G4MscModel.cc index 71aaf99868..e95c049939 100644 --- a/source/processes/electromagnetic/standard/src/G4MscModel.cc +++ b/source/processes/electromagnetic/standard/src/G4MscModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MscModel.cc,v 1.8 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MscModel.cc,v 1.9 2005/10/04 08:42:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -36,7 +36,7 @@ // // Modifications: // -// 27-03-03 Move model part from G4MultipleScattering (V.Ivanchenko) +// 27-03-03 Move model part from G4MultipleScattering80 (V.Ivanchenko) // 23-05-03 important change in angle distribution for muons/hadrons // the central part now is similar to the Highland parametrization + // minor correction in angle sampling algorithm (for all particles) @@ -68,7 +68,11 @@ // // 03-11-04 precision problem for very high energy ions and small stepsize // solved in SampleCosineTheta (L.Urban). -// 15-04-05 optimize internal interface - add SampleSecondaries method (V.Ivanchenko) +// 15-04-05 optimize internal interface +// add SampleSecondaries method (V.Ivanchenko) +// 11-08-05 computation of lateral correlation added (L.Urban) +// 02-10-05 nuclear size correction computation removed, the correction +// included in the (theoretical) tabulated values (L.Urban) // // Class Description: @@ -80,8 +84,8 @@ // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4MscModel.hh" #include "Randomize.hh" @@ -92,20 +96,17 @@ #include "G4TransportationManager.hh" #include "G4Navigator.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... using namespace std; -G4MscModel::G4MscModel(G4double& m_dtrl, G4double& m_NuclCorrPar, - G4double& m_FactPar, G4double& m_factail, - G4bool& m_samplez, const G4String& nam) +G4MscModel::G4MscModel(G4double m_dtrl,G4double m_factail, + G4bool m_samplez, const G4String& nam) : G4VEmModel(nam), taubig(8.0), tausmall(1.e-20), taulim(1.e-6), dtrl(m_dtrl), - NuclCorrPar (m_NuclCorrPar), - FactPar(m_FactPar), factail(m_factail), samplez(m_samplez), isInitialized(false) @@ -114,35 +115,34 @@ G4MscModel::G4MscModel(G4double& m_dtrl, G4double& m_NuclCorrPar, currentRange = 0. ; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4MscModel::~G4MscModel() {} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void G4MscModel::Initialise(const G4ParticleDefinition* p, const G4DataVector&) { if(isInitialized) return; // set values of some data members - sigmafactor = twopi*classic_electr_radius*classic_electr_radius; particle = p; mass = particle->GetPDGMass(); charge = particle->GetPDGCharge()/eplus; b = 1. ; xsi = 3.00 ; - if(pParticleChange) - fParticleChange = reinterpret_cast(pParticleChange); + if (pParticleChange) + fParticleChange = reinterpret_cast(pParticleChange); else - fParticleChange = new G4ParticleChangeForMSC(); + fParticleChange = new G4ParticleChangeForMSC(); navigator = G4TransportationManager::GetTransportationManager() ->GetNavigatorForTracking(); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4MscModel::CrossSectionPerVolume(const G4Material* material, const G4ParticleDefinition* p, @@ -161,10 +161,9 @@ G4double G4MscModel::CrossSectionPerVolume(const G4Material* material, { G4double atomicNumber = (*theElementVector)[iel]->GetZ(); G4double atomicWeight = (*theElementVector)[iel]->GetA(); - sigma += NbOfAtomsPerVolume[iel]*ComputeTransportCrossSection(p, + sigma += NbOfAtomsPerVolume[iel]*ComputeCrossSectionPerAtom(p, kineticEnergy,atomicNumber,atomicWeight); } - sigma *= sigmafactor; // Calculate lambda if ( sigma > 0.0) sigma = 1.0/sigma; else sigma = DBL_MAX; @@ -172,121 +171,139 @@ G4double G4MscModel::CrossSectionPerVolume(const G4Material* material, return sigma; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4MscModel::ComputeTransportCrossSection( +G4double G4MscModel::ComputeCrossSectionPerAtom( const G4ParticleDefinition* part, G4double KineticEnergy, - G4double AtomicNumber, - G4double AtomicWeight) + G4double AtomicNumber,G4double, + G4double, G4double) { - const G4double epsfactor = 2.*electron_mass_c2*electron_mass_c2* - Bohr_radius*Bohr_radius/(hbarc*hbarc); - const G4double epsmin = 1.e-4 , epsmax = 1.e10; + const G4double sigmafactor = twopi*classic_electr_radius*classic_electr_radius; + const G4double epsfactor = 2.*electron_mass_c2*electron_mass_c2* + Bohr_radius*Bohr_radius/(hbarc*hbarc); + const G4double epsmin = 1.e-4 , epsmax = 1.e10; - const G4double Zdat[15] = { 4., 6.,13.,20.,26.,29.,32.,38.,47., - 50.,56.,64.,74.,79.,82. }; + const G4double Zdat[15] = { 4., 6., 13., 20., 26., 29., 32., 38., 47., + 50., 56., 64., 74., 79., 82. }; - const G4double Tdat[23] = {0.0001*MeV,0.0002*MeV,0.0004*MeV,0.0007*MeV, - 0.001*MeV,0.002*MeV,0.004*MeV,0.007*MeV, - 0.01*MeV,0.02*MeV,0.04*MeV,0.07*MeV, - 0.1*MeV,0.2*MeV,0.4*MeV,0.7*MeV, - 1.*MeV,2.*MeV,4.*MeV,7.*MeV,10.*MeV,20.*MeV, - 10000.0*MeV}; + const G4double Tdat[22] = { 100*eV, 200*eV, 400*eV, 700*eV, + 1*keV, 2*keV, 4*keV, 7*keV, + 10*keV, 20*keV, 40*keV, 70*keV, + 100*keV, 200*keV, 400*keV, 700*keV, + 1*MeV, 2*MeV, 4*MeV, 7*MeV, + 10*MeV, 20*MeV}; - // corr. factors for e-/e+ lambda - G4double celectron[15][23] = + // corr. factors for e-/e+ lambda for T <= Tlim + G4double celectron[15][22] = {{1.125,1.072,1.051,1.047,1.047,1.050,1.052,1.054, 1.054,1.057,1.062,1.069,1.075,1.090,1.105,1.111, - 1.112,1.108,1.100,1.093,1.089,1.087,0.7235 }, + 1.112,1.108,1.100,1.093,1.089,1.087 }, {1.408,1.246,1.143,1.096,1.077,1.059,1.053,1.051, 1.052,1.053,1.058,1.065,1.072,1.087,1.101,1.108, - 1.109,1.105,1.097,1.090,1.086,1.082,0.7925 }, + 1.109,1.105,1.097,1.090,1.086,1.082 }, {2.833,2.268,1.861,1.612,1.486,1.309,1.204,1.156, 1.136,1.114,1.106,1.106,1.109,1.119,1.129,1.132, - 1.131,1.124,1.113,1.104,1.099,1.098,0.9147 }, + 1.131,1.124,1.113,1.104,1.099,1.098 }, {3.879,3.016,2.380,2.007,1.818,1.535,1.340,1.236, 1.190,1.133,1.107,1.099,1.098,1.103,1.110,1.113, - 1.112,1.105,1.096,1.089,1.085,1.098,0.9700 }, + 1.112,1.105,1.096,1.089,1.085,1.098 }, {6.937,4.330,2.886,2.256,1.987,1.628,1.395,1.265, 1.203,1.122,1.080,1.065,1.061,1.063,1.070,1.073, - 1.073,1.070,1.064,1.059,1.056,1.056,1.0022 }, + 1.073,1.070,1.064,1.059,1.056,1.056 }, {9.616,5.708,3.424,2.551,2.204,1.762,1.485,1.330, 1.256,1.155,1.099,1.077,1.070,1.068,1.072,1.074, - 1.074,1.070,1.063,1.059,1.056,1.052,1.0158 }, + 1.074,1.070,1.063,1.059,1.056,1.052 }, {11.72,6.364,3.811,2.806,2.401,1.884,1.564,1.386, 1.300,1.180,1.112,1.082,1.073,1.066,1.068,1.069, - 1.068,1.064,1.059,1.054,1.051,1.050,1.0284 }, + 1.068,1.064,1.059,1.054,1.051,1.050 }, {18.08,8.601,4.569,3.183,2.662,2.025,1.646,1.439, 1.339,1.195,1.108,1.068,1.053,1.040,1.039,1.039, - 1.039,1.037,1.034,1.031,1.030,1.036,1.0515 }, + 1.039,1.037,1.034,1.031,1.030,1.036 }, {18.22,10.48,5.333,3.713,3.115,2.367,1.898,1.631, 1.498,1.301,1.171,1.105,1.077,1.048,1.036,1.033, - 1.031,1.028,1.024,1.022,1.021,1.024,1.0834 }, + 1.031,1.028,1.024,1.022,1.021,1.024 }, {14.14,10.65,5.710,3.929,3.266,2.453,1.951,1.669, 1.528,1.319,1.178,1.106,1.075,1.040,1.027,1.022, - 1.020,1.017,1.015,1.013,1.013,1.020,1.0937 }, + 1.020,1.017,1.015,1.013,1.013,1.020 }, {14.11,11.73,6.312,4.240,3.478,2.566,2.022,1.720, 1.569,1.342,1.186,1.102,1.065,1.022,1.003,0.997, - 0.995,0.993,0.993,0.993,0.993,1.011,1.1140 }, + 0.995,0.993,0.993,0.993,0.993,1.011 }, {22.76,20.01,8.835,5.287,4.144,2.901,2.219,1.855, 1.677,1.410,1.224,1.121,1.073,1.014,0.986,0.976, - 0.974,0.972,0.973,0.974,0.975,0.987,1.1410 }, + 0.974,0.972,0.973,0.974,0.975,0.987 }, {50.77,40.85,14.13,7.184,5.284,3.435,2.520,2.059, 1.837,1.512,1.283,1.153,1.091,1.010,0.969,0.954, - 0.950,0.947,0.949,0.952,0.954,0.963,1.1750 }, + 0.950,0.947,0.949,0.952,0.954,0.963 }, {65.87,59.06,15.87,7.570,5.567,3.650,2.682,2.182, 1.939,1.579,1.325,1.178,1.108,1.014,0.965,0.947, - 0.941,0.938,0.940,0.944,0.946,0.954,1.1922 }, + 0.941,0.938,0.940,0.944,0.946,0.954 }, {55.60,47.34,15.92,7.810,5.755,3.767,2.760,2.239, 1.985,1.609,1.343,1.188,1.113,1.013,0.960,0.939, - 0.933,0.930,0.933,0.936,0.939,0.949,1.2026 }}; - G4double cpositron[15][23] = { + 0.933,0.930,0.933,0.936,0.939,0.949 }}; + + G4double cpositron[15][22] = { {2.589,2.044,1.658,1.446,1.347,1.217,1.144,1.110, 1.097,1.083,1.080,1.086,1.092,1.108,1.123,1.131, - 1.131,1.126,1.117,1.108,1.103,1.100,0.7235 }, + 1.131,1.126,1.117,1.108,1.103,1.100 }, {3.904,2.794,2.079,1.710,1.543,1.325,1.202,1.145, 1.122,1.096,1.089,1.092,1.098,1.114,1.130,1.137, - 1.138,1.132,1.122,1.113,1.108,1.102,0.7925 }, + 1.138,1.132,1.122,1.113,1.108,1.102 }, {7.970,6.080,4.442,3.398,2.872,2.127,1.672,1.451, 1.357,1.246,1.194,1.179,1.178,1.188,1.201,1.205, - 1.203,1.190,1.173,1.159,1.151,1.145,0.9147 }, + 1.203,1.190,1.173,1.159,1.151,1.145 }, {9.714,7.607,5.747,4.493,3.815,2.777,2.079,1.715, 1.553,1.353,1.253,1.219,1.211,1.214,1.225,1.228, - 1.225,1.210,1.191,1.175,1.166,1.174,0.9700 }, + 1.225,1.210,1.191,1.175,1.166,1.174 }, {17.97,12.95,8.628,6.065,4.849,3.222,2.275,1.820, 1.624,1.382,1.259,1.214,1.202,1.202,1.214,1.219, - 1.217,1.203,1.184,1.169,1.160,1.151,1.0022 }, + 1.217,1.203,1.184,1.169,1.160,1.151 }, {24.83,17.06,10.84,7.355,5.767,3.707,2.546,1.996, 1.759,1.465,1.311,1.252,1.234,1.228,1.238,1.241, - 1.237,1.222,1.201,1.184,1.174,1.159,1.0158 }, + 1.237,1.222,1.201,1.184,1.174,1.159 }, {23.26,17.15,11.52,8.049,6.375,4.114,2.792,2.155, 1.880,1.535,1.353,1.281,1.258,1.247,1.254,1.256, - 1.252,1.234,1.212,1.194,1.183,1.170,1.0284 }, + 1.252,1.234,1.212,1.194,1.183,1.170 }, {22.33,18.01,12.86,9.212,7.336,4.702,3.117,2.348, 2.015,1.602,1.385,1.297,1.268,1.251,1.256,1.258, - 1.254,1.237,1.214,1.195,1.185,1.179,1.0515 }, + 1.254,1.237,1.214,1.195,1.185,1.179 }, {33.91,24.13,15.71,10.80,8.507,5.467,3.692,2.808, 2.407,1.873,1.564,1.425,1.374,1.330,1.324,1.320, - 1.312,1.288,1.258,1.235,1.221,1.205,1.0834 }, + 1.312,1.288,1.258,1.235,1.221,1.205 }, {32.14,24.11,16.30,11.40,9.015,5.782,3.868,2.917, 2.490,1.925,1.596,1.447,1.391,1.342,1.332,1.327, - 1.320,1.294,1.264,1.240,1.226,1.214,1.0937 }, + 1.320,1.294,1.264,1.240,1.226,1.214 }, {29.51,24.07,17.19,12.28,9.766,6.238,4.112,3.066, 2.602,1.995,1.641,1.477,1.414,1.356,1.342,1.336, - 1.328,1.302,1.270,1.245,1.231,1.233,1.1140 }, + 1.328,1.302,1.270,1.245,1.231,1.233 }, {38.19,30.85,21.76,15.35,12.07,7.521,4.812,3.498, 2.926,2.188,1.763,1.563,1.484,1.405,1.382,1.371, - 1.361,1.330,1.294,1.267,1.251,1.239,1.1410 }, + 1.361,1.330,1.294,1.267,1.251,1.239 }, {49.71,39.80,27.96,19.63,15.36,9.407,5.863,4.155, 3.417,2.478,1.944,1.692,1.589,1.480,1.441,1.423, - 1.409,1.372,1.330,1.298,1.280,1.258,1.1750 }, + 1.409,1.372,1.330,1.298,1.280,1.258 }, {59.25,45.08,30.36,20.83,16.15,9.834,6.166,4.407, 3.641,2.648,2.064,1.779,1.661,1.531,1.482,1.459, - 1.442,1.400,1.354,1.319,1.299,1.272,1.1922 }, + 1.442,1.400,1.354,1.319,1.299,1.272 }, {56.38,44.29,30.50,21.18,16.51,10.11,6.354,4.542, 3.752,2.724,2.116,1.817,1.692,1.554,1.499,1.474, - 1.456,1.412,1.364,1.328,1.307,1.282,1.2026 }}; + 1.456,1.412,1.364,1.328,1.307,1.282 }}; + + //data/corrections for T > Tlim + G4double Tlim = 10.*MeV; + G4double beta2lim = Tlim*(Tlim+2.*electron_mass_c2)/ + ((Tlim+electron_mass_c2)*(Tlim+electron_mass_c2)); + G4double bg2lim = Tlim*(Tlim+2.*electron_mass_c2)/ + (electron_mass_c2*electron_mass_c2); + + G4double sig0[15] = {0.2672*barn, 0.5922*barn, 2.653*barn, 6.235*barn, + 11.69*barn , 13.24*barn , 16.12*barn, 23.00*barn , + 35.13*barn , 39.95*barn , 50.85*barn, 67.19*barn , + 91.15*barn , 104.4*barn , 113.1*barn}; + + G4double hecorr[15] = {120.70, 117.50, 105.00, 92.92, 79.23, 74.510, 68.29, + 57.39, 41.97, 36.14, 24.53, 10.21, -7.855, -16.84, + -22.30}; G4double sigma; if (part != particle ) { @@ -329,31 +346,9 @@ G4double G4MscModel::ComputeTransportCrossSection( sigma *= ChargeSquare*AtomicNumber*AtomicNumber/(beta2*bg2); - // nuclear size effect correction for high energy - // ( a simple approximation at present) - G4double corrnuclsize,a,w1,w2,w; + // interpolate in AtomicNumber and beta2 + G4double c1,c2,cc1,cc2,corr; - G4double x0 = 1. - NuclCorrPar*mass/(KineticEnergy* - exp(log(AtomicWeight/(g/mole))/3.)); - if ( x0 < -1. || eKineticEnergy <= 10.*MeV) - { - x0 = -1.; - corrnuclsize = 1.; - } - else - { - a = 1.+1./eps; - if (eps > epsmax) w1=log(2.*eps)+1./eps-3./(8.*eps*eps); - else w1=log((a+1.)/(a-1.))-2./(a+1.); - w = 1./((1.-x0)*eps); - if (w < epsmin) w2=-log(w)-1.+2.*w-1.5*w*w; - else w2 = log((a-x0)/(a-1.))-(1.-x0)/(a-x0); - corrnuclsize = w1/w2; - corrnuclsize = exp(-FactPar*mass/KineticEnergy)* - (corrnuclsize-1.)+1.; - } - - // interpolate in AtomicNumber and beta2 // get bin number in Z G4int iZ = 14; while ((iZ>=0)&&(Zdat[iZ]>=AtomicNumber)) iZ -= 1; @@ -362,22 +357,26 @@ G4double G4MscModel::ComputeTransportCrossSection( G4double Z1 = Zdat[iZ]; G4double Z2 = Zdat[iZ+1]; - G4double ratZ = (AtomicNumber-Z1)/(Z2-Z1); + G4double ratZ = (AtomicNumber-Z1)*(AtomicNumber+Z1)/ + ((Z2-Z1)*(Z2+Z1)); - // get bin number in T (beta2) - G4int iT = 22; - while ((iT>=0)&&(Tdat[iT]>=eKineticEnergy)) iT -= 1; - if(iT==22) iT = 21; - if(iT==-1) iT = 0 ; + if(eKineticEnergy <= Tlim) + { + // get bin number in T (beta2) + G4int iT = 21; + while ((iT>=0)&&(Tdat[iT]>=eKineticEnergy)) iT -= 1; + if(iT==21) iT = 20; + if(iT==-1) iT = 0 ; - // calculate betasquare values - G4double T = Tdat[iT], E = T + electron_mass_c2; - G4double b2small = T*(E+electron_mass_c2)/(E*E); - T = Tdat[iT+1]; E = T + electron_mass_c2; - G4double b2big = T*(E+electron_mass_c2)/(E*E); - G4double ratb2 = (beta2-b2small)/(b2big-b2small); - G4double c1,c2,cc1,cc2,corr; - if (charge < 0.) + // calculate betasquare values + G4double T = Tdat[iT], E = T + electron_mass_c2; + G4double b2small = T*(E+electron_mass_c2)/(E*E); + + T = Tdat[iT+1]; E = T + electron_mass_c2; + G4double b2big = T*(E+electron_mass_c2)/(E*E); + G4double ratb2 = (beta2-b2small)/(b2big-b2small); + + if (charge < 0.) { c1 = celectron[iZ][iT]; c2 = celectron[iZ+1][iT]; @@ -388,10 +387,10 @@ G4double G4MscModel::ComputeTransportCrossSection( cc2 = c1+ratZ*(c2-c1); corr = cc1+ratb2*(cc2-cc1); - sigma /= corr; - } - if (charge > 0.) + sigma *= sigmafactor/corr; + } + else { c1 = cpositron[iZ][iT]; c2 = cpositron[iZ+1][iT]; @@ -402,19 +401,27 @@ G4double G4MscModel::ComputeTransportCrossSection( cc2 = c1+ratZ*(c2-c1); corr = cc1+ratb2*(cc2-cc1); - sigma /= corr; - } - // nucl. size correction for particles other than e+/e- only at present !!!! - if((particle->GetParticleName() != "e-") && - (particle->GetParticleName() != "e+") ) - sigma /= corrnuclsize; + sigma *= sigmafactor/corr; + } + } + else + { + c1 = bg2lim*sig0[iZ]*(1.+hecorr[iZ]*(beta2-beta2lim))/bg2; + c2 = bg2lim*sig0[iZ+1]*(1.+hecorr[iZ+1]*(beta2-beta2lim))/bg2; + if((AtomicNumber >= Z1) && (AtomicNumber <= Z2)) + sigma = c1+ratZ*(c2-c1) ; + else if(AtomicNumber < Z1) + sigma = AtomicNumber*AtomicNumber*c1/(Z1*Z1); + else if(AtomicNumber > Z2) + sigma = AtomicNumber*AtomicNumber*c2/(Z2*Z2); + } return sigma; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4MscModel::GeomPathLength( G4PhysicsTable* theLambdaTable, @@ -437,9 +444,11 @@ G4double G4MscModel::GeomPathLength( currentRadLength = couple->GetMaterial()->GetRadlen(); lambda0 = lambda; + lambdaeff = lambda0; par1 = -1. ; par2 = par3 = 0. ; tPathLength = truePathLength; + zPathLength = tPathLength; // this correction needed to run MSC with eIoni and eBrem inactivated // and makes no harm for a normal run @@ -448,7 +457,7 @@ G4double G4MscModel::GeomPathLength( G4double tau = tPathLength/lambda0 ; - if (tau <= tausmall) return tPathLength; + if ((tau <= tausmall) || (tPathLength < stepmin)) return tPathLength; G4double zmean = tPathLength; if (tPathLength < range*dtrl) { @@ -476,7 +485,7 @@ G4double G4MscModel::GeomPathLength( } // sample z - G4double zPathLength = zmean ; + zPathLength = zmean ; G4double zt = zmean/tPathLength ; if (tPathLength >= stepmin && samplez && zt > 0.5 && zt < ztmax) { @@ -494,13 +503,13 @@ G4double G4MscModel::GeomPathLength( return zPathLength ; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4MscModel::TrueStepLength(G4double geomStepLength) { G4double trueLength = geomStepLength; - trueLength = geomStepLength; - if(geomStepLength > lambda0*tausmall) + zPathLength = geomStepLength; + if((geomStepLength > lambda0*tausmall) && (geomStepLength >= stepmin)) { if(par1 < 0.) trueLength = -lambda0*log(1.-geomStepLength/lambda0) ; @@ -517,10 +526,12 @@ G4double G4MscModel::TrueStepLength(G4double geomStepLength) if(trueLength > currentRange) trueLength = currentRange ; if(trueLength < geomStepLength) trueLength = geomStepLength; + tPathLength = trueLength; + return trueLength; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... std::vector* G4MscModel::SampleSecondaries( const G4MaterialCutsCouple*, @@ -550,33 +561,69 @@ std::vector* G4MscModel::SampleSecondaries( << G4endl; */ - if (latDisplasment && safety > 0.0) { + if (latDisplasment) { G4double r = SampleDisplacement(); - if (r > safety) r = safety; + if(r > 0.) + { + G4double latcorr = LatCorrelation(); + if(latcorr > r) latcorr = r; - // sample direction of lateral displacement - G4double phi = twopi*G4UniformRand(); - G4double dirx = std::cos(phi); - G4double diry = std::sin(phi); + // sample direction of lateral displacement + // compute it from the lateral correlation + G4double Phi = 0.; + if(std::abs(r*sth) < latcorr) + Phi = twopi*G4UniformRand(); + else + Phi = phi-std::acos(latcorr/(r*sth)); + if(Phi < 0.) Phi += twopi; - G4ThreeVector newPosition(dirx,diry,0.0); - newPosition.rotateUz(oldDirection); + dirx = std::cos(Phi); + diry = std::sin(Phi); - // compute new endpoint of the Step - newPosition *= r; - newPosition += *(fParticleChange->GetProposedPosition()); + G4ThreeVector latDirection(dirx,diry,0.0); + latDirection.rotateUz(oldDirection); - navigator->LocateGlobalPointWithinVolume(newPosition); + G4ThreeVector Position = *(fParticleChange->GetProposedPosition()); + G4double fac = 0.; + if(r < safety) + { + //normal case, no need to check safety + fac = 1.; + } + else + { + // ******* we do not have track info at this level *********** + // ******* so navigator is called at boundary too ************ + navigator->LocateGlobalPointWithinVolume(Position); + const G4double cstep = safety ; + G4double newsafety = safety; + phi = navigator->ComputeStep(Position,latDirection, + cstep,newsafety); + if(r < newsafety) + fac = 1.; + else + fac = newsafety/r ; + } + + if(fac > 0.) + { + // compute new endpoint of the Step + G4ThreeVector newPosition = Position+fac*r*latDirection; - fParticleChange->ProposePosition(newPosition); + navigator->LocateGlobalPointWithinVolume(newPosition); + + fParticleChange->ProposePosition(newPosition); + } + } } return 0; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4MscModel::SampleCosineTheta(G4double trueStepLength, G4double KineticEnergy) +G4double G4MscModel::SampleCosineTheta(G4double trueStepLength, + G4double KineticEnergy) { G4double cth = 1. ; G4double tau = trueStepLength/lambda0 ; @@ -588,9 +635,10 @@ G4double G4MscModel::SampleCosineTheta(G4double trueStepLength, G4double Kinetic tau = taubig ; currentTau = tau ; + lambdaeff = trueStepLength/currentTau; if(trueStepLength < stepmin) - cth = exp(-tau) ; + cth = exp(-currentTau) ; else { if (tau >= taubig) cth = -1.+2.*G4UniformRand(); @@ -607,7 +655,7 @@ G4double G4MscModel::SampleCosineTheta(G4double trueStepLength, G4double Kinetic G4double xx0 = trueStepLength/currentRadLength; G4double betacp = sqrt(currentKinEnergy*(currentKinEnergy+2.*mass)* KineticEnergy*(KineticEnergy+2.*mass)/ - ((currentKinEnergy+mass)*(KineticEnergy+mass))) ; + ((currentKinEnergy+mass)*(KineticEnergy+mass))); G4double theta0 = c_highland*Q*exp(corr_highland*log(xx0))/betacp ; if(theta0 > taulim) a = 0.5/(1.-cos(theta0)) ; @@ -715,7 +763,7 @@ G4double G4MscModel::SampleCosineTheta(G4double trueStepLength, G4double Kinetic return cth ; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4MscModel::SampleDisplacement() { @@ -723,9 +771,10 @@ G4double G4MscModel::SampleDisplacement() const G4double kappapl1 = kappa+1.; const G4double kappami1 = kappa-1.; G4double rmean = 0.0; - if (currentTau >= tausmall) { + if ((currentTau >= tausmall) && (tPathLength > stepmin)) { if (currentTau < taulim) { - rmean = kappa*currentTau*currentTau*currentTau*(1.-kappapl1*currentTau*0.25)/6. ; + rmean = kappa*currentTau*currentTau*currentTau* + (1.-kappapl1*currentTau*0.25)/6. ; } else { G4double etau = 0.0; @@ -734,13 +783,45 @@ G4double G4MscModel::SampleDisplacement() rmean = -exp(rmean)/(kappa*kappami1); rmean += currentTau-kappapl1/kappa+kappa*etau/kappami1; } - if (rmean>0.) rmean = 2.*lambda0*sqrt(rmean/3.0); + if (rmean>0.) rmean = 2.*lambdaeff*sqrt(rmean/3.0); else rmean = 0.; + + // check: z*z+r*r <= t*t should be satisfied + if(rmean*rmean > (tPathLength-zPathLength)*(tPathLength+zPathLength)) + rmean = sqrt((tPathLength-zPathLength)*(tPathLength+zPathLength)); } return rmean; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MscModel::LatCorrelation() +{ + const G4double kappa = 2.5; + const G4double kappami1 = kappa-1.; + + G4double latcorr = 0.; + if((currentTau >= tausmall) && (tPathLength > stepmin)) + { + if(currentTau < taulim) + latcorr = lambdaeff*kappa*currentTau*currentTau* + (1.-(kappa+1.)*currentTau/3.)/3.; + else + { + G4double etau = 0.; + if(currentTau < taubig) etau = exp(-currentTau); + latcorr = -kappa*currentTau; + latcorr = exp(latcorr)/kappami1; + latcorr += 1.-kappa*etau/kappami1 ; + latcorr *= 2.*lambdaeff/3. ; + } + } + + return latcorr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/source/processes/electromagnetic/standard/src/G4MscModel71.cc b/source/processes/electromagnetic/standard/src/G4MscModel71.cc new file mode 100644 index 0000000000..1ea4fcfe74 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4MscModel71.cc @@ -0,0 +1,748 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4MscModel71.cc,v 1.1 2005/10/03 01:09:57 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4MscModel71 +// +// Author: Laszlo Urban +// +// Creation date: 03.03.2001 +// +// Modifications: +// +// 27-03-03 Move model part from G4MultipleScattering (V.Ivanchenko) +// 23-05-03 important change in angle distribution for muons/hadrons +// the central part now is similar to the Highland parametrization + +// minor correction in angle sampling algorithm (for all particles) +// (L.Urban) +// 30-05-03 misprint in SampleCosineTheta corrected(L.Urban) +// 27-03-03 Rename (V.Ivanchenko) +// 05-08-03 angle distribution has been modified (L.Urban) +// 06-11-03 precision problems solved for high energy (PeV) particles +// change in the tail of the angular distribution +// highKinEnergy is set to 100 PeV (L.Urban) +// +// 10-11-03 highKinEnergy is set back to 100 TeV, some tail tuning + +// cleaning (L.Urban) +// 26-11-03 correction in TrueStepLength : +// trueLength <= currentRange (L.Urban) +// 01-03-04 signature changed in SampleCosineTheta, +// energy dependence calculations has been simplified, +// 11-03-04 corrections in GeomPathLength,TrueStepLength, +// SampleCosineTheta +// 23-04-04 true -> geom and geom -> true transformation has been +// rewritten, changes in the angular distribution (L.Urban) +// 19-07-04 correction in SampleCosineTheta in order to avoid +// num. precision problems at high energy/small step(L.Urban) +// 17-08-04 changes in the angle distribution (slightly modified +// Highland formula for the width of the central part, +// changes in the numerical values of some other parameters) +// ---> approximately step independent distribution (L.Urban) +// 21-09-04 change in the tail of the angular distribution (L.Urban) +// +// 03-11-04 precision problem for very high energy ions and small stepsize +// solved in SampleCosineTheta (L.Urban). +// 15-04-05 optimize internal interface - add SampleSecondaries method (V.Ivanchenko) +// 03-10-05 Model is freezed with the name McsModel71 (V.Ivanchenko) +// + +// Class Description: +// +// Implementation of the model of multiple scattering based on +// H.W.Lewis Phys Rev 78 (1950) 526 and others + +// ------------------------------------------------------------------- +// + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4MscModel71.hh" +#include "Randomize.hh" +#include "G4Electron.hh" +#include "G4LossTableManager.hh" +#include "G4PhysicsTable.hh" +#include "G4ParticleChangeForMSC.hh" +#include "G4TransportationManager.hh" +#include "G4Navigator.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +using namespace std; + +G4MscModel71::G4MscModel71(G4double& m_dtrl, G4double& m_NuclCorrPar, + G4double& m_FactPar, G4double& m_factail, + G4bool& m_samplez, const G4String& nam) + : G4VEmModel(nam), + taubig(8.0), + tausmall(1.e-20), + taulim(1.e-6), + dtrl(m_dtrl), + NuclCorrPar (m_NuclCorrPar), + FactPar(m_FactPar), + factail(m_factail), + samplez(m_samplez), + isInitialized(false) +{ + stepmin = 1.e-6*mm; + currentRange = 0. ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4MscModel71::~G4MscModel71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MscModel71::Initialise(const G4ParticleDefinition* p, + const G4DataVector&) +{ + if(isInitialized) return; + // set values of some data members + sigmafactor = twopi*classic_electr_radius*classic_electr_radius; + particle = p; + mass = particle->GetPDGMass(); + charge = particle->GetPDGCharge()/eplus; + b = 1. ; + xsi = 3.00 ; + + if(pParticleChange) + fParticleChange = reinterpret_cast(pParticleChange); + else + fParticleChange = new G4ParticleChangeForMSC(); + + navigator = G4TransportationManager::GetTransportationManager() + ->GetNavigatorForTracking(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MscModel71::CrossSectionPerVolume(const G4Material* material, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double, + G4double) +{ + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); + G4int NumberOfElements = material->GetNumberOfElements(); + + // loop for element in the material + G4double sigma = 0.0; + + for (G4int iel=0; ielGetZ(); + G4double atomicWeight = (*theElementVector)[iel]->GetA(); + sigma += NbOfAtomsPerVolume[iel]*ComputeTransportCrossSection(p, + kineticEnergy,atomicNumber,atomicWeight); + } + sigma *= sigmafactor; + // Calculate lambda + if ( sigma > 0.0) sigma = 1.0/sigma; + else sigma = DBL_MAX; + + return sigma; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MscModel71::ComputeTransportCrossSection( + const G4ParticleDefinition* part, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicWeight) +{ + const G4double epsfactor = 2.*electron_mass_c2*electron_mass_c2* + Bohr_radius*Bohr_radius/(hbarc*hbarc); + const G4double epsmin = 1.e-4 , epsmax = 1.e10; + + const G4double Zdat[15] = { 4., 6.,13.,20.,26.,29.,32.,38.,47., + 50.,56.,64.,74.,79.,82. }; + + const G4double Tdat[23] = {0.0001*MeV,0.0002*MeV,0.0004*MeV,0.0007*MeV, + 0.001*MeV,0.002*MeV,0.004*MeV,0.007*MeV, + 0.01*MeV,0.02*MeV,0.04*MeV,0.07*MeV, + 0.1*MeV,0.2*MeV,0.4*MeV,0.7*MeV, + 1.*MeV,2.*MeV,4.*MeV,7.*MeV,10.*MeV,20.*MeV, + 10000.0*MeV}; + + // corr. factors for e-/e+ lambda + G4double celectron[15][23] = + {{1.125,1.072,1.051,1.047,1.047,1.050,1.052,1.054, + 1.054,1.057,1.062,1.069,1.075,1.090,1.105,1.111, + 1.112,1.108,1.100,1.093,1.089,1.087,0.7235 }, + {1.408,1.246,1.143,1.096,1.077,1.059,1.053,1.051, + 1.052,1.053,1.058,1.065,1.072,1.087,1.101,1.108, + 1.109,1.105,1.097,1.090,1.086,1.082,0.7925 }, + {2.833,2.268,1.861,1.612,1.486,1.309,1.204,1.156, + 1.136,1.114,1.106,1.106,1.109,1.119,1.129,1.132, + 1.131,1.124,1.113,1.104,1.099,1.098,0.9147 }, + {3.879,3.016,2.380,2.007,1.818,1.535,1.340,1.236, + 1.190,1.133,1.107,1.099,1.098,1.103,1.110,1.113, + 1.112,1.105,1.096,1.089,1.085,1.098,0.9700 }, + {6.937,4.330,2.886,2.256,1.987,1.628,1.395,1.265, + 1.203,1.122,1.080,1.065,1.061,1.063,1.070,1.073, + 1.073,1.070,1.064,1.059,1.056,1.056,1.0022 }, + {9.616,5.708,3.424,2.551,2.204,1.762,1.485,1.330, + 1.256,1.155,1.099,1.077,1.070,1.068,1.072,1.074, + 1.074,1.070,1.063,1.059,1.056,1.052,1.0158 }, + {11.72,6.364,3.811,2.806,2.401,1.884,1.564,1.386, + 1.300,1.180,1.112,1.082,1.073,1.066,1.068,1.069, + 1.068,1.064,1.059,1.054,1.051,1.050,1.0284 }, + {18.08,8.601,4.569,3.183,2.662,2.025,1.646,1.439, + 1.339,1.195,1.108,1.068,1.053,1.040,1.039,1.039, + 1.039,1.037,1.034,1.031,1.030,1.036,1.0515 }, + {18.22,10.48,5.333,3.713,3.115,2.367,1.898,1.631, + 1.498,1.301,1.171,1.105,1.077,1.048,1.036,1.033, + 1.031,1.028,1.024,1.022,1.021,1.024,1.0834 }, + {14.14,10.65,5.710,3.929,3.266,2.453,1.951,1.669, + 1.528,1.319,1.178,1.106,1.075,1.040,1.027,1.022, + 1.020,1.017,1.015,1.013,1.013,1.020,1.0937 }, + {14.11,11.73,6.312,4.240,3.478,2.566,2.022,1.720, + 1.569,1.342,1.186,1.102,1.065,1.022,1.003,0.997, + 0.995,0.993,0.993,0.993,0.993,1.011,1.1140 }, + {22.76,20.01,8.835,5.287,4.144,2.901,2.219,1.855, + 1.677,1.410,1.224,1.121,1.073,1.014,0.986,0.976, + 0.974,0.972,0.973,0.974,0.975,0.987,1.1410 }, + {50.77,40.85,14.13,7.184,5.284,3.435,2.520,2.059, + 1.837,1.512,1.283,1.153,1.091,1.010,0.969,0.954, + 0.950,0.947,0.949,0.952,0.954,0.963,1.1750 }, + {65.87,59.06,15.87,7.570,5.567,3.650,2.682,2.182, + 1.939,1.579,1.325,1.178,1.108,1.014,0.965,0.947, + 0.941,0.938,0.940,0.944,0.946,0.954,1.1922 }, + {55.60,47.34,15.92,7.810,5.755,3.767,2.760,2.239, + 1.985,1.609,1.343,1.188,1.113,1.013,0.960,0.939, + 0.933,0.930,0.933,0.936,0.939,0.949,1.2026 }}; + G4double cpositron[15][23] = { + {2.589,2.044,1.658,1.446,1.347,1.217,1.144,1.110, + 1.097,1.083,1.080,1.086,1.092,1.108,1.123,1.131, + 1.131,1.126,1.117,1.108,1.103,1.100,0.7235 }, + {3.904,2.794,2.079,1.710,1.543,1.325,1.202,1.145, + 1.122,1.096,1.089,1.092,1.098,1.114,1.130,1.137, + 1.138,1.132,1.122,1.113,1.108,1.102,0.7925 }, + {7.970,6.080,4.442,3.398,2.872,2.127,1.672,1.451, + 1.357,1.246,1.194,1.179,1.178,1.188,1.201,1.205, + 1.203,1.190,1.173,1.159,1.151,1.145,0.9147 }, + {9.714,7.607,5.747,4.493,3.815,2.777,2.079,1.715, + 1.553,1.353,1.253,1.219,1.211,1.214,1.225,1.228, + 1.225,1.210,1.191,1.175,1.166,1.174,0.9700 }, + {17.97,12.95,8.628,6.065,4.849,3.222,2.275,1.820, + 1.624,1.382,1.259,1.214,1.202,1.202,1.214,1.219, + 1.217,1.203,1.184,1.169,1.160,1.151,1.0022 }, + {24.83,17.06,10.84,7.355,5.767,3.707,2.546,1.996, + 1.759,1.465,1.311,1.252,1.234,1.228,1.238,1.241, + 1.237,1.222,1.201,1.184,1.174,1.159,1.0158 }, + {23.26,17.15,11.52,8.049,6.375,4.114,2.792,2.155, + 1.880,1.535,1.353,1.281,1.258,1.247,1.254,1.256, + 1.252,1.234,1.212,1.194,1.183,1.170,1.0284 }, + {22.33,18.01,12.86,9.212,7.336,4.702,3.117,2.348, + 2.015,1.602,1.385,1.297,1.268,1.251,1.256,1.258, + 1.254,1.237,1.214,1.195,1.185,1.179,1.0515 }, + {33.91,24.13,15.71,10.80,8.507,5.467,3.692,2.808, + 2.407,1.873,1.564,1.425,1.374,1.330,1.324,1.320, + 1.312,1.288,1.258,1.235,1.221,1.205,1.0834 }, + {32.14,24.11,16.30,11.40,9.015,5.782,3.868,2.917, + 2.490,1.925,1.596,1.447,1.391,1.342,1.332,1.327, + 1.320,1.294,1.264,1.240,1.226,1.214,1.0937 }, + {29.51,24.07,17.19,12.28,9.766,6.238,4.112,3.066, + 2.602,1.995,1.641,1.477,1.414,1.356,1.342,1.336, + 1.328,1.302,1.270,1.245,1.231,1.233,1.1140 }, + {38.19,30.85,21.76,15.35,12.07,7.521,4.812,3.498, + 2.926,2.188,1.763,1.563,1.484,1.405,1.382,1.371, + 1.361,1.330,1.294,1.267,1.251,1.239,1.1410 }, + {49.71,39.80,27.96,19.63,15.36,9.407,5.863,4.155, + 3.417,2.478,1.944,1.692,1.589,1.480,1.441,1.423, + 1.409,1.372,1.330,1.298,1.280,1.258,1.1750 }, + {59.25,45.08,30.36,20.83,16.15,9.834,6.166,4.407, + 3.641,2.648,2.064,1.779,1.661,1.531,1.482,1.459, + 1.442,1.400,1.354,1.319,1.299,1.272,1.1922 }, + {56.38,44.29,30.50,21.18,16.51,10.11,6.354,4.542, + 3.752,2.724,2.116,1.817,1.692,1.554,1.499,1.474, + 1.456,1.412,1.364,1.328,1.307,1.282,1.2026 }}; + + G4double sigma; + if (part != particle ) { + particle = part; + mass = particle->GetPDGMass(); + charge = particle->GetPDGCharge()/eplus; + } + + G4double Z23 = 2.*log(AtomicNumber)/3.; Z23 = exp(Z23); + + // correction if particle .ne. e-/e+ + // compute equivalent kinetic energy + // lambda depends on p*beta .... + + G4double eKineticEnergy = KineticEnergy; + + if((particle->GetParticleName() != "e-") && + (particle->GetParticleName() != "e+") ) + { + G4double TAU = KineticEnergy/mass ; + G4double c = mass*TAU*(TAU+2.)/(electron_mass_c2*(TAU+1.)) ; + G4double w = c-2. ; + G4double tau = 0.5*(w+sqrt(w*w+4.*c)) ; + eKineticEnergy = electron_mass_c2*tau ; + } + + G4double ChargeSquare = charge*charge; + + G4double eTotalEnergy = eKineticEnergy + electron_mass_c2 ; + G4double beta2 = eKineticEnergy*(eTotalEnergy+electron_mass_c2) + /(eTotalEnergy*eTotalEnergy); + G4double bg2 = eKineticEnergy*(eTotalEnergy+electron_mass_c2) + /(electron_mass_c2*electron_mass_c2); + + G4double eps = epsfactor*bg2/Z23; + + if (eps epsmax) w1=log(2.*eps)+1./eps-3./(8.*eps*eps); + else w1=log((a+1.)/(a-1.))-2./(a+1.); + w = 1./((1.-x0)*eps); + if (w < epsmin) w2=-log(w)-1.+2.*w-1.5*w*w; + else w2 = log((a-x0)/(a-1.))-(1.-x0)/(a-x0); + corrnuclsize = w1/w2; + corrnuclsize = exp(-FactPar*mass/KineticEnergy)* + (corrnuclsize-1.)+1.; + } + + // interpolate in AtomicNumber and beta2 + // get bin number in Z + G4int iZ = 14; + while ((iZ>=0)&&(Zdat[iZ]>=AtomicNumber)) iZ -= 1; + if (iZ==14) iZ = 13; + if (iZ==-1) iZ = 0 ; + + G4double Z1 = Zdat[iZ]; + G4double Z2 = Zdat[iZ+1]; + G4double ratZ = (AtomicNumber-Z1)/(Z2-Z1); + + // get bin number in T (beta2) + G4int iT = 22; + while ((iT>=0)&&(Tdat[iT]>=eKineticEnergy)) iT -= 1; + if(iT==22) iT = 21; + if(iT==-1) iT = 0 ; + + // calculate betasquare values + G4double T = Tdat[iT], E = T + electron_mass_c2; + G4double b2small = T*(E+electron_mass_c2)/(E*E); + T = Tdat[iT+1]; E = T + electron_mass_c2; + G4double b2big = T*(E+electron_mass_c2)/(E*E); + G4double ratb2 = (beta2-b2small)/(b2big-b2small); + G4double c1,c2,cc1,cc2,corr; + if (charge < 0.) + { + c1 = celectron[iZ][iT]; + c2 = celectron[iZ+1][iT]; + cc1 = c1+ratZ*(c2-c1); + + c1 = celectron[iZ][iT+1]; + c2 = celectron[iZ+1][iT+1]; + cc2 = c1+ratZ*(c2-c1); + + corr = cc1+ratb2*(cc2-cc1); + sigma /= corr; + } + + if (charge > 0.) + { + c1 = cpositron[iZ][iT]; + c2 = cpositron[iZ+1][iT]; + cc1 = c1+ratZ*(c2-c1); + + c1 = cpositron[iZ][iT+1]; + c2 = cpositron[iZ+1][iT+1]; + cc2 = c1+ratZ*(c2-c1); + + corr = cc1+ratb2*(cc2-cc1); + sigma /= corr; + } + + // nucl. size correction for particles other than e+/e- only at present !!!! + if((particle->GetParticleName() != "e-") && + (particle->GetParticleName() != "e+") ) + sigma /= corrnuclsize; + + return sigma; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MscModel71::GeomPathLength( + G4PhysicsTable* theLambdaTable, + const G4MaterialCutsCouple* couple, + const G4ParticleDefinition* theParticle, + G4double& T0, + G4double lambda, + G4double range, + G4double truePathLength) +{ + // do the true -> geom transformation + const G4double ztmax = 101./103. ; + if (theParticle != particle ) { + particle = theParticle; + mass = particle->GetPDGMass(); + charge = particle->GetPDGCharge()/eplus; + } + currentKinEnergy = T0; + currentRange = range ; + currentRadLength = couple->GetMaterial()->GetRadlen(); + + lambda0 = lambda; + par1 = -1. ; + par2 = par3 = 0. ; + tPathLength = truePathLength; + + // this correction needed to run MSC with eIoni and eBrem inactivated + // and makes no harm for a normal run + if(tPathLength > range) + tPathLength = range ; + + G4double tau = tPathLength/lambda0 ; + + if (tau <= tausmall) return tPathLength; + + G4double zmean = tPathLength; + if (tPathLength < range*dtrl) { + zmean = lambda0*(1.-exp(-tau)); + if(tau < taulim) zmean = tPathLength*(1.-0.5*tPathLength/lambda0) ; + } else if(T0 < mass) { + par1 = 1./range ; + par2 = 1./(par1*lambda0) ; + par3 = 1.+par2 ; + zmean = (1.-exp(par3*log(1.-tPathLength/range)))/(par1*par3) ; + } else { + G4LossTableManager* theManager = G4LossTableManager::Instance(); + G4double T1 = theManager->GetEnergy(particle,range-tPathLength,couple); + G4double lambda1 ; + if (theLambdaTable) { + G4bool bb; + lambda1 = ((*theLambdaTable)[couple->GetIndex()])->GetValue(T1,bb); + } else { + lambda1 = CrossSection(couple,particle,T1,0.0,1.0); + } + par1 = (lambda0-lambda1)/(lambda0*tPathLength) ; + par2 = 1./(par1*lambda0) ; + par3 = 1.+par2 ; + zmean = (1.-exp(par3*log(lambda1/lambda0)))/(par1*par3) ; + } + + // sample z + G4double zPathLength = zmean ; + G4double zt = zmean/tPathLength ; + if (tPathLength >= stepmin && samplez && zt > 0.5 && zt < ztmax) + { + G4double cz = 0.5*(3.*zt-1.)/(1.-zt) ; + G4double cz1 = 1.+cz ; + G4double u0 = cz/cz1 ; + G4double u,grej ; + do { + u = exp(log(G4UniformRand())/cz1) ; + grej = exp(cz*log(u/u0))*(1.-u)/(1.-u0) ; + } while (grej < G4UniformRand()) ; + zPathLength = tPathLength*u ; + } + + return zPathLength ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MscModel71::TrueStepLength(G4double geomStepLength) +{ + G4double trueLength = geomStepLength; + trueLength = geomStepLength; + if(geomStepLength > lambda0*tausmall) + { + if(par1 < 0.) + trueLength = -lambda0*log(1.-geomStepLength/lambda0) ; + else + { + if(par1*par3*geomStepLength < 1.) + trueLength = (1.-exp(log(1.-par1*par3*geomStepLength)/par3))/par1 ; + else + trueLength = currentRange ; + } + } + + if(trueLength > tPathLength) trueLength = tPathLength; + if(trueLength > currentRange) trueLength = currentRange ; + if(trueLength < geomStepLength) trueLength = geomStepLength; + + return trueLength; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +std::vector* G4MscModel71::SampleSecondaries( + const G4MaterialCutsCouple*, + const G4DynamicParticle* dynParticle, + G4double truestep, + G4double safety) +{ + G4double kineticEnergy = dynParticle->GetKineticEnergy(); + if(kineticEnergy <= 0.0) return 0; + + G4double cth = SampleCosineTheta(truestep,kineticEnergy); + G4double sth = sqrt((1.0 - cth)*(1.0 + cth)); + G4double phi = twopi*G4UniformRand(); + G4double dirx = sth*cos(phi); + G4double diry = sth*sin(phi); + + G4ThreeVector oldDirection = dynParticle->GetMomentumDirection(); + G4ThreeVector newDirection(dirx,diry,cth); + newDirection.rotateUz(oldDirection); + fParticleChange->ProposeMomentumDirection(newDirection); + + /* + const G4ParticleDefinition* pd = dynParticle->GetDefinition(); + G4cout << "G4MscModel71: Sample secondary; E(MeV)= " << kineticEnergy/MeV + << " MeV; step(mm)= " << truestep/mm + << ", safety(mm)= " << safety/mm << " " << pd->GetParticleName() + << G4endl; + */ + + if (latDisplasment && safety > 0.0) { + + G4double r = SampleDisplacement(); + if (r > safety) r = safety; + + // sample direction of lateral displacement + G4double phi = twopi*G4UniformRand(); + G4double dirx = std::cos(phi); + G4double diry = std::sin(phi); + + G4ThreeVector newPosition(dirx,diry,0.0); + newPosition.rotateUz(oldDirection); + + // compute new endpoint of the Step + newPosition *= r; + newPosition += *(fParticleChange->GetProposedPosition()); + + navigator->LocateGlobalPointWithinVolume(newPosition); + + fParticleChange->ProposePosition(newPosition); + } + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MscModel71::SampleCosineTheta(G4double trueStepLength, G4double KineticEnergy) +{ + G4double cth = 1. ; + G4double tau = trueStepLength/lambda0 ; + + if(trueStepLength >= currentRange*dtrl) + if(par1*trueStepLength < 1.) + tau = -par2*log(1.-par1*trueStepLength) ; + else + tau = taubig ; + + currentTau = tau ; + + if(trueStepLength < stepmin) + cth = exp(-tau) ; + else + { + if (tau >= taubig) cth = -1.+2.*G4UniformRand(); + else if (tau >= tausmall) + { + G4double a ; + + // for all particles take the width of the central part + // from a parametrization similar to the Highland formula + // ( Highland formula: Particle Physics Booklet, July 2002, eq. 26.10) + // here : theta0 = 13.6*MeV*Q*(t/X0)**0.555/(beta*cp) + const G4double c_highland = 13.6*MeV, corr_highland=0.555 ; + G4double Q = std::abs(charge) ; + G4double xx0 = trueStepLength/currentRadLength; + G4double betacp = sqrt(currentKinEnergy*(currentKinEnergy+2.*mass)* + KineticEnergy*(KineticEnergy+2.*mass)/ + ((currentKinEnergy+mass)*(KineticEnergy+mass))) ; + G4double theta0 = c_highland*Q*exp(corr_highland*log(xx0))/betacp ; + + if(theta0 > taulim) a = 0.5/(1.-cos(theta0)) ; + else a = 1.0/(theta0*theta0) ; + + G4double xmeanth = exp(-tau); + G4double xmeanth1 = 1.-xmeanth ; + if(currentTau < taulim) xmeanth1 = tau ; + + const G4double x1fac1 = exp(-xsi) ; + const G4double x1fac2 = (1.-(1.+xsi)*x1fac1)/(1.-x1fac1) ; + const G4double x1fac3 = 1.3 ; + + G4double ea,eaa,xmean1 ; + G4double c = 2.,b1 = 2., bx = 2., + eb1 = b1, ebx = b1, xmean2 = 0. ; + G4double prob = 1., qprob ; + G4double x0 = 1.-xsi/a; + G4double oneminusx0=xsi/a ; + G4double oneplusx0=2.+xsi/a ; + + G4double f1x0=1., f2x0=1. ; + const G4double tau0 = 0.10 ; + if(tau > tau0) + { + // 1 model function + a = 1./xmeanth1 ; + ea = exp(-2.*a) ; + eaa= 1.-ea ; + xmean1 = 1.-1./a+2.*ea/eaa ; + prob = 1. ; + qprob = 1. ; + } + else if (x0 <= -1.) + { + // 2 model fuctions only + // in order to have xmean1 > xmeanth -> qprob < 1 + x0 = -1.; + + if( a < 1./xmeanth1) + a = 1./xmeanth1 ; + + oneminusx0 = 1.-x0 ; + oneplusx0 = 1.+x0 ; + ea = exp(-a*oneminusx0); + eaa = 1.-ea ; + xmean1 = 1.-1./a+oneminusx0*ea/eaa ; + qprob = xmeanth/xmean1 ; + + } + else + { + // 3 model fuctions + // in order to have xmean1 > xmeanth + if((1.-x1fac2/a) < xmeanth) + { + a = x1fac3*x1fac2/xmeanth1 ; + x0 = 1.-xsi/a ; + oneminusx0=xsi/a ; + oneplusx0=2.-xsi/a ; + } + + ea = x1fac1 ; + eaa = 1.-ea ; + xmean1 = 1.-x1fac2/a ; + + const G4double fctail = factail*1.0 ; + c = 2.+fctail*tau ; + G4double c1 = c-1. ; + G4double c2 = c-2. ; + if(c2 == 0.) c2 = fctail*tausmall ; + + b = 1.+(c-xsi)/a ; + + b1 = b+1. ; + bx = c/a ; + eb1=exp((c1)*log(b1)) ; + ebx=exp((c1)*log(bx)) ; + xmean2 = (x0*eb1+ebx-(eb1*bx-b1*ebx)/c2)/(eb1-ebx) ; + + f1x0 = a*ea/eaa ; + f2x0 = c1*eb1*ebx/(eb1-ebx)/ + exp(c*log(bx)) ; + // from continuity at x=x0 + prob = f2x0/(f1x0+f2x0) ; + // from xmean = xmeanth + qprob = (f1x0+f2x0)*xmeanth/(f2x0*xmean1+f1x0*xmean2) ; + + } + + // sampling of costheta + if (G4UniformRand() < qprob) + { + if (G4UniformRand() < prob) + cth = 1.+log(ea+G4UniformRand()*eaa)/a ; + else + cth = b-b1*bx/exp(log(ebx-G4UniformRand()*(ebx-eb1))/(c-1.)) ; + } + else + { + cth = -1.+2.*G4UniformRand(); + } + } + } + + return cth ; +} +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4MscModel71::SampleDisplacement() +{ + const G4double kappa = 2.5; + const G4double kappapl1 = kappa+1.; + const G4double kappami1 = kappa-1.; + G4double rmean = 0.0; + if (currentTau >= tausmall) { + if (currentTau < taulim) { + rmean = kappa*currentTau*currentTau*currentTau*(1.-kappapl1*currentTau*0.25)/6. ; + + } else { + G4double etau = 0.0; + if (currentTau0.) rmean = 2.*lambda0*sqrt(rmean/3.0); + else rmean = 0.; + } + return rmean; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + diff --git a/source/processes/electromagnetic/standard/src/G4MultipleScattering.cc b/source/processes/electromagnetic/standard/src/G4MultipleScattering.cc index b9a2a8369d..74aaefcc18 100644 --- a/source/processes/electromagnetic/standard/src/G4MultipleScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4MultipleScattering.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MultipleScattering.cc,v 1.27 2005/04/15 14:41:13 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4MultipleScattering.cc,v 1.45 2005/12/11 08:34:18 urban Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- // 16/05/01 value of cparm changed , L.Urban @@ -41,7 +41,7 @@ // 27-09-01 value of data member factlim changed, L.Urban // 31-10-01 big fixed in PostStepDoIt,L.Urban // 17-04-02 NEW angle distribution + boundary algorithm modified, L.Urban -// 22-04-02 boundary algorithm modified -> important improvement in timing (L.Urban) +// 22-04-02 boundary algorithm modified -> important improvement in timing // 24-04-02 some minor changes in boundary algorithm, L.Urban // 06-05-02 bug fixed in GetContinuousStepLimit, L.Urban // 24-05-02 changes in angle distribution and boundary algorithm, L.Urban @@ -65,6 +65,31 @@ // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) // 07-02-05 correction in order to have a working Setsamplez function (L.Urban) // 15-04-05 optimize internal interface (V.Ivanchenko) +// 12-09-05 new TruePathLengthLimit - facrange works for every track from +// start, geometry also influences the limit +// 02-10-05 conditions limiting the step are finalized + code cleaning (L.Urban) +// 03-10-05 weaker step limitation for Tkin > Tlimit (L.Urban) +// 05-10-05 value of data member tlimitmin has been changed (L.Urban) +// 06-10-05 correction in TruePathLengthLimit, timing improved.(L.Urban) +// 07-10-05 bug fixed in TruePathLengthLimit (L.Urban) +// 11-10-05 change in TruePathLengthLimit conditions,slightly better +// timing and much weaker cut dependence (L.Urban) +// 13-10-05 move SetFacrange(0.02) from InitialiseProcess to constructor +// 23-10-05 new Boolean data member prec (false ~ 7.1 like, true new step +// limit in TruePathLengthLimit, L.Urban) +// 25-10-05 prec renamed to steppingAlgorithm, set function triggers +// 'default' facrange too, true - 0.02, false - 0.2 (L.Urban) +// 26-10-05 the above is put in the function MscStepLimitation() (mma) +// 05-11-05 tlimitmin = facrange*rungecut (instead of a fixed value)L.Urban +// 13-11-05 some code cleaning, slightly better timing (L.Urban) +// 01-12-05 add control on verbosity in SetMscStepLimitation +// 06-12-05 tlimitmin = facrange*rangecut(e-) for every particle +// 07-12-05 volume name World removed, rangecut computed using index +// instead of particle name L.Urban +// 08-12-05 world is now: navigator->GetWorldVolume() L.Urban +// 11-12-05 data member rangecut removed, steplimit does not depend +// on cut any more (L.Urban) +// // ----------------------------------------------------------------------------- // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -72,35 +97,42 @@ #include "G4MultipleScattering.hh" #include "G4MscModel.hh" +#include "G4TransportationManager.hh" +#include "G4Navigator.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... using namespace std; G4MultipleScattering::G4MultipleScattering(const G4String& processName) - : G4VMultipleScattering(processName), - totBins(120), - facrange(0.199), - dtrl(0.05), - NuclCorrPar (0.0615), - FactPar(0.40), - factail(1.0), - cf(1.001), - stepnolastmsc(-1000000), - nsmallstep(5), - samplez(true), - boundary(true), - isInitialized(false) + : G4VMultipleScattering(processName) { - lowKineticEnergy = 0.1*keV; - highKineticEnergy= 100.*TeV; + lowKineticEnergy = 0.1*keV; + highKineticEnergy = 100.*TeV; + totBins = 120; + Tkinlimit = 2.*MeV; + facrange = 0.02; tlimit = 1.e10*mm; - tlimitmin = 1.e-7*mm; + tlimitmin = 1.e-3*mm; + geombig = 1.e50*mm; + geommin = 5.e-6*mm; + facgeom = 4.; + safety = 0.*mm; + facsafety = 0.20; + dtrl = 0.05; + factail = 1.0; + + steppingAlgorithm = true; + samplez = false; + boundary = true; + isInitialized = false; SetBinning(totBins); SetMinKinEnergy(lowKineticEnergy); SetMaxKinEnergy(highKineticEnergy); + + SetLateralDisplasmentFlag(true); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -110,7 +142,28 @@ G4MultipleScattering::~G4MultipleScattering() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4MultipleScattering::InitialiseProcess(const G4ParticleDefinition* particle) +G4bool G4MultipleScattering::IsApplicable (const G4ParticleDefinition& p) +{ + return (p.GetPDGCharge() != 0.0 && !p.IsShortLived()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScattering::MscStepLimitation(G4bool algorithm, G4double factor) +{ + steppingAlgorithm = algorithm; + if (factor > 0.) SetFacrange(factor); + else { if (algorithm) SetFacrange(0.02); else SetFacrange(0.2);} + + if(verboseLevel > 1) + G4cout << "Stepping algorithm is set to " << steppingAlgorithm + << " with facrange = " << facrange << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScattering::InitialiseProcess + (const G4ParticleDefinition* particle) { if(isInitialized) return; @@ -118,58 +171,122 @@ void G4MultipleScattering::InitialiseProcess(const G4ParticleDefinition* particl boundary = false; SetLateralDisplasmentFlag(false); SetBuildLambdaTable(false); - Setsamplez(false) ; } else { - SetLateralDisplasmentFlag(true); SetBuildLambdaTable(true); } - G4MscModel* em = new G4MscModel(dtrl,NuclCorrPar,FactPar,factail,samplez); + // compute Tlimit for particle + Tlimit = Tkinlimit*electron_mass_c2/particle->GetPDGMass(); + G4MscModel* em = new G4MscModel(dtrl,factail,samplez); em->SetLateralDisplasmentFlag(LateralDisplasmentFlag()); em->SetLowEnergyLimit(lowKineticEnergy); em->SetHighEnergyLimit(highKineticEnergy); AddEmModel(1, em); isInitialized = true; + navigator = G4TransportationManager::GetTransportationManager() + ->GetNavigatorForTracking(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4MultipleScattering::TruePathLengthLimit(const G4Track& track, - G4double& lambda, - G4double currentMinimalStep) + G4double& lambda, + G4double currentMinimalStep) { - G4double tPathLength = currentMinimalStep; + G4double range = CurrentRange() ; - // special treatment near boundaries ? - if (boundary) { + // standard version + // + if (steppingAlgorithm) + { + safety = track.GetStep()->GetPreStepPoint()->GetSafety() ; + if((track.GetStep()->GetPreStepPoint()->GetStepStatus() == + fGeomBoundary) + || (track.GetCurrentStepNumber() == 1)) + { + // not so strong step restriction above Tlimit + G4double facr = facrange; + if(track.GetKineticEnergy() > Tlimit) + facr *= track.GetKineticEnergy()/Tlimit; - G4int stepno = track.GetCurrentStepNumber() ; - // first step - if (stepno == 1) { - stepnolastmsc = -1000000 ; - tlimit = 1.e10; - } else if (stepno > 1) { + // constraint from the physics + if (range > lambda) tlimit = facr*range; + else tlimit = facr*lambda; - if (track.GetStep()->GetPreStepPoint()->GetStepStatus() == fGeomBoundary) { - - stepnolastmsc = stepno; - // if : diff.treatment for small/not small Z - G4double range = CurrentRange(); - if (range > lambda) tlimit = facrange*range; - else tlimit = facrange*lambda; - - if(tlimit < tlimitmin) tlimit = tlimitmin; - if(tPathLength > tlimit) tPathLength = tlimit; - - } else if (stepno > stepnolastmsc && stepno - stepnolastmsc < nsmallstep - && tPathLength > tlimit) { - tlimit *= cf; - tPathLength = tlimit; + G4double geomlimit = GeomLimit(track); + // constraint from the geometry (if tlimit above is too big) + if ((geomlimit > geommin) && (tlimit > geomlimit/facgeom)) + { + if(track.GetStep()->GetPreStepPoint()->GetStepStatus() == + fGeomBoundary) + tlimit = geomlimit/facgeom; + else + tlimit = 2.*geomlimit/facgeom; } + + //lower limit for tlimit + if(tlimit < tlimitmin) tlimit = tlimitmin; } + if(track.GetCurrentStepNumber() == 1) + { + // range <= safety ---> particle is not able to leave volume + if(range <= safety) + return currentMinimalStep; + + //if track starts far from boundaries increase tlimit! + if(tlimit < facsafety*safety) + tlimit = facsafety*safety ; + } + // range <= safety ---> particle is not able to leave volume + if(range <= safety) + return currentMinimalStep; + + if(tPathLength > tlimit) tPathLength = tlimit; + } + + // version similar to 7.1 (needed for some experiments) + // + else + { + if(track.GetCurrentStepNumber() == 1) + tlimit = geombig; + if (track.GetStep()->GetPreStepPoint()->GetStepStatus() == + fGeomBoundary) + { + if (range > lambda) tlimit = facrange*range; + else tlimit = facrange*lambda; + + if(tlimit < tlimitmin) tlimit = tlimitmin; + } + if(tPathLength > tlimit) tPathLength = tlimit; } - return tPathLength; + return tPathLength ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MultipleScattering::GeomLimit(const G4Track& track) +{ + G4double geomlimit = geombig; + + // no geomlimit for the World volume + if((track.GetVolume() != 0) && + (track.GetVolume() != navigator->GetWorldVolume())) + { + const G4double cstep = geombig; + navigator->LocateGlobalPointWithinVolume( + track.GetStep()->GetPreStepPoint()->GetPosition()); + geomlimit = navigator->ComputeStep( + track.GetStep()->GetPreStepPoint()->GetPosition(), + track.GetMomentumDirection(), + cstep, + safety); + + if(geomlimit < geommin) geomlimit = geommin; + } + + return geomlimit; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -177,8 +294,9 @@ G4double G4MultipleScattering::TruePathLengthLimit(const G4Track& track, void G4MultipleScattering::PrintInfo() { if(boundary) { - G4cout << " Boundary algorithm is active with facrange= " + G4cout << " Boundary/stepping algorithm is active with facrange= " << facrange + << " Step limitation " << steppingAlgorithm << G4endl; } } diff --git a/source/processes/electromagnetic/standard/src/G4MultipleScattering52.cc b/source/processes/electromagnetic/standard/src/G4MultipleScattering52.cc index ce2f1a3aba..05e51fdfeb 100644 --- a/source/processes/electromagnetic/standard/src/G4MultipleScattering52.cc +++ b/source/processes/electromagnetic/standard/src/G4MultipleScattering52.cc @@ -22,7 +22,7 @@ // // // $Id: G4MultipleScattering52.cc,v 1.3 2005/05/03 08:07:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- // 16/05/01 value of cparm changed , L.Urban diff --git a/source/processes/electromagnetic/standard/src/G4MultipleScattering71.cc b/source/processes/electromagnetic/standard/src/G4MultipleScattering71.cc new file mode 100644 index 0000000000..25872e8923 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4MultipleScattering71.cc @@ -0,0 +1,188 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4MultipleScattering71.cc,v 1.1 2005/10/03 01:09:57 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ----------------------------------------------------------------------------- +// 16/05/01 value of cparm changed , L.Urban +// 18/05/01 V.Ivanchenko Clean up against Linux ANSI compilation +// 07/08/01 new methods Store/Retrieve PhysicsTable (mma) +// 23-08-01 new angle and z distribution,energy dependence reduced, +// Store,Retrieve methods commented out temporarily, L.Urban +// 27-08-01 in BuildPhysicsTable:aParticleType.GetParticleName()=="mu+" (mma) +// 28-08-01 GetContinuousStepLimit and AlongStepDoIt moved from .icc file (mma) +// 03-09-01 value of data member factlim changed, L.Urban +// 10-09-01 small change in GetContinuousStepLimit, L.Urban +// 11-09-01 G4MultipleScatteringx put as default G4MultipleScattering +// store/retrieve physics table reactivated (mma) +// 13-09-01 corr. in ComputeTransportCrossSection, L.Urban +// 14-09-01 protection in GetContinuousStepLimit, L.Urban +// 17-09-01 migration of Materials to pure STL (mma) +// 27-09-01 value of data member factlim changed, L.Urban +// 31-10-01 big fixed in PostStepDoIt,L.Urban +// 17-04-02 NEW angle distribution + boundary algorithm modified, L.Urban +// 22-04-02 boundary algorithm modified -> important improvement in timing (L.Urban) +// 24-04-02 some minor changes in boundary algorithm, L.Urban +// 06-05-02 bug fixed in GetContinuousStepLimit, L.Urban +// 24-05-02 changes in angle distribution and boundary algorithm, L.Urban +// 11-06-02 bug fixed in ComputeTransportCrossSection, L.Urban +// 12-08-02 bug fixed in PostStepDoIt (lateral displacement), L.Urban +// 15-08-02 new angle distribution, L.Urban +// 26-09-02 angle distribution + boundary algorithm modified, L.Urban +// 15-10-02 temporary fix for proton scattering +// 30-10-02 modified angle distribution,mods in boundary algorithm, +// changes in data members, L.Urban +// 11-12-02 precision problem in ComputeTransportCrossSection +// for small Tkin/for heavy particles cured from L.Urban +// 20-01-03 Migrade to cut per region (V.Ivanchenko) +// 05-02-03 changes in data members, new sampling for geom. +// path length, step dependence reduced with new +// method +// 28-03-03 Move to model design (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 23-04-04 value of data member dtrl changed from 0.15 to 0.05 (L.Urban) +// 17-08-04 name of facxsi changed to factail (L.Urban) +// 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) +// 07-02-05 correction in order to have a working Setsamplez function (L.Urban) +// 15-04-05 optimize internal interface (V.Ivanchenko) +// 03-10-05 Process is freezed with the name 71 (V.Ivanchenko) +// ----------------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MultipleScattering71.hh" +#include "G4MscModel71.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +using namespace std; + +G4MultipleScattering71::G4MultipleScattering71(const G4String& processName) + : G4VMultipleScattering(processName), + totBins(120), + facrange(0.199), + dtrl(0.05), + NuclCorrPar (0.0615), + FactPar(0.40), + factail(1.0), + cf(1.001), + stepnolastmsc(-1000000), + nsmallstep(5), + samplez(true), + boundary(true), + isInitialized(false) +{ + lowKineticEnergy = 0.1*keV; + highKineticEnergy= 100.*TeV; + + tlimit = 1.e10*mm; + tlimitmin = 1.e-7*mm; + + SetBinning(totBins); + SetMinKinEnergy(lowKineticEnergy); + SetMaxKinEnergy(highKineticEnergy); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4MultipleScattering71::~G4MultipleScattering71() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScattering71::InitialiseProcess(const G4ParticleDefinition* particle) +{ + if(isInitialized) return; + + if (particle->GetParticleType() == "nucleus") { + boundary = false; + SetLateralDisplasmentFlag(false); + SetBuildLambdaTable(false); + Setsamplez(false) ; + } else { + SetLateralDisplasmentFlag(true); + SetBuildLambdaTable(true); + } + G4MscModel71* em = new G4MscModel71(dtrl,NuclCorrPar,FactPar,factail,samplez); + em->SetLateralDisplasmentFlag(LateralDisplasmentFlag()); + em->SetLowEnergyLimit(lowKineticEnergy); + em->SetHighEnergyLimit(highKineticEnergy); + AddEmModel(1, em); + isInitialized = true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MultipleScattering71::TruePathLengthLimit(const G4Track& track, + G4double& lambda, + G4double currentMinimalStep) +{ + + G4double tPathLength = currentMinimalStep; + + // special treatment near boundaries ? + if (boundary) { + + G4int stepno = track.GetCurrentStepNumber() ; + // first step + if (stepno == 1) { + stepnolastmsc = -1000000 ; + tlimit = 1.e10; + } else if (stepno > 1) { + + if (track.GetStep()->GetPreStepPoint()->GetStepStatus() == fGeomBoundary) { + + stepnolastmsc = stepno; + // if : diff.treatment for small/not small Z + G4double range = CurrentRange(); + if (range > lambda) tlimit = facrange*range; + else tlimit = facrange*lambda; + + if(tlimit < tlimitmin) tlimit = tlimitmin; + if(tPathLength > tlimit) tPathLength = tlimit; + + } else if (stepno > stepnolastmsc && stepno - stepnolastmsc < nsmallstep + && tPathLength > tlimit) { + tlimit *= cf; + tPathLength = tlimit; + } + } + } + + return tPathLength; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScattering71::PrintInfo() +{ + if(boundary) { + G4cout << " Boundary algorithm is active with facrange= " + << facrange + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/source/processes/electromagnetic/standard/src/G4PAIModel.cc b/source/processes/electromagnetic/standard/src/G4PAIModel.cc index d451bd5d80..d16029eb82 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIModel.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIModel.cc @@ -574,6 +574,9 @@ G4PAIModel::SampleSecondaries( const G4MaterialCutsCouple* matCC, G4double pSquare = kineticEnergy*(totalEnergy+particleMass); G4double deltaTkin = GetPostStepTransfer(scaledTkin); + + // G4cout<<"G4PAIModel::SampleSecondaries; deltaKIn = "<= step) break; numOfCollisions++; @@ -812,7 +815,7 @@ G4double G4PAIModel::SampleFluctuations( const G4Material* material, if(position >= (*(*fPAItransferTable)(iPlace))(iTransfer)) break ; } omega = GetEnergyTransfer(iPlace,position,iTransfer); - // G4cout< 0.) lambda = step/meanNumber; else lambda = DBL_MAX; while(numb) { - stepDelta = RandExponential::shoot(lambda); + stepDelta = CLHEP::RandExponential::shoot(lambda); stepSum += stepDelta; if(stepSum >= step) break; numOfCollisions++; @@ -878,7 +881,7 @@ G4double G4PAIModel::SampleFluctuations( const G4Material* material, else lambda = DBL_MAX; while(numb) { - stepDelta = RandExponential::shoot(lambda); + stepDelta = CLHEP::RandExponential::shoot(lambda); stepSum += stepDelta; if(stepSum >= step) break; numOfCollisions++; @@ -912,7 +915,7 @@ G4double G4PAIModel::SampleFluctuations( const G4Material* material, } } } - // G4cout<<"PAIModel AlongStepLoss = "< Tkin) loss=Tkin; return loss ; diff --git a/source/processes/electromagnetic/standard/src/G4PAIPhotonModel.cc b/source/processes/electromagnetic/standard/src/G4PAIPhotonModel.cc index ab0c04fb4d..259428c513 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIPhotonModel.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIPhotonModel.cc @@ -1075,7 +1075,7 @@ G4PAIPhotonModel::GetAlongStepTransfer( G4PhysicsTable* pTable, else lambda = DBL_MAX; while(numb) { - stepDelta = RandExponential::shoot(lambda); + stepDelta = CLHEP::RandExponential::shoot(lambda); stepSum += stepDelta; if(stepSum >= step) break; numOfCollisions++; @@ -1105,12 +1105,12 @@ G4PAIPhotonModel::GetAlongStepTransfer( G4PhysicsTable* pTable, { meanNumber = ((*(*pTable)(iPlace+1))(0) - dNdxCut2)*cof; if( meanNumber < 0. ) meanNumber = 0. ; - // numOfCollisions = RandPoisson::shoot(meanNumber) ; + // numOfCollisions = CLHEP::RandPoisson::shoot(meanNumber) ; if( meanNumber > 0.) lambda = step/meanNumber; else lambda = DBL_MAX; while(numb) { - stepDelta = RandExponential::shoot(lambda); + stepDelta = CLHEP::RandExponential::shoot(lambda); stepSum += stepDelta; if(stepSum >= step) break; numOfCollisions++; @@ -1148,12 +1148,12 @@ G4PAIPhotonModel::GetAlongStepTransfer( G4PhysicsTable* pTable, meanNumber=( ((*(*pTable)(iPlace))(0)-dNdxCut1)*W1 + ((*(*pTable)(iPlace+1))(0)-dNdxCut2)*W2 )*cof; if(meanNumber<0.0) meanNumber = 0.0; - // numOfCollisions = RandPoisson::shoot(meanNumber) ; + // numOfCollisions = CLHEP::RandPoisson::shoot(meanNumber) ; if( meanNumber > 0.) lambda = step/meanNumber; else lambda = DBL_MAX; while(numb) { - stepDelta = RandExponential::shoot(lambda); + stepDelta = CLHEP::RandExponential::shoot(lambda); stepSum += stepDelta; if(stepSum >= step) break; numOfCollisions++; diff --git a/source/processes/electromagnetic/standard/src/G4PAIxSection.cc b/source/processes/electromagnetic/standard/src/G4PAIxSection.cc index 0a4d6898e0..166b4aa7fd 100644 --- a/source/processes/electromagnetic/standard/src/G4PAIxSection.cc +++ b/source/processes/electromagnetic/standard/src/G4PAIxSection.cc @@ -22,7 +22,7 @@ // // // $Id: G4PAIxSection.cc,v 1.20 2004/12/01 19:37:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4PAIxSection.cc -- class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4PEEffectModel.cc b/source/processes/electromagnetic/standard/src/G4PEEffectModel.cc index da97e3fa37..4b2808e449 100644 --- a/source/processes/electromagnetic/standard/src/G4PEEffectModel.cc +++ b/source/processes/electromagnetic/standard/src/G4PEEffectModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4PEEffectModel.cc,v 1.2 2005/05/02 12:44:18 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PEEffectModel.cc,v 1.4 2005/12/05 16:44:43 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -36,6 +36,8 @@ // // Modifications: // +// 04.12.05 : SetProposedKineticEnergy(0.) for the killed photon (mma) +// // Class Description: // // ------------------------------------------------------------------- @@ -73,13 +75,14 @@ G4PEEffectModel::~G4PEEffectModel() void G4PEEffectModel::Initialise(const G4ParticleDefinition*, const G4DataVector&) { - if(isInitialized) return; - if(pParticleChange) - fParticleChange = reinterpret_cast(pParticleChange); + if (isInitialized) return; + if (pParticleChange) + fParticleChange = + reinterpret_cast(pParticleChange); else - fParticleChange = new G4ParticleChangeForGamma(); + fParticleChange = new G4ParticleChangeForGamma(); - fminimalEnergy = 1.0*eV; + fminimalEnergy = 1.0*eV; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -129,8 +132,9 @@ std::vector* G4PEEffectModel::SampleSecondaries( theElectron,ElecDirection, ElecKineEnergy); fvect->push_back(aParticle); } - - fParticleChange->ProposeTrackStatus(fStopAndKill); + + fParticleChange->SetProposedKineticEnergy(0.); + fParticleChange->ProposeTrackStatus(fStopAndKill); fParticleChange->ProposeLocalEnergyDeposit(bindingEnergy); return fvect; } diff --git a/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc b/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc index f58e54734d..a68ef90123 100644 --- a/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc +++ b/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PhotoElectricEffect.cc,v 1.34 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //------------------ G4PhotoElectricEffect physics process ------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect52.cc b/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect52.cc index ed4841f42e..d8769b639e 100644 --- a/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect52.cc +++ b/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect52.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhotoElectricEffect52.cc,v 1.1 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc b/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc index a4c243a966..0c00b275dd 100644 --- a/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc @@ -22,7 +22,7 @@ // // // $Id: G4PolarizedComptonScattering.cc,v 1.14 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //---------- G4PolarizedComptonScattering physics process ---------------------- diff --git a/source/processes/electromagnetic/standard/src/G4SCProcessorStand.cc b/source/processes/electromagnetic/standard/src/G4SCProcessorStand.cc index fb9e1b6e10..ea3c3aa163 100644 --- a/source/processes/electromagnetic/standard/src/G4SCProcessorStand.cc +++ b/source/processes/electromagnetic/standard/src/G4SCProcessorStand.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4SCProcessorStand.cc,v 1.2 2004/12/01 19:37:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc b/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc index bb85b50fc9..a8267b7c03 100644 --- a/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc +++ b/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc @@ -22,7 +22,7 @@ // // // $Id: G4SynchrotronRadiation.cc,v 1.12 2004/12/01 19:37:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc b/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc index 19334407b8..16f2ab3242 100644 --- a/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc +++ b/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4UniversalFluctuation.cc,v 1.4 2005/05/03 13:37:43 urban Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UniversalFluctuation.cc,v 1.7 2005/10/17 13:01:05 urban Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -46,6 +46,9 @@ // 07-02-05 define problim = 5.e-3 (mma) // 03-05-05 conditions of Gaussian fluctuation changed (bugfix) // + smearing for very small loss (L.Urban) +// 03-10-05 energy dependent rate -> cut dependence of the +// distribution is much weaker (L.Urban) +// 17-10-05 correction for very small loss (L.Urban) // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -160,7 +163,6 @@ G4double G4UniversalFluctuation::SampleFluctuations(const G4Material* material, e2Fluct = material->GetIonisation()->GetEnergy2fluct(); e1LogFluct = material->GetIonisation()->GetLogEnergy1fluct(); e2LogFluct = material->GetIonisation()->GetLogEnergy2fluct(); - rateFluct = material->GetIonisation()->GetRateionexcfluct(); ipotFluct = material->GetIonisation()->GetMeanExcitationEnergy(); ipotLogFluct = material->GetIonisation()->GetLogMeanExcEnergy(); lastMaterial = material; @@ -168,14 +170,17 @@ G4double G4UniversalFluctuation::SampleFluctuations(const G4Material* material, G4double a1 = 0. , a2 = 0., a3 = 0. ; G4double p1,p2,p3; - G4double rate = rateFluct ; + // cut and material dependent rate -------------------------------- + G4double rate = 0.173+0.027*log(tmax/ipotFluct) ; + if(rate < 0.) rate = 0. ; + if(rate > 1.) rate = 1. ; G4double w1 = tmax/ipotFluct; G4double w2 = log(2.*electron_mass_c2*beta2*gam2)-beta2; if(w2 > ipotLogFluct) { - G4double C = meanLoss*(1.-rateFluct)/(w2-ipotLogFluct); + G4double C = meanLoss*(1.-rate)/(w2-ipotLogFluct); a1 = C*f1Fluct*(w2-e1LogFluct)/e1Fluct; a2 = C*f2Fluct*(w2-e2LogFluct)/e2Fluct; if(a2 < 0.) @@ -190,7 +195,8 @@ G4double G4UniversalFluctuation::SampleFluctuations(const G4Material* material, rate = 1. ; } - a3 = rate*meanLoss*(tmax-ipotFluct)/(ipotFluct*tmax*log(w1)); + if(tmax > ipotFluct) + a3 = rate*meanLoss*(tmax-ipotFluct)/(ipotFluct*tmax*log(w1)); G4double suma = a1+a2+a3; @@ -269,7 +275,9 @@ G4double G4UniversalFluctuation::SampleFluctuations(const G4Material* material, // G4double e0 = material->GetIonisation()->GetEnergy0fluct(); - a3 = meanLoss*(tmax-e0)/(tmax*e0*log(tmax/e0)); + if(tmax <= e0) return meanLoss; + else a3 = meanLoss*(tmax-e0)/(tmax*e0*log(tmax/e0)); + if (a3 > alim) { siga=sqrt(a3); diff --git a/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc index be5c85b5de..83adc55947 100644 --- a/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VeEnergyLoss.cc,v 1.34 2004/12/01 19:37:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc index 96d6c81343..44d7fcfd00 100644 --- a/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VhEnergyLoss.cc,v 1.48 2004/12/01 19:37:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc index 596bc1462c..17f1f2cf5b 100644 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eBremsstrahlung.cc,v 1.42 2005/04/08 12:39:58 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung52.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung52.cc index 7b946b120a..26dda0eb4a 100644 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung52.cc +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung52.cc @@ -22,7 +22,7 @@ // // // $Id: G4eBremsstrahlung52.cc,v 1.5 2005/05/03 08:07:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------ G4eBremsstrahlung52 physics process -------- diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc index f40120fd7b..9bdebb6d3c 100644 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eBremsstrahlungModel.cc,v 1.25 2005/05/03 08:07:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eBremsstrahlungModel.cc,v 1.28 2005/10/08 20:31:22 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -45,6 +45,7 @@ // 09-05-03 Fix problem of supression function + optimise sampling (V.Ivanchenko) // 20-05-04 Correction to ensure unit independence (L.Urban) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 03-08-05 Add extra protection at initialisation (V.Ivantchenko) // // Class Description: // @@ -126,19 +127,25 @@ void G4eBremsstrahlungModel::Initialise(const G4ParticleDefinition* p, lowKinEnergy = LowEnergyLimit(); const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - for (size_t ii=0; iiGetMaterialCutsCouple(i); - const G4Material* material = couple->GetMaterial(); - G4DataVector* dv = ComputePartialSumSigma(material, 0.5*highKinEnergy, + if(theCoupleTable) { + G4int numOfCouples = theCoupleTable->GetTableSize(); + + for (size_t ii=0; ii0) { + for (G4int i=0; iGetMaterialCutsCouple(i); + const G4Material* material = couple->GetMaterial(); + G4DataVector* dv = ComputePartialSumSigma(material, 0.5*highKinEnergy, min(cuts[i], 0.25*highKinEnergy)); - partialSumSigma.push_back(dv); + partialSumSigma.push_back(dv); + } + } } if(pParticleChange) fParticleChange = reinterpret_cast(pParticleChange); @@ -629,10 +636,9 @@ std::vector* G4eBremsstrahlungModel::SampleSecondaries( // A modified version of the random number techniques of Butcher & Messel is used // (Nuc Phys 20(1960),15). { - std::vector* newp = new std::vector; G4double kineticEnergy = dp->GetKineticEnergy(); G4double tmax = min(maxEnergy, kineticEnergy); - if(tmin > tmax) tmin = tmax; + if(tmin >= tmax) return 0; // // GEANT4 internal units. @@ -814,12 +820,18 @@ std::vector* G4eBremsstrahlungModel::SampleSecondaries( G4ThreeVector gammaDirection(sint*cos(phi),sint*sin(phi), cos(theta)); gammaDirection.rotateUz(direction); - kineticEnergy -= gammaEnergy; - fParticleChange->SetProposedKineticEnergy(kineticEnergy); - // create G4DynamicParticle object for the Gamma + std::vector* newp = new std::vector; G4DynamicParticle* g = new G4DynamicParticle(theGamma,gammaDirection,gammaEnergy); newp->push_back(g); + + G4double totMomentum = sqrt(kineticEnergy*(totalEnergy + electron_mass_c2)); + G4ThreeVector dir = totMomentum*direction - gammaEnergy*gammaDirection; + direction = dir.unit(); + fParticleChange->SetProposedMomentumDirection(direction); + + fParticleChange->SetProposedKineticEnergy(kineticEnergy - gammaEnergy); + return newp; } diff --git a/source/processes/electromagnetic/standard/src/G4eIonisation.cc b/source/processes/electromagnetic/standard/src/G4eIonisation.cc index b200ca8eed..9416ace595 100644 --- a/source/processes/electromagnetic/standard/src/G4eIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4eIonisation.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4eIonisation.cc,v 1.41 2005/05/01 20:26:24 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4eIonisation.cc,v 1.48 2005/10/02 16:38:11 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -59,6 +59,8 @@ // 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 12-08-05 SetStepLimits(0.2, 0.1*mm) (mma) +// 02-09-05 Return SetStepLimits(1, 1*mm) (V.Ivantchenko) // // ------------------------------------------------------------------- // @@ -106,9 +108,13 @@ void G4eIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition* part //flucModel = new G4BohrFluctuations(); G4VEmModel* em = new G4MollerBhabhaModel(); - em->SetLowEnergyLimit(0.1*keV); - em->SetHighEnergyLimit(100.0*TeV); + em->SetLowEnergyLimit(100*eV); + em->SetHighEnergyLimit(100*TeV); AddEmModel(1, em, flucModel); + + SetStepLimits(0.2, 1*mm); + SetIntegral(true); + isInitialised = true; } } diff --git a/source/processes/electromagnetic/standard/src/G4eIonisation52.cc b/source/processes/electromagnetic/standard/src/G4eIonisation52.cc index f6e24b21bb..58460ff652 100644 --- a/source/processes/electromagnetic/standard/src/G4eIonisation52.cc +++ b/source/processes/electromagnetic/standard/src/G4eIonisation52.cc @@ -22,7 +22,7 @@ // // // $Id: G4eIonisation52.cc,v 1.4 2004/12/01 19:37:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------- G4eIonisation52 physics process -------------------------------- // by Laszlo Urban, 20 March 1997 diff --git a/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc b/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc index a3e3d98c51..955c12122c 100644 --- a/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc +++ b/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eeToTwoGammaModel.cc,v 1.8 2005/04/29 18:02:35 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc index a4055d81f8..1adc4c5c72 100644 --- a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc +++ b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eplusAnnihilation.cc,v 1.22 2005/05/12 11:06:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation52.cc b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation52.cc index 505344a465..4c04bbe0b6 100644 --- a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation52.cc +++ b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation52.cc @@ -22,7 +22,7 @@ // // // $Id: G4eplusAnnihilation52.cc,v 1.1 2005/05/04 16:16:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4hIonisation.cc b/source/processes/electromagnetic/standard/src/G4hIonisation.cc index adbb10ca85..179dd21f29 100644 --- a/source/processes/electromagnetic/standard/src/G4hIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4hIonisation.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4hIonisation.cc,v 1.56 2005/04/08 12:39:58 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4hIonisation.cc,v 1.61 2005/10/02 16:38:11 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -31,7 +31,7 @@ // File name: G4hIonisation // // Author: Laszlo Urban -// +// // Creation date: 30.05.1997 // // Modifications: @@ -69,6 +69,7 @@ // 27-05-04 Set integral to be a default regime (V.Ivanchenko) // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) // 24-03-05 Optimize internal interfaces (V.Ivantchenko) +// 12-08-05 SetStepLimits(0.2, 0.1*mm) (mma) // // ------------------------------------------------------------------- // @@ -140,7 +141,8 @@ void G4hIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition* part em1->SetHighEnergyLimit(100.0*TeV); AddEmModel(2, em1, flucModel); - SetStepLimits(0.2, 1.0*mm); + SetStepLimits(0.2, 1*mm); + SetIntegral(true); isInitialised = true; } diff --git a/source/processes/electromagnetic/standard/src/G4hIonisation52.cc b/source/processes/electromagnetic/standard/src/G4hIonisation52.cc index 094c73f757..74b002a08f 100644 --- a/source/processes/electromagnetic/standard/src/G4hIonisation52.cc +++ b/source/processes/electromagnetic/standard/src/G4hIonisation52.cc @@ -22,7 +22,7 @@ // // // $Id: G4hIonisation52.cc,v 1.4 2004/12/01 19:37:16 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //---------------- G4hIonisation52 physics process ------------------------------- // by Laszlo Urban, 30 May 1997 diff --git a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc index 61ad36589c..199ceef5e6 100644 --- a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ionIonisation.cc,v 1.33 2005/04/08 12:39:58 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/History b/source/processes/electromagnetic/utils/History index 5312fb2adc..e3a5cf34fc 100644 --- a/source/processes/electromagnetic/utils/History +++ b/source/processes/electromagnetic/utils/History @@ -1,4 +1,4 @@ -$Id: History,v 1.201 2005/05/30 08:55:51 vnivanch Exp $ +$Id: History,v 1.219 2005/12/05 12:13:07 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,62 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +05 December 05: V.Ivant (emutils-V07-01-13) +- G4EmProcessOptions - fix verbosity definition for energy loss processes + +29 November 05: V.Ivant (emutils-V07-01-12) +- G4EmModelmanager - add protection for arithmetic operations with cut=DBL_MAX + +26 November 05: V.Ivant (emutils-V07-01-11) +- G4EmCalculator - upgrade printout +- G4EmCorrection - fix on calculation of effective charge and Mott correction + for heavy ions + +15 November 05: V.Ivant (emutils-V07-01-10) +- G4EnergyLossMessenger: migration to + +28 October 05: V.Ivant (emutils-V07-01-09) +- Fix problem in G4EmCalculator in ComputeDEDX for ions +- Provide subcutoff regime inside G4VEnergyLossProcess - do not + use G4VSubCutoffProcessor anymore +- update subcutoff set method inside G4EmProcessOptions + +27 October 05: V.Ivant (emutils-V07-01-08) +- add virtual method MscStepLimitation() to G4VMultipleScattering +- add SetMscStepLimitation to G4EmProcessOptions + +25 October 05: V.Ivant (emutils-V07-01-07) +- G4VEmModel.cc - default energy range from 0.1*keV to 100*TeV to + make easier initialisation of PAI models + +17 October 05: L.Urban (emutils-V07-01-06) +- G4VEnergyLossProcess.cc: protection againg 0 mean loss removed, + effect cured in standard/G4UniversalFluctuation + +07 October 05: L.Urban (emutils-V07-01-05) +- G4VMultipleScattering.hh: error in a protection in GetContinuousStepLimit + corrected. Must cowork with emstand-V07-01-14 + +05 October 05: L.Urban (emutils-V07-01-04) +- G4VEnergyLossProcess: added protection against mean_energy_loss = 0 + +04 September 05: V.Ivant (emutils-V07-01-03) +- G4VEnergyLossProcess, G4VEmProcess: default lambdaFactor 0.8 + +02 September 05: V.Ivant (emutils-V07-01-02) +- This tag is 7.1 + bug fixes +- G4VEnergyLossProcess: Integral=true; SetStepFunction(0.2, 1*mm) + fix a problem #780 connected with d-electron production tmax < cut +- G4EmManager - fix a cut calculation for e+e- pair + +12 August 05: mma (emutils-V07-01-01) +- G4VEnergyLossProcess: Integral=false; SetStepFunction(0.2, 0.1*mm) + +25 July 05: V.Ivant (emutils-V07-01-00) +- G4VEnergyLossProcess: add extra protection for non-integral mode +- G4VEmModel, G4VEmFluctuationModel : move constructor anddestructor to the body +- G4VEmProcess - use integral mode only for charged particles + 27 May 05: V.Ivant (utils-V07-00-13) - Fix problem observed for second run after adding/removal materials - Fix compilation warning at SUN in G4EmCalculator and G4EmCorrections; @@ -49,7 +105,7 @@ committal in the CVS repository ! 13 April 05: V.Ivant (utils-V07-00-04) - Optimization of internal interfaces G4VEmModel, G4VEmFluctuationModel, - G4VEmProcess, G4VEmEnergyLossProcess + G4VEmProcess, G4VEnergyLossProcess - Fix range calculation for dedx=0 in G4LossTableBuilder - Add Mott correction to G4EmCorrection diff --git a/source/processes/electromagnetic/utils/include/G4EmCalculator.hh b/source/processes/electromagnetic/utils/include/G4EmCalculator.hh index bc1afa624a..fc4db6a11b 100644 --- a/source/processes/electromagnetic/utils/include/G4EmCalculator.hh +++ b/source/processes/electromagnetic/utils/include/G4EmCalculator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EmCalculator.hh,v 1.9 2005/02/26 22:01:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/utils/include/G4EmCorrections.hh b/source/processes/electromagnetic/utils/include/G4EmCorrections.hh index dcae74b817..ea15d7aa53 100644 --- a/source/processes/electromagnetic/utils/include/G4EmCorrections.hh +++ b/source/processes/electromagnetic/utils/include/G4EmCorrections.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EmCorrections.hh,v 1.3 2005/02/26 22:01:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh index 7e15044fe4..1d6996ab72 100644 --- a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh +++ b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EmModelManager.hh,v 1.14 2005/04/11 10:40:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/include/G4EmMultiModel.hh b/source/processes/electromagnetic/utils/include/G4EmMultiModel.hh index e08e5883c5..401263bb76 100644 --- a/source/processes/electromagnetic/utils/include/G4EmMultiModel.hh +++ b/source/processes/electromagnetic/utils/include/G4EmMultiModel.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EmMultiModel.hh,v 1.4 2005/04/15 11:40:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/include/G4EmProcessOptions.hh b/source/processes/electromagnetic/utils/include/G4EmProcessOptions.hh index f54a0f4abc..0e355b5f27 100644 --- a/source/processes/electromagnetic/utils/include/G4EmProcessOptions.hh +++ b/source/processes/electromagnetic/utils/include/G4EmProcessOptions.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4EmProcessOptions.hh,v 1.3 2005/03/28 23:08:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmProcessOptions.hh,v 1.4 2005/10/27 14:04:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------- @@ -65,7 +65,7 @@ public: void SetLossFluctuations(G4bool val); - void SetSubCutoff(G4bool val); + void SetSubCutoff(G4bool val, const G4Region* r=0); void SetIntegral(G4bool val); @@ -99,6 +99,8 @@ public: void ActivateDeexcitation(G4bool val, const G4Region* r = 0); + void SetMscStepLimitation(G4bool algorithm, G4double factor = -1.); + private: G4EmProcessOptions & operator=(const G4EmProcessOptions &right); diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh index 5db0f2cd2b..b15a7c5d06 100644 --- a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh +++ b/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4EnergyLossMessenger.hh,v 1.8 2003/10/13 10:49:17 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class Description: diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh index fcef86951e..08d583691c 100644 --- a/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh +++ b/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh @@ -22,7 +22,7 @@ // // // $Id: G4EnergyLossTables.hh,v 1.18 2003/07/23 11:36:25 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: // diff --git a/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh b/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh index 67d49f1955..b450995508 100644 --- a/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh +++ b/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LossTableBuilder.hh,v 1.4 2004/11/10 08:54:59 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/utils/include/G4LossTableManager.hh b/source/processes/electromagnetic/utils/include/G4LossTableManager.hh index 42bce14680..8be4e08e98 100644 --- a/source/processes/electromagnetic/utils/include/G4LossTableManager.hh +++ b/source/processes/electromagnetic/utils/include/G4LossTableManager.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4LossTableManager.hh,v 1.27 2005/02/15 19:35:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LossTableManager.hh,v 1.28 2005/10/27 14:04:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------------- @@ -241,7 +241,6 @@ private: G4double maxKinEnergy; G4double maxKinEnergyForMuons; - //G4VEnergyLossProcess* eIonisation; G4LossTableBuilder* tableBuilder; G4EnergyLossMessenger* theMessenger; G4EmCorrections* emCorrections; diff --git a/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh b/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh index 6889f1e1d6..78b4fbaa44 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VEmFluctuationModel.hh,v 1.8 2005/04/12 11:21:25 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VEmFluctuationModel.hh,v 1.9 2005/07/25 18:13:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -41,6 +41,7 @@ // 13-02-03 Add name (V.Ivanchenko) // 16-10-03 Changed interface to Initialisation (V.Ivanchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 25-07-05 Move constructor and destructor to the body (V.Ivanchenko) // // // Class Description: @@ -108,14 +109,6 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4VEmFluctuationModel::G4VEmFluctuationModel(const G4String& nam) - : name(nam) -{} - -inline G4VEmFluctuationModel::~G4VEmFluctuationModel() -{} - inline void G4VEmFluctuationModel::InitialiseMe(const G4ParticleDefinition*) {} diff --git a/source/processes/electromagnetic/utils/include/G4VEmModel.hh b/source/processes/electromagnetic/utils/include/G4VEmModel.hh index 12fe21e809..a2a501e0bd 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmModel.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmModel.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VEmModel.hh,v 1.34 2005/05/11 08:06:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VEmModel.hh,v 1.35 2005/07/25 18:13:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -50,6 +50,7 @@ // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) // 15-04-05 optimize internal interface for msc (V.Ivanchenko) // 08-05-05 A -> N (V.Ivanchenko) +// 25-07-05 Move constructor and destructor to the body (V.Ivanchenko) // // Class Description: // @@ -205,13 +206,6 @@ protected: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4VEmModel::G4VEmModel(const G4String& nam): - lowLimit(0.0), highLimit(0.0), fluc(0), name(nam), pParticleChange(0) -{} - -inline G4VEmModel::~G4VEmModel() -{} - inline G4double G4VEmModel::HighEnergyLimit() { return highLimit; @@ -276,26 +270,6 @@ inline G4double G4VEmModel::CrossSection(const G4MaterialCutsCouple* c, return CrossSectionPerVolume(c->GetMaterial(),p,kinEnergy,cutEnergy,maxEnergy); } -inline G4double G4VEmModel::CrossSectionPerVolume( - const G4Material* material, - const G4ParticleDefinition* p, - G4double ekin, - G4double emin, - G4double emax) -{ - G4double cross = 0.0; - const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* theAtomNumDensityVector = material->GetVecNbOfAtomsPerVolume(); - size_t nelm = material->GetNumberOfElements(); - for (size_t i=0; iGetZ(),elm->GetN(),emin,emax); - xsec[i] = cross; - } - return cross; -} - inline G4double G4VEmModel::ComputeCrossSectionPerAtom( const G4ParticleDefinition*, G4double, G4double, G4double, G4double, G4double) diff --git a/source/processes/electromagnetic/utils/include/G4VEmProcess.hh b/source/processes/electromagnetic/utils/include/G4VEmProcess.hh index a46f6e543d..c03cf802cf 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmProcess.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmProcess.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VEmProcess.hh,v 1.28 2005/05/12 11:06:52 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VEmProcess.hh,v 1.29 2005/10/25 11:38:15 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -333,7 +333,9 @@ inline G4double G4VEmProcess::RecalculateLambda(G4double e, const G4MaterialCuts inline G4double G4VEmProcess::ComputeCurrentLambda(G4double e) { G4VEmModel* currentModel = SelectModel(e); - return currentModel->CrossSectionPerVolume(currentMaterial,particle,e); + G4double x = 0.0; + if(currentModel) x = currentModel->CrossSectionPerVolume(currentMaterial,particle,e); + return x; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh index b70e76c8b8..a1b242c3fb 100644 --- a/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh +++ b/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEnergyLoss.hh,v 1.17 2003/03/25 13:36:57 maire Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh index 9136bf97ca..9c8d221b9e 100644 --- a/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh +++ b/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VEnergyLossProcess.hh,v 1.39 2005/04/12 18:31:47 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VEnergyLossProcess.hh,v 1.43 2005/10/27 14:04:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -90,8 +90,8 @@ class G4VEmFluctuationModel; class G4DataVector; class G4PhysicsTable; class G4PhysicsVector; -class G4VSubCutoffProcessor; class G4Region; +class G4Navigator; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -213,17 +213,15 @@ public: void AddEmModel(G4int, G4VEmModel*, G4VEmFluctuationModel* fluc = 0, const G4Region* region = 0); - // Define new energy range for thhe model identified by the name + // Define new energy range for the model identified by the name void UpdateEmModel(const G4String&, G4double, G4double); // Add subcutoff processor for the region - void AddSubCutoffProcessor(G4VSubCutoffProcessor*, const G4Region* region = 0); + void ActivateSubCutoff(G4bool val, const G4Region* region = 0); // Activate deexcitation code virtual void ActivateDeexcitation(G4bool, const G4Region* region = 0); - virtual void SetSubCutoff(G4bool); - void SetDEDXTable(G4PhysicsTable* p); G4PhysicsTable* DEDXTable() const; @@ -299,6 +297,14 @@ public: G4bool IsIonisationProcess() const; + void AddCollaborativeProcess(G4VEnergyLossProcess*); + + void AddSubCutoffSecondaries(std::vector&, const G4Step&, + G4double& eloss, G4double& escaled); + + void SampleSubCutSecondaries(std::vector&, const G4Step&, + G4double& eloss, G4VEmModel* model); + protected: void SetParticle(const G4ParticleDefinition* p); @@ -315,8 +321,6 @@ protected: G4VEmModel* SelectModel(G4double kinEnergy); - G4VSubCutoffProcessor* SubCutoffProcessor(size_t index); - size_t CurrentMaterialCutsCoupleIndex() const; // Set scaling parameters @@ -358,10 +362,12 @@ protected: private: G4EmModelManager* modelManager; - std::vector scoffProcessors; std::vector scoffRegions; G4int nSCoffRegions; - std::vector idxSCoffRegions; + G4int* idxSCoffRegions; + std::vector scTracks; + std::vector scProcesses; + G4int nProcesses; // tables and vectors G4PhysicsTable* theDEDXTable; @@ -378,10 +384,14 @@ private: G4double* theCrossSectionMax; const G4DataVector* theCuts; + const G4DataVector* theSubCuts; + + G4Navigator* navigator; const G4ParticleDefinition* particle; const G4ParticleDefinition* baseParticle; const G4ParticleDefinition* secondaryParticle; + const G4ParticleDefinition* thePositron; // cash const G4Material* currentMaterial; @@ -392,6 +402,7 @@ private: G4int nDEDXBins; G4int nDEDXBinsForRange; G4int nLambdaBins; + G4int nWarnings; G4double lowestKinEnergy; G4double minKinEnergy; @@ -412,8 +423,6 @@ private: G4double minSubRange; G4double dRoverRange; G4double finalRange; - G4double defaultRoverRange; - G4double defaultIntegralRange; G4double lambdaFactor; G4double mfpKinEnergy; @@ -425,6 +434,7 @@ private: G4bool meanFreePath; G4bool aboveCSmax; G4bool isIonisation; + G4bool useSubCutoff; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -719,15 +729,6 @@ inline void G4VEnergyLossProcess::CorrectionsAlongStep( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4VSubCutoffProcessor* G4VEnergyLossProcess::SubCutoffProcessor(size_t index) -{ - G4VSubCutoffProcessor* p = 0; - if( nSCoffRegions ) p = scoffProcessors[idxSCoffRegions[index]]; - return p; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - inline G4PhysicsTable* G4VEnergyLossProcess::DEDXTable() const { return theDEDXTable; @@ -824,6 +825,23 @@ inline G4double G4VEnergyLossProcess::GetCurrentRange() const return fRange; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossProcess::AddCollaborativeProcess(G4VEnergyLossProcess* p) +{ + scProcesses.push_back(p); + useSubCutoff = true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossProcess::AddSubCutoffSecondaries(std::vector& tracks, + const G4Step& step, G4double& eloss, G4double& escaled) +{ + if(idxSCoffRegions[currentMaterialIndex]) + SampleSubCutSecondaries(tracks, step, eloss, SelectModel(escaled)); +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #endif diff --git a/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh b/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh index 14c7d8e7f9..59443d4688 100644 --- a/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh +++ b/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VMultipleScattering.hh,v 1.27 2005/04/15 14:41:21 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VMultipleScattering.hh,v 1.29 2005/10/27 11:33:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -48,9 +48,11 @@ // 25-05-04 add protection against case when range is less than steplimit (V.Ivanchenko) // 30-06-04 make destructor virtual (V.Ivanchenko) // 27-08-04 Add InitialiseForRun method (V.Ivanchneko) -// 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko) +// 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivanchenko) // 15-04-05 optimize internal interfaces (V.Ivanchenko) // 15-04-05 remove boundary flag (V.Ivanchenko) +// 07-10-05 error in a protection in GetContinuousStepLimit corrected (L.Urban) +// 27-10-05 introduce virtual function MscStepLimitation() (V.Ivanchenko) // ------------------------------------------------------------------- // @@ -113,6 +115,9 @@ public: // Build physics table during initialisation virtual void BuildPhysicsTable(const G4ParticleDefinition&); + // set boolean flag steppingAlgorithm + // ( true/false : standard or 7.1 style process) + virtual void MscStepLimitation(G4bool algorithm, G4double factor = -1.); //------------------------------------------------------------------------ // Generic methods common to all models @@ -303,7 +308,10 @@ inline G4double G4VMultipleScattering::GetContinuousStepLimit( const G4ParticleDefinition* p = track.GetDefinition(); lambda0 = GetLambda(p, e); currentRange = G4LossTableManager::Instance()->GetTrancatedRange(p,e,currentCouple); - if(currentRange < currentMinimalStep) currentRange = currentMinimalStep; + // the next line was in error + // if(currentRange < currentMinimalStep) currentRange = currentMinimalStep; + // the condition/protection correctly should be + if(currentRange < currentMinimalStep) currentMinimalStep = currentRange; truePathLength = TruePathLengthLimit(track,lambda0,currentMinimalStep); //G4cout << "StepLimit: tpl= " << truePathLength << " lambda0= " // << lambda0 << " range= " << currentRange diff --git a/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh b/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh index 9b382ef9b5..1d969f8a7a 100644 --- a/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh +++ b/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4VSubCutoffProcessor.hh,v 1.6 2003/07/21 12:52:06 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/include/G4ionEffectiveCharge.hh b/source/processes/electromagnetic/utils/include/G4ionEffectiveCharge.hh index d8c38287ec..3dd023e8fa 100644 --- a/source/processes/electromagnetic/utils/include/G4ionEffectiveCharge.hh +++ b/source/processes/electromagnetic/utils/include/G4ionEffectiveCharge.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ionEffectiveCharge.hh,v 1.6 2005/02/26 22:01:20 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/src/G4EmCalculator.cc b/source/processes/electromagnetic/utils/src/G4EmCalculator.cc index 00d59f573f..bbc6bd0e5b 100644 --- a/source/processes/electromagnetic/utils/src/G4EmCalculator.cc +++ b/source/processes/electromagnetic/utils/src/G4EmCalculator.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4EmCalculator.cc,v 1.19 2005/05/30 08:55:51 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmCalculator.cc,v 1.24 2005/11/26 15:33:08 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -39,6 +39,7 @@ // 17.11.2004 Change signature of methods, add new methods (V.Ivanchenko) // 08.04.2005 Major optimisation of internal interfaces (V.Ivantchenko) // 08.05.2005 Use updated interfaces (V.Ivantchenko) +// 23.10.2005 Fix computations for ions (V.Ivantchenko) // // Class Description: // @@ -63,6 +64,7 @@ #include "G4RegionStore.hh" #include "G4Element.hh" #include "G4EmCorrections.hh" +#include "G4GenericIon.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -76,6 +78,7 @@ G4EmCalculator::G4EmCalculator() currentCouple = 0; currentMaterial = 0; currentParticle = 0; + baseParticle = 0; currentLambda = 0; chargeSquare = 1.0; massRatio = 1.0; @@ -106,7 +109,7 @@ G4double G4EmCalculator::GetDEDX(G4double kinEnergy, const G4ParticleDefinition* if(couple && UpdateParticle(p, kinEnergy) ) { res = manager->GetDEDX(p, kinEnergy, couple); if(verbose>0) { - G4cout << "E(MeV)= " << kinEnergy/MeV + G4cout << "G4EmCalculator::GetDEDX: E(MeV)= " << kinEnergy/MeV << " DEDX(MeV/mm)= " << res*mm/MeV << " DEDX(MeV*cm^2/g)= " << res*gram/(MeV*cm2*mat->GetDensity()) << " " << p->GetParticleName() @@ -135,7 +138,7 @@ G4double G4EmCalculator::GetRange(G4double kinEnergy, const G4ParticleDefinition if(couple && UpdateParticle(p, kinEnergy)) { res = manager->GetRange(p, kinEnergy, couple); if(verbose>0) { - G4cout << "E(MeV)= " << kinEnergy/MeV + G4cout << "G4EmCalculator::GetRange: E(MeV)= " << kinEnergy/MeV << " range(mm)= " << res/mm << " " << p->GetParticleName() << " in " << mat->GetName() @@ -163,7 +166,7 @@ G4double G4EmCalculator::GetKinEnergy(G4double range, const G4ParticleDefinition if(couple && UpdateParticle(p, 1.0*GeV)) { res = manager->GetEnergy(p, range, couple); if(verbose>0) { - G4cout << "Range(mm)= " << range/mm + G4cout << "G4EmCalculator::GetKinEnergy: Range(mm)= " << range/mm << " KinE(MeV)= " << res/MeV << " " << p->GetParticleName() << " in " << mat->GetName() @@ -261,7 +264,7 @@ G4double G4EmCalculator::GetMeanFreePath(G4double kinEnergy, G4double x = GetCrossSectionPerVolume(kinEnergy,p, processName, mat,region); if(x > 0.0) res = 1.0/x; if(verbose>1) { - G4cout << "E(MeV)= " << kinEnergy/MeV + G4cout << "G4EmCalculator::GetMeanFreePath: E(MeV)= " << kinEnergy/MeV << " MFP(mm)= " << res/mm << " " << p->GetParticleName() << " in " << mat->GetName() @@ -317,31 +320,38 @@ G4double G4EmCalculator::ComputeDEDX(G4double kinEnergy, const G4Material* mat, G4double cut) { + currentMaterial = mat; + currentMaterialName = mat->GetName(); G4double res = 0.0; if(verbose > 1) { - G4cout << "ComputeDEDX: " << p->GetParticleName() - << " in " << mat->GetName() + G4cout << "### G4EmCalculator::ComputeDEDX: " << p->GetParticleName() + << " in " << currentMaterialName << " e(MeV)= " << kinEnergy/MeV << " cut(MeV)= " << cut/MeV << G4endl; } if(FindEmModel(p, processName, kinEnergy)) { // G4cout << "currentModel= " << currentModel << G4endl; if(UpdateParticle(p, kinEnergy)) { - G4double escaled = kinEnergy*massRatio; + G4double escaled = kinEnergy*massRatio; if(baseParticle) { res = currentModel->ComputeDEDXPerVolume(mat, baseParticle, escaled, cut) * chargeSquare; - if(verbose > 1) { - G4cout << baseParticle->GetParticleName() << " E(MeV)= " << escaled - << " DEDX(MeV/mm)= " << res*mm/MeV - << " DEDX(MeV*cm^2/g)= " << res*gram/(MeV*cm2*mat->GetDensity()) - << G4endl; - } + if(verbose > 1) + G4cout << baseParticle->GetParticleName() << " Escaled(MeV)= " << escaled; } else { res = currentModel->ComputeDEDXPerVolume(mat, p, kinEnergy, cut); + if(verbose > 1) G4cout << " no basePart E(MeV)= " << kinEnergy; } - if(isIon && currentModel->HighEnergyLimit() > 100.*MeV) + if(verbose > 1) + G4cout << " DEDX(MeV/mm)= " << res*mm/MeV + << " DEDX(MeV*cm^2/g)= " << res*gram/(MeV*cm2*mat->GetDensity()) + << G4endl; + if(isIon && currentModel->HighEnergyLimit() > 100.*MeV) { res += corr->HighOrderCorrections(p,mat,kinEnergy); - + if(verbose > 1) + G4cout << "After Corrections: DEDX(MeV/mm)= " << res*mm/MeV + << " DEDX(MeV*cm^2/g)= " << res*gram/(MeV*cm2*mat->GetDensity()) + << G4endl; + } // emulate boundary region for different parameterisations G4double eth = currentModel->LowEnergyLimit(); if(eth > 0.05*MeV && eth < 10.*MeV && escaled > eth) { @@ -352,7 +362,10 @@ G4double G4EmCalculator::ComputeDEDX(G4double kinEnergy, } else { res1 = currentModel->ComputeDEDXPerVolume(mat, p, eth, cut); } - if(isIon) res1 += corr->HighOrderCorrections(p,mat,eth/massRatio); + if(verbose > 1) + G4cout << "At boundary energy(MeV)= " << eth/MeV << " DEDX(MeV/mm)= " << res1*mm/MeV + << G4endl; + if(isIon) res1 += corr->HighOrderCorrections(p,mat,eth/massRatio); G4double res0 = res1; if(FindEmModel(p, processName, eth-1.0*keV)) { if(baseParticle) { @@ -362,8 +375,8 @@ G4double G4EmCalculator::ComputeDEDX(G4double kinEnergy, res0 = currentModel->ComputeDEDXPerVolume(mat, p, eth, cut); } } - //G4cout << "eth= " << eth << " escaled= " << escaled << " res0= " << res0 << " res1= " - // << res1 << " q2= " << chargeSquare << G4endl; + //G4cout << "eth= " << eth << " escaled= " << escaled << " res0= " << res0 << " res1= " + // << res1 << " q2= " << chargeSquare << G4endl; res *= (1.0 + (res0/res1 - 1.0)*eth/escaled); } if(verbose > 0) { @@ -372,7 +385,7 @@ G4double G4EmCalculator::ComputeDEDX(G4double kinEnergy, << " DEDX(MeV*cm^2/g)= " << res*gram/(MeV*cm2*mat->GetDensity()) << " cut(MeV)= " << cut/MeV << " " << p->GetParticleName() - << " in " << mat->GetName() + << " in " << currentMaterialName << " Zi^2= " << chargeSquare << G4endl; } @@ -429,6 +442,8 @@ G4double G4EmCalculator::ComputeCrossSectionPerVolume( const G4Material* mat, G4double cut) { + currentMaterial = mat; + currentMaterialName = mat->GetName(); G4double res = 0.0; if(FindEmModel(p, processName, kinEnergy)) { UpdateParticle(p, kinEnergy); @@ -546,54 +561,51 @@ G4bool G4EmCalculator::UpdateParticle(const G4ParticleDefinition* p, G4double ki currentParticle = p; baseParticle = 0; currentParticleName = p->GetParticleName(); - } - isApplicable = false; - if(p->GetPDGCharge() != 0.0) { - const G4VEnergyLossProcess* proc = FindEnergyLossProcess(p); - if(proc) { - isApplicable = true; - baseParticle = proc->BaseParticle(); - massRatio = 1.0; - G4double qbase = 1.0; - G4double q = p->GetPDGCharge()/eplus; - - if(baseParticle) { - massRatio = baseParticle->GetPDGMass()/p->GetPDGMass(); - qbase = baseParticle->GetPDGCharge()/eplus; - } - - if(p->GetParticleType() == "nucleus") { - isIon = true; - chargeSquare = + massRatio = 1.0; + chargeSquare = 1.0; + if(p->GetParticleType() == "nucleus" && + currentParticleName != "deuteron" && currentParticleName != "triton") { + baseParticle = G4GenericIon::GenericIon(); + massRatio = baseParticle->GetPDGMass()/p->GetPDGMass(); + isIon = true; + // G4cout << p->GetParticleName() << " in " << currentMaterial->GetName() + // << " e= " << kinEnergy << G4endl; + chargeSquare = ionEffCharge->EffectiveChargeSquareRatio(p, currentMaterial, kinEnergy); - //G4double emax = currentModel->HighEnergyLimit(p); - //if(emax < 100.*MeV) chargeSquare *= q*q / - // ionEffCharge->EffectiveChargeSquareRatio(p, currentMaterial, emax/massRatio); + //G4cout << "q2= " << chargeSquare << G4endl; + } else { + isIon = false; + const G4VEnergyLossProcess* proc = FindEnergyLossProcess(p); + if(proc) { + baseParticle = proc->BaseParticle(); - } else { - isIon = false; - chargeSquare = q*q; + if(baseParticle) { + massRatio = baseParticle->GetPDGMass()/p->GetPDGMass(); + G4double q = p->GetPDGCharge()/baseParticle->GetPDGCharge(); + chargeSquare *= q*q; + } } - - chargeSquare /= (qbase*qbase); - } } - return isApplicable; + if(isIon) chargeSquare = + ionEffCharge->EffectiveChargeSquareRatio(p, currentMaterial, kinEnergy); + return true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... const G4ParticleDefinition* G4EmCalculator::FindParticle(const G4String& name) { + const G4ParticleDefinition* p = 0; if(name != currentParticleName) { - currentParticle = G4ParticleTable::GetParticleTable()->FindParticle(name); - if(!currentParticle) { + p = G4ParticleTable::GetParticleTable()->FindParticle(name); + if(!p) { G4cout << "### WARNING: G4EmCalculator::FindParticle fails to find " << name << G4endl; } - currentParticleName = name; + } else { + p = currentParticle; } - return currentParticle; + return p; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -669,11 +681,18 @@ void G4EmCalculator::FindLambdaTable(const G4ParticleDefinition* p, if (p != currentParticle || processName != currentName) { currentName = processName; currentLambda = 0; + + G4String partname = p->GetParticleName(); + const G4ParticleDefinition* part = p; + if(p->GetParticleType() == "nucleus" && partname != "deuteron" && partname != "triton") + part = G4GenericIon::GenericIon(); + + G4LossTableManager* lManager = G4LossTableManager::Instance(); const std::vector vel = lManager->GetEnergyLossProcessVector(); G4int n = vel.size(); for(G4int i=0; iGetProcessName() == currentName && (vel[i])->Particle() == p) { + if((vel[i])->GetProcessName() == currentName && (vel[i])->Particle() == part) { currentLambda = (vel[i])->LambdaTable(); isApplicable = true; break; @@ -683,7 +702,7 @@ void G4EmCalculator::FindLambdaTable(const G4ParticleDefinition* p, const std::vector vem = lManager->GetEmProcessVector(); G4int n = vem.size(); for(G4int i=0; iGetProcessName() == currentName && (vem[i])->Particle() == p) { + if((vem[i])->GetProcessName() == currentName && (vem[i])->Particle() == part) { currentLambda = (vem[i])->LambdaTable(); isApplicable = true; break; @@ -694,7 +713,7 @@ void G4EmCalculator::FindLambdaTable(const G4ParticleDefinition* p, const std::vector vmsc = lManager->GetMultipleScatteringVector(); G4int n = vmsc.size(); for(G4int i=0; iGetProcessName() == currentName && (vmsc[i])->Particle() == p) { + if((vmsc[i])->GetProcessName() == currentName && (vmsc[i])->Particle() == part) { currentLambda = (vmsc[i])->LambdaTable(); isApplicable = true; break; @@ -708,14 +727,29 @@ void G4EmCalculator::FindLambdaTable(const G4ParticleDefinition* p, G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, const G4String& processName, - G4double kinEnergy) + G4double kineticEnergy) { G4bool res = false; - if(verbose > 1) { - G4cout << "G4EmCalculator::FindEmModel for " << p->GetParticleName() - << " and " << processName << " at e(MeV)= " << kinEnergy - << G4endl; + if(!p) { + G4cout << "G4EmCalculator::FindEmModel WARNING: no particle defined" << G4endl; + return res; } + G4String partname = p->GetParticleName(); + const G4ParticleDefinition* part = p; + G4double kinEnergy = kineticEnergy; + if(p->GetParticleType() == "nucleus" && partname != "deuteron" && partname != "triton") { + part = G4GenericIon::GenericIon(); + kinEnergy *= part->GetPDGMass()/p->GetPDGMass(); + } + + if(verbose > 1) { + G4cout << "G4EmCalculator::FindEmModel for " << partname + << " (type= " << p->GetParticleType() + << ") and " << processName << " at e(MeV)= " << kinEnergy; + if(p != part) G4cout << " GenericIon is the base particle"; + G4cout << G4endl; + } + // Search for the process currentName = processName; currentModel = 0; @@ -724,7 +758,9 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, const std::vector vel = lManager->GetEnergyLossProcessVector(); G4int n = vel.size(); for(G4int i=0; iGetProcessName() == currentName && (vel[i])->Particle() == p) { + // G4cout << "i= " << i << " part= " << (vel[i])->Particle()->GetParticleName() + // << " proc= " << (vel[i])->GetProcessName() << G4endl; + if((vel[i])->GetProcessName() == currentName && (vel[i])->Particle() == part) { const G4ParticleDefinition* bp = (vel[i])->BaseParticle(); // G4cout << "i= " << i << " bp= " << bp << G4endl; if(!bp) { @@ -738,6 +774,7 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, } } } + // G4cout << "model= " << currentModel << G4endl; break; } } @@ -745,7 +782,7 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, const std::vector vem = lManager->GetEmProcessVector(); G4int n = vem.size(); for(G4int i=0; iGetProcessName() == currentName && (vem[i])->Particle() == p) { + if((vem[i])->GetProcessName() == currentName && (vem[i])->Particle() == part) { currentModel = (vem[i])->SelectModelForMaterial(kinEnergy, idx); isApplicable = true; break; @@ -756,7 +793,7 @@ G4bool G4EmCalculator::FindEmModel(const G4ParticleDefinition* p, const std::vector vmsc = lManager->GetMultipleScatteringVector(); G4int n = vmsc.size(); for(G4int i=0; iGetProcessName() == currentName && (vmsc[i])->Particle() == p) { + if((vmsc[i])->GetProcessName() == currentName && (vmsc[i])->Particle() == part) { currentModel = (vmsc[i])->SelectModelForMaterial(kinEnergy, idx); isApplicable = true; break; @@ -773,12 +810,16 @@ const G4VEnergyLossProcess* G4EmCalculator::FindEnergyLossProcess( const G4ParticleDefinition* p) { const G4VEnergyLossProcess* elp = 0; + G4String partname = p->GetParticleName(); + const G4ParticleDefinition* part = p; + if(p->GetParticleType() == "nucleus" && partname != "deuteron" && partname != "triton") + part = G4GenericIon::GenericIon(); G4LossTableManager* lManager = G4LossTableManager::Instance(); const std::vector vel = lManager->GetEnergyLossProcessVector(); G4int n = vel.size(); for(G4int i=0; iParticle() == p) { + if((vel[i])->Particle() == part) { elp = vel[i]; break; } diff --git a/source/processes/electromagnetic/utils/src/G4EmCorrections.cc b/source/processes/electromagnetic/utils/src/G4EmCorrections.cc index 8dc696cc23..ad7d0430da 100644 --- a/source/processes/electromagnetic/utils/src/G4EmCorrections.cc +++ b/source/processes/electromagnetic/utils/src/G4EmCorrections.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4EmCorrections.cc,v 1.11 2005/06/27 15:29:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmCorrections.cc,v 1.13 2005/11/26 16:59:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -34,7 +34,8 @@ // Creation date: 13.01.2005 // // Modifications: -// 05.05.2005 VI Fix misprint in Mott term +// 05.05.2005 V.Ivanchenko Fix misprint in Mott term +// 26.11.2005 V.Ivanchenko Fix effective charge for heavy ions using original paper // // // Class Description: @@ -73,6 +74,7 @@ G4double G4EmCorrections::HighOrderCorrections(const G4ParticleDefinition* p, // Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397 // and ICRU49 report // valid for kineticEnergy < 0.5 MeV +// Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980 G4double tau = kineticEnergy / p->GetPDGMass(); if(tau <= 0.0) return 0.0; @@ -80,8 +82,12 @@ G4double G4EmCorrections::HighOrderCorrections(const G4ParticleDefinition* p, G4double gamma = 1.0 + tau; G4double bg2 = tau * (tau+2.0); G4double beta2 = bg2/(gamma*gamma); + G4double beta = std::sqrt(beta2); + + G4double q = p->GetPDGCharge()/eplus; + if(q > 2.5) q *= (1.0 - std::exp(-130.0*beta/std::pow(q,0.66666667))); + else if(q > 1.5) q = effCharge.EffectiveCharge(p,material,kineticEnergy)/eplus; - G4double q = effCharge.EffectiveCharge(p,material,kineticEnergy)/eplus; G4double q2 = q*q; G4double ba = beta2/alpha2; G4double BarkasTerm = 0.0; @@ -89,6 +95,9 @@ G4double G4EmCorrections::HighOrderCorrections(const G4ParticleDefinition* p, const G4double* atomDensity = material->GetAtomicNumDensityVector(); G4int numberOfElements = material->GetNumberOfElements(); + G4double Zeff = 0.0; + G4double norm = 0.0; + for (G4int i = 0; iGetZ(); @@ -122,8 +131,12 @@ G4double G4EmCorrections::HighOrderCorrections(const G4ParticleDefinition* p, G4int iw = Index(W, engBarkas, 47); val = Value(W, engBarkas[iw], engBarkas[iw+1], corBarkas[iw], corBarkas[iw+1]); } - BarkasTerm += val*atomDensity[i] * std::sqrt(Z /X)/ X; + BarkasTerm += 1.29*val*atomDensity[i] * std::sqrt(Z /X)/ X; + Zeff += Z*atomDensity[i]; + norm += atomDensity[i]; } + Zeff /= norm; + BarkasTerm *= 2.0*q; @@ -144,8 +157,10 @@ G4double G4EmCorrections::HighOrderCorrections(const G4ParticleDefinition* p, } BlochTerm *= -2.0*y2; - G4double beta = std::sqrt(beta2); - G4double eexc = material->GetIonisation()->GetMeanExcitationEnergy(); + // Estimation of mean square root of the ionisation potential + G4double ze = 2.0*Zeff; + G4double ze1 = std::log(ze); + G4double eexc= material->GetIonisation()->GetMeanExcitationEnergy()*ze1*ze1/ze; G4double invbeta = 1.0/beta; G4double invbeta2= invbeta*invbeta; @@ -168,7 +183,8 @@ G4double G4EmCorrections::HighOrderCorrections(const G4ParticleDefinition* p, + za2*za2*(4.569 - 0.494*beta2 - 2.696*invbeta2) + za3*za2*(1.254*beta + 0.222*invbeta - 1.17*invbeta*invbeta2); - G4double eloss = (BarkasTerm + (BlochTerm + mterm)*material->GetElectronDensity()) * q2 * twopi_mc2_rcl2 *invbeta2; + G4double eloss = (BarkasTerm + (BlochTerm + mterm)*material->GetElectronDensity()) * + q2 * twopi_mc2_rcl2 *invbeta2; return eloss; } diff --git a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc index c911208dbb..00b6829014 100644 --- a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc +++ b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4EmModelManager.cc,v 1.28 2005/05/13 16:54:05 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmModelManager.cc,v 1.31 2005/11/29 08:06:32 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -51,6 +51,8 @@ // 26-01-04 Fix in energy range conditions (V.Ivanchenko) // 24-03-05 Remove check or IsInCharge (V.Ivanchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) +// 18-08-05 Fix cut for e+e- pair production (V.Ivanchenko) +// 29-11-05 Add protection for arithmetic operations with cut=DBL_MAX (V.Ivanchenko) // // Class Description: // @@ -187,7 +189,7 @@ void G4EmModelManager::AddEmModel(G4int num, G4VEmModel* p, regions.push_back(r); orderOfModels.push_back(num); p->DefineForRegion(r); - if (nEmModels) { + if (nEmModels>0) { G4int idx = nEmModels; do {idx--;} while (idx && num < orderOfModels[idx]); if (num >= orderOfModels[idx] && num <= orderOfModels[idx+1]) idx++; @@ -252,10 +254,14 @@ const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, nRegions = 1; std::vector set; set.push_back(world); + G4bool isWorld = false; for (G4int ii=0; ii1) { for (G4int j=1; jLowEnergyLimit(); - G4double tmax = model->HighEnergyLimit(); - if (n>0) tmin = std::max(tmin, eHigh[n-1]); + G4VEmModel* model = models[ii]; + if ( region == regions[ii] ) { - if(1 < verboseLevel) { - G4cout << "Model # " << ii << " for region <"; - if (region) G4cout << region->GetName(); - G4cout << "> " + G4double tmin = model->LowEnergyLimit(); + G4double tmax = model->HighEnergyLimit(); + if (n>0) tmin = std::max(tmin, eHigh[n-1]); + + if(1 < verboseLevel) { + G4cout << "Model #" << ii << " <" << model->GetName() << "> for region <"; + if (region) G4cout << region->GetName(); + G4cout << "> " << " tmin(MeV)= " << tmin/MeV << "; tmax(MeV)= " << tmax/MeV + << "; order= " << orderOfModels[ii] << G4endl; - } + } - if (tmin < tmax) { - modelAtRegion.push_back(ii); - eLow.push_back(tmin); - eHigh.push_back(tmax); - upperEkin[ii] = tmax; - n++; + if (tmin < tmax) { + modelAtRegion.push_back(ii); + eLow.push_back(tmin); + eHigh.push_back(tmax); + upperEkin[ii] = tmax; + n++; + } } } + } else { + n = 1; + models.push_back(0); + modelAtRegion.push_back(nEmModels); + eLow.push_back(0.0); + eHigh.push_back(DBL_MAX); + upperEkin.push_back(DBL_MAX); } eLow[0] = 0.0; if(1 < verboseLevel) { G4cout << "New G4RegionModels set with " << n << " models for region <"; - if (region) G4cout << region->GetName(); + if (region) G4cout << region->GetName(); G4cout << "> Elow(MeV)= "; for(G4int ii=0; iiGetMaterialCutsCouple(i); const G4Material* material = couple->GetMaterial(); const G4ProductionCuts* pcuts = couple->GetProductionCuts(); + G4int reg = nRegions; do {reg--;} while (reg>0 && pcuts != (set[reg]->GetProductionCuts())); idxOfRegionModels[i] = reg; @@ -349,13 +367,15 @@ const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, << G4endl; } - G4double cut = 0.0; - G4double subcut = 0.0; + G4double cut = DBL_MAX; + G4double subcut = DBL_MAX; if(secondaryParticle) { size_t idx = 1; if( secondaryParticle == G4Gamma::Gamma() ) idx = 0; cut = (*theCoupleTable->GetEnergyCutsVector(idx))[i]; - subcut = minSubRange*cut; + if( secondaryParticle == G4Positron::Positron() && cut < DBL_MAX ) + cut += (*theCoupleTable->GetEnergyCutsVector(2))[i] + 2.0*electron_mass_c2; + if( cut < DBL_MAX ) subcut = minSubRange*cut; } G4int nm = setOfRegionModels[reg]->NumberOfModels(); @@ -366,12 +386,12 @@ const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, G4double tcutmin = model->MinEnergyCut(particle, couple); cut = std::max(cut, tcutmin); - G4double x = std::max(cut*minSubRange, tcutmin); - subcut = std::max(subcut, x); + subcut = std::max(subcut, tcutmin); if(1 < verboseLevel) { G4cout << "The model # " << j << "; tcutmin(MeV)= " << tcutmin/MeV << "; tcut(MeV)= " << cut/MeV + << "; tsubcut(MeV)= " << subcut/MeV << G4endl; } } @@ -442,7 +462,9 @@ void G4EmModelManager::FillDEDXVector(G4PhysicsVector* aVector, dedxLow[0] = 0.0; e = upperEkin[regModels->ModelIndex(0)]; - dedxHigh[0] = models[regModels->ModelIndex(0)]->ComputeDEDX(couple,particle,e,cut); + G4VEmModel* model = models[regModels->ModelIndex(0)]; + dedxHigh[0] = 0.0; + if(model) dedxHigh[0] = model->ComputeDEDX(couple,particle,e,cut); if(nmod > 1) { for(j=1; j upperEkin[regModels->ModelIndex(k)] ); } - G4double dedx = models[regModels->ModelIndex(k)]->ComputeDEDX(couple,particle,e,cut)*fac; + model = models[regModels->ModelIndex(k)]; + G4double dedx = 0.0; + if(model) dedx = model->ComputeDEDX(couple,particle,e,cut)*fac; if(dedx < 0.0) dedx = 0.0; if(2 < verboseLevel) { @@ -510,7 +534,7 @@ void G4EmModelManager::FillDEDXVectorForPreciseRange( size_t i = couple->GetIndex(); if(2 < verboseLevel) { - G4cout << "G4EmModelManager::FillDEDXVector() for " + G4cout << "G4EmModelManager::FillDEDXVectorForPreciseRange() for " << couple->GetMaterial()->GetName() << G4endl; } @@ -540,7 +564,9 @@ void G4EmModelManager::FillDEDXVectorForPreciseRange( dedxLow[0] = 0.0; e = upperEkin[regModels->ModelIndex(0)]; - dedxHigh[0] = models[regModels->ModelIndex(0)]->ComputeDEDX(couple,particle,e,e); + G4VEmModel* model = models[regModels->ModelIndex(0)]; + dedxHigh[0] = 0.0; + if(model) dedxHigh[0] = model->ComputeDEDX(couple,particle,e,e); if(nmod > 1) { for(j=1; j upperEkin[regModels->ModelIndex(k)] ); } - G4double dedx = models[regModels->ModelIndex(k)]->ComputeDEDX(couple,particle,e,e)*fac; + model = models[regModels->ModelIndex(k)]; + G4double dedx = 0.0; + if(model) dedx = model->ComputeDEDX(couple,particle,e,e)*fac; if(dedx < 0.0) dedx = 0.0; if(2 < verboseLevel) { @@ -635,7 +663,9 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, sigmaLow[0] = 0.0; e = upperEkin[regModels->ModelIndex(0)]; - sigmaHigh[0] = models[regModels->ModelIndex(0)]->CrossSection(couple,particle,e,cut,e); + G4VEmModel* model = models[regModels->ModelIndex(0)]; + sigmaHigh[0] = 0.0; + if(model) sigmaHigh[0] = model->CrossSection(couple,particle,e,cut,e); if(2 < verboseLevel) { G4cout << "### For material " << couple->GetMaterial()->GetName() @@ -685,7 +715,9 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, } while (k upperEkin[regModels->ModelIndex(k)] ); } - G4double cross = models[regModels->ModelIndex(k)]->CrossSection(couple,particle,e,cut,e)*fac; + model = models[regModels->ModelIndex(k)]; + G4double cross = 0.0; + if(model) cross = model->CrossSection(couple,particle,e,cut,e)*fac; if(j==0 && startFromNull) cross = 0.0; if(2 < verboseLevel) { @@ -707,7 +739,7 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, G4bool startFromNull) { if(1 < verboseLevel) { - G4cout << "G4EmModelManager::BuildLambdaSubTable() for particle " + G4cout << "G4EmModelManager::FillSubLambdaTable() for particle " << particle->GetParticleName() << G4endl; } @@ -730,7 +762,7 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, sigmaLow.resize(nmod); sigmaHigh.resize(nmod); - if(0 < verboseLevel) { + if(2 < verboseLevel) { G4cout << "There are " << nmod << " models for " << couple->GetMaterial()->GetName() << G4endl; } @@ -754,7 +786,9 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, << G4endl; } - sigmaHigh[0] = models[regModels->ModelIndex(0)]->CrossSection(couple,particle,e,subcut,cut); + G4VEmModel* model = models[regModels->ModelIndex(0)]; + sigmaHigh[0] = 0.0; + if(model) sigmaHigh[0] = model->CrossSection(couple,particle,e,subcut,cut); if(nmod > 1) { @@ -786,7 +820,9 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, } while (k upperEkin[regModels->ModelIndex(k)] ); } - G4double cross=models[regModels->ModelIndex(k)]->CrossSection(couple,particle,e,subcut,cut)*fac; + model = models[regModels->ModelIndex(k)]; + G4double cross = 0.0; + if(model) cross = model->CrossSection(couple,particle,e,subcut,cut)*fac; if(j==0 && startFromNull) cross = 0.0; if(2 < verboseLevel) { diff --git a/source/processes/electromagnetic/utils/src/G4EmMultiModel.cc b/source/processes/electromagnetic/utils/src/G4EmMultiModel.cc index faa50bfb28..e0454b3846 100644 --- a/source/processes/electromagnetic/utils/src/G4EmMultiModel.cc +++ b/source/processes/electromagnetic/utils/src/G4EmMultiModel.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4EmMultiModel.cc,v 1.4 2005/04/15 11:40:46 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/src/G4EmProcessOptions.cc b/source/processes/electromagnetic/utils/src/G4EmProcessOptions.cc index 9e387d6985..5be054f84b 100644 --- a/source/processes/electromagnetic/utils/src/G4EmProcessOptions.cc +++ b/source/processes/electromagnetic/utils/src/G4EmProcessOptions.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4EmProcessOptions.cc,v 1.7 2005/05/03 08:09:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EmProcessOptions.cc,v 1.11 2005/12/05 12:13:07 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -80,14 +80,14 @@ void G4EmProcessOptions::SetLossFluctuations(G4bool val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4EmProcessOptions::SetSubCutoff(G4bool val) +void G4EmProcessOptions::SetSubCutoff(G4bool val, const G4Region* r) { const std::vector& v = theManager->GetEnergyLossProcessVector(); std::vector::const_iterator itr; for(itr = v.begin(); itr != v.end(); itr++) { G4VEnergyLossProcess* p = *itr; - if(p) p->SetSubCutoff(val); + if(p) p->ActivateSubCutoff(val, r); } } @@ -330,6 +330,9 @@ void G4EmProcessOptions::SetVerbose(G4int val, const G4String& name) if("all" == name) all = true; const std::vector& v = theManager->GetEnergyLossProcessVector(); + + if(all) theManager->SetVerbose(val); + std::vector::const_iterator itr; for(itr = v.begin(); itr != v.end(); itr++) { G4VEnergyLossProcess* p = *itr; @@ -397,3 +400,16 @@ void G4EmProcessOptions::ActivateDeexcitation(G4bool val, const G4Region* r) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void G4EmProcessOptions::SetMscStepLimitation(G4bool algorithm, G4double factor) +{ + const std::vector& u = + theManager->GetMultipleScatteringVector(); + std::vector::const_iterator itm; + for(itm = u.begin(); itm != u.end(); itm++) { + G4VMultipleScattering* s = *itm; + if(s) s->MscStepLimitation(algorithm, factor); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc index aa62be08ae..080fe4625b 100644 --- a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc +++ b/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnergyLossMessenger.cc,v 1.11 2003/10/13 10:49:18 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4EnergyLossMessenger.cc,v 1.12 2005/11/11 23:28:56 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -41,7 +41,7 @@ #include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithADoubleAndUnit.hh" -#include +#include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -172,11 +172,9 @@ void G4EnergyLossMessenger::SetNewValue(G4UIcommand* command,G4String newValue) if (command == StepFuncCmd) { G4double v1,v2; - char unts[30]; - const char* t = newValue; - std::istrstream is((char*)t); - is >> v1 >> v2 >> unts; - G4String unt = unts; + G4String unt; + std::istringstream is(newValue); + is >> v1 >> v2 >> unt; v2 *= G4UIcommand::ValueOf(unt); G4VEnergyLoss::SetStepFunction(v1,v2); lossTables->SetStepLimits(v1,v2); diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc index 1ddffa379f..90449b47d7 100644 --- a/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc +++ b/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc @@ -22,7 +22,7 @@ // // // $Id: G4EnergyLossTables.cc,v 1.32 2004/12/01 18:01:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // first version created by P.Urban , 06/04/1998 diff --git a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc index 0947334461..c645a4a2fa 100644 --- a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc +++ b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4LossTableBuilder.cc,v 1.17 2005/04/12 18:13:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/src/G4LossTableManager.cc b/source/processes/electromagnetic/utils/src/G4LossTableManager.cc index b73bdbe4ec..aab31894d4 100644 --- a/source/processes/electromagnetic/utils/src/G4LossTableManager.cc +++ b/source/processes/electromagnetic/utils/src/G4LossTableManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4LossTableManager.cc,v 1.58 2005/05/27 18:38:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LossTableManager.cc,v 1.61 2005/10/27 15:05:39 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -179,7 +179,7 @@ void G4LossTableManager::Register(G4VEnergyLossProcess* p) tables_are_built.push_back(false); all_tables_are_built = false; if(!lossFluctuationFlag) p->SetLossFluctuations(false); - if(subCutoffFlag) p->SetSubCutoff(true); + if(subCutoffFlag) p->ActivateSubCutoff(true); if(stepFunctionActive) p->SetStepFunction(maxRangeVariation, maxFinalStep); if(integralActive) p->SetIntegral(integral); if(minEnergyActive) p->SetMinKinEnergy(minKinEnergy); @@ -488,11 +488,11 @@ G4VEnergyLossProcess* G4LossTableManager::BuildTables(const G4ParticleDefinition loss_map[aParticle] = em; for (G4int j=0; jBuildLambdaTable(); - loss_list[j]->SetLambdaTable(lambdaTable); - if (0 < loss_list[j]->NumberOfSubCutoffRegions()) { - lambdaTable = loss_list[j]->BuildLambdaSubTable(); - loss_list[j]->SetSubLambdaTable(lambdaTable); + G4VEnergyLossProcess* p = loss_list[j]; + p->SetLambdaTable(p->BuildLambdaTable()); + if (0 < p->NumberOfSubCutoffRegions()) { + p->SetSubLambdaTable(p->BuildLambdaSubTable()); + if( p != em) em->AddCollaborativeProcess(p); } } if (1 < verbose) { @@ -520,7 +520,7 @@ void G4LossTableManager::SetSubCutoff(G4bool val) { subCutoffFlag = val; for(G4int i=0; iSetSubCutoff(val); + if(loss_vector[i]) loss_vector[i]->ActivateSubCutoff(val); } } diff --git a/source/particles/bosons/src/G4VBoson.cc b/source/processes/electromagnetic/utils/src/G4VEmFluctuationModel.cc similarity index 68% rename from source/particles/bosons/src/G4VBoson.cc rename to source/processes/electromagnetic/utils/src/G4VEmFluctuationModel.cc index ea0ee36468..f7be86ad06 100644 --- a/source/particles/bosons/src/G4VBoson.cc +++ b/source/processes/electromagnetic/utils/src/G4VEmFluctuationModel.cc @@ -20,32 +20,41 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VEmFluctuationModel.cc,v 1.1 2005/07/25 18:14:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// $Id: G4VBoson.cc,v 1.3 2001/07/11 10:01:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// ------------------------------------------------------------------- // -// -// -------------------------------------------------------------- -// GEANT 4 class implementation file +// GEANT4 Class file // -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// -------------------------------------------------------------- +// +// File name: G4VEmFluctuationModel +// +// Author: Vladimir Ivanchenko +// +// Creation date: 25.07.2005 +// +// Modifications: +// +// +// Class Description: +// +// Abstract class for interface to simualtion of energy loss fluctuations -#include "G4VBoson.hh" +// ------------------------------------------------------------------- +// -const G4VBoson & G4VBoson::operator=(const G4VBoson &right) -{ - if (this != &right) { - } return right; -} +#include "G4VEmFluctuationModel.hh" + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VEmFluctuationModel::G4VEmFluctuationModel(const G4String& nam) + : name(nam) +{} + +G4VEmFluctuationModel::~G4VEmFluctuationModel() +{} -G4int G4VBoson::operator==(const G4VBoson &right) const -{ - return (this->GetParticleName() == right.GetParticleName()); -} -G4int G4VBoson::operator!=(const G4VBoson &right) const -{ - return (this->GetParticleName() != right.GetParticleName()); -} diff --git a/source/processes/electromagnetic/utils/src/G4VEmModel.cc b/source/processes/electromagnetic/utils/src/G4VEmModel.cc new file mode 100644 index 0000000000..1a62750718 --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4VEmModel.cc @@ -0,0 +1,82 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4VEmModel.cc,v 1.3 2005/10/25 18:28:58 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4VEmModel +// +// Author: Vladimir Ivanchenko +// +// Creation date: 25.07.2005 +// +// Modifications: +// 25.10.2005 Set default highLimit=100.TeV (V.Ivanchenko) +// +// +// Class Description: +// +// Abstract interface to energy loss models + +// ------------------------------------------------------------------- +// + +#include "G4VEmModel.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VEmModel::G4VEmModel(const G4String& nam): + lowLimit(0.1*keV), highLimit(100.0*TeV), fluc(0), name(nam), pParticleChange(0) +{} + +G4VEmModel::~G4VEmModel() +{} + +G4double G4VEmModel::CrossSectionPerVolume( + const G4Material* material, + const G4ParticleDefinition* p, + G4double ekin, + G4double emin, + G4double emax) +{ + G4double cross = 0.0; + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* theAtomNumDensityVector = material->GetVecNbOfAtomsPerVolume(); + size_t nelm = material->GetNumberOfElements(); + for (size_t i=0; iGetZ(),elm->GetN(),emin,emax); + xsec[i] = cross; + } + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + diff --git a/source/processes/electromagnetic/utils/src/G4VEmProcess.cc b/source/processes/electromagnetic/utils/src/G4VEmProcess.cc index 73db6bbceb..7015b63204 100644 --- a/source/processes/electromagnetic/utils/src/G4VEmProcess.cc +++ b/source/processes/electromagnetic/utils/src/G4VEmProcess.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VEmProcess.cc,v 1.30 2005/05/30 08:22:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VEmProcess.cc,v 1.32 2005/09/04 17:03:53 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -40,8 +40,10 @@ // 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivanchenko) // 11-03-05 Shift verbose level by 1, add applyCuts and killPrimary flags (V.Ivanchenko) // 14-03-05 Update logic PostStepDoIt (V.Ivanchenko) -// 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) -// 18-04-05 Use G4ParticleChangeForGamma (V.Ivantchenko) +// 08-04-05 Major optimisation of internal interfaces (V.Ivanchenko) +// 18-04-05 Use G4ParticleChangeForGamma (V.Ivanchenko) +// 25-07-05 Add protection: integral mode only for charged particles (V.Ivanchenko) +// 04-09-05 default lambdaFactor 0.8 (V.Ivanchenko) // // // Class Description: @@ -81,7 +83,7 @@ G4VEmProcess::G4VEmProcess(const G4String& name, G4ProcessType type): particle(0), secondaryParticle(0), nLambdaBins(90), - lambdaFactor(0.1), + lambdaFactor(0.8), currentCouple(0), integral(false), meanFreePath(true), @@ -338,6 +340,9 @@ void G4VEmProcess::PrintInfoDefinition() if(verboseLevel > 0) { G4cout << G4endl << GetProcessName() << ": " ; PrintInfo(); + if(integral) { + G4cout << " Integral mode is used "<< G4endl; + } } if (!buildLambdaTable) return; @@ -570,7 +575,7 @@ const G4PhysicsTable* G4VEmProcess::LambdaTable() const void G4VEmProcess::SetIntegral(G4bool val) { - integral = val; + if(particle && particle != theGamma) integral = val; if(integral) buildLambdaTable = true; } diff --git a/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc b/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc index 77c8746772..bcdfaf1754 100644 --- a/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc +++ b/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VEnergyLoss.cc,v 1.45 2004/12/01 18:01:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- diff --git a/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc b/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc index fa3b28e3dd..1c6151339c 100644 --- a/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc +++ b/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VEnergyLossProcess.cc,v 1.57 2005/05/27 18:38:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VEnergyLossProcess.cc,v 1.69 2005/10/27 14:04:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -81,6 +81,13 @@ // 11-03-05 Shift verbose level by 1 (V.Ivantchenko) // 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko) // 11-04-05 Use MaxSecondaryEnergy from a model (V.Ivanchenko) +// 25-07-05 Add extra protection PostStep for non-integral mode (V.Ivanchenko) +// 12-08-05 Integral=false; SetStepFunction(0.2, 0.1*mm) (mma) +// 18-08-05 Return back both AlongStep and PostStep from 7.0 (V.Ivanchenko) +// 02-09-05 Default StepFunction 0.2 1 mm + integral (V.Ivanchenko) +// 04-09-05 default lambdaFactor 0.8 (V.Ivanchenko) +// 05-10-05 protection against 0 energy loss added (L.Urban) +// 17-10-05 protection above has been removed (L.Urban) // // Class Description: // @@ -109,7 +116,6 @@ #include "G4Electron.hh" #include "G4Positron.hh" #include "G4Proton.hh" -#include "G4VSubCutoffProcessor.hh" #include "G4ProcessManager.hh" #include "G4UnitsTable.hh" #include "G4GenericIon.hh" @@ -117,13 +123,16 @@ #include "G4Region.hh" #include "G4RegionStore.hh" #include "G4PhysicsTableHelper.hh" +#include "G4Navigator.hh" +#include "G4TransportationManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4VEnergyLossProcess::G4VEnergyLossProcess(const G4String& name, G4ProcessType type): - G4VContinuousDiscreteProcess(name, type), + G4VContinuousDiscreteProcess(name, type), nSCoffRegions(0), idxSCoffRegions(0), + nProcesses(0), theDEDXTable(0), theRangeTableForLoss(0), theDEDXunRestrictedTable(0), @@ -143,11 +152,10 @@ G4VEnergyLossProcess::G4VEnergyLossProcess(const G4String& name, G4ProcessType t nDEDXBins(90), nDEDXBinsForRange(70), nLambdaBins(90), + nWarnings(0), linLossLimit(0.05), minSubRange(0.1), - defaultRoverRange(0.2), - defaultIntegralRange(1.0), - lambdaFactor(0.1), + lambdaFactor(0.8), mfpKinEnergy(0.0), lossFluctuationFlag(true), lossFluctuationArePossible(true), @@ -156,7 +164,8 @@ G4VEnergyLossProcess::G4VEnergyLossProcess(const G4String& name, G4ProcessType t integral(true), meanFreePath(false), aboveCSmax(true), - isIonisation(true) + isIonisation(true), + useSubCutoff(false) { lowestKinEnergy = 1.*eV; @@ -167,13 +176,17 @@ G4VEnergyLossProcess::G4VEnergyLossProcess(const G4String& name, G4ProcessType t pParticleChange = &fParticleChange; // default dRoverRange and finalRange - SetStepFunction(defaultIntegralRange, 1.0*mm); + SetStepFunction(0.2, 1.0*mm); SetVerboseLevel(1); + thePositron = G4Positron::Positron(); modelManager = new G4EmModelManager(); (G4LossTableManager::Instance())->Register(this); - scoffProcessors.clear(); scoffRegions.clear(); + scProcesses.clear(); + + navigator = (G4TransportationManager::GetTransportationManager()) + ->GetNavigatorForTracking(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -193,18 +206,6 @@ G4VEnergyLossProcess::~G4VEnergyLossProcess() if(theSubLambdaTable) theSubLambdaTable->clearAndDestroy(); } - if (nSCoffRegions) { - for (G4int i=0; iDeRegister(this); } @@ -221,12 +222,16 @@ void G4VEnergyLossProcess::Clear() if(theRangeAtMaxEnergy) delete [] theRangeAtMaxEnergy; if(theEnergyOfCrossSectionMax) delete [] theEnergyOfCrossSectionMax; if(theCrossSectionMax) delete [] theCrossSectionMax; + if(idxSCoffRegions) delete [] idxSCoffRegions; theDEDXAtMaxEnergy = 0; theRangeAtMaxEnergy = 0; - theEnergyOfCrossSectionMax = 0, - theCrossSectionMax = 0, + theEnergyOfCrossSectionMax = 0; + theCrossSectionMax = 0; tablesAreBuilt = false; + + scTracks.clear(); + scProcesses.clear(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -281,7 +286,7 @@ void G4VEnergyLossProcess::PreparePhysicsTable(const G4ParticleDefinition& part) theRangeTableForLoss = G4PhysicsTableHelper::PreparePhysicsTable(theRangeTableForLoss); theInverseRangeTable = G4PhysicsTableHelper::PreparePhysicsTable(theInverseRangeTable); } - theLambdaTable = G4PhysicsTableHelper::PreparePhysicsTable(theLambdaTable); + theLambdaTable = G4PhysicsTableHelper::PreparePhysicsTable(theLambdaTable); if (nSCoffRegions) theSubLambdaTable = G4PhysicsTableHelper::PreparePhysicsTable(theSubLambdaTable); } @@ -303,26 +308,23 @@ void G4VEnergyLossProcess::PreparePhysicsTable(const G4ParticleDefinition& part) theCuts = modelManager->Initialise(particle, secondaryParticle, minSubRange, verboseLevel); // Sub Cutoff Regime + if (nSCoffRegions>0) { + theSubCuts = modelManager->SubCutoff(); - idxSCoffRegions.clear(); - - const G4ProductionCutsTable* theCoupleTable= + const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - if (nSCoffRegions) { - const G4DataVector* theSubCuts = modelManager->SubCutoff(); - - for (G4int i=0; iInitialise(particle, secondaryParticle, theCuts, theSubCuts); - } + size_t numOfCouples = theCoupleTable->GetTableSize(); + idxSCoffRegions = new G4int[numOfCouples]; + for (size_t j=0; jGetMaterialCutsCouple(j); const G4ProductionCuts* pcuts = couple->GetProductionCuts(); - G4int reg = nSCoffRegions; - do {reg--;} while (reg && pcuts != (scoffRegions[reg]->GetProductionCuts())); - idxSCoffRegions.push_back(reg); + G4int reg = 0; + for(G4int i=0; iGetProductionCuts()) reg = 1; + } + idxSCoffRegions[j] = reg; } } @@ -392,28 +394,22 @@ void G4VEnergyLossProcess::UpdateEmModel(const G4String& nam, G4double emin, G4d //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossProcess::AddSubCutoffProcessor(G4VSubCutoffProcessor* p, - const G4Region* r) +void G4VEnergyLossProcess::ActivateSubCutoff(G4bool val, const G4Region* r) { - if( !p ) { - G4cout << "G4VEnergyLossProcess::AddSubCutoffProcessor WARNING: no SubCutoffProcessor defined." - << G4endl; - return; - } G4RegionStore* regionStore = G4RegionStore::GetInstance(); - if (!r) r = regionStore->GetRegion("DefaultRegionForTheWorld", false); - if (nSCoffRegions) { - for (G4int i=0; iGetRegion("DefaultRegionForTheWorld", false); + if (nSCoffRegions) { + for (G4int i=0; iGetParticleName() << " eScaled(MeV)= " << preStepScaledEnergy/MeV - << " slim(mm)= " << fRange/mm + << " range(mm)= " << fRange/mm << " s(mm)= " << length/mm << " q^2= " << chargeSqRatio << " md= " << d->GetPDGMass() + << " status= " << track.GetTrackStatus() << G4endl; } */ @@ -644,126 +641,241 @@ G4VParticleChange* G4VEnergyLossProcess::AlongStepDoIt(const G4Track& track, } eloss = (ScaledKinEnergyForLoss(r) - ScaledKinEnergyForLoss(x))/massRatio; - /* - if(-1 < verboseLevel) { +/* + if(-1 < verboseLevel && eloss == 0.0) { G4cout << "Long STEP: rPre(mm)= " << r/mm << " rPost(mm)= " << x/mm << " ePre(MeV)= " << preStepScaledEnergy/MeV << " eloss(MeV)= " << eloss/MeV - << " eloss0(MeV)= " + << " eloss0(MeV)= " << GetDEDXForScaledEnergy(preStepScaledEnergy)*length/MeV << G4endl; } - */ +*/ } const G4DynamicParticle* dynParticle = track.GetDynamicParticle(); G4VEmModel* currentModel = SelectModel(preStepScaledEnergy); - G4double tmax = currentModel->MaxSecondaryKinEnergy(dynParticle); - tmax = std::min(tmax,(*theCuts)[currentMaterialIndex]); - /* - G4double eloss0 = eloss; - if(-1 < verboseLevel) { +/* + // G4double eloss0 = eloss; + if(-1 < verboseLevel && eloss == 0.0) { G4cout << "Before fluct: eloss(MeV)= " << eloss/MeV - << " tmax= " << tmax << " e-eloss= " << preStepKinEnergy-eloss - << " fluct= " << lossFluctuationFlag + << " step(mm)= " << length/mm + << " range(mm)= " << fRange/mm + << " fluct= " << lossFluctuationFlag << G4endl; } - */ +*/ + + // Corrections, which cannot be tabulated + CorrectionsAlongStep(currentCouple, dynParticle, eloss, length); // Sample fluctuations - if (lossFluctuationFlag && eloss < preStepKinEnergy) { + if (lossFluctuationFlag && eloss + lowestKinEnergy < preStepKinEnergy) { + G4double tmax = std::min(currentModel->MaxSecondaryKinEnergy(dynParticle), + (*theCuts)[currentMaterialIndex]); eloss = currentModel->GetModelOfFluctuations()-> SampleFluctuations(currentMaterial,dynParticle,tmax,length,eloss); - } + /* - if(-1 < verboseLevel) { - G4cout << "After fluct: eloss(MeV)= " << eloss/MeV - << " fluc= " << (eloss-eloss0)/MeV - << " currentChargeSquare= " << chargeSquare - << " massRatio= " << massRatio - << G4endl; - } + if(-1 < verboseLevel) { + G4cout << "After fluct: eloss(MeV)= " << eloss/MeV + << " fluc= " << (eloss-eloss0)/MeV + << " currentChargeSquare= " << chargeSquare + << " massRatio= " << massRatio + << " tmax= " << tmax + << G4endl; + } */ + } - // Corrections, which cannot be tabulated - CorrectionsAlongStep(currentCouple, dynParticle, eloss, length); - G4double finalT = preStepKinEnergy - eloss; - if (finalT <= lowestKinEnergy) finalT = 0.0; - eloss = preStepKinEnergy-finalT; + if (finalT <= lowestKinEnergy) { + eloss += finalT; + finalT = 0.0; + } + // SubCutOff + if(useSubCutoff) { + if(idxSCoffRegions[currentMaterialIndex]) { + + G4double preSafety = step.GetPreStepPoint()->GetSafety(); + G4double rcut = currentCouple->GetProductionCuts()->GetProductionCut(0); + if(preSafety - length < rcut) { + + G4double postSafety = + navigator->ComputeSafety(step.GetPostStepPoint()->GetPosition()); + if(std::min(preSafety, postSafety) < rcut) { + + SampleSubCutSecondaries(scTracks, step, eloss, currentModel); + + if(nProcesses) { + for(G4int i=0; iAddSubCutoffSecondaries(scTracks, step, + eloss, preStepScaledEnergy); + } + } + G4int n = scTracks.size(); + if(n) { + fParticleChange.SetNumberOfSecondaries(n); + for(G4int i=0; iAddSecondary(scTracks[i]); + } + scTracks.clear(); + } + } + } + } + } + + // Energy balanse fParticleChange.SetProposedKineticEnergy(finalT); fParticleChange.ProposeLocalEnergyDeposit(eloss); - /* - if(-1 < verboseLevel) { +/* + if(-1 < verboseLevel && eloss == 0.0) { G4cout << "Final value eloss(MeV)= " << eloss/MeV << " preStepKinEnergy= " << preStepKinEnergy << " postStepKinEnergy= " << finalT << " lossFlag= " << lossFluctuationFlag + << " status= " << track.GetTrackStatus() << G4endl; } - */ +*/ return &fParticleChange; - } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossProcess::SampleSubCutSecondaries(std::vector& tracks, + const G4Step& step, + G4double& eloss, + G4VEmModel* model) +{ + G4double subcut = (*theSubCuts)[currentMaterialIndex]; + if(eloss < subcut) return; + G4bool b; + G4double cross = chargeSqRatio*(((*theSubLambdaTable)[currentMaterialIndex])-> + GetValue(preStepScaledEnergy, b)); + if(cross <= 0.0) return; + + G4StepPoint* preStepPoint = step.GetPreStepPoint(); + G4double length = step.GetStepLength(); + + G4ThreeVector prepoint = preStepPoint->GetPosition(); + G4ThreeVector dr = step.GetPostStepPoint()->GetPosition() - prepoint; + G4double pretime = preStepPoint->GetGlobalTime(); + G4double dt = length/preStepPoint->GetVelocity(); + G4double fragment = 0.0; + + const G4Track* track = step.GetTrack(); + const G4DynamicParticle* dp = track->GetDynamicParticle(); + const G4TouchableHandle& hand = track->GetTouchableHandle(); + G4double cut = (*theCuts)[currentMaterialIndex]; + do { + G4double del = -std::log(G4UniformRand())/cross; + fragment += del/length; + if (fragment > 1.0) break; + std::vector* newp = + model->SampleSecondaries(currentCouple, dp, subcut, cut); + if (newp) { + + G4DynamicParticle* p; + G4int nNew = newp->size(); + for (G4int i=0; iGetKineticEnergy(); + if (p->GetDefinition() == thePositron) e += electron_mass_c2; + + if (e <= eloss) { + eloss -= e; + G4ThreeVector r = prepoint + fragment*dr; + G4Track* t = new G4Track(p, pretime + fragment*dt, r); + t->SetTouchableHandle(hand); + tracks.push_back(t); + + } else { + + delete p; + } + } + delete newp; + } + } while (fragment < 1.0); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4VParticleChange* G4VEnergyLossProcess::PostStepDoIt(const G4Track& track, - const G4Step& step) + const G4Step& step) { fParticleChange.InitializeForPostStep(track); G4double finalT = track.GetKineticEnergy(); - G4double postStepScaledEnergy = finalT*massRatio; + if(finalT == 0.0) return &fParticleChange; + G4double postStepScaledEnergy = finalT*massRatio; + /* + if(-1 < verboseLevel) { + G4cout << GetProcessName() + << "::PostStepDoIt: E(MeV)= " << finalT/MeV + << G4endl; + } + */ // Integral approach if (integral) { G4double lx = GetLambdaForScaledEnergy(postStepScaledEnergy); - if(preStepLambdaGetParticleName() + /* + if(preStepLambdaGetParticleName() << " and " << GetProcessName() << " E(MeV)= " << finalT/MeV << " preLambda= " << preStepLambda << " < " << lx << " (postLambda) " << G4endl; + nWarnings++; } + */ if(preStepLambda*G4UniformRand() > lx) return G4VContinuousDiscreteProcess::PostStepDoIt(track,step); } G4VEmModel* currentModel = SelectModel(postStepScaledEnergy); - G4double tmax = (*theCuts)[currentMaterialIndex]; + const G4DynamicParticle* dynParticle = track.GetDynamicParticle(); + G4double tcut = (*theCuts)[currentMaterialIndex]; + G4double tmax = currentModel->MaxSecondaryKinEnergy(dynParticle); - std::vector* newp = SecondariesPostStep( - currentModel, currentCouple, track.GetDynamicParticle(), tmax); + if (tcut < tmax) { + std::vector* newp = SecondariesPostStep( + currentModel, currentCouple, dynParticle, tcut); - if (newp) { - G4int num = newp->size(); - fParticleChange.SetNumberOfSecondaries(num); - for (G4int i=0; isize(); + fParticleChange.SetNumberOfSecondaries(num); + for (G4int i=0; iGetDefinition(); - G4cout << GetProcessName() - << "::PostStepDoIt: Sample secondary; E= " << finalT/MeV - << " MeV; model= (" << currentModel->LowEnergyLimit(pd) - << ", " << currentModel->HighEnergyLimit(pd) << ")" + G4cout << "::PostStepDoIt: Sample secondary; Efin= " << finalT/MeV + << " MeV; model= (" << currentModel->LowEnergyLimit() + << ", " << currentModel->HighEnergyLimit() << ")" << " preStepLambda= " << preStepLambda + << " dir= " << track.GetMomentumDirection() + << " status= " << track.GetTrackStatus() << G4endl; } */ - - finalT = fParticleChange.GetProposedKineticEnergy(); if (finalT <= lowestKinEnergy) { fParticleChange.SetProposedKineticEnergy(0.0); return &fParticleChange; @@ -789,17 +901,19 @@ void G4VEnergyLossProcess::PrintInfoDefinition() << " in " << nLambdaBins << " bins." << G4endl; PrintInfo(); - if(theRangeTableForLoss) { + if(theRangeTableForLoss) G4cout << " Step function: finalRange(mm)= " << finalRange/mm << ", dRoverRange= " << dRoverRange << ", integral: " << integral << G4endl; - } - if(thePreciseRangeTable) { + + if(thePreciseRangeTable) G4cout << " Precise range table up" << " to " << G4BestUnit(maxKinEnergyForRange,"Energy") << " in " << nDEDXBinsForRange << " bins." << G4endl; - } + + if(nSCoffRegions>0) + G4cout << " Subcutoff sampling in " << nSCoffRegions << " regions" << G4endl; if(2 < verboseLevel) { G4cout << "DEDXTable address= " << theDEDXTable << G4endl; @@ -954,12 +1068,6 @@ void G4VEnergyLossProcess::SetLambdaTable(G4PhysicsTable* p) void G4VEnergyLossProcess::SetSubLambdaTable(G4PhysicsTable* p) { if(theSubLambdaTable != p) theSubLambdaTable = p; - - if (nSCoffRegions) { - for (G4int i=0; iSetLambdaSubTable(theSubLambdaTable); - } - } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -998,7 +1106,13 @@ G4PhysicsVector* G4VEnergyLossProcess::LambdaPhysicsVector(const G4MaterialCutsC G4PhysicsVector* G4VEnergyLossProcess::SubLambdaPhysicsVector(const G4MaterialCutsCouple* couple) { - return LambdaPhysicsVector(couple); + G4double cut = (*theSubCuts)[couple->GetIndex()]; + G4int nbins = nLambdaBins; + G4double tmin = std::max(MinPrimaryEnergy(particle, couple->GetMaterial(), cut), + minKinEnergy); + if(tmin >= maxKinEnergy) tmin = 0.5*maxKinEnergy; + G4PhysicsVector* v = new G4PhysicsLogVector(tmin, maxKinEnergy, nbins); + return v; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -1050,10 +1164,6 @@ void G4VEnergyLossProcess::SetStepLimits(G4double v1, G4double v2) void G4VEnergyLossProcess::SetIntegral(G4bool val) { - if(integral != val) { - if(val) dRoverRange = defaultIntegralRange; - else dRoverRange = defaultRoverRange; - } integral = val; } @@ -1313,11 +1423,6 @@ void G4VEnergyLossProcess::SetLossFluctuations(G4bool val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossProcess::SetSubCutoff(G4bool) -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - void G4VEnergyLossProcess::SetRandomStep(G4bool val) { rndmStepFlag = val; diff --git a/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc b/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc index 9ca02e6d2d..56db1dd9bb 100644 --- a/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc +++ b/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VMultipleScattering.cc,v 1.36 2005/04/18 17:31:56 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VMultipleScattering.cc,v 1.37 2005/10/27 11:33:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // @@ -48,6 +48,7 @@ // 11-03-05 Shift verbose level by 1 (V.Ivantchenko) // 15-04-05 optimize internal interface (V.Ivanchenko) // 15-04-05 remove boundary flag (V.Ivanchenko) +// 27-10-05 introduce virtual function MscStepLimitation() (V.Ivanchenko) // // Class Description: // @@ -297,3 +298,8 @@ G4bool G4VMultipleScattering::RetrievePhysicsTable(const G4ParticleDefinition* p //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void G4VMultipleScattering::MscStepLimitation(G4bool, G4double) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc b/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc index be3d824645..da25caf592 100644 --- a/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc +++ b/source/processes/electromagnetic/utils/src/G4ionEffectiveCharge.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4ionEffectiveCharge.cc,v 1.10 2005/02/27 18:07:33 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/xrays/History b/source/processes/electromagnetic/xrays/History index 5d57f3a8e6..f9dc967c08 100644 --- a/source/processes/electromagnetic/xrays/History +++ b/source/processes/electromagnetic/xrays/History @@ -1,4 +1,4 @@ -$Id: History,v 1.38 2005/06/06 11:08:09 vnivanch Exp $ +$Id: History,v 1.44 2005/11/25 09:42:23 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,28 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +25 Aug 05: V.Ivant (xrays-V07-01-03) +- G4XTRTransparentRegRadModel: abs -> std::abs + +15 Aug 05: V.Ivant (xrays-V07-01-02) +14 Oct 05: V. Grichine +- new XTR models were added with G4VXTRenergyLoss::fExitFlux=true for + the description of XTR after radiator. These are: G4XTRRegularRadModel, + G4XTRGammaRadModel, G4XTRTransparentRegRadModel. XTR process was + transformed to be discrete. + + +17 Aug 05: P.Gumplinger (xrays-V07-01-01) +- change variable name MeanNumPhotons to MeanNumberOfPhotons + in G4Scintillation.cc and G4Cerenkov.cc to conform with the + documentation in the ApplicationDevelopersGuide + +28 Jul 05: P.Gumplinger (xrays-V07-01-00) +- add G4ProcessType to all constructors + +27 Jun 05: P.Gumplinger (xrays-V07-00-04) +- Change IsApplicable for G4Cerenkov to exclude 'chargedgeantino' + 06 June 05: V.Ivant (xrays-V07-00-03) - V.Grichine fix in G4TransparentRegXTRadiator - low limit of integration over theta, which strongly effect the results for ALICE diff --git a/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh b/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh index 1af832a92a..88ac8aa658 100644 --- a/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh +++ b/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Cerenkov.hh,v 1.5 2001/07/11 10:03:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Cerenkov.hh,v 1.7 2005/07/28 23:57:07 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -34,7 +34,8 @@ // Version: 2.0 // Created: 1996-02-21 // Author: Juliet Armstrong -// Updated: 1999-10-29 add method and class descriptors +// Updated: 2005-07-28 add G4ProcessType to constructor +// 1999-10-29 add method and class descriptors // 1997-04-09 by Peter Gumplinger // > G4MaterialPropertiesTable; new physics/tracking scheme // mail: gum@triumf.ca @@ -88,7 +89,8 @@ public: // Without description // Constructors and Destructor //////////////////////////////// - G4Cerenkov(const G4String& processName = "Cerenkov"); + G4Cerenkov(const G4String& processName = "Cerenkov", + G4ProcessType type = fElectromagnetic); // G4Cerenkov(const G4Cerenkov &right); @@ -169,7 +171,11 @@ private: inline G4bool G4Cerenkov::IsApplicable(const G4ParticleDefinition& aParticleType) { - return (aParticleType.GetPDGCharge() != 0); + if (aParticleType.GetParticleName() != "chargedgeantino" ) { + return (aParticleType.GetPDGCharge() != 0); + } else { + return false; + } } inline diff --git a/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh b/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh index 9d74e337cf..f6a08219aa 100644 --- a/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh +++ b/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh @@ -22,7 +22,7 @@ // // // $Id: G4ForwardXrayTR.hh,v 1.13 2004/08/11 14:41:31 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4ForwardXrayTR -- header file // diff --git a/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh index c7946d15bb..9cf7b94aec 100644 --- a/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh @@ -22,7 +22,7 @@ // // // $Id: G4GammaXTRadiator.hh,v 1.3 2005/04/05 08:27:21 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh index fb9f3a56d4..4a594d6cdc 100644 --- a/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh @@ -22,7 +22,7 @@ // // // $Id: G4RegularXTRadiator.hh,v 1.2 2002/01/18 17:26:20 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh index 92e5029979..e72c209d0a 100644 --- a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh +++ b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scintillation.hh,v 1.11 2002/11/25 18:48:51 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Scintillation.hh,v 1.12 2005/07/28 23:56:53 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -34,7 +34,8 @@ // Version: 1.0 // Created: 1998-11-07 // Author: Peter Gumplinger -// Updated: 2002-11-21 change to user G4Poisson for small MeanNumPotons +// Updated: 2005-07-28 add G4ProcessType to constructor +// 2002-11-21 change to user G4Poisson for small MeanNumPotons // 2002-11-07 allow for fast and slow scintillation // 2002-11-05 make use of constant material properties // 2002-05-16 changed to inherit from VRestDiscreteProcess @@ -93,7 +94,8 @@ public: // Without description // Constructors and Destructor //////////////////////////////// - G4Scintillation(const G4String& processName = "Scintillation"); + G4Scintillation(const G4String& processName = "Scintillation", + G4ProcessType type = fElectromagnetic); // G4Scintillation(const G4Scintillation &right); diff --git a/source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh index 4947c8995e..3ffcc0c380 100644 --- a/source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4StrawTubeXTRadiator.hh @@ -22,7 +22,7 @@ // // // $Id: G4StrawTubeXTRadiator.hh,v 1.1 2005/04/22 09:44:18 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh index 963a4d7ede..9db9d2cff4 100644 --- a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh +++ b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TransitionRadiation.hh,v 1.7 2003/06/03 08:11:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TransitionRadiation.hh,v 1.8 2005/07/28 23:56:30 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4TransitionRadiation -- header file // @@ -43,6 +43,7 @@ // 02.02.00, V.Grichine, new data fEnergy and fVarAngle for double // numerical integration in inherited classes // 03.06.03, V.Ivanchenko fix compilation warnings +// 28.07.05, P.Gumplinger add G4ProcessType to constructor #ifndef G4TransitionRadiation_h #define G4TransitionRadiation_h @@ -59,7 +60,8 @@ public: // Constructors - G4TransitionRadiation( const G4String& processName = "TR") ; + G4TransitionRadiation( const G4String& processName = "TR", + G4ProcessType type = fElectromagnetic) ; // G4TransitionRadiation(const G4TransitionRadiation& right) ; diff --git a/source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh index acc959de2f..8cbc3eac59 100644 --- a/source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh +++ b/source/processes/electromagnetic/xrays/include/G4TransparentRegXTRadiator.hh @@ -22,7 +22,7 @@ // // // $Id: G4TransparentRegXTRadiator.hh,v 1.1 2005/04/05 08:28:04 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4VTRModel.hh b/source/processes/electromagnetic/xrays/include/G4VTRModel.hh index 495080f509..e259b0677e 100644 --- a/source/processes/electromagnetic/xrays/include/G4VTRModel.hh +++ b/source/processes/electromagnetic/xrays/include/G4VTRModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTRModel.hh,v 1.1 2004/03/01 11:49:49 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VTRModel -- header file // diff --git a/source/processes/electromagnetic/xrays/include/G4VTransitionRadiation.hh b/source/processes/electromagnetic/xrays/include/G4VTransitionRadiation.hh index 20b7426b9b..47c7601d0b 100644 --- a/source/processes/electromagnetic/xrays/include/G4VTransitionRadiation.hh +++ b/source/processes/electromagnetic/xrays/include/G4VTransitionRadiation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTransitionRadiation.hh,v 1.1 2004/03/01 11:49:49 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTransitionRadiation.hh,v 1.2 2005/07/28 23:56:07 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VTransitionRadiation -- header file // @@ -30,6 +30,7 @@ // // History: // 29.02.04, V.Ivanchenko created +// 28.07.05, P.Gumplinger add G4ProcessType to constructor #ifndef G4VTransitionRadiation_h #define G4VTransitionRadiation_h @@ -51,7 +52,8 @@ class G4VTransitionRadiation : public G4VDiscreteProcess public: // Constructors - G4VTransitionRadiation( const G4String& processName = "TR"); + G4VTransitionRadiation( const G4String& processName = "TR", + G4ProcessType type = fElectromagnetic); // Destructor diff --git a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh index ea47069c44..a8144ec09f 100644 --- a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh +++ b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VXTRenergyLoss.hh,v 1.8 2005/04/05 08:27:21 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VXTRenergyLoss.hh,v 1.12 2005/10/07 16:19:14 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // /////////////////////////////////////////////////////////////////////////// @@ -32,12 +32,14 @@ // method // // History: -// 15.01.02 V. Grichine first version +// 06.10.05 V. Grichine first step to discrete process +// 15.01.02 V. Grichine first version +// 28.07.05, P.Gumplinger add G4ProcessType to constructor // -#ifndef G4VXTRenergyLoss_h -#define G4VXTRenergyLoss_h 1 +#ifndef G4XTRenergyLoss_h +#define G4XTRenergyLoss_h 1 #include @@ -54,27 +56,34 @@ #include "G4Step.hh" #include "G4Track.hh" #include "G4VContinuousProcess.hh" +#include "G4VDiscreteProcess.hh" #include "G4DynamicParticle.hh" #include "G4Material.hh" #include "G4PhysicsTable.hh" #include "G4MaterialPropertiesTable.hh" #include "G4PhysicsOrderedFreeVector.hh" #include "G4Integrator.hh" +#include "G4ParticleChange.hh" -class G4VXTRenergyLoss : public G4VContinuousProcess + +class G4VParticleChange; + + +class G4XTRenergyLoss : public G4VDiscreteProcess // G4VContinuousProcess { public: - G4VXTRenergyLoss (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, + G4XTRenergyLoss (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, G4double,G4double,G4int, - const G4String & processName = "XTRenergyLoss"); - virtual ~G4VXTRenergyLoss (); + const G4String & processName = "XTRenergyLoss", + G4ProcessType type = fElectromagnetic); + virtual ~G4XTRenergyLoss (); - // Pure virtuals must be implemented in inherited particular TR radiators + // These virtual has to be implemented in inherited particular TR radiators virtual G4double GetStackFactor( G4double energy, G4double gamma, - G4double varAngle ) = 0 ; + G4double varAngle ); G4bool IsApplicable(const G4ParticleDefinition&); @@ -87,6 +96,13 @@ public: G4VParticleChange* AlongStepDoIt(const G4Track& aTrack, const G4Step& aStep); + + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep); + + G4double GetMeanFreePath(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); void BuildTable() ; void BuildEnergyTable() ; @@ -168,25 +184,28 @@ protected: static G4PhysicsLogVector* fProtonEnergyVector ; - static G4double fTheMinEnergyTR ; // static min TR energy - static G4double fTheMaxEnergyTR ; // static max TR energy - G4double fMinEnergyTR ; // min TR energy in material - G4double fMaxEnergyTR ; // max TR energy in material - static G4double fTheMaxAngle ; // max theta of TR quanta - static G4double fTheMinAngle ; // max theta of TR quanta - G4double fMaxThetaTR ; // max theta of TR quanta - static G4int fBinTR ; // number of bins in TR vectors + static G4double fTheMinEnergyTR; // static min TR energy + static G4double fTheMaxEnergyTR; // static max TR energy + G4double fMinEnergyTR; // min TR energy in material + G4double fMaxEnergyTR; // max TR energy in material + static G4double fTheMaxAngle; // max theta of TR quanta + static G4double fTheMinAngle; // max theta of TR quanta + G4double fMaxThetaTR; // max theta of TR quanta + static G4int fBinTR; // number of bins in TR vectors - static G4double fMinProtonTkin ; // min Tkin of proton in tables - static G4double fMaxProtonTkin ; // max Tkin of proton in tables - static G4int fTotBin ; // number of bins in log scale - G4double fGamma ; // current Lorentz factor - G4double fEnergy ; // energy and - G4double fVarAngle ; // angle squared + static G4double fMinProtonTkin; // min Tkin of proton in tables + static G4double fMaxProtonTkin; // max Tkin of proton in tables + static G4int fTotBin; // number of bins in log scale + G4double fGamma; // current Lorentz factor + G4double fEnergy; // energy and + G4double fVarAngle; // angle squared + G4double fLambda; static G4double fPlasmaCof ; // physical consts for plasma energy - static G4double fCofTR ; + static G4double fCofTR ; + + G4bool fExitFlux; G4double fSigma1, fSigma2 ; // plasma energy Sq of matter1/2 G4int fMatIndex1, fMatIndex2 ; @@ -201,6 +220,10 @@ protected: G4int fGasIntervalNumber ; G4double fGasThick ; G4double fAlphaPlate, fAlphaGas ; + + G4ParticleChange fParticleChange; }; +typedef G4XTRenergyLoss G4VXTRenergyLoss; + #endif diff --git a/source/parameterisations/trd_clusters/include/G4GamDistrXTRdEdx.hh b/source/processes/electromagnetic/xrays/include/G4XTRGammaRadModel.hh similarity index 79% rename from source/parameterisations/trd_clusters/include/G4GamDistrXTRdEdx.hh rename to source/processes/electromagnetic/xrays/include/G4XTRGammaRadModel.hh index b8a40e4412..8b095e0dd0 100644 --- a/source/parameterisations/trd_clusters/include/G4GamDistrXTRdEdx.hh +++ b/source/processes/electromagnetic/xrays/include/G4XTRGammaRadModel.hh @@ -21,13 +21,11 @@ // ******************************************************************** // // -// $Id: G4GamDistrXTRdEdx.hh,v 1.2 2004/12/07 09:00:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// // /////////////////////////////////////////////////////////////////////////// // -// Rough model describing a radiator of X-ray transition radiation. +// Rough model describing a gamma function distributed radiator of X-ray +// transition radiation. XTR is considered to flux after radiator! // Thicknesses of plates and gas gaps are distributed according to gamma // distribution. x are thicknesses of plates or gas gaps: // @@ -43,24 +41,26 @@ // // // History: -// 27.02.01 V. Grichine, first version +// +// 03.10.05 V. Grichine, first version // -#ifndef G4GamDistrXTRdEdx_h -#define G4GamDistrXTRdEdx_h 1 +#ifndef G4XTRGammaRadModel_h +#define G4XTRGammaRadModel_h 1 -#include "G4VXTRdEdx.hh" -#include "G4VFastSimulationModel.hh" +#include "G4VXTRenergyLoss.hh" -class G4GamDistrXTRdEdx : public G4VXTRdEdx +class G4XTRGammaRadModel : public G4XTRenergyLoss { public: - G4GamDistrXTRdEdx (G4LogicalVolume *anEnvelope, + G4XTRGammaRadModel (G4LogicalVolume *anEnvelope, G4double,G4double, - G4double,G4double ); - ~G4GamDistrXTRdEdx (); + G4Material*,G4Material*, + G4double,G4double,G4int, + const G4String & processName = "XTRgammaRadiator" ); + ~G4XTRGammaRadModel (); // Pure virtual function from base class @@ -68,7 +68,7 @@ public: private: - G4double fAlphaPlate, fAlphaGas ; + // G4double fAlphaPlate, fAlphaGas ; }; #endif diff --git a/source/parameterisations/trd_clusters/include/G4RegularXTRdEdx.hh b/source/processes/electromagnetic/xrays/include/G4XTRRegularRadModel.hh similarity index 78% rename from source/parameterisations/trd_clusters/include/G4RegularXTRdEdx.hh rename to source/processes/electromagnetic/xrays/include/G4XTRRegularRadModel.hh index 228e40a930..f91c2c65da 100644 --- a/source/parameterisations/trd_clusters/include/G4RegularXTRdEdx.hh +++ b/source/processes/electromagnetic/xrays/include/G4XTRRegularRadModel.hh @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4RegularXTRdEdx.hh,v 1.1 2004/11/09 09:20:32 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ // // /////////////////////////////////////////////////////////////////////////// // -// Model describing a radiator of X-ray transition radiation. +// Model describing a regular radiator of X-ray transition radiation. +// It is Garibian like model for XTR after radiator // Thicknesses of plates and gas gaps are fixed. // We suppose that: // formation zone ~ mean thickness << absorption length @@ -36,22 +35,24 @@ // // // History: -// 27.02.01 V. Grichine, first version +// 10.10.05 V. Grichine, first version // -#ifndef G4RegularXTRdEdx_h -#define G4RegularXTRdEdx_h 1 +#ifndef G4XTRRegularRadModel_h +#define G4XTRRegularRadModel_h 1 -#include "G4VXTRdEdx.hh" -#include "G4VFastSimulationModel.hh" +#include "G4VXTRenergyLoss.hh" -class G4RegularXTRdEdx : public G4VXTRdEdx + +class G4XTRRegularRadModel : public G4XTRenergyLoss { public: - G4RegularXTRdEdx (G4LogicalVolume *anEnvelope,G4double,G4double); - ~G4RegularXTRdEdx (); + G4XTRRegularRadModel (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, + G4double,G4double,G4int, + const G4String & processName = "XTRegularModel"); + ~G4XTRRegularRadModel (); // Pure virtual function from base class diff --git a/source/parameterisations/trd_clusters/include/G4RegularXrayTRmodel.hh b/source/processes/electromagnetic/xrays/include/G4XTRTransparentRegRadModel.hh similarity index 75% rename from source/parameterisations/trd_clusters/include/G4RegularXrayTRmodel.hh rename to source/processes/electromagnetic/xrays/include/G4XTRTransparentRegRadModel.hh index 51ee8b967e..65fc2be0ec 100644 --- a/source/parameterisations/trd_clusters/include/G4RegularXrayTRmodel.hh +++ b/source/processes/electromagnetic/xrays/include/G4XTRTransparentRegRadModel.hh @@ -20,14 +20,10 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4RegularXrayTRmodel.hh,v 1.1 2004/11/09 09:20:32 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ -// // /////////////////////////////////////////////////////////////////////////// // -// Model describing a radiator of X-ray transition radiation. +// Process describing a radiator of X-ray transition radiation. // Thicknesses of plates and gas gaps are fixed. // We suppose that: // formation zone ~ mean thickness << absorption length @@ -36,22 +32,28 @@ // // // History: -// 10.02.00 V. Grichine, first version +// +// 05.04.05 V. Grichine, first version // -#ifndef G4RegularXrayTRmodel_h -#define G4RegularXrayTRmodel_h 1 +#ifndef G4XTRTransparentRegRadModel_h +#define G4XTRTransparentRegRadModel_h 1 -#include "G4VXrayTRadModel.hh" -#include "G4VFastSimulationModel.hh" +#include "G4VXTRenergyLoss.hh" -class G4RegularXrayTRmodel : public G4VXrayTRadModel +class G4XTRTransparentRegRadModel : public G4VXTRenergyLoss { public: - G4RegularXrayTRmodel (G4LogicalVolume *anEnvelope,G4double,G4double); - ~G4RegularXrayTRmodel (); + G4XTRTransparentRegRadModel (G4LogicalVolume *anEnvelope,G4Material*,G4Material*, + G4double,G4double,G4int, + const G4String & processName = "XTRTransparentRegRadModel"); + ~G4XTRTransparentRegRadModel (); + + // reimplementation of base class function in analytical way + + G4double SpectralXTRdEdx(G4double energy); // Pure virtual function from base class diff --git a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc index 52161fa70d..3d19b7b203 100644 --- a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc +++ b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Cerenkov.cc,v 1.17 2004/12/10 18:49:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Cerenkov.cc,v 1.20 2005/08/17 17:30:39 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // Cerenkov Radiation Class Implementation @@ -33,11 +33,15 @@ // Version: 2.1 // Created: 1996-02-21 // Author: Juliet Armstrong -// Updated: 2001-09-17, migration of Materials to pure STL (mma) +// Updated: 2005-08-17 by Peter Gumplinger +// > change variable name MeanNumPhotons -> MeanNumberOfPhotons +// 2005-07-28 by Peter Gumplinger +// > add G4ProcessType to constructor +// 2001-09-17, migration of Materials to pure STL (mma) // 2000-11-12 by Peter Gumplinger // > add check on CerenkovAngleIntegrals->IsFilledVectorExist() // in method GetAverageNumberOfPhotons -// > and a test for MeanNumPhotons <= 0.0 in DoIt +// > and a test for MeanNumberOfPhotons <= 0.0 in DoIt // 2000-09-18 by Peter Gumplinger // > change: aSecondaryPosition=x0+rand*aStep.GetDeltaPosition(); // aSecondaryTrack->SetTouchable(0); @@ -73,8 +77,8 @@ using namespace std; // Constructors ///////////////// -G4Cerenkov::G4Cerenkov(const G4String& processName) - : G4VContinuousProcess(processName) +G4Cerenkov::G4Cerenkov(const G4String& processName, G4ProcessType type) + : G4VContinuousProcess(processName, type) { fTrackSecondariesFirst = false; fMaxPhotons = 0; @@ -148,10 +152,10 @@ G4Cerenkov::AlongStepDoIt(const G4Track& aTrack, const G4Step& aStep) if (!Rindex) return G4VContinuousProcess::AlongStepDoIt(aTrack, aStep); - G4double MeanNumPhotons = + G4double MeanNumberOfPhotons = GetAverageNumberOfPhotons(aParticle,aMaterial,Rindex); - if (MeanNumPhotons <= 0.0) { + if (MeanNumberOfPhotons <= 0.0) { // return unchanged particle and no secondaries @@ -164,9 +168,9 @@ G4Cerenkov::AlongStepDoIt(const G4Track& aTrack, const G4Step& aStep) G4double step_length; step_length = aStep.GetStepLength(); - MeanNumPhotons = MeanNumPhotons * step_length; + MeanNumberOfPhotons = MeanNumberOfPhotons * step_length; - G4int NumPhotons = (G4int) G4Poisson(MeanNumPhotons); + G4int NumPhotons = (G4int) G4Poisson(MeanNumberOfPhotons); if (NumPhotons <= 0) { @@ -438,12 +442,12 @@ G4Cerenkov::GetContinuousStepLimit(const G4Track& aTrack, aMaterialPropertiesTable->GetProperty("RINDEX"); if (!Rindex) return DBL_MAX; - G4double MeanNumPhotons = + G4double MeanNumberOfPhotons = GetAverageNumberOfPhotons(aParticle,aMaterial,Rindex); - if(MeanNumPhotons <= 0.0) return DBL_MAX; + if(MeanNumberOfPhotons <= 0.0) return DBL_MAX; - G4double StepLimit = fMaxPhotons / MeanNumPhotons; + G4double StepLimit = fMaxPhotons / MeanNumberOfPhotons; return StepLimit; } diff --git a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc index 4df69b381a..94ccbd9d03 100644 --- a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc +++ b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc @@ -22,7 +22,7 @@ // // // $Id: G4ForwardXrayTR.cc,v 1.12 2004/12/02 08:31:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4ForwardXrayTR class -- implementation file diff --git a/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc index bb43dbc9ad..4b10639ce5 100644 --- a/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc @@ -22,7 +22,7 @@ // // // $Id: G4GammaXTRadiator.cc,v 1.3 2004/12/02 08:31:07 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include diff --git a/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc index 4123ab523e..b420a541ae 100644 --- a/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RegularXTRadiator.cc,v 1.6 2005/04/12 09:10:55 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RegularXTRadiator.cc,v 1.7 2005/08/06 13:59:35 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include @@ -78,6 +78,7 @@ G4RegularXTRadiator::GetStackFactor( G4double energy, G4double gamma, G4double varAngle ) { + // some gamma (10000/1000) like algorithm G4double result, Za, Zb, Ma, Mb; @@ -94,7 +95,7 @@ G4RegularXTRadiator::GetStackFactor( G4double energy, G4complex Ha = pow(Ca,-fAlphaPlate); G4complex Hb = pow(Cb,-fAlphaGas); G4complex H = Ha*Hb; - + G4complex F1 = (1.0 - Ha)*(1.0 - Hb )/(1.0 - H) * G4double(fPlateNumber); @@ -102,14 +103,16 @@ G4RegularXTRadiator::GetStackFactor( G4double energy, * (1.0 - pow(H,fPlateNumber)); G4complex R = (F1 + F2)*OneInterfaceXTRdEdx(energy,gamma,varAngle); - + result = 2.0*real(R); return result; + + /* + // numerically stable but slow algorithm - - /* // numerically unstable algorithm - G4double result, Qa, Qb, Q, aZa, bZb, aMa, bMb, D; + G4double result, Qa, Qb, Q, aZa, bZb, aMa, bMb; // , D; + aZa = fPlateThick/GetPlateFormationZone(energy,gamma,varAngle); bZb = fGasThick/GetGasFormationZone(energy,gamma,varAngle); aMa = fPlateThick*GetPlateLinearPhotoAbs(energy); @@ -122,6 +125,7 @@ G4RegularXTRadiator::GetStackFactor( G4double energy, G4complex Hb( exp(-0.5*bMb)*cos(bZb), -exp(-0.5*bMb)*sin(bZb) ); G4complex H = Ha*Hb; + G4complex Hs = conj(H); D = 1.0 /( (1 - sqrt(Q))*(1 - sqrt(Q)) + 4*sqrt(Q)*sin(0.5*(aZa+bZb))*sin(0.5*(aZa+bZb)) ); @@ -130,6 +134,17 @@ G4RegularXTRadiator::GetStackFactor( G4double energy, G4complex F2 = (1.0-Ha)*(1.0-Ha)*Hb*(1.0-Hs)*(1.0-Hs) * (1.0 - pow(H,fPlateNumber)) * D*D; G4complex R = (F1 + F2)*OneInterfaceXTRdEdx(energy,gamma,varAngle); + + + G4complex S(0.,0.), c(1.,0.); + G4int k; + for(k = 1; k < fPlateNumber; k++) + { + c *= H; + S += ( G4double(fPlateNumber) - G4double(k) )*c; + } + G4complex R = (2.- Ha - 1./Ha)*S + (1. - Ha)*G4double(fPlateNumber); + R *= OneInterfaceXTRdEdx(energy,gamma,varAngle); result = 2.0*real(R); return result; */ diff --git a/source/processes/electromagnetic/xrays/src/G4Scintillation.cc b/source/processes/electromagnetic/xrays/src/G4Scintillation.cc index 4fdfa3209a..49dd93441e 100644 --- a/source/processes/electromagnetic/xrays/src/G4Scintillation.cc +++ b/source/processes/electromagnetic/xrays/src/G4Scintillation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scintillation.cc,v 1.22 2004/12/10 18:49:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Scintillation.cc,v 1.25 2005/08/17 17:30:25 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // Scintillation Light Class Implementation @@ -33,10 +33,14 @@ // Version: 1.0 // Created: 1998-11-07 // Author: Peter Gumplinger -// Updated: 2004-08-05 by Peter Gumplinger +// Updated: 2005-08-17 by Peter Gumplinger +// > change variable name MeanNumPhotons -> MeanNumberOfPhotons +// 2005-07-28 by Peter Gumplinger +// > add G4ProcessType to constructor +// 2004-08-05 by Peter Gumplinger // > changed StronglyForced back to Forced in GetMeanLifeTime // 2002-11-21 by Peter Gumplinger -// > change to use G4Poisson for small MeanNumPhotons +// > change to use G4Poisson for small MeanNumberOfPhotons // 2002-11-07 by Peter Gumplinger // > now allow for fast and slow scintillation component // 2002-11-05 by Peter Gumplinger @@ -76,8 +80,9 @@ using namespace std; // Constructors ///////////////// -G4Scintillation::G4Scintillation(const G4String& processName) - : G4VRestDiscreteProcess(processName) +G4Scintillation::G4Scintillation(const G4String& processName, + G4ProcessType type) + : G4VRestDiscreteProcess(processName, type) { fTrackSecondariesFirst = false; @@ -176,15 +181,15 @@ G4Scintillation::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) ScintillationYield = YieldFactor * ScintillationYield; - G4double MeanNumPhotons = ScintillationYield * TotalEnergyDeposit; + G4double MeanNumberOfPhotons = ScintillationYield * TotalEnergyDeposit; G4int NumPhotons; - if (MeanNumPhotons > 10.) { - G4double sigma = ResolutionScale * sqrt(MeanNumPhotons); - NumPhotons = G4int(G4RandGauss::shoot(MeanNumPhotons,sigma)+0.5); + if (MeanNumberOfPhotons > 10.) { + G4double sigma = ResolutionScale * sqrt(MeanNumberOfPhotons); + NumPhotons = G4int(G4RandGauss::shoot(MeanNumberOfPhotons,sigma)+0.5); } else { - NumPhotons = G4int(G4Poisson(MeanNumPhotons)); + NumPhotons = G4int(G4Poisson(MeanNumberOfPhotons)); } if (NumPhotons <= 0) { diff --git a/source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc index d9f5dfd000..50d5f2ca8a 100644 --- a/source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4StrawTubeXTRadiator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StrawTubeXTRadiator.cc,v 1.1 2005/04/22 09:44:18 grichine Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4StrawTubeXTRadiator.cc,v 1.2 2005/08/06 13:59:35 grichine Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include @@ -49,17 +49,17 @@ G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(G4LogicalVolume *anEnvelope, if( unishut ) { - fAlphaPlate = 25; - fAlphaGas = 25; - G4cout<<"straw uniform shuting: "<<"fAlphaPlate = " + fAlphaPlate = 1./3.; + fAlphaGas = 12.4; + G4cout<<"straw uniform shooting: "<<"fAlphaPlate = " <GetNoDaughters() ; @@ -88,11 +97,13 @@ G4VXTRenergyLoss::G4VXTRenergyLoss(G4LogicalVolume *anEnvelope, { G4Exception("No plates in X-ray TR radiator") ; } + // default is XTR dEdx, not flux after radiator + fExitFlux = false; + fLambda = DBL_MAX; // Mean thicknesses of plates and gas gaps fPlateThick = a ; fGasThick = b ; - fTotalDist = fPlateNumber*(fPlateThick+fGasThick) ; G4cout<<"total radiator thickness = "<GetLogicalVolume() != fEnvelope ) lambda = DBL_MAX; + else + { + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + kinEnergy = aParticle->GetKineticEnergy(); + mass = aParticle->GetDefinition()->GetPDGMass(); + gamma = 1.0 + kinEnergy/mass; + if(verboseLevel) + { + G4cout<<" gamma = "< fTheMaxAngle ) fMaxThetaTR = fTheMaxAngle ; + if( fMaxThetaTR > fTheMaxAngle ) fMaxThetaTR = fTheMaxAngle; else { - if( fMaxThetaTR < fTheMinAngle ) fMaxThetaTR = fTheMinAngle ; + if( fMaxThetaTR < fTheMinAngle ) fMaxThetaTR = fTheMinAngle; } G4PhysicsLinearVector* angleVector = new G4PhysicsLinearVector(0.0, fMaxThetaTR, fBinTR ); - G4double energySum = 0.0 ; - G4double angleSum = 0.0 ; + G4double energySum = 0.0; + G4double angleSum = 0.0; -G4Integrator integral; +G4Integrator integral; - energyVector->PutValue(fBinTR-1,energySum) ; - angleVector->PutValue(fBinTR-1,angleSum) ; + energyVector->PutValue(fBinTR-1,energySum); + angleVector->PutValue(fBinTR-1,angleSum); for( iTR = fBinTR - 2 ; iTR >= 0 ; iTR-- ) { energySum += radiatorCof*fCofTR*integral.Legendre10( - this,&G4VXTRenergyLoss::SpectralXTRdEdx, + this,&G4XTRenergyLoss::SpectralXTRdEdx, energyVector->GetLowEdgeEnergy(iTR), - energyVector->GetLowEdgeEnergy(iTR+1) ) ; + energyVector->GetLowEdgeEnergy(iTR+1) ); // angleSum += fCofTR*integral.Legendre96( - // this,&G4VXTRenergyLoss::AngleXTRdEdx, + // this,&G4XTRenergyLoss::AngleXTRdEdx, // angleVector->GetLowEdgeEnergy(iTR), - // angleVector->GetLowEdgeEnergy(iTR+1) ) ; + // angleVector->GetLowEdgeEnergy(iTR+1) ); - energyVector->PutValue(iTR,energySum/fTotalDist) ; - // angleVector ->PutValue(iTR,angleSum) ; + energyVector->PutValue(iTR,energySum/fTotalDist); + // angleVector ->PutValue(iTR,angleSum); } - G4cout< integral; // // -void G4VXTRenergyLoss::BuildEnergyTable() +void G4XTRenergyLoss::BuildEnergyTable() { return ; } @@ -268,18 +362,146 @@ void G4VXTRenergyLoss::BuildEnergyTable() // // -void G4VXTRenergyLoss::BuildAngleTable() +void G4XTRenergyLoss::BuildAngleTable() { return ; } +////////////////////////////////////////////////////////////////////////////// +// +// The main function which is responsible for the treatment of a particle passage +// trough G4Envelope with discrete generation of G4Gamma + +G4VParticleChange* G4XTRenergyLoss::PostStepDoIt( const G4Track& aTrack, + const G4Step& aStep ) +{ + G4int iTkin, iPlace; + G4double energyTR, theta, phi, dirX, dirY, dirZ; + + + fParticleChange.Initialize(aTrack); + + if(verboseLevel) + { + G4cout<<"Start of G4XTRenergyLoss::PostStepDoIt "<GetKineticEnergy() ; + G4double mass = aParticle->GetDefinition()->GetPDGMass() ; + G4double gamma = 1.0 + kinEnergy/mass ; + + if(verboseLevel > 0 ) + { + G4cout<<"gamma = "<GetPosition(); + G4ParticleMomentum direction = aParticle->GetMomentumDirection(); + G4double startTime = pPostStepPoint->GetGlobalTime(); + + for( iTkin = 0; iTkin < fTotBin; iTkin++ ) + { + if(TkinScaled < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) break; + } + iPlace = iTkin - 1; + + if(iTkin == 0) // Tkin is too small, neglect of TR photon generation + { + if( verboseLevel ) + { + G4cout<<"Go out from G4XTRenergyLoss::PostStepDoIt:iTkin = "<= 0.1 ) theta = 0.1; + + // G4cout<<" : theta = "<GetTouchable()->GetRotation(); + G4ThreeVector transl = pPostStepPoint->GetTouchable()->GetTranslation(); + G4AffineTransform transform = G4AffineTransform(rotM,transl); + transform.Invert(); + G4ThreeVector localP = transform.TransformPoint(position); + G4ThreeVector localV = transform.TransformAxis(directionTR); + + G4double distance = fEnvelope->GetSolid()->DistanceToOut(localP, localV); + if(verboseLevel) + { + G4cout<<"distance to exit = "<SetTouchableHandle( + aStep.GetPostStepPoint()->GetTouchableHandle()); + aSecondaryTrack->SetParentID( aTrack.GetTrackID() ); + + fParticleChange.AddSecondary(aSecondaryTrack); + fParticleChange.ProposeEnergy(kinEnergy); + } + } + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); +} + + + ////////////////////////////////////////////////////////////////////////////// // // The main function which is responsible for the treatment of a particle passage // trough G4Envelope -G4VParticleChange* G4VXTRenergyLoss::AlongStepDoIt( const G4Track& aTrack, +G4VParticleChange* G4XTRenergyLoss::AlongStepDoIt( const G4Track& aTrack, const G4Step& aStep ) { G4int iTkin, iPlace, numOfTR, iTR ; @@ -290,7 +512,7 @@ G4VParticleChange* G4VXTRenergyLoss::AlongStepDoIt( const G4Track& aTrack, if(verboseLevel) { - G4cout<<"Start of G4VXTRenergyLoss::AlongStepDoIt "<GetLowEdgeEnergy(iTkin)) break ; + if(TkinScaled < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) break; } iPlace = iTkin - 1 ; @@ -343,9 +565,9 @@ G4VParticleChange* G4VXTRenergyLoss::AlongStepDoIt( const G4Track& aTrack, { if(verboseLevel) { - G4cout<<"Go out from G4VXTRenergyLoss::AlongStepDoIt:iTkin = "<SetTouchableHandle(aStep.GetPostStepPoint() @@ -466,6 +705,7 @@ G4VParticleChange* G4VXTRenergyLoss::AlongStepDoIt( const G4Track& aTrack, return &aParticleChange; } + /////////////////////////////////////////////////////////////////////// // // This function returns the spectral and angle density of TR quanta @@ -476,7 +716,7 @@ G4VParticleChange* G4VXTRenergyLoss::AlongStepDoIt( const G4Track& aTrack, // varAngle =2* (1 - cos(theta)) or approximately = theta*theta // -G4complex G4VXTRenergyLoss::OneInterfaceXTRdEdx( G4double energy, +G4complex G4XTRenergyLoss::OneInterfaceXTRdEdx( G4double energy, G4double gamma, G4double varAngle ) { @@ -495,7 +735,7 @@ G4complex G4VXTRenergyLoss::OneInterfaceXTRdEdx( G4double energy, // For photon energy distribution tables. Integrate first over angle // -G4double G4VXTRenergyLoss::SpectralAngleXTRdEdx(G4double varAngle) +G4double G4XTRenergyLoss::SpectralAngleXTRdEdx(G4double varAngle) { G4double result = GetStackFactor(fEnergy,fGamma,varAngle) ; if(result < 0.0) result = 0.0 ; @@ -506,16 +746,20 @@ G4double G4VXTRenergyLoss::SpectralAngleXTRdEdx(G4double varAngle) // // For second integration over energy -G4double G4VXTRenergyLoss::SpectralXTRdEdx(G4double energy) +G4double G4XTRenergyLoss::SpectralXTRdEdx(G4double energy) { fEnergy = energy ; -G4Integrator integral ; - return integral.Legendre96(this,&G4VXTRenergyLoss::SpectralAngleXTRdEdx, - 0.0,0.3*fMaxThetaTR) + - integral.Legendre96(this,&G4VXTRenergyLoss::SpectralAngleXTRdEdx, - 0.3*fMaxThetaTR,0.6*fMaxThetaTR) + - integral.Legendre96(this,&G4VXTRenergyLoss::SpectralAngleXTRdEdx, - 0.6*fMaxThetaTR,fMaxThetaTR) ; +G4Integrator integral ; + return integral.Legendre96(this,&G4XTRenergyLoss::SpectralAngleXTRdEdx, + 0.0,0.1*fMaxThetaTR) + + integral.Legendre96(this,&G4XTRenergyLoss::SpectralAngleXTRdEdx, + 0.1*fMaxThetaTR,0.2*fMaxThetaTR) + + integral.Legendre96(this,&G4XTRenergyLoss::SpectralAngleXTRdEdx, + 0.2*fMaxThetaTR,0.4*fMaxThetaTR) + + integral.Legendre96(this,&G4XTRenergyLoss::SpectralAngleXTRdEdx, + 0.4*fMaxThetaTR,0.7*fMaxThetaTR) + + integral.Legendre96(this,&G4XTRenergyLoss::SpectralAngleXTRdEdx, + 0.7*fMaxThetaTR,fMaxThetaTR) ; } ////////////////////////////////////////////////////////////////////////// @@ -523,7 +767,7 @@ G4Integrator integral // for photon angle distribution tables // -G4double G4VXTRenergyLoss::AngleSpectralXTRdEdx(G4double energy) +G4double G4XTRenergyLoss::AngleSpectralXTRdEdx(G4double energy) { G4double result = GetStackFactor(energy,fGamma,fVarAngle) ; if(result < 0) result = 0.0 ; @@ -534,35 +778,22 @@ G4double G4VXTRenergyLoss::AngleSpectralXTRdEdx(G4double energy) // // -G4double G4VXTRenergyLoss::AngleXTRdEdx(G4double varAngle) +G4double G4XTRenergyLoss::AngleXTRdEdx(G4double varAngle) { fVarAngle = varAngle ; - G4Integrator integral ; - return integral.Legendre10(this,&G4VXTRenergyLoss::AngleSpectralXTRdEdx, + G4Integrator integral ; + return integral.Legendre10(this,&G4XTRenergyLoss::AngleSpectralXTRdEdx, fMinEnergyTR,fMaxEnergyTR) ; } - - - - - - - - - - - - - ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // // Calculates formation zone for plates. Omega is energy !!! -G4double G4VXTRenergyLoss::GetPlateFormationZone( G4double omega , +G4double G4XTRenergyLoss::GetPlateFormationZone( G4double omega , G4double gamma , G4double varAngle ) { @@ -576,7 +807,7 @@ G4double G4VXTRenergyLoss::GetPlateFormationZone( G4double omega , // // Calculates complex formation zone for plates. Omega is energy !!! -G4complex G4VXTRenergyLoss::GetPlateComplexFZ( G4double omega , +G4complex G4XTRenergyLoss::GetPlateComplexFZ( G4double omega , G4double gamma , G4double varAngle ) { @@ -598,7 +829,7 @@ G4complex G4VXTRenergyLoss::GetPlateComplexFZ( G4double omega , // Computes matrix of Sandia photo absorption cross section coefficients for // plate material -void G4VXTRenergyLoss::ComputePlatePhotoAbsCof() +void G4XTRenergyLoss::ComputePlatePhotoAbsCof() { G4int i, j, numberOfElements ; static const G4MaterialTable* @@ -648,7 +879,7 @@ void G4VXTRenergyLoss::ComputePlatePhotoAbsCof() // Returns the value of linear photo absorption coefficient (in reciprocal // length) for plate for given energy of X-ray photon omega -G4double G4VXTRenergyLoss::GetPlateLinearPhotoAbs(G4double omega) +G4double G4XTRenergyLoss::GetPlateLinearPhotoAbs(G4double omega) { G4int i ; G4double omega2, omega3, omega4 ; @@ -663,7 +894,7 @@ G4double G4VXTRenergyLoss::GetPlateLinearPhotoAbs(G4double omega) } if( i == 0 ) { - G4Exception("Invalid ( integral ; - return integral.Legendre96(this,&G4VXTRenergyLoss::XTRNSpectralAngleDensity, + G4Integrator integral ; + return integral.Legendre96(this,&G4XTRenergyLoss::XTRNSpectralAngleDensity, 0.0,0.2*fMaxThetaTR) + - integral.Legendre10(this,&G4VXTRenergyLoss::XTRNSpectralAngleDensity, + integral.Legendre10(this,&G4XTRenergyLoss::XTRNSpectralAngleDensity, 0.2*fMaxThetaTR,fMaxThetaTR) ; } @@ -917,7 +1155,7 @@ G4double G4VXTRenergyLoss::XTRNSpectralDensity(G4double energy) // for photon angle distribution tables // -G4double G4VXTRenergyLoss::XTRNAngleSpectralDensity(G4double energy) +G4double G4XTRenergyLoss::XTRNAngleSpectralDensity(G4double energy) { return OneBoundaryXTRNdensity(energy,fGamma,fVarAngle)* GetStackFactor(energy,fGamma,fVarAngle) ; @@ -927,11 +1165,11 @@ G4double G4VXTRenergyLoss::XTRNAngleSpectralDensity(G4double energy) // // -G4double G4VXTRenergyLoss::XTRNAngleDensity(G4double varAngle) +G4double G4XTRenergyLoss::XTRNAngleDensity(G4double varAngle) { fVarAngle = varAngle ; - G4Integrator integral ; - return integral.Legendre96(this,&G4VXTRenergyLoss::XTRNAngleSpectralDensity, + G4Integrator integral ; + return integral.Legendre96(this,&G4XTRenergyLoss::XTRNAngleSpectralDensity, fMinEnergyTR,fMaxEnergyTR) ; } @@ -940,7 +1178,7 @@ G4double G4VXTRenergyLoss::XTRNAngleDensity(G4double varAngle) // Check number of photons for a range of Lorentz factors from both energy // and angular tables -void G4VXTRenergyLoss::GetNumberOfPhotons() +void G4XTRenergyLoss::GetNumberOfPhotons() { G4int iTkin ; G4double gamma, numberE ; @@ -970,7 +1208,7 @@ void G4VXTRenergyLoss::GetNumberOfPhotons() // Returns randon energy of a X-ray TR photon for given scaled kinetic energy // of a charged particle -G4double G4VXTRenergyLoss::GetXTRrandomEnergy( G4double scaledTkin, G4int iTkin ) +G4double G4XTRenergyLoss::GetXTRrandomEnergy( G4double scaledTkin, G4int iTkin ) { G4int iTransfer, iPlace ; G4double transfer = 0.0, position, E1, E2, W1, W2, W ; @@ -1021,7 +1259,7 @@ G4double G4VXTRenergyLoss::GetXTRrandomEnergy( G4double scaledTkin, G4int iTkin // Returns approximate position of X-ray photon energy during random sampling // over integral energy distribution -G4double G4VXTRenergyLoss::GetXTRenergy( G4int iPlace, +G4double G4XTRenergyLoss::GetXTRenergy( G4int iPlace, G4double position, G4int iTransfer ) { diff --git a/source/parameterisations/trd_clusters/src/G4GamDistrXrayTRmodel.cc b/source/processes/electromagnetic/xrays/src/G4XTRGammaRadModel.cc similarity index 80% rename from source/parameterisations/trd_clusters/src/G4GamDistrXrayTRmodel.cc rename to source/processes/electromagnetic/xrays/src/G4XTRGammaRadModel.cc index c5e634a0b0..56244852f5 100644 --- a/source/parameterisations/trd_clusters/src/G4GamDistrXrayTRmodel.cc +++ b/source/processes/electromagnetic/xrays/src/G4XTRGammaRadModel.cc @@ -21,25 +21,28 @@ // ******************************************************************** // // -// $Id: G4GamDistrXrayTRmodel.cc,v 1.2 2004/12/07 09:00:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ // #include -#include "G4GamDistrXrayTRmodel.hh" +#include "G4XTRGammaRadModel.hh" #include "Randomize.hh" #include "G4Gamma.hh" +using namespace std; + //////////////////////////////////////////////////////////////////////////// // // Constructor, destructor -G4GamDistrXrayTRmodel::G4GamDistrXrayTRmodel(G4Envelope *anEnvelope, - G4double a, G4double alphaPlate, - G4double b, G4double alphaGas) : - G4VXrayTRadModel(anEnvelope,a,b) +G4XTRGammaRadModel::G4XTRGammaRadModel(G4LogicalVolume* anEnvelope, + G4double alphaPlate, + G4double alphaGas, + G4Material* foilMat,G4Material* gasMat, + G4double a, G4double b, G4int n, + const G4String& processName) : + G4VXTRenergyLoss(anEnvelope,foilMat,gasMat,a,b,n,processName) { G4cout<<"Gammma distributed X-ray TR radiator model is called"< + +#include "G4XTRTransparentRegRadModel.hh" +#include "Randomize.hh" +#include "G4Integrator.hh" +#include "G4Gamma.hh" + +using namespace std; + +//////////////////////////////////////////////////////////////////////////// +// +// Constructor, destructor + +G4XTRTransparentRegRadModel::G4XTRTransparentRegRadModel(G4LogicalVolume *anEnvelope, + G4Material* foilMat,G4Material* gasMat, + G4double a, G4double b, G4int n, + const G4String& processName) : + G4VXTRenergyLoss(anEnvelope,foilMat,gasMat,a,b,n,processName) +{ + G4cout<<"Regular transparent X-ray TR radiator EM process is called"< kMin) kMin++; + + // tmp = (fPlateThick + fGasThick)*energy*fMaxThetaTR; + // tmp /= cofPHC; + // kMax = G4int(tmp); + // if(kMax < 0) kMax = 0; + // kMax += kMin; + + + kMax = kMin + 19; // 9; // kMin + G4int(tmp); + + // tmp /= fGamma; + // if( G4int(tmp) < kMin ) kMin = G4int(tmp); + // G4cout<<"kMin = "< -#include +#include #include #include "G4HadronicProcess.hh" #include "G4EffectiveCharge.hh" @@ -71,8 +71,9 @@ EnableIsotopeProductionGlobally() {isoIsEnabled = true;} void G4HadronicProcess:: DisableIsotopeProductionGlobally() {isoIsEnabled = false;} -G4HadronicProcess::G4HadronicProcess( const G4String &processName) : -G4VDiscreteProcess( processName ) +G4HadronicProcess::G4HadronicProcess( const G4String &processName, + G4ProcessType aType ) : +G4VDiscreteProcess( processName, aType) { ModelingState = 0; isoIsOnAnyway = 0; @@ -554,15 +555,20 @@ G4HadFinalState * aResult) } // prepare the IsoResult. - char the1[100] = {""}; - std::ostrstream ost1(the1, 100, std::ios::out); - ost1 <::iterator particleIterator; +typedef std::vector::iterator nucleiIterator; + +G4ElasticCascadeInterface::G4ElasticCascadeInterface() + :verboseLevel(0) +{ + if (verboseLevel > 3) { + G4cout << " >>> G4ElasticCascadeInterface::G4ElasticCascadeInterface" << G4endl; + } +} + +G4ReactionProductVector* G4ElasticCascadeInterface::Propagate(G4KineticTrackVector*, G4V3DNucleus* ) { + return NULL; +} + +// #define debug_G4ElasticCascadeInterface + +G4HadFinalState* G4ElasticCascadeInterface::ApplyYourself(const G4HadProjectile& aTrack, + G4Nucleus& theNucleus) { +#ifdef debug_G4ElasticCascadeInterface + static G4int counter(0); + counter++; + G4cerr << "Reaction number "<< counter << " "<GetDefinition()->GetParticleName()<<" "<< aTrack.GetDynamicParticle()->GetKineticEnergy()< 3) { + G4cout << " >>> G4ElasticCascadeInterface::ApplyYourself" << G4endl; + }; + + G4double eInit = 0.0; + G4double eTot = 0.0; + G4double sumBaryon = 0.0; + G4double sumEnergy = 0.0; + + // Make conversion between native Geant4 and Bertini cascade classes. + // NOTE: Geant4 units are MeV = 1 and GeV = 1000. Cascade code by default use GeV = 1. + + enum particleType { nuclei = 0, proton = 1, neutron = 2, pionPlus = 3, pionMinus = 5, pionZero = 7, photon = 10 }; + + G4int bulletType = 0; + + // Coding particles + if (aTrack.GetDefinition() == G4Proton::Proton() ) bulletType = proton; + if (aTrack.GetDefinition() == G4Neutron::Neutron() ) bulletType = neutron; + if (aTrack.GetDefinition() == G4PionPlus::PionPlus() ) bulletType = pionPlus; + if (aTrack.GetDefinition() == G4PionMinus::PionMinus() ) bulletType = pionMinus; + if (aTrack.GetDefinition() == G4PionZero::PionZero() ) bulletType = pionZero; + if (aTrack.GetDefinition() == G4Gamma::Gamma() ) bulletType = photon; + + // Code momentum and energy. + G4double px,py,pz; + px=aTrack.Get4Momentum().px() / GeV; + py=aTrack.Get4Momentum().py() / GeV; + pz=aTrack.Get4Momentum().pz() / GeV; + + G4LorentzVector projectileMomentum = aTrack.Get4Momentum(); + G4LorentzRotation toZ; + toZ.rotateZ(-projectileMomentum.phi()); + toZ.rotateY(-projectileMomentum.theta()); + G4LorentzRotation toLabFrame = toZ.inverse(); + + std::vector momentumBullet(4); + momentumBullet[0] =0.; + momentumBullet[1] =0; + momentumBullet[2] =0; + momentumBullet[3] =std::sqrt(px*px+py*py+pz*pz); + + G4InuclElementaryParticle * bullet = new G4InuclElementaryParticle(momentumBullet, bulletType); + + sumEnergy = bullet->getKineticEnergy(); // In GeV + if (bulletType == proton || bulletType == neutron) { + sumBaryon += 1; + } + + // Set target + G4InuclNuclei* target = NULL; + G4InuclParticle* targetH = NULL; + // and outcoming particles + G4DynamicParticle* cascadeParticle = NULL; + + std::vector targetMomentum(4, 0.0); + + G4double theNucleusA = theNucleus.GetN(); + + if ( !(G4int(theNucleusA) == 1) ) { + target = new G4InuclNuclei(targetMomentum, + theNucleusA, + theNucleus.GetZ()); + target->setEnergy(); + + std::vector bmom = bullet->getMomentum(); + eInit = std::sqrt(bmom[0] * bmom[0]); + std::vector tmom = target->getMomentum(); + eInit += std::sqrt(tmom[0] * tmom[0]); + + sumBaryon += theNucleusA; + + if (verboseLevel > 2) { + G4cout << "Bullet: " << G4endl; + bullet->printParticle(); + } + if (verboseLevel > 2) { + G4cout << "Target: " << G4endl; + target->printParticle(); + } + } + + G4CollisionOutput output; + + // Colliders initialisation + G4ElementaryParticleCollider* colep = new G4ElementaryParticleCollider; + G4IntraNucleiCascader* inc = new G4IntraNucleiCascader; // the actual cascade + inc->setInteractionCase(1); // Interaction type is particle with nuclei. + + G4NonEquilibriumEvaporator* noneq = new G4NonEquilibriumEvaporator; + G4EquilibriumEvaporator* eqil = new G4EquilibriumEvaporator; + G4Fissioner* fiss = new G4Fissioner; + G4BigBanger* bigb = new G4BigBanger; + G4InuclCollider* collider = new G4InuclCollider(colep, inc, noneq, eqil, fiss, bigb); + + G4int maxTries = 10; // maximum tries for inelastic collision to avoid infinite loop + G4int nTries = 0; // try counter + + if (G4int(theNucleusA) == 1) { // special treatment for target H(1,1) (proton) + + targetH = new G4InuclElementaryParticle(targetMomentum, 1); + + G4float cutElastic[8]; + cutElastic[proton ] = 1.0; // GeV + cutElastic[neutron ] = 1.0; + cutElastic[pionPlus ] = 0.6; + cutElastic[pionMinus] = 0.2; + cutElastic[pionZero ] = 0.2; + + // Was > + if (momentumBullet[3] < cutElastic[bulletType]) { // elastic collision possible + + do { // we try to create elastic interaction + output = collider->collide(bullet, targetH); + nTries++; + } while( + (nTries < maxTries) && + (output.getOutgoingParticles().size() != 2 && // elastic: bullet + p = H(1,1) coming out + (output.getOutgoingParticles().begin()->type() != bulletType || + output.getOutgoingParticles().begin()->type() != proton) //changed all != -> == + ) + ); + + } else { // only elastic collision is energetically possible + output = collider->collide(bullet, targetH); + } + + sumBaryon += 1; + + std::vector bmom = bullet->getMomentum(); + eInit = std::sqrt(bmom[0] * bmom[0]); + std::vector tmom = targetH->getMomentum(); + eInit += std::sqrt(tmom[0] * tmom[0]); + + if (verboseLevel > 2) { + G4cout << "Target: " << G4endl; + targetH->printParticle(); + } + + } else { // treat all other targets excepet H(1,1) + + do // we try to create inelastic interaction ELASTIC COLLISION + { + output = collider->collide(bullet, target ); + nTries++; + } while( + (nTries < maxTries) && + //changed < to > + //(output.getOutgoingParticles().size() + output.getNucleiFragments().size() < 2.5) && + (output.getOutgoingParticles().size() + output.getNucleiFragments().size() != 2) && + (output.getOutgoingParticles().size()==0) && // != -> == + (output.getOutgoingParticles().begin()->type() != bullet->type()) //changed == -> != + ); + } + + if (verboseLevel > 1) + { + G4cout << " Cascade output: " << G4endl; + output.printCollisionOutput(); + } + + // Convert cascade data to use hadronics interface + std::vector nucleiFragments = output.getNucleiFragments(); + std::vector particles = output.getOutgoingParticles(); + + theResult.SetStatusChange(stopAndKill); + + if (!particles.empty()) { + particleIterator ipart; + G4int outgoingParticle; + + for (ipart = particles.begin(); ipart != particles.end(); ipart++) { + outgoingParticle = ipart->type(); + std::vector mom = ipart->getMomentum(); + eTot += std::sqrt(mom[0] * mom[0]); + + G4double ekin = ipart->getKineticEnergy() * GeV; + G4ThreeVector aMom(mom[1], mom[2], mom[3]); + aMom = aMom.unit(); + + if (outgoingParticle == proton || outgoingParticle == neutron) { + sumBaryon -= 1; + } + + sumEnergy -= ekin / GeV; + + switch(outgoingParticle) { + + case proton: +#ifdef debug_G4ElasticCascadeInterface + G4cerr << "proton " << counter << " " << aMom << " " << ekin << G4endl; +#endif + cascadeParticle = + new G4DynamicParticle(G4Proton::ProtonDefinition(), aMom, ekin); + break; + + case neutron: + +#ifdef debug_G4ElasticCascadeInterface + G4cerr << "neutron "<< counter<<" "<Set4Momentum(cascadeParticle->Get4Momentum()*=toLabFrame); + theResult.AddSecondary(cascadeParticle); + } + } + + // get nuclei fragments + G4DynamicParticle * aFragment = NULL; + G4ParticleDefinition * aIonDef = 0; + G4ParticleTable *theTableOfParticles = G4ParticleTable::GetParticleTable(); + + if (!nucleiFragments.empty()) { + nucleiIterator ifrag; + + for (ifrag = nucleiFragments.begin(); ifrag != nucleiFragments.end(); ifrag++) + { + G4double eKin = ifrag->getKineticEnergy() * GeV; + std::vector mom = ifrag->getMomentum(); + eTot += std::sqrt(mom[0] * mom[0]); + + G4ThreeVector aMom(mom[1], mom[2], mom[3]); + aMom = aMom.unit(); + + // hpw @@@ ==> Should be zero: G4double fragmentExitation = ifrag->getExitationEnergyInGeV(); + + if (verboseLevel > 2) { + G4cout << " Nuclei fragment: " << G4endl; + ifrag->printParticle(); + } + + G4int A = G4int(ifrag->getA()); + G4int Z = G4int(ifrag->getZ()); + aIonDef = theTableOfParticles->FindIon(Z, A, 0, Z); + + aFragment = new G4DynamicParticle(aIonDef, aMom, eKin); + + sumBaryon -= A; + sumEnergy -= eKin / GeV; + + aFragment->Set4Momentum(aFragment->Get4Momentum()*=toLabFrame); + theResult.AddSecondary(aFragment); + } + } + + if (verboseLevel > 2) { + if (sumBaryon != 0) { + G4cout << "ERROR: no baryon number conservation, sum of baryons = " + << sumBaryon << G4endl; + } + + if (sumEnergy > 0.01 ) { + G4cout << "Kinetic energy conservation violated by " + << sumEnergy << " GeV" << G4endl; + } + + G4cout << "Total energy conservation at level ~" + << (eInit - eTot) * GeV << " MeV" << G4endl; + + if (sumEnergy < -5.0e-5 ) { // 0.05 MeV + G4cout << "FATAL ERROR: energy created " + << sumEnergy * GeV << " MeV" << G4endl; + } + } + + delete bullet; + delete colep; + delete inc; + delete noneq; + delete fiss; + delete eqil; + delete bigb; + delete collider; + + if(target != NULL) delete target; + if(targetH != NULL) delete targetH; + // if(cascadeParticle != NULL) delete cascadeParticle; + // if(aFragment != NULL) delete aFragment; + + return &theResult; +} diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh index a8fa388f33..d991b0d1b3 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh @@ -22,7 +22,7 @@ // // // $Id: G4Chips.hh,v 1.18 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4Chips ---------------- // by Mikhail Kossov, September 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh index 37f01e5448..766b3dc25f 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh @@ -22,7 +22,7 @@ // // // $Id: G4QCHIPSWorld.hh,v 1.24 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCHIPSWorld ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh index 9f598a8824..db1c0868d2 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh @@ -22,7 +22,7 @@ // // // $Id: G4QCandidate.hh,v 1.27 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCandidate ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh index 84e9602b5d..d26cdf9962 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4QCandidateVector.hh,v 1.20 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh index e9aece32f3..f1296722b7 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh @@ -22,7 +22,7 @@ // // // $Id: G4QChipolino.hh,v 1.22 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QChipolino ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh index 82c6bf4353..a17b5d598b 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh @@ -22,7 +22,7 @@ // // // $Id: G4QContent.hh,v 1.27 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QContent ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh index 102fcd7a98..33be353620 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh @@ -22,7 +22,7 @@ // // // $Id: G4QDecayChan.hh,v 1.22 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QDecayChan ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh index 0241892e06..f3b51e9755 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4QDecayChanVector.hh,v 1.18 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh index fdfe8d828f..941116a459 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh @@ -22,7 +22,7 @@ // // // $Id: G4QEnvironment.hh,v 1.26 2005/03/24 16:06:06 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QEnvironment ---------------- // by Mikhail Kossov, August 2000. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QException.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QException.hh index 009923653b..7120f0f2e1 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QException.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QException.hh @@ -22,7 +22,7 @@ // // // $Id: G4QException.hh,v 1.9 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QException ---------------- // by Mikhail Kossov, November 2003. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh index c3be79ee24..991809fa0f 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh @@ -22,7 +22,7 @@ // // // $Id: G4QHadron.hh,v 1.30 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QHadron ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh index 52d05aa6c2..6161a2b144 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4QHadronVector.hh,v 1.19 2005/03/24 16:06:06 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QIsotope.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QIsotope.hh index e89f32693a..40bd229c24 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QIsotope.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QIsotope.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QIsotope.hh,v 1.3 2005/03/24 16:06:06 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QIsotope.hh,v 1.4 2005/11/30 16:31:03 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ---------------- G4QIsotope header ---------------- @@ -85,6 +85,10 @@ public: // ====================================================================================== G4int GetLastIndex(G4int Z); // Returns the last defined index (if only natural: =0) + // Indices can have differen numbers (not 1,2,3,...) & in different sequences (9,3,7,...) + // ====================================================================================== + G4bool IsDefined(G4int Z, G4int Ind); // Returns true if defined, false, if not defined + // A#ofNeutrons in Element with Z & UseDefIndex. Universal for Nat(index=0) & UserDefElem // ====================================================================================== G4int GetNeutrons(G4int Z, G4int index=0);//If theElement doesn't exist, returns negative diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh index 66cfd74dfd..d4da4b5c20 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh @@ -22,7 +22,7 @@ // // // $Id: G4QNucleus.hh,v 1.28 2005/03/24 16:06:06 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QNucleus ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh index 63592414f8..fd0e2f76c1 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh @@ -22,7 +22,7 @@ // // // $Id: G4QPDGCode.hh,v 1.25 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QPDGCode ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh index b055055be0..fa7227b164 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4QPDGCodeVector.hh,v 1.18 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGToG4Particle.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGToG4Particle.hh index 13d25a1810..f9d2a5e7c0 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGToG4Particle.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGToG4Particle.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4QPDGToG4Particle.hh,v 1.2 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QPDGToG4Particle.hh,v 1.3 2005/08/30 07:15:14 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QPDGToG4Particle header ---------------- // by Mikhail Kossov, December 2003. @@ -32,6 +32,9 @@ // ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ****** // **************************************************************************************** +#ifndef G4QPDGToG4Particle_hh +#define G4QPDGToG4Particle_hh + #include "globals.hh" #include "G4ios.hh" #include "G4ParticleTypes.hh" @@ -56,3 +59,4 @@ public: // Body private: }; +#endif diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh index 57b5b26b06..1cf7498dbe 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh @@ -22,7 +22,7 @@ // // // $Id: G4QParentCluster.hh,v 1.22 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QParentCluster ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh index db870bcef4..ec4c41b440 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4QParentClusterVector.hh,v 1.17 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh index 18f44ea7c5..776d941bd3 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4QParticle.hh,v 1.23 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QParticle ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh index e9dab1073e..016b91d842 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4QParticleVector.hh,v 1.18 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QSplitter.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QSplitter.hh new file mode 100644 index 0000000000..0975348c56 --- /dev/null +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QSplitter.hh @@ -0,0 +1,112 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4QSplitter.hh,v 1.1 2005/08/30 07:15:14 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ---------------- G4QSplitter ---------------- +// by Mikhail Kossov, Avgust 2005. +// header for Hadron-Hadron Splitter in parton pairs of the CHIPS Model +// -------------------------------------------------------------------- + +#ifndef G4QSplitter_h +#define G4QSplitter_h 1 + +#include "G4QuasmonVector.hh" +//#include "G4RandomDirection.hh" +// Call G4RandomDirection() (global) instead of old RndmDir() (local) + +class G4QSplitter +{ +public: + // projectile Hadron (probably as a part of proj Nucleus) colliding with a nuclear target + //G4QSplitter(G4QHadron projHadron, const G4bool projEnvFlag, const G4int targPDG); + // projectile Hadron (probably as a part of proj Nucleus) colliding with nuclear Cluster + G4QSplitter(G4QHadron projHadron, const G4bool projEnvFlag, const G4int targPDG, + const G4bool targEnvFlag); // Cluster can have target nuclear environment + // projectile Cluster (probably as a part of proj Nucleus) colliding with nuclear target + //G4QSplitter(G4QNucleus projCluster, const G4bool projEnvFlag, const G4int targPDG); + // projectile Cluster (probably as a part of proj Nucleus) colliding with nuclear Cluster + //G4QSplitter(G4QNucleus projCluster, const G4bool projEnvFlag, const G4int targPDG, + // const G4bool targEnvFlag); // Cluster can have target nuclear environment + G4QSplitter(const G4QSplitter& right); // Copy the splitted system by value + G4QSplitter(G4QSplitter* right); // Copy the splitted system by pointer + ~G4QSplitter(); // Public Destructor + + // Overloaded operators + const G4QSplitter& operator=(const G4QSplitter& right); // Copy the splitted system + G4bool operator==(const G4QSplitter &right) const; // Compare two splitted systems + G4bool operator!=(const G4QSplitter &right) const; // Compare two splitted systems + + //Selectors + G4bool GetProjEnvFlag(); // Flag of nuclear environment around the projectile + G4bool GetTargEnvFlag(); // Flag of nuclear environment around the target + G4QuasmonVector* GetQuasmons(); // Get not decayed Quasmons (User must ClearAndDestr) + G4QHadronVector* GetHadrons(); // Get current outputHadrons (User must ClearAndDestr) + G4double GetWeight(); // Get weight of the event (?) + G4int GetNOfHadrons(); // Get the number of created G4QHadrons + G4int GetNOfQuasmons(); // Get the number of created G4Quasmons + // Modifiers (Output: a Vector of Quasmons for fragmentation, some Quasms can be Hadrons) + G4QHadronVector* Fragment(); // User must clear and destroy the G4QHadronVector + + // Static functions + //static void SetParameters(G4double StParName=0., G4bool stFlag=false); + +private: + G4QHadronVector HadronizeQString(); // Main HadronizationFunction used in Fragment() + G4double RandomizeMomFractionFree(G4int nPart); // RandomMomFrac for nPart free partons + G4double RandomizeMomFractionString(G4int nPart); // RandomMomFrac for nPart free partons + +// Body +private: + // Static Parameters + //static G4double StParName; // Example of static parameter (see SetParameters) + + // Body + G4bool theProjEnvFlag; // Projectile Environment Flag + G4bool theTargEnvFlag; // Target Environment Flag + G4QContent theProjQC; // Projectile Quark Content + G4QContent theTargQC; // Target Quark Content + G4LorentzVector theProj4Mom; // Projectile 4-momentum + G4LorentzVector theTarg4Mom; // Target 4-momentum + // Internal Quasmons + G4QuasmonVector theQuasmons; // Vector of generated secondary Quasmons + // Output Hadrons + G4QHadronVector theQHadrons; // Vector of generated output Hadrons + + // Internal working parameters + G4QCHIPSWorld* theWorld; // the CHIPS World + G4LorentzVector tot4Mom; // Total 4-momentum in the reaction + G4int totCharge; // Total charge in the reaction (for current control) + G4int totBaryNum; // Total baryon number in the reaction (for cur.cont.) + G4double theWeight; // Weight of the event +}; + +//General function makes Random Unit 3D-Vector +G4ThreeVector RndmDir(); // @@ ?? + +// Inline functions +inline G4bool G4QSplitter::operator==(const G4QSplitter &rhs) const {return this == &rhs;} +inline G4bool G4QSplitter::operator!=(const G4QSplitter &rhs) const {return this != &rhs;} + +#endif diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh index 2143f21fdb..5c208f6aed 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh @@ -22,7 +22,7 @@ // // // $Id: G4Quasmon.hh,v 1.37 2005/03/24 16:06:06 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4Quasmon ---------------- // by Mikhail Kossov, July 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonString.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonString.hh index b8ec997b98..9ff78dee89 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonString.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonString.hh @@ -22,7 +22,7 @@ // // // $Id: G4QuasmonString.hh,v 1.3 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QuasmonString ---------------- // by Mikhail Kossov, October 2004. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh index 77b31d4c63..14529d9aa7 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4QuasmonVector.hh,v 1.18 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QuasmonVector ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc index 4cd671542c..2935ed8dbe 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCHIPSWorld.cc @@ -22,7 +22,7 @@ // // // $Id: G4QCHIPSWorld.cc,v 1.31 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCHIPSWorld ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCandidate.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCandidate.cc index 42311fa6d6..9342d930a1 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCandidate.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCandidate.cc @@ -22,7 +22,7 @@ // // // $Id: G4QCandidate.cc,v 1.32 2005/05/13 16:14:59 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCandidate ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc index 325b09e293..c8e9e95ebc 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QChipolino.cc @@ -22,7 +22,7 @@ // // // $Id: G4QChipolino.cc,v 1.30 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QChipolino ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QContent.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QContent.cc index b8c2740a52..49fab954bb 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QContent.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QContent.cc @@ -22,7 +22,7 @@ // // // $Id: G4QContent.cc,v 1.39 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QContent ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc index c804fdfb41..a6577de9b7 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QDecayChan.cc @@ -22,7 +22,7 @@ // // // $Id: G4QDecayChan.cc,v 1.25 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QDecayChan ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc index 89ac3cd1d4..738f5a2964 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QEnvironment.cc @@ -25,7 +25,7 @@ // // // $Id: G4QEnvironment.cc,v 1.110 2005/05/31 08:23:52 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QEnvironment ---------------- // by Mikhail Kossov, August 2000. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QException.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QException.cc index 9d8642a0b5..739edbab4a 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QException.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QException.cc @@ -22,7 +22,7 @@ // // // $Id: G4QException.cc,v 1.8 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QException ---------------- // by Mikhail Kossov, November 2003. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QHadron.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QHadron.cc index b5a5726853..0d0566d42c 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QHadron.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QHadron.cc @@ -22,7 +22,7 @@ // // // $Id: G4QHadron.cc,v 1.41 2005/05/20 12:07:37 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QHadron ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QIsotope.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QIsotope.cc index 08dee0602d..85b695168b 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QIsotope.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QIsotope.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QIsotope.cc,v 1.5 2005/03/24 16:06:06 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QIsotope.cc,v 1.6 2005/11/30 16:31:03 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QIsotope class ---------------- // by Mikhail Kossov, December 2003. @@ -1561,31 +1561,18 @@ G4int G4QIsotope::InitElement(G4int Z, G4int index, // Ret: -1 - Empty, -2 - Wro { G4int I=abund->size(); #ifdef debug - G4cout<<"G4QIsotope::InitElement is called with nI="<first; - G4int zi=zin%1000; // Existing Z - G4int in=zin/1000; // Existing index - if(Z==zi) // The new Element with the same Z is found - { - if(in<=index) found=true; - if(in>mind) mind=in; - } + G4cerr<<"-Worning-G4QIsotope::InitEl:VONewEl,Z="<=0"<first; + G4int zi=zin%1000; // Existing Z + G4int in=zin/1000; // Existing index + if(Z==zi && Ind==in) return true; // The index for the element Z is found + } + return false; // The index for the element Z is not found +} + // A#ofNeutrons in theElement with Z & UserDefIndex. Universal for Nat(index=0) & UserDefEl G4int G4QIsotope::GetNeutrons(G4int Z, G4int index) // If theElem doesn't exist, returns <0 // ============================================= diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc index 0754c380b3..59b8ef97ca 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QNucleus.cc @@ -22,7 +22,7 @@ // // // $Id: G4QNucleus.cc,v 1.53 2005/05/23 09:39:33 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QNucleus ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc index 5a56f14bda..064376f039 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGCode.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QPDGCode.cc,v 1.50 2005/03/24 16:06:06 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QPDGCode.cc,v 1.51 2005/07/06 07:04:22 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QPDGCode ---------------- // by Mikhail Kossov, Sept 1999. @@ -1897,7 +1897,7 @@ G4double G4QPDGCode::CalculateNuclMass(G4int z, G4int n, G4int s) if(A+S<1&&k==0.||Z<0||N<0) // @@ Can be generalized to anti-nuclei { #ifdef debug - G4cout<<"***G4QPDGCode::CalcNuclMass:A="<FindIon(Z,A,0,Z)->GetPDGMass(); + // IsInTable is inside G4NucleiProperties::GetNuclearMass + // G4ParticleTable::GetParticleTable()->FindIon(Zm,Am,0,Zm) creates new Ion! + if(A==256 && Z==128) m=256000.; + else m=k+G4NucleiProperties::GetNuclearMass(A,Z); + //if(G4NucleiPropertiesTable::IsInTable(Z,A)) + // m=k+G4NucleiProperties::GetNuclearMass(A,Z); + //else if(A==256 && Z==128) m=256000.; + //else + // m=k+G4ParticleTable::GetParticleTable()->FindIon(Z,A,0,Z)->GetPDGMass(); //m+=-sh[Z]-sh[N]+b1*D*D*pow(fA,b2)+b3*(1.-2./(1.+exp(b4*D)))+Z*Z*(b5*pow(fA,b9)+b6/fA); } //@@//G4double maxM= k+Z*mP+N*mN+S*mL+eps; // @@ eps -- Wings of the Mass parabola @@ -1946,13 +1951,16 @@ G4double G4QPDGCode::CalculateNuclMass(G4int z, G4int n, G4int s) //else if(Nm<=9&&Zm<=9) mm+=1.433e-5*pow(double(Zm),2.39)-Zm*me+c[Nm-1][Zm-1];// Geant4 else { + // IsInTable is inside G4NucleiProperties::GetNuclearMass + // G4ParticleTable::GetParticleTable()->FindIon(Zm,Am,0,Zm) creates new Ion! + mm=km+G4NucleiProperties::GetNuclearMass(Am,Zm); //G4double fA=Am; - if(G4NucleiPropertiesTable::IsInTable(Zm,Am)) - mm=km+G4NucleiProperties::GetNuclearMass(Am,Zm); - else - mm=km+G4ParticleTable::GetParticleTable()->FindIon(Zm,Am,0,Zm)->GetPDGMass(); - //mm+=-sh[Zm]-sh[Nm]+b1*Dm*Dm*pow(fA,b2)+b3*(1.-2./(1.+exp(b4*Dm))) - // +Zm*Zm*(b5*pow(fA,b9)+b6/Am); + //if(G4NucleiPropertiesTable::IsInTable(Zm,Am)) + // mm=km+G4NucleiProperties::GetNuclearMass(Am,Zm); + //else + // mm=km+G4ParticleTable::GetParticleTable()->FindIon(Zm,Am,0,Zm)->GetPDGMass(); + // //mm+=-sh[Zm]-sh[Nm]+b1*Dm*Dm*pow(fA,b2)+b3*(1.-2./(1.+exp(b4*Dm))) + // // +Zm*Zm*(b5*pow(fA,b9)+b6/Am); } //@@//G4double mM= km+Zm*mP+Nm*mN+eps; //@@//if(mm>mM) mm=mM; diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGToG4Particle.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGToG4Particle.cc index 9151b6ce07..398880a206 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGToG4Particle.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPDGToG4Particle.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4QPDGToG4Particle.cc,v 1.4 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QG4ToG4Particle singletone class ------------------ // by Mikhail Kossov, December 2003. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc index 55d5bc1bf8..8a67364898 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParentCluster.cc @@ -22,7 +22,7 @@ // // // $Id: G4QParentCluster.cc,v 1.23 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QParentCluster ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc index 801ba6c78f..f67b9feaf6 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4QParticle.cc,v 1.31 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QParticle ---------------- // by Mikhail Kossov, Sept 1999. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QSplitter.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QSplitter.cc new file mode 100644 index 0000000000..a61fc5bbb9 --- /dev/null +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QSplitter.cc @@ -0,0 +1,931 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// 1 2 3 4 5 6 7 8 9 +//34567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 +// +// +// $Id: G4QSplitter.cc,v 1.1 2005/08/30 07:15:14 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// ---------------- G4QSplitter ---------------- +// by Mikhail Kossov, August 2005. +// class for Hadron-Hadron String Interaction used by the CHIPS Model +// ------------------------------------------------------------------- + +//#define chdebug +//#define debug +//#define sdebug +//#define ppdebug +//#define cdebug +//#define cldebug +//#define edebug +//#define fdebug +//#define pdebug +//#define rdebug +//#define ffdebug +//#define pcdebug +//#define mudebug + +#include "G4QSplitter.hh" +#include +using namespace std; + +G4QSplitter::G4QSplitter(G4QHadron projHadron, const G4bool projEnvFlag, + const G4int targPDG, const G4bool targEnvFlag) : + theProjEnvFlag(projEnvFlag), theTargEnvFlag(targEnvFlag), theWeight(1.) +{ + static const G4double mPi0 = G4QPDGCode(111).GetMass(); + //static const G4double Temperature = 180.; // Temperature as a parameter + //static const G4double Temp2 = Temperature*Temperature; // Squared Temperature + theWorld= G4QCHIPSWorld::Get(); // Get a pointer to the CHIPS World +#ifdef debug + G4cout<<"-->G4QString::Constr:pPDG="<1.) G4cout<<"-Warn-G4QS::Constr:dM2="<2) // ---> Baryon case (clusters are not implem.) + { + //if(nQProj>3)G4cout<<"-Wor-G4QS::Const:nQProj="<3 is not implem'd"<3)G4cout<<"-W-G4QS::Const: nQTarg="<3 is not implemented"< El + // @@ Just to try ---- End +#ifdef pdebug + G4cout<<"G4QS::Cons: npM="<.00001) G4cout<<"***kp***G4QS::C:vk="<1.) + { +#ifdef pdebug + G4cout<<"***p***>>>G4QS::C: cost="<0.) // --->>> cost>0. + { + valk=dmas/(vale-valp)/2; // Momentum is too big (must be reduced) + G4ThreeVector tqf=upr*valk; // final targetQuark 3-vector + tq4Mom.set(valk,tqf); // Fill new 4-mom for targetQuark + tr4Mom.set(tM-valk,-tqf); // Fill new 4-mom for targetResidual + newProj4M=tq4Mom+pr4Mom; // Final Projectile 4-mom in LS + } + else // --->>> cost<0. + { + G4double hvalk=dmas/(vale+valp); // Momentum's too small (must be increased, LIM) + if(hvalk>tM) // Momentum can not be increased to this value + { +#ifdef pdebug + G4cout<<"**p-Cor**>G4QS::C: hvalk="< tM="<G4QS::C: hvalk="<>>G4QS::C: cost="<.0001)G4cout<<"*G4QS::C:||="<.001)G4cout<<"*G4QS::C:"< projCM system + pqc4M.boost(projRBoost); // projectileQuark => projCM system + G4double valk=pqc4M.e(); // Momentum of the target quark in projCM + //#ifdef pdebug + G4double dvalk=valk-pqc4M.rho(); + if(fabs(dvalk)>.00001) G4cout<<"***kt***G4QS::C:vk="< projCM system + trc4M.boost(projRBoost); // targetResidual => projCM system + G4double vale=trc4M.e(); // Energy of the targetResidual in projCM + G4ThreeVector tr=trc4M.v(); // 3-mom of the targetResidual in projCM + G4double valp=tr.mag(); // momentum of the targetResidual in projCM + if(fabs(dmas-tM2+trc4M.m2())>.1) G4cout<<"**t**G4QS::C: trM2="<1.) + { +#ifdef pdebug + G4cout<<"***t***>>>G4QS::C: cost="<0.) // --->>> cost>0. + { + valk=dmas/(vale-valp)/2; // Momentum is too big (must be reduced) + G4ThreeVector pqf=utr*valk; // final projectileQuark 3-vector + G4LorentzVector pqc4M(valk,pqf); // Fill new 4-mom for projectileQuark in CM + pq4Mom=pqc4M; // // Fill new 4-mom for projectileQuark in LS + pq4Mom.boost(projBoost); // // Fill new 4-mom for projectileQuark in LS + G4LorentzVector prc4M(pM-valk,-pqf); // Fill new 4-mom for projectResidual in CM + pr4Mom=prc4M; // // Fill new 4-mom for projectResidual in LS + pr4Mom.boost(projBoost); // // Fill new 4-mom for projectResidual in LS + newTarg4M=pq4Mom+tr4Mom; // Final Target 4-mom in LS + } + else // --->>> cost<-1 => cost=-1 + { + G4double hvalk=dmas/(vale+valp); // Momentum's too small (must be increased, LIM) + if(hvalk>pM) // Momentum can not be increased to this value + { +#ifdef pdebug + G4cout<<"**t-Cor**>G4QS::C: hvalk="< pM="<G4QS::C: hvalk="<>>G4QS::C: cost="< projCM system + prc4M.boost(projRBoost); // projectileQuark => projCM system + G4ThreeVector pq=pqc4M.v(); // 3-vector of the projQ in projCM + G4double pqlp=utr.dot(pq); // Projection of pq on the target in projCM + G4ThreeVector pql=utr*pqlp; // pq part along pr + G4ThreeVector pqt=pq-pql; // pq part perpendicular to tr in projCM + G4double cosi=pqlp/valk; // Initial cos(theta) + G4ThreeVector pqlf=pql*(cost/cosi); // final pq part along tr + G4double sini=sqrt(1.-cosi*cosi); // Initial sin(theta) + G4double sint=sqrt(1.-cost*cost); // Desired sin(theta) + G4ThreeVector pqpf=pqt*(sint/sini); // final pq part perpendicular tr + G4ThreeVector pqf=pqlf+pqpf; // final pq + pqc4M.setV(pqf); // Change the momentumDirection of projQ(CM) + pq4Mom=pqc4M; // Fill new 4-mom for projQuark in LS + pq4Mom.boost(projBoost); // Fill new 4-mom for projQuark in LS + prc4M.setV(-pqf); // Change the momentumDirection of projR(CM) +#ifdef pdebug + G4LorentzVector nT4M=pqc4M+trc4M; + if(fabs(nT4M.m()-tM)>.001)G4cout<<"****t****G4QS::C:M="< // Fill new 4-mom for projResidual in LS + pr4Mom.boost(projBoost); // // Fill new 4-mom for projResidual in LS + if(fabs(pqf.mag()-valk)>.0001)G4cout<<"*G4QS::C:||="<.001)G4cout<<"*G4QS::C:"< CMS + cmsProj4M.boost(cmsRBoost); // LS projectile => CMS + G4LorentzVector cmsTarg4M=theTarg4Mom; // LS target => CMS + cmsTarg4M.boost(cmsRBoost); // LS target => CMS + G4double pcm=cmsProj4M.rho(); // CMS momentum for the elastic scattering + //#ifdef pdebug + if(fabs(cmsTarg4M.rho()-pcm) > 0.0001) + G4cout<<"-Worning-G4QSplitter::Constr: P="< CMS + cmsNewPr4M.boost(cmsRBoost); // LS finalProj => CMS + G4ThreeVector puV=cmsNewPr4M.v()/cmsNewPr4M.rho(); // Direction of the projectile + //#ifdef pdebug + G4LorentzVector cmsNewTg4M=newTarg4M; // LS finalTarg => CMS @@ TMP + cmsNewTg4M.boost(cmsRBoost); // LS finalTarg => CMS @@ TMP + G4ThreeVector tuV=cmsNewTg4M.v()/cmsNewTg4M.rho(); // Direction of the projectile + if(1.+puV.dot(tuV) > 0.001) + G4cout<<"-Worning-G4QSplitter::Constr: ct="< LS + G4QHadron* projH = new G4QHadron(projHadron); // Prototype of the Projectile Hadron + projH->Set4Momentum(newProj4M); + theQHadrons.push_back(projH); // Fill theProjectileHadron(delete equivalent) +#ifdef pdebug + G4cout<<"G4QSplitter::Constr: Fill ElastProjH="< LS + G4QHadron* targH = new G4QHadron(targQPDG,newTarg4M); // Prototype of theTargetHadron + theQHadrons.push_back(targH); // Fill the Target Hadron (delete equivalent) +#ifdef pdebug + G4cout<<"G4QSplitter::Constr: Fill ElastTargH="<Set4Momentum(newProj4M); + theQHadrons.push_back(projH); // Fill theProjectileHadron(delete equivalent) + G4Quasmon* targQ = new G4Quasmon(targQPDG.GetQuarkContent(),newTarg4M); + theQuasmons.push_back(targQ); // Insert Projectile Quasmon (delete equival.) + } + if(tcorFl) // Target is on the mass shell + { + G4Quasmon* projQ = new G4Quasmon(projHadron.GetQC(),newProj4M); + theQuasmons.push_back(projQ); // Insert Projectile Quasmon (delete equival.) + G4QHadron* targH = new G4QHadron(targQPDG,newTarg4M);//Prototype of theTargetHadron + theQHadrons.push_back(targH); // Fill the Target Hadron (delete equivalent) + } + else // Both are excited (two Quasmons only) + { + G4Quasmon* projQ = new G4Quasmon(projHadron.GetQC(),newProj4M); + theQuasmons.push_back(projQ); // Insert Projectile Quasmon (delete equival.) + G4Quasmon* targQ = new G4Quasmon(targQPDG.GetQuarkContent(),newTarg4M); + theQuasmons.push_back(targQ); // Insert Projectile Quasmon (delete equival.) + } + } + } + else G4cout<<"-Wor-G4QSplitter::Constr:T="<GetQC()<Get4Momentum()<GetQC()<Get4Momentum()<theQuasmons.size(); + if(nQ) for(G4int iq=0; iqtheQuasmons[iq]); +#ifdef fdebug + G4cout<<"G4QS::CopyByPoint:Q#"<GetQC()<Get4Momentum()<theProjEnvFlag; + theTargEnvFlag = right->theTargEnvFlag; + theWeight = right->theWeight; + theProjQC = right->theProjQC; + theTargQC = right->theTargQC; + theProj4Mom = right->theProj4Mom; + theTarg4Mom = right->theTarg4Mom; + + theWorld = right->theWorld; + tot4Mom = right->tot4Mom; + totCharge = right->totCharge; + totBaryNum = right->totBaryNum; +} + +G4QSplitter::~G4QSplitter() +{ +#ifdef debug + G4cout<<"~G4QSplitter: before theQHadrons nH="<GetCharge(); + fBaryoN+=theQHadrons[ih]->GetBaryonNumber(); + } + G4int nQuas=theQuasmons.size(); + if(nQuas)for(G4int iqs=0; iqsGetCharge(); + fBaryoN+=theQuasmons[iqs]->GetBaryonNumber(); + } + if(fCharge!=totCharge || fBaryoN!=totBaryNum) + { + G4cerr<<"***G4QS::Frag:tC="<1) + { + if(nPart<2) + { + G4cerr<<"**G4QSplitter::RandMomFractionString: n="<4 + return x; + } + //if(nPart!=3) G4cerr<<"*>>>>>*G4QSplitter::RandMomFractionFree: n="<8) + { + if(nPart>10) + { + if(nPart>11) // >11 + { + pr=.614/pow((nPart+1.25),.75); + pra=.915/pow((nPart+6.7),1.75); + } + else // 11 + { + pr=.09945; + pra=.00667; + } + } + else + { + if(nPart>9) // 10 + { + pr=.1064; + pra=.00741; + } + else // 9 + { + pr=.11425; + pra=.00828; + } + } + } + else + { + if(nPart>6) + { + if(nPart>7) // 8 + { + pr=.12347; + pra=.00926; + } + else // 7 + { + pr=.13405; + pra=.01027; + } + } + else + { + if(nPart>5) // 6 + { + pr=.1454; + pra=.01112; + } + else // 5 + { + pr=.15765; + pra=.00965; + } + } + } + x=pow((r/p2),(1.-rr+pra))*(rr+pr*(r-p2)); + } + else + { + G4double sr=0.; + if(nPart>8) + { + if(nPart>10) + { + if(nPart>11) sr=.86/(nPart+1.05); // >11 + else sr=.0774; // 11 + } + else + { + if(nPart>9) sr=.0849; // 10 + else sr=.0938; // 9 + } + } + else + { + if(nPart>6) + { + if(nPart>7) sr=.1047; // 8 + else sr=.1179; // 7 + } + else + { + if(nPart>5) sr=.1339; // 6 + else sr=.15135; // 5 + } + } + x=1.-sqrt((1.-r)/(1.-p2))*(1.-rr+sr*(p2-r)); + } + } + } + return x; +} // End of RandomizeMomFractionFree + +// Randomize MomentumFraction for CHIPS of nPart partons for Pomeron exchange [(1-x)^(n-2)] +G4double G4QSplitter::RandomizeMomFractionString(G4int nPart) +{// ================================================ + if(nPart<2) + { + G4cerr<<"**G4QSplitter::RandMomFractionString: n="<4 + return x; +} // End of RandomizeMomFractionString diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4Quasmon.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4Quasmon.cc index 401ba2cdcb..f8ceccc86a 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4Quasmon.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4Quasmon.cc @@ -24,8 +24,8 @@ //34567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 // // -// $Id: G4Quasmon.cc,v 1.83 2005/06/27 15:30:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Quasmon.cc,v 1.84 2005/12/14 13:57:13 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4Quasmon ---------------- // by Mikhail Kossov, July 1999. @@ -392,16 +392,27 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) } else q4Mom.setE(p); } - G4double quasM= sqrt(qM2); // Current mass of Quasmon - G4double tmpEq=q4Mom.e(); // Energy of Quasmon - G4double tmpPq=q4Mom.rho(); // Momentum of Quasmon + G4double quasM= sqrt(qM2); // Current mass of Quasmon + G4double tmpEq=q4Mom.e(); // Energy of Quasmon + G4double tmpPq=q4Mom.rho(); // Momentum of Quasmon if(tmpEqE="<E=" + < +#include "Randomize.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4VQCrossSection.hh" + +class G4QANuMuNuclearCrossSection : public G4VQCrossSection +{ +protected: + + G4QANuMuNuclearCrossSection() {}; + +public: + + ~G4QANuMuNuclearCrossSection() {}; + + static G4VQCrossSection* GetPointer(); // Gives a pointer to this singletone + + G4double ThresholdEnergy(G4int Z, G4int N); + + G4double CalculateCrossSection(G4int F, G4int I, G4int Z, G4int N, G4double Momentum); + + G4int GetExchangePDGCode(); + + G4double GetDirectPart(G4double Q2); + + G4double GetNPartons(G4double Q2); + + G4double GetQEL_ExchangeQ2(); + + G4double GetNQE_ExchangeQ2(); + + // Get static members + G4double GetLastTOTCS() {return lastSig;} + G4double GetLastQELCS() {return lastQEL;} + +private: + G4int GetFunctions(G4int z, G4int n, G4double* t, G4double* q, G4double* e); + G4double HighEnergyTX(G4double lE); + G4double HighEnergyQE(G4double lE); + +// Body +private: + static G4double lastSig; // Last calculated total cross section + static G4double lastQEL; // Last calculated quasi-elastic cross section + static G4int lastL; // Last bin used in the cross section TheLastBin + static G4double lastE; // Last energy used in the cross section Energy + static G4double* lastEN; // Pointer to the last array of the energy axis + static G4double* lastTX; // Pointer to the last array of the total CS function + static G4double* lastQE; // Pointer to the last array of the QE CS function +}; + +#endif diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCaptureAtRest.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QCaptureAtRest.hh similarity index 98% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCaptureAtRest.hh rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QCaptureAtRest.hh index d6824f6a32..4856483614 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCaptureAtRest.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QCaptureAtRest.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4QCaptureAtRest.hh,v 1.8 2005/06/04 13:08:23 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QCaptureAtRest.hh,v 1.1 2005/11/25 20:26:36 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCaptureAtRest header ---------------- // by Mikhail Kossov, December 2003. diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCollision.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QCollision.hh similarity index 85% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCollision.hh rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QCollision.hh index 1200415509..78f87e39a0 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCollision.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QCollision.hh @@ -20,14 +20,14 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4QCollision.hh,v 1.3 2005/05/13 16:14:59 mkossov Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QCollision.hh,v 1.4 2005/11/30 16:26:42 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCollision header ---------------- // by Mikhail Kossov, December 2003. // Header of G4QCollision class (mu-,pi-,K-) of the CHIPS Simulation Branch in GEANT4 // ------------------------------------------------------------------------------- -// This is a unique CHIPS class for the Nuclear Capture At Rest Prosesses. +// This is a unique CHIPS class for the Hadron-Nuclear Inelastic Interaction Prosesses. // ------------------------------------------------------------------------------- // At present (Dec.04) only pi+/-, K+/- proton, neutron, antiproton and antineutron // collisions with protons are implemented, which are fundamental for the in matter @@ -91,9 +91,11 @@ #include "G4QElectronNuclearCrossSection.hh" #include "G4QMuonNuclearCrossSection.hh" #include "G4QTauNuclearCrossSection.hh" +#include "G4QNuMuNuclearCrossSection.hh" +#include "G4QANuMuNuclearCrossSection.hh" #include "G4QuasmonString.hh" -// is included in G4QIsotope.hh -//#include +#include "G4QPDGToG4Particle.hh" +#include class G4QCollision : public G4VDiscreteProcess { @@ -127,13 +129,19 @@ public: G4int GetNumberOfNeutronsInTarget(); - // Static functions + // Static functions --------------------------------------------------------------------- static void SetManual(); static void SetStandard(); static void SetParameters(G4double temper=180., G4double ssin2g=.1, G4double etaetap=.3, G4double fN=0., G4double fD=0., G4double cP=1., G4double mR=1., G4int npCHIPSWorld=234, G4double solAn=.5, G4bool efFlag=false, G4double piTh=141.4,G4double mpi2=20000.,G4double dinum=1880.); + static void SetPhotNucBias(G4double phnB=1.); + static void SetWeakNucBias(G4double ccnB=1.); + //--- End of static member functions ---------------------------------------------------- + + G4double GetPhotNucBias(){return photNucBias;} + G4double GetWeakNucBias(){return weakNucBias;} private: @@ -144,7 +152,7 @@ private: G4QCollision(const G4QCollision&); // BODY - // Static Parameters + // Static Parameters -------------------------------------------------------------------- static G4bool manualFlag; // If false then standard parameters are used static G4int nPartCWorld; // The#of particles for hadronization (limit of A of fragm.) // -> Parameters of the G4Quasmon class: @@ -162,7 +170,10 @@ private: static G4double PiPrThresh; // Pion Production Threshold for gammas static G4double M2ShiftVir; // Shift for M2=-Q2=m_pi^2 of the virtual gamma static G4double DiNuclMass; // Double Nucleon Mass for virtual normalization - // + // -> Biasing parameters: + static G4double photNucBias; // Biasing parameter for photo-($e,mu,tau)Nuclear reactions + static G4double weakNucBias; // Biasing parameter for Charged Currents (nu,mu) reactions + //--------------------------------- End of static parameters --------------------------- // Working parameters G4VQCrossSection* theCS; G4LorentzVector EnMomConservation; // Residual of Energy/Momentum Cons. @@ -171,6 +182,10 @@ private: // Modifires for the reaction G4double Time; // Time shift of the capture reaction G4double EnergyDeposition; // Energy deposited in the reaction + static std::vector ElementZ; // Z of the element(i) in theLastCalc + static std::vector ElProbInMat; // SumProbabilityElements in Material + static std::vector *> ElIsoN; // N of isotope(j) of Element(i) + static std::vector *> IsoProbInEl;// SumProbabIsotopes in Element i }; #endif diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QElectronNuclearCrossSection.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QElectronNuclearCrossSection.hh similarity index 80% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QElectronNuclearCrossSection.hh rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QElectronNuclearCrossSection.hh index 8191e5613e..d3f7946882 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QElectronNuclearCrossSection.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QElectronNuclearCrossSection.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 physics class: G4QElectronNuclearCrossSection -- header file @@ -60,7 +60,7 @@ public: G4double CalculateCrossSection(G4int F, G4int I, G4int Z, G4int N, G4double Momentum); - G4int GetExchangePDGCode(G4double nu=0., G4double Q2=0.); + G4int GetExchangePDGCode(); G4double GetExchangeEnergy(); @@ -90,20 +90,20 @@ private: static G4double* lastJ3; // Pointer to the last array of the J3 function }; -inline G4double G4QElectronNuclearCrossSection::DFun(G4double x)// Parametrization of the PhotoNucCS +inline G4double G4QElectronNuclearCrossSection::DFun(G4double x)//PhotoNucCSParametrization { static const G4double shd=1.0734; // HE PomShadowing(D) static const G4double poc=0.0375; // HE Pomeron coefficient static const G4double pos=16.5; // HE Pomeron shift static const G4double reg=.11; // HE Reggeon slope static const G4double mel=0.5109989; // Mass of an electron in MeV - static const G4double lmel=std::log(mel); // Log of an electron mass - G4double y=std::exp(x-lastG-lmel); // y for the x + static const G4double lmel=std::log(mel); // Log of an electron mass + G4double y=std::exp(x-lastG-lmel); // y for the x G4double flux=lastG*(2.-y*(2.-y))-1.; // flux factor return (poc*(x-pos)+shd*std::exp(-reg*x))*flux; } -inline G4double G4QElectronNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section +inline G4double G4QElectronNuclearCrossSection::Fun(G4double x) // Integrated PhoNucCS { G4double dlg1=lastG+lastG-1.; G4double lgoe=lastG/lastE; @@ -114,25 +114,25 @@ inline G4double G4QElectronNuclearCrossSection::Fun(G4double x) // Integrated Ph inline G4double G4QElectronNuclearCrossSection::HighEnergyJ1(G4double lEn) { static const G4double le=std::log(50000.); // log(E0) - static const G4double le2=le*le; // log(E0)^2 - static const G4double a=.0375; // a - static const G4double ha=a*.5; // a/2 - static const G4double ab=a*16.5; // a*b - static const G4double d=0.11; // d - static const G4double cd=1.0734/d; // c/d + static const G4double le2=le*le; // log(E0)^2 + static const G4double a=.0375; // a + static const G4double ha=a*.5; // a/2 + static const G4double ab=a*16.5; // a*b + static const G4double d=0.11; // d + static const G4double cd=1.0734/d; // c/d static const G4double ele=std::exp(-d*le); // E0^(-d) return ha*(lEn*lEn-le2)-ab*(lEn-le)-cd*(std::exp(-d*lEn)-ele); } inline G4double G4QElectronNuclearCrossSection::HighEnergyJ2(G4double lEn) { - static const G4double e=50000.; // E0 + static const G4double e=50000.; // E0 static const G4double le=std::log(e); // log(E0) - static const G4double le1=(le-1.)*e; // (log(E0)-1)*E0 - static const G4double a=.0375; // a - static const G4double ab=a*16.5; // a*b - static const G4double d=1.-0.11; // 1-d - static const G4double cd=1.0734/d; // c/(1-d) + static const G4double le1=(le-1.)*e; // (log(E0)-1)*E0 + static const G4double a=.0375; // a + static const G4double ab=a*16.5; // a*b + static const G4double d=1.-0.11; // 1-d + static const G4double cd=1.0734/d; // c/(1-d) static const G4double ele=std::exp(d*le); // E0^(1-d) G4double En=std::exp(lEn); return a*((lEn-1.)*En-le1)-ab*(En-e)+cd*(std::exp(d*lEn)-ele); @@ -140,14 +140,14 @@ inline G4double G4QElectronNuclearCrossSection::HighEnergyJ2(G4double lEn) inline G4double G4QElectronNuclearCrossSection::HighEnergyJ3(G4double lEn) { - static const G4double e=50000.; // E0 + static const G4double e=50000.; // E0 static const G4double le=std::log(e); // log(E0) - static const G4double e2=e*e; // E0^2 - static const G4double leh=(le-.5)*e2; // (log(E0)-.5)*E0^2 - static const G4double ha=.0375*.5; // a/2 - static const G4double hab=ha*16.5; // a*b/2 - static const G4double d=2.-.11; // 2-d - static const G4double cd=1.0734/d; // c/(2-d) + static const G4double e2=e*e; // E0^2 + static const G4double leh=(le-.5)*e2; // (log(E0)-.5)*E0^2 + static const G4double ha=.0375*.5; // a/2 + static const G4double hab=ha*16.5; // a*b/2 + static const G4double d=2.-.11; // 2-d + static const G4double cd=1.0734/d; // c/(2-d) static const G4double ele=std::exp(d*le); // E0^(2-d) G4double lastE2=std::exp(lEn+lEn); return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(std::exp(d*lEn)-ele); diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QMuonNuclearCrossSection.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QMuonNuclearCrossSection.hh similarity index 82% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QMuonNuclearCrossSection.hh rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QMuonNuclearCrossSection.hh index b350fff5a5..5acf1863a6 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QMuonNuclearCrossSection.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QMuonNuclearCrossSection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QMuonNuclearCrossSection.hh,v 1.3 2005/06/27 15:30:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QMuonNuclearCrossSection.hh,v 1.2 2005/11/25 21:34:17 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 physics class: G4QMuonNuclearCrossSection -- header file @@ -64,7 +64,7 @@ public: G4double CalculateCrossSection(G4int F, G4int I, G4int Z, G4int N, G4double Momentum); - G4int GetExchangePDGCode(G4double nu=0., G4double Q2=0.); + G4int GetExchangePDGCode(); G4double GetExchangeEnergy(); @@ -107,7 +107,7 @@ inline G4double G4QMuonNuclearCrossSection::DFun(G4double x)// Parametrization o return (poc*(x-pos)+shd*std::exp(-reg*x))*flux; } -inline G4double G4QMuonNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section +inline G4double G4QMuonNuclearCrossSection::Fun(G4double x) // Integrated PhoNucCS { G4double dlg1=lastG+lastG-1.; G4double lgoe=lastG/lastE; @@ -118,25 +118,25 @@ inline G4double G4QMuonNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc inline G4double G4QMuonNuclearCrossSection::HighEnergyJ1(G4double lEn) { static const G4double le=std::log(50000.); // log(E0) - static const G4double le2=le*le; // log(E0)^2 - static const G4double a=.0375; // a - static const G4double ha=a*.5; // a/2 - static const G4double ab=a*16.5; // a*b - static const G4double d=0.11; // d - static const G4double cd=1.0734/d; // c/d + static const G4double le2=le*le; // log(E0)^2 + static const G4double a=.0375; // a + static const G4double ha=a*.5; // a/2 + static const G4double ab=a*16.5; // a*b + static const G4double d=0.11; // d + static const G4double cd=1.0734/d; // c/d static const G4double ele=std::exp(-d*le); // E0^(-d) return ha*(lEn*lEn-le2)-ab*(lEn-le)-cd*(std::exp(-d*lEn)-ele); } inline G4double G4QMuonNuclearCrossSection::HighEnergyJ2(G4double lEn) { - static const G4double e=50000.; // E0 + static const G4double e=50000.; // E0 static const G4double le=std::log(e); // log(E0) - static const G4double le1=(le-1.)*e; // (log(E0)-1)*E0 - static const G4double a=.0375; // a - static const G4double ab=a*16.5; // a*b - static const G4double d=1.-0.11; // 1-d - static const G4double cd=1.0734/d; // c/(1-d) + static const G4double le1=(le-1.)*e; // (log(E0)-1)*E0 + static const G4double a=.0375; // a + static const G4double ab=a*16.5; // a*b + static const G4double d=1.-0.11; // 1-d + static const G4double cd=1.0734/d; // c/(1-d) static const G4double ele=std::exp(d*le); // E0^(1-d) G4double En=std::exp(lEn); return a*((lEn-1.)*En-le1)-ab*(En-e)+cd*(std::exp(d*lEn)-ele); @@ -144,14 +144,14 @@ inline G4double G4QMuonNuclearCrossSection::HighEnergyJ2(G4double lEn) inline G4double G4QMuonNuclearCrossSection::HighEnergyJ3(G4double lEn) { - static const G4double e=50000.; // E0 + static const G4double e=50000.; // E0 static const G4double le=std::log(e); // log(E0) - static const G4double e2=e*e; // E0^2 - static const G4double leh=(le-.5)*e2; // (log(E0)-.5)*E0^2 - static const G4double ha=.0375*.5; // a/2 - static const G4double hab=ha*16.5; // a*b/2 - static const G4double d=2.-.11; // 2-d - static const G4double cd=1.0734/d; // c/(2-d) + static const G4double e2=e*e; // E0^2 + static const G4double leh=(le-.5)*e2; // (log(E0)-.5)*E0^2 + static const G4double ha=.0375*.5; // a/2 + static const G4double hab=ha*16.5; // a*b/2 + static const G4double d=2.-.11; // 2-d + static const G4double cd=1.0734/d; // c/(2-d) static const G4double ele=std::exp(d*le); // E0^(2-d) G4double lastE2=std::exp(lEn+lEn); return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(std::exp(d*lEn)-ele); diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QNuMuNuclearCrossSection.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QNuMuNuclearCrossSection.hh new file mode 100644 index 0000000000..c354188af5 --- /dev/null +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QNuMuNuclearCrossSection.hh @@ -0,0 +1,94 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4QNuMuNuclearCrossSection.hh,v 1.3 2005/11/30 16:26:42 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// GEANT4 physics class: G4QNuMuNuclearCrossSection -- header file +// M.V. Kossov, CERN-ITEP(Moscow), 20-DEC-2005 +// The last update: M.V. Kossov, CERN/ITEP (Moscow) 20-DEC-2005 +// +// Short description: this G4 singletone class calculates (nu_mu,mu) Nuclear cross section +// (Energy limit: E<320GeV->badExtrapolation) for a particular isotope (proportional to A) +// **************************************************************************************** + +#ifndef G4QNuMuNuclearCrossSection_h +#define G4QNuMuNuclearCrossSection_h 1 + +#include "G4ParticleTable.hh" +#include "G4NucleiProperties.hh" +#include "G4NucleiPropertiesTable.hh" +#include +#include "Randomize.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4VQCrossSection.hh" + +class G4QNuMuNuclearCrossSection : public G4VQCrossSection +{ +protected: + + G4QNuMuNuclearCrossSection() {}; + +public: + + ~G4QNuMuNuclearCrossSection() {}; + + static G4VQCrossSection* GetPointer(); // Gives a pointer to this singletone + + G4double ThresholdEnergy(G4int Z, G4int N); + + G4double CalculateCrossSection(G4int F, G4int I, G4int Z, G4int N, G4double Momentum); + + G4int GetExchangePDGCode(); + + G4double GetDirectPart(G4double Q2); + + G4double GetNPartons(G4double Q2); + + G4double GetQEL_ExchangeQ2(); + + G4double GetNQE_ExchangeQ2(); + + // Get static members + G4double GetLastTOTCS() {return lastSig;} + G4double GetLastQELCS() {return lastQEL;} + +private: + G4int GetFunctions(G4int z, G4int n, G4double* t, G4double* q, G4double* e); + G4double HighEnergyTX(G4double lE); + G4double HighEnergyQE(G4double lE); + +// Body +private: + static G4double lastSig; // Last calculated total cross section + static G4double lastQEL; // Last calculated quasi-elastic cross section + static G4int lastL; // Last bin used in the cross section TheLastBin + static G4double lastE; // Last energy used in the cross section Energy + static G4double* lastEN; // Pointer to the last array of the energy axis + static G4double* lastTX; // Pointer to the last array of the total CS function + static G4double* lastQE; // Pointer to the last array of the QE CS function +}; + +#endif diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPhotonNuclearCrossSection.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QPhotonNuclearCrossSection.hh similarity index 98% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPhotonNuclearCrossSection.hh rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QPhotonNuclearCrossSection.hh index 22286b5d8c..d5937bcb5e 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPhotonNuclearCrossSection.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QPhotonNuclearCrossSection.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 physics class: G4QPhotonNuclearCrossSection -- header file diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QProtonNuclearCrossSection.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QProtonNuclearCrossSection.hh similarity index 98% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QProtonNuclearCrossSection.hh rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QProtonNuclearCrossSection.hh index edd1acf527..f1fabab396 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QProtonNuclearCrossSection.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QProtonNuclearCrossSection.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 physics class: G4QProtonNuclearCrossSection -- header file diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QTauNuclearCrossSection.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QTauNuclearCrossSection.hh similarity index 77% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QTauNuclearCrossSection.hh rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QTauNuclearCrossSection.hh index bf829a3b07..0a0851f783 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QTauNuclearCrossSection.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QTauNuclearCrossSection.hh @@ -21,16 +21,16 @@ // ******************************************************************** // // -// $Id: G4QTauNuclearCrossSection.hh,v 1.3 2005/06/27 15:30:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QTauNuclearCrossSection.hh,v 1.2 2005/11/25 21:34:17 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 physics class: G4QTauNuclearCrossSection -- header file // M.V. Kossov, CERN-ITEP(Moscow), 4-FEB-2004 // The last update: M.V. Kossov, CERN/ITEP (Moscow) 4-Feb-04 // -// Short description: this G4 singletone class calculates muonNuclear cross section for -// the particular isotope (GetCrossSection member function) +// Short description: this G4 singletone class calculates tau-lepton-nuclear cross section +// for the particular isotope (GetCrossSection member function) // **************************************************************************************** // ********* This HEADER is temporary moved from the photolepton_hadron directory ********* // ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ****** @@ -64,7 +64,7 @@ public: G4double CalculateCrossSection(G4int F, G4int I, G4int Z, G4int N, G4double Momentum); - G4int GetExchangePDGCode(G4double nu=0., G4double Q2=0.); + G4int GetExchangePDGCode(); G4double GetExchangeEnergy(); @@ -100,14 +100,14 @@ inline G4double G4QTauNuclearCrossSection::DFun(G4double x)// Parametrization of static const G4double poc=0.0375; // HE Pomeron coefficient static const G4double pos=16.5; // HE Pomeron shift static const G4double reg=.11; // HE Reggeon slope - static const G4double mtu=1777.; // Mass of a muon in MeV - static const G4double lmtu=std::log(mtu); // Log of a muon mass - G4double y=std::exp(x-lastG-lmtu); // y for the x + static const G4double mtu=1777.; // Mass of a muon in MeV + static const G4double lmtu=std::log(mtu); // Log of a muon mass + G4double y=std::exp(x-lastG-lmtu); // y for the x G4double flux=lastG*(2.-y*(2.-y))-1.; // flux factor return (poc*(x-pos)+shd*std::exp(-reg*x))*flux; } -inline G4double G4QTauNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section +inline G4double G4QTauNuclearCrossSection::Fun(G4double x) // Integrated PhoNucCS { G4double dlg1=lastG+lastG-1.; G4double lgoe=lastG/lastE; @@ -118,25 +118,25 @@ inline G4double G4QTauNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc inline G4double G4QTauNuclearCrossSection::HighEnergyJ1(G4double lEn) { static const G4double le=std::log(50000.); // log(E0) - static const G4double le2=le*le; // log(E0)^2 - static const G4double a=.0375; // a - static const G4double ha=a*.5; // a/2 - static const G4double ab=a*16.5; // a*b - static const G4double d=0.11; // d - static const G4double cd=1.0734/d; // c/d + static const G4double le2=le*le; // log(E0)^2 + static const G4double a=.0375; // a + static const G4double ha=a*.5; // a/2 + static const G4double ab=a*16.5; // a*b + static const G4double d=0.11; // d + static const G4double cd=1.0734/d; // c/d static const G4double ele=std::exp(-d*le); // E0^(-d) return ha*(lEn*lEn-le2)-ab*(lEn-le)-cd*(std::exp(-d*lEn)-ele); } inline G4double G4QTauNuclearCrossSection::HighEnergyJ2(G4double lEn) { - static const G4double e=50000.; // E0 + static const G4double e=50000.; // E0 static const G4double le=std::log(e); // log(E0) - static const G4double le1=(le-1.)*e; // (log(E0)-1)*E0 - static const G4double a=.0375; // a - static const G4double ab=a*16.5; // a*b - static const G4double d=1.-0.11; // 1-d - static const G4double cd=1.0734/d; // c/(1-d) + static const G4double le1=(le-1.)*e; // (log(E0)-1)*E0 + static const G4double a=.0375; // a + static const G4double ab=a*16.5; // a*b + static const G4double d=1.-0.11; // 1-d + static const G4double cd=1.0734/d; // c/(1-d) static const G4double ele=std::exp(d*le); // E0^(1-d) G4double En=std::exp(lEn); return a*((lEn-1.)*En-le1)-ab*(En-e)+cd*(std::exp(d*lEn)-ele); @@ -144,14 +144,14 @@ inline G4double G4QTauNuclearCrossSection::HighEnergyJ2(G4double lEn) inline G4double G4QTauNuclearCrossSection::HighEnergyJ3(G4double lEn) { - static const G4double e=50000.; // E0 + static const G4double e=50000.; // E0 static const G4double le=std::log(e); // log(E0) - static const G4double e2=e*e; // E0^2 - static const G4double leh=(le-.5)*e2; // (log(E0)-.5)*E0^2 - static const G4double ha=.0375*.5; // a/2 - static const G4double hab=ha*16.5; // a*b/2 - static const G4double d=2.-.11; // 2-d - static const G4double cd=1.0734/d; // c/(2-d) + static const G4double e2=e*e; // E0^2 + static const G4double leh=(le-.5)*e2; // (log(E0)-.5)*E0^2 + static const G4double ha=.0375*.5; // a/2 + static const G4double hab=ha*16.5; // a*b/2 + static const G4double d=2.-.11; // 2-d + static const G4double cd=1.0734/d; // c/(2-d) static const G4double ele=std::exp(d*le); // E0^(2-d) G4double lastE2=std::exp(lEn+lEn); return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(std::exp(d*lEn)-ele); diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4VQCrossSection.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4VQCrossSection.hh similarity index 90% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4VQCrossSection.hh rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4VQCrossSection.hh index 44436aef29..b397e78b5c 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4VQCrossSection.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4VQCrossSection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VQCrossSection.hh,v 1.4 2005/06/27 15:30:26 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VQCrossSection.hh,v 1.3 2005/11/30 16:26:42 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 virtual class: G4VQCrossSection -- header file @@ -83,10 +83,12 @@ class G4VQCrossSection { protected: - G4VQCrossSection() {} + G4VQCrossSection() {;} // for each particle a separate instance of G4QCollision should be + // used (and inside use a separate instance of G4Q*CrossSection) public: - virtual ~G4VQCrossSection() {} + virtual ~G4VQCrossSection() {;}// for each particle a separate instance of G4QCollision + //@@ can be improved in future)// should be used and inside a separate istance of CS's virtual G4double GetCrossSection(G4double Momentum, G4int Z, G4int N); @@ -99,6 +101,14 @@ public: // Define in the derived class, F=0 - create DAMDB, F=-1 - read DAMDB, F=1 - update DAMDB virtual G4double CalculateCrossSection(G4int F, G4int I, G4int Z, G4int N, G4double P)=0; + virtual G4double GetLastTOTCS(); // Get the last calculated total cross-section + + virtual G4double GetLastQELCS(); // Get the last calculated quasi-elastic cross-section + + virtual G4double GetDirectPart(G4double Q2); // Direct interaction with quark-partons + + virtual G4double GetNPartons(G4double Q2); // #of quark-partons in non-perturbative PhSp + // Subroutines for the t-chanel processes with a leader (DIS, Elastic, Quasielastic etc.) virtual G4double GetExchangeEnergy(); // Returns energy of the t-chanel particle (gam,pi) @@ -107,7 +117,11 @@ public: virtual G4double GetVirtualFactor(G4double nu, G4double Q2); // Returns a ReductionFactor - virtual G4int GetExchangePDGCode(G4double nu=0., G4double Q2=0.);//PDGCode of ExchangePrt + virtual G4double GetQEL_ExchangeQ2(); // Get randomized Q2 for quasi-elastic scattering + + virtual G4double GetNQE_ExchangeQ2(); // Get randomized Q2 for non quasi-elastic scat. + + virtual G4int GetExchangePDGCode(); // PDGCode of the Exchange Particle // Body: Basic Parameters of DAMDB (each derived class can add it's own values) // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QANuMuNuclearCrossSection.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QANuMuNuclearCrossSection.cc new file mode 100644 index 0000000000..c6ad947771 --- /dev/null +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QANuMuNuclearCrossSection.cc @@ -0,0 +1,574 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4QANuMuNuclearCrossSection.cc,v 1.5 2005/12/01 17:28:18 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// G4 Physics class: G4QANuMuNuclearCrossSection for gamma+A cross sections +// Created: M.V. Kossov, CERN/ITEP(Moscow), 10-OCT-01 +// The last update: M.V. Kossov, CERN/ITEP (Moscow) 17-Oct-03 +// +// **************************************************************************************** +// ********** This CLASS is temporary moved from the photolepton_hadron directory ********* +// ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ****** +// **************************************************************************************** +//=============================================================================================== + +///#define debug +#define edebug +//#define pdebug +//#define ppdebug +//#define tdebug +//#define sdebug + +#include "G4QANuMuNuclearCrossSection.hh" + +// Initialization of the +G4double G4QANuMuNuclearCrossSection::lastSig=0.;//Last calculated total cross section +G4double G4QANuMuNuclearCrossSection::lastQEL=0.;//Last calculated quasi-el. cross section +G4int G4QANuMuNuclearCrossSection::lastL=0; //Last used in cross section TheLastBin +G4double G4QANuMuNuclearCrossSection::lastE=0.; //Last used in cross section TheEnergy +G4double* G4QANuMuNuclearCrossSection::lastEN=0; //Pointer to the Energy Scale of TX & QE +G4double* G4QANuMuNuclearCrossSection::lastTX=0; //Pointer to the LastArray of TX function +G4double* G4QANuMuNuclearCrossSection::lastQE=0; //Pointer to the LastArray of QE function + +// Returns Pointer to the G4VQCrossSection class +G4VQCrossSection* G4QANuMuNuclearCrossSection::GetPointer() +{ + static G4QANuMuNuclearCrossSection theCrossSection;//**Static body of the Cross Section** + return &theCrossSection; +} + +// Gives the threshold energy = the same for all nuclei (@@ can be reduced for hevy nuclei) +G4double G4QANuMuNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) +{ + //static const G4double mNeut = G4NucleiProperties::GetNuclearMass(1.,0.)/GeV; + //static const G4double mProt = G4NucleiProperties::GetNuclearMass(1.,1.)/GeV; + //static const G4double mDeut = G4NucleiProperties::GetNuclearMass(2.,1.)/GeV/2.; + static const G4double mN=.931494043;// Nucleon mass (inside nucleus, AtomicMassUnit, GeV) + static const G4double dmN=mN+mN; // Doubled nucleon mass (2*AtomicMassUnit, GeV) + static const G4double mmu=.105658369; // Mass of a muon in GeV + static const G4double mmu2=mmu*mmu; // Squared mass of a muon in GeV^2 + static const G4double thresh=mmu+mmu2/dmN; // Universal threshold in GeV + // --------- + //static const G4double infEn = 9.e27; + G4double dN=0.; + if(Z>0||N>0) dN=thresh*GeV; // @@ if upgraded, change it in a total cross section + //@@ "dN=mmu+mmu2/G4NucleiProperties::GetNuclearMass((Z+N),(Z)/GeV" + return dN; +} + +// The main member function giving the gamma-A cross section (E_kin in MeV, CS in mb) +G4double G4QANuMuNuclearCrossSection::CalculateCrossSection(G4int F, G4int I, G4int targZ, + G4int targN, G4double Momentum) +{ + static const G4double mb38=1.E-11*millibarn;// Conversion 10^-38 cm^2 to mb=10^-27 cm^2 + static const G4int nE=33; // !! If change this, change it in GetFunctions() (*.hh) !! + static const G4int mL=nE-1; + static const G4double mN=.931494043;// Nucleon mass (inside nucleus, AtomicMassUnit, GeV) + static const G4double dmN=mN+mN; // Doubled nucleon mass (2*AtomicMassUnit, GeV) + static const G4double mmu=.105658369; // Mass of a muon in GeV + static const G4double mmu2=mmu*mmu; // Squared mass of a muon in GeV^2 + static const G4double EMi=mmu+mmu2/dmN; // Universal threshold of the reaction in GeV + static const G4double EMa=300.; // Maximum tabulated Energy of nu_mu in GeV + // *** Begin of the Associative memory for acceleration of the cross section calculations + static std::vector colH; //?? Vector of HighEnergyCoefficients (functional) + static std::vector TX; // Vector of pointers to the TX tabulated functions + static std::vector QE; // Vector of pointers to the QE tabulated functions + static G4bool first=true; // Flag of initialization of the energy axis + // *** End of Static Definitions (Associative Memory) *** + //const G4double Energy = aPart->GetKineticEnergy()/MeV; // Energy of the Muon + //G4double TotEnergy2=Momentum; + lastE=Momentum/GeV; // Kinetic energy of the muon neutrino (in GeV!) + if (lastE<=EMi) // Energy is below the minimum energy in the table + { + lastE=0.; + lastSig=0.; + return 0.; + } + G4int Z=targZ; // New Z, which can change the sign + if(F<=0) // This isotope was not the last used isotop + { + if(F<0) // This isotope was found in DAMDB =========> RETRIEVE + { + lastTX =TX[I]; // Pointer to the prepared TX function (same isotope) + lastQE =QE[I]; // Pointer to the prepared QE function (same isotope) + } + else // This isotope wasn't calculated previously => CREATE + { + if(first) + { + lastEN = new G4double[nE]; // This must be done only once! + Z=-Z; // To explain GetFunctions that E-axis must be filled + first=false; // To make it only once + } + lastTX = new G4double[nE]; // Allocate memory for the new TX function + lastQE = new G4double[nE]; // Allocate memory for the new QE function + G4int res=GetFunctions(Z,targN,lastTX,lastQE,lastEN);//@@analize(0=first,-1=bad,1=OK) + if(res<0) G4cerr<<"*W*G4NuMuNuclearCS::CalcCrossSect:Bad Function Retrieve"<=2) + { + G4int newran=ran/2; + if(lastE<=lastEN[sep]) sep-=newran; + else if(newran>1) sep+=newran; + ran=newran; + chk=chk+chk; + } + if(chk+chk!=mL) G4cerr<<"*Warn*G4NuMuNuclearCS::CalcCS:Table! mL="<=mL||lastE>highE) + G4cerr<<"*Warn*G4NuMuNuclearCS::CalcCS:Bin! "<(rXi); + if(iXi<0) iXi=0; + if(iXi>bQ2) iXi=bQ2; + G4double dXi=rXi-iXi; + G4double bnti=inl[iXi]; + G4double inti=bnti+dXi*(inl[iXi+1]-bnti); + // + G4double rXa=(Xma-Xmin)/dX; + G4int iXa=static_cast(rXa); + if(iXa<0) iXa=0; + if(iXa>bQ2) iXa=bQ2; + G4double dXa=rXa-iXa; + G4double bnta=inl[iXa]; + G4double inta=bnta+dXa*(inl[iXa+1]-bnta); + // *** Find X using the reversed table *** + G4double intx=inti+(inta-inti)*G4UniformRand(); + G4int intc=static_cast(intx); + if(intc<0) intc=0; + if(intc>bQ2) intc=bQ2; // If it is more than max, then the BAD extrapolation + G4double dint=intx-intc; + G4double mX=Xl[intc]; + G4double X=mX+dint*(Xl[intc+1]-mX); + G4double Q2=pow(X,pconv)-1.; + return Q2*GeV*GeV; +} + +// Randomize Q2 from neutrino to the scattered muon when the scattering is not quasiElastic +G4double G4QANuMuNuclearCrossSection::GetNQE_ExchangeQ2() +{ + static const double mpi=.13957018; // charged pi meson mass in GeV + static const G4double mmu=.105658369; // Mass of muon in GeV + static const G4double mmu2=mmu*mmu; // Squared Mass of muon in GeV^2 + static const double hmmu2=mmu2/2; // .5*m_mu^2 in GeV^2 + static const double MN=.931494043; // Nucleon mass (inside nucleus,atomicMassUnit,GeV) + static const double MN2=MN*MN; // M_N^2 in GeV^2 + static const double dMN=MN+MN; // 2*M_N in GeV + static const double mcV=(dMN+mpi)*mpi;// constant of W>M+mc cut for Quasi-Elastic + static const G4int power=7; // direct power for the magic variable + static const G4double pconv=1./power; // conversion power for the magic variable + static const G4int nX=21; // #Of point in the Xl table (in GeV^2) + static const G4int lX=nX-1; // index of the last in the Xl table + static const G4int bX=lX-1; // @@ index of the before last in the Xl table + static const G4int nE=20; // #Of point in the El table (in GeV^2) + static const G4int bE=nE-1; // index of the last in the El table + static const G4int pE=bE-1; // index of the before last in the El table + // Reversed table + static const G4double X0[nX]={5.21412e-05, + .437860, .681908, .891529, 1.08434, 1.26751, 1.44494, 1.61915, 1.79198, 1.96493, 2.13937, + 2.31664, 2.49816, 2.68559, 2.88097, 3.08705, 3.30774, 3.54917, 3.82233, 4.15131, 4.62182}; + static const G4double X1[nX]={.00102591, + 1.00443, 1.55828, 2.03126, 2.46406, 2.87311, 3.26723, 3.65199, 4.03134, 4.40835, 4.78561, + 5.16549, 5.55031, 5.94252, 6.34484, 6.76049, 7.19349, 7.64917, 8.13502, 8.66246, 9.25086}; + static const G4double X2[nX]={.0120304, + 2.59903, 3.98637, 5.15131, 6.20159, 7.18024, 8.10986, 9.00426, 9.87265, 10.7217, 11.5564, + 12.3808, 13.1983, 14.0116, 14.8234, 15.6359, 16.4515, 17.2723, 18.1006, 18.9386, 19.7892}; + static const G4double X3[nX]={.060124, + 5.73857, 8.62595, 10.9849, 13.0644, 14.9636, 16.7340, 18.4066, 20.0019, 21.5342, 23.0142, + 24.4497, 25.8471, 27.2114, 28.5467, 29.8564, 31.1434, 32.4102, 33.6589, 34.8912, 36.1095}; + static const G4double X4[nX]={.0992363, + 8.23746, 12.1036, 15.1740, 17.8231, 20.1992, 22.3792, 24.4092, 26.3198, 28.1320, 29.8615, + 31.5200, 33.1169, 34.6594, 36.1536, 37.6044, 39.0160, 40.3920, 41.7353, 43.0485, 44.3354}; + static const G4double X5[nX]={.0561127, + 7.33661, 10.5694, 13.0778, 15.2061, 17.0893, 18.7973, 20.3717, 21.8400, 23.2211, 24.5291, + 25.7745, 26.9655, 28.1087, 29.2094, 30.2721, 31.3003, 32.2972, 33.2656, 34.2076, 35.1265}; + static const G4double X6[nX]={.0145859, + 4.81774, 6.83565, 8.37399, 9.66291, 10.7920, 11.8075, 12.7366, 13.5975, 14.4025, 15.1608, + 15.8791, 16.5628, 17.2162, 17.8427, 18.4451, 19.0259, 19.5869, 20.1300, 20.6566, 21.1706}; + static const G4double X7[nX]={.00241155, + 2.87095, 4.02492, 4.89243, 5.61207, 6.23747, 6.79613, 7.30433, 7.77270, 8.20858, 8.61732, + 9.00296, 9.36863, 9.71682, 10.0495, 10.3684, 10.6749, 10.9701, 11.2550, 11.5306, 11.7982}; + static const G4double X8[nX]={.000316863, + 1.76189, 2.44632, 2.95477, 3.37292, 3.73378, 4.05420, 4.34415, 4.61009, 4.85651, 5.08666, + 5.30299, 5.50738, 5.70134, 5.88609, 6.06262, 6.23178, 6.39425, 6.55065, 6.70149, 6.84742}; + static const G4double X9[nX]={3.73544e-05, + 1.17106, 1.61289, 1.93763, 2.20259, 2.42976, 2.63034, 2.81094, 2.97582, 3.12796, 3.26949, + 3.40202, 3.52680, 3.64482, 3.75687, 3.86360, 3.96557, 4.06323, 4.15697, 4.24713, 4.33413}; + static const G4double XA[nX]={4.19131e-06, + .849573, 1.16208, 1.38955, 1.57379, 1.73079, 1.86867, 1.99221, 2.10451, 2.20770, 2.30332, + 2.39252, 2.47622, 2.55511, 2.62977, 2.70066, 2.76818, 2.83265, 2.89437, 2.95355, 3.01051}; + static const G4double XB[nX]={4.59981e-07, + .666131, .905836, 1.07880, 1.21796, 1.33587, 1.43890, 1.53080, 1.61399, 1.69011, 1.76040, + 1.82573, 1.88682, 1.94421, 1.99834, 2.04959, 2.09824, 2.14457, 2.18878, 2.23107, 2.27162}; + static const G4double XC[nX]={4.99861e-08, + .556280, .752730, .893387, 1.00587, 1.10070, 1.18317, 1.25643, 1.32247, 1.38269, 1.43809, + 1.48941, 1.53724, 1.58203, 1.62416, 1.66391, 1.70155, 1.73728, 1.77128, 1.80371, 1.83473}; + static const G4double XD[nX]={5.40832e-09, + .488069, .657650, .778236, .874148, .954621, 1.02432, 1.08599, 1.14138, 1.19172, 1.23787, + 1.28049, 1.32008, 1.35705, 1.39172, 1.42434, 1.45514, 1.48429, 1.51197, 1.53829, 1.56339}; + static const G4double XE[nX]={5.84029e-10, + .445057, .597434, .705099, .790298, .861468, .922865, .976982, 1.02542, 1.06930, 1.10939, + 1.14630, 1.18050, 1.21233, 1.24208, 1.27001, 1.29630, 1.32113, 1.34462, 1.36691, 1.38812}; + static const G4double XF[nX]={6.30137e-11, + .418735, .560003, .659168, .737230, .802138, .857898, .906854, .950515, .989915, 1.02580, + 1.05873, 1.08913, 1.11734, 1.14364, 1.16824, 1.19133, 1.21306, 1.23358, 1.25298, 1.27139}; + static const G4double XG[nX]={6.79627e-12, + .405286, .539651, .633227, .706417, .766929, .818642, .863824, .903931, .939963, .972639, + 1.00250, 1.02995, 1.05532, 1.07887, 1.10082, 1.12134, 1.14058, 1.15867, 1.17572, 1.19183}; + static const G4double XH[nX]={7.32882e-13, + .404391, .535199, .625259, .695036, .752243, .800752, .842823, .879906, .912994, .942802, + .969862, .994583, 1.01729, 1.03823, 1.05763, 1.07566, 1.09246, 1.10816, 1.12286, 1.13667}; + static const G4double XI[nX]={7.90251e-14, + .418084, .548382, .636489, .703728, .758106, .803630, .842633, .876608, .906576, .933269, + .957233, .978886, .998556, 1.01651, 1.03295, 1.04807, 1.06201, 1.07489, 1.08683, 1.09792}; + static const G4double XJ[nX]={8.52083e-15, + .447299, .579635, .666780, .731788, .783268, .825512, .861013, .891356, .917626, .940597, + .960842, .978802, .994820, 1.00917, 1.02208, 1.03373, 1.04427, 1.05383, 1.06253, 1.07046}; + // Direct table + static const G4double Xmin[nE]={X0[0],X1[0],X2[0],X3[0],X4[0],X5[0],X6[0],X7[0],X8[0], + X9[0],XA[0],XB[0],XC[0],XD[0],XE[0],XF[0],XG[0],XH[0],XI[0],XJ[0]}; + static const G4double dX[nE]={ + (X0[lX]-X0[0])/lX, (X1[lX]-X1[0])/lX, (X2[lX]-X2[0])/lX, (X3[lX]-X3[0])/lX, + (X4[lX]-X4[0])/lX, (X5[lX]-X5[0])/lX, (X6[lX]-X6[0])/lX, (X7[lX]-X7[0])/lX, + (X8[lX]-X8[0])/lX, (X9[lX]-X9[0])/lX, (XA[lX]-XA[0])/lX, (XB[lX]-XB[0])/lX, + (XC[lX]-XC[0])/lX, (XD[lX]-XD[0])/lX, (XE[lX]-XE[0])/lX, (XF[lX]-XF[0])/lX, + (XG[lX]-XG[0])/lX, (XH[lX]-XH[0])/lX, (XI[lX]-XI[0])/lX, (XJ[lX]-XJ[0])/lX}; + static const G4double* Xl[nE]= + {X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,XA,XB,XC,XD,XE,XF,XG,XH,XI,XJ}; + static const G4double I0[nX]={0, + .354631, 1.08972, 2.05138, 3.16564, 4.38343, 5.66828, 6.99127, 8.32858, 9.65998, 10.9680, + 12.2371, 13.4536, 14.6050, 15.6802, 16.6686, 17.5609, 18.3482, 19.0221, 19.5752, 20.0000}; + static const G4double I1[nX]={0, + .281625, .877354, 1.67084, 2.60566, 3.64420, 4.75838, 5.92589, 7.12829, 8.34989, 9.57708, + 10.7978, 12.0014, 13.1781, 14.3190, 15.4162, 16.4620, 17.4496, 18.3724, 19.2245, 20.0000}; + static const G4double I2[nX]={0, + .201909, .642991, 1.24946, 1.98463, 2.82370, 3.74802, 4.74263, 5.79509, 6.89474, 8.03228, + 9.19947, 10.3889, 11.5938, 12.8082, 14.0262, 15.2427, 16.4527, 17.6518, 18.8356, 20.0000}; + static const G4double I3[nX]={0, + .140937, .461189, .920216, 1.49706, 2.17728, 2.94985, 3.80580, 4.73758, 5.73867, 6.80331, + 7.92637, 9.10316, 10.3294, 11.6013, 12.9150, 14.2672, 15.6548, 17.0746, 18.5239, 20.0000}; + static const G4double I4[nX]={0, + .099161, .337358, .694560, 1.16037, 1.72761, 2.39078, 3.14540, 3.98768, 4.91433, 5.92245, + 7.00942, 8.17287, 9.41060, 10.7206, 12.1010, 13.5500, 15.0659, 16.6472, 18.2924, 20.0000}; + static const G4double I5[nX]={0, + .071131, .255084, .543312, .932025, 1.41892, 2.00243, 2.68144, 3.45512, 4.32283, 5.28411, + 6.33859, 7.48602, 8.72621, 10.0590, 11.4844, 13.0023, 14.6128, 16.3158, 18.1115, 20.0000}; + static const G4double I6[nX]={0, + .053692, .202354, .443946, .778765, 1.20774, 1.73208, 2.35319, 3.07256, 3.89177, 4.81249, + 5.83641, 6.96528, 8.20092, 9.54516, 10.9999, 12.5670, 14.2486, 16.0466, 17.9630, 20.0000}; + static const G4double I7[nX]={0, + .043065, .168099, .376879, .672273, 1.05738, 1.53543, 2.10973, 2.78364, 3.56065, 4.44429, + 5.43819, 6.54610, 7.77186, 9.11940, 10.5928, 12.1963, 13.9342, 15.8110, 17.8313, 20.0000}; + static const G4double I8[nX]={0, + .036051, .143997, .327877, .592202, .941572, 1.38068, 1.91433, 2.54746, 3.28517, 4.13277, + 5.09574, 6.17984, 7.39106, 8.73568, 10.2203, 11.8519, 13.6377, 15.5854, 17.7033, 20.0000}; + static const G4double I9[nX]={0, + .030977, .125727, .289605, .528146, .846967, 1.25183, 1.74871, 2.34384, 3.04376, 3.85535, + 4.78594, 5.84329, 7.03567, 8.37194, 9.86163, 11.5150, 13.3430, 15.3576, 17.5719, 20.0000}; + static const G4double IA[nX]={0, + .027129, .111420, .258935, .475812, .768320, 1.14297, 1.60661, 2.16648, 2.83034, 3.60650, + 4.50394, 5.53238, 6.70244, 8.02569, 9.51488, 11.1841, 13.0488, 15.1264, 17.4362, 20.0000}; + static const G4double IB[nX]={0, + .024170, .100153, .234345, .433198, .703363, 1.05184, 1.48607, 2.01409, 2.64459, 3.38708, + 4.25198, 5.25084, 6.39647, 7.70319, 9.18708, 10.8663, 12.7617, 14.8968, 17.2990, 20.0000}; + static const G4double IC[nX]={0, + .021877, .091263, .214670, .398677, .650133, .976322, 1.38510, 1.88504, 2.48555, 3.19709, + 4.03129, 5.00127, 6.12184, 7.40989, 8.88482, 10.5690, 12.4888, 14.6748, 17.1638, 20.0000}; + static const G4double ID[nX]={0, + .020062, .084127, .198702, .370384, .606100, .913288, 1.30006, 1.77535, 2.34912, 3.03253, + 3.83822, 4.78063, 5.87634, 7.14459, 8.60791, 10.2929, 12.2315, 14.4621, 17.0320, 20.0000}; + static const G4double IE[nX]={0, + .018547, .078104, .185102, .346090, .567998, .858331, 1.22535, 1.67824, 2.22735, 2.88443, + 3.66294, 4.57845, 5.64911, 6.89637, 8.34578, 10.0282, 11.9812, 14.2519, 16.8993, 20.0000}; + static const G4double IF[nX]={0, + .017143, .072466, .172271, .323007, .531545, .805393, 1.15288, 1.58338, 2.10754, 2.73758, + 3.48769, 4.37450, 5.41770, 6.64092, 8.07288, 9.74894, 11.7135, 14.0232, 16.7522, 20.0000}; + static const G4double IG[nX]={0, + .015618, .066285, .158094, .297316, .490692, .745653, 1.07053, 1.47479, 1.96931, 2.56677, + 3.28205, 4.13289, 5.14068, 6.33158, 7.73808, 9.40133, 11.3745, 13.7279, 16.5577, 20.0000}; + static const G4double IH[nX]={0, + .013702, .058434, .139923, .264115, .437466, .667179, .961433, 1.32965, 1.78283, 2.33399, + 2.99871, 3.79596, 4.74916, 5.88771, 7.24937, 8.88367, 10.8576, 13.2646, 16.2417, 20.0000}; + static const G4double II[nX]={0, + .011264, .048311, .116235, .220381, .366634, .561656, .813132, 1.13008, 1.52322, 2.00554, + 2.59296, 3.30542, 4.16834, 5.21490, 6.48964, 8.05434, 9.99835, 12.4580, 15.6567, 20.0000}; + static const G4double IJ[nX]={0, + .008628, .037206, .089928, .171242, .286114, .440251, .640343, .894382, 1.21208, 1.60544, + 2.08962, 2.68414, 3.41486, 4.31700, 5.44048, 6.85936, 8.69067, 11.1358, 14.5885, 20.0000}; + static const G4double* Il[nE]= + {I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,IA,IB,IC,ID,IE,IF,IG,IH,II,IJ}; + static const G4double lE[nE]={ +-1.98842,-1.58049,-1.17256,-.764638,-.356711, .051215, .459141, .867068, 1.27499, 1.68292, + 2.09085, 2.49877, 2.90670, 3.31463, 3.72255, 4.13048, 4.53840, 4.94633, 5.35426, 5.76218}; + static const G4double lEmi=lE[0]; + static const G4double lEma=lE[nE-1]; + static const G4double dlE=(lEma-lEmi)/bE; + //*************************************************************************************** + G4double Enu=lastE; // Get energy of the last calculated cross-section + G4double lEn=std::log(Enu); // log(E) for interpolation + G4double rE=(lEn-lEmi)/dlE; // Position of the energy + G4int fE=static_cast(rE); // Left bin for interpolation + if(fE<0) fE=0; + if(fE>pE)fE=pE; + G4int sE=fE+1; // Right bin for interpolation + G4double dE=rE-fE; // relative log shift from the left bin + G4double dEnu=Enu+Enu; // doubled energy of nu/anu + G4double Enu2=Enu*Enu; // squared energy of nu/anu + G4double Emu=Enu-mmu; // Free Energy of neutrino/anti-neutrino + G4double ME=Enu*MN; // M*E + G4double dME=ME+ME; // 2*M*E + G4double dEMN=(dEnu+MN)*ME; + G4double MEm=ME-hmmu2; + G4double sqE=Enu*std::sqrt(MEm*MEm-mmu2*MN2); + G4double E2M=MN*Enu2-(Enu+MN)*hmmu2; + G4double ymax=(E2M+sqE)/dEMN; + G4double ymin=(E2M-sqE)/dEMN; + G4double rmin=1.-ymin; + G4double rhm2E=hmmu2/Enu2; + G4double Q2mi=(Enu2+Enu2)*(rmin-rhm2E-std::sqrt(rmin*rmin-rhm2E-rhm2E)); // Q2_min(E_nu) + G4double Q2ma=dME*ymax; // Q2_max(E_nu) + G4double Q2nq=Emu*dMN-mcV; + if(Q2ma>Q2nq) Q2ma=Q2nq; // Correction for Non Quasi Elastic + // --- now r_min=Q2mi/Q2ma and r_max=1.; when r is randomized -> Q2=r*Q2ma --- + G4double Rmi=Q2mi/Q2ma; + G4double shift=.875/(1.+.2977/Enu/Enu)/pow(Enu,.78); + // --- E-interpolation must be done in a log scale --- + G4double Xmi=pow((shift-Rmi),power);// X_min(E_nu) + G4double Xma=pow((shift-1.),power); // X_max(E_nu) + // Find the integral values integ(Xmi) & integ(Xma) using the direct table + G4double idX=dX[fE]+dE*(dX[sE]-dX[fE]); // interpolated X step + G4double iXmi=Xmin[fE]+dE*(Xmin[sE]-Xmin[fE]); // interpolated X minimum + G4double rXi=(Xmi-iXmi)/idX; + G4int iXi=static_cast(rXi); + if(iXi<0) iXi=0; + if(iXi>bX) iXi=bX; + G4double dXi=rXi-iXi; + G4double bntil=Il[fE][iXi]; + G4double intil=bntil+dXi*(Il[fE][iXi+1]-bntil); + G4double bntir=Il[sE][iXi]; + G4double intir=bntir+dXi*(Il[sE][iXi+1]-bntir); + G4double inti=intil+dE*(intir-intil);// interpolated begin of the integral + // + G4double rXa=(Xma-iXmi)/idX; + G4int iXa=static_cast(rXa); + if(iXa<0) iXa=0; + if(iXa>bX) iXa=bX; + G4double dXa=rXa-iXa; + G4double bntal=Il[fE][iXa]; + G4double intal=bntal+dXa*(Il[fE][iXa+1]-bntal); + G4double bntar=Il[sE][iXa]; + G4double intar=bntar+dXa*(Il[sE][iXa+1]-bntar); + G4double inta=intal+dE*(intar-intal);// interpolated end of the integral + // + // *** Find X using the reversed table *** + G4double intx=inti+(inta-inti)*G4UniformRand(); + G4int intc=static_cast(intx); + if(intc<0) intc=0; + if(intc>bX) intc=bX; + G4double dint=intx-intc; + G4double mXl=Xl[fE][intc]; + G4double Xlb=mXl+dint*(Xl[fE][intc+1]-mXl); + G4double mXr=Xl[sE][intc]; + G4double Xrb=mXr+dint*(Xl[sE][intc+1]-mXr); + G4double X=Xlb+dE*(Xrb-Xlb); // interpolated X value + G4double R=shift-pow(X,pconv); + G4double Q2=R*Q2ma; + return Q2*GeV*GeV; +} + +// It returns a fraction of the direct interaction of the neutrino with quark-partons +G4double G4QANuMuNuclearCrossSection::GetDirectPart(G4double Q2) +{ + G4double f=Q2/4.62; + G4double ff=f*f; + G4double r=ff*ff; + G4double s=pow((1.+.6/Q2),(-1.-(1.+r)/(12.5+r/.3))); + //@@ It is the same for nu/anu, but for nu it is a bit less, and for anu a bit more (par) + return 1.-s*(1.-s/2); +} + +// #of quark-partons in the nonperturbative phase space is the same for neut and anti-neut +G4double G4QANuMuNuclearCrossSection::GetNPartons(G4double Q2) +{ + return 3.+.3581*std::log(1.+Q2/.04); // a#of partons in the nonperturbative phase space +} + +// This class can provide only virtual exchange pi+ (a substitute for W+ boson) +G4int G4QANuMuNuclearCrossSection::GetExchangePDGCode() {return 211;} diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCaptureAtRest.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QCaptureAtRest.cc similarity index 88% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCaptureAtRest.cc rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QCaptureAtRest.cc index 5c030d8f9e..7f41ac0ce7 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QCaptureAtRest.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QCaptureAtRest.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4QCaptureAtRest.cc,v 1.20 2005/06/27 15:30:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QCaptureAtRest.cc,v 1.1 2005/11/25 20:29:25 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------- G4QCaptureAtRest class ----------------- // by Mikhail Kossov, December 2003. @@ -131,10 +131,14 @@ G4bool G4QCaptureAtRest::IsApplicable(const G4ParticleDefinition& particle) G4VParticleChange* G4QCaptureAtRest::AtRestDoIt(const G4Track& track, const G4Step& step) { - static const G4double mNeut= G4QPDGCode(2112).GetMass(); - static const G4double mProt= G4QPDGCode(2212).GetMass(); - static const G4double mPi0 = G4QPDGCode(111).GetMass(); - static const G4double mDeut= G4QPDGCode(2112).GetNuclMass(1,1,0); + static const G4double mNeut = G4QPDGCode(2112).GetMass(); + static const G4double mNeut2= mNeut*mNeut; + static const G4double dmNeut= mNeut+mNeut; + static const G4double mProt = G4QPDGCode(2212).GetMass(); + static const G4double dmProt= mProt+mProt; + static const G4double mPi0 = G4QPDGCode(111).GetMass(); + static const G4double mDeut = G4QPDGCode(2112).GetNuclMass(1,1,0); + static const G4double mAlph = G4QPDGCode(2112).GetNuclMass(2,2,0); //static const G4double mPi = G4QPDGCode(211).GetMass(); //static const G4double mMu = G4QPDGCode(13).GetMass(); //static const G4double mTau = G4QPDGCode(15).GetMass(); @@ -147,7 +151,7 @@ G4VParticleChange* G4QCaptureAtRest::AtRestDoIt(const G4Track& track, const G4St #ifdef debug G4cout<<"G4QCaptureAtRest::AtRestDoIt is called,EnDeposition="<* cascE = new std::vector; std::vector* cascT = new std::vector; + G4bool neutronElastic = false; // Flag of elastic neutro-nucleeus Scattering + G4bool chargExElastic = false; // Flag of charge exchange Quasi-Elastic Scat. + G4LorentzVector proj4M; + G4double mAT=0.; // Prototype of mass of the GS target nucleus + G4double totNE=0.; // Prototype of total neutron energy + G4double mAP=0.; // Prototype of M_GSCompoundNucleus-proton + if(projPDG==2112) + { + proj4M=stoppedHadron->Get4Momentum(); + totNE=proj4M.e(); + // For low energy neutrons the threshold of the capture must be checked + G4QPDGCode QPDGbase; + mAT=QPDGbase.GetNuclMass(Z,N,0); // mass of the GS target nucleus + G4double mAR=sqrt(mAT*(mAT+totNE+totNE)+mNeut2); // Real compound mass + G4double mAN=QPDGbase.GetNuclMass(Z,N+1,0); // mass of the GS compound nucleus + mAP=QPDGbase.GetNuclMass(Z-1,N+1,0); // M_GSCompoundNucleus-proton + G4double mAA=1000000.; // Default (light nuclei) mass of the GSCompoundNucleus-alpha + if(Z>=2 && N>=1) mAA=QPDGbase.GetNuclMass(Z-2,N-1,0); // mass of GSCompNucleus-alpha + G4double eProt=mAR-mAP-mProt; + if(mAR0.) + { + G4double eNeut=totNE-mNeut; + if(eNeut<0.) eNeut=0.; + if(totNE-mNeut<.0001) chargExElastic=true; // neutron is too soft -> chargeExchange + else + { + G4double probP=sqrt(eProt*(dmProt+eProt)); + G4double probN=sqrt(eNeut*(dmNeut+eNeut)); + if((probN+probP)*G4UniformRand() chargeExchange + } + } + else if(mARn+A,Z="<push_back(secnuc); // Fill recoil nucleus to the output + G4QHadron* neutron = new G4QHadron(2112,n4Mom); // Create Hadron for the Neutron + output->push_back(neutron); // Fill the neutron to the output + } + if(projPDG==2112 && chargExElastic) // ChargeEx from neutron to proton: (n,p) reac + { +#ifdef debug + G4cout<<"G4QCaptureAtRest::AtRestDoIt:npChEx, 4M="<push_back(secnuc); // Fill recharged nucleus to the output + G4QHadron* proton = new G4QHadron(2212,p4Mom); // Create Hadron for the Proton + output->push_back(proton) ; // Fill the proton to the output + } + else if(projPDG==-211 && targPDG==90001000)// Use Panofsky Ratio for (p+pi-) system decay { // (p+pi-=>n+pi0)/p+pi-=>n+gamma) = 3/2 #ifdef debug - G4cout<<"G4QCaptureAtRest::AtRestDoIt: Panofsky targPDG="< G4QCollision::ElementZ; // Z of the element(i) in theLastCalc +std::vector G4QCollision::ElProbInMat; // SumProbabilityElements in Material +std::vector*> G4QCollision::ElIsoN; // N of isotope(j) of Element(i) +std::vector*>G4QCollision::IsoProbInEl;//SumProbabIsotopes inElementI + G4QCollision::G4QCollision(const G4String& processName) : G4VDiscreteProcess(processName) { #ifdef debug @@ -65,6 +70,8 @@ G4bool G4QCollision::EnergyFlux=false; // Flag for Energy Flux use (not MultyQ G4double G4QCollision::PiPrThresh=141.4; // Pion Production Threshold for gammas G4double G4QCollision::M2ShiftVir=20000.;// Shift for M2=-Q2=m_pi^2 of the virtualGamma G4double G4QCollision::DiNuclMass=1880.; // DoubleNucleon Mass for VirtualNormalization +G4double G4QCollision::photNucBias=1.; // BiasingParameter for photo(e,mu,tau)Nuclear +G4double G4QCollision::weakNucBias=1.; // BiasingParameter for ChargedCurrents(nu,mu) void G4QCollision::SetManual() {manualFlag=true;} void G4QCollision::SetStandard() {manualFlag=false;} @@ -94,6 +101,9 @@ void G4QCollision::SetParameters(G4double temper, G4double ssin2g, G4double etae G4QEnvironment::SetParameters(SolidAngle); // SolAngle of pbar-A secondary mesons capture } +void G4QCollision::SetPhotNucBias(G4double phnB) {photNucBias=phnB;} +void G4QCollision::SetWeakNucBias(G4double ccnB) {weakNucBias=ccnB;} + // Destructor G4QCollision::~G4QCollision() {} @@ -109,6 +119,9 @@ G4int G4QCollision::GetNumberOfNeutronsInTarget() return nOfNeutrons; } +// output of the function must be in units of length! L=1/sig_V,sig_V=SUM(n(j,i)*sig(j,i)), +// where n(i,j) is a number of nuclei of the isotop j of the element i in V=1(lengtUnit^3) +// ********** All CHIPS cross sections are calculated in the surface units ************ G4double G4QCollision::GetMeanFreePath(const G4Track& aTrack,G4double,G4ForceCondition* Fc) { *Fc = NotForced; @@ -126,11 +139,11 @@ G4double G4QCollision::GetMeanFreePath(const G4Track& aTrack,G4double,G4ForceCon G4cout<<"G4QCollision::GetMeanFreePath:"<* SPI=IsoProbInEl[ip]; // Pointer to the SPI vector + SPI->clear(); + delete SPI; + std::vector* IsN=ElIsoN[ip]; // Pointer to the N vector + IsN->clear(); + delete IsN; + } + ElProbInMat.clear(); // Clean up the SumProb's of Elements (SPE) + ElementZ.clear(); // Clear the body vector for Z of Elements + IsoProbInEl.clear(); // Clear the body vector for SPI + ElIsoN.clear(); // Clear the body vector for N of Isotopes for(G4int i=0; i((*theElementVector)[i]->GetZ()); // Z of the Element - std::vector*>* cs= Isotopes->GetCSVector(Z); // Pointer to CS - G4int nIs=cs->size(); // A#Of Isotopes in the Element - if(nIs) for(G4int j=0; j(pElement->GetZ()); // Z of the Element + ElementZ.push_back(Z); // Remember Z of the Element + G4int isoSize=0; // The default for the isoVectorLength is 0 + G4int indEl=0; // Index of non-trivial element or 0(default) + G4IsotopeVector* isoVector=pElement->GetIsotopeVector(); // Get the predefined IsoVect + if(isoVector) isoSize=isoVector->size();// Get size of the existing isotopeVector +#ifdef debug + G4cout<<"G4QCollision::GetMeanFreePath: isovectorLength="<* curIs=(*cs)[j]; // A pointer, which is used twice - G4int N=curIs->first; // #ofNeuterons in the isotope - curIs->second = CSmanager->GetCrossSection(Momentum, Z, N); // CS calculation + indEl=pElement->GetIndex(); // Index of the non-trivial element + if(!Isotopes->IsDefined(Z,indEl)) // This index is not defined for this Z: define + { + std::vector*>* newAbund = + new std::vector*>; + G4double* abuVector=pElement->GetRelativeAbundanceVector(); + for(G4int j=0; jGetIsotope(j)->GetN()-Z; // N means A=N+Z ! + if(pElement->GetIsotope(j)->GetZ()!=Z)G4cerr<<"G4QCaptureAtRest::GetMeanFreePath" + <<": Z="<GetIsotope(j)->GetZ()<<"#"<* pr= new std::pair(N,abund); +#ifdef debug + G4cout<<"G4QCollision::PostStepDoIt:pair#="<*>* cs= Isotopes->GetCSVector(Z,indEl);//CSPointer + std::vector* SPI = new std::vector; // Pointer to the SPI vector + IsoProbInEl.push_back(SPI); + std::vector* IsN = new std::vector; // Pointer to the N vector + ElIsoN.push_back(IsN); + G4int nIs=cs->size(); // A#Of Isotopes in the Element + G4double susi=0.; // sum of CS over isotopes + if(nIs) for(G4int j=0; j* curIs=(*cs)[j]; // A pointer, which is used twice + G4int N=curIs->first; // #of Neuterons in the isotope j of El i + IsN->push_back(N); // Remember Min N for the Element + G4double CSI=CSmanager->GetCrossSection(Momentum,Z,N); // CrossS(j,i) for the isotope + curIs->second = CSI; + susi+=CSI; // Make a sum per isotopes + SPI->push_back(susi); // Remember summed cross-section } // End of temporary initialization of the cross sections in the G4QIsotope singeltone - sigma+=Isotopes->GetMeanCrossSection(Z)*NOfNucPerVolume[i]; // SUM(MeanCS*NOFNperV) + sigma+=Isotopes->GetMeanCrossSection(Z,indEl)*NOfNucPerVolume[i];//SUM(MeanCS*NOfNperV) + ElProbInMat.push_back(sigma); } // End of LOOP over Elements // Check that cross section is not zero and return the mean free path + if(photNucBias!=1.) if(incidentParticleDefinition == G4MuonPlus::MuonPlus() || + incidentParticleDefinition == G4MuonMinus::MuonMinus() || + incidentParticleDefinition == G4Electron::Electron() || + incidentParticleDefinition == G4Positron::Positron() || + incidentParticleDefinition == G4TauMinus::TauMinus() || + incidentParticleDefinition == G4TauPlus::TauPlus() ) + sigma*=photNucBias; + if(photNucBias!=1.) if(incidentParticleDefinition==G4NeutrinoE::NeutrinoE() || + incidentParticleDefinition==G4AntiNeutrinoE::AntiNeutrinoE() || + incidentParticleDefinition==G4NeutrinoTau::NeutrinoTau() || + incidentParticleDefinition==G4AntiNeutrinoTau::AntiNeutrinoTau()|| + incidentParticleDefinition==G4NeutrinoMu::NeutrinoMu() || + incidentParticleDefinition==G4AntiNeutrinoMu::AntiNeutrinoMu() ) + sigma*=weakNucBias; if(sigma > 0.) return 1./sigma; // Mean path [distance] return DBL_MAX; } @@ -169,30 +273,32 @@ G4double G4QCollision::GetMeanFreePath(const G4Track& aTrack,G4double,G4ForceCon G4bool G4QCollision::IsApplicable(const G4ParticleDefinition& particle) { - if (particle == *( G4MuonPlus::MuonPlus() )) return true; - else if (particle == *( G4MuonMinus::MuonMinus() )) return true; - else if (particle == *( G4TauPlus::TauPlus() )) return true; - else if (particle == *( G4TauMinus::TauMinus() )) return true; - else if (particle == *( G4Electron::Electron() )) return true; - else if (particle == *( G4Positron::Positron() )) return true; - else if (particle == *( G4Gamma::Gamma() )) return true; - else if (particle == *( G4Proton::Proton() )) return true; - //else if (particle == *( G4Neutron::Neutron() )) return true; - //else if (particle == *( G4PionMinus::PionMinus() )) return true; - //else if (particle == *( G4PionPlus::PionPlus() )) return true; - //else if (particle == *( G4KaonPlus::KaonPlus() )) return true; - //else if (particle == *( G4KaonMinus::KaonMinus() )) return true; - //else if (particle == *( G4KaonZeroLong::KaonZeroLong() )) return true; - //else if (particle == *(G4KaonZeroShort::KaonZeroShort())) return true; - //else if (particle == *( G4Lambda::Lambda() )) return true; - //else if (particle == *( G4SigmaPlus::SigmaPlus() )) return true; - //else if (particle == *( G4SigmaMinus::SigmaMinus() )) return true; - //else if (particle == *( G4SigmaZero::SigmaZero() )) return true; - //else if (particle == *( G4XiMinus::XiMinus() )) return true; - //else if (particle == *( G4XiZero::XiZero() )) return true; - //else if (particle == *( G4OmegaMinus::OmegaMinus() )) return true; - //else if (particle == *( G4AntiNeutron::AntiNeutron() )) return true; - //else if (particle == *( G4AntiProton::AntiProton() )) return true; + if (particle == *( G4MuonPlus::MuonPlus() )) return true; + else if (particle == *( G4MuonMinus::MuonMinus() )) return true; + else if (particle == *( G4TauPlus::TauPlus() )) return true; + else if (particle == *( G4TauMinus::TauMinus() )) return true; + else if (particle == *( G4Electron::Electron() )) return true; + else if (particle == *( G4Positron::Positron() )) return true; + else if (particle == *( G4Gamma::Gamma() )) return true; + //else if (particle == *( G4Proton::Proton() )) return true; + else if (particle == *(G4AntiNeutrinoMu::AntiNeutrinoMu())) return true; + else if (particle == *( G4NeutrinoMu::NeutrinoMu() )) return true; + //else if (particle == *( G4Neutron::Neutron() )) return true; + //else if (particle == *( G4PionMinus::PionMinus() )) return true; + //else if (particle == *( G4PionPlus::PionPlus() )) return true; + //else if (particle == *( G4KaonPlus::KaonPlus() )) return true; + //else if (particle == *( G4KaonMinus::KaonMinus() )) return true; + //else if (particle == *( G4KaonZeroLong::KaonZeroLong() )) return true; + //else if (particle == *( G4KaonZeroShort::KaonZeroShort() )) return true; + //else if (particle == *( G4Lambda::Lambda() )) return true; + //else if (particle == *( G4SigmaPlus::SigmaPlus() )) return true; + //else if (particle == *( G4SigmaMinus::SigmaMinus() )) return true; + //else if (particle == *( G4SigmaZero::SigmaZero() )) return true; + //else if (particle == *( G4XiMinus::XiMinus() )) return true; + //else if (particle == *( G4XiZero::XiZero() )) return true; + //else if (particle == *( G4OmegaMinus::OmegaMinus() )) return true; + //else if (particle == *( G4AntiNeutron::AntiNeutron() )) return true; + //else if (particle == *( G4AntiProton::AntiProton() )) return true; #ifdef debug G4cout<<"***G4QCollision::IsApplicable: PDG="<GetDefinition(); +#ifdef debug + G4cout<<"G4QCollision::PostStepDoIt: Before the GetMeanFreePath is called"<Get4Momentum(); + G4LorentzVector scat4M=proj4M; // Must be filled if true G4double momentum = projHadron->GetTotalMomentum(); // 3-momentum of the Particle G4double Momentum=proj4M.rho(); - if(std::fabs(Momentum-momentum)>.001)G4cerr<<"G4QC::PSDI P="<.001) + G4cerr<<"G4QCollision::PostStepDoIt: P="<GetElementVector(); - G4int i=0; - G4double sum=0.; G4int nE=material->GetNumberOfElements(); #ifdef debug G4cout<<"G4QCollision::PostStepDoIt: "<GetPDGEncoding(); - G4cout<<"G4QCollision::PostStepRestDoIt: projPDG="< sumfra; + G4int EPIM=ElProbInMat.size(); +#ifdef debug + G4cout<<"G4QCollis::PostStDoIt: m="<GetFractionVector()[i]; - sum+=frac; - sumfra.push_back(sum); // remember the summation steps + { +#ifdef debug + G4cout<<"G4QCollision::PostStepDoIt:EPM["<=nE) i=nE-1; // Top limit for the Element G4Element* pElement=(*theElementVector)[i]; Z=static_cast(pElement->GetZ()); +#ifdef debug + G4cout<<"G4QCollision::PostStepDoIt: i="<size(); // #of isotopes in the element i #ifdef debug - G4cout<<"G4QCollision::PostStepDoIt: isovectorLength="<* pr= new std::pair(N,abund); #ifdef debug - G4cout<<"G4QCollision::PostStepDoIt:pair#="<N="<GetQEL_ExchangeQ2(); // OK, im MeV^2 + G4double ds=s+s; // dpubled s + G4double sqs=std::sqrt(s); // M_cm + G4double pi=(s-mIN*mIN)/(sqs+sqs); // initial momentum in CMS + G4double dpi=pi+pi; // doubled initial momentum in CMS + G4double sd=s-musOT; // s-mu2-mOT2 + G4double qo2=(sd*sd-muOT)/(ds+ds); // squared momentum of secondaries in CMS + G4double qo=std::sqrt(qo2); // momentum of secondaries in CMS + G4double cost=(dpi*std::sqrt(qo2+mu2)-Q2-mu2)/dpi/qo; // cos(theta) in CMS + G4LorentzVector t4M(0.,0.,0.,mIN); // 4mom of the effective target + G4LorentzVector c4M=t4M+proj4M; // 4mom of the compound system + t4M.setT(mOT); // now it is 4mom of the outgoing nucleon + scat4M=G4LorentzVector(0.,0.,0.,mu); // 4mom of the scattered muon + if(!G4QHadron(c4M).RelDecayIn2(scat4M, t4M, c4M, cost, cost)) + { + G4cerr<<"G4QCol::PSD:c4M="<GetNQE_ExchangeQ2(); + projPDG=CSmanager->GetExchangePDGCode(); + //@@ Temporary made only for direct interaction and for N=3 (good for small Q2) + //@@ inFuture use N=GetNPartons and directFraction=GetDirectPart, @@ W2... + G4double r=G4UniformRand(); + G4double r1=0.5; // (1-x) + if(r<0.5) r1=sqrt(r+r)*(.5+.1579*(r-.5)); + else if(r>0.5) r1=1.-sqrt(2.-r-r)*(.5+.1579*(.5-r)); + G4double xn=1.-mudM/Momentum; // Normalization of (1-x) [x>mudM/Mom] + G4double x1=xn*r1; // (1-x) + G4double x=1.-x1; // x=2k/M + //G4double W2=(hdM2+Q2/x)*x1; // W2 candidate + G4double mx=hdM*x; + G4double we=(Q2/mx-mx)/2; // transfered energy + G4double muQ2=(mu2+Q2)/2; + G4double cost=(kinEnergy*we-muQ2)/kinEnergy/std::sqrt(we*we+Q2); + if(std::fabs(cost)>1) + { + if(cost>1.) cost=1.; + else cost=-1.; + we=(muQ2*muQ2-kinEnergy*kinEnergy*Q2)/kinEnergy/(mu2+Q2); // minimum we + } + scat4M=G4LorentzVector(0.,0.,0.,mu); // 4mom of the scattered muon + G4LorentzVector t4M(0.,0.,0.,-Q2); // 4mom of the virtual W + if(!G4QHadron(proj4M).RelDecayIn2(scat4M, t4M, proj4M, cost, cost)) + { + G4cerr<<"G4QCol::PSD:4M="<mu+W"); + } + proj4M=t4M; // 4m of the pion + } + aParticleChange.ProposeEnergy(0.) ; + aParticleChange.ProposeTrackStatus(fStopAndKill); // the initial neutrino is killed } - G4int targPDG=90000000+Z*1000+N; // PDG Code of the target nucleus - G4QPDGCode targQPDG(targPDG); - G4double tM=targQPDG.GetMass(); EnMomConservation=proj4M+G4LorentzVector(0.,0.,0.,tM); // Total 4-mom of the reaction G4QHadronVector* output=new G4QHadronVector; // Prototype of the output G4QHadronVector // @@@@@@@@@@@@@@ Temporary for the testing purposes --- Begin @@ -511,6 +783,12 @@ G4VParticleChange* G4QCollision::PostStepDoIt(const G4Track& track, const G4Step aParticleChange.Initialize(track); G4double localtime = track.GetGlobalTime(); G4ThreeVector position = track.GetPosition(); + // --- the scattered hadron with changed nature can be added here --- + if(scat) + { + G4QHadron* scatHadron = new G4QHadron(scatPDG,scat4M); + output->push_back(scatHadron); + } // ------------- From here the secondaries are filled ------------------------- G4int tNH = output->size(); // A#of hadrons in the output aParticleChange.SetNumberOfSecondaries(tNH); @@ -519,7 +797,13 @@ G4VParticleChange* G4QCollision::PostStepDoIt(const G4Track& track, const G4Step G4cout<<"G4QCollision::PostStepDoIt: "<size(); // Real length of the output @@ Temporary - if(tNH==1) tNH=0; // @@ Temporary + if(tNH==1 && !scat) // @@ Temporary. Find out why it happened! + { + G4cout<<"-Warning-G4QCollision::PostStepDoIt: only one secondary! Make 0."<operator[](0); // delete the creazy hadron + output->pop_back(); // clean up the output vector + } if(tNH==2&&2!=nOut) G4cout<<"--Warning--G4QCollision::PostStepDoIt: 2 # "<FindIon(aZ,aA,0,aZ); } - else theDefinition = G4ParticleTable::GetParticleTable()->FindParticle(PDGCode); + //else theDefinition = G4ParticleTable::GetParticleTable()->FindParticle(PDGCode); + else + { +#ifdef pdebug + G4cout<<"G4QCollision::PostStepDoIt:Define particle with PDG="<GetParticleDefinition(PDGCode); +#ifdef pdebug + G4cout<<"G4QCollision::PostStepDoIt:AfterParticleDefinition PDG="<=1.-1./(lastG+lastG)) return 0.; // The region where the method does not work - G4double y2=y*y; // Squared photonic part of energy - G4double ye=1.-y; // Part of energy carried by the secondary electron - G4double Qi2=mel2*y2/ye; // Minimum Q2 - G4double Qa2=4*lastE*lastE*ye; // Maximum Q2 - G4double iar=Qi2/Qa2; // Q2min/Q2max ratio - G4double Dy=ye+.5*y2; // D(y) function - G4double Py=ye/Dy; // P(y) function - G4double ePy=1.-std::exp(Py); // 1-exp(P(y)) part - G4double Uy=Py*(1.-iar); // U(y) function - G4double Fy=(ye+ye)*(1.+ye)*iar/y2; // F(y) function - G4double fr=iar/(1.-ePy*iar); // Q-fraction + static const G4double mel=0.5109989; // Mass of electron in MeV + static const G4double mel2=mel*mel; // Squared Mass of electron in MeV + G4double y=nu/lastE; // Part of energy carried by the equivalent pfoton + if(y>=1.-1./(lastG+lastG)) return 0.; // The region where the method does not work + G4double y2=y*y; // Squared photonic part of energy + G4double ye=1.-y; // Part of energy carried by secondary electron + G4double Qi2=mel2*y2/ye; // Minimum Q2 + G4double Qa2=4*lastE*lastE*ye; // Maximum Q2 + G4double iar=Qi2/Qa2; // Q2min/Q2max ratio + G4double Dy=ye+.5*y2; // D(y) function + G4double Py=ye/Dy; // P(y) function + G4double ePy=1.-std::exp(Py); // 1-exp(P(y)) part + G4double Uy=Py*(1.-iar); // U(y) function + G4double Fy=(ye+ye)*(1.+ye)*iar/y2; // F(y) function + G4double fr=iar/(1.-ePy*iar); // Q-fraction if(Fy<=-fr) { #ifdef edebug @@ -2512,14 +2516,14 @@ G4double G4QElectronNuclearCrossSection::GetExchangeQ2(G4double nu) #endif return 0.; } - G4double LyQa2=std::log(Fy+fr); // L(y,Q2max) function + G4double LyQa2=std::log(Fy+fr); // L(y,Q2max) function G4bool cond=true; G4int maxTry=3; G4int cntTry=0; G4double Q2=Qi2; while(cond&&cntTry1. { - G4double R=G4UniformRand(); // Random number (0,1) + G4double R=G4UniformRand(); // Random number (0,1) Q2=Qi2*(ePy+1./(std::exp(R*LyQa2-(1.-R)*Uy)-Fy)); cntTry++; cond = Q2>1878.*nu; @@ -2542,19 +2546,19 @@ G4double G4QElectronNuclearCrossSection::GetExchangeQ2(G4double nu) } // This class can provide only virtual exchange photons for all nu's and Q2's -G4int G4QElectronNuclearCrossSection::GetExchangePDGCode(G4double, G4double) {return 22;} +G4int G4QElectronNuclearCrossSection::GetExchangePDGCode() {return 22;} G4double G4QElectronNuclearCrossSection::GetVirtualFactor(G4double nu, G4double Q2) { - static const G4double dM=938.27+939.57; // Mean double nucleon mass = m_n+m_p (@@ no binding) - static const G4double Q0=843.; // Coefficient of the dipole nucleonic form-factor - static const G4double Q02=Q0*Q0; // Squared coefficient of the dipole nucleonic form-factor - static const G4double blK0=std::log(185.); // Coefficient of the b-function - static const G4double bp=0.85; // Power of the b-function - static const G4double clK0=std::log(1390.); // Coefficient of the c-function - static const G4double cp=3.; // Power of the c-function - //G4double x=Q2/dM/nu; // Direct x definition - G4double K=nu-Q2/dM; // K=nu*(1-x) + static const G4double dM=938.27+939.57;// MeanDoubleNucleonMass = m_n+m_p(@@ no binding) + static const G4double Q0=843.; // Coefficient of the dipole nucleonic form-factor + static const G4double Q02=Q0*Q0; // SquaredCoefficient of dipoleNucleonicFormFactor + static const G4double blK0=std::log(185.); // Coefficient of the b-function + static const G4double bp=0.85; // Power of the b-function + static const G4double clK0=std::log(1390.);// Coefficient of the c-function + static const G4double cp=3.; // Power of the c-function + //G4double x=Q2/dM/nu; // Direct x definition + G4double K=nu-Q2/dM; // K=nu*(1-x) if(K<0.) { #ifdef edebug @@ -2563,8 +2567,8 @@ G4double G4QElectronNuclearCrossSection::GetVirtualFactor(G4double nu, G4double return 0.; } G4double lK=std::log(K); // ln(K) - G4double x=1.-K/nu; // This definitin saves one div. - G4double GD=1.+Q2/Q02; // Reversed nucleonic form-factor + G4double x=1.-K/nu; // This definitin saves one div. + G4double GD=1.+Q2/Q02; // Reversed nucleonic form-factor G4double b=std::exp(bp*(lK-blK0)); // b-factor G4double c=std::exp(cp*(lK-clK0)); // c-factor G4double r=.5*std::log(Q2+nu*nu)-lK; // r=.5*log((Q^2+nu^2)/K^2) diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QMuonNuclearCrossSection.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QMuonNuclearCrossSection.cc similarity index 99% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QMuonNuclearCrossSection.cc rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QMuonNuclearCrossSection.cc index fc7f25293d..5385547e88 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QMuonNuclearCrossSection.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QMuonNuclearCrossSection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QMuonNuclearCrossSection.cc,v 1.3 2005/06/27 15:30:38 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QMuonNuclearCrossSection.cc,v 1.2 2005/11/25 21:34:17 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Physics class: G4QMuonNuclearCrossSection for gamma+A cross sections @@ -33,7 +33,7 @@ // ********** This CLASS is temporary moved from the photolepton_hadron directory ********* // ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ****** // **************************************************************************************** -//=============================================================================================== +//========================================================================================= ///#define debug #define edebug @@ -73,9 +73,9 @@ G4double G4QMuonNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) // CHIPS - Direct GEANT //static const G4double mNeut = G4QPDGCode(2112).GetMass(); //static const G4double mProt = G4QPDGCode(2212).GetMass(); - static const G4double mNeut = G4NucleiProperties::GetNuclearMass(1,0); - static const G4double mProt = G4NucleiProperties::GetNuclearMass(1,1); - static const G4double mAlph = G4NucleiProperties::GetNuclearMass(4,2); + static const G4double mNeut = G4NucleiProperties::GetNuclearMass(1,0)/MeV; + static const G4double mProt = G4NucleiProperties::GetNuclearMass(1,1)/MeV; + static const G4double mAlph = G4NucleiProperties::GetNuclearMass(4,2)/MeV; // --------- static const G4double infEn = 9.e27; @@ -85,20 +85,21 @@ G4double G4QMuonNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) // CHIPS - Direct GEANT //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0); G4double mT= 0.; - if(G4NucleiPropertiesTable::IsInTable(Z,A)) mT=G4NucleiProperties::GetNuclearMass(A,Z); + if(G4NucleiPropertiesTable::IsInTable(Z,A)) + mT=G4NucleiProperties::GetNuclearMass(A,Z)/MeV; else return 0.; // If it is not in the Table of Stable Nuclei, then the Threshold=0 // --------- Splitting thresholds G4double mP= infEn; if(Z&&G4NucleiPropertiesTable::IsInTable(Z-1,A-1)) - mP=G4NucleiProperties::GetNuclearMass(A-1,Z-1); // Residual mass for a proton + mP=G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV; // Residual mass for a proton G4double mN= infEn; if(N&&G4NucleiPropertiesTable::IsInTable(Z,A-1)) - mN=G4NucleiProperties::GetNuclearMass(A-1,Z); // Residual mass for a neutron + mN=G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV; // Residual mass for a neutron G4double mA= infEn; if(N>1&&Z>1&&G4NucleiPropertiesTable::IsInTable(Z-2,A-4)) - mN=G4NucleiProperties::GetNuclearMass(A-4,Z-2); // Residual mass for an alpha + mN=G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV; // Residual mass for an alpha G4double dP= mP +mProt - mT; G4double dN= mN +mNeut - mT; @@ -115,14 +116,14 @@ G4double G4QMuonNuclearCrossSection::CalculateCrossSection(G4int F, G4int I, G4i static const G4int nE=336; // !! If change this, change it in GetFunctions() (*.hh) !! static const G4int mL=nE-1; static const G4double EMi=2.0612; // Minimum tabulated KineticEnergy of Muon - static const G4double EMa=50000.; // Maximum tabulated Energy of the Electron - static const G4double lEMi=std::log(EMi); // Minimum tabulatedLogarithmKinEnergy of Muon - static const G4double lEMa=std::log(EMa); // Maximum tabulatedLogarithmKinEnergy of Muon + static const G4double EMa=50000.; // Maximum tabulated Energy of the Muon + static const G4double lEMi=std::log(EMi); // Minimum tabulatedLogarithmKinEnergy of Muon + static const G4double lEMa=std::log(EMa); // Maximum tabulatedLogarithmKinEnergy of Muon static const G4double dlnE=(lEMa-lEMi)/mL; // Logarithmic table step for MuonKinEnergy static const G4double alop=1./137.036/3.14159265; //coeffitient for E>50000 calculations static const G4double mmu=105.65839; // Mass of the muon in MeV static const G4double mmu2=mmu*mmu; // Squared Mass of muon in MeV^2 - static const G4double lmmu=std::log(mmu); // Log of the electron mass + static const G4double lmmu=std::log(mmu); // Log of the muon mass // *** Begin of the Associative memory for acceleration of the cross section calculations static std::vector colF; // Vector of LastStartPosition in Ji-function tables static std::vector colH; // Vector of HighEnergyCoefficients (functional) @@ -158,7 +159,7 @@ G4double G4QMuonNuclearCrossSection::CalculateCrossSection(G4int F, G4int I, G4i lastJ2 = new G4double[nE]; // Allocate memory for the new J2 function lastJ3 = new G4double[nE]; // Allocate memory for the new J3 function lastF = GetFunctions(A,lastJ1,lastJ2,lastJ3);//newZeroPos and J-functions filling - lastH = alop*A*(1.-.072*std::log(A));//similar to lastSP of G4PhotonuclearCrossSection + lastH = alop*A*(1.-.072*std::log(A)); // like lastSP of G4PhotonuclearCrossSection #ifdef pdebug G4cout<<"G4MuonNuclearCS::CalculateCrossSection: lastH="< get from Tab + if(std::fabs(a-A[i])<.0005) // A coincides with one of basic A's -> get from Tab { for(G4int k=0; k must be calculated @@ -2382,7 +2383,7 @@ G4int G4QMuonNuclearCrossSection::GetFunctions(G4double a,G4double*x,G4double*y, } r=L[k]; if(L[k1]Yj && jlE="<=1.-1./(lastG+lastG)) return 0.; // The region where the method does not work G4double y2=y*y; // Squared photonic part of energy - G4double ye=1.-y; // Part of energy carried by the secondary electron + G4double ye=1.-y; // Part of energy carried by the secondary muon G4double Qi2=mmu2*y2/ye; // Minimum Q2 G4double Qa2=4*lastE*lastE*ye; // Maximum Q2 G4double iar=Qi2/Qa2; // Q2min/Q2max ratio @@ -2556,7 +2557,7 @@ G4double G4QMuonNuclearCrossSection::GetExchangeQ2(G4double nu) } // This class can provide only virtual exchange photons for all nu's and Q2's -G4int G4QMuonNuclearCrossSection::GetExchangePDGCode(G4double, G4double) {return 22;} +G4int G4QMuonNuclearCrossSection::GetExchangePDGCode() {return 22;} G4double G4QMuonNuclearCrossSection::GetVirtualFactor(G4double nu, G4double Q2) { diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QNuMuNuclearCrossSection.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QNuMuNuclearCrossSection.cc new file mode 100644 index 0000000000..06f7b14aeb --- /dev/null +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QNuMuNuclearCrossSection.cc @@ -0,0 +1,574 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4QNuMuNuclearCrossSection.cc,v 1.6 2005/12/01 17:28:18 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// G4 Physics class: G4QNuMuNuclearCrossSection for gamma+A cross sections +// Created: M.V. Kossov, CERN/ITEP(Moscow), 10-OCT-01 +// The last update: M.V. Kossov, CERN/ITEP (Moscow) 17-Oct-03 +// +// **************************************************************************************** +// ********** This CLASS is temporary moved from the photolepton_hadron directory ********* +// ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ****** +// **************************************************************************************** +//=============================================================================================== + +///#define debug +#define edebug +//#define pdebug +//#define ppdebug +//#define tdebug +//#define sdebug + +#include "G4QNuMuNuclearCrossSection.hh" + +// Initialization of the +G4double G4QNuMuNuclearCrossSection::lastSig=0.;// Last calculated total cross section +G4double G4QNuMuNuclearCrossSection::lastQEL=0.;// Last calculated quasi-el. cross section +G4int G4QNuMuNuclearCrossSection::lastL=0; // Last used in cross section TheLastBin +G4double G4QNuMuNuclearCrossSection::lastE=0.; // Last used in cross section TheEnergy +G4double* G4QNuMuNuclearCrossSection::lastEN=0; // Pointer to the Energy Scale of TX & QE +G4double* G4QNuMuNuclearCrossSection::lastTX=0; // Pointer to the LastArray of TX function +G4double* G4QNuMuNuclearCrossSection::lastQE=0; // Pointer to the LastArray of QE function + +// Returns Pointer to the G4VQCrossSection class +G4VQCrossSection* G4QNuMuNuclearCrossSection::GetPointer() +{ + static G4QNuMuNuclearCrossSection theCrossSection; //**Static body of the Cross Section** + return &theCrossSection; +} + +// Gives the threshold energy = the same for all nuclei (@@ can be reduced for hevy nuclei) +G4double G4QNuMuNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) +{ + //static const G4double mNeut = G4NucleiProperties::GetNuclearMass(1.,0.)/GeV; + //static const G4double mProt = G4NucleiProperties::GetNuclearMass(1.,1.)/GeV; + //static const G4double mDeut = G4NucleiProperties::GetNuclearMass(2.,1.)/GeV/2.; + static const G4double mN=.931494043;// Nucleon mass (inside nucleus, AtomicMassUnit, GeV) + static const G4double dmN=mN+mN; // Doubled nucleon mass (2*AtomicMassUnit, GeV) + static const G4double mmu=.105658369; // Mass of a muon in GeV + static const G4double mmu2=mmu*mmu; // Squared mass of a muon in GeV^2 + static const G4double thresh=mmu+mmu2/dmN; // Universal threshold in GeV + // --------- + //static const G4double infEn = 9.e27; + G4double dN=0.; + if(Z>0||N>0) dN=thresh*GeV; // @@ if upgraded, change it in a total cross section + //@@ "dN=mmu+mmu2/G4NucleiProperties::GetNuclearMass((Z+N),(Z)/GeV" + return dN; +} + +// The main member function giving the gamma-A cross section (E_kin in MeV, CS in mb) +G4double G4QNuMuNuclearCrossSection::CalculateCrossSection(G4int F, G4int I, G4int targZ, + G4int targN, G4double Momentum) +{ + static const G4double mb38=1.E-11*millibarn;// Conversion 10^-38 cm^2 to mb=10^-27 cm^2 + static const G4int nE=33; // !! If change this, change it in GetFunctions() (*.hh) !! + static const G4int mL=nE-1; + static const G4double mN=.931494043;// Nucleon mass (inside nucleus, AtomicMassUnit, GeV) + static const G4double dmN=mN+mN; // Doubled nucleon mass (2*AtomicMassUnit, GeV) + static const G4double mmu=.105658369; // Mass of a muon in GeV + static const G4double mmu2=mmu*mmu; // Squared mass of a muon in GeV^2 + static const G4double EMi=mmu+mmu2/dmN; // Universal threshold of the reaction in GeV + static const G4double EMa=300.; // Maximum tabulated Energy of nu_mu in GeV + // *** Begin of the Associative memory for acceleration of the cross section calculations + static std::vector colH; //?? Vector of HighEnergyCoefficients (functional) + static std::vector TX; // Vector of pointers to the TX tabulated functions + static std::vector QE; // Vector of pointers to the QE tabulated functions + static G4bool first=true; // Flag of initialization of the energy axis + // *** End of Static Definitions (Associative Memory) *** + //const G4double Energy = aPart->GetKineticEnergy()/MeV; // Energy of the Muon + //G4double TotEnergy2=Momentum; + lastE=Momentum/GeV; // Kinetic energy of the muon neutrino (in GeV!) + if (lastE<=EMi) // Energy is below the minimum energy in the table + { + lastE=0.; + lastSig=0.; + return 0.; + } + G4int Z=targZ; // New Z, which can change the sign + if(F<=0) // This isotope was not the last used isotop + { + if(F<0) // This isotope was found in DAMDB =========> RETRIEVE + { + lastTX =TX[I]; // Pointer to the prepared TX function (same isotope) + lastQE =QE[I]; // Pointer to the prepared QE function (same isotope) + } + else // This isotope wasn't calculated previously => CREATE + { + if(first) + { + lastEN = new G4double[nE]; // This must be done only once! + Z=-Z; // To explain GetFunctions that E-axis must be filled + first=false; // To make it only once + } + lastTX = new G4double[nE]; // Allocate memory for the new TX function + lastQE = new G4double[nE]; // Allocate memory for the new QE function + G4int res=GetFunctions(Z,targN,lastTX,lastQE,lastEN);//@@analize(0=first,-1=bad,1=OK) + if(res<0) G4cerr<<"*W*G4NuMuNuclearCS::CalcCrossSect:Bad Function Retrieve"<=2) + { + G4int newran=ran/2; + if(lastE<=lastEN[sep]) sep-=newran; + else if(newran>1) sep+=newran; + ran=newran; + chk=chk+chk; + } + if(chk+chk!=mL) G4cerr<<"*Warn*G4NuMuNuclearCS::CalcCS:Table! mL="<=mL||lastE>highE) + G4cerr<<"*Warn*G4NuMuNuclearCS::CalcCS:Bin! "<(rXi); + if(iXi<0) iXi=0; + if(iXi>bQ2) iXi=bQ2; + G4double dXi=rXi-iXi; + G4double bnti=inl[iXi]; + G4double inti=bnti+dXi*(inl[iXi+1]-bnti); + // + G4double rXa=(Xma-Xmin)/dX; + G4int iXa=static_cast(rXa); + if(iXa<0) iXa=0; + if(iXa>bQ2) iXa=bQ2; + G4double dXa=rXa-iXa; + G4double bnta=inl[iXa]; + G4double inta=bnta+dXa*(inl[iXa+1]-bnta); + // *** Find X using the reversed table *** + G4double intx=inti+(inta-inti)*G4UniformRand(); + G4int intc=static_cast(intx); + if(intc<0) intc=0; + if(intc>bQ2) intc=bQ2; // If it is more than max, then the BAD extrapolation + G4double dint=intx-intc; + G4double mX=Xl[intc]; + G4double X=mX+dint*(Xl[intc+1]-mX); + G4double Q2=pow(X,pconv)-1.; + return Q2*GeV*GeV; +} + +// Randomize Q2 from neutrino to the scattered muon when the scattering is not quasiElastic +G4double G4QNuMuNuclearCrossSection::GetNQE_ExchangeQ2() +{ + static const double mpi=.13957018; // charged pi meson mass in GeV + static const G4double mmu=.105658369; // Mass of muon in GeV + static const G4double mmu2=mmu*mmu; // Squared Mass of muon in GeV^2 + static const double hmmu2=mmu2/2; // .5*m_mu^2 in GeV^2 + static const double MN=.931494043; // Nucleon mass (inside nucleus,atomicMassUnit,GeV) + static const double MN2=MN*MN; // M_N^2 in GeV^2 + static const double dMN=MN+MN; // 2*M_N in GeV + static const double mcV=(dMN+mpi)*mpi;// constant of W>M+mc cut for Quasi-Elastic + static const G4int power=7; // direct power for the magic variable + static const G4double pconv=1./power; // conversion power for the magic variable + static const G4int nX=21; // #Of point in the Xl table (in GeV^2) + static const G4int lX=nX-1; // index of the last in the Xl table + static const G4int bX=lX-1; // @@ index of the before last in the Xl table + static const G4int nE=20; // #Of point in the El table (in GeV^2) + static const G4int bE=nE-1; // index of the last in the El table + static const G4int pE=bE-1; // index of the before last in the El table + // Reversed table + static const G4double X0[nX]={6.14081e-05, + .413394, .644455, .843199, 1.02623, 1.20032, 1.36916, 1.53516, 1.70008, 1.86539, 2.03244, + 2.20256, 2.37723, 2.55818, 2.74762, 2.94857, 3.16550, 3.40582, 3.68379, 4.03589, 4.77419}; + static const G4double X1[nX]={.00125268, + .861178, 1.34230, 1.75605, 2.13704, 2.49936, 2.85072, 3.19611, 3.53921, 3.88308, 4.23049, + 4.58423, 4.94735, 5.32342, 5.71700, 6.13428, 6.58447, 7.08267, 7.65782, 8.38299, 9.77330}; + static const G4double X2[nX]={.015694, + 1.97690, 3.07976, 4.02770, 4.90021, 5.72963, 6.53363, 7.32363, 8.10805, 8.89384, 9.68728, + 10.4947, 11.3228, 12.1797, 13.0753, 14.0234, 15.0439, 16.1692, 17.4599, 19.0626, 21.7276}; + static const G4double X3[nX]={.0866877, + 4.03498, 6.27651, 8.20056, 9.96931, 11.6487, 13.2747, 14.8704, 16.4526, 18.0351, 19.6302, + 21.2501, 22.9075, 24.6174, 26.3979, 28.2730, 30.2770, 32.4631, 34.9243, 37.8590, 41.9115}; + static const G4double X4[nX]={.160483, + 5.73111, 8.88884, 11.5893, 14.0636, 16.4054, 18.6651, 20.8749, 23.0578, 25.2318, 27.4127, + 29.6152, 31.8540, 34.1452, 36.5074, 38.9635, 41.5435, 44.2892, 47.2638, 50.5732, 54.4265}; + static const G4double X5[nX]={.0999307, + 5.25720, 8.11389, 10.5375, 12.7425, 14.8152, 16.8015, 18.7296, 20.6194, 22.4855, 24.3398, + 26.1924, 28.0527, 29.9295, 31.8320, 33.7699, 35.7541, 37.7975, 39.9158, 42.1290, 44.4649}; + static const G4double X6[nX]={.0276367, + 3.53378, 5.41553, 6.99413, 8.41629, 9.74057, 10.9978, 12.2066, 13.3796, 14.5257, 15.6519, + 16.7636, 17.8651, 18.9603, 20.0527, 21.1453, 22.2411, 23.3430, 24.4538, 25.5765, 26.7148}; + static const G4double X7[nX]={.00472383, + 2.08253, 3.16946, 4.07178, 4.87742, 5.62140, 6.32202, 6.99034, 7.63368, 8.25720, 8.86473, + 9.45921, 10.0430, 10.6179, 11.1856, 11.7475, 12.3046, 12.8581, 13.4089, 13.9577, 14.5057}; + static const G4double X8[nX]={.000630783, + 1.22723, 1.85845, 2.37862, 2.84022, 3.26412, 3.66122, 4.03811, 4.39910, 4.74725, 5.08480, + 5.41346, 5.73457, 6.04921, 6.35828, 6.66250, 6.96250, 7.25884, 7.55197, 7.84232, 8.13037}; + static const G4double X9[nX]={7.49179e-05, + .772574, 1.16623, 1.48914, 1.77460, 2.03586, 2.27983, 2.51069, 2.73118, 2.94322, 3.14823, + 3.34728, 3.54123, 3.73075, 3.91638, 4.09860, 4.27779, 4.45428, 4.62835, 4.80025, 4.97028}; + static const G4double XA[nX]={8.43437e-06, + .530035, .798454, 1.01797, 1.21156, 1.38836, 1.55313, 1.70876, 1.85712, 1.99956, 2.13704, + 2.27031, 2.39994, 2.52640, 2.65007, 2.77127, 2.89026, 3.00726, 3.12248, 3.23607, 3.34823}; + static const G4double XB[nX]={9.27028e-07, + .395058, .594211, .756726, .899794, 1.03025, 1.15167, 1.26619, 1.37523, 1.47979, 1.58059, + 1.67819, 1.77302, 1.86543, 1.95571, 2.04408, 2.13074, 2.21587, 2.29960, 2.38206, 2.46341}; + static const G4double XC[nX]={1.00807e-07, + .316195, .474948, .604251, .717911, .821417, .917635, 1.00829, 1.09452, 1.17712, 1.25668, + 1.33364, 1.40835, 1.48108, 1.55207, 1.62150, 1.68954, 1.75631, 1.82193, 1.88650, 1.95014}; + static const G4double XD[nX]={1.09102e-08, + .268227, .402318, .511324, .606997, .694011, .774803, .850843, .923097, .992243, 1.05878, + 1.12309, 1.18546, 1.24613, 1.30530, 1.36313, 1.41974, 1.47526, 1.52978, 1.58338, 1.63617}; + static const G4double XE[nX]={1.17831e-09, + .238351, .356890, .453036, .537277, .613780, .684719, .751405, .814699, .875208, .933374, + .989535, 1.04396, 1.09685, 1.14838, 1.19870, 1.24792, 1.29615, 1.34347, 1.38996, 1.43571}; + static const G4double XF[nX]={1.27141e-10, + .219778, .328346, .416158, .492931, .562525, .626955, .687434, .744761, .799494, .852046, + .902729, .951786, .999414, 1.04577, 1.09099, 1.13518, 1.17844, 1.22084, 1.26246, 1.30338}; + static const G4double XG[nX]={1.3713e-11, + .208748, .310948, .393310, .465121, .530069, .590078, .646306, .699515, .750239, .798870, + .845707, .890982, .934882, .977559, 1.01914, 1.05973, 1.09941, 1.13827, 1.17637, 1.21379}; + static const G4double XH[nX]={1.47877e-12, + .203089, .301345, .380162, .448646, .510409, .567335, .620557, .670820, .718647, .764421, + .808434, .850914, .892042, .931967, .970812, 1.00868, 1.04566, 1.08182, 1.11724, 1.15197}; + static const G4double XI[nX]={1.59454e-13, + .201466, .297453, .374007, .440245, .499779, .554489, .605506, .653573, .699213, .742806, + .784643, .824952, .863912, .901672, .938353, .974060, 1.00888, 1.04288, 1.07614, 1.10872}; + static const G4double XJ[nX]={1.71931e-14, + .202988, .297870, .373025, .437731, .495658, .548713, .598041, .644395, .688302, .730147, + .770224, .808762, .845943, .881916, .916805, .950713, .983728, 1.01592, 1.04737, 1.07813}; + // Direct table + static const G4double Xmin[nE]={X0[0],X1[0],X2[0],X3[0],X4[0],X5[0],X6[0],X7[0],X8[0], + X9[0],XA[0],XB[0],XC[0],XD[0],XE[0],XF[0],XG[0],XH[0],XI[0],XJ[0]}; + static const G4double dX[nE]={ + (X0[lX]-X0[0])/lX, (X1[lX]-X1[0])/lX, (X2[lX]-X2[0])/lX, (X3[lX]-X3[0])/lX, + (X4[lX]-X4[0])/lX, (X5[lX]-X5[0])/lX, (X6[lX]-X6[0])/lX, (X7[lX]-X7[0])/lX, + (X8[lX]-X8[0])/lX, (X9[lX]-X9[0])/lX, (XA[lX]-XA[0])/lX, (XB[lX]-XB[0])/lX, + (XC[lX]-XC[0])/lX, (XD[lX]-XD[0])/lX, (XE[lX]-XE[0])/lX, (XF[lX]-XF[0])/lX, + (XG[lX]-XG[0])/lX, (XH[lX]-XH[0])/lX, (XI[lX]-XI[0])/lX, (XJ[lX]-XJ[0])/lX}; + static const G4double* Xl[nE]= + {X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,XA,XB,XC,XD,XE,XF,XG,XH,XI,XJ}; + static const G4double I0[nX]={0, + .411893, 1.25559, 2.34836, 3.60264, 4.96046, 6.37874, 7.82342, 9.26643, 10.6840, 12.0555, + 13.3628, 14.5898, 15.7219, 16.7458, 17.6495, 18.4217, 19.0523, 19.5314, 19.8501, 20.0000}; + static const G4double I1[nX]={0, + .401573, 1.22364, 2.28998, 3.51592, 4.84533, 6.23651, 7.65645, 9.07796, 10.4780, 11.8365, + 13.1360, 14.3608, 15.4967, 16.5309, 17.4516, 18.2481, 18.9102, 19.4286, 19.7946, 20.0000}; + static const G4double I2[nX]={0, + .387599, 1.17339, 2.19424, 3.37090, 4.65066, 5.99429, 7.37071, 8.75427, 10.1232, 11.4586, + 12.7440, 13.9644, 15.1065, 16.1582, 17.1083, 17.9465, 18.6634, 19.2501, 19.6982, 20.0000}; + static const G4double I3[nX]={0, + .366444, 1.09391, 2.04109, 3.13769, 4.33668, 5.60291, 6.90843, 8.23014, 9.54840, 10.8461, + 12.1083, 13.3216, 14.4737, 15.5536, 16.5512, 17.4573, 18.2630, 18.9603, 19.5417, 20.0000}; + static const G4double I4[nX]={0, + .321962, .959681, 1.79769, 2.77753, 3.85979, 5.01487, 6.21916, 7.45307, 8.69991, 9.94515, + 11.1759, 12.3808, 13.5493, 14.6720, 15.7402, 16.7458, 17.6813, 18.5398, 19.3148, 20.0000}; + static const G4double I5[nX]={0, + .257215, .786302, 1.49611, 2.34049, 3.28823, 4.31581, 5.40439, 6.53832, 7.70422, 8.89040, + 10.0865, 11.2833, 12.4723, 13.6459, 14.7969, 15.9189, 17.0058, 18.0517, 19.0515, 20.0000}; + static const G4double I6[nX]={0, + .201608, .638914, 1.24035, 1.97000, 2.80354, 3.72260, 4.71247, 5.76086, 6.85724, 7.99243, + 9.15826, 10.3474, 11.5532, 12.7695, 13.9907, 15.2117, 16.4275, 17.6337, 18.8258, 20.0000}; + static const G4double I7[nX]={0, + .168110, .547208, 1.07889, 1.73403, 2.49292, 3.34065, 4.26525, 5.25674, 6.30654, 7.40717, + 8.55196, 9.73492, 10.9506, 12.1940, 13.4606, 14.7460, 16.0462, 17.3576, 18.6767, 20.0000}; + static const G4double I8[nX]={0, + .150652, .497557, .990048, 1.60296, 2.31924, 3.12602, 4.01295, 4.97139, 5.99395, 7.07415, + 8.20621, 9.38495, 10.6057, 11.8641, 13.1561, 14.4781, 15.8267, 17.1985, 18.5906, 20.0000}; + static const G4double I9[nX]={0, + .141449, .470633, .941304, 1.53053, 2.22280, 3.00639, 3.87189, 4.81146, 5.81837, 6.88672, + 8.01128, 9.18734, 10.4106, 11.6772, 12.9835, 14.3261, 15.7019, 17.1080, 18.5415, 20.0000}; + static const G4double IA[nX]={0, + .136048, .454593, .912075, 1.48693, 2.16457, 2.93400, 3.78639, 4.71437, 5.71163, 6.77265, + 7.89252, 9.06683, 10.2916, 11.5631, 12.8780, 14.2331, .625500, 17.0525, 18.5115, 20.0000}; + static const G4double IB[nX]={0, + .132316, .443455, .891741, 1.45656, 2.12399, 2.88352, 3.72674, 4.64660, 5.63711, 6.69298, + 7.80955, 8.98262, 10.2084, 11.4833, 12.8042, 14.1681, 15.5721, 17.0137, 18.4905, 20.0000}; + static const G4double IC[nX]={0, + .129197, .434161, .874795, 1.43128, 2.09024, 2.84158, 3.67721, 4.59038, 5.57531, 6.62696, + 7.74084, 8.91291, 10.1395, 11.4173, 12.7432, 14.1143, 15.5280, 16.9817, 18.4731, 20.0000}; + static const G4double ID[nX]={0, + .126079, .424911, .857980, 1.40626, 2.05689, 2.80020, 3.62840, 4.53504, 5.51456, 6.56212, + 7.67342, 8.84458, 10.0721, 11.3527, 12.6836, 14.0618, 15.4849, 16.9504, 18.4562, 20.0000}; + static const G4double IE[nX]={0, + .122530, .414424, .838964, 1.37801, 2.01931, 2.75363, 3.57356, 4.47293, 5.44644, 6.48949, + 7.59795, 8.76815, 9.99673, 11.2806, 12.6170, 14.0032, 15.4369, 16.9156, 18.4374, 20.0000}; + static const G4double IF[nX]={0, + .118199, .401651, .815838, 1.34370, 1.97370, 2.69716, 3.50710, 4.39771, 5.36401, 6.40164, + 7.50673, 8.67581, 9.90572, 11.1936, 12.5367, 13.9326, 15.3790, 16.8737, 18.4146, 20.0000}; + static const G4double IG[nX]={0, + .112809, .385761, .787075, 1.30103, 1.91700, 2.62697, 3.42451, 4.30424, 5.26158, 6.29249, + 7.39341, 8.56112, 9.79269, 11.0855, 12.4369, 13.8449, 15.3071, 16.8216, 18.3865, 20.0000}; + static const G4double IH[nX]={0, + .106206, .366267, .751753, 1.24859, 1.84728, 2.54062, 3.32285, .189160, 5.13543, 6.15804, + 7.25377, 8.41975, 9.65334, 10.9521, 12.3139, 13.7367, 15.2184, 16.7573, 18.3517, 20.0000}; + static const G4double II[nX]={0, + .098419, .343194, .709850, 1.18628, 1.76430, 2.43772, 3.20159, 4.05176, 4.98467, 5.99722, + 7.08663, 8.25043, 9.48633, 10.7923, 12.1663, 13.6067, 15.1118, 16.6800, 18.3099, 20.0000}; + static const G4double IJ[nX]={0, + .089681, .317135, .662319, 1.11536, 1.66960, 2.32002, 3.06260, 3.89397, 4.81126, 5.81196, + 6.89382, 8.05483, 9.29317, 10.6072, 11.9952, 13.4560, 14.9881, 16.5902, 18.2612, 20.0000}; + static const G4double* Il[nE]= + {I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,IA,IB,IC,ID,IE,IF,IG,IH,II,IJ}; + static const G4double lE[nE]={ +-1.98842,-1.58049,-1.17256,-.764638,-.356711, .051215, .459141, .867068, 1.27499, 1.68292, + 2.09085, 2.49877, 2.90670, 3.31463, 3.72255, 4.13048, 4.53840, 4.94633, 5.35426, 5.76218}; + static const G4double lEmi=lE[0]; + static const G4double lEma=lE[nE-1]; + static const G4double dlE=(lEma-lEmi)/bE; + //*************************************************************************************** + G4double Enu=lastE; // Get energy of the last calculated cross-section + G4double lEn=std::log(Enu); // log(E) for interpolation + G4double rE=(lEn-lEmi)/dlE; // Position of the energy + G4int fE=static_cast(rE); // Left bin for interpolation + if(fE<0) fE=0; + if(fE>pE)fE=pE; + G4int sE=fE+1; // Right bin for interpolation + G4double dE=rE-fE; // relative log shift from the left bin + G4double dEnu=Enu+Enu; // doubled energy of nu/anu + G4double Enu2=Enu*Enu; // squared energy of nu/anu + G4double Emu=Enu-mmu; // Free Energy of neutrino/anti-neutrino + G4double ME=Enu*MN; // M*E + G4double dME=ME+ME; // 2*M*E + G4double dEMN=(dEnu+MN)*ME; + G4double MEm=ME-hmmu2; + G4double sqE=Enu*std::sqrt(MEm*MEm-mmu2*MN2); + G4double E2M=MN*Enu2-(Enu+MN)*hmmu2; + G4double ymax=(E2M+sqE)/dEMN; + G4double ymin=(E2M-sqE)/dEMN; + G4double rmin=1.-ymin; + G4double rhm2E=hmmu2/Enu2; + G4double Q2mi=(Enu2+Enu2)*(rmin-rhm2E-std::sqrt(rmin*rmin-rhm2E-rhm2E)); // Q2_min(E_nu) + G4double Q2ma=dME*ymax; // Q2_max(E_nu) + G4double Q2nq=Emu*dMN-mcV; + if(Q2ma>Q2nq) Q2ma=Q2nq; // Correction for Non Quasi Elastic + // --- now r_min=Q2mi/Q2ma and r_max=1.; when r is randomized -> Q2=r*Q2ma --- + G4double Rmi=Q2mi/Q2ma; + G4double shift=1.+.9673/(1.+.323/Enu/Enu)/pow(Enu,.78); //@@ different for anti-nu + // --- E-interpolation must be done in a log scale --- + G4double Xmi=pow((shift-Rmi),power);// X_min(E_nu) + G4double Xma=pow((shift-1.),power); // X_max(E_nu) + // Find the integral values integ(Xmi) & integ(Xma) using the direct table + G4double idX=dX[fE]+dE*(dX[sE]-dX[fE]); // interpolated X step + G4double iXmi=Xmin[fE]+dE*(Xmin[sE]-Xmin[fE]); // interpolated X minimum + G4double rXi=(Xmi-iXmi)/idX; + G4int iXi=static_cast(rXi); + if(iXi<0) iXi=0; + if(iXi>bX) iXi=bX; + G4double dXi=rXi-iXi; + G4double bntil=Il[fE][iXi]; + G4double intil=bntil+dXi*(Il[fE][iXi+1]-bntil); + G4double bntir=Il[sE][iXi]; + G4double intir=bntir+dXi*(Il[sE][iXi+1]-bntir); + G4double inti=intil+dE*(intir-intil);// interpolated begin of the integral + // + G4double rXa=(Xma-iXmi)/idX; + G4int iXa=static_cast(rXa); + if(iXa<0) iXa=0; + if(iXa>bX) iXa=bX; + G4double dXa=rXa-iXa; + G4double bntal=Il[fE][iXa]; + G4double intal=bntal+dXa*(Il[fE][iXa+1]-bntal); + G4double bntar=Il[sE][iXa]; + G4double intar=bntar+dXa*(Il[sE][iXa+1]-bntar); + G4double inta=intal+dE*(intar-intal);// interpolated end of the integral + // + // *** Find X using the reversed table *** + G4double intx=inti+(inta-inti)*G4UniformRand(); + G4int intc=static_cast(intx); + if(intc<0) intc=0; + if(intc>bX) intc=bX; + G4double dint=intx-intc; + G4double mXl=Xl[fE][intc]; + G4double Xlb=mXl+dint*(Xl[fE][intc+1]-mXl); + G4double mXr=Xl[sE][intc]; + G4double Xrb=mXr+dint*(Xl[sE][intc+1]-mXr); + G4double X=Xlb+dE*(Xrb-Xlb); // interpolated X value + G4double R=shift-pow(X,pconv); + G4double Q2=R*Q2ma; + return Q2*GeV*GeV; +} + +// It returns a fraction of the direct interaction of the neutrino with quark-partons +G4double G4QNuMuNuclearCrossSection::GetDirectPart(G4double Q2) +{ + G4double f=Q2/4.62; + G4double ff=f*f; + G4double r=ff*ff; + G4double s=pow((1.+.6/Q2),(-1.-(1.+r)/(12.5+r/.3))); + //@@ It is the same for nu/anu, but for nu it is a bit less, and for anu a bit more (par) + return 1.-s*(1.-s/2); +} + +// #of quark-partons in the nonperturbative phase space is the same for neut and anti-neut +G4double G4QNuMuNuclearCrossSection::GetNPartons(G4double Q2) +{ + return 3.+.3581*std::log(1.+Q2/.04); // a#of partons in the nonperturbative phase space +} + +// This class can provide only virtual exchange pi+ (a substitute for W+ boson) +G4int G4QNuMuNuclearCrossSection::GetExchangePDGCode() {return 211;} diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPhotonNuclearCrossSection.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QPhotonNuclearCrossSection.cc similarity index 99% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPhotonNuclearCrossSection.cc rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QPhotonNuclearCrossSection.cc index 4cc153c0b4..7a4e23d2bc 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QPhotonNuclearCrossSection.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QPhotonNuclearCrossSection.cc @@ -22,7 +22,7 @@ // // // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Physics class: G4QPhotonNuclearCrossSection for gamma+A cross sections diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QProtonNuclearCrossSection.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QProtonNuclearCrossSection.cc similarity index 99% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QProtonNuclearCrossSection.cc rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QProtonNuclearCrossSection.cc index db61bda5bd..5341821dcc 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QProtonNuclearCrossSection.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QProtonNuclearCrossSection.cc @@ -22,7 +22,7 @@ // // // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Physics class: G4QProtonNuclearCrossSection for gamma+A cross sections diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QTauNuclearCrossSection.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QTauNuclearCrossSection.cc similarity index 99% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QTauNuclearCrossSection.cc rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QTauNuclearCrossSection.cc index e1821549f6..ca2079986b 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QTauNuclearCrossSection.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QTauNuclearCrossSection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QTauNuclearCrossSection.cc,v 1.3 2005/06/27 15:30:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4QTauNuclearCrossSection.cc,v 1.2 2005/11/25 21:34:17 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Physics class: G4QTauNuclearCrossSection for gamma+A cross sections @@ -33,7 +33,7 @@ // ********** This CLASS is temporary moved from the photolepton_hadron directory ********* // ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ****** // **************************************************************************************** -//=============================================================================================== +//========================================================================================= ///#define debug #define edebug @@ -73,9 +73,9 @@ G4double G4QTauNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) // CHIPS - Direct GEANT //static const G4double mNeut = G4QPDGCode(2112).GetMass(); //static const G4double mProt = G4QPDGCode(2212).GetMass(); - static const G4double mNeut = G4NucleiProperties::GetNuclearMass(1,0); - static const G4double mProt = G4NucleiProperties::GetNuclearMass(1,1); - static const G4double mAlph = G4NucleiProperties::GetNuclearMass(4,2); + static const G4double mNeut = G4NucleiProperties::GetNuclearMass(1,0)/MeV; + static const G4double mProt = G4NucleiProperties::GetNuclearMass(1,1)/MeV; + static const G4double mAlph = G4NucleiProperties::GetNuclearMass(4,2)/MeV; // --------- static const G4double infEn = 9.e27; @@ -85,20 +85,21 @@ G4double G4QTauNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) // CHIPS - Direct GEANT //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0); G4double mT= 0.; - if(G4NucleiPropertiesTable::IsInTable(Z,A)) mT=G4NucleiProperties::GetNuclearMass(A,Z); + if(G4NucleiPropertiesTable::IsInTable(Z,A)) + mT=G4NucleiProperties::GetNuclearMass(A,Z)/MeV; else return 0.; // If it is not in the Table of Stable Nuclei, then the Threshold=0 // --------- Splitting thresholds G4double mP= infEn; if(Z&&G4NucleiPropertiesTable::IsInTable(Z-1,A-1)) - mP=G4NucleiProperties::GetNuclearMass(A-1,Z-1); // Residual mass for a proton + mP=G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV; // Residual mass for a proton G4double mN= infEn; if(N&&G4NucleiPropertiesTable::IsInTable(Z,A-1)) - mN=G4NucleiProperties::GetNuclearMass(A-1,Z); // Residual mass for a neutron + mN=G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV; // Residual mass for a neutron G4double mA= infEn; if(N>1&&Z>1&&G4NucleiPropertiesTable::IsInTable(Z-2,A-4)) - mN=G4NucleiProperties::GetNuclearMass(A-4,Z-2); // Residual mass for an alpha + mN=G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV; // Residual mass for an alpha G4double dP= mP +mProt - mT; G4double dN= mN +mNeut - mT; @@ -114,15 +115,15 @@ G4double G4QTauNuclearCrossSection::CalculateCrossSection(G4int F, G4int I, G4in { static const G4int nE=336; // !! If change this, change it in GetFunctions() (*.hh) !! static const G4int mL=nE-1; - static const G4double EMi=2.0612; // Minimum tabulated KineticEnergy of Muon - static const G4double EMa=50000.; // Maximum tabulated Energy of the Electron - static const G4double lEMi=std::log(EMi); // Minimum tabulatedLogarithmKinEnergy of Muon - static const G4double lEMa=std::log(EMa); // Maximum tabulatedLogarithmKinEnergy of Muon - static const G4double dlnE=(lEMa-lEMi)/mL; // Logarithmic table step for MuonKinEnergy + static const G4double EMi=2.0612; // Minimum tabulated KineticEnergy of Tau + static const G4double EMa=50000.; // Maximum tabulated Energy of the Tau + static const G4double lEMi=std::log(EMi); // Minimum tabulatedLogarithmKinEnergy of Tau + static const G4double lEMa=std::log(EMa); // Maximum tabulatedLogarithmKinEnergy of Tau + static const G4double dlnE=(lEMa-lEMi)/mL; // Logarithmic table step for TauKinEnergy static const G4double alop=1./137.036/3.14159265; //coeffitient for E>50000 calculations - static const G4double mtu=1777.; // Mass of the muon in MeV - static const G4double mtu2=mtu*mtu; // Squared Mass of muon in MeV^2 - static const G4double lmtu=std::log(mtu); // Log of the electron mass + static const G4double mtu=1777.; // Mass of a tau lepton in MeV + static const G4double mtu2=mtu*mtu; // Squared Mass of a tau-lepton in MeV^2 + static const G4double lmtu=std::log(mtu); // Log of the tau-lepton mass // *** Begin of the Associative memory for acceleration of the cross section calculations static std::vector colF; // Vector of LastStartPosition in Ji-function tables static std::vector colH; // Vector of HighEnergyCoefficients (functional) @@ -130,7 +131,7 @@ G4double G4QTauNuclearCrossSection::CalculateCrossSection(G4int F, G4int I, G4in static std::vector J2; // Vector of pointers to the J2 tabulated functions static std::vector J3; // Vector of pointers to the J3 tabulated functions // *** End of Static Definitions (Associative Memory) *** - //const G4double Energy = aPart->GetKineticEnergy()/MeV; // Energy of the Muon + //const G4double Energy = aPart->GetKineticEnergy()/MeV; // Energy of the Tau-lepton G4double TotEnergy2=Momentum*Momentum+mtu2; G4double TotEnergy=std::sqrt(TotEnergy2); // Total energy of the muon lastE=TotEnergy-mtu; // Kinetic energy of the muon @@ -158,7 +159,7 @@ G4double G4QTauNuclearCrossSection::CalculateCrossSection(G4int F, G4int I, G4in lastJ2 = new G4double[nE]; // Allocate memory for the new J2 function lastJ3 = new G4double[nE]; // Allocate memory for the new J3 function lastF = GetFunctions(A,lastJ1,lastJ2,lastJ3);//newZeroPos and J-functions filling - lastH = alop*A*(1.-.072*std::log(A));//similar to lastSP of G4PhotonuclearCrossSection + lastH = alop*A*(1.-.072*std::log(A)); // like lastSP of G4PhotonuclearCrossSection #ifdef pdebug G4cout<<"G4MuonNuclearCS::CalculateCrossSection: lastH="< get from Tab + if(std::fabs(a-A[i])<.0005) // A coincides with one of basic A's -> get from Tab { for(G4int k=0; k Y[lastL=mL], then it is funct. reg. #ifdef debug G4cout<<"G4QTauNuclearCrossSection::GetExchangeEnergy: "<lE="<=1.-1./(lastG+lastG)) return 0.; // The region where the method does not work G4double y2=y*y; // Squared photonic part of energy - G4double ye=1.-y; // Part of energy carried by the secondary electron + G4double ye=1.-y; // Part of energy carried by the secondary tau-lept G4double Qi2=mtu2*y2/ye; // Minimum Q2 G4double Qa2=4*lastE*lastE*ye; // Maximum Q2 G4double iar=Qi2/Qa2; // Q2min/Q2max ratio @@ -2556,7 +2557,7 @@ G4double G4QTauNuclearCrossSection::GetExchangeQ2(G4double nu) } // This class can provide only virtual exchange photons for all nu's and Q2's -G4int G4QTauNuclearCrossSection::GetExchangePDGCode(G4double, G4double) {return 22;} +G4int G4QTauNuclearCrossSection::GetExchangePDGCode() {return 22;} G4double G4QTauNuclearCrossSection::GetVirtualFactor(G4double nu, G4double Q2) { @@ -2576,12 +2577,12 @@ G4double G4QTauNuclearCrossSection::GetVirtualFactor(G4double nu, G4double Q2) #endif return 0.; } - G4double lK=std::log(K); // ln(K) + G4double lK=std::log(K); // ln(K) G4double x=1.-K/nu; // This definitin saves one div. G4double GD=1.+Q2/Q02; // Reversed nucleonic form-factor - G4double b=std::exp(bp*(lK-blK0)); // b-factor - G4double c=std::exp(cp*(lK-clK0)); // c-factor - G4double r=.5*std::log(Q2+nu*nu)-lK; // r=.5*log((Q^2+nu^2)/K^2) - G4double ef=std::exp(r*(b-c*r*r)); // exponential factor + G4double b=std::exp(bp*(lK-blK0)); // b-factor + G4double c=std::exp(cp*(lK-clK0)); // c-factor + G4double r=.5*std::log(Q2+nu*nu)-lK; // r=.5*log((Q^2+nu^2)/K^2) + G4double ef=std::exp(r*(b-c*r*r)); // exponential factor return (1.-x)*ef/GD/GD; } diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4VQCrossSection.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4VQCrossSection.cc similarity index 91% rename from source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4VQCrossSection.cc rename to source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4VQCrossSection.cc index 629c086c9e..e2ae4e130d 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4VQCrossSection.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4VQCrossSection.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4VQCrossSection.cc,v 1.4 2005/06/27 15:30:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VQCrossSection.cc,v 1.3 2005/11/30 16:26:42 mkossov Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // CHIPS virtual class: G4VQCrossSection for the collision cross sections // Created: M.V. Kossov, CERN/ITEP(Moscow), 10-OCT-04 // The last update: M.V. Kossov, CERN/ITEP (Moscow) 27-Nov-04 // -//=============================================================================================== +//========================================================================================= // **************************************************************************************** // ********** This CLASS is temporary moved from the photolepton_hadron directory ********* // ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ****** @@ -96,7 +96,7 @@ G4double G4VQCrossSection::GetCrossSection(G4double Momentum, G4int targZ, G4int lastTH =colTH[i]; // Last THreshold (A-dependent) lastCS =colCS[i]; // Last CrossSect (A-dependent) if(Momentum<=lastTH) return 0.; // Momentum is below the Threshold value - else if(std::fabs(lastP/Momentum-1.) from G4ElasticHadrNucleusHE. + +25 Nov 2005 - D. Wright (hadr-cohe-V07-01-04) +--------------------------------------------- + From Solaris testing: line 83 of G4DiffElasticHadrScattering.hh: + multiple declaration of variable c1. Fixed. + +25 Nov 2005 - D. Wright (hadr-cohe-V07-01-03) +--------------------------------------------- + Add detailed comments of N. Starkov from previous tags to History + file: + G4DiffElasticHadrNucleus.hh, .cc : + add high energy elastic scattering on protons + add new method HadronProtonDiffCrSec + + G4ElasticHadrNucleusHE.hh, .cc : + add high energy elastic scattering on protons + + G4HadronValues.hh, .cc : + use PDG value instead of static particle pointers + + From V. Ivantchenko: fixed memory leaks + 4-momentum balance fixed, tested OK + fixed compiler warnings + +25 Nov 2005 - V.Ivanchenko (ghad-cohe-V07-01-03) +------------------------------------------------ + Integration of recent development of the subpackage + Remove of the G4Rutherford for the time being + diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4DiffElasticHadrNucleus.hh b/source/processes/hadronic/models/coherent_elastic/include/G4DiffElasticHadrNucleus.hh index 601552acb8..83ceac1337 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4DiffElasticHadrNucleus.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4DiffElasticHadrNucleus.hh @@ -21,9 +21,22 @@ // ******************************************************************** // // -// $Id: G4DiffElasticHadrNucleus.hh,v 1.10 2005/06/10 13:23:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DiffElasticHadrNucleus.hh,v 1.13 2005/11/25 19:17:32 dennis Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // + +// +// G4DiffElasticHadrNucleus header file +// +// High energy hadron-nucleus elastic scattering +// Kinetic energy T > 1 GeV +// N. Starkov 2003. +// +// Modifications: +// 14.11.05 The HE elastic scattering on proton is added (N.Starkov) +// 23.11.05 int -> G4int, fabs -> abs (V.Ivanchenko) +// + #ifndef G4DiffElasticHadrNucleus_h #define G4DiffElasticHadrNucleus_h 1 @@ -32,49 +45,51 @@ #include "G4HadronValues.hh" #include "G4IntegrHadrNucleus.hh" -class G4DiffElasticHadrNucleus: public //G4HadronValues - G4IntegrHadrNucleus - { +class G4DiffElasticHadrNucleus: public G4IntegrHadrNucleus +{ - public: - G4DiffElasticHadrNucleus() : // G4HadronValues(), - G4IntegrHadrNucleus() - { - Factors(); - r0 = 1.1; // The WS's parameters - r01 = 1.16; - rAmax = 2.5; - NpointsB = 500; - } +public: + + G4DiffElasticHadrNucleus(); - ~G4DiffElasticHadrNucleus() {;} + ~G4DiffElasticHadrNucleus(); - G4double HadrNuclDifferCrSec( + G4double HadrNuclDifferCrSec( const G4DynamicParticle * aHadron, G4Nucleus * aNucleus, G4double Q2); - G4double HadrNuclDifferCrSecT( + G4double HadrNuclDifferCrSecT( const G4DynamicParticle * aHadron, G4Nucleus * aNucleus, G4double Q2, G4int Kind); - G4double Thickness(G4int A, G4double b); + G4double Thickness(G4int A, G4double b); - void GetIntegrandB(G4int Anucleus); + void GetIntegrandB(G4int Anucleus); - G4double GetIntegrandS(G4int Anucleus, G4double b, G4int Kind); + G4double GetIntegrandS(G4int Anucleus, G4double b, G4int Kind); - void GetNucleusParameters(G4Nucleus * aNucleus); + void GetNucleusParameters(G4Nucleus * aNucleus); + + G4double HadronProtonDiffCrSec(G4double Q2); - G4double MyJ0(G4double x) + void GetKinematics(const G4DynamicParticle * aHadron); + + void GetParametersHP(const G4DynamicParticle * aHadron); + + G4double LineInterpol(G4double p0, G4double p1, + G4double c0, G4double c1, + G4double p); +// ==================================================== + G4double MyJ0(G4double x) { G4double x1, x2, x3, x4, x5, x6, x7, f0, th0, res; x2 = x*x/9.0; - if(std::fabs(x)<=3) + if(std::abs(x)<=3.0) { x3 = x2*x2; x4 = x3*x2; @@ -104,8 +119,8 @@ class G4DiffElasticHadrNucleus: public //G4HadronValues } return res; } - - G4double MyI0(G4double x) +// +++++++++++++++++++++++++++++++++++++++++++++ + G4double MyI0(G4double x) { G4double p1=1.0, p2=3.5156229, p3=3.0899424, p4=1.2067492, p5=0.2659732, p6=3.360768e-2, @@ -114,7 +129,7 @@ class G4DiffElasticHadrNucleus: public //G4HadronValues q4=-1.57565e-3, q5=9.16281e-3, q6=-2.057706e-2, q7=2.635537e-2, q8=-1.647633e-2, q9=3.922377e-3; - G4double k1=3.75, ax=std::fabs(x), y=0.0, result=0.0; + G4double k1=3.75, ax=std::abs(x), y=0.0, result=0.0; if(ax1) & (N>=M)) { - Fact1 = Factorials[N]/Factorials[M]/ + Fact1 = Factorials[N]/Factorials[M]/ Factorials[N-M]; } return Fact1; } // +++++++++++++++++++++++++++++++++++++++++++++++++++ - G4double Factorial(G4int N) + G4double Factorial(G4int N) { - G4double Res; - Res = 1; - if(N == 0) return Res; + G4double Res=1; - if(N < 100) for(G4int M = 1; M<=N; M++) Res = Res*M; + if(N == 0) return Res; - if(N >= 100) Res = 2.50662827*std::exp(static_cast(-N-1))* + if(N < 100) for(G4int M = 1; M<=N; M++) Res = Res*M; + + if(N >= 100) Res = 2.50662827* + std::exp(static_cast(-N-1))* std::pow(static_cast(N+1),N+0.5)* (1+1/12/(N+1)+1/288/(N+1)/(N+1)- 139/51840/(N+1)/(N+1)/(N+1)- 571/2488320/(N+1)/(N+1)/(N+1)/(N+1)); - return Res; - } + return Res; + } -// +++++++++++++++++++++++++++++++++++++++++++++++++++ - void Factors() - { - G4int ii, ll, mm; - G4double Sum1, Fac1, Fac3, Sum3; - - Factorials[0] = 1; - - for( ii = 1; ii<250; ii++) - { - if(ii >= 100) Mnoj[ii] = 3.03; // there is the saturation - else - { - Sum1 = 0; - Fac1 = 1; - - Factorials[ii] = Factorial(ii); - - for( ll = 0; ll<=ii; ll++) - { - Fac1 = binom(ii,ll); - - Fac3 = 1; - Sum3 = 1; - for( mm = 1; mm<=ii-ll; mm++) - { - Fac3 = binom(ii-ll,mm); - Sum3 = Sum3 + 1/Fac3; - } // mm - Sum1 = Sum1 + Sum3/Fac1; - } // ll - Mnoj[ii] = Sum1; - } // else - } // ii - Mnoj[0] = 1; - - } // Factors // -------------------------------------------------------- +public: - G4double Mnoj[250], Factorials[250]; - G4double ReIntegrand[1000], ImIntegrand[1000], Thick[1000]; - G4double rAfm, rAGeV, stepB, MomentumCMN; + G4double SigTot, Slope, ReOnIm, HdrE, ConstU, Q2; + G4double ProtonM, HadronM, HadronE, Sh, PM2, HM2; - public: - - G4double R1, R2, Pnucl, Aeff, AIm, ARe, Dem, DIm, InCoh, InCohI; - G4double r0, r01, rAmax; - G4int NpointsB; - }; + G4double EcmP, EcmH, Kcm, CosCM, SqrtS, MaxT, FmaxT, DsigDt; + G4double Slope1, Slope2, Coeff1, Coeff2, IntConst, MaxTR; + G4double Slope0, Coeff0; + G4int NumbPointsB, NumbPointsT, HadrCode; + G4String HadronName; + + G4double Mnoj[250], Factorials[250]; + G4double ReIntegrand[1000], ImIntegrand[1000], Thick[1000]; + G4double rAfm, rAGeV, stepB, MomentumCMN, MomentumH; + + G4double R1, R2, Pnucl, Aeff, AIm, ARe, Dem, DIm, InCoh, InCohI; + G4double r0, r01, rAmax; + G4double BoundaryP[7], BoundaryTL[7], BoundaryTG[7]; + G4int NpointsB, HadrCodes[7], Intern; +}; #endif diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4ElasticHadrNucleusHE.hh b/source/processes/hadronic/models/coherent_elastic/include/G4ElasticHadrNucleusHE.hh index 41de356b5d..ecb6b4ca54 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4ElasticHadrNucleusHE.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4ElasticHadrNucleusHE.hh @@ -20,11 +20,22 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4ElasticHadrNucleusHE.hh,v 1.17 2005/11/23 11:24:08 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// $Id: G4ElasticHadrNucleusHE.hh,v 1.15 2005/06/10 13:28:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ + +// +// G4ElasticHadrNucleusHe header file +// +// The generator of high energy hadron-nucleus elastic scattering +// The hadron kinetic energy T > 1 GeV +// N. Starkov 2003. +// +// Modifications: +// 19.05.04 Variant for G4 6.1: The 'ApplyYourself' was changed +// 14.11.05 The HE elastic scattering on proton is added (N.Starkov) +// 23.11.05 cleanup (V.Ivanchenko) // -// G4ElasticHadrNucleusHe.hh #ifndef G4ElasticHadrNucleusHE_h #define G4ElasticHadrNucleusHE_h 1 @@ -54,35 +65,28 @@ // on the formula is changed on the integral // one - class ElasticData - { - public: - G4String hadrName; - G4int nuclAtomicNumber; - G4double TableE[ONE*AreaNumb]; - G4double TableQ2[ONQ2]; - G4double TableCrossSec[ONQ2XE*AreaNumb]; +class ElasticData +{ +public: - ElasticData() {;} - ~ElasticData(){;} + ElasticData() {}; + ~ElasticData() {}; - ElasticData (const ElasticData &t) + ElasticData (const ElasticData &t) { G4int k; - hadrName = t.hadrName; - nuclAtomicNumber = t.nuclAtomicNumber; - for(k = 0; k(-N-1))* - std::pow(static_cast(N+1),N+0.5)* - (1+1/12/(N+1)+1/288/(N+1)/(N+1)- - 139/51840/(N+1)/(N+1)/(N+1)- - 571/2488320/(N+1)/(N+1)/(N+1)/(N+1)); - return Res; } -// ++++++++++++++++++++++++++++++++++++++++++++++++++ - std::vector SetOfElasticData; - G4IonTable * MyIonTable; - G4DiffElasticHadrNucleus aDiffElHadNcls; -// G4HadFinalState FinState; + G4String hadrName; + G4int nuclAtomicNumber; + G4double TableE[ONE*AreaNumb]; + G4double TableQ2[ONQ2]; + G4double TableCrossSec[ONQ2XE*AreaNumb]; - G4int Nstep, // The number of steps on Q2 - iKindWork, // - iContr, // - iPoE; // The number of steps on E - G4int iTypeWork; - G4double aNucleon; //, -// * pTableCrSec, // The array of distr. func. -// // at all energies -// * pTableE; // The array of E values - G4double iQ2[ONQ2], // The array of Q2 values - pTableCrSec[ONQ2XE*AreaNumb], - pTableE[ONE*AreaNumb], - iIntgr[ONQ2], // The array of distr. func. - // at one energy - Factorials1[250]; // The array for factorials - G4double dEbeg1, dEend1, dQ2, maxQ2; +}; - }; // The end of the class description +class G4ElasticHadrNucleusHE : public G4DiffElasticHadrNucleus, + public G4HadronicInteraction +{ +public: + G4ElasticHadrNucleusHE(const G4ParticleDefinition * aHadron, + G4Nucleus * aNucleus); + + G4ElasticHadrNucleusHE(); + + ~G4ElasticHadrNucleusHE(); + + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, + G4Nucleus &aNucleus); + + G4double RandomElastic0(); + + G4double RandomElastic1( const G4DynamicParticle * aHadron, + const ElasticData * aData); + + void GetHadronNucleusData(G4DynamicParticle * aParticle, + G4Nucleus * aNucleus, + ElasticData & ElD ); + + G4int ReadOfData(G4ParticleDefinition * aParticle, + G4Nucleus * aNucleus); + + G4double GetQ2limit(G4double R1); + + void CreationArray(const G4DynamicParticle * aHadron, + G4Nucleus * aNucleus); + + void ArrayForHeavy(const G4DynamicParticle * aHadron, + G4Nucleus * aNucleus); + + void ArrayForLight(const G4DynamicParticle * aHadron, + G4Nucleus * aNucleus); + + G4double InterPol(G4double X1, G4double X2, G4double X3, + G4double Y1, G4double Y2, G4double Y3, + G4double X); + G4double HadronNucleusQ2(G4DynamicParticle * aHadron, + G4Nucleus & aNucleus); + +// ====================================================== + + G4float GetFt(G4double T); + G4float GetDistrFun(G4double Q2); + G4double GetQ2(G4double Ran); + G4double HadronProtonQ2(G4DynamicParticle * aHadron); + +// ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + G4double Factorial1(G4int N) + { + G4double Res=1; + + if(N == 0) return Res; + + if(N < 100) for(G4int M = 1; M<=N; M++) Res = Res*M; + + else Res = 2.50662827* + std::exp(static_cast(-N-1))* + std::pow(static_cast(N+1),N+0.5)* + (1+1/12/(N+1)+1/288/(N+1)/(N+1)- + 139/51840/(N+1)/(N+1)/(N+1)- + 571/2488320/(N+1)/(N+1)/(N+1)/(N+1)); + return Res; + } + +// ++++++++++++++++++++++++++++++++++++++++++++++++++ + + G4DynamicParticle aHad; + G4int HadrCode; + G4String HadronName; + + std::vector SetOfElasticData; + + G4IonTable * MyIonTable; + G4DiffElasticHadrNucleus aDiffElHadNcls; + + G4int Nstep, // The number of steps on Q2 + iKindWork, // + iContr, // + iPoE; // The number of steps on E + G4int iTypeWork; + G4double aNucleon; + G4double iQ2[ONQ2], // The array of Q2 values + pTableCrSec[ONQ2XE*AreaNumb], + pTableE[ONE*AreaNumb], + iIntgr[ONQ2], // The array of distr. func. + // at one energy + Factorials1[250]; // The array for factorials + G4double dEbeg1, dEend1, dQ2, maxQ2; + +}; // The end of the class description #endif diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4HadronValues.hh b/source/processes/hadronic/models/coherent_elastic/include/G4HadronValues.hh index a76699d151..d4823c599b 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4HadronValues.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4HadronValues.hh @@ -20,37 +20,27 @@ // * statement, and all its terms. * // ******************************************************************** // -// G4HadronValues.hh +// $Id: G4HadronValues.hh,v 1.9 2005/11/23 11:24:08 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// + +// +// G4HadronValues header file +// +// +// Kinematic and dynamic values +// N. Starkov 2003. +// +// Modifications: +// 14.11.05 Use PDG code instead of static particle pointers (N.Starkov) +// 23.11.05 cleanup (V.Ivanchenko) +// #ifndef G4HadronValues_h #define G4HadronValues_h 1 #include "globals.hh" #include "G4DynamicParticle.hh" -#include "G4Neutron.hh" -#include "G4Proton.hh" -#include "G4Lambda.hh" -#include "G4SigmaPlus.hh" -#include "G4SigmaMinus.hh" -#include "G4SigmaZero.hh" -#include "G4XiMinus.hh" -#include "G4XiZero.hh" -#include "G4OmegaMinus.hh" - -#include "G4AntiNeutron.hh" -#include "G4AntiProton.hh" -#include "G4AntiLambda.hh" -#include "G4AntiSigmaPlus.hh" -#include "G4AntiSigmaMinus.hh" -#include "G4AntiSigmaZero.hh" -#include "G4AntiXiMinus.hh" -#include "G4AntiXiZero.hh" -#include "G4AntiOmegaMinus.hh" - -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" #define MyPi 3.141593 #define MbToGeV2 2.568 @@ -58,20 +48,18 @@ #define MbToFm2 25.68 class G4HadronValues - { - public: +{ +public: - G4HadronValues() {;} - ~G4HadronValues() {;} + G4HadronValues(); + ~G4HadronValues(); -// protected: + void GetHadronValues(const G4DynamicParticle * aHadron); + + G4double HadrTot, HadrSlope, HadrReIm, DDSect2, DDSect3, + MomentumCM; - void GetHadronValues(const G4DynamicParticle * aHadron); - - G4double HadrTot, HadrSlope, HadrReIm, DDSect2, DDSect3, - MomentumCM; - - }; +}; #endif diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4DiffElasticHadrNucleus.cc b/source/processes/hadronic/models/coherent_elastic/src/G4DiffElasticHadrNucleus.cc index e38bd9f112..a2d4414e23 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4DiffElasticHadrNucleus.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4DiffElasticHadrNucleus.cc @@ -20,367 +20,420 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4DiffElasticHadrNucleus.cc,v 1.15 2005/06/10 13:23:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4DiffElasticHadrNucleus.cc,v 1.18 2005/11/24 19:05:56 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ -//G4DiffElasticHadrNucleus.cc +// +// G4DiffElasticHadrNucleus class +// +// High energy hadron-nucleus elastic scattering +// Kinetic energy T > 1 GeV +// N. Starkov 2003. +// +// Modifications: +// 14.11.05 The HE elastic scattering on proton is added (N.Starkov) +// 23.11.05 int -> G4int, fabs -> abs (V.Ivanchenko) +// #include "globals.hh" #include "G4DiffElasticHadrNucleus.hh" // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - void G4DiffElasticHadrNucleus:: + +G4DiffElasticHadrNucleus::G4DiffElasticHadrNucleus() : + G4IntegrHadrNucleus() +{ + Factors(); + r0 = 1.1; // The WS's parameters + r01 = 1.16; + rAmax = 2.5; + NpointsB = 500; +} + +// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +G4DiffElasticHadrNucleus::~G4DiffElasticHadrNucleus() +{;} + +// +++++++++++++++++++++++++++++++++++++++++++++++++++ +void G4DiffElasticHadrNucleus::Factors() +{ + G4int ii, ll, mm; + G4double Sum1, Fac1, Fac3, Sum3; + + Factorials[0] = 1; + + for( ii = 1; ii<250; ii++) + { + if(ii >= 100) Mnoj[ii] = 3.03; // there is the saturation + else + { + Sum1 = 0; + Fac1 = 1; + Factorials[ii] = Factorial(ii); + + for( ll = 0; ll<=ii; ll++) + { + Fac1 = binom(ii,ll); + Fac3 = 1; + Sum3 = 1; + for( mm = 1; mm<=ii-ll; mm++) + { + Fac3 = binom(ii-ll,mm); + Sum3 = Sum3 + 1/Fac3; + } // mm + Sum1 = Sum1 + Sum3/Fac1; + } // ll + Mnoj[ii] = Sum1; + } // else + } // ii + Mnoj[0] = 1; +} // Factors + +// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +void G4DiffElasticHadrNucleus:: GetNucleusParameters(G4Nucleus * aNucleus) - { - G4int Nucleus = (int)aNucleus->GetN(); + { + G4int Nucleus = (G4int)aNucleus->GetN(); - if(Nucleus == 208) - { // R1 = 20.73; R2 = 15.74. - R1 = 4.1408*std::pow(static_cast(Nucleus),0.3018); - R2 = 3.806*std::pow(Nucleus-10.068,0.2685); - Pnucl = 0.9; - Aeff = 1.1; - R1 = 19.5; - R2 = 15.74; - Pnucl = 0.4; - Aeff = 0.7; - } + if(Nucleus == 208) + { +// R1 = 20.73; R2 = 15.74. + R1 = 4.1408*std::pow(static_cast(Nucleus),0.3018); + R2 = 3.806*std::pow(Nucleus-10.068,0.2685); + Pnucl = 0.9; + Aeff = 1.1; + R1 = 19.5; + R2 = 15.74; + Pnucl = 0.4; + Aeff = 0.7; + } - else if(Nucleus == 90) - { - R1 = 16.50; - R2 = 11.62; - Pnucl = 0.4; - Aeff = 0.9; - R1 = 16.5; - R2 = 11.62; - Pnucl = 0.4; - Aeff = 0.7; - } + else if(Nucleus == 90) + { + R1 = 16.50; + R2 = 11.62; + Pnucl = 0.4; + Aeff = 0.9; + R1 = 16.5; + R2 = 11.62; + Pnucl = 0.4; + Aeff = 0.7; + } + else if(Nucleus == 58) + { + R1 = 15.0; + R2 = 9.9; + Pnucl = 0.45; + Aeff = 0.85; + } + else if(Nucleus == 16) + { + R1 = 10.50; + R2 = 5.5; + Pnucl = 0.7; + Aeff = 0.98; +// R1 = 11.3; +// R2 = 2.5; +// Pnucl = 0.75; +// Aeff = 0.9; + } + else + { + R1 = 4.45*std::pow(static_cast(Nucleus-1),0.309); + if(Nucleus == 28) + R1 = 4.25*std::pow(static_cast(Nucleus-1),0.309); + R2 = 2.3*std::pow(static_cast(Nucleus),0.36); + Pnucl = 0.176+0.00167*Nucleus+ + 8.69E-6*Nucleus*Nucleus; + Aeff = 0.9; + } - else if(Nucleus == 58) - { - R1 = 15.0; - R2 = 9.9; - Pnucl = 0.45; - Aeff = 0.85; - } - else if(Nucleus == 16) - { - R1 = 10.50; - R2 = 5.5; - Pnucl = 0.7; - Aeff = 0.98; -// R1 = 11.3; -// R2 = 2.5; -// Pnucl = 0.75; -// Aeff = 0.9; - - } - else - { - R1 = 4.45*std::pow(static_cast(Nucleus-1),0.309); - if(Nucleus == 28) - R1 = 4.25*std::pow(static_cast(Nucleus-1),0.309); - R2 = 2.3*std::pow(static_cast(Nucleus),0.36); - Pnucl = 0.176+0.00167*Nucleus+ - 8.69E-6*Nucleus*Nucleus; - Aeff = 0.9; - } - - if(Nucleus == 9) - { - R1 = 9.0; - R2 = 7.0; - Pnucl = 0.190; - Aeff = 0.9; - } + if(Nucleus == 9) + { + R1 = 9.0; + R2 = 7.0; + Pnucl = 0.190; + Aeff = 0.9; + } /* - if(Nucleus == 12) - { - R1 = 9.336; - R2 = 5.63; - Pnucl = 0.197; - Aeff = 01.0; - } + if(Nucleus == 12) + { + R1 = 9.336; + R2 = 5.63; + Pnucl = 0.197; + Aeff = 01.0; + } */ /* - if(Nucleus == 11) - { - R1 = 10.8; - R2 = 7.5; - Pnucl = 0.85; - Aeff = 1.2; - } + if(Nucleus == 11) + { + R1 = 10.8; + R2 = 7.5; + Pnucl = 0.85; + Aeff = 1.2; + } */ - if(Nucleus == 4) - { - R1 = 5.5; - R2 = 3.7; - Pnucl = 0.4; + if(Nucleus == 4) + { + R1 = 5.5; + R2 = 3.7; + Pnucl = 0.4; Aeff = 0.87; - } - } + } + } // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - G4double G4DiffElasticHadrNucleus::HadrNuclDifferCrSec( - const G4DynamicParticle * aHadron, - G4Nucleus * aNucleus, - G4double aQ2) - { + G4double G4DiffElasticHadrNucleus:: + HadrNuclDifferCrSec( + const G4DynamicParticle * aHadron, + G4Nucleus * aNucleus, + G4double aQ2) + { // ------ All external kinematical variables are in MeV ------- // ------ but internal in GeV !!!! ------ - G4double HadrEnergy = aHadron->GetTotalEnergy()/1000; // GeV + G4double HadrEnergy = aHadron->GetTotalEnergy()/1000; // GeV + G4double MassH = aHadron->GetMass()/1000; - G4int Nucleus = (int)aNucleus->GetN(); + G4int Nucleus = (G4int)aNucleus->GetN(); - if(Nucleus<4) - { - G4Exception(" This nucleus is very light for this model !!!"); - } + G4cout << "G4DiffElasticHadrNucleus:: HadrNuclDifferCrSec: " + << aHadron->GetDefinition()->GetParticleName() + << " code= " << aHadron->GetDefinition()->GetPDGEncoding() + << " nuc= " << Nucleus + << G4endl; - if(Nucleus>208) - { + if(Nucleus==2 || Nucleus == 3) + G4Exception(" This model does not work for nuclei with A=3 0r A= 4"); + + if(Nucleus>238) G4Exception(" This nucleus is very heavy for this model !!!"); - } - if(HadrEnergy < 1.4999) - { - G4cout< 1000 MeV"); -// G4cout<<" Tot00 "<GetMass()/1000; + MassN = Nucleus*0.938; + S = 2*MassN*HadrEnergy+MassN*MassN+MassH*MassH; + EcmH = (S-MassN*MassN+MassH*MassH)/2/std::sqrt(S); + MomentumCMN = std::sqrt(EcmH*EcmH-MassH*MassH); - MassH = aHadron->GetMass()/1000; - MassN = Nucleus*0.938; - S = 2*MassN*HadrEnergy+MassN*MassN+MassH*MassH; - EcmH = (S-MassN*MassN+MassH*MassH)/2/std::sqrt(S); - MomentumCMN = std::sqrt(EcmH*EcmH-MassH*MassH); - - G4double MbToB = 2.568; // from mb to GeV^-2 - G4double Pi1 = 3.1416; - G4double Stot = HadrTot*MbToB; //In GeV-2 - G4double Bhad = HadrSlope; //In GeV-2 - G4double Asq = 1+HadrReIm*HadrReIm; - G4double Rho2 = std::sqrt(Asq); - G4double Pnuclp = 0.001; - Pnuclp = Pnucl; - G4double R12 = R1*R1; - G4double R22 = R2*R2; - G4double R12B = R12+2*Bhad; - G4double R22B = R22+2*Bhad; + G4double MbToB = 2.568; // from mb to GeV^-2 + G4double Pi1 = 3.1416; + G4double Stot = HadrTot*MbToB; //In GeV-2 + G4double Bhad = HadrSlope; //In GeV-2 + G4double Asq = 1+HadrReIm*HadrReIm; + G4double Rho2 = std::sqrt(Asq); + G4double Pnuclp = 0.001; + Pnuclp = Pnucl; + G4double R12 = R1*R1; + G4double R22 = R2*R2; + G4double R12B = R12+2*Bhad; + G4double R22B = R22+2*Bhad; // G4double R12Bp = R12+20; // G4double R22Bp = R22+20; // G4double R13Bp = R12*R1/R12Bp; // G4double R23Bp = R22*R2/R22Bp; - G4double R12Ap = R12+20; - G4double R22Ap = R22+20; - G4double R13Ap = R12*R1/R12Ap; - G4double R23Ap = R22*R2/R22Ap*Pnuclp; + G4double R12Ap = R12+20; + G4double R22Ap = R22+20; + G4double R13Ap = R12*R1/R12Ap; + G4double R23Ap = R22*R2/R22Ap*Pnuclp; // G4double R23App = R22*R2/R22Ap*Pnuclp; - G4double R23dR13 = R23Ap/R13Ap; - G4double R12Apd = 2/R12Ap; - G4double R22Apd = 2/R22Ap; - G4double R12ApdR22Ap = 0.5*(R12Apd+R22Apd); + G4double R23dR13 = R23Ap/R13Ap; + G4double R12Apd = 2/R12Ap; + G4double R22Apd = 2/R22Ap; + G4double R12ApdR22Ap = 0.5*(R12Apd+R22Apd); - G4double DDSec1p = (DDSect2+DDSect3*std::log(1.06*2*HadrEnergy/R1/4)); - G4double DDSec2p = (DDSect2+DDSect3*std::log(1.06*2*HadrEnergy/ + G4double DDSec1p = (DDSect2+DDSect3*std::log(1.06*2*HadrEnergy/R1/4)); + G4double DDSec2p = (DDSect2+DDSect3*std::log(1.06*2*HadrEnergy/ std::sqrt((R12+R22)/2)/4)); - G4double DDSec3p = (DDSect2+DDSect3*std::log(1.06*2*HadrEnergy/R2/4)); + G4double DDSec3p = (DDSect2+DDSect3*std::log(1.06*2*HadrEnergy/R2/4)); - G4double Norm = (R12*R1-Pnucl*R22*R2)*Aeff; - G4double Normp = (R12*R1-Pnuclp*R22*R2)*Aeff; - G4double R13 = R12*R1/R12B; - G4double R23 = Pnucl*R22*R2/R22B; - G4double Unucl = Stot/2/Pi1/Norm*R13; - G4double UnuclScr = Stot/2/Pi1/Normp*R13Ap; - G4double SinFi = HadrReIm/Rho2; - G4double FiH = std::asin(SinFi); - G4double N = -1; - G4double N2 = R23/R13; + G4double Norm = (R12*R1-Pnucl*R22*R2)*Aeff; + G4double Normp = (R12*R1-Pnuclp*R22*R2)*Aeff; + G4double R13 = R12*R1/R12B; + G4double R23 = Pnucl*R22*R2/R22B; + G4double Unucl = Stot/2/Pi1/Norm*R13; + G4double UnuclScr = Stot/2/Pi1/Normp*R13Ap; + G4double SinFi = HadrReIm/Rho2; + G4double FiH = std::asin(SinFi); + G4double N = -1; + G4double N2 = R23/R13; - G4double ImElasticAmpl0 = 0; - G4double ReElasticAmpl0 = 0; + G4double ImElasticAmpl0 = 0; + G4double ReElasticAmpl0 = 0; - G4double exp1; - G4double N4; - G4double Prod1, Tot1=0, medTot, DTot1, DmedTot; - G4int i; + G4double exp1; + G4double N4; + G4double Prod1, Tot1=0, medTot, DTot1, DmedTot; + G4int i; - for( i=1; i<=Nucleus; i++) - { - N = -N*Unucl*(Nucleus-i+1)/i*Rho2; - N4 = 1; - Prod1 = std::exp(-Q2/i*R12B/4)/i*R12B; - medTot = R12B/i; + for( i=1; i<=Nucleus; i++) + { + N = -N*Unucl*(Nucleus-i+1)/i*Rho2; + N4 = 1; + Prod1 = std::exp(-Q2/i*R12B/4)/i*R12B; + medTot = R12B/i; - for(G4int l=1; l<=i; l++) - { - exp1 = l/R22B+(i-l)/R12B; - N4 = -N4*(i-l+1)/l*N2; - Prod1 = Prod1+N4/exp1*std::exp(-Q2/exp1/4); - medTot = medTot+N4/exp1; - } // end l + for(G4int l=1; l<=i; l++) + { + exp1 = l/R22B+(i-l)/R12B; + N4 = -N4*(i-l+1)/l*N2; + Prod1 = Prod1+N4/exp1*std::exp(-Q2/exp1/4); + medTot = medTot+N4/exp1; + } // end l - ReElasticAmpl0 = ReElasticAmpl0+Prod1*N*std::sin(FiH*i); - ImElasticAmpl0 = ImElasticAmpl0+Prod1*N*std::cos(FiH*i); - Tot1 = Tot1+medTot*N*std::cos(FiH*i); - if(std::fabs(Prod1*N/ImElasticAmpl0) < 0.000001) break; - } // i + ReElasticAmpl0 = ReElasticAmpl0+Prod1*N*std::sin(FiH*i); + ImElasticAmpl0 = ImElasticAmpl0+Prod1*N*std::cos(FiH*i); + Tot1 = Tot1+medTot*N*std::cos(FiH*i); + if(std::abs(Prod1*N/ImElasticAmpl0) < 0.000001) break; + } // i ImElasticAmpl0 = ImElasticAmpl0*Pi1/2.568; // The amplitude in mB ReElasticAmpl0 = ReElasticAmpl0*Pi1/2.568; // The amplitude in mB Tot1 = Tot1*Pi1*2.0/2.568; - G4double N1p = 1; - G4double Din1 = 0.5*(R13Ap*R13Ap*std::exp(-Q2/8*R12Ap)/2*R12Ap/2*DDSec1p- - 2*R23Ap*R13Ap/2/R12ApdR22Ap*std::exp(-Q2/4/R12ApdR22Ap)*DDSec2p+ - R23Ap*R23Ap/2*R22Ap/2*std::exp(-Q2/8*R22Ap)*DDSec3p); // at i=0 + G4double N1p = 1; + G4double Din1 = 0.5*(R13Ap*R13Ap*std::exp(-Q2/8*R12Ap)/2*R12Ap/2*DDSec1p- + 2*R23Ap*R13Ap/2/R12ApdR22Ap*std::exp(-Q2/4/R12ApdR22Ap)*DDSec2p+ + R23Ap*R23Ap/2*R22Ap/2*std::exp(-Q2/8*R22Ap)*DDSec3p); // at i=0 - DTot1 = 0.5*(R13Ap*R13Ap/2*R12Ap/2*DDSec1p- - 2*R23Ap*R13Ap/2/R12ApdR22Ap*DDSec2p+ - R23Ap*R23Ap/2*R22Ap/2*DDSec3p); // at i=0 - -// G4cout<<" DTot00 "<95 && HadrEnergy>1000) {Din1=0; goto tam;} - G4double exp1p; - G4double exp2p; - G4double exp3p; - G4double N2p; - G4double Din2, BinCoeff; + G4double exp1p; + G4double exp2p; + G4double exp3p; + G4double N2p; + G4double Din2, BinCoeff; - BinCoeff = 1; + BinCoeff = 1; - for( i = 1; i<= Nucleus-2; i++) - { - N1p = -N1p*UnuclScr*(Nucleus-i-1)/i*Rho2; - N2p = 1; - Din2 = 0; - DmedTot = 0; - for(G4int l = 0; l<=i; l++) - { - if(l == 0) BinCoeff = 1; - else if(l !=0 ) BinCoeff = BinCoeff*(i-l+1)/l; + for( i = 1; i<= Nucleus-2; i++) + { + N1p = -N1p*UnuclScr*(Nucleus-i-1)/i*Rho2; + N2p = 1; + Din2 = 0; + DmedTot = 0; + for(G4int l = 0; l<=i; l++) + { + if(l == 0) BinCoeff = 1; + else if(l !=0 ) BinCoeff = BinCoeff*(i-l+1)/l; - exp1 = l/R22B+(i-l)/R12B; - exp1p = exp1+R12Apd; - exp2p = exp1+R12ApdR22Ap; - exp3p = exp1+R22Apd; + exp1 = l/R22B+(i-l)/R12B; + exp1p = exp1+R12Apd; + exp2p = exp1+R12ApdR22Ap; + exp3p = exp1+R22Apd; - Din2 = Din2 + N2p*BinCoeff* - (R13Ap*R13Ap/2/exp1p*std::exp(-Q2/4/exp1p)*DDSec1p- - 2*R13Ap*R23Ap/2/exp2p*std::exp(-Q2/4/exp2p)*DDSec2p+ - R23Ap*R23Ap/2/exp3p*std::exp(-Q2/4/exp3p)*DDSec3p); + Din2 = Din2 + N2p*BinCoeff* + (R13Ap*R13Ap/2/exp1p*std::exp(-Q2/4/exp1p)*DDSec1p- + 2*R13Ap*R23Ap/2/exp2p*std::exp(-Q2/4/exp2p)*DDSec2p+ + R23Ap*R23Ap/2/exp3p*std::exp(-Q2/4/exp3p)*DDSec3p); - DmedTot = DmedTot + N2p*BinCoeff* - (R13Ap*R13Ap/2/exp1p*DDSec1p- - 2*R13Ap*R23Ap/2/exp2p*DDSec2p+ - R23Ap*R23Ap/2/exp3p*DDSec3p); + DmedTot = DmedTot + N2p*BinCoeff* + (R13Ap*R13Ap/2/exp1p*DDSec1p- + 2*R13Ap*R23Ap/2/exp2p*DDSec2p+ + R23Ap*R23Ap/2/exp3p*DDSec3p); - N2p = -N2p*R23dR13; - } // l + N2p = -N2p*R23dR13; + } // l - Din1 = Din1+Din2*N1p*Mnoj[i]/(i+2)/(i+1)*std::cos(FiH*i); - DTot1 = DTot1+DmedTot*N1p*Mnoj[i]/(i+2)/(i+1)*std::cos(FiH*i); - if(std::fabs(Din2*N1p/Din1) < 0.000001) break; - } // i + Din1 = Din1+Din2*N1p*Mnoj[i]/(i+2)/(i+1)*std::cos(FiH*i); + DTot1 = DTot1+DmedTot*N1p*Mnoj[i]/(i+2)/(i+1)*std::cos(FiH*i); + + if(std::abs(Din2*N1p/Din1) < 0.000001) break; + } // i - Din1 = -1*Din1*Nucleus*(Nucleus-1) - /2/Pi1/Normp/2/Pi1/Normp*16*Pi1*Pi1; + Din1 = -1*Din1*Nucleus*(Nucleus-1) + /2/Pi1/Normp/2/Pi1/Normp*16*Pi1*Pi1; - DTot1 = 1*DTot1*Nucleus*(Nucleus-1) - /2/Pi1/Normp/2/Pi1/Normp*16*Pi1*Pi1; + DTot1 = 1*DTot1*Nucleus*(Nucleus-1) + /2/Pi1/Normp/2/Pi1/Normp*16*Pi1*Pi1; /// Din1 *= 0; // ---------------- dSigma/dOmegaCM, mb/Ster ----------------- // tam: - G4double Corr0=Tot00/Tot1/1.0; // Corr1=DTot00/DTot1/1.0; + G4double Corr0=Tot00/Tot1/1.0; // Corr1=DTot00/DTot1/1.0; - ImElasticAmpl0 *= Corr0; + ImElasticAmpl0 *= Corr0; // Din1 *= Corr1; - G4double DiffCrSec2 = (ReElasticAmpl0*ReElasticAmpl0+ + G4double DiffCrSec2 = (ReElasticAmpl0*ReElasticAmpl0+ (ImElasticAmpl0+Din1)* (ImElasticAmpl0+Din1))* 2.568/4/Pi1/Pi1 *MomentumCMN*MomentumCMN; - AIm = ImElasticAmpl0; - ARe = ReElasticAmpl0; - DIm = Din1; - -// if(Q2<0.001) - { -// G4cout<<" DTot00 "<200 && ImpactPar>59 && ImpactPar<60 ) - G4cout<<" Int. S: S "<GetTotalEnergy()/1000; // GeV - G4int Nucleus = (int)aNucleus->GetN(); + G4int Nucleus = (G4int)aNucleus->GetN(); + G4double MassH = aHadron->GetMass()/1000; - if(Nucleus<4) + G4cout << "G4DiffElasticHadrNucleus:: HadrNuclDifferCrSec: " + << aHadron->GetDefinition()->GetParticleName() + << " code= " << aHadron->GetDefinition()->GetPDGEncoding() + << " nuc= " << Nucleus + << G4endl; + + + if(Nucleus==2 || Nucleus==3) G4Exception(" This nucleus is very light for this model !!!"); - if(Nucleus>208) + if(Nucleus>238) G4Exception(" This nucleus is very heavy for this model !!!"); -// G4cout<<" Energy (T) "<(Nucleus), 0.3333); r0 = 1.16*(1.0-1.16/Re/Re); } - - MassH = aHadron->GetMass()/1000; +/* +// MassH = aHadron->GetMass()/1000; MassN = Nucleus*0.938; S = 2*MassN*HadrEnergy+MassN*MassN+MassH*MassH; EcmH = (S-MassN*MassN+MassH*MassH)/2/std::sqrt(S); MomentumCMN = std::sqrt(EcmH*EcmH-MassH*MassH); - +*/ G4int kk; G4double ValB; G4double ReIntSumm=0.0, ImIntSumm=0.0, Section; if(Kind == 0) { + G4double S, MassN, EcmH; MassH = aHadron->GetMass()/1000; MassN = Nucleus*0.938; S = 2*MassN*HadrEnergy+MassN*MassN+MassH*MassH; @@ -530,12 +576,11 @@ stepB = rAmax*rAGeV/(NpointsB-1); GetIntegrandB(Nucleus); - -// G4cout<GetDefinition()->GetParticleName(); + GetHadronValues(aHadron); + + SigTot = HadrTot; + ReOnIm = HadrReIm; + + if(Slope==0) Slope = HadrSlope; + + IntConst = (1-Coeff1)/Slope; + + ProtonM = 0.9383; + HadronE = aHadron->GetTotalEnergy()/1000; // GeV + HdrE = HadronE; + MomentumH = aHadron->GetTotalMomentum()/1000; // GeV + HadronM = aHadron->GetMass()/1000.0; // GeV + + PM2 = ProtonM*ProtonM; + HM2 = HadronM*HadronM; + Sh = 2.0*ProtonM*HadronE+PM2+HM2; // GeV + SqrtS = std::sqrt(Sh); + ConstU = 2*PM2+2*HM2-Sh; + + EcmH = (Sh+HM2-PM2)/2/SqrtS; + EcmP = (Sh-HM2+PM2)/2/SqrtS; + + Kcm = sqrt(EcmH*EcmH-HM2); + MaxT = 4*Kcm*Kcm; + + BoundaryP[0]=9.0; BoundaryTG[0]=5.0;BoundaryTL[0]=MaxT/2.0; + BoundaryP[1]=20.0;BoundaryTG[1]=1.5;BoundaryTL[1]=MaxT; + BoundaryP[2]=4.0; BoundaryTG[2]=1.0;BoundaryTL[2]=1.5; + BoundaryP[3]=4.0; BoundaryTG[3]=3.0;BoundaryTL[3]=MaxT; + BoundaryP[4]=4.0; BoundaryTG[4]=3.0;BoundaryTL[4]=MaxT; + BoundaryP[5]=5.0; BoundaryTG[5]=2.0;BoundaryTL[5]=MaxT; + BoundaryP[6]=4.0; BoundaryTG[6]=1.5;BoundaryTL[6]=3.0; + + HadrCodes[0] = 2212; HadrCodes[1] = 2112; + HadrCodes[2] = -2212; HadrCodes[3] = 211; + HadrCodes[4] = -211; HadrCodes[5] = 321; + HadrCodes[6] = -321; + + HadrCode = aHadron->GetDefinition()->GetPDGEncoding(); + + G4int NumberH=0; + + while(HadrCode!=HadrCodes[NumberH]) NumberH++; + + if(MomentumHGetDefinition()->GetPDGEncoding(); + HadrP = aHadron->GetTotalMomentum()/1000; + + switch(HadrCode) + { + case 2212 : + case 3122 : + case 3222 : + case 3112 : + case 3212 : + case 3312 : + case 3322 : + case 3334 : + { + G4double EnP[6]={1.5,3.0,5.0,9.0,14.0,19.0}; + G4double C0P[6]={0.15,0.02,0.06,0.08,0.0003,0.0002}; + G4double C1P[6]={0.05,0.02,0.03,0.025,0.0,0.0}; + G4double B0P[6]={1.5,2.5,3.0,4.5,1.4,1.25}; + G4double B1P[6]={5.0,1.0,3.5,4.0,4.8,4.8}; + + if(BoundaryP[0]EnP[iStep]) iStep++; + + Coeff0 = LineInterpol(EnP[iStep], EnP[iStep-1], + C0P[iStep], C0P[iStep-1], + HadrP); + + Coeff1 = LineInterpol(EnP[iStep], EnP[iStep-1], + C1P[iStep], C1P[iStep-1], + HadrP); + + Slope0 = LineInterpol(EnP[iStep], EnP[iStep-1], + B0P[iStep], B0P[iStep-1], + HadrP); + + Slope1 = LineInterpol(EnP[iStep], EnP[iStep-1], + B1P[iStep], B1P[iStep-1], + HadrP); + } // else + } break; // case 2212 + + case 2112 : + case -2112 : + { + G4double EnN[5]={1.5,5.0,10.0,14.0,20.0}; + G4double C0N[5]={0.0,0.0,0.02,0.02,0.01}; + G4double C1N[5]={0.06,0.008,0.0015,0.001,0.0003}; + G4double B0N[5]={1.5,2.5,3.8,3.8,3.5}; + G4double B1N[5]={1.5,2.2,3.6,4.5,4.8}; + + if(BoundaryP[1]EnN[iStep]) iStep++; + + Coeff0 = LineInterpol(EnN[iStep], EnN[iStep-1], + C0N[iStep], C0N[iStep-1], + HadrP); + + Coeff1 = LineInterpol(EnN[iStep], EnN[iStep-1], + C1N[iStep], C1N[iStep-1], + HadrP); + + Slope0 = LineInterpol(EnN[iStep], EnN[iStep-1], + B0N[iStep], B0N[iStep-1], + HadrP); + + Slope1 = LineInterpol(EnN[iStep], EnN[iStep-1], + B1N[iStep], B1N[iStep-1], + HadrP); + Coeff2 = 0.8/HadrP/HadrP; + Slope2 = 5; + } // else + } break; // case 2112 + + case -2212 : + case -3122 : + case -3222 : + case -3112 : + case -3212 : + case -3312 : + case -3322 : + case -3334 : + { + G4double EnP[2]={1.5,4.0}; + G4double C0P[2]={0.001,0.0005}; + G4double C1P[2]={0.003,0.001}; + G4double B0P[2]={2.5,4.5}; + G4double B1P[2]={1.0,4.0}; + + if(BoundaryP[2]EnP[iStep]) iStep++; + + Coeff0 = LineInterpol(EnP[iStep], EnP[iStep-1], + C0P[iStep], C0P[iStep-1], + HadrP); + + Coeff1 = LineInterpol(EnP[iStep], EnP[iStep-1], + C1P[iStep], C1P[iStep-1], + HadrP); + + Slope0 = LineInterpol(EnP[iStep], EnP[iStep-1], + B0P[iStep], B0P[iStep-1], + HadrP); + + Slope1 = LineInterpol(EnP[iStep], EnP[iStep-1], + B1P[iStep], B1P[iStep-1], + HadrP); + } // else + + Coeff2=0.0; + Slope2=5.0; + } break; // case -2212 + + case 211 : + { + G4double EnPP[4]={1.0,2.0,3.0,4.0}; + G4double C0PP[4]={0.0,0.0,0.0,0.0}; + G4double C1PP[4]={0.15,0.08,0.02,0.01}; + G4double B0PP[4]={1.5,2.8,3.8,3.8}; + G4double B1PP[4]={0.8,1.6,3.6,4.6}; + + if(BoundaryP[3]EnPP[iStep]) iStep++; + + Coeff0 = LineInterpol(EnPP[iStep], EnPP[iStep-1], + C0PP[iStep], C0PP[iStep-1], + HadrP); + + Coeff1 = LineInterpol(EnPP[iStep], EnPP[iStep-1], + C1PP[iStep], C1PP[iStep-1], + HadrP); + + Slope0 = LineInterpol(EnPP[iStep], EnPP[iStep-1], + B0PP[iStep], B0PP[iStep-1], + HadrP); + + Slope1 = LineInterpol(EnPP[iStep], EnPP[iStep-1], + B1PP[iStep], B1PP[iStep-1], + HadrP); + Coeff2 = 0.02/HadrP; + Slope2 = 5; + } // else + } break; // case 211 + + case -211 : + { + G4double EnPP[4]={1.0,2.0,3.0,4.0}; + G4double C0PP[4]={0.0,0.0,0.0,0.0}; + G4double C1PP[4]={0.15,0.08,0.02,0.01}; + G4double B0PP[4]={1.5,2.8,3.8,3.8}; + G4double B1PP[4]={0.8,1.6,3.6,4.6}; + + if(BoundaryP[4]EnPP[iStep]) iStep++; + + Coeff0 = LineInterpol(EnPP[iStep], EnPP[iStep-1], + C0PP[iStep], C0PP[iStep-1], + HadrP); + + Coeff1 = LineInterpol(EnPP[iStep], EnPP[iStep-1], + C1PP[iStep], C1PP[iStep-1], + HadrP); + + Slope0 = LineInterpol(EnPP[iStep], EnPP[iStep-1], + B0PP[iStep], B0PP[iStep-1], + HadrP); + + Slope1 = LineInterpol(EnPP[iStep], EnPP[iStep-1], + B1PP[iStep], B1PP[iStep-1], + HadrP); + Coeff2 = 0.02/HadrP; + Slope2 = 5; + } // else + } break; // case -211 + + case 321 : + { + G4double EnK[4]={1.4,2.33,3.0,5.0}; + G4double C0K[4]={0.0,0.0,0.0,0.0}; + G4double C1K[4]={0.01,0.007,0.005,0.003}; + G4double B0K[4]={1.5,2.0,3.8,3.8}; + G4double B1K[4]={1.6,1.6,1.6,1.6}; + + if(BoundaryP[5]EnK[iStep]) iStep++; + + Coeff0 = LineInterpol(EnK[iStep], EnK[iStep-1], + C0K[iStep], C0K[iStep-1], + HadrP); + + Coeff1 = LineInterpol(EnK[iStep], EnK[iStep-1], + C1K[iStep], C1K[iStep-1], + HadrP); + + Slope0 = LineInterpol(EnK[iStep], EnK[iStep-1], + B0K[iStep], B0K[iStep-1], + HadrP); + + Slope1 = LineInterpol(EnK[iStep], EnK[iStep-1], + B1K[iStep], B1K[iStep-1], + HadrP); + Coeff2 = 0.34/HadrP/HadrP/HadrP; + Slope2 = 5; + } // else + } break; // case 321 + + case -321 : + { + G4double EnKM[2]={1.4,4.0}; + G4double C0KM[2]={0.006,0.002}; + G4double C1KM[2]={0.00,0.00}; + G4double B0KM[2]={2.5,3.5}; + G4double B1KM[2]={1.6,1.6}; + + if(BoundaryP[6]EnKM[iStep]) iStep++; + + Coeff0 = LineInterpol(EnKM[iStep], EnKM[iStep-1], + C0KM[iStep], C0KM[iStep-1], + HadrP); + + Coeff1 = LineInterpol(EnKM[iStep], EnKM[iStep-1], + C1KM[iStep], C1KM[iStep-1], + HadrP); + + Slope0 = LineInterpol(EnKM[iStep], EnKM[iStep-1], + B0KM[iStep], B0KM[iStep-1], + HadrP); + + Slope1 = LineInterpol(EnKM[iStep], EnKM[iStep-1], + B1KM[iStep], B1KM[iStep-1], + HadrP); + Coeff2 = 0.01/HadrP/HadrP/HadrP; + Slope2 = 5; + } // else + } break; // case -321 + } + } +// ++++++++++++++++++++++++++++++++++++++++ + G4double G4DiffElasticHadrNucleus:: + LineInterpol(G4double p1, G4double p2, + G4double c1, G4double c2, + G4double p) + { + G4double c; + + c = c1+(p-p1)/(p2-p1)*(c2-c1); + return c; + } +// ++++++++++++++++++++++++++++++++++++++++ /* End of file */ diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4ElasticHadrNucleusHE.cc b/source/processes/hadronic/models/coherent_elastic/src/G4ElasticHadrNucleusHE.cc index 608af092b2..b408d9ed09 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4ElasticHadrNucleusHE.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4ElasticHadrNucleusHE.cc @@ -21,97 +21,107 @@ // ******************************************************************** // // -// $Id: G4ElasticHadrNucleusHE.cc,v 1.20 2005/06/13 10:57:18 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ElasticHadrNucleusHE.cc,v 1.25 2005/11/28 18:00:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// G4ElasticHadrNucleusHE.cc +// G4ElasticHadrNucleusHE class // +// +// The generator of high energy hadron-nucleus elastic scattering +// The hadron kinetic energy T > 1 GeV +// N. Starkov 2003. +// +// Modifications: // 19.05.04 Variant for G4 6.1: The 'ApplyYourself' was changed +// 14.11.05 The HE elastic scattering on proton is added (N.Starkov) +// 23.11.05 int -> G4int, fabs -> abs (V.Ivanchenko) +// #include "G4ElasticHadrNucleusHE.hh" #include "Randomize.hh" -#include +#include #include #include #include "G4ios.hh" -#include "G4ParticleTable.hh" +#include "G4ParticleTable.hh" - using namespace std; +using namespace std; - G4ElasticHadrNucleusHE::G4ElasticHadrNucleusHE() +G4ElasticHadrNucleusHE::G4ElasticHadrNucleusHE() : G4DiffElasticHadrNucleus() - { - ; - } +{;} // +++++++ The constructor for the preparation of data +++++++ - G4ElasticHadrNucleusHE:: +G4ElasticHadrNucleusHE:: G4ElasticHadrNucleusHE(const G4ParticleDefinition * aHadron1, G4Nucleus * aNucleus) - : G4DiffElasticHadrNucleus(), G4HadronicInteraction() - { + : G4DiffElasticHadrNucleus(), G4HadronicInteraction() +{ // ------------- here all variables are in MeV --------------- - G4int ii, kk, ik; - - iKindWork = 3; - iPoE = 5; - Nstep = ONQ2; + G4int ii, kk, ik; + + iKindWork = 3; + iPoE = 5; + Nstep = ONQ2; - G4ParticleDefinition * aHadron = const_cast(aHadron1); - G4String sNameHdr = aHadron->GetParticleName(); - G4int iNnucl = (int) aNucleus->GetN(); - G4double Energies[5] = {1.5, 2.0, 4.0, 6.0, 10.0}; + G4ParticleDefinition * aHadron = + const_cast(aHadron1); - if(iNnucl<4) - { + G4String sNameHdr = aHadron->GetParticleName(); + G4int iNnucl = (G4int) aNucleus->GetN(); + G4double Energies[5]; // = {1.95, 2.0, 4.0, 6.0, 10.0}; + G4double Kinetic[5] = {1.0, 1.5, 2.5, 4.0, 6.0}; + + if(iNnucl==1) return; + + if(iNnucl==2 || iNnucl==3) G4Exception(" This nucleus is very light for this model !!!"); - } - if(iNnucl>208) - { + if(iNnucl>238) G4Exception(" This nucleus is very heavy for this model !!!"); - } - MyIonTable = const_cast(G4ParticleTable::GetParticleTable()->GetIonTable()); +// MyIonTable = const_cast +// (G4ParticleTable::GetParticleTable()->GetIonTable()); - Factorials1[0] = 1; - for( ii = 1; ii<110; ii++) + Factorials1[0] = 1; + for( ii = 1; ii<110; ii++) Factorials1[ii] = Factorial1(ii); - G4DynamicParticle * innerHadron = new G4DynamicParticle(); - innerHadron->SetDefinition(aHadron); + G4DynamicParticle * innerHadron = new G4DynamicParticle(); + innerHadron->SetDefinition(aHadron); - G4ThreeVector inVector(0.,0.,0.); + G4ThreeVector inVector(0.,0.,0.); - G4double mHadr = aHadron->GetPDGMass(); // MeV - G4double curE, curP; + G4double mHadr = aHadron->GetPDGMass(); // MeV + G4double curE, curP; + + for(ii=0; iiSetDefinition(aHadron); + innerHadron->SetDefinition(aHadron); - G4double dPower=1000.0; + G4double dPower=1000.0; G4cout<SetMomentum(inVector); + for( ik = 0; ikSetMomentum(inVector); // ------ The creating of the distribution function array ------ - CreationArray(innerHadron, aNucleus); + CreationArray(innerHadron, aNucleus); + + for( kk = 0; kkGetParticleName(); - G4int iNnucl = (int) aNucleus->GetN(); - if(iNnucl<4) - { +G4int G4ElasticHadrNucleusHE::ReadOfData(G4ParticleDefinition * aHadron, + G4Nucleus * aNucleus) +{ + G4int ii, kk, ik; + G4String sNameHdr = aHadron->GetParticleName(); + G4int iNnucl = (G4int) aNucleus->GetN(); + + if(iNnucl==2 || iNnucl==3) G4Exception(" This nucleus is very light for this model !!!"); - } - if(iNnucl>208) + if(iNnucl>238) + G4Exception(" This nucleus is very heavy for this model !!!"); + + G4String sPath; + + if(getenv("G4ELASTICDATA")) { - G4Exception(" This nucleus is very heavy for this model !!!"); - } + sPath = getenv("G4ELASTICDATA"); + sPath = sPath+"/Elastic/"; + } + else sPath = "./Elastic/"; - G4String sPath; - - if(getenv("G4ELASTICDATA")) - { - sPath = getenv("G4ELASTICDATA"); - sPath = sPath+"/Elastic/"; - } - else sPath = "./Elastic/"; - -// G4cout<<" Path : "<(G4ParticleTable::GetParticleTable()->GetIonTable()); +// MyIonTable = const_cast +// (G4ParticleTable::GetParticleTable()->GetIonTable()); - GetNucleusParameters(aNucleus); + GetNucleusParameters(aNucleus); - iContr = iPoE; - Nstep = ONQ2; - iKindWork = 4; -// G4cout<<" R1 (1) "<GetN(); + G4String str = sNameFile.str(); + std::ifstream TestFile(str, std::ios::in); + TestFile.setf(std::ios::scientific); - std::ifstream TestFile(sNameFile.str(), std::ios::in); - TestFile.setf(std::ios::scientific); - - if(TestFile) - { + if(TestFile) + { ElasticData ElD; - if(getenv("HEElastic_debug")) G4cout<<" The file exists "<> iPoE; + TestFile >> iPoE; - G4double dPower; + G4double dPower; - for(ik=0; ik> ElD.TableE[kk+ik*iPoE]; + for(kk=0; kk> ElD.TableE[kk+ik*iPoE]; - for(ii=0; ii> ElD.TableCrossSec[kk*ONQ2+ii+ik*ONQ2XE]; -// G4cout<<" iQ2 "<GetDefinition(); - G4String sHadron; - - G4cout<<" Name "<GetParticleName()<GetParticleName(); - - if(sHadron == "proton" || sHadron == "neutron") - sHadron="Nucleon"; - - else if(sHadron == "anti_proton" || sHadron == "anti_neutron") - sHadron="antiNucleon"; - - if(dHadron == G4Proton::Proton()|| - dHadron == G4Neutron::Neutron()) - sHadron="Nucleon"; - - if(dHadron == G4Proton::Proton()|| - dHadron == G4Neutron::Neutron()) - sHadron="Nucleon"; - - else if(dHadron == G4AntiProton::AntiProton()|| - dHadron == G4AntiNeutron::AntiNeutron()) - sHadron="AntiNucleon"; - - else if(dHadron == G4PionPlus::PionPlus()) - sHadron="PionPlus"; - - else if(dHadron == G4PionMinus::PionMinus()) - sHadron="PionMinus"; - - else if(dHadron == G4KaonPlus::KaonPlus()) - sHadron="KaonPlus"; - - else if(dHadron == G4KaonMinus::KaonMinus()) - sHadron="KaonMinus"; - - else if(dHadron == G4Lambda::Lambda()) - sHadron="Lambda"; - - else if(dHadron == G4AntiLambda::AntiLambda()) - sHadron="AntiLambda"; - - else if(dHadron == G4SigmaPlus::SigmaPlus()) - sHadron="SigmaPlus"; - - else if(dHadron == G4SigmaMinus::SigmaMinus()) - sHadron="SigmaMinus"; - - else if(dHadron == G4SigmaZero::SigmaZero()) - sHadron="SigmaZero"; - - else if(dHadron == G4AntiSigmaPlus::AntiSigmaPlus()) - sHadron="AntiSigmaPlus"; - - else if(dHadron == G4AntiSigmaMinus::AntiSigmaMinus()) - sHadron="AntiSigmaMinus"; - - else if(dHadron == G4AntiSigmaZero::AntiSigmaZero()) - sHadron="AntiSigmaZero"; - - else if(dHadron == G4XiMinus::XiMinus()) - sHadron="XiMinus"; - - else if(dHadron == G4XiZero::XiZero()) - sHadron="XiZero"; - - else if(dHadron == G4AntiXiMinus::AntiXiMinus()) - sHadron="AntiXiMinus"; - - else if(dHadron == G4AntiXiZero::AntiXiZero()) - sHadron="AntiXiZero"; - - else if(dHadron == G4OmegaMinus::OmegaMinus()) - sHadron="OmegaMinus"; - - else if(dHadron == G4AntiOmegaMinus::AntiOmegaMinus()) - sHadron="AntiOmegaMinus"; - - else { - G4cout << " There is not method for the hadron " << - dHadron->GetParticleName() << G4endl; - } - return sHadron; - } // ======================================================== -// ++++++++++++++++++ ApplayYourself ++++++++++++++++++++ - G4HadFinalState * - G4ElasticHadrNucleusHE::ApplyYourself( - const G4HadProjectile &aHadron, - G4Nucleus &aNucleus) - { - G4int nN, nZ; - G4IonTable * MyIonTable = const_cast(G4ParticleTable::GetParticleTable()->GetIonTable()); +void G4ElasticHadrNucleusHE:: + GetHadronNucleusData(G4DynamicParticle * aParticle, + G4Nucleus * aNucleus, + ElasticData & ElD) +{ + ElD.Clean(); - iContr = 133; + G4int nN = (G4int) aNucleus->GetN(); + G4String hadrName = + aParticle->GetDefinition()->GetParticleName(); - if(iContr==137) - G4cout<GetDefinition(); - G4Nucleus * aNucl = &aNucleus; + G4int SizeData = SetOfElasticData.size(); - G4double hadrMass; - G4String hadrName; - - theParticleChange.Clear(); - -// ------------------------------------------- - G4DynamicParticle * aParticle = new G4DynamicParticle(); - - hadrMass = aHadron.GetDefinition()->GetPDGMass(); - hadrName = aHadron.GetDefinition()->GetParticleName(); - - if(iContr==137) - G4cout<<" In Apply: HadMass HadName "<SetDefinition(hadrDef); - aParticle->SetMomentum(hadrMomentum); - - G4double inLabMom = aHadron.GetTotalMomentum(); // MeV - G4double inEnHadr = aHadron.GetTotalEnergy(); // MeV - - if(iContr==137) - G4cout<<" Hadr: Energy TotMom "<GetN(); - nZ = (int) aNucl->GetZ(); - - G4ParticleDefinition * secNuclDef; - G4DynamicParticle * secNuclDyn = new G4DynamicParticle(); - - secNuclDef = MyIonTable->GetIon(nZ, nN); - secNuclDyn->SetDefinition(secNuclDef); -// ------------------------------------------- - size_t SizeData = SetOfElasticData.size(); - - G4int NumberOfRecord = 0; - -// G4cout<<" Appl SizeData 1: "< 0) - ElD = SetOfElasticData[NumberOfRecord-1]; - + if(NumberOfRecord > 0) + { + ElD = SetOfElasticData[NumberOfRecord-0]; + } else { - G4int TestFile = ReadOfData(hadrDef, &aNucleus); + G4int TestFile = ReadOfData(PartDef, aNucleus); + SizeData = SetOfElasticData.size(); + NumberOfRecord = SizeData-1; + if(TestFile < 0) - { -// G4cout<<" File for elastic scattering of hadron " -// <GetDefinition()->GetParticleName()<(aHadron.GetDefinition()); + // hadrMass = hadrDef->GetPDGMass(); + // hadrName = hadrDef->GetParticleName(); + + G4ThreeVector hadrMomentum = aHadron.Get4Momentum().vect(); + + G4DynamicParticle * aParticle = new G4DynamicParticle(); + aParticle->SetDefinition(hadrDef); + aParticle->SetMomentum(hadrMomentum); + /* + G4double inLabMom = aHadron.GetTotalMomentum(); // MeV + G4double inEnHadr = aHadron.GetTotalEnergy(); // MeV + + if(iContr==137) + G4cout<<" Hadr: Energy TotMom "<GetN(); + G4int nA = (G4int) A; + G4int nZ = (G4int) (aNucl->GetZ()+0.5); + + G4ParticleDefinition * secNuclDef = 0; + + if(nZ == 1 && nA == 1) { + secNuclDef = G4Proton::Proton(); + } else { + if(G4UniformRand()FindIon(nZ,nA,0,nZ); + } + + G4DynamicParticle * secNuclDyn = new G4DynamicParticle(); + secNuclDyn->SetDefinition(secNuclDef); +// ---------------------------------------------------- +// ----------------_ Randomization of Q2 as dSig/dt -------------- +// if(iKindWork == 0) ranQ2 = RandomElastic0(aParticle, aNucl); +// else + + G4double ranQ2; + + if(nA>1) + { + ElasticData ElD; + + GetHadronNucleusData(aParticle, aNucl, ElD); + ranQ2 = RandomElastic1(aParticle, & ElD); + } + else ranQ2 = HadronProtonQ2(aParticle); + // ---------------- Hadron kinematics ---------------- - G4int NumbPart; - if(iContr==137) - { - G4cout<<" Applay: hadron "<GetDefinition()->GetParticleName()<GetDefinition()->GetPDGMass(); + G4double m2 = secNuclDef->GetPDGMass(); + G4LorentzVector lv1 = aParticle->Get4Momentum(); + G4LorentzVector lv0(0.0,0.0,0.0,m2); -// ____________ Randomization of Q2 as dSis/dt ______________ -// if(iKindWork == 0) ranQ2 = RandomElastic0(aParticle, aNucl); -// else - - ranQ2 = RandomElastic1(aParticle, & ElD); + G4LorentzVector lv = lv0 + lv1; + G4ThreeVector bst = lv.boostVector(); + lv1.boost(-bst); + lv0.boost(-bst); + G4ThreeVector p1 = lv1.vect(); + G4double ptot = p1.mag(); -// G4cout<<" Q2 "< 1.0) cost = 1.0; + else if(cost < -1.0) cost = -1.0; + else sint = std::sqrt((1.0-cost)*(1.0+cost)); - G4double MassHadr = aParticle->GetMass(); // MeV - G4double MassNucl = aNucleus.GetN()*938.27; // MeV - G4double sqrMass = MassNucl*MassNucl+MassHadr*MassHadr; + // G4cout << "Entering elastic scattering 3"< 1) + G4cout << "cos(t)=" << cost << " sin(t)=" << sint << G4endl; + + G4ThreeVector v1(sint*std::cos(phi),sint*std::sin(phi),cost); + p1 = p1.unit(); + v1.rotateUz(p1); + v1 *= ptot; + G4LorentzVector nlv11(v1.x(),v1.y(),v1.z(),std::sqrt(ptot*ptot + m1*m1)); + G4LorentzVector nlv01 = lv0 + lv1 - nlv11; + nlv01.boost(bst); + nlv11.boost(bst); + + theParticleChange.SetMomentumChange(nlv11.vect().unit()); + theParticleChange.SetEnergyChange(nlv11.e() - m1); + + secNuclDyn->SetMomentum(nlv01.vect()); + theParticleChange.AddSecondary(secNuclDyn); + + delete aParticle; + + //G4cout << " ion info "<GetMass(); // MeV + G4double MassNucl = aNucleus.GetN()*938.27; // MeV + G4double sqrMass = MassNucl*MassNucl+MassHadr*MassHadr; // --------------- For final state of hadron ------------------ - G4double invS = sqrMass+2*inEnHadr*MassNucl; // MeV^2 - G4double invU = 2*sqrMass-invS+ranQ2; // MeV^2 - G4double outEnHadr = (sqrMass-invU)/2/MassNucl; // MeV - G4double outMomHdr = std::sqrt(outEnHadr*outEnHadr- // MeV + G4double invS = sqrMass+2*inEnHadr*MassNucl; // MeV^2 + G4double invU = 2*sqrMass-invS+ranQ2; // MeV^2 + G4double outEnHadr = (sqrMass-invU)/2/MassNucl; // MeV + G4double outMomHdr = std::sqrt(outEnHadr*outEnHadr- // MeV MassHadr*MassHadr); - G4double cosHadr = (-ranQ2-2*MassHadr*MassHadr+ - 2*inEnHadr*outEnHadr)/2 - /inLabMom/outMomHdr; + G4double cosHadr = (-ranQ2-2*MassHadr*MassHadr+ + 2*inEnHadr*outEnHadr)/2 + /inLabMom/outMomHdr; //---------------- For final state of nucleus ----------------- - G4double outEnNucl = (2*MassNucl*MassNucl+ranQ2)/2/MassNucl; - G4double outMomNcl = std::sqrt(outEnNucl*outEnNucl- // MeV - MassNucl*MassNucl); - G4double cosNucl = (invU-sqrMass+2*inEnHadr*outEnNucl) - /2/inLabMom/outMomNcl; - G4double ranFi = 6.2832*G4UniformRand(); + G4double outEnNucl = (2*MassNucl*MassNucl+ranQ2)/2/MassNucl; + G4double outMomNcl = std::sqrt(outEnNucl*outEnNucl- // MeV + MassNucl*MassNucl); + G4double cosNucl = (invU-sqrMass+2*inEnHadr*outEnNucl) + /2/inLabMom/outMomNcl; + G4double ranFi = 6.2832*G4UniformRand(); // ------ The transformation from Hadron frame to absolute one ------- - G4double RotMatrix[3][3]; - G4double NewMomHdrSys[3]; - G4double NewMomOldSys[3]; - G4double NucMomHdrSys[3]; - G4double NucMomOldSys[3]; + G4double RotMatrix[3][3]; + G4double NewMomHdrSys[3]; + G4double NewMomOldSys[3]; + G4double NucMomHdrSys[3]; + G4double NucMomOldSys[3]; // ------------ The hadron angles in its own system ------------ - G4double sinHadr = std::sqrt(1-cosHadr*cosHadr); - G4double sinFiHadr = std::sin(ranFi); - G4double cosFiHadr = std::cos(ranFi); + G4double sinHadr = std::sqrt(1-cosHadr*cosHadr); + G4double sinFiHadr = std::sin(ranFi); + G4double cosFiHadr = std::cos(ranFi); // ---- The unit vector of a hadron momentum in its own system --- - NewMomHdrSys[0] = sinHadr*cosFiHadr; - NewMomHdrSys[1] = sinHadr*sinFiHadr; - NewMomHdrSys[2] = cosHadr; - G4double sinNucl = std::sqrt(1-cosNucl*cosNucl); + NewMomHdrSys[0] = sinHadr*cosFiHadr; + NewMomHdrSys[1] = sinHadr*sinFiHadr; + NewMomHdrSys[2] = cosHadr; + G4double sinNucl = std::sqrt(1-cosNucl*cosNucl); // ----------- The unit vector of a nucleus momentum ----------- - NucMomHdrSys[0] = -sinNucl*cosFiHadr; - NucMomHdrSys[1] = -sinNucl*sinFiHadr; - NucMomHdrSys[2] = cosNucl; + NucMomHdrSys[0] = -sinNucl*cosFiHadr; + NucMomHdrSys[1] = -sinNucl*sinFiHadr; + NucMomHdrSys[2] = cosNucl; // __________ The angles of unit vector in absolute system ---------- - G4double cosTet = aParticle->GetMomentumDirection().z(); - G4double sinTet; - G4double sinFi; - G4double cosFi; - if(cosTet>0.99999 || cosTet<-0.99999) - { - sinTet = 0; - sinFi = 0; - cosFi = 1; - } - else - { - sinTet = std::sqrt(1-cosTet*cosTet); - sinFi = aParticle->GetMomentumDirection().y()/ - sinTet; - cosFi = aParticle->GetMomentumDirection().x()/ - sinTet; - } + G4double cosTet = aParticle->GetMomentumDirection().z(); + G4double sinTet; + G4double sinFi; + G4double cosFi; + if(cosTet>0.99999 || cosTet<-0.99999) + { + sinTet = 0; + sinFi = 0; + cosFi = 1; + } + else + { + sinTet = std::sqrt(1-cosTet*cosTet); + sinFi = aParticle->GetMomentumDirection().y()/sinTet; + cosFi = aParticle->GetMomentumDirection().x()/sinTet; + } // ----------------- The rotation matrix --------------- - RotMatrix[0][0] = cosFi*cosTet; - RotMatrix[0][1] = sinFi; - RotMatrix[0][2] = -cosFi*sinTet; - RotMatrix[1][0] = -sinFi*cosTet; - RotMatrix[1][1] = cosFi; - RotMatrix[1][2] = sinFi*sinTet; - RotMatrix[2][0] = sinTet; - RotMatrix[2][1] = 0; - RotMatrix[2][2] = cosTet; - - if(iContr == 137 ) - { - G4cout<<" Angles CosTet SinTet CosFi SinFi "<SetMomentum(aNuclMom); + secNuclDyn->SetMomentum(aNuclMom); - if(iContr==137) - G4cout<<" NuclMom "<GetMomentum()<0) /// theParticleChange.AddSecondary( &secNuclTrack); // --------------------------------------------- + G4int NumbPart; + NumbPart = theParticleChange.GetNumberOfSecondaries(); - NumbPart = theParticleChange.GetNumberOfSecondaries(); - if(iContr==137) - G4cout << " NumbPart (thePartCh.) before "<< NumbPart <0) theParticleChange.AddSecondary(secNuclDyn); - if(iKindWork>0) - theParticleChange.AddSecondary(secNuclDyn); + theParticleChange.SetEnergyChange(outEnHadr); + theParticleChange.SetMomentumChange(pxnew, pynew, pznew); - theParticleChange.SetEnergyChange(outEnHadr); - theParticleChange.SetMomentumChange(pxnew, pynew, pznew); + NumbPart = theParticleChange.GetNumberOfSecondaries(); - NumbPart = theParticleChange.GetNumberOfSecondaries(); - if(iContr==137) - G4cout << " NumbPart (thePartCh.) after "<< NumbPart <GetParticle(); - G4cout<<" NucleusName " - <GetDefinition()->GetParticleName()<GetMomentum(); -// G4double outENucl = SecPartNuc->GetTotalEnergy(); -// G4double outPNucl = std::sqrt(outENucl*outENucl- -// 938.27*938.27*MassNucl*MassNucl); -// G4double secEnergyNucl = SecPartNuc->GetKineticEnergy(); - G4cout<<"----------- End Applay ------------"< iIntgr[kk]) kk ++; + while( ranUni > iIntgr[kk]) kk ++; - if(kk == 1 ) kk = 2; + if(kk == 1 ) kk = 2; - G4double F1 = iIntgr[kk-2]; - G4double F2 = iIntgr[kk-1]; - G4double F3 = iIntgr[kk]; - G4double F12 = F1*F1; - G4double F22 = F2*F2; - G4double F32 = F3*F3; - G4double X1 = iQ2[kk-2]; // MeV^2 - G4double X2 = iQ2[kk-1]; - G4double X3 = iQ2[kk]; - G4double D0 = F12*F2+F1*F32+F3*F22-F32*F2-F22*F1-F12*F3; + G4double F1 = iIntgr[kk-2]; + G4double F2 = iIntgr[kk-1]; + G4double F3 = iIntgr[kk]; + G4double F12 = F1*F1; + G4double F22 = F2*F2; + G4double F32 = F3*F3; + G4double X1 = iQ2[kk-2]; // MeV^2 + G4double X2 = iQ2[kk-1]; + G4double X3 = iQ2[kk]; + G4double D0 = F12*F2+F1*F32+F3*F22-F32*F2-F22*F1-F12*F3; - if(D0 == 0) - { - ranQ2 = (iQ2[kk-1]+(ranUni-iIntgr[kk-1])* - (iQ2[kk]-iQ2[kk-1]) - /(iIntgr[kk]-iIntgr[kk-1])); - } - - else { - G4double DA = X1*F2+X3*F1+X2*F3-X3*F2-X1*F3-X2*F1; - G4double DB = X2*F12+X1*F32+X3*F22-X2*F32-X3*F12-X1*F22; - G4double DC = X3*F2*F12+X2*F1*F32+X1*F3*F22 + if(D0 == 0) + ranQ2 = (iQ2[kk-1]+(ranUni-iIntgr[kk-1])* + (iQ2[kk]-iQ2[kk-1]) + /(iIntgr[kk]-iIntgr[kk-1])); + else + { + G4double DA = X1*F2+X3*F1+X2*F3-X3*F2-X1*F3-X2*F1; + G4double DB = X2*F12+X1*F32+X3*F22-X2*F32-X3*F12-X1*F22; + G4double DC = X3*F2*F12+X2*F1*F32+X1*F3*F22 -X1*F2*F32-X2*F3*F12-X3*F1*F22; - ranQ2 = (DA*ranUni*ranUni+DB*ranUni+DC)/D0; - } - return ranQ2; // MeV^2 - } + ranQ2 = (DA*ranUni*ranUni+DB*ranUni+DC)/D0; + } + return ranQ2; // MeV^2 +} + // +++++++++ The randomization of two dimensoinal array ++++++++ - G4double G4ElasticHadrNucleusHE::RandomElastic1( + +G4double G4ElasticHadrNucleusHE::RandomElastic1( const G4DynamicParticle * aHadron, const ElasticData * ElD) - { - G4double forQ2[3]; - G4double curE = aHadron->GetTotalEnergy(); // in MeV - G4double X1; - G4double X2; - G4double X3; - G4double Y1; - G4double Y2; - G4double Y3; - G4int iiE = 0; - G4int k[3]; +{ + G4double forQ2[3]; + G4double curE = aHadron->GetTotalEnergy(); // in MeV + G4double X1; + G4double X2; + G4double X3; + G4double Y1; + G4double Y2; + G4double Y3; + G4int iiE = 0; + G4int k[3]; - while(curE > ElD->TableE[iiE] ) - { - iiE++; + while(curE > ElD->TableE[iiE] ) iiE++; -// G4cout<<" Rand1: iiE "<< iiE <<" E "<TableE[iiE]< - ElD->TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2]) - { - -// G4cout<<"find kk ranUni Tab "<TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2]<TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2]< + ElD->TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2]) + { + kk ++; + k[mm]=kk; + } // while // if(kk == 1 ) kk = 2; - X1 = ElD->TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2-1]; - X2 = ElD->TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2]; - X3 = ElD->TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2+1]; - Y1 = ElD->TableQ2[kk-1]; // MeV^2 - Y2 = ElD->TableQ2[kk]; - Y3 = ElD->TableQ2[kk+1]; + X1 = ElD->TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2-1]; + X2 = ElD->TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2]; + X3 = ElD->TableCrossSec[iiE*ONQ2+mm*ONQ2+kk-ONQ2+1]; + Y1 = ElD->TableQ2[kk-1]; // MeV^2 + Y2 = ElD->TableQ2[kk]; + Y3 = ElD->TableQ2[kk+1]; - forQ2[mm] = InterPol(X1, X2, X3, Y1, Y2, Y3, ranUni); + forQ2[mm] = InterPol(X1, X2, X3, Y1, Y2, Y3, ranUni); + } // mm -// G4cout<TableE[iiE-1]; + X2 = ElD->TableE[iiE]; + X3 = ElD->TableE[iiE+1]; + Y1 = forQ2[0]; // MeV^2 + Y2 = forQ2[1]; + Y3 = forQ2[2]; - } // mm + ranQ2 = InterPol(X1, X2, X3, Y1, Y2, Y3, curE); - X1 = ElD->TableE[iiE-1]; - X2 = ElD->TableE[iiE]; - X3 = ElD->TableE[iiE+1]; - Y1 = forQ2[0]; // MeV^2 - Y2 = forQ2[1]; - Y3 = forQ2[2]; + return ranQ2; // MeV^2 +} - ranQ2 = InterPol(X1, X2, X3, Y1, Y2, Y3, curE); - -// G4cout<GetN() > MaxN ) + if(aNucleus->GetN() > MaxN ) ArrayForHeavy( aHadron, aNucleus); - else + else ArrayForLight( aHadron, aNucleus); - } +} + // +++++++++++++ The method for heavy nucleus ++++++++++++++++ + void G4ElasticHadrNucleusHE::ArrayForHeavy( const G4DynamicParticle * aHadron, G4Nucleus * aNucleus) - { - GetNucleusParameters(aNucleus); +{ + GetNucleusParameters(aNucleus); ////// G4double aNuc = aNucleus->GetN(); - G4double intgrS=0., intgStep; - G4int ii, Kind=0; + G4double intgrS=0., intgStep; + G4int ii, Kind=0; - iIntgr[0] = 0; + iIntgr[0] = 0; - for( ii=0; ii 3 ) aSimp = 2; - else aSimp = 4; - if(ll == 0) aSimp = 4; - Kind = 1; - } // ll - intgStep = curSum*ddQ2/3; + if(aSimp > 3 ) aSimp = 2; + else aSimp = 4; + if(ll == 0) aSimp = 4; + Kind = 1; + } // ll + intgStep = curSum*ddQ2/3; // -------------------------------------------------------------------- - iIntgr[ii+1] = iIntgr[ii]+intgStep; - intgrS = intgrS + intgStep; - } // ii + iIntgr[ii+1] = iIntgr[ii]+intgStep; + intgrS = intgrS + intgStep; + } // ii // ------------------- The normalization ---------------- - for( ii=0; iiGetN(); - G4int Nucleus = (G4int) aNuc; + G4HadronValues::GetHadronValues(aHadron); + G4double aNuc = aNucleus->GetN(); + G4int Nucleus = (G4int) aNuc; - GetNucleusParameters(aNucleus); - - maxQ2 = GetQ2limit(R1)/1000/1000; // GeV^2 + GetNucleusParameters(aNucleus); + maxQ2 = GetQ2limit(R1)/1000/1000; // GeV^2 // ---------------- The preparing of probability function ------------ - G4double MbToB = 2.568; // from mb to GeV^-2 - G4double Pi1 = 3.1416; - G4double Stot = HadrTot*MbToB; // Gev^-2 - G4double Bhad = HadrSlope; // GeV^-2 - G4double Asq = 1+HadrReIm*HadrReIm; - G4double Rho2 = std::sqrt(Asq); + G4double MbToB = 2.568; // from mb to GeV^-2 + G4double Pi1 = 3.1416; + G4double Stot = HadrTot*MbToB; // Gev^-2 + G4double Bhad = HadrSlope; // GeV^-2 + G4double Asq = 1+HadrReIm*HadrReIm; + G4double Rho2 = std::sqrt(Asq); - G4double R12 = R1*R1; - G4double R22 = R2*R2; - G4double R12B = R12+2*Bhad; - G4double R22B = R22+2*Bhad; + G4double R12 = R1*R1; + G4double R22 = R2*R2; + G4double R12B = R12+2*Bhad; + G4double R22B = R22+2*Bhad; /// G4double R12Bp = R12+20; /// G4double R22Bp = R22+20; /// G4double R13Bp = R12*R1/R12Bp; @@ -911,20 +810,21 @@ void G4ElasticHadrNucleusHE::ArrayForHeavy( /// G4double R12Apd = 2/R12Ap; /// G4double R22Apd = 2/R22Ap; - G4double Norm = R12*R1-Pnucl*R22*R2; + G4double Norm = R12*R1-Pnucl*R22*R2; /// G4double NormP = R12*R1-PnuclP*R22*R2; - G4double R13 = R12*R1/R12B; - G4double R23 = Pnucl*R22*R2/R22B; - G4double Unucl = Stot/2/Pi1/Norm*R13; + G4double R13 = R12*R1/R12B; + G4double R23 = Pnucl*R22*R2/R22B; + G4double Unucl = Stot/2/Pi1/Norm*R13; //// G4double Unclprod = Stot/2/Pi1/NormP*R13Ap; - G4double FiH = std::asin(HadrReIm/Rho2); - G4double NN2 = R23/R13; + G4double FiH = std::asin(HadrReIm/Rho2); + G4double NN2 = R23/R13; /// G4double DDSec1p = (DDSect2+ /// DDSect3*std::log(1.06*2*Ehad/R1/4)); /// G4double DDSec2p = (DDSect2+ -/// DDSect3*std::log(1.06*2*Ehad/std::sqrt((R12+R22)/2)/4)); +/// DDSect3*std::log(1.06*2*Ehad/ +// std::sqrt((R12+R22)/2)/4)); /// G4double DDSec3p = (DDSect2+ /// DDSect3*std::log(1.06*2*Ehad/R2/4)); @@ -933,100 +833,180 @@ void G4ElasticHadrNucleusHE::ArrayForHeavy( iIntgr[0] = 0; - G4int ii; + G4int ii; - for(ii=0; ii 0.0001) + { + if(delta>0) + { + DDD2 = DDD0; + DDD0 = (DDD0+DDD1)*0.5; + } + else if(delta<0) + { + DDD1 = DDD0; + DDD0 = (DDD0+DDD2)*0.5; + } + delta = GetDistrFun(DDD0)-Ran; } + Q2 = DDD0; + + return Q2; +} + +// ++++++++++++++++++++++++++++++++++++++++++ + +G4double G4ElasticHadrNucleusHE::HadronProtonQ2( + G4DynamicParticle * aHadron) +{ + G4double Ran = G4UniformRand(), Q2; + + GetKinematics(aHadron); + +// G4cout<<" HRQ2HE Ran "<GetDefinition()->GetPDGEncoding(); - G4ParticleDefinition * dHadron = aHadron->GetDefinition(); +// G4cout<<" Code "<GetDefinition()->GetParticleName() + << G4endl; + G4Exception(" There is not method for this hadron "); + } G4double mHadr = aHadron->GetMass()/1000.; // In GeV G4double HadrEnergy = aHadron->GetTotalEnergy()/1000.; // In GeV + G4double HadrMoment = aHadron->GetTotalMomentum()/1000.; // In GeV G4double sHadr = 2*HadrEnergy*0.938+0.938*0.938+mHadr*mHadr; G4double sqrS = std::sqrt(sHadr); G4double Ecm = (sHadr-mHadr*mHadr+0.938*.938)/2/sqrS; MomentumCM = std::sqrt(Ecm*Ecm-0.938*0.938); - if(HadrEnergy<1.0) + if(HadrEnergy-mHadr<1.0) { G4cout<1000) HadrReIm=0.15; - if( dHadron == G4Lambda::Lambda() || - dHadron == G4SigmaPlus::SigmaPlus() || - dHadron == G4SigmaMinus::SigmaMinus()|| - dHadron == G4SigmaZero::SigmaZero()) + if( iHadrCode == 3122 || iHadrCode == 3222 || + iHadrCode == 3112 || iHadrCode == 3212 ) { HadrTot *=0.80; HadrSlope *=0.85; } - if( dHadron == G4XiMinus::XiMinus() || - dHadron == G4XiZero::XiZero()) + if( iHadrCode == 3312 || iHadrCode == 3322 ) { HadrTot *=0.70; HadrSlope *=0.75; } - if( dHadron == G4OmegaMinus::OmegaMinus()) + if( iHadrCode == 3334) { HadrTot *=0.60; HadrSlope *=0.65; @@ -138,34 +158,33 @@ // if(HadrEnergy>1000) HadrReIm=0.15; - if( dHadron == G4AntiLambda::AntiLambda() || - dHadron == G4AntiSigmaPlus::AntiSigmaPlus() || - dHadron == G4AntiSigmaMinus::AntiSigmaMinus()|| - dHadron == G4AntiSigmaZero::AntiSigmaZero()) + if( iHadrCode == -3122 || iHadrCode == -3222 || + iHadrCode == -3112 || iHadrCode == -3212 ) { HadrTot *=0.75; HadrSlope *=0.85; } - - if( dHadron == G4AntiXiMinus::AntiXiMinus() || - dHadron == G4AntiXiZero::AntiXiZero()) + + if( iHadrCode == -3312 || iHadrCode == -3322 ) { HadrTot *=0.65; HadrSlope *=0.75; } - if( dHadron == G4AntiOmegaMinus::AntiOmegaMinus()) + if( iHadrCode == -3334) { HadrTot *=0.55; HadrSlope *=0.65; } - break; + break; case 2: // pi plus - HadrTot = 10.6+2.*std::log(HadrEnergy)+ - 25*std::pow(HadrEnergy,-0.43); // mb + if(HadrMoment>2.0) + HadrTot = 10.6+2.*log(HadrEnergy)+ + 25*std::pow(HadrEnergy,-0.43); // mb + else HadrTot = 40-50*(HadrMoment-1.5)*(HadrMoment-1.7); HadrSlope = 7.28+0.245*std::log(sHadr); //GeV-2 HadrReIm = 0.2*std::log(sHadr/100)*std::pow(sHadr,-0.15); DDSect2 = 4.6; //mb*GeV-2 @@ -176,6 +195,10 @@ HadrTot = 10.6+2*std::log(HadrEnergy)+ 30*std::pow(HadrEnergy,-0.43); // mb + + if(HadrMoment<1.399) + HadrTot = HadrTot+21.0/0.4*(1.4-HadrMoment); + HadrSlope = 7.28+0.245*std::log(sHadr); // GeV-2 HadrReIm = 0.2*std::log(sHadr/100)*std::pow(sHadr,-0.15); DDSect2 = 4.6; //mb*GeV-2 @@ -188,7 +211,8 @@ 9.0*std::pow(HadrEnergy,-0.55); // mb if(HadrEnergy>100) HadrSlope = 15.0; else - HadrSlope = 5.28+1.76*std::log(sHadr)- +// HadrSlope = 5.28+1.76*std::log(sHadr)- + HadrSlope = 1.0+1.76*std::log(sHadr)- 2.84*std::pow(sHadr,-0.5); // GeV-2 HadrReIm = 0.4*(sHadr-20)*(sHadr-150)*std::pow(sHadr+50,-2.1); DDSect2 = 3.5; //mb*GeV-2 diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4IntegrHadrNucleus.cc b/source/processes/hadronic/models/coherent_elastic/src/G4IntegrHadrNucleus.cc index ea45edf974..38673ac3ef 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4IntegrHadrNucleus.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4IntegrHadrNucleus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IntegrHadrNucleus.cc,v 1.12 2005/06/10 13:23:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4IntegrHadrNucleus.cc,v 1.13 2005/11/23 10:34:03 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // IntegrHadrNucleus.cc @@ -42,15 +42,11 @@ G4int Anucleus = (int) aNucleus->GetN(); - if(Anucleus<4) - { - G4Exception(" This nucleus is very light for this model !!!"); - } + if(Anucleus==2 || Anucleus==3) + G4Exception(" This nucleus is very light for this model !!!"); - if(Anucleus>208) - { - G4Exception(" This nucleus is very heavy for this model !!!"); - } + if(Anucleus>238) + G4Exception(" This nucleus is very heavy for this model !!!"); MbToB = 2.568; Pi1 = 3.1416; @@ -150,10 +146,10 @@ G4Nucleus * aNucleus) { - HadrEnergy = aHadron->GetTotalEnergy()/1000; - -if(HadrEnergy < 1.4999) - G4Exception(" The hadron energy is very low for this model !!!"); + HadrEnergy = aHadron->GetTotalEnergy()/1000; + G4double MassH = aHadron->GetMass()/1000; + if(HadrEnergy-MassH < 1.0) + G4Exception(" The hadron energy is very low for this model !!!"); G4HadronValues::GetHadronValues(aHadron); GetIntegralCrSec(aNucleus); @@ -167,9 +163,9 @@ if(HadrEnergy < 1.4999) G4Nucleus * aNucleus) { HadrEnergy = aHadron->GetTotalEnergy()/1000; - -if(HadrEnergy < 1.4999) - G4Exception(" The hadron energy is very low for this model !!!"); + G4double MassH = aHadron->GetMass()/1000; + if(HadrEnergy-MassH < 1.0) + G4Exception(" The hadron energy is very low for this model !!!"); G4HadronValues::GetHadronValues(aHadron); GetIntegralCrSec(aNucleus); @@ -183,9 +179,9 @@ if(HadrEnergy < 1.4999) G4Nucleus * aNucleus) { HadrEnergy = aHadron->GetTotalEnergy()/1000; - -if(HadrEnergy < 1.4999) - G4Exception(" The hadron energy is very low for this model !!!"); + G4double MassH = aHadron->GetMass()/1000; + if(HadrEnergy-MassH < 1.0) + G4Exception(" The hadron energy is very low for this model !!!"); G4HadronValues::GetHadronValues(aHadron); GetIntegralCrSec(aNucleus); @@ -199,9 +195,9 @@ if(HadrEnergy < 1.4999) G4Nucleus * aNucleus) { HadrEnergy = aHadron->GetTotalEnergy()/1000; - -if(HadrEnergy < 1.4999) - G4Exception(" The hadron energy is very low for this model !!!"); + G4double MassH = aHadron->GetMass()/1000; + if(HadrEnergy-MassH < 1.0) + G4Exception(" The hadron energy is very low for this model !!!"); G4HadronValues::GetHadronValues(aHadron); GetIntegralCrSec(aNucleus); @@ -215,9 +211,9 @@ if(HadrEnergy < 1.4999) G4Nucleus * aNucleus) { HadrEnergy = aHadron->GetTotalEnergy()/1000; - -if(HadrEnergy < 1.4999) - G4Exception(" The hadron energy is very low for this model !!!"); + G4double MassH = aHadron->GetMass()/1000; + if(HadrEnergy-MassH < 1.0) + G4Exception(" The hadron energy is very low for this model !!!"); G4HadronValues::GetHadronValues(aHadron); GetIntegralCrSec(aNucleus); diff --git a/source/processes/hadronic/models/de_excitation/History b/source/processes/hadronic/models/de_excitation/History new file mode 100644 index 0000000000..6fc6d74b8d --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/History @@ -0,0 +1,37 @@ +------------------------------------------------------------------- + + ========================================================== + Geant4 - an Object-Oriented Toolkit for Physics Simulation + ========================================================== + + History file for hadronic/models/de_excitation + ---------------------------------------------- + +This file should be used to summarize modifications introduced in the +code and to keep track of all tags. + + --------------------------------------------------------------- + * Please list in reverse chronological order (last date on top) + --------------------------------------------------------------- + +24 Nov 2005 Dennis Wright (hadr-deex-V07-01-00) +---------------------------------------------- + +- photon_evaporation (tag hadr-deex-photo-V07-01-00 by Aatos Heikkinen) + migration for G4NuclearLevelManager.cc, + G4NuclearLevelDataStore.cc, + G4DiscreteGammaDeexcitation.cc + minor update of G4VGammaDeexcitation.cc + +- util (tag hadr-deex-util-V07-01-00 by Aatos Heikkinen) + migration for G4CoulombBarrier.cc + G4VCoulombBarrier.cc, + +- gem_evaporation (tag hadr-deex-gem-V07-01-00 by Aatos Heikkinen) + migration for G4GEMCoulombBarrierHE.cc + +- fermi_breakup (tag hadr-deex-fermi-V07-01-00 by Aatos Heikkinen) + migration for G4FermiSplitter.cc + + + diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationChannel.hh index cb610f4842..1986127ad0 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaEvaporationChannel.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationProbability.hh index 2868bba041..f5598f72f0 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaEvaporationProbability.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationChannel.hh index fd3582b3ce..69f1ad66c3 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronEvaporationChannel.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationProbability.hh index d7addd0302..6ea46f5643 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronEvaporationProbability.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh index 7ecfde7adf..43ef174725 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh @@ -22,7 +22,7 @@ // // // $Id: G4Evaporation.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh index 4d8228a36e..4d33b8f49a 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationChannel.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh index 6c7fe5df87..6ea99892fa 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationFactory.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh index c906ab4fdb..1f684a7941 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationProbability.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationChannel.hh index 1e38ba109e..6d7c97d034 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3EvaporationChannel.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationProbability.hh index 127b6c01c1..cb111faacc 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3EvaporationProbability.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationChannel.hh index bf9a1798f7..09e99de644 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronEvaporationChannel.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationProbability.hh index 438a6bea39..86d0a514f3 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronEvaporationProbability.hh,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationChannel.hh index fdbf1f6967..2345405c72 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonEvaporationChannel.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationProbability.hh index 1f8cfc363e..d4956612d5 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonEvaporationProbability.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationChannel.hh index d9dbc90bbc..718d9ed503 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonEvaporationChannel.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationProbability.hh index aa4734e536..18501fdb82 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonEvaporationProbability.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh index dcf67edb09..2924ebfd87 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporation.hh,v 1.2 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) written from G4Evaporation.hh (May 1998) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationChannel.cc index 8a3c70e58c..9afb5f749a 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaEvaporationChannel.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationProbability.cc index 443c2a2e7d..41e17ca284 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaEvaporationProbability.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationChannel.cc index 9764c698ee..b809f69ae3 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronEvaporationChannel.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationProbability.cc index 9ddfebcbad..08dd7057ac 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronEvaporationProbability.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc index 76e9eb5ea5..4b6d0421a8 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc @@ -22,7 +22,7 @@ // // // $Id: G4Evaporation.cc,v 1.5 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc index 3306b2cd3a..afd7b9781d 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationChannel.cc,v 1.4 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc index af3ca64fa5..948d226338 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationFactory.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc index be5d008a60..c8ff4801c0 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationProbability.cc,v 1.4 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationChannel.cc index 33877f8c43..c7deffbc7c 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3EvaporationChannel.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc index 0461b6eeb6..dc05ace7f7 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3EvaporationProbability.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationChannel.cc index 9daac86aac..16be78970a 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronEvaporationChannel.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc index a30d27648b..b2d8adb7e8 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronEvaporationProbability.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationChannel.cc index 1a73174a03..1b58c1969a 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonEvaporationChannel.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc index b3a326a7b9..ee852518cd 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonEvaporationProbability.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationChannel.cc index c95ce7bf38..7bc256bd75 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonEvaporationChannel.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc index d4ad148fc4..b0e36665af 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonEvaporationProbability.cc,v 1.3 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc index 223a7e0ed5..5b17f2e78e 100644 --- a/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporation.cc,v 1.4 2005/06/04 13:21:21 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) writen from G4Evaporation.cc (May 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4B9FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4B9FermiFragment.hh index de9695e463..7457d43b63 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4B9FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4B9FermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4B9FermiFragment.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Be8FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Be8FermiFragment.hh index 60d090d22c..32cf721cdd 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Be8FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Be8FermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be8FermiFragment.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh index 433c27d56f..e771e1246e 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh @@ -22,7 +22,7 @@ // // // $Id: G4FermiBreakUp.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfiguration.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfiguration.hh index 24aa144f29..3f06cf6835 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfiguration.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfiguration.hh @@ -22,7 +22,7 @@ // // // $Id: G4FermiConfiguration.hh,v 1.3 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfigurationList.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfigurationList.hh index 852fd909b4..651221851e 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfigurationList.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfigurationList.hh @@ -22,7 +22,7 @@ // // // $Id: G4FermiConfigurationList.hh,v 1.4 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.hh index cf01a5a3e4..b6cb276939 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.hh @@ -34,9 +34,6 @@ #include #include - -#define G4RandGamma RandGamma - class G4FermiPhaseSpaceDecay { public: diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.icc b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.icc index e0b059cc39..92966eba51 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.icc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.icc @@ -87,8 +87,8 @@ G4FermiPhaseSpaceDecay::BetaKopylov(const G4int K) const // Notice that alpha > beta always const G4double beta = 1.5; G4double alpha = 1.5*(K-1); - G4double Y1 = G4RandGamma::shoot(alpha,1); - G4double Y2 = G4RandGamma::shoot(beta,1); + G4double Y1 = CLHEP::RandGamma::shoot(alpha,1); + G4double Y2 = CLHEP::RandGamma::shoot(beta,1); return Y1/(Y1+Y2); } diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4He5FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4He5FermiFragment.hh index e100294eae..ae44257ab1 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4He5FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4He5FermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4He5FermiFragment.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Li5FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Li5FermiFragment.hh index b2abec852f..ba129c0468 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Li5FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Li5FermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li5FermiFragment.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh index 677ea1ea77..ad15af1e1b 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4StableFermiFragment.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh index 3c8f488eed..eeba2fd4af 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnstableFermiFragment.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh index cfcfc264f7..51221b139c 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFermiBreakUp.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh index 8edf369434..3d78c0db9d 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFermiFragment.hh,v 1.2 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4B9FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4B9FermiFragment.cc index 195c379b51..093c2ec68c 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4B9FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4B9FermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4B9FermiFragment.cc,v 1.6 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Be8FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Be8FermiFragment.cc index ed96210024..cfc3a02b67 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Be8FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Be8FermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be8FermiFragment.cc,v 1.6 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiConfiguration.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiConfiguration.cc index fdfd571f5b..2102104d2f 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiConfiguration.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiConfiguration.cc @@ -22,7 +22,7 @@ // // // $Id: G4FermiConfiguration.cc,v 1.8 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiSplitter.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiSplitter.cc index a5c4b9d6d3..71650641cd 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiSplitter.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiSplitter.cc @@ -27,7 +27,7 @@ #include "G4FermiSplitter.hh" #include "G4FermiIntegerPartition.hh" #include "G4HadronicException.hh" -#include +#include G4int G4FermiSplitter::Initialize(const G4int a, const G4int z, const G4int n) @@ -35,14 +35,14 @@ G4int G4FermiSplitter::Initialize(const G4int a, const G4int z, const G4int n) // Check argument correctness if (a < 0 || z < 0 || n < 0) { - std::ostrstream errOs; + std::ostringstream errOs; errOs << "G4FermiSplitter::Initialize() Error: Non valid arguments A = " << a << " Z = " << z << " #fragments = " << n; throw G4HadronicException(__FILE__, __LINE__, errOs.str()); } if (z > a || n > a) { - std::ostrstream errOs; + std::ostringstream errOs; errOs << "G4FermiSplitter::Initialize() Error: Non physical arguments = " << a << " Z = " << z << " #fragments = " << n; throw G4HadronicException(__FILE__, __LINE__, errOs.str()); diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4He5FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4He5FermiFragment.cc index beae4f06e4..26e53d49ab 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4He5FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4He5FermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4He5FermiFragment.cc,v 1.6 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Li5FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Li5FermiFragment.cc index ad14717ca6..c49c9a1829 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Li5FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Li5FermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li5FermiFragment.cc,v 1.6 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc index d240c6d3fe..33f842af7f 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4StableFermiFragment.cc,v 1.4 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc index 6dade607d1..7ce38dec4c 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4UnstableFermiFragment.cc,v 1.7 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc index db35e3bbda..33a819b203 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc @@ -22,7 +22,7 @@ // // // $Id: G4VFermiBreakUp.cc,v 1.4 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc index 8e89f455a1..49eea2e187 100644 --- a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4VFermiFragment.cc,v 1.4 2005/06/04 13:22:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh index 2086ba619d..ebea7f6348 100644 --- a/source/processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh @@ -22,7 +22,7 @@ // // // $Id: G4CompetitiveFission.hh,v 1.2 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh index b324d29fa0..cef662722b 100644 --- a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4FissionBarrier.hh,v 1.2 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionLevelDensityParameter.hh index 6fb7105981..876d1073f5 100644 --- a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionLevelDensityParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4FissionLevelDensityParameter.hh,v 1.2 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionParameters.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionParameters.hh index 41af6ceff4..28b285c2da 100644 --- a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionParameters.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4FissionParameters.hh,v 1.2 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionProbability.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionProbability.hh index c767429e29..8ad22d4fd2 100644 --- a/source/processes/hadronic/models/de_excitation/fission/include/G4FissionProbability.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4FissionProbability.hh,v 1.2 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh index 8e1fe6431b..3dd4d4893a 100644 --- a/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFissionBarrier.hh,v 1.3 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/src/G4CompetitiveFission.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4CompetitiveFission.cc index fb80638000..a2b49e9929 100644 --- a/source/processes/hadronic/models/de_excitation/fission/src/G4CompetitiveFission.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4CompetitiveFission.cc @@ -22,7 +22,7 @@ // // // $Id: G4CompetitiveFission.cc,v 1.4 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc index ac46d1d631..0eb0930495 100644 --- a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4FissionBarrier.cc,v 1.4 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionLevelDensityParameter.cc index d1aed7e217..c50430e561 100644 --- a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionLevelDensityParameter.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionLevelDensityParameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4FissionLevelDensityParameter.cc,v 1.3 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionParameters.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionParameters.cc index d0c6614aad..94910432b5 100644 --- a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionParameters.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionParameters.cc @@ -22,7 +22,7 @@ // // // $Id: G4FissionParameters.cc,v 1.4 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc index 273d8dc2ee..7e33ae9f29 100644 --- a/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4FissionProbability.cc,v 1.6 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/fission/src/G4VFissionBarrier.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4VFissionBarrier.cc index 6084e84d1d..9d831e8209 100644 --- a/source/processes/hadronic/models/de_excitation/fission/src/G4VFissionBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4VFissionBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4VFissionBarrier.cc,v 1.3 2005/06/04 13:22:51 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh index 35ce45f5b3..3c5fce5f9a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaGEMChannel.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMProbability.hh index 9f092e9128..a220a4e476 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaGEMProbability.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh index a85e2c8030..1f85463669 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B10GEMChannel.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh index 4b38876d2e..38a4709de5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4B10GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMProbability.hh index a848af99ac..5a45850f0e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B10GEMProbability.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh index 2e9727ca3d..12ad42b4ab 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B11GEMChannel.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh index bb443752a1..84a88d2d49 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4B11GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMProbability.hh index a31d443886..0c9f3a22a8 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B11GEMProbability.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh index 85e8a7f786..c733ea37c8 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B12GEMChannel.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh index 09f03cacf3..31f5fd8789 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4B12GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMProbability.hh index 6c34c2d245..386e74a174 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B12GEMProbability.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh index f171210dca..30c0a0406d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B13GEMChannel.hh,v 1.2 2005/06/04 13:25:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh index 2160eff908..78e5b912d4 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4B13GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMProbability.hh index af18bacf2e..ecd48fc817 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B13GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh index d8bb0117a1..db6b2ee182 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4B8GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh index 1b4281e1ae..2d118173b2 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4B8GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMProbability.hh index 1cd44fb4f2..66d74af87d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4B8GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh index da624da019..a0c6d74e3a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be10GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh index 37aabc3683..ff7ee575c0 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be10GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMProbability.hh index 8238cd4ce2..ebe83bc80a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be10GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh index efddc46cd7..12a66d476d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be11GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh index 5f860b0228..23514580fb 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be11GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMProbability.hh index f405426494..0b2f265da3 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be11GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh index c8a93b37ad..8abe17b43d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be12GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh index 9b77116eb5..1d6b57ca1e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be12GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMProbability.hh index 9f7ff8ca6f..2cfa2fd8f0 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be12GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh index 97de22668c..a5b5e275f1 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be7GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh index 8f7d6eca58..c8e44a1fc7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be7GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMProbability.hh index b73e6bf8fb..50136c3d64 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be7GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh index cf1996ce78..55175f133d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be9GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh index 6d3bad25b6..ba1202de5f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be9GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMProbability.hh index f382b38a9c..b2687c520f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Be9GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh index cea7599a82..1fae1072ad 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C10GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh index c1572286f7..73216888bf 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4C10GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMProbability.hh index c01370aa3e..39bb93fdd3 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C10GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh index 54b846079a..9fa50f2d28 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C11GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh index 262baef314..fa0c98d6a1 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4C11GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMProbability.hh index a303e9620b..52b5448006 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C11GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh index 5f0a9aef1c..cd6b763386 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C12GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh index cc26778c9e..0e387bed94 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4C12GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMProbability.hh index fa8a9a4569..0c413239bf 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C12GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh index 33a0ecd3ce..62688eb54f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C13GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh index 942ed77f5c..024d1ccaf6 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4C13GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMProbability.hh index 420ae36198..43ee9cdfd3 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C13GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh index f67a482fa6..a79652bbc2 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C14GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh index d4b8c3f187..62a27fc9b8 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4C14GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMProbability.hh index ec9aa9a322..21eff03b3e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C14GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh index 7de5b1dfc3..98b62bc9b7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C15GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh index f0af86b697..290a678462 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4C15GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMProbability.hh index 437d73dc39..cdf02c2585 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C15GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh index 21f7687de2..ec1735fde5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4C16GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh index 786e5b25c5..77e1b6c7ec 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4C16GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMProbability.hh index b8b62ad86d..405eb4dea7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4C16GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh index df9e7dbe5b..de1f0a5409 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronGEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMProbability.hh index e8fdba0a8d..7bfd6e99fe 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronGEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4EvaporationGEMFactory.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4EvaporationGEMFactory.hh index 6f2082063b..7ec3d26bbc 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4EvaporationGEMFactory.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4EvaporationGEMFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationGEMFactory.hh,v 1.4 2005/06/28 12:10:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh index c31a88e822..c65f0a7721 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F17GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh index 57ce74e4a3..e14d6be0b7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4F17GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMProbability.hh index 01eba21a37..2389c17010 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F17GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh index 23fc707e56..6b083ecd3c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F18GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh index 8cbb9d7ec4..25cb81f0c5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4F18GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMProbability.hh index 1e995ad7d6..4f7e3d199f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F18GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh index 73bdef49fd..18996da5da 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F19GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh index c069d439b4..198dfc5287 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4F19GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMProbability.hh index 1e87a888e7..8bc1652910 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F19GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh index e65a19a661..5fa3aacf89 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F20GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh index 0f048d896b..4133b4fd39 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4F20GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMProbability.hh index 5ed993144a..a991146d18 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F20GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh index b3ed087d1a..1024374a01 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4F21GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh index 80b0998887..cc79738240 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4F21GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMProbability.hh index e24a0ed996..a7664fd9ad 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4F21GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh index 14e1a36dee..ddf3d15dfb 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4GEMChannel.hh,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh index 155fbda703..69a47054e2 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh @@ -22,7 +22,7 @@ // // // $Id: G4GEMCoulombBarrierHE.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh index af4900de76..0d1338656f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMProbability.hh index b5e7c747cc..70efdbf72a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh index f42852a56f..4176305ee5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4He6GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh index 92bc7897a4..360725831b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4He6GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMProbability.hh index 059124a07c..e149e486a1 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4He6GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh index d3a635da4f..15fba29150 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4He8GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh index 4e33eb062d..9c5c80e67f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4He8GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMProbability.hh index 5cbba719b2..6d3356b3ac 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4He8GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh index 41037a9c31..6287ce9f76 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li6GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh index c1326b6fad..a333b3b794 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li6GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMProbability.hh index 4b923b051c..ebe9618e9b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li6GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh index a19e9bfa5a..3065fd4e35 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li7GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh index 6cc8f03d7a..9a291e95ba 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li7GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMProbability.hh index 561661661b..b081399fff 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li7GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh index e96f233e9d..b66773c8e9 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li8GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh index 557b78d16b..882f2a53af 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li8GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMProbability.hh index 1776361d66..53fb3a432f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li8GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh index 73e1317fc1..d6a6137ba0 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li9GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh index 39c19b92f2..67a19c8e62 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li9GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMProbability.hh index c61481c12b..eae483424d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Li9GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh index b0da1faa44..ad87af1684 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg22GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh index e3c98c93cd..028e657fc5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg22GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMProbability.hh index fd71db75a4..aaac84d326 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg22GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh index 91f9f4fa30..ef3acd5fef 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg23GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh index aa68fc9ee4..07fdd519fb 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg23GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMProbability.hh index b69b18e7eb..68773e24f8 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg23GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh index 669ebf04dd..dd3e62e254 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg24GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh index 04aacfc7bc..b955c44506 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg24GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMProbability.hh index c864f4759f..e37a052ccd 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg24GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh index f73d2590c1..8b2a818a9d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg25GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh index dc2ce0f666..8192536b5b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg25GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMProbability.hh index 892d620916..1cf1772adb 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg25GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh index e82d3a0a12..26ad445ec7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg26GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh index 3b4c99cdd5..1e4c45dc48 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg26GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMProbability.hh index c61b0906fb..6fa8ce0495 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg26GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh index 9d605bb039..71ab61f7c1 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg27GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh index bd3bbc3f61..006b7570ae 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg27GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMProbability.hh index 8bf48b61dc..2c5b1aa403 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg27GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh index f94d77b815..2700c5da9c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg28GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh index 0a000a326c..cca24e9323 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg28GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMProbability.hh index 6a80f61830..c17374f974 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mg28GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh index d4689fcb55..9fa0fbc5ed 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N12GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh index f543fabfde..186e3bdeda 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4N12GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMProbability.hh index 8bedfd2a07..916d6923c1 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N12GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh index 00ff366932..4eaec7142c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N13GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh index 40aca3901d..fd270a4197 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4N13GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMProbability.hh index 7882cb4d73..e5eec33e06 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N13GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh index fc94eedee1..17c9b53612 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N14GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh index 0f183d0fb0..fe66530167 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4N14GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMProbability.hh index 303ec0606d..4e44a86184 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N14GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh index ea8cf5b7cc..7c8787253b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N15GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh index 1784048e63..241555ff42 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4N15GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMProbability.hh index 61c248d393..1b6b4a1645 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N15GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh index 1a41213e52..cc8f0199c5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N16GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh index 1e28ed7465..c5017287fa 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4N16GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMProbability.hh index 8ed73316cd..936a814f92 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N16GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh index 2dfd6d877a..639ad1d90d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4N17GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh index f9fd0bd8ec..cd6baa5fcc 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4N17GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMProbability.hh index 267e12b4d2..3f9edcb0af 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4N17GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh index 1c09956519..82359f6740 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na21GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh index 4ef2a5127d..20ec3c3fe0 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na21GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMProbability.hh index 615d6ab27d..58d2f0094f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na21GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh index bc12d40eca..382a48cfb7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na22GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh index 02b4470115..a4bd118a91 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na22GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMProbability.hh index 134a83e2aa..f0e55717f1 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na22GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh index 25088ebf88..d20a472c7d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na23GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh index acdbb31169..aa218ec8cd 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na23GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMProbability.hh index 24f4d6a641..e3842f73c4 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na23GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh index d77107e543..2b9fca6da0 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na24GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh index 9765cb5f0f..af13dc0f4b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na24GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMProbability.hh index 4359a22cec..65a0dbcc49 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na24GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh index f39479edca..b64d57af3b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na25GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh index 4219f23f16..5cbbfe141e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na25GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMProbability.hh index 1f2e65c62b..b17bf33702 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Na25GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh index 4078631b5e..e141620bc8 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne18GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh index 42ad1f190b..890eb6889b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne18GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMProbability.hh index 2cf787257a..4c7211dc5e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne18GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh index c09f60e73c..165070f122 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne19GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh index b56a6bb711..095f96b87a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne19GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMProbability.hh index a88df9a527..82ed7436ce 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne19GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh index 7b5f72e8d2..96522217b3 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne20GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh index 916a85390b..2664b80db9 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne20GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMProbability.hh index bd4142a7d2..7e3f469c24 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne20GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh index a709925567..9bf4c5da16 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne21GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh index 9873950b3e..2aa0f9e426 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne21GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMProbability.hh index 03be9f622d..8e82209a0d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne21GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh index a4ee07ec67..3d5a49a3cc 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne22GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh index 5a69980883..be7ec6bb97 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne22GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMProbability.hh index 2f70239645..6c38894e99 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne22GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh index 9d432185c1..cbdb3d3a2e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne23GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh index 1253712879..ca133dda96 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne23GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMProbability.hh index 681335ecda..24ea28f629 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne23GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh index 1b3e8d4f61..72cecbe781 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne24GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh index 88ee3b71c6..275d7f0784 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne24GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMProbability.hh index f69fb045de..76419c045b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4Ne24GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh index a26907ec1b..c4aa22a56c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronGEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMProbability.hh index 1e85a15edd..e6fc4be4a8 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronGEMProbability.hh,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh index 78f069e572..ff57e1799e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O14GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh index f8f6227316..92236c64a5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4O14GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMProbability.hh index a5861294c1..879078d289 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O14GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh index 898575518e..805ac8b4b1 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O15GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh index b1ec49a816..facf7556ba 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4O15GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMProbability.hh index 6d4fae2b5c..3fb1e69700 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O15GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh index 735af4f93a..7277dec4da 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O16GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh index b527ac10b9..c994fa2e18 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4O16GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMProbability.hh index 7efd200c80..1391c3ae06 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O16GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh index d276ad1cea..6bd1a47c2c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O17GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh index f6627a2278..202fed3165 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4O17GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMProbability.hh index 2d598adc08..ad70ebaf16 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O17GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh index c1c9727528..1e7888b314 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O18GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh index c369f41803..7dc9b93977 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4O18GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMProbability.hh index 61e3d7a094..c134871aed 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O18GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh index 2992059ed3..1f6d13af64 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O19GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh index 8f87f17a57..03056ad506 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4O19GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMProbability.hh index 24e3773f97..fc015df7de 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O19GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh index 9a64845db0..14f7251807 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4O20GEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh index 2d6d24fdae..4acb004b58 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4O20GEMCoulombBarrier.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMProbability.hh index 03c5dc8982..0f0a97a23c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4O20GEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh index a03cbfa939..e33863313a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonGEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMProbability.hh index 294f60096c..3378c23681 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonGEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh index 3b6c332243..f7c0f68739 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonGEMChannel.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMProbability.hh index e1f869f915..b8b8c03957 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonGEMProbability.hh,v 1.2 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMChannel.cc index 72240130c1..d5c1f6e0c7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaGEMChannel.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMProbability.cc index 544772d81c..1ac540e90c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaGEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B10GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B10GEMProbability.cc index bd7091e199..b35ec56a45 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B10GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B10GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B10GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B11GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B11GEMProbability.cc index 2a5c6ca65f..c9d2a1518d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B11GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B11GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B11GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B12GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B12GEMProbability.cc index 93afcac9f6..595fb601e2 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B12GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B12GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B12GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B13GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B13GEMProbability.cc index 5dadc33c15..502055438a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B13GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B13GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B13GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B8GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B8GEMProbability.cc index e605c3f4df..626a438ba5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B8GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B8GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4B8GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be10GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be10GEMProbability.cc index e9322532b4..4033349e04 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be10GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be10GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be10GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be11GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be11GEMProbability.cc index 04b948b22b..df7710813d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be11GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be11GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be11GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be12GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be12GEMProbability.cc index 6c75544690..f49511118e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be12GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be12GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be12GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be7GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be7GEMProbability.cc index 769777c99f..a5ca408753 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be7GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be7GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be7GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be9GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be9GEMProbability.cc index e4e36dd2fb..32132d5941 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be9GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be9GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Be9GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C10GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C10GEMProbability.cc index d95cc2267f..203722ce0e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C10GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C10GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C10GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C11GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C11GEMProbability.cc index d359688da9..389fa5849c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C11GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C11GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C11GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C12GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C12GEMProbability.cc index b2607599d0..753b44b37f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C12GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C12GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C12GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C13GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C13GEMProbability.cc index 252a4bbe24..6cb39704bc 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C13GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C13GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C13GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C14GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C14GEMProbability.cc index 666564037a..2fa29bf826 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C14GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C14GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C14GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C15GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C15GEMProbability.cc index 391a52f35a..1993fc1e6d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C15GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C15GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C15GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C16GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C16GEMProbability.cc index 6c1201a69d..dd0252d939 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C16GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C16GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4C16GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMChannel.cc index 7cfdb0c547..da677cf3a2 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronGEMChannel.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMProbability.cc index 062242c3be..385c51c9fd 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronGEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4EvaporationGEMFactory.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4EvaporationGEMFactory.cc index 9f7612213f..3080bca736 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4EvaporationGEMFactory.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4EvaporationGEMFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationGEMFactory.cc,v 1.6 2005/06/28 12:10:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F17GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F17GEMProbability.cc index 1766ee8cb1..2ffad8bf55 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F17GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F17GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F17GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F18GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F18GEMProbability.cc index 3767601add..869de2c3c7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F18GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F18GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F18GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F19GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F19GEMProbability.cc index 4e4ca0917a..87636d038d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F19GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F19GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F19GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F20GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F20GEMProbability.cc index c4ac910de8..83cdd14d5d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F20GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F20GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F20GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F21GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F21GEMProbability.cc index ba9a0beabc..0c33fa67bb 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F21GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F21GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4F21GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc index f8e27b442c..b8b33b7fc7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4GEMChannel.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc index 3fc6c0222f..2af4093e91 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GEMCoulombBarrierHE.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4GEMCoulombBarrierHE.cc,v 1.5 2005/11/23 16:40:09 miheikki Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -30,7 +30,7 @@ #include "G4GEMCoulombBarrierHE.hh" #include "G4HadronicException.hh" -#include +#include G4GEMCoulombBarrierHE::G4GEMCoulombBarrierHE(const G4GEMCoulombBarrierHE & ) : G4VCoulombBarrier() { @@ -61,13 +61,12 @@ G4double G4GEMCoulombBarrierHE::GetCoulombBarrier(const G4int ARes, const G4int { G4double Barrier = 0.0; if (ZRes > ARes || ARes < 1) { - char errMessage[1024]; - std::ostrstream errOs(errMessage,1024); + std::ostringstream errOs; errOs << "G4GEMCoulombBarrierHE::GetCoulombBarrier: "; errOs << "Wrong values for "; errOs << "residual nucleus A = " << ARes << " "; errOs << "and residual nucleus Z = " << ZRes << G4endl; - throw G4HadronicException(__FILE__, __LINE__, errMessage); + throw G4HadronicException(__FILE__, __LINE__, errOs.str()); } if (GetZ() == 0) { Barrier = 0.0; // If there is no charge there is neither barrier diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMChannel.cc index eebfdf779d..5ca33e66e3 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3GEMChannel.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMProbability.cc index f8727f6e3b..1ded69b1d5 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He6GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He6GEMProbability.cc index a5a8ff08f6..f8353c53c7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He6GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He6GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4He6GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He8GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He8GEMProbability.cc index d987f22e44..f58d6d4d4a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He8GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He8GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4He8GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li6GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li6GEMProbability.cc index d86280b29d..6f9c745c42 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li6GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li6GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li6GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li7GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li7GEMProbability.cc index e20950424e..020b91f634 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li7GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li7GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li7GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li8GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li8GEMProbability.cc index fd4abb40d2..827d3d137d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li8GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li8GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li8GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li9GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li9GEMProbability.cc index 6cd4d48528..e0d7db169c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li9GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li9GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Li9GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg22GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg22GEMProbability.cc index af2b025bf6..2d59dc1f2d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg22GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg22GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg22GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg23GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg23GEMProbability.cc index 6bb251e056..f58856c56d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg23GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg23GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg23GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg24GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg24GEMProbability.cc index e5bad1a11b..466aa0623f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg24GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg24GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg24GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg25GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg25GEMProbability.cc index a4d18f3d7c..bbc489a611 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg25GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg25GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg25GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg26GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg26GEMProbability.cc index 69024acd45..1092f97f62 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg26GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg26GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg26GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg27GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg27GEMProbability.cc index e146c43499..cc5f44d8c7 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg27GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg27GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg27GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg28GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg28GEMProbability.cc index a1d1857cfd..cce1173f69 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg28GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg28GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mg28GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N12GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N12GEMProbability.cc index 05459fba58..3bd483352e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N12GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N12GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N12GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N13GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N13GEMProbability.cc index 5da8012d14..461e45d961 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N13GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N13GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N13GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N14GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N14GEMProbability.cc index 71feab14c3..545056394f 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N14GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N14GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N14GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N15GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N15GEMProbability.cc index 79c16b30aa..ce547d4d6a 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N15GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N15GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N15GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N16GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N16GEMProbability.cc index 91c5bf4fdd..abb88d75d0 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N16GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N16GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N16GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N17GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N17GEMProbability.cc index 36017e221a..412be0a6e2 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N17GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N17GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4N17GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na21GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na21GEMProbability.cc index 2bfc6eb1a5..1ee3c99b88 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na21GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na21GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na21GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na22GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na22GEMProbability.cc index 5e5cefa185..f56d1eb875 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na22GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na22GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na22GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na23GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na23GEMProbability.cc index 6a9a76e8f7..6a3a76f626 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na23GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na23GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na23GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na24GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na24GEMProbability.cc index 5a2f9309db..f5f0d440bd 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na24GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na24GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na24GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na25GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na25GEMProbability.cc index 0abddb785f..16696766ff 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na25GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na25GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Na25GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne18GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne18GEMProbability.cc index 2d1c75a9f6..0288d40e06 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne18GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne18GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne18GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne19GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne19GEMProbability.cc index f71e7257a6..ad82bd0f39 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne19GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne19GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne19GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne20GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne20GEMProbability.cc index ea63e5725f..e3c901dfdb 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne20GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne20GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne20GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne21GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne21GEMProbability.cc index 1f94aee3f4..9a1cd41c10 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne21GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne21GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne21GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne22GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne22GEMProbability.cc index 57b393839c..2224e55d21 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne22GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne22GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne22GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne23GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne23GEMProbability.cc index a9f1e12e5a..0c0c830dec 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne23GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne23GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne23GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne24GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne24GEMProbability.cc index 71fa364a14..6675bab2c1 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne24GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne24GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4Ne24GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMChannel.cc index 4f05cbe2f4..fbd837f24e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronGEMChannel.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMProbability.cc index c5b3fa8968..239996770d 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronGEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O14GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O14GEMProbability.cc index 805a9adb45..1d4fed1d0b 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O14GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O14GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O14GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O15GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O15GEMProbability.cc index f9a5e94460..b7f194b523 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O15GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O15GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O15GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O16GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O16GEMProbability.cc index 1f45dbcbc5..de6d833149 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O16GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O16GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O16GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O17GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O17GEMProbability.cc index 365e8a60cf..dc5156cb8c 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O17GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O17GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O17GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O18GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O18GEMProbability.cc index b751b157e7..6572de9bed 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O18GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O18GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O18GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O19GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O19GEMProbability.cc index 91837715b6..baaef72f31 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O19GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O19GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O19GEMProbability.cc,v 1.4 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O20GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O20GEMProbability.cc index 3dc56cb379..7f8958f039 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O20GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O20GEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4O20GEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMChannel.cc index a6bc6b41f7..10c51118b6 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonGEMChannel.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMProbability.cc index 08545576aa..c884d1ab63 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonGEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept 2001) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMChannel.cc index a25cabaa70..75a6241b37 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonGEMChannel.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMProbability.cc index 3854c125d2..cb01965d9e 100644 --- a/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonGEMProbability.cc,v 1.3 2005/06/04 13:25:25 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh b/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh index 630b574d2b..d13d5133de 100644 --- a/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh +++ b/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitationHandler.hh,v 1.5 2005/06/04 13:26:14 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh index 9b04592041..41081cf937 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporationChannel.hh,v 1.2 2005/06/04 13:26:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh index 5331d4ea48..d2d1a505c0 100644 --- a/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporationFactory.hh,v 1.2 2005/06/04 13:26:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc index 081e382ed4..f7e75d620c 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporationChannel.cc,v 1.4 2005/06/04 13:26:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationFactory.cc b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationFactory.cc index e7c2b992e9..11a79e3a36 100644 --- a/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationFactory.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationFactory.cc @@ -22,7 +22,7 @@ // // // $Id: G4VEvaporationFactory.cc,v 1.4 2005/06/04 13:26:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.hh index 23f760cb6e..2dfef22af8 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.hh @@ -22,7 +22,7 @@ // // // $Id: G4Solver.hh,v 1.3 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMF.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMF.hh index 53fd1521be..dcf88f2ea9 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMF.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMF.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMF.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFChannel.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFChannel.hh index 5e5c464864..11b5c4a2ff 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFChannel.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFChannel.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFFragment.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFFragment.hh index 3e3a7597a7..c96ac8649d 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFFragment.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFFragment.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroBiNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroBiNucleon.hh index 552e01e63d..4f2a00aac6 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroBiNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroBiNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroBiNucleon.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroChemicalPotential.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroChemicalPotential.hh index e73a3e020a..0d4c600862 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroChemicalPotential.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroChemicalPotential.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroChemicalPotential.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiNucleon.hh index 8c2d43f7e0..c60254f415 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroMultiNucleon.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiplicity.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiplicity.hh index 439df12d5f..1adbb1d7df 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiplicity.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiplicity.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroMultiplicity.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroNucleon.hh index 6409a582b0..0c4f259b44 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroNucleon.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTemperature.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTemperature.hh index 1d245ff9ff..628da25efa 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTemperature.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTemperature.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTemperature.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTetraNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTetraNucleon.hh index cf0c053bc3..a3eca42b3c 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTetraNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTetraNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTetraNucleon.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTriNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTriNucleon.hh index 14d2ab3520..7bf52e7978 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTriNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTriNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTriNucleon.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroCanonical.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroCanonical.hh index 2320f48428..85938f8708 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroCanonical.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroCanonical.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMicroCanonical.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroManager.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroManager.hh index 0ea3c77249..e4465af7fe 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroManager.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMicroManager.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroPartition.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroPartition.hh index dce7bbc8a7..3fda23faa1 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroPartition.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroPartition.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMicroPartition.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFParameters.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFParameters.hh index a0cb80f9ca..12e90a9bc9 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFParameters.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4StatMFParameters.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VMultiFragmentation.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VMultiFragmentation.hh index 43e3503996..ba0ab893bb 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VMultiFragmentation.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VMultiFragmentation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMultiFragmentation.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFEnsemble.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFEnsemble.hh index 8a42f68822..19e96a88a1 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFEnsemble.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFEnsemble.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStatMFEnsemble.hh,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFMacroCluster.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFMacroCluster.hh index ce77f2d877..e9c77e2e23 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFMacroCluster.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFMacroCluster.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStatMFMacroCluster.hh,v 1.3 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4Solver.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4Solver.cc index f82b938d3f..d352f3f180 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4Solver.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4Solver.cc @@ -22,7 +22,7 @@ // // // $Id: G4Solver.cc,v 1.2 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMF.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMF.cc index d909b3675b..dadf8ed7dd 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMF.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMF.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMF.cc,v 1.4 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc index 9203bafc60..aeebf4b127 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFChannel.cc,v 1.5 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFFragment.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFFragment.cc index 4963ad6a1f..6fd1d80be5 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFFragment.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFFragment.cc,v 1.5 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroBiNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroBiNucleon.cc index 1d95b4d11e..7fc5461361 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroBiNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroBiNucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroBiNucleon.cc,v 1.4 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc index cfdde469c5..217e7a7544 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroCanonical.cc,v 1.5 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara // -------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroChemicalPotential.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroChemicalPotential.cc index a7b3ab33f6..32b0fb679a 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroChemicalPotential.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroChemicalPotential.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroChemicalPotential.cc,v 1.4 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiNucleon.cc index 29efbf8acd..865fe9bb68 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiNucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroMultiNucleon.cc,v 1.4 2005/06/04 13:27:48 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiplicity.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiplicity.cc index 6c91bc7dff..4848d1b546 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiplicity.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiplicity.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroMultiplicity.cc,v 1.4 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroNucleon.cc index 6e76ddf9be..98678f9824 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroNucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroNucleon.cc,v 1.4 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTemperature.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTemperature.cc index 8609465b41..78e3bc5bc8 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTemperature.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTemperature.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTemperature.cc,v 1.4 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTetraNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTetraNucleon.cc index 7870007a45..6cc16f765b 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTetraNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTetraNucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTetraNucleon.cc,v 1.4 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTriNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTriNucleon.cc index 70b186d7df..753b136b30 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTriNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTriNucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMacroTriNucleon.cc,v 1.4 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroCanonical.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroCanonical.cc index 0892748d6e..0d5b9990f2 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroCanonical.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroCanonical.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMicroCanonical.cc,v 1.5 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroManager.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroManager.cc index 5e72d61703..61150bc459 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroManager.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMicroManager.cc,v 1.4 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc index dce5feb75a..95c8396afe 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFMicroPartition.cc,v 1.6 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara // -------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFParameters.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFParameters.cc index 097f5f8b9b..dce16b89af 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFParameters.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFParameters.cc @@ -22,7 +22,7 @@ // // // $Id: G4StatMFParameters.cc,v 1.3 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VMultiFragmentation.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VMultiFragmentation.cc index edbab894d6..feaf976e7d 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VMultiFragmentation.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VMultiFragmentation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMultiFragmentation.cc,v 1.4 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFEnsemble.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFEnsemble.cc index 6d03e822e4..2cff64993e 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFEnsemble.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFEnsemble.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStatMFEnsemble.cc,v 1.4 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFMacroCluster.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFMacroCluster.cc index fc9c5cb509..bef40374b1 100644 --- a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFMacroCluster.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFMacroCluster.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStatMFMacroCluster.cc,v 1.3 2005/06/04 13:27:49 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.hh index 687bdfbaca..8862880c25 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.hh +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.hh @@ -20,89 +20,16 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// ----------------------------------------------------------------------- -// HEP Random -// --- G4RandGeneralTmp --- -// class header file // ----------------------------------------------------------------------- // Class defining methods for shooting generally distributed random values, // given a user-defined probability distribution function. -// ======================================================================= -// S.Magni & G.Pieri - Created: 29 April 1998 -// G.Cosmo - Added constructor using default engine from the -// static generator: 20 Aug 1998 -// ======================================================================= - #ifndef G4RandGeneralTmp_h #define G4RandGeneralTmp_h 1 -#include - -class G4RandGeneralTmp : public HepRandom { - -public: - - G4RandGeneralTmp ( G4double* aProbFunc, G4int theProbSize ); - G4RandGeneralTmp ( HepRandomEngine& anEngine, - G4double* aProbFunc, G4int theProbSize ); - G4RandGeneralTmp ( HepRandomEngine* anEngine, - G4double* aProbFunc, G4int theProbSize ); - // These constructors should be used to instantiate a G4RandGeneralTmp - // distribution object defining a local engine for it. - // The static generator will be skeeped using the non-static methods - // defined below. In case no engine is specified in the constructor, the - // default engine used by the static generator is applied. - // If the engine is passed by pointer the corresponding engine object - // will be deleted by the G4RandGeneralTmp destructor. - // If the engine is passed by reference the corresponding engine object - // will not be deleted by the RandGauss destructor. - // The probability distribution function (Pdf) must be provided by the user - // as an array of positive real number. The array size must also be - // provided. The Pdf doesn't need to be normalized to 1. - - virtual ~G4RandGeneralTmp(); - // Destructor - - // Methods to shoot random values using the static generator - // N.B.: The methods are NOT static since they use nonstatic members - // theIntegralPdf & nBins - - inline G4double shoot(); - - inline void shootArray ( const G4int size, G4double* vect); - - // Methods to shoot random values using a given engine - // by-passing the static generator. - - G4double shoot( HepRandomEngine* anEngine ); - - void shootArray ( HepRandomEngine* anEngine, const G4int size, - G4double* vect ); - - // Methods using the localEngine to shoot random values, by-passing - // the static generator. - - G4double fire(); - - void fireArray ( const G4int size, G4double* vect); - - G4double operator()(); - -private: - - // Private copy constructor. Defining it here disallows use. - G4RandGeneralTmp(const G4RandGeneralTmp&) : HepRandom() {;} - - HepRandomEngine* localEngine; - G4bool deleteEngine; - G4double* theIntegralPdf; - G4int nBins; - -}; - -#include "G4RandGeneralTmp.icc" +#include + +typedef CLHEP::RandGeneral G4RandGeneralTmp; #endif diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DiscreteGammaDeexcitation.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DiscreteGammaDeexcitation.cc index 861b4a745d..e722f9932e 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DiscreteGammaDeexcitation.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DiscreteGammaDeexcitation.cc @@ -54,7 +54,7 @@ #include "G4ios.hh" #include -#include +#include G4DiscreteGammaDeexcitation::G4DiscreteGammaDeexcitation(): diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelManager.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelManager.cc index e8b0918fef..5e9a6bf1ef 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelManager.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelManager.cc @@ -49,7 +49,7 @@ #include "G4HadronicException.hh" #include #include -#include +#include #include #include "G4HadTmpUtil.hh" diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelStore.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelStore.cc index d421bc6283..2201312896 100644 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelStore.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelStore.cc @@ -23,7 +23,7 @@ // #include "G4NuclearLevelStore.hh" -#include +#include std::map G4NuclearLevelStore::theManagers; G4String G4NuclearLevelStore::dirName(""); @@ -61,10 +61,9 @@ G4NuclearLevelStore::~G4NuclearLevelStore() G4String G4NuclearLevelStore::GenerateKey(const G4int Z, const G4int A) { - char chname[10] = {' '}; - std::ostrstream streamName(chname, 10, std::ios::out); + std::ostringstream streamName; streamName << 'z' << Z << ".a" << A; - G4String name(chname); + G4String name(streamName.str()); return name; } diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4RandGeneralTmp.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4RandGeneralTmp.cc deleted file mode 100644 index 7c775cd8b3..0000000000 --- a/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4RandGeneralTmp.cc +++ /dev/null @@ -1,163 +0,0 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// ----------------------------------------------------------------------- -// HEP Random -// --- RandGeneralTmp --- -// class implementation file -// ----------------------------------------------------------------------- - -// Class defining methods for shooting generally distributed random values, -// given a user-defined probability distribution function. - -// ======================================================================= -// S.Magni & G.Pieri - Created: 29th April 1998 -// G.Cosmo - Added constructor using default engine from the -// static generator. Simplified shoot() and -// shootArray() (not needed in principle!): 20 Aug 1998 -// ======================================================================= - -#include "globals.hh" -#include "G4RandGeneralTmp.hh" - -////////////////// -// Constructors -////////////////// - -G4RandGeneralTmp::G4RandGeneralTmp(G4double* aProbFunc, G4int theProbSize ) -: deleteEngine(false), nBins(theProbSize) -{ - localEngine = HepRandom::getTheEngine(); - register G4int ptn; - theIntegralPdf = new G4double[theProbSize]; - theIntegralPdf[0] = 0; - for ( ptn = 1; ptnflat(); - - while(nabove-nbelow > 1) { - middle = ( nabove + nbelow ) / 2; - if (rand == theIntegralPdf[middle-1]) break; - if (rand < theIntegralPdf[middle-1]) nabove = middle; - else nbelow = middle; - } - - return ((G4double)nbelow - 1) / nBins; -} - -void G4RandGeneralTmp::shootArray( HepRandomEngine* anEngine, - const G4int size, G4double* vect ) -{ - register G4int i; - - for (i=0; iflat(); - - while(nabove-nbelow > 1) { - middle = ( nabove + nbelow ) / 2; - if (rand == theIntegralPdf[middle-1]) break; - if (rand < theIntegralPdf[middle-1]) nabove = middle; - else nbelow = middle; - } - - return ((G4double)nbelow - 1) / nBins; - -} - -void G4RandGeneralTmp::fireArray( const G4int size, G4double* vect ) -{ - register G4int i; - - for (i=0; iSetEnergyFrom(_nucleus.GetExcitationEnergy()); + if ( _vSN != -1) (dynamic_cast (_transition))->SetICM(false); } return; @@ -282,7 +283,9 @@ void G4VGammaDeexcitation::Update() void G4VGammaDeexcitation::Initialize() { _transition = CreateTransition(); - if (_transition != 0) _transition->SetEnergyFrom(_nucleus.GetExcitationEnergy()); + if (_transition != 0) { + _transition->SetEnergyFrom(_nucleus.GetExcitationEnergy()); + } return; } diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4AlphaCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4AlphaCoulombBarrier.hh index bf7b383b45..0261bbc2b7 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4AlphaCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4AlphaCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4AlphaCoulombBarrier.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh index 0bf3a54ac9..a64257ffbc 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CameronGilbertPairingCorrections.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh index 8ee85cc3b9..272cb984a3 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CameronGilbertShellCorrections.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh index 621c53add0..c903ac8fc8 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CameronShellPlusPairingCorrections.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh index b1ac41a016..8617deb951 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CameronTruranHilfPairingCorrections.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh index d038e126ed..acff77f4b1 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CameronTruranHilfShellCorrections.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh index 3941e1587d..9e56d90f4e 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4ConstantLevelDensityParameter.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations (photon evaporation) // by C. Dallapiccola (Nov 1998) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh index 2f476c6fa4..fcba63cc5d 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CookPairingCorrections.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh index 687c49914f..0be05f4c35 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh @@ -22,7 +22,7 @@ // // // $Id: G4CookShellCorrections.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh index 6a500ac982..faa7e3c3fb 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4CoulombBarrier.hh,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh index 3b6fe63edc..6facc4b1e0 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronCoulombBarrier.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh index bfb4a71662..ee9e6ae14c 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationLevelDensityParameter.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh index 78d089a37f..d34d35d4b3 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3CoulombBarrier.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh index 775c0445df..070bee4a90 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronCoulombBarrier.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh b/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh index 459563c06c..657d439350 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh @@ -22,7 +22,7 @@ // // // $Id: G4PairingCorrection.hh,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh index 053d0ce480..b6b25d92db 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProtonCoulombBarrier.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh index 65fef9ac55..2fbadaaf20 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShellCorrection.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh index 2675aa5816..869bbba67b 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4TritonCoulombBarrier.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh index 1224cb9194..51d0785b08 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCoulombBarrier.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh index 36feda38c0..aff0558156 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh @@ -22,7 +22,7 @@ // // // $Id: G4VEmissionProbability.hh,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh index 13468dec6a..a20793303b 100644 --- a/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4VLevelDensityParameter.hh,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc index 542eeae3d9..918383a554 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4AlphaCoulombBarrier.cc,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc index 07b209d864..d52dfe297e 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CameronGilbertPairingCorrections.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc index e151cea3a8..528ac6487b 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CameronGilbertShellCorrections.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc index 793402080b..fb1a4eae11 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CameronShellPlusPairingCorrections.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc index 48b7836ed2..d0ab4811a3 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CameronTruranHilfPairingCorrections.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc index 6bad715f26..4161ca56fb 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CameronTruranHilfShellCorrections.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc index 6f7279feee..321a07ed14 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CookPairingCorrections.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc index 2cf3712999..269f8803fd 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc @@ -22,7 +22,7 @@ // // // $Id: G4CookShellCorrections.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc index 82a5901692..ea0bff0d3a 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CoulombBarrier.cc,v 1.4 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4CoulombBarrier.cc,v 1.5 2005/11/23 17:14:51 miheikki Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -30,7 +30,7 @@ #include "G4CoulombBarrier.hh" #include "G4HadronicException.hh" -#include +#include G4CoulombBarrier::G4CoulombBarrier(const G4CoulombBarrier & ) : G4VCoulombBarrier() { @@ -61,13 +61,13 @@ G4double G4CoulombBarrier::GetCoulombBarrier(const G4int ARes, const G4int ZRes, { G4double Barrier = 0.0; if (ZRes > ARes || ARes < 1) { - char errMessage[1024]; - std::ostrstream errOs(errMessage,1024); + std::ostringstream errOs; errOs << "G4CoulombBarrier::GetCoulombBarrier: "; errOs << "Wrong values for "; errOs << "residual nucleus A = " << ARes << " "; errOs << "and residual nucleus Z = " << ZRes << G4endl; - throw G4HadronicException(__FILE__, __LINE__, errMessage); + + throw G4HadronicException(__FILE__, __LINE__, errOs.str()); } if (GetA() == 1 && GetZ() == 0) { Barrier = 0.0; // Neutron Coulomb Barrier is 0 diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc index 1a11b26fe7..17aad46036 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4DeuteronCoulombBarrier.cc,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc index c0fcae51ac..1b25bda0a3 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4EvaporationLevelDensityParameter.cc,v 1.4 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc index d16334e47a..8eea717b99 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3CoulombBarrier.cc,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4NeutronCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4NeutronCoulombBarrier.cc index ff78089991..f26de07602 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4NeutronCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4NeutronCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronCoulombBarrier.cc,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc b/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc index 02e610a6d2..f78784e2bf 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc @@ -22,7 +22,7 @@ // // // $Id: G4PairingCorrection.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc index dcf50dfe5f..0a52f4e796 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProtonCoulombBarrier.cc,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc b/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc index 5f4ed5dffb..e1fe44a5e4 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShellCorrection.cc,v 1.2 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc index 74ccfd49af..2b13107d41 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc @@ -22,7 +22,7 @@ // // // $Id: G4TritonCoulombBarrier.cc,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc index 8212aaea19..67b7a96f4b 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCoulombBarrier.cc,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VCoulombBarrier.cc,v 1.4 2005/11/23 17:19:15 miheikki Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -30,7 +30,7 @@ #include "G4VCoulombBarrier.hh" #include "G4HadronicException.hh" -#include +#include G4VCoulombBarrier::G4VCoulombBarrier(const G4int anA, const G4int aZ) { @@ -38,13 +38,12 @@ G4VCoulombBarrier::G4VCoulombBarrier(const G4int anA, const G4int aZ) theA = anA; theZ = aZ; } else { - char errMessage[1024]; - std::ostrstream errOs(errMessage,1024); + std::ostringstream errOs; errOs << "G4VCoulombBarrier::G4VCoulombBarrier: "; errOs << "Wrong values for "; errOs << "A = " << anA << " "; errOs << "and Z = " << aZ << G4endl; - throw G4HadronicException(__FILE__, __LINE__, errMessage); + throw G4HadronicException(__FILE__, __LINE__, errOs.str()); } } diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc index 803fa5cdc4..53cccdec53 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc @@ -22,7 +22,7 @@ // // // $Id: G4VEmissionProbability.cc,v 1.4 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc index b0d829417d..8d86a6788a 100644 --- a/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4VLevelDensityParameter.cc,v 1.3 2005/06/04 13:29:20 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh index 9633083fe0..57ea46e5e6 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiKaonZeroInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh index 72781cb91f..33f86eb31e 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiLambdaInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh index c697553d78..68e52a6a15 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiNeutronInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh index 507248108f..10a96b3d20 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiOmegaMinusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh index b8e454ef25..e53e392569 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiProtonInelastic.hh,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh index 36d8985e5f..da8b26089a 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaMinusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh index 969f5a2418..c5111d711a 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaPlusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh index 09883c6684..c98d29d9cd 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaZeroInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh index c3a788dede..273acc868d 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiXiMinusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh index c55318466e..236bcb7aea 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiXiZeroInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh index 43b739a79b..7a8654922a 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy (GHE) model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh index e851815931..a424de081b 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonMinusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh index 7a3d4cfd17..3fee7ea3da 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonPlusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh index ed378e9739..53df54a432 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroInelastic.hh,v 1.11 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh index d09b0b05df..391aa7829e 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroLongInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh index ed22fca502..7fe97bb018 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroShortInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh index cd072c9c74..3d20ee3cf3 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HELambdaInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh index 65a7ef0d11..b7b3bebbf5 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HENeutronInelastic.hh,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh index 7c012fc160..499619cc3c 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEOmegaMinusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh index 6e42f0354e..021ca52c6e 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPionMinusInelastic.hh,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh index 765d984c30..d959687105 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPionPlusInelastic.hh,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh b/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh index c02a97fc1d..c5fb65aa0d 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPlot.hh,v 1.8 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha friend class G4HEPlot -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh index ef5186c194..382292a502 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEProtonInelastic.hh,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh index 62f6aa67c1..bf12f451de 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaMinusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh index 0d8cea0090..c4f77f19ee 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaPlusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh index bd6ca26d05..245c28cf95 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaZeroInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEVector.hh b/source/processes/hadronic/models/high_energy/include/G4HEVector.hh index f84865b496..32c807858d 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEVector.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEVector.hh,v 1.11 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha friend class G4KinematicParticle -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh index d89fd1745f..47560bed51 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEXiMinusInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh index 5b79ae4304..eba578599c 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEXiZeroInelastic.hh,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc index de5a6953b4..74806aff31 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiKaonZeroInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc index 4767190cdc..a4086b5c94 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiLambdaInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc index b2cba30d97..495e068edb 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiNeutronInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc index 51baa4ba35..27e1ba6473 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiOmegaMinusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc index 2e9a4730b4..24b859e1d6 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiProtonInelastic.cc,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc index 14c9049449..7682d1f1f8 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaMinusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc index 4c148995f1..d85007ad13 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaPlusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc index 104ea6d2a3..d86291b74f 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiSigmaZeroInelastic.cc,v 1.9 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc index e2569f5b7f..e5d8cef374 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiXiMinusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc index eb8b197e0a..a83cbe3a5e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEAntiXiZeroInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEKaonMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEKaonMinusInelastic.cc index 37b1b46e42..3ff2e93c6b 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEKaonMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEKaonMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonMinusInelastic.cc,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEKaonPlusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEKaonPlusInelastic.cc index 35f7683b14..5fc5f11105 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEKaonPlusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEKaonPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonPlusInelastic.cc,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroInelastic.cc index 39850504ff..82ea617700 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroLongInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroLongInelastic.cc index cff5054049..b9be6fd97e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroLongInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroLongInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroLongInelastic.cc,v 1.9 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroShortInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroShortInelastic.cc index cba4671bf5..6d20a95c75 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroShortInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEKaonZeroShortInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEKaonZeroShortInelastic.cc,v 1.9 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HELambdaInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HELambdaInelastic.cc index da22926af5..050cf92ce7 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HELambdaInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HELambdaInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HELambdaInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HENeutronInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HENeutronInelastic.cc index 897962b10e..e13fbf244e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HENeutronInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HENeutronInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HENeutronInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEOmegaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEOmegaMinusInelastic.cc index 74cc1fe401..34492b2427 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEOmegaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEOmegaMinusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEPionMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEPionMinusInelastic.cc index e744a13794..49c8fc8383 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEPionMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEPionMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEPionMinusInelastic.cc,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEPionPlusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEPionPlusInelastic.cc index 996b0b1898..fcd10f3a08 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEPionPlusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEPionPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEPionPlusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEPlot.cc b/source/processes/hadronic/models/high_energy/src/G4HEPlot.cc index e200d0fb7d..ee58754d53 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEPlot.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEPlot.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEPlot.cc,v 1.10 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEProtonInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEProtonInelastic.cc index 1e114f21c5..dcb22de1f9 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEProtonInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEProtonInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEProtonInelastic.cc,v 1.12 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HESigmaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HESigmaMinusInelastic.cc index 2b1cc17aaa..5888b48eb5 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HESigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HESigmaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaMinusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HESigmaPlusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HESigmaPlusInelastic.cc index eaf61b2b9e..72dfc3dd17 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HESigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HESigmaPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaPlusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HESigmaZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HESigmaZeroInelastic.cc index ccd7b398c8..2d14ebbf3f 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HESigmaZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HESigmaZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HESigmaZeroInelastic.cc,v 1.10 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEVector.cc b/source/processes/hadronic/models/high_energy/src/G4HEVector.cc index 2c417312ca..415a34d700 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEVector.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEVector.cc,v 1.18 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEXiMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEXiMinusInelastic.cc index e2c6583a84..3fdfb3cdc3 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEXiMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEXiMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEXiMinusInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/high_energy/src/G4HEXiZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEXiZeroInelastic.cc index 5e56455cfd..910babbed4 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEXiZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEXiZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4HEXiZeroInelastic.cc,v 1.13 2005/06/04 13:32:52 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/hadronic/models/im_r_matrix/include/G4CollisionInitialState.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionInitialState.hh index f42120d0c2..eebc8b0f6b 100644 --- a/source/processes/hadronic/models/im_r_matrix/include/G4CollisionInitialState.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionInitialState.hh @@ -22,7 +22,7 @@ // // // $Id: G4CollisionInitialState.hh,v 1.4.4.1 2004/03/24 13:18:28 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: G4CollisionInitialState.hh,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/im_r_matrix/include/G4ListOfCollisions.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ListOfCollisions.hh index b8b8e21b24..82557f9827 100644 --- a/source/processes/hadronic/models/im_r_matrix/include/G4ListOfCollisions.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4ListOfCollisions.hh @@ -22,7 +22,7 @@ // // // $Id: G4ListOfCollisions.hh,v 1.1.4.1 2004/03/24 13:18:28 hpw Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: G4ListOfCollisions.hh,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh b/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh index 8c82b7f178..ddb88dca02 100644 --- a/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh +++ b/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh @@ -22,7 +22,7 @@ // // // $Id: G4Mars5GeV.hh,v 1.4 2005/06/04 13:36:03 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc b/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc index 958c3a4e4b..1d96b85cdc 100644 --- a/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc +++ b/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc @@ -22,7 +22,7 @@ // // // $Id: G4Mars5GeV.cc,v 1.13 2005/06/04 13:36:03 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/low_energy/History b/source/processes/hadronic/models/low_energy/History new file mode 100644 index 0000000000..e6021f2418 --- /dev/null +++ b/source/processes/hadronic/models/low_energy/History @@ -0,0 +1,48 @@ +------------------------------------------------------------------- + + ================================================== + Geant4 - an Object-Oriented Toolkit for Simulation + ================================================== + + History file for Low Energy Parameterized Models + ------------------------------------------------ + +This file should be used to summarize modifications introduced in the +code and to keep track of all tags. + + --------------------------------------------------------------- + * Please list in reverse chronological order (last date on top) + --------------------------------------------------------------- + +14 Dec 2005 - V.Ivanchenko (hadr-lep-V07-01-04) +---------------------------------------------- + G4LElastic.cc: restore version 1.19 + G4LElasticB: alternative version with 4-momentum balance + +03 Dec 2005 - V.Ivanchenko (hadr-lep-V07-01-03) +---------------------------------------------- + G4LElastic.cc: add protection in center of mass reference system (20 MeV/c), + which was before in lab system. Below this momentum model is not valid + +29 Nov 2005 - G.Cosmo (hadr-lep-V07-01-02) +------------------------------------------ + Get rid of problematic printout in G4LElastic.cc causing porting + issues on VC++ compiler. + +28 Nov 2005 - V.Ivanchenko (hadr-lep-V07-01-01) +---------------------------------------------- + 26 Nov 2005 - Fix of cosT calculation (internal unit for Q^2 is GeV) + +24 Nov 2005 - D.Wright (hadr-lep-V07-01-00) +------------------------------------------- + 22 Nov 2005 - G.Cosmo + G4LElastic.cc: use std::numeric_limits instead of FLT_MAX for porting on + MSVC++8.0 compiler. + + 24 Nov 2005 - V. Ivanchenko + G4LElastic.cc: calculate cos(theta) in CM system (as it should be) + + 17 Nov 2005 - D.Wright + G4LCapture.cc: in method ApplyYourself, fixed unit bug in gamma momentum + and added 2.2 MeV gamma for special case of n capture on H + diff --git a/source/processes/hadronic/models/low_energy/include/G4LCapture.hh b/source/processes/hadronic/models/low_energy/include/G4LCapture.hh index 08d2ced8ec..ab7342e6ec 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LCapture.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LCapture.hh @@ -22,7 +22,7 @@ // // // $Id: G4LCapture.hh,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Low energy model: neutron capture -- header file diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh index 047ee44159..89ac50a830 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAlphaInelastic.hh,v 1.8 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy Alpha Inelastic Process // J.L. Chuma, TRIUMF, 21-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh index 42b39ac4e5..46dd8eafe6 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiKaonZeroInelastic.hh,v 1.5 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy KaonZeroL Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh index 95ad959865..ba4f123736 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiLambdaInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy AntiLambda Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh index 2c2f2fd772..99640969b4 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiNeutronInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh index a1ec5d391e..6f085400ce 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiOmegaMinusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy AntiOmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh index 04c1f1ef5f..8c3db5bd8d 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiProtonInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh index 4e197b7905..c6d7c58eb1 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiSigmaMinusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy AntiSigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh index 0d249e3e96..2fba548836 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiSigmaPlusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy AntiSigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh index 69b680866f..b7b04bbe97 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiXiMinusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy AntiXiMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh index 8dcb717091..519cfbe089 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiXiZeroInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh index 4a62c6392b..039ed2977c 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEDeuteronInelastic.hh,v 1.8 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy Deuteron Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh index 1a3117938f..1ac3de28a2 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonMinusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy KaonMinus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh index 90bae9f5d2..e1144948ab 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonPlusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh index f076f0ca28..fa86707bac 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonZeroInelastic.hh,v 1.5 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy KaonZeroS Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh index e32b4ff3fb..126fc665e2 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonZeroLInelastic.hh,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh index 3534f903aa..b4bb1b546d 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonZeroSInelastic.hh,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Gheisha High Energy model class -- header file diff --git a/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh index 30b6abd751..97a01025fd 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LELambdaInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh index e45fed248c..12722c6bf5 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEOmegaMinusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh index 8e055af77d..33f14e97f0 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEPionMinusInelastic.hh,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy PionMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh index 924e15db6a..759083bc96 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEPionPlusInelastic.hh,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh index 2c46cbb1a1..629c044012 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEProtonInelastic.hh,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy Proton Inelastic Process // original by H.P. Wellisch diff --git a/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh index b91270a7f8..ede221b537 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LESigmaMinusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy SigmaMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh index c7ffb01120..8bc680c588 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LESigmaPlusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy SigmaPlus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh index e0ab992b32..ef6befc637 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LETritonInelastic.hh,v 1.8 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy Triton Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh index 73a03bb2e3..ef3313e61e 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEXiMinusInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy XiMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh index 5a14bad163..c22a3d0fa5 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LEXiZeroInelastic.hh,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy XiZero Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/include/G4LElastic.hh b/source/processes/hadronic/models/low_energy/include/G4LElastic.hh index a4d25e31c7..02f5e64b26 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LElastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LElastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4LElastic.hh,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Model: Low energy elastic scattering -- header file diff --git a/source/processes/hadronic/models/low_energy/include/G4LElasticB.hh b/source/processes/hadronic/models/low_energy/include/G4LElasticB.hh new file mode 100644 index 0000000000..134c412fa5 --- /dev/null +++ b/source/processes/hadronic/models/low_energy/include/G4LElasticB.hh @@ -0,0 +1,97 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4LElasticB.hh,v 1.1 2005/12/14 18:13:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// G4 Model: Low energy elastic scattering with 4-momentum balance +// Derived fron G4LElastic of F.W. Jones, TRIUMF, 04-JUN-96 +// +// Modified: +// 14-Dec-05 V.Ivanchenko rename the class +// +// use -scheme for elastic scattering: HPW, 20th June 1997 +// most of the code comes from the old Low-energy Elastic class +// + + +#ifndef G4LElasticB_h +#define G4LElasticB_h 1 + +// Class Description +// Final state production model for hadron nuclear elastic scattering; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "globals.hh" +#include "Randomize.hh" +#include "G4Element.hh" +#include "G4ElementVector.hh" +#include "G4ElementTable.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsVector.hh" +#include "G4LPhysicsFreeVector.hh" +//#include "G4HadronicCrossSections.hh" +#include "G4LightMedia.hh" +#include "G4Step.hh" +#include "G4TrackStatus.hh" +#include "G4HadronicInteraction.hh" + + +class G4LElasticB : public G4HadronicInteraction +{ +public: + + G4LElasticB() : G4HadronicInteraction() + { + SetMinEnergy( 0.0*GeV ); + SetMaxEnergy( DBL_MAX ); + } + + ~G4LElasticB() {}; + + G4HadFinalState * ApplyYourself(const G4HadProjectile & aTrack, + G4Nucleus & targetNucleus); + +private: + + + G4LightMedia LightMedia; + + G4int Rtmi(G4double* x, G4double xli, G4double xri, G4double eps, + G4int iend, + G4double aa, G4double bb, G4double cc, G4double dd, + G4double rr); + + G4double Fctcos(G4double t, + G4double aa, G4double bb, G4double cc, G4double dd, + G4double rr); + + void Defs1(G4double p, G4double px, G4double py, G4double pz, + G4double pxinc, G4double pyinc, G4double pzinc, + G4double* pxnew, G4double* pynew, G4double* pznew); +}; +#endif diff --git a/source/processes/hadronic/models/low_energy/include/G4LFission.hh b/source/processes/hadronic/models/low_energy/include/G4LFission.hh index 1616f8c2b9..927788fafc 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LFission.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LFission.hh @@ -22,7 +22,7 @@ // // // $Id: G4LFission.hh,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Low-energy Model: Fission -- header file diff --git a/source/processes/hadronic/models/low_energy/src/G4LCapture.cc b/source/processes/hadronic/models/low_energy/src/G4LCapture.cc index 09b14fbf7d..566aeb9e53 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LCapture.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LCapture.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LCapture.cc,v 1.11 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LCapture.cc,v 1.12 2005/11/17 23:10:26 dennis Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Model: Low-energy Neutron Capture @@ -66,9 +66,9 @@ G4LCapture::ApplyYourself(const G4HadProjectile & aTrack, G4Nucleus& targetNucle const G4LorentzVector theMom = aTrack.Get4Momentum(); G4double P = theMom.vect().mag()/GeV; - G4double Px = theMom.vect().x(); - G4double Py = theMom.vect().y(); - G4double Pz = theMom.vect().z(); + G4double Px = theMom.vect().x()/GeV; + G4double Py = theMom.vect().y()/GeV; + G4double Pz = theMom.vect().z()/GeV; G4double E = theMom.e()/GeV; G4double E0 = aTrack.GetDefinition()->GetPDGMass()/GeV; G4double Q = aTrack.GetDefinition()->GetPDGCharge(); @@ -82,7 +82,9 @@ G4LCapture::ApplyYourself(const G4HadProjectile & aTrack, G4Nucleus& targetNucle G4cout << "mass " << E0 << " GeV" << G4endl; G4cout << "charge " << Q << G4endl; } -// GHEISHA ADD operation to get total energy, mass, charge: + + // GHEISHA ADD operation to get total energy, mass, charge: + if (verboseLevel > 1) { G4cout << "G4LCapture:ApplyYourself: material:" << G4endl; G4cout << "A " << N << G4endl; @@ -105,10 +107,15 @@ G4LCapture::ApplyYourself(const G4HadProjectile & aTrack, G4Nucleus& targetNucle Py = -Py; Pz = -Pz; -// Make a gamma... + // Make a gamma... - G4double ran = G4RandGauss::shoot(); - G4double p = 0.0065 + ran*0.0010; + G4double p; + if (Z == 1 && N == 1) { // special case for hydrogen + p = 0.0022; + } else { + G4double ran = G4RandGauss::shoot(); + p = 0.0065 + ran*0.0010; + } G4double ran1 = G4UniformRand(); G4double ran2 = G4UniformRand(); @@ -134,33 +141,34 @@ G4LCapture::ApplyYourself(const G4HadProjectile & aTrack, G4Nucleus& targetNucle G4ThreeVector(px*GeV, py*GeV, pz*GeV)); theParticleChange.AddSecondary(aGamma); -// Make another gamma if there is sufficient energy left over... + // Make another gamma if there is sufficient energy left over... G4double xp = 0.008 - p; - if (xp <= 0.) return &theParticleChange; + if (xp > 0.) { + if (Z > 1 || N > 1) { + ran1 = G4UniformRand(); + ran2 = G4UniformRand(); + cost = -1. + 2.*ran1; + sint = std::sqrt(std::abs(1. - cost*cost)); + phi = ran2*twopi; - ran1 = G4UniformRand(); - ran2 = G4UniformRand(); - cost = -1. + 2.*ran1; - sint = std::sqrt(std::abs(1. - cost*cost)); - phi = ran2*twopi; + px = xp*sint*std::sin(phi); + py = xp*sint*std::cos(phi); + pz = xp*cost; + e = xp; + e0 = 0.; - px = xp*sint*std::sin(phi); - py = xp*sint*std::cos(phi); - pz = xp*cost; - e = xp; - e0 = 0.; + a = px*Px + py*Py + pz*Pz; + a = (a/(E + E0) - e)/E0; - a = px*Px + py*Py + pz*Pz; - a = (a/(E + E0) - e)/E0; - - px = px + a*Px; - py = py + a*Py; - pz = pz + a*Pz; - - aGamma = new G4DynamicParticle(G4Gamma::GammaDefinition(), - G4ThreeVector(px*GeV, py*GeV, pz*GeV)); - theParticleChange.AddSecondary(aGamma); + px = px + a*Px; + py = py + a*Py; + pz = pz + a*Pz; + aGamma = new G4DynamicParticle(G4Gamma::GammaDefinition(), + G4ThreeVector(px*GeV, py*GeV, pz*GeV)); + theParticleChange.AddSecondary(aGamma); + } + } return &theParticleChange; } diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiKaonZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiKaonZeroInelastic.cc index 4b9675716a..15ae9de2a3 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiKaonZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiKaonZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiKaonZeroInelastic.cc,v 1.9 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy KaonZeroLong Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc index c6af95aa55..a4b8d8e59d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiLambdaInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: AntiLambda Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc index 8b1d25a1f2..396fecff13 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiNeutronInelastic.cc,v 1.13 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc index 0c30d70fd9..3fbc53bbee 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiOmegaMinusInelastic.cc,v 1.11 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: AntiOmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc index 1e1cb41ff7..c491eba508 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiProtonInelastic.cc,v 1.13 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 13-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc index 50285faa6c..377d13b09a 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiSigmaMinusInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: AntiSigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc index 243e62062e..478d575bfe 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiSigmaPlusInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: AntiSigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc index e267e76880..bb2ada8887 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiXiMinusInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: AntiXiMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc index e33ad420fc..859ee3e003 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEAntiXiZeroInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc index 51b15a1ae4..62f50ba050 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonMinusInelastic.cc,v 1.14 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy KaonMinus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc index 6e2a02d93e..a28abc9bac 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonPlusInelastic.cc,v 1.12 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc index dc6265b2f9..9b0833b8bd 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEKaonZeroInelastic.cc,v 1.8 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Low Energy KaonZeroShort Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc index c50f8b53d0..2f999fa1ed 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LELambdaInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc index 5d90a114d3..e1b8a6be41 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEOmegaMinusInelastic.cc,v 1.11 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc index a62ec746f2..6870705968 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEPionPlusInelastic.cc,v 1.13 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 diff --git a/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc index 180d02f92e..ead19f6b57 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LESigmaMinusInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: SigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc index 612284686c..297f8d915d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LESigmaPlusInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: SigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc index f664c93c2e..033784e04b 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEXiMinusInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEXiMinusInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: XiMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc index c14a073322..405cc48525 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc @@ -22,7 +22,7 @@ // // // $Id: G4LEXiZeroInelastic.cc,v 1.10 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: XiZero Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 diff --git a/source/processes/hadronic/models/low_energy/src/G4LElastic.cc b/source/processes/hadronic/models/low_energy/src/G4LElastic.cc index 1e4a337dca..421aa2b670 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LElastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LElastic.cc @@ -32,6 +32,7 @@ // most of the code comes from the old Low-energy Elastic class // // 25-JUN-98 FWJ: replaced missing Initialize for ParticleChange. +// 14-DEC-05 V.Ivanchenko: restore 1.19 version (7.0) // #include "globals.hh" @@ -148,7 +149,6 @@ G4LElastic::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& targetNucleu G4double t1 = -std::log(ran)/bb; G4double t2 = -std::log(ran)/dd; if (verboseLevel > 1) { - G4cout << "log(FLT_MAX)=" << std::log(FLT_MAX) << G4endl; G4cout << "t1,Fctcos " << t1 << " " << Fctcos(t1, aa, bb, cc, dd, rr) << G4endl; G4cout << "t2,Fctcos " << t2 << " " << Fctcos(t2, aa, bb, cc, dd, rr) << diff --git a/source/processes/hadronic/models/low_energy/src/G4LElasticB.cc b/source/processes/hadronic/models/low_energy/src/G4LElasticB.cc new file mode 100644 index 0000000000..b9cee8df2d --- /dev/null +++ b/source/processes/hadronic/models/low_energy/src/G4LElasticB.cc @@ -0,0 +1,406 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// +// Physics model class G4LElasticB (derived from G4LElastic) +// +// G4 Model: Low-energy Elastic scattering with 4-momentum balance +// F.W. Jones, TRIUMF, 04-JUN-96 +// +// use -scheme for elastic scattering: HPW, 20th June 1997 +// most of the code comes from the old Low-energy Elastic class +// +// 25-JUN-98 FWJ: replaced missing Initialize for ParticleChange. +// 09-Set-05 V.Ivanchenko HARP version of the model: fix scattering +// on hydrogen, use relativistic Lorentz transformation +// 24-Nov-05 V.Ivanchenko sample cost in center of mass reference system +// 03-Dec-05 V.Ivanchenko add protection to initial momentum 20 MeV/c in +// center of mass system (before it was in lab system) +// below model is not valid +// 14-Dec-05 V.Ivanchenko change protection to cos(theta) < -1 and +// rename the class +// + +#include "G4LElasticB.hh" +#include "G4ParticleTable.hh" +#include "G4IonTable.hh" + +G4HadFinalState* +G4LElasticB::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& targetNucleus) +{ + if(getenv("debug_LElastic")) verboseLevel = 5; + theParticleChange.Clear(); + const G4HadProjectile* aParticle = &aTrack; + G4double atno2 = targetNucleus.GetN(); + G4double zTarget = targetNucleus.GetZ(); + theParticleChange.SetEnergyChange(aTrack.GetKineticEnergy()); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + +// Elastic scattering off Hydrogen + + G4DynamicParticle* aSecondary = 0; + if (atno2 < 1.5) { + const G4ParticleDefinition* aParticleType = aParticle->GetDefinition(); + if (aParticleType == G4PionPlus::PionPlus()) + aSecondary = LightMedia.PionPlusExchange(aParticle, targetNucleus); + else if (aParticleType == G4PionMinus::PionMinus()) + aSecondary = LightMedia.PionMinusExchange(aParticle, targetNucleus); + else if (aParticleType == G4KaonPlus::KaonPlus()) + aSecondary = LightMedia.KaonPlusExchange(aParticle, targetNucleus); + else if (aParticleType == G4KaonZeroShort::KaonZeroShort()) + aSecondary = LightMedia.KaonZeroShortExchange(aParticle,targetNucleus); + else if (aParticleType == G4KaonZeroLong::KaonZeroLong()) + aSecondary = LightMedia.KaonZeroLongExchange(aParticle, targetNucleus); + else if (aParticleType == G4KaonMinus::KaonMinus()) + aSecondary = LightMedia.KaonMinusExchange(aParticle, targetNucleus); + else if (aParticleType == G4Proton::Proton()) + aSecondary = LightMedia.ProtonExchange(aParticle, targetNucleus); + else if (aParticleType == G4AntiProton::AntiProton()) + aSecondary = LightMedia.AntiProtonExchange(aParticle, targetNucleus); + else if (aParticleType == G4Neutron::Neutron()) + aSecondary = LightMedia.NeutronExchange(aParticle, targetNucleus); + else if (aParticleType == G4AntiNeutron::AntiNeutron()) + aSecondary = LightMedia.AntiNeutronExchange(aParticle, targetNucleus); + else if (aParticleType == G4Lambda::Lambda()) + aSecondary = LightMedia.LambdaExchange(aParticle, targetNucleus); + else if (aParticleType == G4AntiLambda::AntiLambda()) + aSecondary = LightMedia.AntiLambdaExchange(aParticle, targetNucleus); + else if (aParticleType == G4SigmaPlus::SigmaPlus()) + aSecondary = LightMedia.SigmaPlusExchange(aParticle, targetNucleus); + else if (aParticleType == G4SigmaMinus::SigmaMinus()) + aSecondary = LightMedia.SigmaMinusExchange(aParticle, targetNucleus); + else if (aParticleType == G4AntiSigmaPlus::AntiSigmaPlus()) + aSecondary = LightMedia.AntiSigmaPlusExchange(aParticle,targetNucleus); + else if (aParticleType == G4AntiSigmaMinus::AntiSigmaMinus()) + aSecondary= LightMedia.AntiSigmaMinusExchange(aParticle,targetNucleus); + else if (aParticleType == G4XiZero::XiZero()) + aSecondary = LightMedia.XiZeroExchange(aParticle, targetNucleus); + else if (aParticleType == G4XiMinus::XiMinus()) + aSecondary = LightMedia.XiMinusExchange(aParticle, targetNucleus); + else if (aParticleType == G4AntiXiZero::AntiXiZero()) + aSecondary = LightMedia.AntiXiZeroExchange(aParticle, targetNucleus); + else if (aParticleType == G4AntiXiMinus::AntiXiMinus()) + aSecondary = LightMedia.AntiXiMinusExchange(aParticle, targetNucleus); + else if (aParticleType == G4OmegaMinus::OmegaMinus()) + aSecondary = LightMedia.OmegaMinusExchange(aParticle, targetNucleus); + else if (aParticleType == G4AntiOmegaMinus::AntiOmegaMinus()) + aSecondary= LightMedia.AntiOmegaMinusExchange(aParticle,targetNucleus); + else if (aParticleType == G4KaonPlus::KaonPlus()) + aSecondary = LightMedia.KaonPlusExchange(aParticle, targetNucleus); + } + + // Has a charge or strangeness exchange occurred? + if (aSecondary) { + aSecondary->SetMomentum(aParticle->Get4Momentum().vect()); + theParticleChange.SetStatusChange(stopAndKill); + theParticleChange.AddSecondary(aSecondary); + } + // G4cout << "Entering elastic scattering 1"<GetTotalMomentum()/GeV; + if (verboseLevel > 1) + G4cout << "G4LElasticB::DoIt: Incident particle p=" << p << " GeV" << G4endl; + + if (p < 0.01) return &theParticleChange; + + // G4cout << "Entering elastic scattering 2"< 1) { + G4cout << "DoIt: aa,bb,cc,dd,rr" << G4endl; + G4cout << aa << " " << bb << " " << cc << " " << dd << " " << rr << G4endl; + } + G4double t1 = -std::log(ran)/bb; + G4double t2 = -std::log(ran)/dd; + if (verboseLevel > 1) { + G4cout << "t1,Fctcos " << t1 << " " << Fctcos(t1, aa, bb, cc, dd, rr) << + G4endl; + G4cout << "t2,Fctcos " << t2 << " " << Fctcos(t2, aa, bb, cc, dd, rr) << + G4endl; + } + G4double eps = 0.001; + G4int ind1 = 10; + G4double t = 0.0; + G4int ier1; + ier1 = Rtmi(&t, t1, t2, eps, ind1, + aa, bb, cc, dd, rr); + if (verboseLevel > 1) { + G4cout << "From Rtmi, ier1=" << ier1 << G4endl; + G4cout << "t, Fctcos " << t << " " << Fctcos(t, aa, bb, cc, dd, rr) << + G4endl; + } + if (ier1 != 0) t = 0.25*(3.*t1 + t2); + if (verboseLevel > 1) { + G4cout << "t, Fctcos " << t << " " << Fctcos(t, aa, bb, cc, dd, rr) << + G4endl; + } + + // Scattered particle referred to axis of incident particle + G4double m1=aParticle->GetDefinition()->GetPDGMass(); + if(aSecondary) m1 = aSecondary->GetMass(); + + G4int Z=static_cast(zTarget+.5); + G4int A=static_cast(atno2); + G4ParticleDefinition * theDef = 0; + if(Z == 1 && A == 1) { + theDef = G4Proton::Proton(); + } else { + if(G4UniformRand()FindIon(Z,A,0,Z); + } + G4double m2 = theDef->GetPDGMass(); + G4LorentzVector lv1 = aParticle->Get4Momentum(); + G4LorentzVector lv0(0.0,0.0,0.0,m2); + + G4LorentzVector lv = lv0 + lv1; + G4ThreeVector bst = lv.boostVector(); + lv1.boost(-bst); + lv0.boost(-bst); + G4ThreeVector p1 = lv1.vect(); + G4double ptot = p1.mag(); + G4double ptotgev = ptot/GeV; + if (ptotgev < 0.01) return &theParticleChange; + + // Sampling in CM system + G4double phi = G4UniformRand()*twopi; + G4double cost = 1. - 0.5*t/(ptotgev*ptotgev); + G4double sint = 0.0; + if(cost > 1.0) cost = 1.0; + else { + if(cost < -1.0) cost = -1.0 + 2.0*G4UniformRand(); + sint = std::sqrt((1.0-cost)*(1.0+cost)); + } + // G4cout << "Entering elastic scattering 3"< 1) + G4cout << "cos(t)=" << cost << " sin(t)=" << sint << G4endl; + + G4ThreeVector v1(sint*std::cos(phi),sint*std::sin(phi),cost); + p1 = p1.unit(); + v1.rotateUz(p1); + v1 *= ptot; + G4LorentzVector nlv11(v1.x(),v1.y(),v1.z(),std::sqrt(ptot*ptot + m1*m1)); + G4LorentzVector nlv01 = lv0 + lv1 - nlv11; + nlv01.boost(bst); + nlv11.boost(bst); + //G4cout << " P0= "<< nlv01 << " P1= "<< nlv11<<" m= " << m1 <SetMomentum(nlv11.vect()); + } else { + theParticleChange.SetMomentumChange(nlv11.vect().unit()); + theParticleChange.SetEnergyChange(std::max(nlv11.e() - m1,0.0)); + } + G4DynamicParticle * aSec = new G4DynamicParticle(theDef, nlv01); + theParticleChange.AddSecondary(aSec); + + // G4cout << " ion info "<= 0.) { + ier = 2; + return ier; + } + +// Basic assumption fl*fr less than 0 is satisfied. +// Generate tolerance for function values. + G4int i = 0; + G4double tolf = 100.*eps; + +// Start iteration loop +label4: + i++; + +// Start bisection loop + for (G4int k = 1; k <= iend; k++) { + *x = 0.5*(xl + xr); + tol = *x; + f = Fctcos(tol, aa, bb, cc, dd, rr); + if (f == 0.) return 0; + if (f*fr < 0.) { // Interchange xl and xr in order to get the + tol = xl; // same Sign in f and fr + xl = xr; + xr = tol; + tol = fl; + fl = fr; + fr = tol; + } + tol = f - fl; + G4double a = f*tol; + a = a + a; + if (a < fr*(fr - fl) && i <= iend) goto label17; + xr = *x; + fr = f; + +// Test on satisfactory accuracy in bisection loop + tol = eps; + a = std::abs(xr); + if (a > 1.) tol = tol*a; + if (std::abs(xr - xl) <= tol && std::abs(fr - fl) <= tolf) goto label14; + } +// End of bisection loop + +// No convergence after iend iteration steps followed by iend +// successive steps of bisection or steadily increasing function +// values at right bounds. Error return. + ier = 1; + +label14: + if (std::abs(fr) > std::abs(fl)) { + *x = xl; + f = fl; + } + return ier; + +// Computation of iterated x-value by inverse parabolic interp +label17: + G4double a = fr - f; + G4double dx = (*x - xl)*fl*(1. + f*(a - tol)/(a*(fr - fl)))/tol; + G4double xm = *x; + G4double fm = f; + *x = xl - dx; + tol = *x; + f = Fctcos(tol, aa, bb, cc, dd, rr); + if (f == 0.) return ier; + +// Test on satisfactory accuracy in iteration loop + tol = eps; + a = std::abs(*x); + if (a > 1) tol = tol*a; + if (std::abs(dx) <= tol && std::abs(f) <= tolf) return ier; + +// Preparation of next bisection loop + if (f*fl < 0.) { + xr = *x; + fr = f; + } + else { + xl = *x; + fl = f; + xr = xm; + fr = fm; + } + goto label4; +} + + +// Test function for root-finder + +G4double +G4LElasticB::Fctcos(G4double t, + G4double aa, G4double bb, G4double cc, G4double dd, + G4double rr) +{ + const G4double expxl = -82.; + const G4double expxu = 82.; + + G4double test1 = -bb*t; + if (test1 > expxu) test1 = expxu; + if (test1 < expxl) test1 = expxl; + + G4double test2 = -dd*t; + if (test2 > expxu) test2 = expxu; + if (test2 < expxl) test2 = expxl; + + return aa*std::exp(test1) + cc*std::exp(test2) - rr; +} + + +void +G4LElasticB::Defs1(G4double p, G4double px, G4double py, G4double pz, + G4double pxinc, G4double pyinc, G4double pzinc, + G4double* pxnew, G4double* pynew, G4double* pznew) +{ +// Transform scattered particle to reflect direction of incident particle + G4double pt2 = pxinc*pxinc + pyinc*pyinc; + if (pt2 > 0.) { + G4double cost = pzinc/p; + G4double sint1 = std::sqrt(std::abs((1. - cost )*(1.+cost))); + G4double sint2 = std::sqrt(pt2)/p; + G4double sint = 0.5*(sint1 + sint2); + G4double ph = pi*0.5; + if (pyinc < 0.) ph = pi*1.5; + if (std::abs(pxinc) > 1.e-6) ph = std::atan2(pyinc, pxinc); + G4double cosp = std::cos(ph); + G4double sinp = std::sin(ph); + if (verboseLevel > 1) { + G4cout << "cost sint " << cost << " " << sint << G4endl; + G4cout << "cosp sinp " << cosp << " " << sinp << G4endl; + } + *pxnew = cost*cosp*px - sinp*py + sint*cosp*pz; + *pynew = cost*sinp*px + cosp*py + sint*sinp*pz; + *pznew = -sint*px +cost*pz; + } + else { + G4double cost=pzinc/p; + *pxnew = cost*px; + *pynew = py; + *pznew = cost*pz; + } +} diff --git a/source/processes/hadronic/models/low_energy/src/G4LFission.cc b/source/processes/hadronic/models/low_energy/src/G4LFission.cc index d757b61a55..14ab95173d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LFission.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LFission.cc @@ -22,7 +22,7 @@ // // // $Id: G4LFission.cc,v 1.12 2005/06/04 13:38:34 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4 Model: Low Energy Fission diff --git a/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh b/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh index d1abc4bb98..ef5d57990c 100644 --- a/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh +++ b/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh @@ -22,7 +22,7 @@ // // // $Id: G4HadronicInteraction.hh,v 1.6 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Interaction abstract base class // This class is the base class for the model classes. diff --git a/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh b/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh index a4cf87ad93..72e7fe7e18 100644 --- a/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh +++ b/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh @@ -22,7 +22,7 @@ // // // $Id: G4InelasticInteraction.hh,v 1.3 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Inelastic Interaction // This class is an abstract base class, since the pure virtual diff --git a/source/processes/hadronic/models/management/include/G4V3DNucleus.hh b/source/processes/hadronic/models/management/include/G4V3DNucleus.hh index 787686c991..d033390651 100644 --- a/source/processes/hadronic/models/management/include/G4V3DNucleus.hh +++ b/source/processes/hadronic/models/management/include/G4V3DNucleus.hh @@ -22,7 +22,7 @@ // // // $Id: G4V3DNucleus.hh,v 1.4 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4V3DNucleus_h #define G4V3DNucleus_h 1 diff --git a/source/processes/hadronic/models/management/include/G4VHighEnergyGenerator.hh b/source/processes/hadronic/models/management/include/G4VHighEnergyGenerator.hh index 54198295ab..3930b33888 100644 --- a/source/processes/hadronic/models/management/include/G4VHighEnergyGenerator.hh +++ b/source/processes/hadronic/models/management/include/G4VHighEnergyGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: G4VHighEnergyGenerator.hh,v 1.3 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VHighEnergyGenerator_h #define G4VHighEnergyGenerator_h 1 diff --git a/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh b/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh index 64db064ff3..afd831f855 100644 --- a/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh +++ b/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VIntraNuclearTransportModel.hh,v 1.2 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: G4IntraNuclearTransportMode.hh,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/management/include/G4VKineticNucleon.hh b/source/processes/hadronic/models/management/include/G4VKineticNucleon.hh index 2d0fbe67a6..a62796195c 100644 --- a/source/processes/hadronic/models/management/include/G4VKineticNucleon.hh +++ b/source/processes/hadronic/models/management/include/G4VKineticNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4VKineticNucleon.hh,v 1.3 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VKineticNucleon_h #define G4VKineticNucleon_h 1 diff --git a/source/processes/hadronic/models/management/include/G4VNuclearDensity.hh b/source/processes/hadronic/models/management/include/G4VNuclearDensity.hh index 65d37f888c..3302450dcf 100644 --- a/source/processes/hadronic/models/management/include/G4VNuclearDensity.hh +++ b/source/processes/hadronic/models/management/include/G4VNuclearDensity.hh @@ -22,7 +22,7 @@ // // // $Id: G4VNuclearDensity.hh,v 1.3 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VNuclearDensity_h #define G4VNuclearDensity_h 1 diff --git a/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh b/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh index 317a3f20d9..faa85ffc44 100644 --- a/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh +++ b/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundModel.hh,v 1.3 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VPreCompoundModel_h diff --git a/source/processes/hadronic/models/management/src/G4V3DNucleus.cc b/source/processes/hadronic/models/management/src/G4V3DNucleus.cc index 18a7a76cc1..3782721315 100644 --- a/source/processes/hadronic/models/management/src/G4V3DNucleus.cc +++ b/source/processes/hadronic/models/management/src/G4V3DNucleus.cc @@ -22,7 +22,7 @@ // // // $Id: G4V3DNucleus.cc,v 1.4 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4V3DNucleus.hh" #include "G4HadronicException.hh" diff --git a/source/processes/hadronic/models/management/src/G4VHighEnergyGenerator.cc b/source/processes/hadronic/models/management/src/G4VHighEnergyGenerator.cc index c623eeb76e..7a668d800f 100644 --- a/source/processes/hadronic/models/management/src/G4VHighEnergyGenerator.cc +++ b/source/processes/hadronic/models/management/src/G4VHighEnergyGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VHighEnergyGenerator.cc,v 1.4 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VHighEnergyGenerator #include "G4VHighEnergyGenerator.hh" diff --git a/source/processes/hadronic/models/management/src/G4VIntraNuclearTransportModel.cc b/source/processes/hadronic/models/management/src/G4VIntraNuclearTransportModel.cc index 0e0efc5149..a31fc887ad 100644 --- a/source/processes/hadronic/models/management/src/G4VIntraNuclearTransportModel.cc +++ b/source/processes/hadronic/models/management/src/G4VIntraNuclearTransportModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VIntraNuclearTransportModel.cc,v 1.3 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: G4VIntraNuclearTransportModel.cc,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/management/src/G4VKineticNucleon.cc b/source/processes/hadronic/models/management/src/G4VKineticNucleon.cc index 8cece169fc..8b1613cf63 100644 --- a/source/processes/hadronic/models/management/src/G4VKineticNucleon.cc +++ b/source/processes/hadronic/models/management/src/G4VKineticNucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4VKineticNucleon.cc,v 1.2 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VKineticNucleon.hh" diff --git a/source/processes/hadronic/models/management/src/G4VNuclearDensity.cc b/source/processes/hadronic/models/management/src/G4VNuclearDensity.cc index 72afa6fdbc..8ca538d1b2 100644 --- a/source/processes/hadronic/models/management/src/G4VNuclearDensity.cc +++ b/source/processes/hadronic/models/management/src/G4VNuclearDensity.cc @@ -22,7 +22,7 @@ // // // $Id: G4VNuclearDensity.cc,v 1.2 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VNuclearDensity.hh" diff --git a/source/processes/hadronic/models/management/src/G4VPreCompoundModel.cc b/source/processes/hadronic/models/management/src/G4VPreCompoundModel.cc index 6370b88a40..4854343bbd 100644 --- a/source/processes/hadronic/models/management/src/G4VPreCompoundModel.cc +++ b/source/processes/hadronic/models/management/src/G4VPreCompoundModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundModel.cc,v 1.4 2005/06/04 13:40:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VPreCompoundModel.hh" diff --git a/source/processes/hadronic/models/neutron_hp/GNUmakefile b/source/processes/hadronic/models/neutron_hp/GNUmakefile index e309779c58..209b74a1be 100644 --- a/source/processes/hadronic/models/neutron_hp/GNUmakefile +++ b/source/processes/hadronic/models/neutron_hp/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:20 hpw Exp $ +# $Id: GNUmakefile,v 1.4 2005/11/22 01:50:12 tkoi Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -25,6 +25,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/low_energy/include \ -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/processes/hadronic/models/management/include \ -I$(G4BASE)/particles/management/include \ diff --git a/source/processes/hadronic/models/neutron_hp/History b/source/processes/hadronic/models/neutron_hp/History new file mode 100644 index 0000000000..5fa3de96c2 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/History @@ -0,0 +1,54 @@ +------------------------------------------------------------------- + + ================================================== + Geant4 - an Object-Oriented Toolkit for Simulation + ================================================== + + History file for High Precision Neutron model + --------------------------------------------- + +This file should be used to summarize modifications introduced in the +code and to keep track of all tags. + + --------------------------------------------------------------- + * Please list in reverse chronological order (last date on top) + --------------------------------------------------------------- + +22 Nov 2005 Dennis Wright (hadr-hpn-V07-01-03) +---------------------------------------------- +- fix division NAN compiler warning in outer while loop for + G4NeutronHPorLEInelasticData.cc, G4NeutronHPorLElasticData.cc, + G4NeutronHPorLEFissionData.cc, G4NeutronHPorLFissionData.cc + +22 Nov 2005 Dennis Wright for Tatsumi Koi (hadr-hpn-V07-01-02) +-------------------------------------------------------------- +- T. Koi implemented new process which switches from HP neutron model + to Low Energy Parameterized model when HP neutron data are absent. + + New files: + G4NeutronHPorLCapture.hh, .cc + G4NeutronHPorLCaptureData.hh, .cc + G4NeutronHPorLCaptureModel.hh, .cc + G4NeutronHPorLEInelastic.hh, .cc + G4NeutronHPorLEInelasticData.hh, .cc + G4NeutronHPorLEInelasticModel.hh, .cc + G4NeutronHPorLElastic.hh, .cc + G4NeutronHPorLElasticData.hh, .cc + G4NeutronHPorLElasticModel.hh, .cc + G4NeutronHPorLFission.hh, .cc + G4NeutronHPorLFissionData.hh, .cc + G4NeutronHPorLFissionModel.hh, .cc + + +18 Nov 2005 Dennis Wright (hadr-hpn-V07-01-00) +---------------------------------------------- + +- migration for + G4NeutronHPInelasticBaseFS.cc, G4NeutronHPInelasticCompFS.cc, + G4NeutronHPNInelasticFS.cc, G4NeutronHPIsoData.hh, + G4NeutronHPNames.hh + +- fix division NAN compiler warning in outer while loop for + G4NeutronHPCaptureData.cc, G4NeutronHPElasticData.cc, + G4NeutronHPInelasticData.cc, G4NeutronHPFissionData.cc + diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh index 54e8a288e9..bdaff9733d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh @@ -22,7 +22,7 @@ // // // $Id: G4InterpolationIterator.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4InterpolationIterator_h #define G4InterpolationIterator_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh index 12b3b32932..6e7c1f7551 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4InterpolationManager.hh,v 1.11 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4InterpolationManager_h #define G4InterpolationManager_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh index e1e35d01a4..7ce7929fff 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh @@ -22,7 +22,7 @@ // // // $Id: G4InterpolationScheme.hh,v 1.7 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4InterpolationScheme_h #define G4InterpolationScheme_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh index 60a0957237..9f8f7063eb 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP2AInelasticFS_h #define G4NeutronHP2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh index a8f892734d..98080e0a91 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2N2AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP2N2AInelasticFS_h #define G4NeutronHP2N2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh index 0c07a014fe..d52f41ad61 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2NAInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP2NAInelasticFS_h #define G4NeutronHP2NAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh index f90ebbded5..d93b3e5f2b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2NDInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP2NDInelasticFS_h #define G4NeutronHP2NDInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh index 0d529584b9..7934f0279d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2NInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP2NInelasticFS_h #define G4NeutronHP2NInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh index 0ca1fdd84a..8a090df633 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2NPInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP2NPInelasticFS_h #define G4NeutronHP2NPInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh index fc7cc8697b..446ed39884 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP2PInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP2PInelasticFS_h #define G4NeutronHP2PInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh index 5dcd47a748..6918832f74 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP3AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP3AInelasticFS_h #define G4NeutronHP3AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh index 4680ac46da..174107fbab 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP3NAInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP3NAInelasticFS_h #define G4NeutronHP3NAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh index 4d3b04833f..4c4a792ae3 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP3NInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP3NInelasticFS_h #define G4NeutronHP3NInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh index 6564b0767f..88eb7a3ff4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP3NPInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP3NPInelasticFS_h #define G4NeutronHP3NPInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh index 552bd582b5..bab2f25777 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHP4NInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHP4NInelasticFS_h #define G4NeutronHP4NInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh index ecf7b4e6b2..7b66a19780 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPAInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPAInelasticFS_h #define G4NeutronHPAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh index 40c0db8bf7..346c9b2b8a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPAngular.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPAngular_h #define G4NeutronHPAngular_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh index 09cabcacdf..08d1f178d5 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngularP.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPAngularP.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPAngularP_h #define G4NeutronHPAngularP_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh index 7d6a87402c..0203f04881 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPArbitaryTab.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPArbitaryTab.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPArbitaryTab_h #define G4NeutronHPArbitaryTab_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh index 70eda6e399..e1cdf78156 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPCapture.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh index bf971f56b1..01cf713fe7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPCaptureData.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPCaptureData_h #define G4NeutronHPCaptureData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh index f4f9c05c5e..c44fee3532 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPCaptureFS.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPCaptureFS_h #define G4NeutronHPCaptureFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh index bc86ab93ec..c051a22c5a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPChannel.hh,v 1.11 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh index ea407367a6..4d79c246e8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPChannelList.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh index c722410cac..63a3e861cb 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPContAngularPar.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPContAngularPar_h #define G4NeutronHPContAngularPar_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh index b40f32cf7c..ce38db081c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPContEnergyAngular.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPContEnergyAngular_h #define G4NeutronHPContEnergyAngular_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh index a966c6d21f..db6d4edbaf 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPD2AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPD2AInelasticFS_h #define G4NeutronHPD2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh index 81cb6833a2..9ea2ce8f77 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDAInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPDAInelasticFS_h #define G4NeutronHPDAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh index d75dac123c..63c8d45b38 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPDInelasticFS_h #define G4NeutronHPDInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh index 4d687f3219..9e652f1537 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPData.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh index f7d1487570..51e22a5332 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDataPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDataPoint.hh,v 1.7 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPDataPoint_h #define G4NeutronHPDataPoint_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh index cd54931777..e70342d48b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDeExGammas.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDeExGammas.hh,v 1.11 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPDeExGammas_h #define G4NeutronHPDeExGammas_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh index c3aaa051a2..ad5b2ad4d1 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDiscreteTwoBody.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPDiscreteTwoBody.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPDiscreteTwoBody_h #define G4NeutronHPDiscreteTwoBody_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh index 3c6de32b59..3861dbcf13 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPElastic.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh index 1cd4395861..b117752533 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPElasticData.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPElasticData_h #define G4NeutronHPElasticData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh index 36c7c2279b..2211182b3f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPElasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPElasticFS_h #define G4NeutronHPElasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh index 61d29ce25e..747c57c9d1 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPElementData.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh index 2fa1dfaf44..3f9b08b3ed 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnAngCorrelation.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPEnAngCorrelation.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPEnAngCorrelation_h #define G4NeutronHPEnAngCorrelation_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh index ae61f4b53f..2e1c200b83 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEnergyDistribution.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPEnergyDistribution.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPEnergyDistribution_h #define G4NeutronHPEnergyDistribution_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh index c1b16f70fe..39436e6397 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPEvapSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPEvapSpectrum.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPEvapSpectrum_h #define G4NeutronHPEvapSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh index 0569e202dd..a30a9a0746 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFCFissionFS.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFCFissionFS_h #define G4NeutronHPFCFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh index 436f43c325..6efea48a7f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFSFissionFS.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFSFissionFS_h #define G4NeutronHPFSFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh index 3407da6a5a..e94f64abb0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFastLegendre.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFastLegendre_h #define G4NeutronHPFastLegendre_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh index 48d73fcb4e..ca4a3d75fe 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPField.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPField.hh,v 1.7 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPField_h #define G4NeutronHPField_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh index fb7e088b3a..38a1399a33 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFieldPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFieldPoint.hh,v 1.7 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFieldPoint_h #define G4NeutronHPFieldPoint_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh index 52fcd37efb..c35030e189 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFinalState.hh,v 1.11 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFinalState_h #define G4NeutronHPFinalState_h diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh index 12a0f595d9..c3d706c920 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFission.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh index 6865082843..3f9e2dee9f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionBaseFS.hh,v 1.11 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFissionBaseFS_h #define G4NeutronHPFissionBaseFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh index 5f13ec5950..408abd8aee 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionData.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFissionData_h #define G4NeutronHPFissionData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh index 3e7bad0ac0..cb4b3e91e4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionERelease.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionERelease.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFissionERelease_h #define G4NeutronHPFissionERelease_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh index 530dc8551b..de31cf4f46 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFissionFS_h #define G4NeutronHPFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh index 914e9ded70..e52c3af3ad 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPFissionSpectrum.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPFissionSpectrum_h #define G4NeutronHPFissionSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh index 856d724699..56c7fb6365 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPGamma.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPGamma.hh,v 1.12 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPGamma_h #define G4NeutronHPGamma_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh index 5a58183096..dcfbbfada3 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPHe3InelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPHe3InelasticFS_h #define G4NeutronHPHe3InelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh index a4d639a198..95d719c4d2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInelastic.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh index 939fbd99b9..199f439454 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInelasticBaseFS.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPInelasticBaseFS_h #define G4NeutronHPInelasticBaseFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh index ac81ad7ff8..44a322fb0f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInelasticCompFS.hh,v 1.11 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPInelasticCompFS_h #define G4NeutronHPInelasticCompFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh index 8bb7d9d7b5..36c06e4dc2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInelasticData.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPInelasticData_h #define G4NeutronHPInelasticData_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh index 86ffb59f27..b95fea8269 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPInterpolator.hh,v 1.18 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPInterpolator_h #define G4NeutronHPInterpolator_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh index b0b5a6c5c5..af5f6844b9 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsoData.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPIsoData.hh,v 1.13 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NeutronHPIsoData.hh,v 1.14 2005/11/19 00:12:10 dennis Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPIsoData_h #define G4NeutronHPIsoData_h 1 @@ -34,7 +34,7 @@ #include "globals.hh" #include "G4ios.hh" #include -#include +// #include #include #include "G4NeutronHPVector.hh" #include "G4NeutronHPNames.hh" diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh index 5a769b9b0b..8335c22e25 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPIsotropic.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPIsotropic_h #define G4NeutronHPIsotropic_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh index ecb1cbf724..654461c82e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPKallbachMannSyst.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPKallbachMannSyst.hh,v 1.7 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPKallbachMannSyst_h #define G4NeutronHPKallbachMannSyst_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh index 4b99500cc0..3d2d8a23e0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLCFissionFS.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPLCFissionFS_h #define G4NeutronHPLCFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh index f1c862f186..167487b2a7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLabAngularEnergy.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPLabAngularEnergy_h #define G4NeutronHPLabAngularEnergy_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh index 3480192035..c37e63cac6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLegendreStore.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPLegendreStore_h #define G4NeutronHPLegendreStore_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh index 6ea49d2b5a..d6a1cb5bcd 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLegendreTable.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPLegendreTable_h #define G4NeutronHPLegendreTable_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh index 285a5bf16e..8088c1d242 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLevel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPLevel.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPLevel_h #define G4NeutronHPLevel_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh index 8a84e3d913..2375f68009 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPMadlandNixSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPMadlandNixSpectrum.hh,v 1.11 2005/06/27 15:32:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPMadlandNixSpectrum_h #define G4NeutronHPMadlandNixSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh index cb2614754d..0841bae991 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPN2AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPN2AInelasticFS_h #define G4NeutronHPN2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh index c35b21d09c..6b91d0d2af 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPN2PInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPN2PInelasticFS_h #define G4NeutronHPN2PInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh index 6a4f1027cb..94dc0d12f6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPN3AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPN3AInelasticFS_h #define G4NeutronHPN3AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh index cc6ea3ef62..978d0ed401 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNAInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNAInelasticFS_h #define G4NeutronHPNAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh index 5b175973ca..6039fb85f3 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNBodyPhaseSpace.hh,v 1.11 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNBodyPhaseSpace_h #define G4NeutronHPNBodyPhaseSpace_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh index cc1f860aae..562f1b2590 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPND2AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPND2AInelasticFS_h #define G4NeutronHPND2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh index 8b7aa266d1..8827384d98 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNDInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNDInelasticFS_h #define G4NeutronHPNDInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh index 8c4325e2ae..f8a267f38b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNHe3InelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNHe3InelasticFS_h #define G4NeutronHPNHe3InelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh index b6c10aa2da..7ed0694157 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNInelasticFS_h #define G4NeutronHPNInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh index 730498e7c7..7b1eda639c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNPAInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNPAInelasticFS_h #define G4NeutronHPNPAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh index e3c4e83331..f01d6f7774 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNPInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNPInelasticFS_h #define G4NeutronHPNPInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh index 4b9b2cd9b0..2ef2f550ef 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNT2AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNT2AInelasticFS_h #define G4NeutronHPNT2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh index 6fa00d22e1..f044377c82 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNTInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNTInelasticFS_h #define G4NeutronHPNTInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh index 19552a6342..4a7f22527b 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNXInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNXInelasticFS_h #define G4NeutronHPNXInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh index 764ce1f621..c865830dd0 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNames.hh,v 1.13 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4NeutronHPNames.hh,v 1.14 2005/11/19 00:12:36 dennis Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNames_h #define G4NeutronHPNames_h 1 #include "G4ios.hh" #include -#include +// #include #include #include "globals.hh" #include "G4NeutronHPDataUsed.hh" diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh index 409b3c7dbb..8e9bfd5acc 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNeutronYield.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPNeutronYield_h #define G4NeutronHPNeutronYield_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh index 73f0cdddee..bf30201e24 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPAInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPPAInelasticFS_h #define G4NeutronHPPAInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh index 05f917cb4c..e5ab657346 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPDInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPPDInelasticFS_h #define G4NeutronHPPDInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh index 8576f9b763..36b1a55426 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPPInelasticFS_h #define G4NeutronHPPInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh index 3660855e48..812b606ca1 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPTInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPPTInelasticFS_h #define G4NeutronHPPTInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh index 5292bc1d96..c50106eb02 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPartial.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPPartial_h #define G4NeutronHPPartial_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh index 0261d48bf3..d6b6e9d55d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonDist.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPhotonDist.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh index 673560c728..9394f71af2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPhotonXSection.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPhotonXSection.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPPhotonXSection_h #define G4NeutronHPPhotonXSection_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh index 153054092f..ce66fa0eb2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPolynomExpansion.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPPolynomExpansion.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPPolynomExpansion_h #define G4NeutronHPPolynomExpansion_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh index 31ea97a094..298d3c63d3 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPProduct.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPProduct_h #define G4NeutronHPProduct_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh index d132ae40de..557b25ad7d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPSCFissionFS.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPSCFissionFS_h #define G4NeutronHPSCFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh index 161127175e..9caf2c5d79 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPSimpleEvapSpectrum.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPSimpleEvapSpectrum_h #define G4NeutronHPSimpleEvapSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh index 151f0cd191..9078b1caad 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPT2AInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPT2AInelasticFS_h #define G4NeutronHPT2AInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh index 2620a7a052..a0a70a6281 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPTCFissionFS.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPTCFissionFS_h #define G4NeutronHPTCFissionFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh index c266c3ef54..ca64d1ff26 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPTInelasticFS.hh,v 1.8 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPTInelasticFS_h #define G4NeutronHPTInelasticFS_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh index 7b5fa79b9e..d794aa0ec8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPWattSpectrum.hh,v 1.10 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4NeutronHPWattSpectrum_h #define G4NeutronHPWattSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCapture.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCapture.hh new file mode 100644 index 0000000000..e27c66d19c --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCapture.hh @@ -0,0 +1,86 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +// +// Hadronic Process: High Precision low E neutron tracking +// original by H.P. Wellisch, TRIUMF, 14-Feb-97 +// Builds and has the Cross-section data for one material. + +#ifndef G4NeutronHPorLCapture_h +#define G4NeutronHPorLCapture_h 1 + +// Class Description +// Final state production model for a high precision (based on evaluated data +// libraries) description of neutron elastic scattering below 20 MeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4NeutronHPorLCaptureData.hh" + +#include "globals.hh" +#include "G4NeutronHPChannel.hh" +#include "G4HadronicInteraction.hh" + +#include + +class G4NeutronHPorLCapture : public G4HadronicInteraction +{ + public: + + G4NeutronHPorLCapture(); + + ~G4NeutronHPorLCapture(); + + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); + + + + G4int GetNiso() {return theCapture[0].GetNiso();} + private: + + G4double * xSec; + G4NeutronHPChannel * theCapture; + G4String dirName; + G4int numEle; + + public: + G4bool IsThisElementOK ( G4String ); + private: + std::set< G4String > unavailable_elements; + + public: + G4VCrossSectionDataSet* GiveXSectionDataSet() { return theDataSet; }; + private: + G4NeutronHPorLCaptureData* theDataSet; + void createXSectionDataSet(); +}; + +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCaptureData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCaptureData.hh new file mode 100644 index 0000000000..8f7ae13d29 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCaptureData.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#ifndef G4NeutronHPorLCaptureData_h +#define G4NeutronHPorLCaptureData_h 1 + +// Class Description +// Cross-section data set for a high precision (based on evaluated data +// libraries) description of neutron elastic scattering below 20 MeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4NeutronHPChannel.hh" +#include "G4VCrossSectionDataSet.hh" +#include "G4DynamicParticle.hh" +#include "G4Element.hh" +#include "G4ParticleDefinition.hh" +#include "G4PhysicsTable.hh" + +#include + +class G4NeutronHPorLCaptureData : public G4VCrossSectionDataSet +{ + public: + + G4NeutronHPorLCaptureData(); + + G4NeutronHPorLCaptureData( G4NeutronHPChannel* , std::set< G4String >* ); + + ~G4NeutronHPorLCaptureData(); + + G4bool IsApplicable(const G4DynamicParticle*, const G4Element*); + + G4double GetCrossSection(const G4DynamicParticle*, const G4Element*, G4double aT); + + void BuildPhysicsTable(const G4ParticleDefinition&); + + void DumpPhysicsTable(const G4ParticleDefinition&); + + private: + + G4PhysicsTable* theCrossSections; + + private: + G4NeutronHPChannel* theCaptureChannel; + std::set< G4String >* unavailable_elements; +}; + +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCaptureModel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCaptureModel.hh new file mode 100644 index 0000000000..05d6eda4ed --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLCaptureModel.hh @@ -0,0 +1,54 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#ifndef G4NeutronHPorLCaptureModel_h +#define G4NeutronHPorLCaptureModel_h 1 + +#include "G4HadronicInteraction.hh" +//#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPorLCapture.hh" +#include "G4NeutronHPNames.hh" +#include "G4LCapture.hh" + +class G4NeutronHPorLCaptureModel : public G4HadronicInteraction +{ + public: + G4NeutronHPorLCaptureModel(); + ~G4NeutronHPorLCaptureModel(); + + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); + G4VCrossSectionDataSet* GiveHPXSectionDataSet() { return theHPCapture->GiveXSectionDataSet(); } + + private: + G4NeutronHPorLCapture* theHPCapture; + G4LCapture* theLCapture; + + G4NeutronHPNames* theHPNames; +}; +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelastic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelastic.hh new file mode 100644 index 0000000000..52b7e1ebdc --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelastic.hh @@ -0,0 +1,161 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +// +// Hadronic Process: High Precision low E neutron tracking +// original by H.P. Wellisch, TRIUMF, 14-Feb-97 +// Builds and has the Cross-section data for one material. + +#ifndef G4NeutronHPorLEInelastic_h +#define G4NeutronHPorLEInelastic_h 1 + +// Class Description +// Final state production model for a high precision (based on evaluated data +// libraries) description of neutron elastic scattering below 20 MeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4NeutronHPorLEInelasticData.hh" + +#include "globals.hh" +#include "G4NeutronHPChannel.hh" +#include "G4NeutronHPChannelList.hh" +#include "G4HadronicInteraction.hh" + +#include "G4NeutronHP2AInelasticFS.hh" +#include "G4NeutronHP2N2AInelasticFS.hh" +#include "G4NeutronHP2NAInelasticFS.hh" +#include "G4NeutronHP2NDInelasticFS.hh" +#include "G4NeutronHP2NInelasticFS.hh" +#include "G4NeutronHP2NPInelasticFS.hh" +#include "G4NeutronHP2PInelasticFS.hh" +#include "G4NeutronHP3AInelasticFS.hh" +#include "G4NeutronHP3NAInelasticFS.hh" +#include "G4NeutronHP3NInelasticFS.hh" +#include "G4NeutronHP3NPInelasticFS.hh" +#include "G4NeutronHP4NInelasticFS.hh" +#include "G4NeutronHPAInelasticFS.hh" +#include "G4NeutronHPD2AInelasticFS.hh" +#include "G4NeutronHPDAInelasticFS.hh" +#include "G4NeutronHPDInelasticFS.hh" +#include "G4NeutronHPHe3InelasticFS.hh" +#include "G4NeutronHPN2AInelasticFS.hh" +#include "G4NeutronHPN2PInelasticFS.hh" +#include "G4NeutronHPN3AInelasticFS.hh" +#include "G4NeutronHPNAInelasticFS.hh" +#include "G4NeutronHPND2AInelasticFS.hh" +#include "G4NeutronHPNDInelasticFS.hh" +#include "G4NeutronHPNHe3InelasticFS.hh" +#include "G4NeutronHPNInelasticFS.hh" +#include "G4NeutronHPNPAInelasticFS.hh" +#include "G4NeutronHPNPInelasticFS.hh" +#include "G4NeutronHPNT2AInelasticFS.hh" +#include "G4NeutronHPNTInelasticFS.hh" +#include "G4NeutronHPNXInelasticFS.hh" +#include "G4NeutronHPPAInelasticFS.hh" +#include "G4NeutronHPPDInelasticFS.hh" +#include "G4NeutronHPPInelasticFS.hh" +#include "G4NeutronHPPTInelasticFS.hh" +#include "G4NeutronHPT2AInelasticFS.hh" +#include "G4NeutronHPTInelasticFS.hh" + +#include + +class G4NeutronHPorLEInelastic : public G4HadronicInteraction +{ + public: + + G4NeutronHPorLEInelastic(); + + ~G4NeutronHPorLEInelastic(); + + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); + + + + //G4int GetNiso() {return theInelastic[0].GetNiso();} + + private: + G4NeutronHP2AInelasticFS the2AFS; + G4NeutronHP2N2AInelasticFS the2N2AFS; + G4NeutronHP2NAInelasticFS the2NAFS; + G4NeutronHP2NDInelasticFS the2NDFS; + G4NeutronHP2NInelasticFS the2NFS; + G4NeutronHP2NPInelasticFS the2NPFS; + G4NeutronHP2PInelasticFS the2PFS; + G4NeutronHP3AInelasticFS the3AFS; + G4NeutronHP3NAInelasticFS the3NAFS; + G4NeutronHP3NInelasticFS the3NFS; + G4NeutronHP3NPInelasticFS the3NPFS; + G4NeutronHP4NInelasticFS the4NFS; + G4NeutronHPAInelasticFS theAFS; + G4NeutronHPD2AInelasticFS theD2AFS; + G4NeutronHPDAInelasticFS theDAFS; + G4NeutronHPDInelasticFS theDFS; + G4NeutronHPHe3InelasticFS theHe3FS; + G4NeutronHPN2AInelasticFS theN2AFS; + G4NeutronHPN2PInelasticFS theN2PFS; + G4NeutronHPN3AInelasticFS theN3AFS; + G4NeutronHPNAInelasticFS theNAFS; + G4NeutronHPND2AInelasticFS theND2AFS; + G4NeutronHPNDInelasticFS theNDFS; + G4NeutronHPNHe3InelasticFS theNHe3FS; + G4NeutronHPNInelasticFS theNFS; + G4NeutronHPNPAInelasticFS theNPAFS; + G4NeutronHPNPInelasticFS theNPFS; + G4NeutronHPNT2AInelasticFS theNT2AFS; + G4NeutronHPNTInelasticFS theNTFS; + G4NeutronHPNXInelasticFS theNXFS; + G4NeutronHPPAInelasticFS thePAFS; + G4NeutronHPPDInelasticFS thePDFS; + G4NeutronHPPInelasticFS thePFS; + G4NeutronHPPTInelasticFS thePTFS; + G4NeutronHPT2AInelasticFS theT2AFS; + G4NeutronHPTInelasticFS theTFS; + + G4double * xSec; + G4NeutronHPChannelList * theInelastic; + G4String dirName; + G4int numEle; + + public: + G4bool IsThisElementOK ( G4String ); + private: + std::set< G4String > unavailable_elements; + + public: + G4VCrossSectionDataSet* GiveXSectionDataSet() { return theDataSet; }; + private: + G4NeutronHPorLEInelasticData* theDataSet; + void createXSectionDataSet(); +}; + +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelasticData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelasticData.hh new file mode 100644 index 0000000000..a2911100d5 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelasticData.hh @@ -0,0 +1,78 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#ifndef G4NeutronHPorLEInelasticData_h +#define G4NeutronHPorLEInelasticData_h 1 + +// Class Description +// Cross-section data set for a high precision (based on evaluated data +// libraries) description of neutron elastic scattering below 20 MeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4NeutronHPChannel.hh" +#include "G4NeutronHPChannelList.hh" +#include "G4VCrossSectionDataSet.hh" +#include "G4DynamicParticle.hh" +#include "G4Element.hh" +#include "G4ParticleDefinition.hh" +#include "G4PhysicsTable.hh" + +#include + +class G4NeutronHPorLEInelasticData : public G4VCrossSectionDataSet +{ + public: + + G4NeutronHPorLEInelasticData(); + + G4NeutronHPorLEInelasticData( G4NeutronHPChannelList* , std::set< G4String >* ); + + ~G4NeutronHPorLEInelasticData(); + + G4bool IsApplicable(const G4DynamicParticle*, const G4Element*); + + G4double GetCrossSection(const G4DynamicParticle*, const G4Element*, G4double aT); + + void BuildPhysicsTable(const G4ParticleDefinition&); + + void DumpPhysicsTable(const G4ParticleDefinition&); + + private: + + G4PhysicsTable* theCrossSections; + + private: + G4NeutronHPChannelList* theInelasticChannel; + std::set< G4String >* unavailable_elements; +}; + +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelasticModel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelasticModel.hh new file mode 100644 index 0000000000..125d36375c --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelasticModel.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#ifndef G4NeutronHPorLEInelasticModel_h +#define G4NeutronHPorLEInelasticModel_h 1 + +#include "G4HadronicInteraction.hh" +//#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPorLEInelastic.hh" +#include "G4NeutronHPNames.hh" +#include "G4LENeutronInelastic.hh" + +class G4NeutronHPorLEInelasticModel : public G4HadronicInteraction +{ + public: + G4NeutronHPorLEInelasticModel(); + ~G4NeutronHPorLEInelasticModel(); + + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); + G4VCrossSectionDataSet* GiveHPXSectionDataSet() { return theHPInelastic->GiveXSectionDataSet(); } + + private: + //G4NeutronHPElastic* theHPElastic; + G4NeutronHPorLEInelastic* theHPInelastic; + G4LENeutronInelastic* theLEInelastic; + + G4NeutronHPNames* theHPNames; +}; +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElastic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElastic.hh new file mode 100644 index 0000000000..bfb3912955 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElastic.hh @@ -0,0 +1,83 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// +// +// Hadronic Process: High Precision low E neutron tracking +// original by H.P. Wellisch, TRIUMF, 14-Feb-97 +// Builds and has the Cross-section data for one material. + +#ifndef G4NeutronHPorLElastic_h +#define G4NeutronHPorLElastic_h 1 + +// Class Description +// Final state production model for a high precision (based on evaluated data +// libraries) description of neutron elastic scattering below 20 MeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4NeutronHPorLElasticData.hh" + +#include "globals.hh" +#include "G4NeutronHPChannel.hh" +#include "G4HadronicInteraction.hh" + +#include + +class G4NeutronHPorLElastic : public G4HadronicInteraction +{ + public: + + G4NeutronHPorLElastic(); + + ~G4NeutronHPorLElastic(); + + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); + + G4int GetNiso() {return theElastic[0].GetNiso();} + private: + + G4double * xSec; + G4NeutronHPChannel * theElastic; + G4String dirName; + G4int numEle; + + public: + G4bool IsThisElementOK ( G4String ); + private: + std::set< G4String > unavailable_elements; + + public: + G4VCrossSectionDataSet* GiveXSectionDataSet() { return theDataSet; }; + private: + G4NeutronHPorLElasticData* theDataSet; + void createXSectionDataSet(); +}; + +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElasticData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElasticData.hh new file mode 100644 index 0000000000..ca8f481c13 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElasticData.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#ifndef G4NeutronHPorLElasticData_h +#define G4NeutronHPorLElasticData_h 1 + +// Class Description +// Cross-section data set for a high precision (based on evaluated data +// libraries) description of neutron elastic scattering below 20 MeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4NeutronHPChannel.hh" +#include "G4VCrossSectionDataSet.hh" +#include "G4DynamicParticle.hh" +#include "G4Element.hh" +#include "G4ParticleDefinition.hh" +#include "G4PhysicsTable.hh" + +#include + +class G4NeutronHPorLElasticData : public G4VCrossSectionDataSet +{ + public: + + G4NeutronHPorLElasticData(); + + G4NeutronHPorLElasticData( G4NeutronHPChannel* , std::set< G4String >* ); + + ~G4NeutronHPorLElasticData(); + + G4bool IsApplicable(const G4DynamicParticle*, const G4Element*); + + G4double GetCrossSection(const G4DynamicParticle*, const G4Element*, G4double aT); + + void BuildPhysicsTable(const G4ParticleDefinition&); + + void DumpPhysicsTable(const G4ParticleDefinition&); + + private: + + G4PhysicsTable* theCrossSections; + + private: + G4NeutronHPChannel* theElasticChannel; + std::set< G4String >* unavailable_elements; +}; + +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElasticModel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElasticModel.hh new file mode 100644 index 0000000000..e3d476c5d9 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLElasticModel.hh @@ -0,0 +1,55 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#ifndef G4NeutronHPorLElasticModel_h +#define G4NeutronHPorLElasticModel_h 1 + +#include "G4HadronicInteraction.hh" +//#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPorLElastic.hh" +#include "G4NeutronHPNames.hh" +#include "G4LElastic.hh" + +class G4NeutronHPorLElasticModel : public G4HadronicInteraction +{ + public: + G4NeutronHPorLElasticModel(); + ~G4NeutronHPorLElasticModel(); + + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); + G4VCrossSectionDataSet* GiveHPXSectionDataSet() { return theHPElastic->GiveXSectionDataSet(); } + + private: + //G4NeutronHPElastic* theHPElastic; + G4NeutronHPorLElastic* theHPElastic; + G4LElastic* theLElastic; + + G4NeutronHPNames* theHPNames; +}; +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFission.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFission.hh new file mode 100644 index 0000000000..8464574a34 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFission.hh @@ -0,0 +1,90 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +// +// Hadronic Process: High Precision low E neutron tracking +// original by H.P. Wellisch, TRIUMF, 14-Feb-97 +// Builds and has the Cross-section data for one material. + +#ifndef G4NeutronHPorLFission_h +#define G4NeutronHPorLFission_h 1 + +// Class Description +// Final state production model for a high precision (based on evaluated data +// libraries) description of neutron elastic scattering below 20 MeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4NeutronHPorLFissionData.hh" + +#include "globals.hh" +#include "G4NeutronHPChannel.hh" +#include "G4HadronicInteraction.hh" + +#include "G4NeutronHPFissionFS.hh" + +#include + +class G4NeutronHPorLFission : public G4HadronicInteraction +{ + public: + G4NeutronHPorLFission(); + ~G4NeutronHPorLFission(); + + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); + + G4int GetNiso() {return theFission[0].GetNiso();} + + private: + + G4double * xSec; + G4NeutronHPChannel * theFission; + G4String dirName; + G4int numEle; + + private: + G4NeutronHPFissionFS theFS; + + public: + G4bool IsThisElementOK ( G4String ); + + private: + std::set< G4String > unavailable_elements; + + public: + G4VCrossSectionDataSet* GiveXSectionDataSet() { return theDataSet; }; + + private: + G4NeutronHPorLFissionData* theDataSet; + void createXSectionDataSet(); +}; + +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFissionData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFissionData.hh new file mode 100644 index 0000000000..6ad9cb2cc3 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFissionData.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#ifndef G4NeutronHPorLFissionData_h +#define G4NeutronHPorLFissionData_h 1 + +// Class Description +// Cross-section data set for a high precision (based on evaluated data +// libraries) description of neutron elastic scattering below 20 MeV; +// To be used in your physics list in case you need this physics. +// In this case you want to register an object of this class with +// the corresponding process. +// Class Description - End + +#include "G4NeutronHPChannel.hh" +#include "G4VCrossSectionDataSet.hh" +#include "G4DynamicParticle.hh" +#include "G4Element.hh" +#include "G4ParticleDefinition.hh" +#include "G4PhysicsTable.hh" + +#include + +class G4NeutronHPorLFissionData : public G4VCrossSectionDataSet +{ + public: + + G4NeutronHPorLFissionData(); + + G4NeutronHPorLFissionData( G4NeutronHPChannel* , std::set< G4String >* ); + + ~G4NeutronHPorLFissionData(); + + G4bool IsApplicable(const G4DynamicParticle*, const G4Element*); + + G4double GetCrossSection(const G4DynamicParticle*, const G4Element*, G4double aT); + + void BuildPhysicsTable(const G4ParticleDefinition&); + + void DumpPhysicsTable(const G4ParticleDefinition&); + + private: + + G4PhysicsTable* theCrossSections; + + private: + G4NeutronHPChannel* theFissionChannel; + std::set< G4String >* unavailable_elements; +}; + +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFissionModel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFissionModel.hh new file mode 100644 index 0000000000..c3b1c92b7f --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLFissionModel.hh @@ -0,0 +1,53 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#ifndef G4NeutronHPorLFissionModel_h +#define G4NeutronHPorLFissionModel_h 1 + +#include "G4HadronicInteraction.hh" +#include "G4NeutronHPorLFission.hh" +#include "G4NeutronHPNames.hh" +#include "G4LFission.hh" + +class G4NeutronHPorLFissionModel : public G4HadronicInteraction +{ + public: + G4NeutronHPorLFissionModel(); + ~G4NeutronHPorLFissionModel(); + + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); + G4VCrossSectionDataSet* GiveHPXSectionDataSet() { return theHPFission->GiveXSectionDataSet(); } + + private: + G4NeutronHPorLFission* theHPFission; + G4LFission* theLFission; + + G4NeutronHPNames* theHPNames; +}; +#endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh index ef02f3072a..14d958b5ae 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh @@ -22,7 +22,7 @@ // // // $Id: G4VNeutronHPEDis.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VNeutronHPEDis_h #define G4VNeutronHPEDis_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh index c5e04285db..72ef3e5602 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEnergyAngular.hh @@ -22,7 +22,7 @@ // // // $Id: G4VNeutronHPEnergyAngular.hh,v 1.9 2005/06/04 13:44:43 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VNeutronHPEnergyAngular_h #define G4VNeutronHPEnergyAngular_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc index 593fd1d169..823f4ac47e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc @@ -111,7 +111,8 @@ GetCrossSection(const G4DynamicParticle* aP, const G4Element*anE, G4double aT) G4int size = G4int(std::max(10., aT/60*kelvin)); G4ThreeVector neutronVelocity = 1./G4Neutron::Neutron()->GetPDGMass()*theNeutron.GetMomentum(); G4double neutronVMag = neutronVelocity.mag(); - while(counter == 0 || std::abs(buffer-result/counter) > 0.03*buffer) + + while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.03*buffer) { if(counter) buffer = result/counter; while (counterGetPDGMass()*theNeutron.GetMomentum(); G4double neutronVMag = neutronVelocity.mag(); - while(counter == 0 || std::abs(buffer-result/counter) > 0.03*buffer) + + while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.03*buffer) { if(counter) buffer = result/counter; while (counterGetPDGMass()*theNeutron.GetMomentum(); G4double neutronVMag = neutronVelocity.mag(); - while(counter == 0 || std::abs(buffer-result/counter) > 0.01*buffer) + + while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.01*buffer) { if(counter) buffer = result/counter; while (counter(ZR+eps),static_cast(AR+eps)) - G4NucleiPropertiesTable::GetBindingEnergy(static_cast(theBaseZ+eps), static_cast(theBaseA+eps)); theGammas.Init(theGammaData); - delete aName; + // delete aName; } void G4NeutronHPInelasticBaseFS::Init (G4double A, G4double Z, G4String & dirName, G4String & bit) diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc index fb3b19ff74..05475bfb41 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticCompFS.cc @@ -35,16 +35,23 @@ void G4NeutronHPInelasticCompFS::InitGammas(G4double AR, G4double ZR) { - char the[100] = {""}; - std::ostrstream ost(the, 100, std::ios::out); + // char the[100] = {""}; + // std::ostrstream ost(the, 100, std::ios::out); + // ost <GetPDGMass()*theNeutron.GetMomentum(); G4double neutronVMag = neutronVelocity.mag(); - while(counter == 0 || std::abs(buffer-result/counter) > 0.01*buffer) + + while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.01*buffer) { if(counter) buffer = result/counter; while (counter -#include +// #include void G4NeutronHPNInelasticFS::Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType) { diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLCapture.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLCapture.cc new file mode 100644 index 0000000000..c2c3d3a924 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLCapture.cc @@ -0,0 +1,139 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +// neutron_hp -- source file +// J.P. Wellisch, Nov-1996 +// A prototype of the low energy neutron transport model. +// +#include "G4NeutronHPorLCapture.hh" +#include "G4NeutronHPCaptureFS.hh" + +G4NeutronHPorLCapture::G4NeutronHPorLCapture() +{ + G4NeutronHPCaptureFS * theFS = new G4NeutronHPCaptureFS; + if(!getenv("NeutronHPCrossSections")) + throw G4HadronicException(__FILE__, __LINE__, "Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); + dirName = getenv("NeutronHPCrossSections"); + G4String tString = "/Capture/"; + dirName = dirName + tString; +// G4cout <<"G4NeutronHPorLCapture::G4NeutronHPorLCapture testit "< GetName() << G4endl; + //while(!theCapture[i].Register(theFS)); + try { while(!theCapture[i].Register(theFS)); } + catch ( G4HadronicException ) + { + unavailable_elements.insert ( (*(G4Element::GetElementTable()))[i]->GetName() ); + } + } + delete theFS; + SetMinEnergy(0.*eV); + SetMaxEnergy(20.*MeV); + if ( unavailable_elements.size() > 0 ) + { + std::set< G4String>::iterator it; + G4cout << "HP Capture data are not available for thess elements "<< G4endl; + for ( it = unavailable_elements.begin() ; it != unavailable_elements.end() ; it++ ) + G4cout << *it << G4endl; + G4cout << "Low Energy Parameterization Models will be used."<< G4endl; + } + + createXSectionDataSet(); +} + +G4NeutronHPorLCapture::~G4NeutronHPorLCapture() +{ + delete [] theCapture; + delete theDataSet; +} + +#include "G4NeutronHPThermalBoost.hh" + +G4HadFinalState * G4NeutronHPorLCapture::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& ) +{ + const G4Material * theMaterial = aTrack.GetMaterial(); + G4int n = theMaterial->GetNumberOfElements(); + G4int index = theMaterial->GetElement(0)->GetIndex(); + if(n!=1) + { + G4int i; + xSec = new G4double[n]; + G4double sum=0; + const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); + G4double rWeight; + G4NeutronHPThermalBoost aThermalE; + for (i=0; iGetElement(i)->GetIndex(); + rWeight = NumAtomsPerVolume[i]; + G4double x = aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature()); + + //xSec[i] = theCapture[index].GetXsec(aThermalE.GetThermalEnergy(aTrack, + // theMaterial->GetElement(i), + // theMaterial->GetTemperature())); + xSec[i] = theCapture[index].GetXsec(x); + + xSec[i] *= rWeight; + sum+=xSec[i]; + } + G4double random = G4UniformRand(); + G4double running = 0; + for (i=0; iGetElement(i)->GetIndex(); + if(random<=running/sum) break; + } + delete [] xSec; + // it is element-wise initialised. + } + return theCapture[index].ApplyYourself(aTrack); +} + + + +G4bool G4NeutronHPorLCapture::IsThisElementOK( G4String name ) +{ + if ( unavailable_elements.find( name ) == unavailable_elements.end() ) + return TRUE; + else + return FALSE; +} + + + +void G4NeutronHPorLCapture::createXSectionDataSet() +{ + theDataSet = new G4NeutronHPorLCaptureData ( theCapture , &unavailable_elements ); +} diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLCaptureData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLCaptureData.cc new file mode 100644 index 0000000000..c37f667d2b --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLCaptureData.cc @@ -0,0 +1,145 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#include "G4NeutronHPorLCaptureData.hh" +#include "G4Neutron.hh" +#include "G4ElementTable.hh" +#include "G4NeutronHPData.hh" + +#include "G4PhysicsVector.hh" + + + +G4NeutronHPorLCaptureData::G4NeutronHPorLCaptureData( G4NeutronHPChannel* pChannel , std::set< G4String >* pSet ) +{ + theCaptureChannel = pChannel; + unavailable_elements = pSet; +} + + + +G4bool G4NeutronHPorLCaptureData::IsApplicable(const G4DynamicParticle*aP, const G4Element* anElement) +{ + G4bool result = true; + G4double eKin = aP->GetKineticEnergy(); + if(eKin>20*MeV||aP->GetDefinition()!=G4Neutron::Neutron()) result = false; + if ( unavailable_elements->find( anElement->GetName() ) != unavailable_elements->end() ) result = false; + return result; +} + +G4NeutronHPorLCaptureData::G4NeutronHPorLCaptureData() +{ +// BuildPhysicsTable(*G4Neutron::Neutron()); +} + + + +G4NeutronHPorLCaptureData::~G4NeutronHPorLCaptureData() +{ +// delete theCrossSections; +} + + + +void G4NeutronHPorLCaptureData::BuildPhysicsTable( const G4ParticleDefinition& aP ) +{ + if( &aP!=G4Neutron::Neutron() ) + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); +} + + + +void G4NeutronHPorLCaptureData::DumpPhysicsTable(const G4ParticleDefinition& aP) +{ + if(&aP!=G4Neutron::Neutron()) + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); +// G4cout << "G4NeutronHPorLCaptureData::DumpPhysicsTable still to be implemented"<GetName() << G4endl; + G4double result = 0; +// G4bool outOfRange; + G4int index = anE->GetIndex(); + + // prepare neutron + G4double eKinetic = aP->GetKineticEnergy(); + G4ReactionProduct theNeutron( aP->GetDefinition() ); + theNeutron.SetMomentum( aP->GetMomentum() ); + theNeutron.SetKineticEnergy( eKinetic ); + + // prepare thermal nucleus + G4Nucleus aNuc; + G4double eps = 0.0001; + G4double theA = anE->GetN(); + G4double theZ = anE->GetZ(); + G4double eleMass; + eleMass = ( G4NucleiPropertiesTable::GetNuclearMass(static_cast(theZ+eps), static_cast(theA+eps)) + ) / G4Neutron::Neutron()->GetPDGMass(); + + G4ReactionProduct boosted; + G4double aXsection; + + // MC integration loop + G4int counter = 0; + G4double buffer = 0; + G4int size = G4int(std::max(10., aT/60*kelvin)); + G4ThreeVector neutronVelocity = 1./G4Neutron::Neutron()->GetPDGMass()*theNeutron.GetMomentum(); + G4double neutronVMag = neutronVelocity.mag(); + while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.03*buffer) + { + if(counter) buffer = result/counter; + while (counter 20*MeV ) + { + //G4cout << "Select LE model " << G4endl; + return theLCapture->ApplyYourself( aTrack , aTargetNucleus ); + } + + G4int Z = (G4int)(aTargetNucleus.GetZ()+0.5); + G4String theNameOfElement = theHPNames->GetName( Z-1 ); // GetName(0) reply "Hydrogen" + + if ( theHPCapture->IsThisElementOK( theNameOfElement ) ) + { + //G4cout << "Select HP model " << G4endl; + return theHPCapture->ApplyYourself( aTrack , aTargetNucleus ); + } + else + { + //G4cout << "Select LE model " << G4endl; + return theLCapture->ApplyYourself( aTrack , aTargetNucleus ); + } +} + diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLEInelastic.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLEInelastic.cc new file mode 100644 index 0000000000..6545be64cf --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLEInelastic.cc @@ -0,0 +1,188 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +// neutron_hp -- source file +// J.P. Wellisch, Nov-1996 +// A prototype of the low energy neutron transport model. +// +#include "G4NeutronHPorLEInelastic.hh" +//#include "G4NeutronHPInelasticFS.hh" + +G4NeutronHPorLEInelastic::G4NeutronHPorLEInelastic() +{ + SetMinEnergy(0.*eV); + SetMaxEnergy(20.*MeV); + +// G4NeutronHPInelasticFS * theFS = new G4NeutronHPInelasticFS; + if(!getenv("NeutronHPCrossSections")) + throw G4HadronicException(__FILE__, __LINE__, "Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); + dirName = getenv("NeutronHPCrossSections"); + G4String tString = "/Inelastic/"; + dirName = dirName + tString; +// G4cout <<"G4NeutronHPorLEInelastic::G4NeutronHPorLEInelastic testit "<GetName() ); + } + theInelastic[i].RestartRegistration(); + } + while( !theInelastic[i].HasDataInAnyFinalState()); + + } + +// delete theFS; + if ( unavailable_elements.size() > 0 ) + { + std::set< G4String>::iterator it; + G4cout << "HP Inelastic data are not available for thess elements "<< G4endl; + for ( it = unavailable_elements.begin() ; it != unavailable_elements.end() ; it++ ) + G4cout << *it << G4endl; + G4cout << "Low Energy Parameterization Models will be used."<< G4endl; + } + + createXSectionDataSet(); +} + +G4NeutronHPorLEInelastic::~G4NeutronHPorLEInelastic() +{ + delete [] theInelastic; + delete theDataSet; +} + +#include "G4NeutronHPThermalBoost.hh" + +G4HadFinalState * G4NeutronHPorLEInelastic::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& ) +{ + G4int it=0; + const G4Material * theMaterial = aTrack.GetMaterial(); + G4int n = theMaterial->GetNumberOfElements(); + G4int index = theMaterial->GetElement(0)->GetIndex(); + if(n!=1) + { + G4int i; + xSec = new G4double[n]; + G4double sum=0; + const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); + G4double rWeight; + G4NeutronHPThermalBoost aThermalE; + for (i=0; iGetElement(i)->GetIndex(); + rWeight = NumAtomsPerVolume[i]; + G4double x = aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature()); + + //xSec[i] = theInelastic[index].GetXsec(aThermalE.GetThermalEnergy(aTrack, + // theMaterial->GetElement(i), + // theMaterial->GetTemperature())); + xSec[i] = theInelastic[index].GetXsec(x); + + xSec[i] *= rWeight; + sum+=xSec[i]; + } + G4double random = G4UniformRand(); + G4double running = 0; + for (i=0; iGetElement(i)->GetIndex(); + it = i; + if(random<=running/sum) break; + } + delete [] xSec; + // it is element-wise initialised. + } + //return theInelastic[index].ApplyYourself(aTrack); + return theInelastic[index].ApplyYourself( theMaterial->GetElement(it) , aTrack ); +} + + + +G4bool G4NeutronHPorLEInelastic::IsThisElementOK( G4String name ) +{ + if ( unavailable_elements.find( name ) == unavailable_elements.end() ) + return TRUE; + else + return FALSE; +} + + + +void G4NeutronHPorLEInelastic::createXSectionDataSet() +{ + theDataSet = new G4NeutronHPorLEInelasticData ( theInelastic , &unavailable_elements ); +} diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLEInelasticData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLEInelasticData.cc new file mode 100644 index 0000000000..84df6d2f42 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLEInelasticData.cc @@ -0,0 +1,190 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#include "G4NeutronHPorLEInelasticData.hh" +#include "G4Neutron.hh" +#include "G4ElementTable.hh" +#include "G4NeutronHPData.hh" + +#include "G4PhysicsVector.hh" + + + +G4NeutronHPorLEInelasticData::G4NeutronHPorLEInelasticData( G4NeutronHPChannelList* pChannel , std::set< G4String >* pSet ) +{ + theInelasticChannel = pChannel; + unavailable_elements = pSet; + BuildPhysicsTable(*G4Neutron::Neutron()); +} + + + +G4bool G4NeutronHPorLEInelasticData::IsApplicable(const G4DynamicParticle*aP, const G4Element* anElement) +{ + G4bool result = true; + G4double eKin = aP->GetKineticEnergy(); + if(eKin>20*MeV||aP->GetDefinition()!=G4Neutron::Neutron()) result = false; + if ( unavailable_elements->find( anElement->GetName() ) != unavailable_elements->end() ) result = false; + return result; +} + +G4NeutronHPorLEInelasticData::G4NeutronHPorLEInelasticData() +{ +// BuildPhysicsTable(*G4Neutron::Neutron()); +} + + + +G4NeutronHPorLEInelasticData::~G4NeutronHPorLEInelasticData() +{ +// delete theCrossSections; +} + + +#include "G4NeutronHPInelasticData.hh" +#include "G4LPhysicsFreeVector.hh" +//#include "G4NeutronHPElementData.hh" + +void G4NeutronHPorLEInelasticData::BuildPhysicsTable( const G4ParticleDefinition& aP ) +{ + if( &aP!=G4Neutron::Neutron() ) + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); + + size_t numberOfElements = G4Element::GetNumberOfElements(); + theCrossSections = new G4PhysicsTable( numberOfElements ); + + static const G4ElementTable *theElementTable = G4Element::GetElementTable(); + for ( size_t i=0 ; i < numberOfElements; ++i ) + { + G4PhysicsVector* thePhysVec = new G4LPhysicsFreeVector(0, 0, 0); + + if ( unavailable_elements->find( (*theElementTable)[i]->GetName() ) == unavailable_elements->end() ) + { + + G4NeutronHPElementData* theElementData = new G4NeutronHPElementData(); + theElementData->Init( (*theElementTable)[i] ); + + G4NeutronHPVector* theHPVector = theElementData->GetData( (G4NeutronHPInelasticData*)this ); + + G4int len = theHPVector->GetVectorLength(); + + if ( len!=0 ) + { + G4double emin = theHPVector->GetX(0); + G4double emax = theHPVector->GetX(len-1); + + G4LPhysicsFreeVector* aPhysVector= new G4LPhysicsFreeVector ( len , emin , emax ); + for ( G4int i=0; iPutValues( i , theHPVector->GetX(i) , theHPVector->GetY(i) ); + } + delete thePhysVec; + thePhysVec = aPhysVector; + } + + //G4PhysicsVector* physVec = G4NeutronHPData:: + //Instance()->MakePhysicsVector((*theElementTable)[i], this); + //theCrossSections->push_back(physVec); + } + + theCrossSections->push_back(thePhysVec); + } +} + + + +void G4NeutronHPorLEInelasticData::DumpPhysicsTable(const G4ParticleDefinition& aP) +{ + if(&aP!=G4Neutron::Neutron()) + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); +// G4cout << "G4NeutronHPorLEInelasticData::DumpPhysicsTable still to be implemented"<GetName() << G4endl; + G4double result = 0; + //G4bool outOfRange; + G4int index = anE->GetIndex(); + + // prepare neutron + G4double eKinetic = aP->GetKineticEnergy(); + G4ReactionProduct theNeutron( aP->GetDefinition() ); + theNeutron.SetMomentum( aP->GetMomentum() ); + theNeutron.SetKineticEnergy( eKinetic ); + + // prepare thermal nucleus + G4Nucleus aNuc; + G4double eps = 0.0001; + G4double theA = anE->GetN(); + G4double theZ = anE->GetZ(); + G4double eleMass; + eleMass = ( G4NucleiPropertiesTable::GetNuclearMass(static_cast(theZ+eps), static_cast(theA+eps)) + ) / G4Neutron::Neutron()->GetPDGMass(); + + G4ReactionProduct boosted; + G4double aXsection; + + // MC integration loop + G4int counter = 0; + G4double buffer = 0; + G4int size = G4int(std::max(10., aT/60*kelvin)); + G4ThreeVector neutronVelocity = 1./G4Neutron::Neutron()->GetPDGMass()*theNeutron.GetMomentum(); + G4double neutronVMag = neutronVelocity.mag(); + while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.03*buffer) + { + if(counter) buffer = result/counter; + while (counter 20*MeV ) + { + //G4cout << "Select LE model " << G4endl; + return theLEInelastic->ApplyYourself( aTrack , aTargetNucleus ); + } + + G4int Z = (G4int)(aTargetNucleus.GetZ()+0.5); + G4String theNameOfElement = theHPNames->GetName( Z-1 ); // GetName(0) reply "Hydrogen" + + if ( theHPInelastic->IsThisElementOK( theNameOfElement ) ) + { + //G4cout << "Select HP model " << G4endl; + return theHPInelastic->ApplyYourself( aTrack , aTargetNucleus ); + } + else + { + //G4cout << "Select LE model " << G4endl; + return theLEInelastic->ApplyYourself( aTrack , aTargetNucleus ); + } +} + diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLElastic.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLElastic.cc new file mode 100644 index 0000000000..2ac3ae233e --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLElastic.cc @@ -0,0 +1,138 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +// neutron_hp -- source file +// J.P. Wellisch, Nov-1996 +// A prototype of the low energy neutron transport model. +// +#include "G4NeutronHPorLElastic.hh" +#include "G4NeutronHPElasticFS.hh" + +G4NeutronHPorLElastic::G4NeutronHPorLElastic() +{ + G4NeutronHPElasticFS * theFS = new G4NeutronHPElasticFS; + if(!getenv("NeutronHPCrossSections")) + throw G4HadronicException(__FILE__, __LINE__, "Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); + dirName = getenv("NeutronHPCrossSections"); + G4String tString = "/Elastic/"; + dirName = dirName + tString; +// G4cout <<"G4NeutronHPorLElastic::G4NeutronHPorLElastic testit "<GetName() ); + } + } + delete theFS; + SetMinEnergy(0.*eV); + SetMaxEnergy(20.*MeV); + if ( unavailable_elements.size() > 0 ) + { + std::set< G4String>::iterator it; + G4cout << "HP Elastic data are not available for thess elements "<< G4endl; + for ( it = unavailable_elements.begin() ; it != unavailable_elements.end() ; it++ ) + G4cout << *it << G4endl; + G4cout << "Low Energy Parameterization Models will be used."<< G4endl; + } + + createXSectionDataSet(); +} + +G4NeutronHPorLElastic::~G4NeutronHPorLElastic() +{ + delete [] theElastic; + delete theDataSet; +} + +#include "G4NeutronHPThermalBoost.hh" + +G4HadFinalState * G4NeutronHPorLElastic::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& ) +{ + const G4Material * theMaterial = aTrack.GetMaterial(); + G4int n = theMaterial->GetNumberOfElements(); + G4int index = theMaterial->GetElement(0)->GetIndex(); + if(n!=1) + { + G4int i; + xSec = new G4double[n]; + G4double sum=0; + const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); + G4double rWeight; + G4NeutronHPThermalBoost aThermalE; + for (i=0; iGetElement(i)->GetIndex(); + rWeight = NumAtomsPerVolume[i]; + G4double x = aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature()); + + //xSec[i] = theElastic[index].GetXsec(aThermalE.GetThermalEnergy(aTrack, + // theMaterial->GetElement(i), + // theMaterial->GetTemperature())); + xSec[i] = theElastic[index].GetXsec(x); + + xSec[i] *= rWeight; + sum+=xSec[i]; + } + G4double random = G4UniformRand(); + G4double running = 0; + for (i=0; iGetElement(i)->GetIndex(); + if(random<=running/sum) break; + } + delete [] xSec; + // it is element-wise initialised. + } + return theElastic[index].ApplyYourself(aTrack); +} + + + +G4bool G4NeutronHPorLElastic::IsThisElementOK( G4String name ) +{ + if ( unavailable_elements.find( name ) == unavailable_elements.end() ) + return TRUE; + else + return FALSE; +} + + + +void G4NeutronHPorLElastic::createXSectionDataSet() +{ + theDataSet = new G4NeutronHPorLElasticData ( theElastic , &unavailable_elements ); +} diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLElasticData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLElasticData.cc new file mode 100644 index 0000000000..979e50db81 --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLElasticData.cc @@ -0,0 +1,145 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#include "G4NeutronHPorLElasticData.hh" +#include "G4Neutron.hh" +#include "G4ElementTable.hh" +#include "G4NeutronHPData.hh" + +#include "G4PhysicsVector.hh" + + + +G4NeutronHPorLElasticData::G4NeutronHPorLElasticData( G4NeutronHPChannel* pChannel , std::set< G4String >* pSet ) +{ + theElasticChannel = pChannel; + unavailable_elements = pSet; +} + + + +G4bool G4NeutronHPorLElasticData::IsApplicable(const G4DynamicParticle*aP, const G4Element* anElement) +{ + G4bool result = true; + G4double eKin = aP->GetKineticEnergy(); + if(eKin>20*MeV||aP->GetDefinition()!=G4Neutron::Neutron()) result = false; + if ( unavailable_elements->find( anElement->GetName() ) != unavailable_elements->end() ) result = false; + return result; +} + +G4NeutronHPorLElasticData::G4NeutronHPorLElasticData() +{ +// BuildPhysicsTable(*G4Neutron::Neutron()); +} + + + +G4NeutronHPorLElasticData::~G4NeutronHPorLElasticData() +{ +// delete theCrossSections; +} + + + +void G4NeutronHPorLElasticData::BuildPhysicsTable( const G4ParticleDefinition& aP ) +{ + if( &aP!=G4Neutron::Neutron() ) + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); +} + + + +void G4NeutronHPorLElasticData::DumpPhysicsTable(const G4ParticleDefinition& aP) +{ + if(&aP!=G4Neutron::Neutron()) + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); +// G4cout << "G4NeutronHPorLElasticData::DumpPhysicsTable still to be implemented"<GetName() << G4endl; + G4double result = 0; +// G4bool outOfRange; + G4int index = anE->GetIndex(); + + // prepare neutron + G4double eKinetic = aP->GetKineticEnergy(); + G4ReactionProduct theNeutron( aP->GetDefinition() ); + theNeutron.SetMomentum( aP->GetMomentum() ); + theNeutron.SetKineticEnergy( eKinetic ); + + // prepare thermal nucleus + G4Nucleus aNuc; + G4double eps = 0.0001; + G4double theA = anE->GetN(); + G4double theZ = anE->GetZ(); + G4double eleMass; + eleMass = ( G4NucleiPropertiesTable::GetNuclearMass(static_cast(theZ+eps), static_cast(theA+eps)) + ) / G4Neutron::Neutron()->GetPDGMass(); + + G4ReactionProduct boosted; + G4double aXsection; + + // MC integration loop + G4int counter = 0; + G4double buffer = 0; + G4int size = G4int(std::max(10., aT/60*kelvin)); + G4ThreeVector neutronVelocity = 1./G4Neutron::Neutron()->GetPDGMass()*theNeutron.GetMomentum(); + G4double neutronVMag = neutronVelocity.mag(); + while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.03*buffer) + { + if(counter) buffer = result/counter; + while (counter 20*MeV ) + { + //G4cout << "Select LE model " << G4endl; + return theLElastic->ApplyYourself( aTrack , aTargetNucleus ); + } + + G4int Z = (G4int)(aTargetNucleus.GetZ()+0.5); + G4String theNameOfElement = theHPNames->GetName( Z-1 ); // GetName(0) reply "Hydrogen" + + if ( theHPElastic->IsThisElementOK( theNameOfElement ) ) + { + //G4cout << "Select HP model " << G4endl; + return theHPElastic->ApplyYourself( aTrack , aTargetNucleus ); + } + else + { + //G4cout << "Select LE model " << G4endl; + return theLElastic->ApplyYourself( aTrack , aTargetNucleus ); + } +} + diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLFission.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLFission.cc new file mode 100644 index 0000000000..331b9a28be --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLFission.cc @@ -0,0 +1,145 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +// neutron_hp -- source file +// J.P. Wellisch, Nov-1996 +// A prototype of the low energy neutron transport model. +// +#include "G4NeutronHPorLFission.hh" +#include "G4NeutronHPFissionFS.hh" + +G4NeutronHPorLFission::G4NeutronHPorLFission() +{ + SetMinEnergy(0.*eV); + SetMaxEnergy(20.*MeV); + + if( !getenv("NeutronHPCrossSections") ) + throw G4HadronicException(__FILE__, __LINE__, "Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); + + dirName = getenv("NeutronHPCrossSections"); + G4String tString = "/Fission/"; + dirName = dirName + tString; +// G4cout <<"G4NeutronHPorLFission::G4NeutronHPorLFission testit "< GetZ() > 89 ) + { + theFission[i].Init((*(G4Element::GetElementTable()))[i], dirName); + try { while(!theFission[i].Register(&theFS)); } + catch ( G4HadronicException ) + { + unavailable_elements.insert ( (*(G4Element::GetElementTable()))[i]->GetName() ); + } + } + } + + if ( unavailable_elements.size() > 0 ) + { + std::set< G4String>::iterator it; + G4cout << "HP Fission data are not available for thess elements "<< G4endl; + for ( it = unavailable_elements.begin() ; it != unavailable_elements.end() ; it++ ) + { + G4cout << *it << G4endl; + } + G4cout << "Low Energy Parameterization Models will be used."<< G4endl; + } + + createXSectionDataSet(); +} + +G4NeutronHPorLFission::~G4NeutronHPorLFission() +{ + delete [] theFission; + delete theDataSet; +} + +#include "G4NeutronHPThermalBoost.hh" + +G4HadFinalState * G4NeutronHPorLFission::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& ) +{ + const G4Material * theMaterial = aTrack.GetMaterial(); + G4int n = theMaterial->GetNumberOfElements(); + G4int index = theMaterial->GetElement(0)->GetIndex(); + if(n!=1) + { + G4int i; + xSec = new G4double[n]; + G4double sum=0; + const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); + G4double rWeight; + G4NeutronHPThermalBoost aThermalE; + for (i=0; iGetElement(i)->GetIndex(); + rWeight = NumAtomsPerVolume[i]; + G4double x = aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature()); + + //xSec[i] = theFission[index].GetXsec(aThermalE.GetThermalEnergy(aTrack, + // theMaterial->GetElement(i), + // theMaterial->GetTemperature())); + xSec[i] = theFission[index].GetXsec(x); + + xSec[i] *= rWeight; + sum+=xSec[i]; + } + G4double random = G4UniformRand(); + G4double running = 0; + for (i=0; iGetElement(i)->GetIndex(); + if(random<=running/sum) break; + } + delete [] xSec; + // it is element-wise initialised. + } + return theFission[index].ApplyYourself(aTrack); +} + + + +G4bool G4NeutronHPorLFission::IsThisElementOK( G4String name ) +{ + if ( unavailable_elements.find( name ) == unavailable_elements.end() ) + return TRUE; + else + return FALSE; +} + + + +void G4NeutronHPorLFission::createXSectionDataSet() +{ + theDataSet = new G4NeutronHPorLFissionData ( theFission , &unavailable_elements ); +} diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLFissionData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLFissionData.cc new file mode 100644 index 0000000000..87e28278ff --- /dev/null +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPorLFissionData.cc @@ -0,0 +1,145 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// 05-11-21 NeutronHP or Low Energy Parameterization Models +// Implemented by T. Koi (SLAC/SCCS) +// If NeutronHP data do not available for an element, then Low Energy +// Parameterization models handle the interactions of the element. +// + +#include "G4NeutronHPorLFissionData.hh" +#include "G4Neutron.hh" +#include "G4ElementTable.hh" +#include "G4NeutronHPData.hh" + +#include "G4PhysicsVector.hh" + + + +G4NeutronHPorLFissionData::G4NeutronHPorLFissionData( G4NeutronHPChannel* pChannel , std::set< G4String >* pSet ) +{ + theFissionChannel = pChannel; + unavailable_elements = pSet; +} + + + +G4bool G4NeutronHPorLFissionData::IsApplicable(const G4DynamicParticle*aP, const G4Element* anElement) +{ + G4bool result = true; + G4double eKin = aP->GetKineticEnergy(); + if(eKin>20*MeV||aP->GetDefinition()!=G4Neutron::Neutron()) result = false; + if ( unavailable_elements->find( anElement->GetName() ) != unavailable_elements->end() ) result = false; + return result; +} + +G4NeutronHPorLFissionData::G4NeutronHPorLFissionData() +{ +// BuildPhysicsTable(*G4Neutron::Neutron()); +} + + + +G4NeutronHPorLFissionData::~G4NeutronHPorLFissionData() +{ +// delete theCrossSections; +} + + + +void G4NeutronHPorLFissionData::BuildPhysicsTable( const G4ParticleDefinition& aP ) +{ + if( &aP!=G4Neutron::Neutron() ) + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); +} + + + +void G4NeutronHPorLFissionData::DumpPhysicsTable(const G4ParticleDefinition& aP) +{ + if(&aP!=G4Neutron::Neutron()) + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); +// G4cout << "G4NeutronHPorLFissionData::DumpPhysicsTable still to be implemented"<GetZ() < 90 ) return result; + +// G4bool outOfRange; + G4int index = anE->GetIndex(); + + // prepare neutron + G4double eKinetic = aP->GetKineticEnergy(); + G4ReactionProduct theNeutron( aP->GetDefinition() ); + theNeutron.SetMomentum( aP->GetMomentum() ); + theNeutron.SetKineticEnergy( eKinetic ); + + // prepare thermal nucleus + G4Nucleus aNuc; + G4double eps = 0.0001; + G4double theA = anE->GetN(); + G4double theZ = anE->GetZ(); + G4double eleMass; + eleMass = ( G4NucleiPropertiesTable::GetNuclearMass(static_cast(theZ+eps), static_cast(theA+eps)) + ) / G4Neutron::Neutron()->GetPDGMass(); + + G4ReactionProduct boosted; + G4double aXsection; + + // MC integration loop + G4int counter = 0; + G4double buffer = 0; + G4int size = G4int(std::max(10., aT/60*kelvin)); + G4ThreeVector neutronVelocity = 1./G4Neutron::Neutron()->GetPDGMass()*theNeutron.GetMomentum(); + G4double neutronVMag = neutronVelocity.mag(); + while(counter == 0 || std::abs(buffer-result/std::max(1,counter)) > 0.03*buffer) + { + if(counter) buffer = result/counter; + while (counter 20*MeV ) + { + //G4cout << "Select LE model " << G4endl; + return theLFission->ApplyYourself( aTrack , aTargetNucleus ); + } + + G4int Z = (G4int)(aTargetNucleus.GetZ()+0.5); + G4String theNameOfElement = theHPNames->GetName( Z-1 ); // GetName(0) reply "Hydrogen" + + if ( theHPFission->IsThisElementOK( theNameOfElement ) ) + { + //G4cout << "Select HP model " << G4endl; + return theHPFission->ApplyYourself( aTrack , aTargetNucleus ); + } + else + { + //G4cout << "Select LE model " << G4endl; + return theLFission->ApplyYourself( aTrack , aTargetNucleus ); + } +} + diff --git a/source/processes/hadronic/models/parton_string/History b/source/processes/hadronic/models/parton_string/History new file mode 100644 index 0000000000..6ba0f0eb23 --- /dev/null +++ b/source/processes/hadronic/models/parton_string/History @@ -0,0 +1,23 @@ +------------------------------------------------------------------- + + ========================================================== + Geant4 - an Object-Oriented Toolkit for Physics Simulation + ========================================================== + + History file for hadronic/models/parton_string directory + -------------------------------------------------------- + +This file should be used to summarize modifications introduced in the +code and to keep track of all tags. + + --------------------------------------------------------------- + * Please list in reverse chronological order (last date on top) + --------------------------------------------------------------- + +23 Nov 2005 Dennis Wright (hadr-prtn-V07-01-00) +----------------------------------------------- + +- G. Folger fixed bug in hadronization/G4ExcitedStringDecay.cc + (tag had-hadronization-V07-01-00) + +- D. Wright created History file for parton_string directory diff --git a/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveSplitableHadron.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveSplitableHadron.hh index fdc26867c0..cecf08e629 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveSplitableHadron.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveSplitableHadron.hh @@ -22,7 +22,7 @@ // // // $Id: G4DiffractiveSplitableHadron.hh,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4DiffractiveSplitableHadron_h diff --git a/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh index 72ea7b5001..36319f5bbf 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4FTFModel.hh,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class Description // Final state production code for hadron inelastic scattering above 20 GeV diff --git a/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParticipants.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParticipants.hh index 4eb84626e4..52680faf5b 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParticipants.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParticipants.hh @@ -22,7 +22,7 @@ // // // $Id: G4FTFParticipants.hh,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4FTFParticipants_h diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc index 1a4088b4c7..27efc10261 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc @@ -22,7 +22,7 @@ // // // $Id: G4DiffractiveSplitableHadron.cc,v 1.5 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc index 7618097cdc..5765e90658 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4FTFModel.cc,v 1.5 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParticipants.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParticipants.cc index 3cb439e942..55f461cb42 100644 --- a/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParticipants.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParticipants.cc @@ -22,7 +22,7 @@ // // // $Id: G4FTFParticipants.cc,v 1.5 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4ExcitedStringDecay.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4ExcitedStringDecay.hh index 06496d9a29..1cf6ad26a6 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4ExcitedStringDecay.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4ExcitedStringDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedStringDecay.hh,v 1.4 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4ExcitedStringDecay_h #define G4ExcitedStringDecay_h 1 diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4FragmentingString.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4FragmentingString.hh index 542e5ce5b5..5d4a43d423 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4FragmentingString.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4FragmentingString.hh @@ -22,7 +22,7 @@ // // // $Id: G4FragmentingString.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4FragmentingString_h diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh index 848cda8544..3e6f773799 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh @@ -22,7 +22,7 @@ // // // $Id: G4HadronBuilder.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4LundStringFragmentation.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4LundStringFragmentation.hh index 52bba74c9d..b3a163ead8 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4LundStringFragmentation.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4LundStringFragmentation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LundStringFragmentation.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ Maxim Komogorov +// GEANT4 tag $Name: geant4-08-00 $ Maxim Komogorov // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4QGSMFragmentation.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4QGSMFragmentation.hh index a41b95922c..ddbc31a12d 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4QGSMFragmentation.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4QGSMFragmentation.hh @@ -22,7 +22,7 @@ // // // $Id: G4QGSMFragmentation.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4VKinkyStringDecay.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4VKinkyStringDecay.hh index 37d425703c..6061fe3f12 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4VKinkyStringDecay.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4VKinkyStringDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4VKinkyStringDecay.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh index c700c18546..9a862ff7d9 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4VLongitudinalStringDecay.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc index 994a4c6285..839af2b4dc 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc @@ -67,7 +67,7 @@ EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalC G4LorentzVector SumMom; G4double SumMass = 0; G4double TotalCollisionMass = TotalCollisionMom.m(); - if( !(SumMom<1) && !(SumMom>-1) ) + if( !(TotalCollisionMass<1) && !(TotalCollisionMass>-1) ) { std::cout << "TotalCollisionMomentum = "<operator[](cHadron)->Get4Momentum(); if( !(SumMom<1) && !(SumMom>-1) ) { - throw G4HadronicException(__FILE__, __LINE__, "G4ExcitedStringDecay generated nan momentum..."); + throw G4HadronicException(__FILE__, __LINE__, "G4ExcitedStringDecay::EnergyAndMomentumCorrector() received nan momentum..."); } SumMass += Output->operator[](cHadron)->GetDefinition()->GetPDGMass(); - if( !(SumMom<1) && !(SumMom>-1) ) + if( !(SumMass<1) && !(SumMass>-1) ) { - throw G4HadronicException(__FILE__, __LINE__, "G4ExcitedStringDecay generated nan mass..."); + throw G4HadronicException(__FILE__, __LINE__, "G4ExcitedStringDecay::EnergyAndMomentumCorrector() received nan mass..."); } } + // Cannot correct a single particle + if (Output->size() < 2) return FALSE; + if (SumMass > TotalCollisionMass) return FALSE; SumMass = SumMom.m2(); if (SumMass < 0) return FALSE; @@ -120,6 +123,12 @@ EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalC success = true; break; } +#ifdef debug_G4ExcitedStringDecay + std::cout << "Scale-1=" << Scale -1 + << ", TotalCollisionMass=" << TotalCollisionMass + << ", Sum=" << Sum + << std::endl; +#endif } if(!success) diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc index 4b92e1b6dc..ffac0d4052 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc @@ -22,7 +22,7 @@ // // // $Id: G4HadronBuilder.cc,v 1.4 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc index e87a79f2c6..08735940ad 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc @@ -22,7 +22,7 @@ // // // $Id: G4LundStringFragmentation.cc,v 1.4 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4QGSMFragmentation.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4QGSMFragmentation.cc index 8d57ec44e5..8641da63c1 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4QGSMFragmentation.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4QGSMFragmentation.cc @@ -22,7 +22,7 @@ // // // $Id: G4QGSMFragmentation.cc,v 1.4 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4VKinkyStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4VKinkyStringDecay.cc index 6f2f7ac4fc..6cea893020 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4VKinkyStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4VKinkyStringDecay.cc @@ -22,7 +22,7 @@ // // // $Id: G4VKinkyStringDecay.cc,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc index 526e23d704..2a671013ba 100644 --- a/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc @@ -22,7 +22,7 @@ // // // $Id: G4VLongitudinalStringDecay.cc,v 1.4 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/management/include/G4EventGenerator.hh b/source/processes/hadronic/models/parton_string/management/include/G4EventGenerator.hh index f42a0c9df2..ae2eddd8e3 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4EventGenerator.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4EventGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: G4EventGenerator.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4EventGenerator_h #define G4EventGenerator_h 1 diff --git a/source/processes/hadronic/models/parton_string/management/include/G4InteractionCode.hh b/source/processes/hadronic/models/parton_string/management/include/G4InteractionCode.hh index 5754cd98de..72bd77777a 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4InteractionCode.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4InteractionCode.hh @@ -22,7 +22,7 @@ // // // $Id: G4InteractionCode.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4InteractionCode_h #define G4InteractionCode_h 1 diff --git a/source/processes/hadronic/models/parton_string/management/include/G4InteractionContent.hh b/source/processes/hadronic/models/parton_string/management/include/G4InteractionContent.hh index f93cee56ba..440d212b20 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4InteractionContent.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4InteractionContent.hh @@ -22,7 +22,7 @@ // // // $Id: G4InteractionContent.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4InteractionContent_h diff --git a/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh b/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh index 0793b298ce..e8db40748a 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh @@ -24,7 +24,7 @@ #define G4PomeronCrossSection_h 1 // // $Id: G4PomeronCrossSection.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Proton.hh" #include "G4Neutron.hh" diff --git a/source/processes/hadronic/models/parton_string/management/include/G4StringModel.hh b/source/processes/hadronic/models/parton_string/management/include/G4StringModel.hh index 08df59016b..809e6f4a4e 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4StringModel.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4StringModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4StringModel.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4StringModel_h #define G4StringModel_h 1 diff --git a/source/processes/hadronic/models/parton_string/management/include/G4VParticipants.hh b/source/processes/hadronic/models/parton_string/management/include/G4VParticipants.hh index cb93502e36..96b2874192 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4VParticipants.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VParticipants.hh @@ -22,7 +22,7 @@ // // // $Id: G4VParticipants.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VParticipants_h diff --git a/source/processes/hadronic/models/parton_string/management/include/G4VPartonStringModel.hh b/source/processes/hadronic/models/parton_string/management/include/G4VPartonStringModel.hh index 0281aba08b..53880110f3 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4VPartonStringModel.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VPartonStringModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPartonStringModel.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VPartonStringModel_h #define G4VPartonStringModel_h 1 diff --git a/source/processes/hadronic/models/parton_string/management/include/G4VSplitableHadron.hh b/source/processes/hadronic/models/parton_string/management/include/G4VSplitableHadron.hh index 83647e3b01..9357678936 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4VSplitableHadron.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VSplitableHadron.hh @@ -22,7 +22,7 @@ // // // $Id: G4VSplitableHadron.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VSplitableHadron_h diff --git a/source/processes/hadronic/models/parton_string/management/include/G4VStringFragmentation.hh b/source/processes/hadronic/models/parton_string/management/include/G4VStringFragmentation.hh index 3d8696b7c4..06db390420 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4VStringFragmentation.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VStringFragmentation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStringFragmentation.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VStringFragmentation_h #define G4VStringFragmentation_h 1 diff --git a/source/processes/hadronic/models/parton_string/management/include/G4VertexCode.hh b/source/processes/hadronic/models/parton_string/management/include/G4VertexCode.hh index bbe8ea0adf..e9a7ccddf4 100644 --- a/source/processes/hadronic/models/parton_string/management/include/G4VertexCode.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VertexCode.hh @@ -22,7 +22,7 @@ // // // $Id: G4VertexCode.hh,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VertexCode_h #define G4VertexCode_h 1 diff --git a/source/processes/hadronic/models/parton_string/management/src/G4EventGenerator.cc b/source/processes/hadronic/models/parton_string/management/src/G4EventGenerator.cc index 800606bf54..f6aff492e8 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4EventGenerator.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4EventGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: G4EventGenerator.cc,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4EventGenerator #include "G4EventGenerator.hh" diff --git a/source/processes/hadronic/models/parton_string/management/src/G4InteractionContent.cc b/source/processes/hadronic/models/parton_string/management/src/G4InteractionContent.cc index 733e6678e6..c421b125f9 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4InteractionContent.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4InteractionContent.cc @@ -22,7 +22,7 @@ // // // $Id: G4InteractionContent.cc,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc b/source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc index 1334972f1d..ad1968198f 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc @@ -22,7 +22,7 @@ // // // $Id: G4PomeronCrossSection.cc,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4PomeronCrossSection.hh" diff --git a/source/processes/hadronic/models/parton_string/management/src/G4StringModel.cc b/source/processes/hadronic/models/parton_string/management/src/G4StringModel.cc index 58c57d8b73..c1578a13b7 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4StringModel.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4StringModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4StringModel.cc,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4StringModel #include "G4StringModel.hh" diff --git a/source/processes/hadronic/models/parton_string/management/src/G4VParticipants.cc b/source/processes/hadronic/models/parton_string/management/src/G4VParticipants.cc index 05200531fe..c6eca42f8a 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4VParticipants.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VParticipants.cc @@ -22,7 +22,7 @@ // // // $Id: G4VParticipants.cc,v 1.2 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc b/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc index a24c233a61..c6392f182c 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPartonStringModel.cc,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //// ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/parton_string/management/src/G4VSplitableHadron.cc b/source/processes/hadronic/models/parton_string/management/src/G4VSplitableHadron.cc index ddfe56b24d..568d0c0e98 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4VSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VSplitableHadron.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSplitableHadron.cc,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/parton_string/management/src/G4VStringFragmentation.cc b/source/processes/hadronic/models/parton_string/management/src/G4VStringFragmentation.cc index b7c8b15e2a..09dd05d111 100644 --- a/source/processes/hadronic/models/parton_string/management/src/G4VStringFragmentation.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VStringFragmentation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStringFragmentation.cc,v 1.3 2005/06/04 13:47:01 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VStringFragmentation #include "G4VStringFragmentation.hh" diff --git a/source/processes/hadronic/models/parton_string/qgsm/History b/source/processes/hadronic/models/parton_string/qgsm/History new file mode 100644 index 0000000000..48b2d8e11d --- /dev/null +++ b/source/processes/hadronic/models/parton_string/qgsm/History @@ -0,0 +1,21 @@ +$Id: History,v 1.1 2005/11/30 11:39:45 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================== + Geant4 - an Object-Oriented Toolkit for Physics Simulation + ========================================================== + + History file for hadronic/models/parton_string/qgsm directory + ------------------------------------------------------------- + +This file should be used to summarize modifications introduced in the +code and to keep track of all tags. + + --------------------------------------------------------------- + * Please list in reverse chronological order (last date on top) + --------------------------------------------------------------- + +30 Nov 2005 Gabriele Cosmo (hadr-qgsm-V07-01-00) +----------------------------------------------- +- Trivial fix in G4QGSParticipants and for support of CLHEP-2.0.X series. +- Created History file. diff --git a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSParticipants.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSParticipants.hh index 2956a26aba..628bebc342 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSParticipants.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSParticipants.hh @@ -44,7 +44,7 @@ class G4QGSParticipants : public G4VParticipants int operator==(const G4QGSParticipants &right) const; int operator!=(const G4QGSParticipants &right) const; - virtual void DoLorentzBoost(Hep3Vector aBoost) + virtual void DoLorentzBoost(G4ThreeVector aBoost) { if(theNucleus) theNucleus->DoLorentzBoost(aBoost); theBoost = aBoost; diff --git a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc index bd5f5ba199..62025c998f 100644 --- a/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc @@ -420,20 +420,15 @@ SampleX(G4double anXmin, G4int nSea, G4int totalSea, G4double aBeta) if(y>ymax) ymax = y; } G4double y; + G4double xMax=1-(totalSea+1)*anXmin; + if(anXmin > xMax) + { + G4cout << "anXmin = "<=1-(totalSea+1)*anXmin) - { - debcount ++; - if(debcount>10000) - { - G4cout << "anXmin = "<GetValue(kineticEnergy, isOutRange); for (G4int i=1; i<=34; i++) @@ -187,7 +187,7 @@ if(interpolated) { // calculate energy, momentum and angle of outgoing muon - RandFlat::shootArray(3, rndm); + CLHEP::RandFlat::shootArray(3, rndm); G4double theta = std::acos(tetal[icos-1]) + rndm[0]*(std::acos(tetal[icos])-std::acos(tetal[icos-1])); cosTheta = std::cos(theta); @@ -227,7 +227,7 @@ // virtual photon is exchanged with a pion of same Q2 // select pi+/pi- randomly and generate pion track G4ParticleDefinition* pdPion; - if(RandBit::shootBit()) + if(CLHEP::RandBit::shootBit()) pdPion = G4PionMinus::PionMinusDefinition(); else pdPion = G4PionPlus::PionPlusDefinition(); diff --git a/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4ParametrizedHadronicVertex.cc b/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4ParametrizedHadronicVertex.cc index 90c3dcf7b6..487da90fef 100644 --- a/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4ParametrizedHadronicVertex.cc +++ b/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4ParametrizedHadronicVertex.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParametrizedHadronicVertex.cc,v 1.4 2005/06/04 13:47:45 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParametrizedHadronicVertex.cc,v 1.5 2005/11/30 11:33:12 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- #include "G4ParametrizedHadronicVertex.hh" @@ -41,7 +41,7 @@ ApplyYourself(G4Nucleus & theTarget, const G4Track &thePhoton) G4double theKineticEnergy = thePhoton.GetKineticEnergy(); G4HadFinalState * aR = 0; G4HadProjectile thePro(thePhoton); - if(RandBit::shootBit()) + if(CLHEP::RandBit::shootBit()) { if(theKineticEnergy<20*GeV) aR = theLowEPionMinus->ApplyYourself(thePro, theTarget); else aR = theHighEPionMinus->ApplyYourself(thePro, theTarget); diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCFragment.icc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCFragment.icc index b68c5d9aec..736a9f9f08 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCFragment.icc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCFragment.icc @@ -24,8 +24,6 @@ #include -#define G4RandGamma RandGamma - inline G4bool G4HETCFragment:: IsItPossible(const G4Fragment & aFragment) const @@ -35,12 +33,11 @@ IsItPossible(const G4Fragment & aFragment) const return (pneut >= (GetA()-GetZ()) && pplus >= GetZ()); } - inline G4double G4HETCFragment:: BetaRand(const G4int N, const G4int L) const { - G4double Y1 = G4RandGamma::shoot(N,1); - G4double Y2 = G4RandGamma::shoot(L,1); + G4double Y1 = CLHEP::RandGamma::shoot(N,1); + G4double Y2 = CLHEP::RandGamma::shoot(L,1); return Y1/(Y1+Y2); } diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4LowEIonFragmentation.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4LowEIonFragmentation.hh index 711b01ea1e..f0421abf3f 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4LowEIonFragmentation.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4LowEIonFragmentation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LowEIonFragmentation.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by H.P. Wellisch diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundAlpha.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundAlpha.hh index 61ad1c51ff..c4de76c04d 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundAlpha.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundAlpha.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundAlpha.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundDeuteron.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundDeuteron.hh index 641d41ddd2..f104eee550 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundDeuteron.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundDeuteron.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundDeuteron.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundEmission.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundEmission.hh index 5762a59a7a..eca205efec 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundEmission.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundEmission.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PreCompoundEmission.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.hh index 3fbe92798b..590a3c17e8 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundFragmentVector.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.icc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.icc index 97d61967e1..62ee50abbb 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.icc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundFragmentVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundFragmentVector.icc,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundHe3.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundHe3.hh index 15e7b0aaff..c0f8a81b97 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundHe3.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundHe3.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundHe3.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundModel.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundModel.hh index e8c14be635..53f41d22ef 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundModel.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundModel.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundNeutron.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundNeutron.hh index 18c3adacf1..492d3c55d0 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundNeutron.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundNeutron.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundNeutron.hh,v 1.3 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundParameters.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundParameters.hh index 170d7bb793..5db91f96a2 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundParameters.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundParameters.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundProton.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundProton.hh index a16a421730..0f1e6aced1 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundProton.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundProton.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundProton.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundTransitions.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundTransitions.hh index de232b4f8e..491b2ed298 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundTransitions.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundTransitions.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundTransitions.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundTriton.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundTriton.hh index a712790fd8..51916953c5 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundTriton.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundTriton.hh @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundTriton.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh index 1e2ee50863..eb74d0abf2 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundFragment.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.icc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.icc index 09c3714fc2..8f6c558957 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.icc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundFragment.icc @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundFragment.icc,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundIon.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundIon.hh index f1bb43b165..83ec30cc3e 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundIon.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundIon.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundIon.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundNucleon.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundNucleon.hh index 621cd5938c..dd65aa850e 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundNucleon.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4VPreCompoundNucleon.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundNucleon.hh,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc index 3aff834c8e..79a80c7314 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundFragmentVector.cc,v 1.4 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc index 3d695161e4..d32536b4eb 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundModel.cc,v 1.7 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc index 0ebc9ae8d9..2d73fec9fb 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundParameters.cc,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc index fa9624af84..7969771968 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc @@ -22,7 +22,7 @@ // // // $Id: G4PreCompoundTransitions.cc,v 1.7 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc index 8ce8031464..dd152ac234 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundFragment.cc,v 1.2 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundIon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundIon.cc index d2ac423c11..03ec29d8e9 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundIon.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundIon.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundIon.cc,v 1.3 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundNucleon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundNucleon.cc index 83e241271a..f0db631fbf 100644 --- a/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundNucleon.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundNucleon.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPreCompoundNucleon.cc,v 1.3 2005/06/04 13:48:42 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/radioactive_decay/History b/source/processes/hadronic/models/radioactive_decay/History index 35e23f7d7b..a80608dcde 100644 --- a/source/processes/hadronic/models/radioactive_decay/History +++ b/source/processes/hadronic/models/radioactive_decay/History @@ -13,16 +13,30 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +24 November 2005 Dennis Wright (radioactive_decay-V07-01-02) +- more migration: replace istrstream with istringstream in + G4RIsotopeTable.cc, G4UIcmdWithNucleusLimits.cc + +24 November 2005 Dennis Wright (radioactive_decay-V07-01-01) +- migrated two remaining files to : + G4RIsotopeTable.cc, G4UIcmdWithNucleusLimits.cc + +09 November 2005 Gabriele Cosmo (radioactive_decay-V07-01-00) +- Implemented migration to from deprecated . +- Added changes for support of CLHEP-2.0.X. +- Replaced usage of NULL with 0. + 02 June 2005 Fan Lei (radioactive_decay-V07-00-01) -- added lines 667-669 to G4NuclearDeceyChannel.cc, to avoid rounding erros +- Added lines 667-669 to G4NuclearDeceyChannel.cc, to avoid rounding erros in cos calculations. A bug reported by Ben Morgan -- removed the test subdirectory +- Removed the test subdirectory 07 Mar 2005 Fan Lei (radioactive_decay-V07-00-00) -- added line 457, G4NuclearDeceyChannel.cc to fix bug #711 +- Added line 457, G4NuclearDeceyChannel.cc to fix bug #711 10 Nov 2004 Fan Lei (radioactive_decay-V06-02-01) -- added G4MshellECDecayChannel.hh and changed G4RadioactiveDecay.cc accordingly. +- Added G4MshellECDecayChannel.hh and changed G4RadioactiveDecay.cc accordingly. 09 Nov 2004 Fan Lei - Changes to G4RaioactiveDecay.cc (radioactive_decay-V06-02-00) @@ -44,7 +58,7 @@ track of all tags. G4ITDecayChannel to use G4Ions instead of G4ParticleDefinition. 03 Jan 2003 Fan Lei -- bug (test18) fix in G4NuclearDecayChannel.cc +- Bug (test18) fix in G4NuclearDecayChannel.cc 15 Nov 2002 Fan Lei ((radiative_decay-V04-01-01) - Added linked to atomic relaxation model after EC and @@ -64,19 +78,19 @@ track of all tags. for the geometry domain (tag "geometry-V03-01-00"). 01 Nov 2000 Fan Lei (radiative_decay-V02-00-02) -- added the missing line " ee = e0+1.; " to line 763 in +- Added the missing line " ee = e0+1.; " to line 763 in G4RadioactiveDecay.cc 27th Oct 200 fan Lei (radiative_decay-V02-00-01) -- add a fast simulation mode for beta decays +- Add a fast simulation mode for beta decays 25th Oct 2000 fan lei (radiative_decay-V02-00-00) -- added 'const' to line 1185 of G4RadioactiveDecay.cc to cowork with +- Added 'const' to line 1185 of G4RadioactiveDecay.cc to cowork with tag Track-V02-00-00 27th June 2000 Fan Lei (radiative_decay-V01-01-04) -- fix for DEC-cxx debug non-ISO. -- update test log files. +- Fix for DEC-cxx debug non-ISO. +- Update test log files. 15th June 2000 Fan Lei (radiative_decay_V01-01-03) - Minor fix on Linux @@ -84,6 +98,4 @@ track of all tags. 15th June 2000 Fan Lei (radiative_decay_V01-01-02) - ISO compliance. -initial tag by Hans_Pete (radiative_decay_V01-01-00) - - +* Initial tag by Hans-Peter Wellisch (radiative_decay_V01-01-00) diff --git a/source/processes/hadronic/models/radioactive_decay/include/G4BetaMinusDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4BetaMinusDecayChannel.hh index 59fc029400..85dd5906db 100644 --- a/source/processes/hadronic/models/radioactive_decay/include/G4BetaMinusDecayChannel.hh +++ b/source/processes/hadronic/models/radioactive_decay/include/G4BetaMinusDecayChannel.hh @@ -65,7 +65,7 @@ class G4BetaMinusDecayChannel : public G4NuclearDecayChannel G4double theDaughterExcitation=0.0, G4double theFFN=1.0, G4bool theBetaSimple = false, - RandGeneral* theRandEnergy = NULL): + CLHEP::RandGeneral* theRandEnergy = 0): G4NuclearDecayChannel (BetaMinus, Verbose, theParentNucleus, theBR, theFFN, theBetaSimple, diff --git a/source/processes/hadronic/models/radioactive_decay/include/G4BetaPlusDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4BetaPlusDecayChannel.hh index b59678cc56..851af5631c 100644 --- a/source/processes/hadronic/models/radioactive_decay/include/G4BetaPlusDecayChannel.hh +++ b/source/processes/hadronic/models/radioactive_decay/include/G4BetaPlusDecayChannel.hh @@ -69,7 +69,7 @@ class G4BetaPlusDecayChannel : public G4NuclearDecayChannel G4double theDaughterExcitation=0.0, G4double theFFN=0.0, G4bool theBetaSimple = false, - RandGeneral* theRandEnergy = NULL) : + CLHEP::RandGeneral* theRandEnergy = 0) : G4NuclearDecayChannel (BetaPlus, Verbose, theParentNucleus, diff --git a/source/processes/hadronic/models/radioactive_decay/include/G4NuclearDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4NuclearDecayChannel.hh index 571eaf59b9..5905a3630d 100644 --- a/source/processes/hadronic/models/radioactive_decay/include/G4NuclearDecayChannel.hh +++ b/source/processes/hadronic/models/radioactive_decay/include/G4NuclearDecayChannel.hh @@ -32,7 +32,8 @@ #include "G4GeneralPhaseSpaceDecay.hh" #include "G4RadioactiveDecayMode.hh" -#include "CLHEP/Random/RandGeneral.h" +#include + //////////////////////////////////////////////////////////////////////////////// // class G4NuclearDecayChannel : public G4GeneralPhaseSpaceDecay @@ -68,7 +69,7 @@ public: // with description G4NuclearDecayChannel (const G4RadioactiveDecayMode &theMode, G4int Verbose, const G4ParticleDefinition *theParentNucleus, G4double theBR, G4double theFFN, - G4bool betaS, RandGeneral* randBeta, + G4bool betaS, CLHEP::RandGeneral* randBeta, G4double theQtransition, G4int A, G4int Z, G4double theDaughterExcitation, const G4String theDaughterName1, @@ -131,7 +132,7 @@ protected: G4double Qtransition; G4double FermiFN; G4bool BetaSimple; - RandGeneral* RandomEnergy; + CLHEP::RandGeneral* RandomEnergy; }; #endif diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc b/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc index 97b5e9fbd9..c1c82c3356 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc @@ -139,7 +139,7 @@ G4NuclearDecayChannel::G4NuclearDecayChannel G4double theBR, G4double theFFN, G4bool betaS, - RandGeneral* randBeta, + CLHEP::RandGeneral* randBeta, G4double theQtransition, G4int A, G4int Z, @@ -271,8 +271,8 @@ G4DecayProducts *G4NuclearDecayChannel::DecayIt (G4double theParentMass) // Load-up the details of the parent and daughter particles if they have not // been defined properly. // - if (parent == NULL) FillParent(); - if (daughters == NULL) FillDaughters(); + if (parent == 0) FillParent(); + if (daughters == 0) FillDaughters(); // // // We want to ensure that the difference between the total @@ -296,7 +296,7 @@ G4DecayProducts *G4NuclearDecayChannel::DecayIt (G4double theParentMass) // // Define a product vector. // - G4DecayProducts *products = NULL; + G4DecayProducts *products = 0; // // // Depending upon the number of daughters, select the appropriate decay @@ -325,7 +325,7 @@ G4DecayProducts *G4NuclearDecayChannel::DecayIt (G4double theParentMass) G4cerr <<"Number of daughters in decay = " <0)) { + if ((products == 0) && (GetVerboseLevel()>0)) { G4cerr << "G4NuclearDecayChannel::DecayIt "; G4cerr << *parent_name << " can not decay " << G4endl; DumpInfo(); diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc index 4e0f097118..0ae9cb9e69 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc @@ -70,7 +70,7 @@ #include "globals.hh" #include #include -#include +#include const G4double G4RIsotopeTable::levelTolerance = 2.0*keV; @@ -152,12 +152,10 @@ G4IsotopeProperty* G4RIsotopeTable::GetIsotope(G4int Z, G4int A, G4double E) // G4String G4RIsotopeTable::GetIsotopeName(G4int Z, G4int A, G4double E) { - G4String name; - char val[50]; - std::ostrstream os(val,50); + std::ostringstream os; os.setf(std::ios::fixed); - os <<"A"<< A << "Z" << Z <<'[' << std::setprecision(1) << E/keV << ']' << '\0'; - name = val; + os <<"A"<< A << "Z" << Z <<'[' << std::setprecision(1) << E/keV << ']'; + G4String name = os.str(); if (GetVerboseLevel()>0) { G4cerr <<"G4RIsotopeTable::GetIsotope Name: "; G4cerr <>recordType >>a >>b; if (recordType == "P") diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc index b155c917f7..8dc9a33b79 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc @@ -102,10 +102,12 @@ #include "G4HadTmpUtil.hh" #include -#include +#include #include #include +using namespace CLHEP; + const G4double G4RadioactiveDecay::levelTolerance =2.0*keV; /////////////////////////////////////////////////////////////////////////////// @@ -126,7 +128,7 @@ G4RadioactiveDecay::G4RadioactiveDecay theRadioactiveDecaymessenger = new G4RadioactiveDecaymessenger(this); theIsotopeTable = new G4RIsotopeTable(); - aPhysicsTable = NULL; + aPhysicsTable = 0; pParticleChange = &fParticleChangeForRadDecay; // @@ -171,7 +173,7 @@ G4RadioactiveDecay::G4RadioactiveDecay // G4RadioactiveDecay::~G4RadioactiveDecay() { - if (aPhysicsTable != NULL) + if (aPhysicsTable != 0) { aPhysicsTable->clearAndDestroy(); delete aPhysicsTable; @@ -543,7 +545,7 @@ G4double G4RadioactiveDecay::GetMeanFreePath (const G4Track& aTrack, pathlength = ( rKineticEnergy + 1.0)* aCtau; } else if ( rKineticEnergy > LowestBinValue) { // check if aPhysicsTable exists - if (aPhysicsTable == NULL) BuildPhysicsTable(*aParticleDef); + if (aPhysicsTable == 0) BuildPhysicsTable(*aParticleDef); // beta is in the range valid for PhysicsTable pathlength = aCtau * ((*aPhysicsTable)(0))-> GetValue(rKineticEnergy,isOutRange); @@ -577,7 +579,7 @@ G4double G4RadioactiveDecay::GetMeanFreePath (const G4Track& aTrack, void G4RadioactiveDecay::BuildPhysicsTable(const G4ParticleDefinition&) { // if aPhysicsTableis has already been created, do nothing - if (aPhysicsTable != NULL) return; + if (aPhysicsTable != 0) return; // create aPhysicsTable if (GetVerboseLevel()>1) G4cerr <<" G4Decay::BuildPhysicsTable() "<< G4endl; @@ -633,10 +635,9 @@ G4DecayTable *G4RadioactiveDecay::LoadDecayTable (G4ParticleDefinition std::sort( LoadedNuclei.begin(), LoadedNuclei.end() ); // sort needed to allow binary_search - char val[100]; - std::ostrstream os(val,100); + std::ostringstream os; os <Insert(theBetaMinusChannel); break; @@ -1134,7 +1135,7 @@ void G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition &theParent // Decay mode is beta+ + EC. // theBetaPlusChannel = new G4BetaPlusDecayChannel (GetVerboseLevel(), aParentNucleus, - brs[2], 0.*MeV, 0.*MeV, 1, false, NULL); + brs[2], 0.*MeV, 0.*MeV, 1, false, 0); theDecayTable->Insert(theBetaPlusChannel); break; @@ -1372,7 +1373,7 @@ G4VParticleChange* G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4 } G4DecayTable *theDecayTable = theParticleDef->GetDecayTable(); - if (theDecayTable == NULL || theDecayTable->entries() == 0 ) + if (theDecayTable == 0 || theDecayTable->entries() == 0 ) { // // @@ -1517,7 +1518,7 @@ G4VParticleChange* G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4 G4double currentTime = 0.; G4int ndecaych; G4DynamicParticle* asecondaryparticle; - // G4DecayProducts* products = NULL; + // G4DecayProducts* products = 0; std::vector secondaryparticles; std::vector pw; std::vector ptime; @@ -1583,7 +1584,7 @@ G4VParticleChange* G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4 // a temprary products buffer and its contents is transfered to // the products at the end of the loop // - G4DecayProducts *tempprods = NULL; + G4DecayProducts *tempprods = 0; // calculate the decay rate of the isotope // one need to fold the the source bias function with the decaytime @@ -1615,7 +1616,7 @@ G4VParticleChange* G4RadioactiveDecay::DecayIt(const G4Track& theTrack, const G4 G4DecayTable *theDecayTable = parentNucleus->GetDecayTable(); ndecaych = G4int(theDecayTable->entries()*G4UniformRand()); G4VDecayChannel *theDecayChannel = theDecayTable->GetDecayChannel(ndecaych); - if (theDecayChannel == NULL) + if (theDecayChannel == 0) { // Decay channel not found. #ifdef G4VERBOSE diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecaymessenger.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecaymessenger.cc index 2af4ec7407..5f41f8962b 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecaymessenger.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecaymessenger.cc @@ -24,7 +24,8 @@ // #include "G4RadioactiveDecaymessenger.hh" -#include +#include + //////////////////////////////////////////////////////////////////////////////// // G4RadioactiveDecaymessenger::G4RadioactiveDecaymessenger @@ -179,13 +180,13 @@ void G4RadioactiveDecaymessenger::SetNewValue (G4UIcommand *command, G4String ne else if (command==analoguemcCmd) { G4int vl; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; theRadioactiveDecayContainer->SetAnalogueMonteCarlo(vl!=0);} else if (command==fbetaCmd) { G4int vl; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; theRadioactiveDecayContainer->SetFBeta(vl!=0);} else if (command==avolumeCmd) {theRadioactiveDecayContainer-> @@ -199,7 +200,7 @@ void G4RadioactiveDecaymessenger::SetNewValue (G4UIcommand *command, G4String ne else if (command==brbiasCmd) { G4int vl; const char* t = newValues; - std::istrstream is((char*)t); + std::istringstream is(t); is >> vl; theRadioactiveDecayContainer->SetBRBias(vl!=0);} else if (command==sourcetimeprofileCmd) {theRadioactiveDecayContainer-> diff --git a/source/processes/hadronic/models/radioactive_decay/src/G4UIcmdWithNucleusLimits.cc b/source/processes/hadronic/models/radioactive_decay/src/G4UIcmdWithNucleusLimits.cc index c2ffd2344c..6b56fb24b9 100644 --- a/source/processes/hadronic/models/radioactive_decay/src/G4UIcmdWithNucleusLimits.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4UIcmdWithNucleusLimits.cc @@ -22,7 +22,7 @@ // // #include "G4UIcmdWithNucleusLimits.hh" -#include +#include //////////////////////////////////////////////////////////////////////////////// // G4UIcmdWithNucleusLimits::G4UIcmdWithNucleusLimits @@ -54,8 +54,7 @@ G4NucleusLimits G4UIcmdWithNucleusLimits:: G4int aMax; G4int zMin; G4int zMax; - const char* t = paramString; - std::istrstream is((char*)t); + std::istringstream is(paramString); is >> aMin >> aMax >> zMin >> zMax; return G4NucleusLimits(aMin,aMax,zMin,zMax); } @@ -64,11 +63,10 @@ G4NucleusLimits G4UIcmdWithNucleusLimits:: G4String G4UIcmdWithNucleusLimits::ConvertToString (G4NucleusLimits defLimits) { - char st[100]; - std::ostrstream os(st,100); + std::ostringstream os; os << defLimits.GetAMin() << " " << defLimits.GetAMax() - << defLimits.GetZMin() << " " << defLimits.GetZMax()<< '\0'; - G4String vl = st; + << defLimits.GetZMin() << " " << defLimits.GetZMax() ; + G4String vl = os.str(); return vl; } //////////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/hadronic/models/theo_high_energy/include/G4TheoFSGenerator.hh b/source/processes/hadronic/models/theo_high_energy/include/G4TheoFSGenerator.hh index 2e9c8902f1..21d0b7327b 100644 --- a/source/processes/hadronic/models/theo_high_energy/include/G4TheoFSGenerator.hh +++ b/source/processes/hadronic/models/theo_high_energy/include/G4TheoFSGenerator.hh @@ -22,7 +22,7 @@ // // // $Id: G4TheoFSGenerator.hh,v 1.2 2005/06/04 13:50:03 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Class Description diff --git a/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc b/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc index 0010a55a69..d680d2d379 100644 --- a/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc +++ b/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc @@ -22,7 +22,7 @@ // // // $Id: G4TheoFSGenerator.cc,v 1.4 2005/06/04 13:50:04 jwellisc Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4TheoFSGenerator #include "G4DynamicParticle.hh" diff --git a/source/processes/hadronic/models/util/History b/source/processes/hadronic/models/util/History new file mode 100644 index 0000000000..b646f064f2 --- /dev/null +++ b/source/processes/hadronic/models/util/History @@ -0,0 +1,25 @@ +------------------------------------------------------------------- + + ========================================================== + Geant4 - an Object-Oriented Toolkit for Physics Simulation + ========================================================== + + History file for hadronic/models/util directory + ----------------------------------------------- + +This file should be used to summarize modifications introduced in the +code and to keep track of all tags. + + --------------------------------------------------------------- + * Please list in reverse chronological order (last date on top) + --------------------------------------------------------------- + +30 Nov 2005 Gabriele Cosmo (hadr-modutl-V07-01-01) +-------------------------------------------------- +- Trivial fix in G4Fancy3DNucleus for support of CLHEP-2.0.X series. + +23 Nov 2005 Dennis Wright (hadr-modutl-V07-01-00) +------------------------------------------------- +- include change of G4KineticTrack::GetActualMass() which uses + the4Momentum.mag2() to get mass +- D. Wright created History file for models/util directory diff --git a/source/processes/hadronic/models/util/include/G4KineticTrack.hh b/source/processes/hadronic/models/util/include/G4KineticTrack.hh index eec1e88fe5..2633c657c7 100644 --- a/source/processes/hadronic/models/util/include/G4KineticTrack.hh +++ b/source/processes/hadronic/models/util/include/G4KineticTrack.hh @@ -328,11 +328,7 @@ inline void G4KineticTrack::UpdateTrackingMomentum(const G4ThreeVector & aMoment inline G4double G4KineticTrack::GetActualMass() const { - G4ThreeVector theMomentum = the4Momentum.vect(); - G4double theMomentum2 = theMomentum.mag2(); - G4double theTotalEnergy = the4Momentum.e(); - G4double theMass = std::sqrt(std::abs(theTotalEnergy * theTotalEnergy - theMomentum2)); - return theMass; + return std::sqrt(std::abs(the4Momentum.mag2())); } diff --git a/source/processes/hadronic/models/util/src/G4Fancy3DNucleus.cc b/source/processes/hadronic/models/util/src/G4Fancy3DNucleus.cc index 064a18a567..170e642852 100644 --- a/source/processes/hadronic/models/util/src/G4Fancy3DNucleus.cc +++ b/source/processes/hadronic/models/util/src/G4Fancy3DNucleus.cc @@ -272,7 +272,7 @@ void G4Fancy3DNucleus::ChoosePositions() if ( jr < 3 ) { jr=std::min(600,9*(myA - i)); - HepRandom::getTheEngine()->flatArray(jr, prand ); + CLHEP::RandFlat::shootArray(jr, prand ); } jx=--jr; jy=--jr; diff --git a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc index 50d81d6784..0406edd61f 100644 --- a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc @@ -205,7 +205,7 @@ AtRestDoIt(const G4Track& track,const G4Step&) for ( G4int isec = 0; isec < nEmSecondaries; isec++ ) { G4ParticleDefinition* pd = Cascade[isec].GetParticleDef(); G4double localtime = globalTime; - if(isec > nCascade) localtime += tDelay; + if(isec >= nCascade) localtime += tDelay; if(pd) { G4DynamicParticle* aNewParticle = new G4DynamicParticle; aNewParticle->SetDefinition( pd ); diff --git a/source/processes/hadronic/util/History b/source/processes/hadronic/util/History new file mode 100644 index 0000000000..0029e9c234 --- /dev/null +++ b/source/processes/hadronic/util/History @@ -0,0 +1,25 @@ +------------------------------------------------------------------- + + ========================================================== + Geant4 - an Object-Oriented Toolkit for Physics Simulation + ========================================================== + + History file for hadronic/util directory + ---------------------------------------- + +This file should be used to summarize modifications introduced in the +code and to keep track of all tags. + + --------------------------------------------------------------- + * Please list in reverse chronological order (last date on top) + --------------------------------------------------------------- + +30 Nov 2005 Gabriele Cosmo (hadr-util-V07-01-01) +----------------------------------------------- +- Trivial fix in G4ReactionKinematics and G4Nucleus for support of + CLHEP-2.0.X series. + +25 Nov 2005 Dennis Wright (hadr-util-V07-01-00) +---------------------------------------------- +- G4HadTmpUtil.cc : migration + diff --git a/source/processes/hadronic/util/src/G4HadTmpUtil.cc b/source/processes/hadronic/util/src/G4HadTmpUtil.cc index e8d22b9c7f..3018115d1e 100644 --- a/source/processes/hadronic/util/src/G4HadTmpUtil.cc +++ b/source/processes/hadronic/util/src/G4HadTmpUtil.cc @@ -21,7 +21,7 @@ // ******************************************************************** // #include "G4HadTmpUtil.hh" -#include +#include G4int G4lrint(double ad) { @@ -40,9 +40,8 @@ G4int G4rint(double ad) G4String G4inttostring(int ai) { - char the[100] = {""}; - std::ostrstream ost(the, 100, std::ios::out); + std::ostringstream ost; ost << ai; - G4String result(the); + G4String result = ost.str(); return result; } diff --git a/source/processes/hadronic/util/src/G4Nucleus.cc b/source/processes/hadronic/util/src/G4Nucleus.cc index 6f60bb6161..bcbb921dde 100644 --- a/source/processes/hadronic/util/src/G4Nucleus.cc +++ b/source/processes/hadronic/util/src/G4Nucleus.cc @@ -325,15 +325,19 @@ G4ReactionProduct G4Nucleus::GetThermalNucleus(G4double targetMass, G4double tem // chv: .. we assume zero temperature! // momentum is equally distributed in each phasespace volume dpx, dpy, dpz. - G4double ranflat1=RandFlat::shoot((G4double)0.,(G4double)fermiMomentum); - G4double ranflat2=RandFlat::shoot((G4double)0.,(G4double)fermiMomentum); - G4double ranflat3=RandFlat::shoot((G4double)0.,(G4double)fermiMomentum); + G4double ranflat1= + CLHEP::RandFlat::shoot((G4double)0.,(G4double)fermiMomentum); + G4double ranflat2= + CLHEP::RandFlat::shoot((G4double)0.,(G4double)fermiMomentum); + G4double ranflat3= + CLHEP::RandFlat::shoot((G4double)0.,(G4double)fermiMomentum); G4double ranmax = (ranflat1>ranflat2? ranflat1: ranflat2); ranmax = (ranmax>ranflat3? ranmax : ranflat3); // - random decay angle G4double theta=pi*G4UniformRand(); // isotropic decay angle theta - G4double phi =RandFlat::shoot((G4double)0.,(G4double)2*pi); // isotropic decay angle phi + G4double phi =CLHEP::RandFlat::shoot((G4double)0.,(G4double)2*pi); + // isotropic decay angle phi // - setup ThreeVector G4double pz=std::cos(theta)*ranmax; diff --git a/source/processes/hadronic/util/src/G4ReactionKinematics.cc b/source/processes/hadronic/util/src/G4ReactionKinematics.cc index c3a2c7cc90..dd70d28a44 100644 --- a/source/processes/hadronic/util/src/G4ReactionKinematics.cc +++ b/source/processes/hadronic/util/src/G4ReactionKinematics.cc @@ -59,8 +59,8 @@ void G4ReactionKinematics::TwoBodyScattering( // - random decay angle G4double theta=pi*G4UniformRand(); // isotropic decay angle theta - G4double phi =RandFlat::shoot(G4double(0.),G4double(twopi)); // isotropic decay angle phi - + G4double phi =CLHEP::RandFlat::shoot(G4double(0.),G4double(twopi)); + // isotropic decay angle phi // - setup LorentzVectors G4double pz=std::cos(theta)*breakupMomentum; G4double px=std::sin(theta)*std::cos(phi)*breakupMomentum; diff --git a/source/processes/management/History b/source/processes/management/History index 750c529f20..88cd5b2eb8 100644 --- a/source/processes/management/History +++ b/source/processes/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.37 2005/02/15 04:38:56 kurasige Exp $ +$Id: History,v 1.40 2005/11/21 21:58:18 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,6 +16,15 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +- Nov. 21, 2005 M.Asai (procman-V07-01-01) +- Migration to . +- G4VProcess::StartTracking now takes G4Track* as an argument. +- G4ProcessManager::StartTracking now invokes this new method. + +- July 11, 2005 H.Kurashige (procman-V07-01-00) +- Add forward declaration of G4UImessenger in G4ProcessTable.hh + -Feb. 15, 2005 H.Kurashige (procman-V07-00-00) - Modify G4ProcessVectorOrdering to fix FindInsedrtPosition diff --git a/source/processes/management/include/G4IVContinuousDiscreteProcess.hh b/source/processes/management/include/G4IVContinuousDiscreteProcess.hh index 4134604f42..889ef4a80c 100644 --- a/source/processes/management/include/G4IVContinuousDiscreteProcess.hh +++ b/source/processes/management/include/G4IVContinuousDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4IVContinuousDiscreteProcess.hh,v 1.7 2001/07/11 10:08:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4IVRestDiscreteProcess.hh b/source/processes/management/include/G4IVRestDiscreteProcess.hh index 66f9a132fd..e3a707573a 100644 --- a/source/processes/management/include/G4IVRestDiscreteProcess.hh +++ b/source/processes/management/include/G4IVRestDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4IVRestDiscreteProcess.hh,v 1.7 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ParticleTypes.hh b/source/processes/management/include/G4ParticleTypes.hh index 6d0b9dcaa5..9b995e9315 100644 --- a/source/processes/management/include/G4ParticleTypes.hh +++ b/source/processes/management/include/G4ParticleTypes.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTypes.hh,v 1.5 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcTblElement.hh b/source/processes/management/include/G4ProcTblElement.hh index d4e4db40a2..1d8db0977f 100644 --- a/source/processes/management/include/G4ProcTblElement.hh +++ b/source/processes/management/include/G4ProcTblElement.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcTblElement.hh,v 1.10 2003/06/16 17:12:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcTblElement.icc b/source/processes/management/include/G4ProcTblElement.icc index a341f4faf9..47602e31f3 100644 --- a/source/processes/management/include/G4ProcTblElement.icc +++ b/source/processes/management/include/G4ProcTblElement.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProcTblElement.icc,v 1.7 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessAttribute.hh b/source/processes/management/include/G4ProcessAttribute.hh index afaf39c3a6..dbec5db980 100644 --- a/source/processes/management/include/G4ProcessAttribute.hh +++ b/source/processes/management/include/G4ProcessAttribute.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessAttribute.hh,v 1.4 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessManager.hh b/source/processes/management/include/G4ProcessManager.hh index 0febc7190e..f9dae1c52e 100644 --- a/source/processes/management/include/G4ProcessManager.hh +++ b/source/processes/management/include/G4ProcessManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessManager.hh,v 1.10 2005/02/15 04:38:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ProcessManager.hh,v 1.11 2005/09/02 00:09:43 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -261,7 +261,7 @@ class G4ProcessManager void SetParticleType(const G4ParticleDefinition*); // set the particle type - void StartTracking(); + void StartTracking(G4Track* aTrack=0); void EndTracking(); // these two methods are used by G4TrackingManager // in order to inform Start/End of tracking for each track diff --git a/source/processes/management/include/G4ProcessManager.icc b/source/processes/management/include/G4ProcessManager.icc index 2e83d70857..ed119cbb81 100644 --- a/source/processes/management/include/G4ProcessManager.icc +++ b/source/processes/management/include/G4ProcessManager.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManager.icc,v 1.3 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/management/include/G4ProcessManagerMessenger.hh b/source/processes/management/include/G4ProcessManagerMessenger.hh index bec754a71c..6d64fefd7f 100644 --- a/source/processes/management/include/G4ProcessManagerMessenger.hh +++ b/source/processes/management/include/G4ProcessManagerMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManagerMessenger.hh,v 1.6 2003/04/01 16:43:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessTable.hh b/source/processes/management/include/G4ProcessTable.hh index 509a4950a4..d4bae86236 100644 --- a/source/processes/management/include/G4ProcessTable.hh +++ b/source/processes/management/include/G4ProcessTable.hh @@ -22,8 +22,8 @@ // // -// $Id: G4ProcessTable.hh,v 1.8 2003/06/16 17:12:29 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ProcessTable.hh,v 1.9 2005/07/11 10:18:00 kurasige Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -51,6 +51,7 @@ #include "G4ProcTblElement.hh" #include "G4ProcessVector.hh" +class G4UImessenger; class G4ProcessTableMessenger; class G4ProcessTable diff --git a/source/processes/management/include/G4ProcessTable.icc b/source/processes/management/include/G4ProcessTable.icc index 3efd655c51..f06eb4bb10 100644 --- a/source/processes/management/include/G4ProcessTable.icc +++ b/source/processes/management/include/G4ProcessTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessTable.icc,v 1.4 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // History: // Use STL vector instead of RW vector 1. Mar 00 H.Kurashige diff --git a/source/processes/management/include/G4ProcessTableMessenger.hh b/source/processes/management/include/G4ProcessTableMessenger.hh index 84ee163962..16ca30affb 100644 --- a/source/processes/management/include/G4ProcessTableMessenger.hh +++ b/source/processes/management/include/G4ProcessTableMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessTableMessenger.hh,v 1.6 2003/04/01 16:43:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessType.hh b/source/processes/management/include/G4ProcessType.hh index d4c7c4128d..70db54363a 100644 --- a/source/processes/management/include/G4ProcessType.hh +++ b/source/processes/management/include/G4ProcessType.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessType.hh,v 1.4 2001/07/11 10:08:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessVector.hh b/source/processes/management/include/G4ProcessVector.hh index 6a79370fce..4a8f726be0 100644 --- a/source/processes/management/include/G4ProcessVector.hh +++ b/source/processes/management/include/G4ProcessVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessVector.hh,v 1.9 2003/06/16 17:12:30 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessVector.icc b/source/processes/management/include/G4ProcessVector.icc index 07cf806627..723f7707e7 100644 --- a/source/processes/management/include/G4ProcessVector.icc +++ b/source/processes/management/include/G4ProcessVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessVector.icc,v 1.4 2001/09/19 10:54:48 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // inline G4bool G4ProcessVector::operator==(const G4ProcessVector &right) const { diff --git a/source/processes/management/include/G4VContinuousDiscreteProcess.hh b/source/processes/management/include/G4VContinuousDiscreteProcess.hh index 3b35f3b69e..996eaed2d2 100644 --- a/source/processes/management/include/G4VContinuousDiscreteProcess.hh +++ b/source/processes/management/include/G4VContinuousDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VContinuousDiscreteProcess.hh,v 1.7 2003/03/25 06:22:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VContinuousProcess.hh b/source/processes/management/include/G4VContinuousProcess.hh index 75ad3a9337..f673f2b7b4 100644 --- a/source/processes/management/include/G4VContinuousProcess.hh +++ b/source/processes/management/include/G4VContinuousProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VContinuousProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VDiscreteProcess.hh b/source/processes/management/include/G4VDiscreteProcess.hh index 543c64baa1..b3cac7a055 100644 --- a/source/processes/management/include/G4VDiscreteProcess.hh +++ b/source/processes/management/include/G4VDiscreteProcess.hh @@ -23,7 +23,7 @@ // // $Id: G4VDiscreteProcess.hh,v 1.7 2003/03/25 06:22:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VProcess.hh b/source/processes/management/include/G4VProcess.hh index c5ad094b8c..32f2aa551f 100644 --- a/source/processes/management/include/G4VProcess.hh +++ b/source/processes/management/include/G4VProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VProcess.hh,v 1.19 2004/12/02 23:30:04 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VProcess.hh,v 1.22 2005/11/21 21:59:19 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -259,10 +259,10 @@ class G4VProcess static const G4String& GetProcessTypeName(G4ProcessType ); // Returns the process type name - virtual void StartTracking(); + virtual void StartTracking(G4Track*); virtual void EndTracking(); // inform Start/End of tracking for each track to the physics process - + public: virtual void SetProcessManager(const G4ProcessManager*); // A process manager set its own pointer when the process is registered diff --git a/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh b/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh index 9d76043a38..adec460438 100644 --- a/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh +++ b/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRestContinuousDiscreteProcess.hh,v 1.7 2003/03/25 06:22:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestContinuousProcess.hh b/source/processes/management/include/G4VRestContinuousProcess.hh index ce0f71700c..06e66947b1 100644 --- a/source/processes/management/include/G4VRestContinuousProcess.hh +++ b/source/processes/management/include/G4VRestContinuousProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRestContinuousProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestDiscreteProcess.hh b/source/processes/management/include/G4VRestDiscreteProcess.hh index 6a467501dc..6367481de6 100644 --- a/source/processes/management/include/G4VRestDiscreteProcess.hh +++ b/source/processes/management/include/G4VRestDiscreteProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRestDiscreteProcess.hh,v 1.7 2003/03/25 06:22:23 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestProcess.hh b/source/processes/management/include/G4VRestProcess.hh index 510c048d58..08ae20a39f 100644 --- a/source/processes/management/include/G4VRestProcess.hh +++ b/source/processes/management/include/G4VRestProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRestProcess.hh,v 1.5 2001/07/11 10:08:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4WrapperProcess.hh b/source/processes/management/include/G4WrapperProcess.hh index 5d05d41fec..f6314f1207 100644 --- a/source/processes/management/include/G4WrapperProcess.hh +++ b/source/processes/management/include/G4WrapperProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4WrapperProcess.hh,v 1.3 2004/11/07 01:41:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4WrapperProcess.hh,v 1.4 2005/11/21 18:07:56 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -153,7 +153,7 @@ class G4WrapperProcess :public G4VProcess // File name should be defined by each process // and the file should be placed under the directory specifed by the argument. //////////////////////////// - virtual void StartTracking(); + virtual void StartTracking(G4Track*); virtual void EndTracking(); // inform Start/End of tracking for each track to the physics process diff --git a/source/processes/management/src/G4IVContinuousDiscreteProcess.cc b/source/processes/management/src/G4IVContinuousDiscreteProcess.cc index a9af587bfe..3b3ac7f106 100644 --- a/source/processes/management/src/G4IVContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4IVContinuousDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4IVContinuousDiscreteProcess.cc,v 1.8 2003/11/03 03:27:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4IVRestDiscreteProcess.cc b/source/processes/management/src/G4IVRestDiscreteProcess.cc index 8208d2de48..b832536cf8 100644 --- a/source/processes/management/src/G4IVRestDiscreteProcess.cc +++ b/source/processes/management/src/G4IVRestDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4IVRestDiscreteProcess.cc,v 1.8 2003/11/03 03:27:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4ProcTblElement.cc b/source/processes/management/src/G4ProcTblElement.cc index 11667da1c0..8030992eac 100644 --- a/source/processes/management/src/G4ProcTblElement.cc +++ b/source/processes/management/src/G4ProcTblElement.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcTblElement.cc,v 1.6 2001/07/11 10:08:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessAttribute.cc b/source/processes/management/src/G4ProcessAttribute.cc index 9bd8a64e85..64af56f9ba 100644 --- a/source/processes/management/src/G4ProcessAttribute.cc +++ b/source/processes/management/src/G4ProcessAttribute.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessAttribute.cc,v 1.4 2001/07/11 10:08:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessManager.cc b/source/processes/management/src/G4ProcessManager.cc index 7cc63158e4..5b80e943d4 100644 --- a/source/processes/management/src/G4ProcessManager.cc +++ b/source/processes/management/src/G4ProcessManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessManager.cc,v 1.25 2005/02/15 04:38:58 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ProcessManager.cc,v 1.27 2005/11/21 03:47:32 kurasige Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -45,9 +45,6 @@ #include "G4ProcessTable.hh" #include "G4ios.hh" -#include - - // --------------------------------- // function members implementation @@ -935,13 +932,13 @@ void G4ProcessManager::CreateGPILvectors() ////////////////////////////////////////// -void G4ProcessManager::StartTracking() +void G4ProcessManager::StartTracking(G4Track* aTrack) { for (G4int idx = 0; idxentries(); idx++){ if (GetAttribute(idx)->isActive) - ((*theProcessList)[idx])->StartTracking(); + ((*theProcessList)[idx])->StartTracking(aTrack); } - duringTracking = true; + if(aTrack) duringTracking = true; } ///////////////////////////////////////////// diff --git a/source/processes/management/src/G4ProcessManagerMessenger.cc b/source/processes/management/src/G4ProcessManagerMessenger.cc index ca957f4100..b2bbf820b8 100644 --- a/source/processes/management/src/G4ProcessManagerMessenger.cc +++ b/source/processes/management/src/G4ProcessManagerMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessManagerMessenger.cc,v 1.7 2003/06/16 17:12:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ProcessManagerMessenger.cc,v 1.8 2005/11/21 03:47:32 kurasige Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -54,7 +54,7 @@ #include "G4ios.hh" // Include from 'system' #include // Include from 'system' -#include +#include G4ProcessManagerMessenger::G4ProcessManagerMessenger(G4ParticleTable* pTable) :theParticleTable(pTable), @@ -172,7 +172,7 @@ void G4ProcessManagerMessenger::SetNewValue(G4UIcommand * command,G4String newVa //Commnad /particle/process/Verbose // inputstream for newValues const char* temp = (const char*)(newValue); - std::istrstream is((char*)temp); + std::istringstream is((char*)temp); G4int Verbose, index; is >>Verbose >>index; if (index <0) { @@ -202,13 +202,12 @@ G4String G4ProcessManagerMessenger::GetCurrentValue(G4UIcommand * command) return returnValue; } - char line[255]; - std::ostrstream os(line,255); + std::ostringstream os; if( command==verboseCmd ){ //Commnad /particle/process/Verbose - os << theManager->GetVerboseLevel() << '\0'; - returnValue = G4String(line); + os << theManager->GetVerboseLevel(); + returnValue = os.str(); } return returnValue; } diff --git a/source/processes/management/src/G4ProcessTable.cc b/source/processes/management/src/G4ProcessTable.cc index 172eab709e..8feca54024 100644 --- a/source/processes/management/src/G4ProcessTable.cc +++ b/source/processes/management/src/G4ProcessTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessTable.cc,v 1.11 2004/06/12 13:07:19 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessTableMessenger.cc b/source/processes/management/src/G4ProcessTableMessenger.cc index c00b47629f..1c00bb0623 100644 --- a/source/processes/management/src/G4ProcessTableMessenger.cc +++ b/source/processes/management/src/G4ProcessTableMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessTableMessenger.cc,v 1.14 2003/11/03 03:27:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ProcessTableMessenger.cc,v 1.15 2005/11/21 03:47:32 kurasige Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -56,7 +56,7 @@ #include "G4ios.hh" #include "G4Tokenizer.hh" #include -#include +#include ///////////////////////////////////////// G4int G4ProcessTableMessenger::NumberOfProcessType = 10; @@ -216,7 +216,7 @@ void G4ProcessTableMessenger::SetNewValue(G4UIcommand * command,G4String newValu G4String tmpS = G4String(next()); // inputstream for newValues const char* temp = (const char*)(tmpS); - std::istrstream is((char*)temp); + std::istringstream is((char*)temp); G4int level; is >>level; @@ -356,16 +356,15 @@ G4String G4ProcessTableMessenger::GetCurrentValue(G4UIcommand * command) G4String candidates; G4String returnValue('\0'); - char line[255]; - std::ostrstream os(line,255); + std::ostringstream os; G4UIparameter * param; G4int idx; if( command==verboseCmd ){ //Commnad /process/verbose - os << theProcessTable->GetVerboseLevel() << '\0'; - returnValue = G4String(line); + os << theProcessTable->GetVerboseLevel(); + returnValue = os.str(); } else if ( command==listCmd ){ //Commnad /process/list diff --git a/source/processes/management/src/G4ProcessVector.cc b/source/processes/management/src/G4ProcessVector.cc index e977cd4218..e4ccb13022 100644 --- a/source/processes/management/src/G4ProcessVector.cc +++ b/source/processes/management/src/G4ProcessVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessVector.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4VContinuousDiscreteProcess.cc b/source/processes/management/src/G4VContinuousDiscreteProcess.cc index f9db9cd83f..2c88ac62fa 100644 --- a/source/processes/management/src/G4VContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4VContinuousDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VContinuousDiscreteProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VContinuousProcess.cc b/source/processes/management/src/G4VContinuousProcess.cc index df890d7f52..016a0fc487 100644 --- a/source/processes/management/src/G4VContinuousProcess.cc +++ b/source/processes/management/src/G4VContinuousProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VContinuousProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VDiscreteProcess.cc b/source/processes/management/src/G4VDiscreteProcess.cc index b78d27f830..642c5ae623 100644 --- a/source/processes/management/src/G4VDiscreteProcess.cc +++ b/source/processes/management/src/G4VDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDiscreteProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VProcess.cc b/source/processes/management/src/G4VProcess.cc index 9df6a419b4..b0cfc5d8a0 100644 --- a/source/processes/management/src/G4VProcess.cc +++ b/source/processes/management/src/G4VProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VProcess.cc,v 1.11 2004/11/10 08:48:06 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VProcess.cc,v 1.13 2005/11/21 21:59:19 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- @@ -90,7 +90,7 @@ void G4VProcess::SubtractNumberOfInteractionLengthLeft( } } -void G4VProcess::StartTracking() +void G4VProcess::StartTracking(G4Track*) { currentInteractionLength = -1.0; theNumberOfInteractionLengthLeft = -1.0; diff --git a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc index 0b8952d6d0..6ecd997c3c 100644 --- a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRestContinuousDiscreteProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestContinuousProcess.cc b/source/processes/management/src/G4VRestContinuousProcess.cc index 533256e999..1063155038 100644 --- a/source/processes/management/src/G4VRestContinuousProcess.cc +++ b/source/processes/management/src/G4VRestContinuousProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRestContinuousProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestDiscreteProcess.cc b/source/processes/management/src/G4VRestDiscreteProcess.cc index e8884ff341..ae26edca6f 100644 --- a/source/processes/management/src/G4VRestDiscreteProcess.cc +++ b/source/processes/management/src/G4VRestDiscreteProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRestDiscreteProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VRestProcess.cc b/source/processes/management/src/G4VRestProcess.cc index 3f7fbfe722..218a9b1e4f 100644 --- a/source/processes/management/src/G4VRestProcess.cc +++ b/source/processes/management/src/G4VRestProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRestProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/optical/History b/source/processes/optical/History index 637e65aa40..45a4c90dcd 100644 --- a/source/processes/optical/History +++ b/source/processes/optical/History @@ -16,6 +16,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +28th July 2005 Peter Gumplinger (op-V07-01-00) + add G4ProcessType to all constructors + 10th December 2004 Gabriele Cosmo (op-V06-02-06) replaced M_PI with CLHEP's pi diff --git a/source/processes/optical/include/G4OpAbsorption.hh b/source/processes/optical/include/G4OpAbsorption.hh index 1be6cf4509..fd1987b88b 100644 --- a/source/processes/optical/include/G4OpAbsorption.hh +++ b/source/processes/optical/include/G4OpAbsorption.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpAbsorption.hh,v 1.7 2001/08/31 16:43:32 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpAbsorption.hh,v 1.8 2005/07/28 22:27:31 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon Absorption Class Definition @@ -33,7 +33,8 @@ // Version: 1.0 // Created: 1996-05-21 // Author: Juliet Armstrong -// Updated: 1999-10-29 add method and class descriptors +// Updated: 2005-07-28 add G4ProcessType to constructor +// 1999-10-29 add method and class descriptors // 1997-04-09 by Peter Gumplinger // > new physics/tracking scheme // 1998-08-25 by Stefano Magni @@ -85,7 +86,8 @@ public: // Without description // Constructors and Destructor //////////////////////////////// - G4OpAbsorption(const G4String& processName = "OpAbsorption"); + G4OpAbsorption(const G4String& processName = "OpAbsorption", + G4ProcessType type = fOptical); // G4OpAbsorption(const G4OpAbsorption &right); diff --git a/source/processes/optical/include/G4OpBoundaryProcess.hh b/source/processes/optical/include/G4OpBoundaryProcess.hh index bdb7e8ff53..eeb7e24075 100644 --- a/source/processes/optical/include/G4OpBoundaryProcess.hh +++ b/source/processes/optical/include/G4OpBoundaryProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpBoundaryProcess.hh,v 1.12 2004/12/02 23:10:36 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpBoundaryProcess.hh,v 1.13 2005/07/28 22:26:59 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -34,7 +34,8 @@ // optical interfaces // Version: 1.1 // Created: 1997-06-18 -// Modified: 1999-10-29 add method and class descriptors +// Modified: 2005-07-28 add G4ProcessType to constructor +// 1999-10-29 add method and class descriptors // 1999-10-10 - Fill NewMomentum/NewPolarization in // DoAbsorption. These members need to be // filled since DoIt calls @@ -105,7 +106,8 @@ public: // Without description // Constructors and Destructor //////////////////////////////// - G4OpBoundaryProcess(const G4String& processName = "OpBoundary"); + G4OpBoundaryProcess(const G4String& processName = "OpBoundary", + G4ProcessType type = fOptical); ~G4OpBoundaryProcess(); diff --git a/source/processes/optical/include/G4OpRayleigh.hh b/source/processes/optical/include/G4OpRayleigh.hh index b64d2a9e30..ed19424794 100644 --- a/source/processes/optical/include/G4OpRayleigh.hh +++ b/source/processes/optical/include/G4OpRayleigh.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpRayleigh.hh,v 1.7 2004/04/27 00:26:34 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpRayleigh.hh,v 1.8 2005/07/28 22:27:16 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -34,7 +34,8 @@ // Version: 1.0 // Created: 1996-05-31 // Author: Juliet Armstrong -// Updated: 1999-10-29 add method and class descriptors +// Updated: 2005-07-28 add G4ProcessType to constructor +// 1999-10-29 add method and class descriptors // 1997-04-09 by Peter Gumplinger // > new physics/tracking scheme // mail: gum@triumf.ca @@ -87,7 +88,8 @@ public: // Without description // Constructors and Destructor //////////////////////////////// - G4OpRayleigh(const G4String& processName = "OpRayleigh"); + G4OpRayleigh(const G4String& processName = "OpRayleigh", + G4ProcessType type = fOptical); // G4OpRayleigh(const G4OpRayleigh &right); diff --git a/source/processes/optical/include/G4OpWLS.hh b/source/processes/optical/include/G4OpWLS.hh index 95551a3d1a..ed8dd34470 100644 --- a/source/processes/optical/include/G4OpWLS.hh +++ b/source/processes/optical/include/G4OpWLS.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpWLS.hh,v 1.1 2003/09/23 22:23:57 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpWLS.hh,v 1.2 2005/07/28 22:26:42 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon WaveLength Shifting (WLS) Class Definition @@ -34,7 +34,7 @@ // Created: 2003-05-13 // Author: John Paul Archambault // (Adaptation of G4Scintillation and G4OpAbsorption) -// Updated: +// Updated: 2005-07-28 add G4ProcessType to constructor // mail: gum@triumf.ca // jparcham@phys.ualberta.ca // @@ -80,7 +80,8 @@ public: // Without description // Constructors and Destructor //////////////////////////////// - G4OpWLS(const G4String& processName = "OpWLS"); + G4OpWLS(const G4String& processName = "OpWLS", + G4ProcessType type = fOptical); ~G4OpWLS(); diff --git a/source/processes/optical/src/G4OpAbsorption.cc b/source/processes/optical/src/G4OpAbsorption.cc index 7ec2c8730b..1f58cab343 100644 --- a/source/processes/optical/src/G4OpAbsorption.cc +++ b/source/processes/optical/src/G4OpAbsorption.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpAbsorption.cc,v 1.5 2004/10/19 02:15:15 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpAbsorption.cc,v 1.6 2005/07/28 22:28:04 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon Absorption Class Implementation @@ -33,7 +33,8 @@ // Version: 1.0 // Created: 1996-05-21 // Author: Juliet Armstrong -// Updated: 2000-09-18 by Peter Gumplinger +// Updated: 2005-07-28 - add G4ProcessType to constructor +// 2000-09-18 by Peter Gumplinger // > comment out warning - "No Absorption length specified" // 1997-04-09 by Peter Gumplinger // > new physics/tracking scheme @@ -65,8 +66,8 @@ // Constructors ///////////////// -G4OpAbsorption::G4OpAbsorption(const G4String& processName) - : G4VDiscreteProcess(processName) +G4OpAbsorption::G4OpAbsorption(const G4String& processName, G4ProcessType type) + : G4VDiscreteProcess(processName, type) { if (verboseLevel>0) { G4cout << GetProcessName() << " is created " << G4endl; diff --git a/source/processes/optical/src/G4OpBoundaryProcess.cc b/source/processes/optical/src/G4OpBoundaryProcess.cc index 84bdbcb109..14282fd2df 100644 --- a/source/processes/optical/src/G4OpBoundaryProcess.cc +++ b/source/processes/optical/src/G4OpBoundaryProcess.cc @@ -50,6 +50,7 @@ // 2003-11-27 - Modified line 168-9 to reflect changes made to // G4OpticalSurface class ( by Fan Lei) // 2004-02-02 - Set theStatus = Undefined at start of DoIt +// 2005-07-28 - add G4ProcessType to constructor // // Author: Peter Gumplinger // adopted from work by Werner Keil - April 2/96 @@ -76,8 +77,9 @@ // Constructors ///////////////// -G4OpBoundaryProcess::G4OpBoundaryProcess(const G4String& processName) - : G4VDiscreteProcess(processName) +G4OpBoundaryProcess::G4OpBoundaryProcess(const G4String& processName, + G4ProcessType type) + : G4VDiscreteProcess(processName, type) { if ( verboseLevel > 0) { G4cout << GetProcessName() << " is created " << G4endl; diff --git a/source/processes/optical/src/G4OpRayleigh.cc b/source/processes/optical/src/G4OpRayleigh.cc index e80763c50a..12fca13578 100644 --- a/source/processes/optical/src/G4OpRayleigh.cc +++ b/source/processes/optical/src/G4OpRayleigh.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpRayleigh.cc,v 1.12 2004/12/02 23:10:57 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpRayleigh.cc,v 1.13 2005/07/28 22:28:37 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -35,11 +35,12 @@ // Version: 1.0 // Created: 1996-05-31 // Author: Juliet Armstrong -// Updated: 2001-10-18 by Peter Gumplinger +// Updated: 2005-07-28 - add G4ProcessType to constructor +// 2001-10-18 by Peter Gumplinger // eliminate unused variable warning on Linux (gcc-2.95.2) -// Updated: 2001-09-18 by mma +// 2001-09-18 by mma // >numOfMaterials=G4Material::GetNumberOfMaterials() in BuildPhy -// Updated: 2001-01-30 by Peter Gumplinger +// 2001-01-30 by Peter Gumplinger // > allow for positiv and negative CosTheta and force the // > new momentum direction to be in the same plane as the // > new and old polarization vectors @@ -70,8 +71,8 @@ // Constructors ///////////////// -G4OpRayleigh::G4OpRayleigh(const G4String& processName) - : G4VDiscreteProcess(processName) +G4OpRayleigh::G4OpRayleigh(const G4String& processName, G4ProcessType type) + : G4VDiscreteProcess(processName, type) { thePhysicsTable = 0; diff --git a/source/processes/optical/src/G4OpWLS.cc b/source/processes/optical/src/G4OpWLS.cc index c2a2032cb9..15e07d09ad 100644 --- a/source/processes/optical/src/G4OpWLS.cc +++ b/source/processes/optical/src/G4OpWLS.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpWLS.cc,v 1.5 2004/12/10 18:53:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpWLS.cc,v 1.6 2005/07/28 22:28:20 gum Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon WaveLength Shifting (WLS) Class Implementation @@ -34,7 +34,7 @@ // Created: 2003-05-13 // Author: John Paul Archambault // (Adaptation of G4Scintillation and G4OpAbsorption) -// Updated: +// Updated: 2005-07-28 - add G4ProcessType to constructor // mail: gum@triumf.ca // jparcham@phys.ualberta.ca // @@ -51,8 +51,8 @@ // Constructors ///////////////// -G4OpWLS::G4OpWLS(const G4String& processName) - : G4VDiscreteProcess(processName) +G4OpWLS::G4OpWLS(const G4String& processName, G4ProcessType type) + : G4VDiscreteProcess(processName, type) { theIntegralTable = 0; diff --git a/source/processes/parameterisation/History b/source/processes/parameterisation/History index e8203bcc26..caf931aeeb 100644 --- a/source/processes/parameterisation/History +++ b/source/processes/parameterisation/History @@ -1,4 +1,4 @@ -$Id: History,v 1.22 2004/12/07 08:22:11 gcosmo Exp $ +$Id: History,v 1.28 2005/11/26 00:47:54 mverderi Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,26 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 25, 2005, M. Verderi param-V07-01-04 +- put back Makoto's change: StartTracking(G4Track*) + +November 25, 2005, M. Verderi param-V07-01-03 +- Make ghost functionnality available with G4Region +- ** Note ** Change back StartTracking(G4Track*) -> StartTracking() in G4FSMP + StartTracking(G4Track*) was introduced in param-V07-01-02 + because (I guess) of procman-V07-01-01 + This is to make param-V07-01-03 compatible with geant4-07-01-ref-05 + +November 21, 2005 M.Asai - param-V07-01-02 +- Fix warning message. + +November 02, 2005 G.Cosmo - param-V07-01-01 +- Corrected setting of envelope volumes and solid in G4FastTrack. +- Migrated old scheme for G4Exception and some cosmetics... + +October 28, 2005 M.Asai - param-V07-01-00 +- Working tag for merging "envelope" to G4Region. + December 07, 2004 G. Cosmo - param-V06-02-01 - Implemented migration to . diff --git a/source/processes/parameterisation/include/G4FastSimulationManager.hh b/source/processes/parameterisation/include/G4FastSimulationManager.hh index 3d7c12683b..47bbf7a25f 100644 --- a/source/processes/parameterisation/include/G4FastSimulationManager.hh +++ b/source/processes/parameterisation/include/G4FastSimulationManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastSimulationManager.hh,v 1.8 2002/11/02 00:10:34 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4FastSimulationManager.hh,v 1.10 2005/11/26 00:35:02 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -44,6 +44,7 @@ #include "globals.hh" #include "G4LogicalVolume.hh" +#include "G4Region.hh" #include "G4VPhysicalVolume.hh" #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" @@ -61,7 +62,7 @@ //--------------------------- // For possible future needs: //--------------------------- -typedef G4LogicalVolume G4Envelope; +typedef G4Region G4Envelope; //------------------------------------------- // @@ -70,8 +71,10 @@ typedef G4LogicalVolume G4Envelope; //------------------------------------------- // Class Description: -// The G4VFastSimulationModel objects are attached to the envelope through a G4FastSimulationManager. -// This object will manage the list of models and will message them at tracking time. +// The G4VFastSimulationModel objects are attached to the envelope +// through a G4FastSimulationManager. +// This object will manage the list of models and will message them +// at tracking time. // @@ -90,14 +93,17 @@ public: // with description G4FastSimulationManager(G4Envelope *anEnvelope, G4bool IsUnique=FALSE); - // This is the only constructor. In this constructor you specify the envelope by giving the - // G4LogicalVolume pointer. The G4FastSimulationManager object will bind itself to this envelope - // and will notify this G4LogicalVolume to become an envelope. If you know that this volume is - // placed only once, you can turn the IsUnique boolean to "true" to allow some optimization. + // This is the only constructor. In this constructor you specify + // the envelope by giving the G4Region (typedef-ed as G4Envelope) + // pointer. The G4FastSimulationManager object will bind itself to + // this envelope and will notify this G4Region to become an envelope. + // If you know that this region is used for only one logical volume, + // you can turn the IsUnique boolean to "true" to allow some optimization. // - // Note that if you choose to use the G4VFastSimulationModel(const G4String&, G4LogicalVolume*, - // G4bool) constructor for you model, the G4FastSimulationManager will be constructed using the - // given G4LogicalVolume* and G4bool values of the model constructor. + // Note that if you choose to use the G4VFastSimulationModel(const G4String&, + // G4Region*, G4bool) constructor for you model, the G4FastSimulationManager + // will be constructed using the given G4Region* and G4bool values of the + // model constructor. // public: // without description @@ -123,21 +129,6 @@ public: // with description G4bool InActivateFastSimulationModel(const G4String&); // Inactivate a model in the Model List. - // Methods to add/remove GhostPlacements to/from the - // GhostPlacements List. - // - G4Transform3D* AddGhostPlacement(G4RotationMatrix*, - const G4ThreeVector&); - // Flag that the envelope is a ghost volume giving its global placement, where the rotation matrix - // and the translatation vector of 3D transformation describe the placement relative to the world - // coordinates. - - G4Transform3D* AddGhostPlacement(G4Transform3D*); - // The same but using a G4Transform3D. - - G4bool RemoveGhostPlacement(const G4Transform3D*); - // Removes a Ghost placement. - public: // without description // Methods for print/control commands void ListTitle() const; @@ -153,6 +144,23 @@ public: // without description + // ------------------------------------------------- + // Methods to add/remove GhostPlacements to/from the + // GhostPlacements List. + // ------------------------------------------------- + // + G4Transform3D* AddGhostPlacement(G4RotationMatrix*, + const G4ThreeVector&); + // Flag that the envelope is a ghost volume giving its global + // placement, where the rotation matrix and the translatation + // vector of 3D transformation describe the placement relative + // to the world coordinates. + + G4Transform3D* AddGhostPlacement(G4Transform3D*); + // The same but using a G4Transform3D. + + G4bool RemoveGhostPlacement(const G4Transform3D*); + // Removes a Ghost placement. // //---------------------------------------------- // Interface methods for the G4GlobalFastSimulationManager diff --git a/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh b/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh index fd955b06ce..e00659abfb 100644 --- a/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh +++ b/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastSimulationManagerProcess.hh,v 1.8 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4FastSimulationManagerProcess.hh,v 1.11 2005/11/26 00:47:54 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -88,7 +88,7 @@ public: // Process interface //-------------------------------------------------------------- - void StartTracking(); + void StartTracking(G4Track*); //--------------------------------------------------- // GetPhysicalInteractionLength() and DoIt() methods: diff --git a/source/processes/parameterisation/include/G4FastSimulationMessenger.hh b/source/processes/parameterisation/include/G4FastSimulationMessenger.hh index 320650f751..24bc5ff2f9 100644 --- a/source/processes/parameterisation/include/G4FastSimulationMessenger.hh +++ b/source/processes/parameterisation/include/G4FastSimulationMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationMessenger.hh,v 1.4 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT 4 class header file diff --git a/source/processes/parameterisation/include/G4FastStep.hh b/source/processes/parameterisation/include/G4FastStep.hh index 1a90df8d55..9aa099ad78 100644 --- a/source/processes/parameterisation/include/G4FastStep.hh +++ b/source/processes/parameterisation/include/G4FastStep.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastStep.hh,v 1.7 2004/11/25 23:34:13 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastStep.icc b/source/processes/parameterisation/include/G4FastStep.icc index 8e75e8e7e4..7729555f62 100644 --- a/source/processes/parameterisation/include/G4FastStep.icc +++ b/source/processes/parameterisation/include/G4FastStep.icc @@ -22,7 +22,7 @@ // // // $Id: G4FastStep.icc,v 1.4 2004/11/25 23:34:13 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // $id: G4ParticleChange.icc,v 1.6 1998/04/14 02:25:54 kurasige Exp $ diff --git a/source/processes/parameterisation/include/G4FastTrack.hh b/source/processes/parameterisation/include/G4FastTrack.hh index 808e7234a9..26081572ff 100644 --- a/source/processes/parameterisation/include/G4FastTrack.hh +++ b/source/processes/parameterisation/include/G4FastTrack.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastTrack.hh,v 1.5 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4FastTrack.hh,v 1.6 2005/08/30 21:03:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // $Id: //--------------------------------------------------------------- @@ -44,6 +44,7 @@ #include "G4VSolid.hh" #include "G4LogicalVolume.hh" +#include "G4Region.hh" #include "G4AffineTransform.hh" #include "G4Track.hh" #include "G4Navigator.hh" @@ -51,7 +52,7 @@ //--------------------------- // For possible future needs: //--------------------------- -typedef G4LogicalVolume G4Envelope; +typedef G4Region G4Envelope; //------------------------------------------- @@ -61,11 +62,14 @@ typedef G4LogicalVolume G4Envelope; //------------------------------------------- // Class Description: -// The G4FastTrack provides you access to the current G4Track, gives simple access to envelope -// related features (G4LogicalVolume, G4VSolid, G4AffineTransform references between the global -// and the envelope local coordinates systems) and simple access to the position, momentum -// expressed in the envelope coordinate system. Using those quantities and the G4VSolid methods, -// you can for example easily check how far you are from the envelope boundary. +// The G4FastTrack provides you access to the current G4Track, +// gives simple access to envelope related features (G4Region, +// G4LogicalVolume, G4VSolid, G4AffineTransform references between +// the global and the envelope local coordinates systems) and +// simple access to the position, momentum expressed in the +// envelope coordinate system. Using those quantities and the +// G4VSolid methods, you can for example easily check how far you +// are from the envelope boundary. // @@ -107,6 +111,9 @@ public: // with Description // Returns the current G4Track. G4Envelope* GetEnvelope() const; + // Returns the Envelope G4Region pointer. + + G4LogicalVolume* GetEnvelopeLogicalVolume() const; // Returns the Envelope G4LogicalVolume pointer. G4VPhysicalVolume* GetEnvelopePhysicalVolume() const; @@ -160,6 +167,7 @@ private: G4bool fAffineTransformationDefined; G4Envelope* fEnvelope; G4bool fIsUnique; + G4LogicalVolume* fEnvelopeLogicalVolume; G4VPhysicalVolume* fEnvelopePhysicalVolume; G4VSolid* fEnvelopeSolid; G4ThreeVector fLocalTrackPosition, fLocalTrackMomentum, @@ -178,6 +186,11 @@ inline G4Envelope* G4FastTrack::GetEnvelope() const return fEnvelope; } +inline G4LogicalVolume* G4FastTrack::GetEnvelopeLogicalVolume() const +{ + return fEnvelopeLogicalVolume; +} + inline G4VPhysicalVolume* G4FastTrack::GetEnvelopePhysicalVolume() const { return fEnvelopePhysicalVolume; diff --git a/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh b/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh index 7ca03191f3..c60d1a66e8 100644 --- a/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh +++ b/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh @@ -22,7 +22,7 @@ // // // $Id: G4FlavoredParallelWorld.hh,v 1.5 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh b/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh index e6bb678e12..5767c67b9a 100644 --- a/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh +++ b/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4GlobalFastSimulationManager.hh,v 1.9 2002/11/02 00:10:34 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4VFastSimulationModel.hh b/source/processes/parameterisation/include/G4VFastSimulationModel.hh index 5f98539c13..e8beeebdf4 100644 --- a/source/processes/parameterisation/include/G4VFastSimulationModel.hh +++ b/source/processes/parameterisation/include/G4VFastSimulationModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VFastSimulationModel.hh,v 1.5 2003/05/21 16:32:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VFastSimulationModel.hh,v 1.6 2005/08/30 21:03:14 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -47,7 +47,7 @@ //--------------------------- // For possible future needs: //--------------------------- -typedef G4LogicalVolume G4Envelope; +typedef G4Region G4Envelope; //------------------------------------------- // diff --git a/source/processes/parameterisation/src/G4FastSimulationManager.cc b/source/processes/parameterisation/src/G4FastSimulationManager.cc index 2e3eefd551..8a32fa305d 100644 --- a/source/processes/parameterisation/src/G4FastSimulationManager.cc +++ b/source/processes/parameterisation/src/G4FastSimulationManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastSimulationManager.cc,v 1.8 2002/11/15 11:41:56 stesting Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4FastSimulationManager.cc,v 1.10 2005/11/26 00:35:02 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------- // @@ -50,9 +50,9 @@ G4FastSimulationManager(G4Envelope *anEnvelope, fFastTrack(anEnvelope,IsUnique),fTriggedFastSimulationModel(0), fLastCrossedParticle(0) { - // Communicates to the Logical Volume that it becomes a + // Communicates to the region that it becomes a // envelope and with this fast simulation manager. - anEnvelope->BecomeEnvelopeForFastSimulation(this); + anEnvelope->SetFastSimulationManager(this); // Add itself to the GlobalFastSimulationManager G4GlobalFastSimulationManager::GetGlobalFastSimulationManager()-> @@ -69,7 +69,7 @@ G4FastSimulationManager::~G4FastSimulationManager() // resets the Logical Volume IsEnvelope flag to avoid clash. // if(fFastTrack.GetEnvelope()->GetFastSimulationManager()==this) - fFastTrack.GetEnvelope()->ClearEnvelopeForFastSimulation(); + fFastTrack.GetEnvelope()->ClearFastSimulationManager(); // Remove itself from the GlobalFastSimulationManager G4GlobalFastSimulationManager::GetGlobalFastSimulationManager()-> RemoveFastSimulationManager(this); @@ -151,6 +151,7 @@ G4FastSimulationManager::GetFastSimulationModel(const G4String& modelName, return model; } + //---------------------------------------- // Methods to add/remove GhostPlacements //---------------------------------------- @@ -185,6 +186,44 @@ G4FastSimulationManager::RemoveGhostPlacement(const G4Transform3D *trans3d) return found; } +G4bool +G4FastSimulationManager:: +InsertGhostHereIfNecessary(G4VPhysicalVolume* theClone, + const G4ParticleDefinition& theParticle) +{ + G4PVPlacement *GhostPhysical; + // Not to do if there aren't glost placements + if(GhostPlacements.size()==0) return false; + + // If there are, verifies if at least one model is applicable + // for theParticle. + for (size_t iModel=0; iModelIsApplicable(theParticle)) { + // Ok, we find one. Place the ghost(s). + for (size_t ighost=0; ighost::iterator ghostIter = fFastTrack.GetEnvelope()->GetRootLogicalVolumeIterator(); + G4LogicalVolume* rootGhostLV = (*ghostIter); + GhostPhysical=new + G4PVPlacement(*(GhostPlacements[ighost]), + rootGhostLV->GetName(), + rootGhostLV, + theClone, + false,0); + // -- I'd like to check if other root LV exist, since it can not be handled today, + // -- but how stop the iterator loop ??? + // ghostIter++; + // rootGhostLV = (*ghostIter); + // if (rootGhostLV) G4Exception("G4FastSimulationManager does not know today how to handle ghost regions with several root logical volumes."); + } + // And answer true + return true; + } + //otherwise answer false + return false; +} + + // //------------------------------------- // Interface trigger method for the @@ -323,34 +362,6 @@ G4VParticleChange* G4FastSimulationManager::InvokeAtRestDoIt() return &fFastStep; } -G4bool -G4FastSimulationManager:: -InsertGhostHereIfNecessary(G4VPhysicalVolume* theClone, - const G4ParticleDefinition& theParticle) -{ - G4PVPlacement *GhostPhysical; - // Not to do if there aren't glost placements - if(GhostPlacements.size()==0) return false; - - // If there are, verifies if at least one model is applicable - // for theParticle. - for (size_t iModel=0; iModelIsApplicable(theParticle)) { - // Ok, we find one. Place the ghost(s). - for (size_t ighost=0; ighostGetName(), - fFastTrack.GetEnvelope(), - theClone, - false,0); - // And answer true - return true; - } - //otherwise answer false - return false; -} - void G4FastSimulationManager::ListTitle() const { diff --git a/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc b/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc index cd848af704..ba5f81b79a 100644 --- a/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc +++ b/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastSimulationManagerProcess.cc,v 1.9 2004/11/25 23:34:13 mverderi Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4FastSimulationManagerProcess.cc,v 1.12 2005/11/26 00:47:54 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -525,7 +525,7 @@ G4VParticleChange* G4FastSimulationManagerProcess::AtRestDoIt( return fFastSimulationManager->InvokeAtRestDoIt(); } -void G4FastSimulationManagerProcess::StartTracking() +void G4FastSimulationManagerProcess::StartTracking(G4Track*) { fStartTracking = true; } diff --git a/source/processes/parameterisation/src/G4FastSimulationMessenger.cc b/source/processes/parameterisation/src/G4FastSimulationMessenger.cc index 33c947cc4d..463a3df8e3 100644 --- a/source/processes/parameterisation/src/G4FastSimulationMessenger.cc +++ b/source/processes/parameterisation/src/G4FastSimulationMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationMessenger.cc,v 1.5 2002/12/04 21:29:50 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4FastSimulationMessenger.hh" diff --git a/source/processes/parameterisation/src/G4FastStep.cc b/source/processes/parameterisation/src/G4FastStep.cc index 22e358fd11..aea495d91e 100644 --- a/source/processes/parameterisation/src/G4FastStep.cc +++ b/source/processes/parameterisation/src/G4FastStep.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastStep.cc,v 1.14 2004/12/07 08:22:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4FastStep.cc,v 1.15 2005/11/02 09:22:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------- // @@ -92,7 +92,7 @@ void G4FastStep::KillPrimaryTrack() void G4FastStep:: ProposePrimaryTrackFinalPosition(const G4ThreeVector &position, - G4bool localCoordinates) + G4bool localCoordinates) { // Compute the position coordinate in global // reference system if needed ... @@ -107,7 +107,7 @@ ProposePrimaryTrackFinalPosition(const G4ThreeVector &position, void G4FastStep:: SetPrimaryTrackFinalPosition(const G4ThreeVector &position, - G4bool localCoordinates) + G4bool localCoordinates) { ProposePrimaryTrackFinalPosition(position, localCoordinates); } @@ -118,7 +118,7 @@ SetPrimaryTrackFinalPosition(const G4ThreeVector &position, void G4FastStep:: ProposePrimaryTrackFinalMomentumDirection(const G4ThreeVector &momentum, - G4bool localCoordinates) + G4bool localCoordinates) { // Compute the momentum in global reference // system if needed ... @@ -133,7 +133,7 @@ ProposePrimaryTrackFinalMomentumDirection(const G4ThreeVector &momentum, void G4FastStep:: SetPrimaryTrackFinalMomentum(const G4ThreeVector &momentum, - G4bool localCoordinates) + G4bool localCoordinates) { ProposePrimaryTrackFinalMomentumDirection(momentum, localCoordinates); } @@ -144,8 +144,8 @@ SetPrimaryTrackFinalMomentum(const G4ThreeVector &momentum, void G4FastStep:: ProposePrimaryTrackFinalKineticEnergyAndDirection(G4double kineticEnergy, - const G4ThreeVector &direction, - G4bool localCoordinates) + const G4ThreeVector &direction, + G4bool localCoordinates) { // Compute global direction if needed... G4ThreeVector globalDirection = direction; @@ -160,8 +160,8 @@ ProposePrimaryTrackFinalKineticEnergyAndDirection(G4double kineticEnergy, void G4FastStep:: SetPrimaryTrackFinalKineticEnergyAndDirection(G4double kineticEnergy, - const G4ThreeVector &direction, - G4bool localCoordinates) + const G4ThreeVector &direction, + G4bool localCoordinates) { ProposePrimaryTrackFinalKineticEnergyAndDirection(kineticEnergy, direction, localCoordinates); } @@ -172,7 +172,7 @@ SetPrimaryTrackFinalKineticEnergyAndDirection(G4double kineticEnergy, void G4FastStep:: ProposePrimaryTrackFinalPolarization(const G4ThreeVector &polarization, - G4bool localCoordinates) + G4bool localCoordinates) { // Compute polarization in global system if needed: G4ThreeVector globalPolarization(polarization); @@ -186,7 +186,7 @@ ProposePrimaryTrackFinalPolarization(const G4ThreeVector &polarization, void G4FastStep:: SetPrimaryTrackFinalPolarization(const G4ThreeVector &polarization, - G4bool localCoordinates) + G4bool localCoordinates) { ProposePrimaryTrackFinalPolarization(polarization, localCoordinates); } @@ -196,10 +196,10 @@ SetPrimaryTrackFinalPolarization(const G4ThreeVector &polarization, //-------------------- G4Track* G4FastStep:: CreateSecondaryTrack(const G4DynamicParticle& dynamics, - G4ThreeVector polarization, - G4ThreeVector position, - G4double time, - G4bool localCoordinates ) + G4ThreeVector polarization, + G4ThreeVector position, + G4double time, + G4bool localCoordinates ) { G4DynamicParticle dummyDynamics(dynamics); @@ -207,8 +207,8 @@ CreateSecondaryTrack(const G4DynamicParticle& dynamics, // Add the polarization to the dummyDynamics: // ------------------------------------------ dummyDynamics.SetPolarization(polarization.x(), - polarization.y(), - polarization.z()); + polarization.y(), + polarization.z()); return CreateSecondaryTrack(dummyDynamics, position, time, localCoordinates); } @@ -218,9 +218,9 @@ CreateSecondaryTrack(const G4DynamicParticle& dynamics, //-------------------- G4Track* G4FastStep:: CreateSecondaryTrack(const G4DynamicParticle& dynamics, - G4ThreeVector position, - G4double time, - G4bool localCoordinates ) + G4ThreeVector position, + G4double time, + G4bool localCoordinates ) { // ---------------------------------------- // Quantities in global coordinates system. @@ -239,32 +239,32 @@ CreateSecondaryTrack(const G4DynamicParticle& dynamics, { // -- Momentum Direction: globalDynamics->SetMomentumDirection(fFastTrack-> - GetInverseAffineTransformation()-> - TransformAxis(globalDynamics-> - GetMomentumDirection())); + GetInverseAffineTransformation()-> + TransformAxis(globalDynamics-> + GetMomentumDirection())); // -- Polarization: G4ThreeVector globalPolarization; globalPolarization = fFastTrack->GetInverseAffineTransformation()-> - TransformAxis(globalDynamics->GetPolarization()); + TransformAxis(globalDynamics->GetPolarization()); globalDynamics->SetPolarization( - globalPolarization.x(), - globalPolarization.y(), - globalPolarization.z() - ); + globalPolarization.x(), + globalPolarization.y(), + globalPolarization.z() + ); // -- Position: globalPosition = fFastTrack->GetInverseAffineTransformation()-> - TransformPoint(globalPosition); + TransformPoint(globalPosition); } //------------------------------------- // Create the G4Track of the secondary: //------------------------------------- G4Track* secondary = new G4Track( - globalDynamics, - time, - globalPosition - ); + globalDynamics, + time, + globalPosition + ); //------------------------------- // and feed the changes: @@ -281,7 +281,8 @@ CreateSecondaryTrack(const G4DynamicParticle& dynamics, // but we must define it to avoid warnings. void G4FastStep::Initialize(const G4Track&) { - G4Exception("G4FastStep::Initialize(const G4Track&) should never be called,\nyou must use instead the G4FastStep::Initialize(const G4FastTrack&)\nmethod!"); + G4Exception("G4FastStep::Initialize()", "InvalidCondition", FatalException, + "G4FastStep can be initialised only through G4FastTrack!"); } G4FastStep::G4FastStep() @@ -373,7 +374,7 @@ G4Step* G4FastStep::UpdateStepForPostStep(G4Step* pStep) pPostStepPoint->SetPosition( thePositionChange ); pPostStepPoint->SetGlobalTime( theTimeChange ); pPostStepPoint->AddLocalTime( theTimeChange - - aTrack->GetGlobalTime()); + - aTrack->GetGlobalTime()); pPostStepPoint->SetProperTime( theProperTimeChange ); // update weight @@ -406,7 +407,7 @@ G4Step* G4FastStep::UpdateStepForAtRest(G4Step* pStep) pPostStepPoint->SetPosition( thePositionChange ); pPostStepPoint->SetGlobalTime( theTimeChange ); pPostStepPoint->AddLocalTime( theTimeChange - - aTrack->GetGlobalTime()); + - aTrack->GetGlobalTime()); pPostStepPoint->SetProperTime( theProperTimeChange ); // update weight @@ -493,49 +494,53 @@ G4bool G4FastStep::CheckIt(const G4Track& aTrack) // Energy should not be larger than the initial value accuracy = ( theEnergyChange - aTrack.GetKineticEnergy())/MeV; if (accuracy > GetAccuracyForWarning()) { - G4cout << " G4FastStep::CheckIt : "; - G4cout << "the energy becomes larger than the initial value !!" << G4endl; - G4cout << " Difference: " << accuracy << "[MeV] " < GetAccuracyForException()) exitWithError = true; + if (accuracy > GetAccuracyForException()) {exitWithError = true;} } G4bool itsOKforMomentum = true; if ( theEnergyChange >0.) { accuracy = std::abs(theMomentumChange.mag2()-1.0); if (accuracy > GetAccuracyForWarning()) { - G4cout << " G4FastStep::CheckIt : "; - G4cout << "the Momentum Change is not unit vector !!" - << " Difference: " << accuracy << G4endl; + G4cout << "ERROR - G4FastStep::CheckIt()" << G4endl + << " The Momentum Change is not unit vector !!" << G4endl + << " Difference: " << accuracy << G4endl; itsOK = itsOKforMomentum = false; - if (accuracy > GetAccuracyForException()) exitWithError = true; + if (accuracy > GetAccuracyForException()) {exitWithError = true;} } } accuracy = (aTrack.GetGlobalTime()- theTimeChange)/ns; if (accuracy > GetAccuracyForWarning()) { - G4cout << " G4FastStep::CheckIt : "; - G4cout << "the global time goes back !!" - << " Difference: " << accuracy << "[ns] " <GetSolid()) + fIsUnique(IsUnique), fEnvelopeLogicalVolume(0), fEnvelopePhysicalVolume(0), + fEnvelopeSolid(0) {} // ----------- @@ -63,7 +64,7 @@ G4FastTrack::~G4FastTrack() // method to setup the current G4FastTrack object //------------------------------------------------------------ void G4FastTrack::SetCurrentTrack(const G4Track& track, - const G4Navigator* theNavigator) + const G4Navigator* theNavigator) { // -- Register track pointer (used everywhere): @@ -130,12 +131,17 @@ G4FastTrack::FRecordsAffineTransformation(const G4Navigator* theNavigator) // Run accross the hierarchy to find the physical volume // associated with the envelope //----------------------------------------------------- - int depth = history->GetHistory()->GetDepth(); - int idepth, Done = 0; - for (idepth = 0; idepth <= depth; idepth++) { - if (history->GetHistory()->GetVolume(idepth)->GetLogicalVolume() == - fEnvelope) { - fEnvelopePhysicalVolume=history->GetHistory()->GetVolume(idepth); + G4int depth = history->GetHistory()->GetDepth(); + G4int idepth, Done = 0; + for (idepth = 0; idepth <= depth; idepth++) + { + G4VPhysicalVolume* currPV = history->GetHistory()->GetVolume(idepth); + G4LogicalVolume* currLV = currPV->GetLogicalVolume(); + if ( (currLV->GetRegion() == fEnvelope) && (currLV->IsRootRegion()) ) + { + fEnvelopePhysicalVolume = currPV; + fEnvelopeLogicalVolume = currLV; + fEnvelopeSolid = currLV->GetSolid(); Done = 1; break; } @@ -145,8 +151,13 @@ G4FastTrack::FRecordsAffineTransformation(const G4Navigator* theNavigator) //--------------------------------------------- if ( !Done ) { - G4cout << "\n\nERROR !!! can't find Transform for " << - fEnvelopePhysicalVolume->GetName() << "\n\n" << G4endl; + G4cout << "WARNING - G4FastTrack::FRecordsAffineTransformation()" + << G4endl + << " Can't find transformation for " + << fEnvelopePhysicalVolume->GetName() << G4endl; + G4Exception("G4FastTrack::FRecordsAffineTransformation()", + "InvalidSetup", JustWarning, + "Transformation for envelope volume not found!"); } else { diff --git a/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc b/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc index ff0ab11777..9d8d329ec1 100644 --- a/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc +++ b/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GlobalFastSimulationManager.cc,v 1.12 2002/12/04 21:29:50 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4GlobalFastSimulationManager.cc,v 1.15 2005/11/26 00:35:02 mverderi Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -103,7 +103,7 @@ RemoveFastSimulationManager(G4FastSimulationManager* fsmanager) void G4GlobalFastSimulationManager::CloseFastSimulation() { if(fClosed) return; - + G4ParticleTable* theParticleTable; // Reset the NeededFlavoredWorlds List @@ -113,26 +113,29 @@ void G4GlobalFastSimulationManager::CloseFastSimulation() theParticleTable=G4ParticleTable::GetParticleTable(); // Creates the first world volume clone. - G4VPhysicalVolume* aClone=GiveMeAWorldVolumeClone(); + G4VPhysicalVolume* aClone = GiveMeAWorldVolumeClone(); - G4cout << "Closing FastSimulation\n"; - for (G4int iParticle=0; iParticleentries(); iParticle++) { + G4cout << "Closing Fast-Simulation ..." << G4endl; + + for (G4int iParticle=0; + iParticleentries(); iParticle++) { G4bool Needed = false; for (size_t ifsm=0; ifsm - InsertGhostHereIfNecessary(aClone, - *(theParticleTable-> - GetParticle(iParticle))); + InsertGhostHereIfNecessary(aClone, + *(theParticleTable-> + GetParticle(iParticle))); // if some FSM inserted a ghost, keep this clone. - if(Needed) { - NeededFlavoredWorlds.push_back(new - G4FlavoredParallelWorld(theParticleTable-> - GetParticle(iParticle), - aClone)); - // and prepare a new one. - aClone=GiveMeAWorldVolumeClone(); - } + if(Needed) + { + G4Region* aWorldGhostRegion = new G4Region("Ghost world region for " + theParticleTable->GetParticle(iParticle)->GetParticleName()); + aWorldGhostRegion->AddRootLogicalVolume(aClone->GetLogicalVolume()); + NeededFlavoredWorlds.push_back(new G4FlavoredParallelWorld(theParticleTable->GetParticle(iParticle), aClone)); + // and prepare a new one. + aClone=GiveMeAWorldVolumeClone(); + } } + fClosed=true; } @@ -147,11 +150,13 @@ GetFlavoredWorldForThis(G4ParticleDefinition* particle) } void -G4GlobalFastSimulationManager::ActivateFastSimulationModel(const G4String& aName) +G4GlobalFastSimulationManager:: +ActivateFastSimulationModel(const G4String& aName) { G4bool result = false; for (size_t ifsm=0; ifsmActivateFastSimulationModel(aName); + result = result || ManagedManagers[ifsm]-> + ActivateFastSimulationModel(aName); if(result) G4cout << "Model " << aName << " activated."; else @@ -160,11 +165,13 @@ G4GlobalFastSimulationManager::ActivateFastSimulationModel(const G4String& aName } void -G4GlobalFastSimulationManager::InActivateFastSimulationModel(const G4String& aName) +G4GlobalFastSimulationManager:: +InActivateFastSimulationModel(const G4String& aName) { G4bool result = false; for (size_t ifsm=0; ifsmInActivateFastSimulationModel(aName); + result = result || ManagedManagers[ifsm]-> + InActivateFastSimulationModel(aName); if(result) G4cout << "Model " << aName << " inactivated."; else @@ -174,7 +181,7 @@ G4GlobalFastSimulationManager::InActivateFastSimulationModel(const G4String& aNa void G4GlobalFastSimulationManager::ListEnvelopes(const G4String& aName, - listType theType) + listType theType) { if(theType == ISAPPLICABLE) { for (size_t ifsm=0; ifsmListTitle(); - G4cout << G4endl; + if(!(titled++)) + G4cout << "Current Envelopes for Fast Simulation:\n"; + G4cout << " "; + ManagedManagers[ifsm]->ListTitle(); + G4cout << G4endl; } else ManagedManagers[ifsm]->ListModels(); } @@ -198,9 +205,9 @@ G4GlobalFastSimulationManager::ListEnvelopes(const G4String& aName, else { for (size_t ifsm=0; ifsm - GetEnvelope()->GetName()){ - ManagedManagers[ifsm]->ListModels(); - break; + GetEnvelope()->GetName()){ + ManagedManagers[ifsm]->ListModels(); + break; } } } @@ -230,14 +237,14 @@ G4GlobalFastSimulationManager::GiveMeAWorldVolumeClone() G4LogicalVolume *parallelWorldLog = new G4LogicalVolume(parallelWorldSolid, - parallelWorldMaterial, - "ParallelWorldLogical", - 0, 0, 0); + parallelWorldMaterial, + "ParallelWorldLogical", + 0, 0, 0); theParallelWorldPhysical= new G4PVPlacement(0,G4ThreeVector(), - "ParallelWorldPhysical", - parallelWorldLog, - 0,false,0); + "ParallelWorldPhysical", + parallelWorldLog, + 0,false,0); return theParallelWorldPhysical; } @@ -247,22 +254,35 @@ G4GlobalFastSimulationManager::Notify(G4ApplicationState requestedState) { G4StateManager * stateManager = G4StateManager::GetStateManager(); if((stateManager->GetPreviousState()==G4State_Idle) && - (requestedState==G4State_GeomClosed) && - (!fClosed)) - G4Exception("G4GlobalFastSimulationManager fatal error : \n1) you are using ghost volumes;\n2) In this case the G4GlobalFastSimulationManager MUST be closed BEFORE\n closing the geometry;\n3) To do this put in your code the call \n G4GlobalFastSimulationManager::GetGlobalFastSimulationManager()->\n CloseFastSimulation();\n just before closing the geometry."); + (requestedState==G4State_GeomClosed) && (!fClosed) ) + { + G4cerr + << "ERROR - G4GlobalFastSimulationManager::Notify()" << G4endl + << " 1) you are using ghost volumes;" << G4endl + << " 2) In this case the G4GlobalFastSimulationManager" << G4endl + << " MUST be closed BEFORE closing the geometry;" << G4endl + << " 3) To do this put in your code the call to" << G4endl + << " GetGlobalFastSimulationManager()->CloseFastSimulation();" + << G4endl + << " just before closing the geometry." << G4endl; + G4Exception("G4GlobalFastSimulationManager::Notify()", "InvalidState", + FatalException, "Fast simulation must be closed."); + } return true; } G4VFastSimulationModel* -G4GlobalFastSimulationManager::GetFastSimulationModel(const G4String& modelName, - const G4VFastSimulationModel* previousFound) const +G4GlobalFastSimulationManager:: +GetFastSimulationModel(const G4String& modelName, + const G4VFastSimulationModel* previousFound) const { G4VFastSimulationModel* model = 0; // -- flag used to navigate accross the various managers; bool foundPrevious(false); for (size_t ifsm=0; ifsmGetFastSimulationModel(modelName, previousFound, foundPrevious); + model = ManagedManagers[ifsm]-> + GetFastSimulationModel(modelName, previousFound, foundPrevious); if (model) break; } return model; diff --git a/source/processes/parameterisation/src/G4VFastSimulationModel.cc b/source/processes/parameterisation/src/G4VFastSimulationModel.cc index 734fb69310..d0f7bdf127 100644 --- a/source/processes/parameterisation/src/G4VFastSimulationModel.cc +++ b/source/processes/parameterisation/src/G4VFastSimulationModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VFastSimulationModel.cc,v 1.5 2001/07/11 10:08:25 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------- // diff --git a/source/processes/transportation/History b/source/processes/transportation/History index 57f3bcf0af..81f95ca705 100644 --- a/source/processes/transportation/History +++ b/source/processes/transportation/History @@ -1,4 +1,4 @@ -$Id: History,v 1.100 2005/05/10 15:24:46 japost Exp $ +$Id: History,v 1.101 2005/11/21 21:41:29 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,11 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov. 21st, 2005, M.Asai transport-V07-01-00 +----------------------- +- Migration to . +- Fix a warning message in G4ParallelTransport. + May 10th, 2005, J.Apostolakis transport-V07-00-01 ----------------------------- - Added process type to G4Transportation diff --git a/source/processes/transportation/include/G4MImportanceConfigurator.hh b/source/processes/transportation/include/G4MImportanceConfigurator.hh index b1332f8218..03f7628975 100644 --- a/source/processes/transportation/include/G4MImportanceConfigurator.hh +++ b/source/processes/transportation/include/G4MImportanceConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4MImportanceConfigurator.hh,v 1.5 2003/11/26 14:51:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MImportanceConfigurator diff --git a/source/processes/transportation/include/G4MScoreConfigurator.hh b/source/processes/transportation/include/G4MScoreConfigurator.hh index 18d4642ff5..508777d312 100644 --- a/source/processes/transportation/include/G4MScoreConfigurator.hh +++ b/source/processes/transportation/include/G4MScoreConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4MScoreConfigurator.hh,v 1.5 2003/11/26 14:51:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MScoreConfigurator diff --git a/source/processes/transportation/include/G4MScoreProcess.hh b/source/processes/transportation/include/G4MScoreProcess.hh index dda92e3124..3d4142bb29 100644 --- a/source/processes/transportation/include/G4MScoreProcess.hh +++ b/source/processes/transportation/include/G4MScoreProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4MScoreProcess.hh,v 1.8 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MScoreProcess diff --git a/source/processes/transportation/include/G4MWeightWindowConfigurator.hh b/source/processes/transportation/include/G4MWeightWindowConfigurator.hh index f55971c28c..65df9ff8fd 100644 --- a/source/processes/transportation/include/G4MWeightWindowConfigurator.hh +++ b/source/processes/transportation/include/G4MWeightWindowConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4MWeightWindowConfigurator.hh,v 1.5 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MWeightWindowConfigurator diff --git a/source/processes/transportation/include/G4MassGCellFinder.hh b/source/processes/transportation/include/G4MassGCellFinder.hh index 4263f703a6..1fc1cb8844 100644 --- a/source/processes/transportation/include/G4MassGCellFinder.hh +++ b/source/processes/transportation/include/G4MassGCellFinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4MassGCellFinder.hh,v 1.2 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelGCellFinder diff --git a/source/processes/transportation/include/G4MassGeometrySampler.hh b/source/processes/transportation/include/G4MassGeometrySampler.hh index 21c8b46365..551ca8b7fc 100644 --- a/source/processes/transportation/include/G4MassGeometrySampler.hh +++ b/source/processes/transportation/include/G4MassGeometrySampler.hh @@ -22,7 +22,7 @@ // // // $Id: G4MassGeometrySampler.hh,v 1.6 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MassGeometrySampler diff --git a/source/processes/transportation/include/G4MassImportanceProcess.hh b/source/processes/transportation/include/G4MassImportanceProcess.hh index 729e9f3b67..d5ce57d0c6 100644 --- a/source/processes/transportation/include/G4MassImportanceProcess.hh +++ b/source/processes/transportation/include/G4MassImportanceProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4MassImportanceProcess.hh,v 1.9 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MassImportanceProcess diff --git a/source/processes/transportation/include/G4MassWeightWindowProcess.hh b/source/processes/transportation/include/G4MassWeightWindowProcess.hh index f0bae4ed82..6dd436e88f 100644 --- a/source/processes/transportation/include/G4MassWeightWindowProcess.hh +++ b/source/processes/transportation/include/G4MassWeightWindowProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4MassWeightWindowProcess.hh,v 1.4 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MassWeioghtWindowProcess diff --git a/source/processes/transportation/include/G4PImportanceConfigurator.hh b/source/processes/transportation/include/G4PImportanceConfigurator.hh index 1c21a77e4c..0df7734302 100644 --- a/source/processes/transportation/include/G4PImportanceConfigurator.hh +++ b/source/processes/transportation/include/G4PImportanceConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4PImportanceConfigurator.hh,v 1.5 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PImportanceConfigurator diff --git a/source/processes/transportation/include/G4PScoreConfigurator.hh b/source/processes/transportation/include/G4PScoreConfigurator.hh index 9899da2d5f..3ecc84046c 100644 --- a/source/processes/transportation/include/G4PScoreConfigurator.hh +++ b/source/processes/transportation/include/G4PScoreConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4PScoreConfigurator.hh,v 1.5 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PScoreConfigurator diff --git a/source/processes/transportation/include/G4PScoreProcess.hh b/source/processes/transportation/include/G4PScoreProcess.hh index 708953ed43..5769af18ec 100644 --- a/source/processes/transportation/include/G4PScoreProcess.hh +++ b/source/processes/transportation/include/G4PScoreProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4PScoreProcess.hh,v 1.8 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PIScoreProcess diff --git a/source/processes/transportation/include/G4PWeightWindowConfigurator.hh b/source/processes/transportation/include/G4PWeightWindowConfigurator.hh index 8718235fb6..17a1b4a54b 100644 --- a/source/processes/transportation/include/G4PWeightWindowConfigurator.hh +++ b/source/processes/transportation/include/G4PWeightWindowConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4PWeightWindowConfigurator.hh,v 1.4 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PWeightWindowConfigurator diff --git a/source/processes/transportation/include/G4ParallelGCellFinder.hh b/source/processes/transportation/include/G4ParallelGCellFinder.hh index 8ad5ae59c4..ecc1a76995 100644 --- a/source/processes/transportation/include/G4ParallelGCellFinder.hh +++ b/source/processes/transportation/include/G4ParallelGCellFinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelGCellFinder.hh,v 1.2 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelGCellFinder diff --git a/source/processes/transportation/include/G4ParallelGeometrySampler.hh b/source/processes/transportation/include/G4ParallelGeometrySampler.hh index c98c5997a9..00985be7c6 100644 --- a/source/processes/transportation/include/G4ParallelGeometrySampler.hh +++ b/source/processes/transportation/include/G4ParallelGeometrySampler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelGeometrySampler.hh,v 1.7 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelGeometrySampler diff --git a/source/processes/transportation/include/G4ParallelImportanceProcess.hh b/source/processes/transportation/include/G4ParallelImportanceProcess.hh index db5e03a499..9f1db45812 100644 --- a/source/processes/transportation/include/G4ParallelImportanceProcess.hh +++ b/source/processes/transportation/include/G4ParallelImportanceProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelImportanceProcess.hh,v 1.11 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelImportanceProcess diff --git a/source/processes/transportation/include/G4ParallelTransport.hh b/source/processes/transportation/include/G4ParallelTransport.hh index bbc8ccdb15..281178ad38 100644 --- a/source/processes/transportation/include/G4ParallelTransport.hh +++ b/source/processes/transportation/include/G4ParallelTransport.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelTransport.hh,v 1.8 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParallelTransport.hh,v 1.9 2005/11/21 21:41:29 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelTransport @@ -41,7 +41,6 @@ #define G4ParallelTransport_hh G4ParallelTransport_hh #include "G4Types.hh" -#include #include "G4VProcess.hh" @@ -75,7 +74,7 @@ public: // with description // move a track in a "parallel" geometry // and update a G4PArallelStepper - virtual void StartTracking(); + virtual void StartTracking(G4Track*); virtual void EndTracking(); diff --git a/source/processes/transportation/include/G4ParallelTransportConfigurator.hh b/source/processes/transportation/include/G4ParallelTransportConfigurator.hh index dddf31c44b..a27d1c1e21 100644 --- a/source/processes/transportation/include/G4ParallelTransportConfigurator.hh +++ b/source/processes/transportation/include/G4ParallelTransportConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelTransportConfigurator.hh,v 1.4 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelTransportConfigurator diff --git a/source/processes/transportation/include/G4ParallelWWnTransportProcess.hh b/source/processes/transportation/include/G4ParallelWWnTransportProcess.hh index 8a2073ad57..562ba614d9 100644 --- a/source/processes/transportation/include/G4ParallelWWnTransportProcess.hh +++ b/source/processes/transportation/include/G4ParallelWWnTransportProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelWWnTransportProcess.hh,v 1.4 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelWWnTransportProcess diff --git a/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh b/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh index c71e39bafa..9cd0f92f77 100644 --- a/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh +++ b/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParallelWeightWindowProcess.hh,v 1.9 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelWeightWindowProcess diff --git a/source/processes/transportation/include/G4PlaceOfAction.hh b/source/processes/transportation/include/G4PlaceOfAction.hh index 86c3faefdf..a584aebcd7 100644 --- a/source/processes/transportation/include/G4PlaceOfAction.hh +++ b/source/processes/transportation/include/G4PlaceOfAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlaceOfAction.hh,v 1.3 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PlaceOfAction diff --git a/source/processes/transportation/include/G4ProcessPlacer.hh b/source/processes/transportation/include/G4ProcessPlacer.hh index 2e9b7fd697..e07fa9e69d 100644 --- a/source/processes/transportation/include/G4ProcessPlacer.hh +++ b/source/processes/transportation/include/G4ProcessPlacer.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessPlacer.hh,v 1.7 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ProcessPlacer diff --git a/source/processes/transportation/include/G4SamplingPostStepAction.hh b/source/processes/transportation/include/G4SamplingPostStepAction.hh index 1645427ed2..ff40baa817 100644 --- a/source/processes/transportation/include/G4SamplingPostStepAction.hh +++ b/source/processes/transportation/include/G4SamplingPostStepAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4SamplingPostStepAction.hh,v 1.1 2003/11/26 14:51:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4SamplingPostStepAction diff --git a/source/processes/transportation/include/G4StepLimiter.hh b/source/processes/transportation/include/G4StepLimiter.hh index 9d2083124f..509ca95250 100644 --- a/source/processes/transportation/include/G4StepLimiter.hh +++ b/source/processes/transportation/include/G4StepLimiter.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiter.hh,v 1.2 2005/03/07 16:21:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description // diff --git a/source/processes/transportation/include/G4TrackTerminator.hh b/source/processes/transportation/include/G4TrackTerminator.hh index 1be4909276..dba10a8a3a 100644 --- a/source/processes/transportation/include/G4TrackTerminator.hh +++ b/source/processes/transportation/include/G4TrackTerminator.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackTerminator.hh,v 1.2 2003/11/26 14:51:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4TrackTerminator diff --git a/source/processes/transportation/include/G4Transportation.hh b/source/processes/transportation/include/G4Transportation.hh index d14d6b23e9..fcd203716c 100644 --- a/source/processes/transportation/include/G4Transportation.hh +++ b/source/processes/transportation/include/G4Transportation.hh @@ -22,7 +22,7 @@ // // // $Id: G4Transportation.hh,v 1.10 2004/11/23 17:45:43 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/transportation/include/G4Transportation.icc b/source/processes/transportation/include/G4Transportation.icc index 35aac0f4d7..239c391574 100644 --- a/source/processes/transportation/include/G4Transportation.icc +++ b/source/processes/transportation/include/G4Transportation.icc @@ -22,7 +22,7 @@ // // // $Id: G4Transportation.icc,v 1.8 2004/11/23 17:45:43 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/processes/transportation/include/G4UserSpecialCuts.hh b/source/processes/transportation/include/G4UserSpecialCuts.hh index 77de6eb886..dbbae5f77d 100644 --- a/source/processes/transportation/include/G4UserSpecialCuts.hh +++ b/source/processes/transportation/include/G4UserSpecialCuts.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4UserSpecialCuts.hh,v 1.9 2005/03/07 16:21:41 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description // diff --git a/source/processes/transportation/include/G4VProcessPlacer.hh b/source/processes/transportation/include/G4VProcessPlacer.hh index c546a720a9..721dae3b2d 100644 --- a/source/processes/transportation/include/G4VProcessPlacer.hh +++ b/source/processes/transportation/include/G4VProcessPlacer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VProcessPlacer.hh,v 1.8 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VProcessPlacer diff --git a/source/processes/transportation/include/G4VSampler.hh b/source/processes/transportation/include/G4VSampler.hh index 9803cf1fc2..4f054b6081 100644 --- a/source/processes/transportation/include/G4VSampler.hh +++ b/source/processes/transportation/include/G4VSampler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VSampler.hh,v 1.9 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VSampler diff --git a/source/processes/transportation/include/G4VSamplerConfigurator.hh b/source/processes/transportation/include/G4VSamplerConfigurator.hh index 908008a9cd..3dc041ec74 100644 --- a/source/processes/transportation/include/G4VSamplerConfigurator.hh +++ b/source/processes/transportation/include/G4VSamplerConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4VSamplerConfigurator.hh,v 1.6 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VSamplerConfigurator diff --git a/source/processes/transportation/include/G4VTrackTerminator.hh b/source/processes/transportation/include/G4VTrackTerminator.hh index 6ddc5da001..d373642047 100644 --- a/source/processes/transportation/include/G4VTrackTerminator.hh +++ b/source/processes/transportation/include/G4VTrackTerminator.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTrackTerminator.hh,v 1.5 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4VTrackTerminator diff --git a/source/processes/transportation/include/G4WeightCutOffConfigurator.hh b/source/processes/transportation/include/G4WeightCutOffConfigurator.hh index 488a8e2b05..006f537131 100644 --- a/source/processes/transportation/include/G4WeightCutOffConfigurator.hh +++ b/source/processes/transportation/include/G4WeightCutOffConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: G4WeightCutOffConfigurator.hh,v 1.4 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4WeightCutOffConfigurator diff --git a/source/processes/transportation/include/G4WeightCutOffProcess.hh b/source/processes/transportation/include/G4WeightCutOffProcess.hh index 7a62bb0e01..5d8ae2ddbc 100644 --- a/source/processes/transportation/include/G4WeightCutOffProcess.hh +++ b/source/processes/transportation/include/G4WeightCutOffProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4WeightCutOffProcess.hh,v 1.3 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4WeightCutOffProcess diff --git a/source/processes/transportation/src/G4MImportanceConfigurator.cc b/source/processes/transportation/src/G4MImportanceConfigurator.cc index d925c36fd8..8f9985d9ce 100644 --- a/source/processes/transportation/src/G4MImportanceConfigurator.cc +++ b/source/processes/transportation/src/G4MImportanceConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4MImportanceConfigurator.cc,v 1.5 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MImportanceConfigurator diff --git a/source/processes/transportation/src/G4MScoreConfigurator.cc b/source/processes/transportation/src/G4MScoreConfigurator.cc index f8b04becce..e50c7e7e12 100644 --- a/source/processes/transportation/src/G4MScoreConfigurator.cc +++ b/source/processes/transportation/src/G4MScoreConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4MScoreConfigurator.cc,v 1.7 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MScoreConfigurator diff --git a/source/processes/transportation/src/G4MScoreProcess.cc b/source/processes/transportation/src/G4MScoreProcess.cc index a970ad059c..081239c1ce 100644 --- a/source/processes/transportation/src/G4MScoreProcess.cc +++ b/source/processes/transportation/src/G4MScoreProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4MScoreProcess.cc,v 1.12 2004/10/19 00:59:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4MWeightWindowConfigurator.cc b/source/processes/transportation/src/G4MWeightWindowConfigurator.cc index 345380fb2f..ff8dda60bd 100644 --- a/source/processes/transportation/src/G4MWeightWindowConfigurator.cc +++ b/source/processes/transportation/src/G4MWeightWindowConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4MWeightWindowConfigurator.cc,v 1.4 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4MWeightWindowConfigurator diff --git a/source/processes/transportation/src/G4MassGCellFinder.cc b/source/processes/transportation/src/G4MassGCellFinder.cc index 44049277dc..90b873b161 100644 --- a/source/processes/transportation/src/G4MassGCellFinder.cc +++ b/source/processes/transportation/src/G4MassGCellFinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4MassGCellFinder.cc,v 1.3 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4MassGeometrySampler.cc b/source/processes/transportation/src/G4MassGeometrySampler.cc index f422388b69..ebcb1d7218 100644 --- a/source/processes/transportation/src/G4MassGeometrySampler.cc +++ b/source/processes/transportation/src/G4MassGeometrySampler.cc @@ -22,7 +22,7 @@ // // // $Id: G4MassGeometrySampler.cc,v 1.11 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4MassImportanceProcess.cc b/source/processes/transportation/src/G4MassImportanceProcess.cc index 914cc53f18..6b8c655440 100644 --- a/source/processes/transportation/src/G4MassImportanceProcess.cc +++ b/source/processes/transportation/src/G4MassImportanceProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4MassImportanceProcess.cc,v 1.17 2004/10/19 00:59:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4MassWeightWindowProcess.cc b/source/processes/transportation/src/G4MassWeightWindowProcess.cc index 52e53e90d3..349f844293 100644 --- a/source/processes/transportation/src/G4MassWeightWindowProcess.cc +++ b/source/processes/transportation/src/G4MassWeightWindowProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4MassWeightWindowProcess.cc,v 1.5 2004/10/19 00:59:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4PImportanceConfigurator.cc b/source/processes/transportation/src/G4PImportanceConfigurator.cc index 74f409b6a9..00d8a12bc8 100644 --- a/source/processes/transportation/src/G4PImportanceConfigurator.cc +++ b/source/processes/transportation/src/G4PImportanceConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4PImportanceConfigurator.cc,v 1.6 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PImportanceConfigurator diff --git a/source/processes/transportation/src/G4PScoreConfigurator.cc b/source/processes/transportation/src/G4PScoreConfigurator.cc index ed3ff33dd8..71573cb9bf 100644 --- a/source/processes/transportation/src/G4PScoreConfigurator.cc +++ b/source/processes/transportation/src/G4PScoreConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4PScoreConfigurator.cc,v 1.7 2003/11/26 14:51:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PScoreConfigurator diff --git a/source/processes/transportation/src/G4PScoreProcess.cc b/source/processes/transportation/src/G4PScoreProcess.cc index bf8014a9d1..794d9acfd5 100644 --- a/source/processes/transportation/src/G4PScoreProcess.cc +++ b/source/processes/transportation/src/G4PScoreProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4PScoreProcess.cc,v 1.9 2004/10/19 00:59:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4PWeightWindowConfigurator.cc b/source/processes/transportation/src/G4PWeightWindowConfigurator.cc index a0ca188810..bfba516972 100644 --- a/source/processes/transportation/src/G4PWeightWindowConfigurator.cc +++ b/source/processes/transportation/src/G4PWeightWindowConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4PWeightWindowConfigurator.cc,v 1.4 2003/11/26 14:51:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4PWeightWindowConfigurator diff --git a/source/processes/transportation/src/G4ParallelGCellFinder.cc b/source/processes/transportation/src/G4ParallelGCellFinder.cc index b9faf27dff..bb0c66b1e4 100644 --- a/source/processes/transportation/src/G4ParallelGCellFinder.cc +++ b/source/processes/transportation/src/G4ParallelGCellFinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParallelGCellFinder.cc,v 1.3 2003/11/26 14:51:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4ParallelGeometrySampler.cc b/source/processes/transportation/src/G4ParallelGeometrySampler.cc index 10d4c18fb1..ceab6112ae 100644 --- a/source/processes/transportation/src/G4ParallelGeometrySampler.cc +++ b/source/processes/transportation/src/G4ParallelGeometrySampler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParallelGeometrySampler.cc,v 1.10 2003/11/26 14:51:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4ParallelImportanceProcess.cc b/source/processes/transportation/src/G4ParallelImportanceProcess.cc index 905fe31965..15c2403187 100644 --- a/source/processes/transportation/src/G4ParallelImportanceProcess.cc +++ b/source/processes/transportation/src/G4ParallelImportanceProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelImportanceProcess.cc,v 1.17 2004/10/19 00:59:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParallelImportanceProcess.cc,v 1.18 2005/11/21 21:41:29 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -32,7 +32,6 @@ // ---------------------------------------------------------------------- #include "G4Types.hh" -#include #include "G4ParallelImportanceProcess.hh" #include "G4VImportanceSplitExaminer.hh" #include "G4VTrackTerminator.hh" diff --git a/source/processes/transportation/src/G4ParallelTransport.cc b/source/processes/transportation/src/G4ParallelTransport.cc index a17196aa1a..8831a2f85a 100644 --- a/source/processes/transportation/src/G4ParallelTransport.cc +++ b/source/processes/transportation/src/G4ParallelTransport.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelTransport.cc,v 1.12 2003/11/26 14:51:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParallelTransport.cc,v 1.14 2005/11/21 21:46:53 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -32,10 +32,10 @@ // ---------------------------------------------------------------------- #include "G4Types.hh" -#include #include "G4ParallelTransport.hh" #include "G4VPGeoDriver.hh" #include "G4VParallelStepper.hh" +#include G4ParallelTransport::G4ParallelTransport(G4VPGeoDriver &pgeodriver, G4VParallelStepper &aStepper, @@ -61,7 +61,7 @@ G4ParallelTransport::~G4ParallelTransport() delete fParticleChange; } -void G4ParallelTransport::StartTracking() +void G4ParallelTransport::StartTracking(G4Track*) { fInitStep = true; } @@ -115,13 +115,11 @@ G4ParallelTransport::PostStepDoIt(const G4Track& aTrack, { if (!(aStep.GetStepLength() > 0.)) { - char st[1000]; - std::ostrstream os(st,1000); + std::ostringstream os; os << "G4PArallelTransport::InitPostDoIt: StepLength() == 0.\n" << "pos: " << aTrack.GetPosition() << ", " - << "dir: " << aTrack.GetMomentumDirection() << "\n" - << '\0'; - G4String m(st); + << "dir: " << aTrack.GetMomentumDirection() << "\n"; + G4String m = os.str(); Warning(m); } fParticleChange->Initialize(aTrack); diff --git a/source/processes/transportation/src/G4ParallelTransportConfigurator.cc b/source/processes/transportation/src/G4ParallelTransportConfigurator.cc index be188849e6..88d7e523ad 100644 --- a/source/processes/transportation/src/G4ParallelTransportConfigurator.cc +++ b/source/processes/transportation/src/G4ParallelTransportConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParallelTransportConfigurator.cc,v 1.5 2003/11/26 14:51:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelTransportConfigurator diff --git a/source/processes/transportation/src/G4ParallelWWnTransportProcess.cc b/source/processes/transportation/src/G4ParallelWWnTransportProcess.cc index 7f9d7bb68a..a3211915be 100644 --- a/source/processes/transportation/src/G4ParallelWWnTransportProcess.cc +++ b/source/processes/transportation/src/G4ParallelWWnTransportProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelWWnTransportProcess.cc,v 1.4 2004/10/19 00:59:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParallelWWnTransportProcess.cc,v 1.5 2005/11/21 21:41:29 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -32,7 +32,6 @@ // ---------------------------------------------------------------------- #include "G4Types.hh" -#include #include "G4ParallelWWnTransportProcess.hh" #include "G4VWeightWindowExaminer.hh" #include "G4VTrackTerminator.hh" diff --git a/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc b/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc index 1892b0e1a0..48015496e5 100644 --- a/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc +++ b/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelWeightWindowProcess.cc,v 1.11 2004/10/19 00:59:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParallelWeightWindowProcess.cc,v 1.12 2005/11/21 21:41:29 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -32,7 +32,6 @@ // ---------------------------------------------------------------------- #include "G4Types.hh" -#include #include "G4ParallelWeightWindowProcess.hh" #include "G4VWeightWindowExaminer.hh" #include "G4VTrackTerminator.hh" diff --git a/source/processes/transportation/src/G4ProcessPlacer.cc b/source/processes/transportation/src/G4ProcessPlacer.cc index f7c996ab68..3d68e2b6ea 100644 --- a/source/processes/transportation/src/G4ProcessPlacer.cc +++ b/source/processes/transportation/src/G4ProcessPlacer.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessPlacer.cc,v 1.14 2003/11/26 14:51:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4SamplingPostStepAction.cc b/source/processes/transportation/src/G4SamplingPostStepAction.cc index 412976db9a..808b8055d3 100644 --- a/source/processes/transportation/src/G4SamplingPostStepAction.cc +++ b/source/processes/transportation/src/G4SamplingPostStepAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SamplingPostStepAction.cc,v 1.2 2004/10/19 00:59:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SamplingPostStepAction.cc,v 1.3 2005/11/21 21:41:29 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -37,7 +37,7 @@ #include "G4VImportanceSplitExaminer.hh" #include "G4Nsplit_Weight.hh" #include "G4VTrackTerminator.hh" -#include +#include G4SamplingPostStepAction:: G4SamplingPostStepAction(const G4VTrackTerminator &TrackTerminator) @@ -72,13 +72,11 @@ void G4SamplingPostStepAction::DoIt(const G4Track& aTrack, else { // wrong answer - char st[200]; - std::ostrstream os(st,200); + std::ostringstream os; os << "Sampler returned nw = " << nw - << "\n" - << '\0'; - G4String m(st); + << "\n"; + G4String m = os.str(); G4Exception("G4SamplingPostStepAction::DoIt()", "InvalidCondition", FatalException, m); diff --git a/source/processes/transportation/src/G4StepLimiter.cc b/source/processes/transportation/src/G4StepLimiter.cc index eeb7d3a25f..9a6c5b6f4b 100644 --- a/source/processes/transportation/src/G4StepLimiter.cc +++ b/source/processes/transportation/src/G4StepLimiter.cc @@ -22,7 +22,7 @@ // // // $Id: G4StepLimiter.cc,v 1.1 2004/07/26 00:42:59 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // History diff --git a/source/processes/transportation/src/G4Transportation.cc b/source/processes/transportation/src/G4Transportation.cc index e0f4aca281..683e539ed7 100644 --- a/source/processes/transportation/src/G4Transportation.cc +++ b/source/processes/transportation/src/G4Transportation.cc @@ -22,7 +22,7 @@ // // // $Id: G4Transportation.cc,v 1.52 2005/05/10 15:20:13 japost Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ------------------------------------------------------------ // GEANT 4 include file implementation diff --git a/source/processes/transportation/src/G4UserSpecialCuts.cc b/source/processes/transportation/src/G4UserSpecialCuts.cc index 4d251d7e33..a4b639f407 100644 --- a/source/processes/transportation/src/G4UserSpecialCuts.cc +++ b/source/processes/transportation/src/G4UserSpecialCuts.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserSpecialCuts.cc,v 1.14 2004/10/19 00:59:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // -------------------------------------------------------------- // History diff --git a/source/processes/transportation/src/G4VProcessPlacer.cc b/source/processes/transportation/src/G4VProcessPlacer.cc index 233cb25bb7..607a5e3273 100644 --- a/source/processes/transportation/src/G4VProcessPlacer.cc +++ b/source/processes/transportation/src/G4VProcessPlacer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VProcessPlacer.cc,v 1.2 2003/04/02 16:59:20 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4VSampler.cc b/source/processes/transportation/src/G4VSampler.cc index 52ca2ceb46..a9f7bc1d54 100644 --- a/source/processes/transportation/src/G4VSampler.cc +++ b/source/processes/transportation/src/G4VSampler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSampler.cc,v 1.2 2003/04/02 16:59:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4VSamplerConfigurator.cc b/source/processes/transportation/src/G4VSamplerConfigurator.cc index cfbe3b4e22..58268e92e6 100644 --- a/source/processes/transportation/src/G4VSamplerConfigurator.cc +++ b/source/processes/transportation/src/G4VSamplerConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSamplerConfigurator.cc,v 1.2 2003/04/02 16:59:25 dressel Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4VTrackTerminator.cc b/source/processes/transportation/src/G4VTrackTerminator.cc index 024cd18e72..7afde5d905 100644 --- a/source/processes/transportation/src/G4VTrackTerminator.cc +++ b/source/processes/transportation/src/G4VTrackTerminator.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTrackTerminator.cc,v 1.3 2003/11/26 14:51:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4WeightCutOffConfigurator.cc b/source/processes/transportation/src/G4WeightCutOffConfigurator.cc index 34c81389d0..4da3973547 100644 --- a/source/processes/transportation/src/G4WeightCutOffConfigurator.cc +++ b/source/processes/transportation/src/G4WeightCutOffConfigurator.cc @@ -22,7 +22,7 @@ // // // $Id: G4WeightCutOffConfigurator.cc,v 1.5 2003/11/26 14:51:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // Class G4WeightCutOffConfigurator diff --git a/source/processes/transportation/src/G4WeightCutOffProcess.cc b/source/processes/transportation/src/G4WeightCutOffProcess.cc index ef626b09f0..17eb2b8066 100644 --- a/source/processes/transportation/src/G4WeightCutOffProcess.cc +++ b/source/processes/transportation/src/G4WeightCutOffProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4WeightCutOffProcess.cc,v 1.7 2004/10/19 00:59:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/readout/include/G4DCtable.hh b/source/readout/include/G4DCtable.hh index baf383920c..b9aefea605 100644 --- a/source/readout/include/G4DCtable.hh +++ b/source/readout/include/G4DCtable.hh @@ -22,7 +22,7 @@ // // // $Id: G4DCtable.hh,v 1.8 2004/03/15 19:18:53 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4DCtable_H diff --git a/source/readout/include/G4DMmessenger.hh b/source/readout/include/G4DMmessenger.hh index 435ffce80d..3b31f5f32d 100644 --- a/source/readout/include/G4DMmessenger.hh +++ b/source/readout/include/G4DMmessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4DMmessenger.hh,v 1.4 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4DMmessenger_h diff --git a/source/readout/include/G4DigiManager.hh b/source/readout/include/G4DigiManager.hh index e2772b1442..bfac116d71 100644 --- a/source/readout/include/G4DigiManager.hh +++ b/source/readout/include/G4DigiManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4DigiManager.hh,v 1.7 2003/06/16 17:12:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4DigiManager_h diff --git a/source/readout/include/G4VDigitizerModule.hh b/source/readout/include/G4VDigitizerModule.hh index 2faceb5e37..13a5bc7512 100644 --- a/source/readout/include/G4VDigitizerModule.hh +++ b/source/readout/include/G4VDigitizerModule.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDigitizerModule.hh,v 1.7 2003/06/16 17:12:47 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VDigitizerModule_H diff --git a/source/readout/src/G4DCtable.cc b/source/readout/src/G4DCtable.cc index ee5f3c4698..6ccc16274c 100644 --- a/source/readout/src/G4DCtable.cc +++ b/source/readout/src/G4DCtable.cc @@ -22,7 +22,7 @@ // // // $Id: G4DCtable.cc,v 1.8 2004/03/15 19:18:53 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4DCtable.hh" diff --git a/source/readout/src/G4DMmessenger.cc b/source/readout/src/G4DMmessenger.cc index ae10044bc8..f33e604dbb 100644 --- a/source/readout/src/G4DMmessenger.cc +++ b/source/readout/src/G4DMmessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4DMmessenger.cc,v 1.3 2001/07/11 10:08:31 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // --------------------------------------------------------------------- diff --git a/source/readout/src/G4DigiManager.cc b/source/readout/src/G4DigiManager.cc index 30c318619c..ab8f71b6d7 100644 --- a/source/readout/src/G4DigiManager.cc +++ b/source/readout/src/G4DigiManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4DigiManager.cc,v 1.6 2001/10/18 20:28:19 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4DigiManager.hh" diff --git a/source/readout/src/G4VDigitizerModule.cc b/source/readout/src/G4VDigitizerModule.cc index 840fb03501..84074c4ef8 100644 --- a/source/readout/src/G4VDigitizerModule.cc +++ b/source/readout/src/G4VDigitizerModule.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDigitizerModule.cc,v 1.3 2001/07/11 10:08:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VDigitizerModule.hh" diff --git a/source/run/GNUmakefile b/source/run/GNUmakefile index 4a68be5bb1..7a8c04b8f3 100644 --- a/source/run/GNUmakefile +++ b/source/run/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.10 2004/06/11 14:27:44 gcosmo Exp $ +# $Id: GNUmakefile,v 1.11 2005/10/17 21:26:45 tinslay Exp $ # ---------------------------------------------------------- # GNUmakefile for run library. Gabriele Cosmo, 3/4/1997. # ---------------------------------------------------------- @@ -41,7 +41,8 @@ CPPFLAGS += \ -I$(G4BASE)/digits_hits/digits/include \ -I$(G4BASE)/event/include \ -I$(G4BASE)/intercoms/include \ - -I$(G4BASE)/geometry/biasing/include + -I$(G4BASE)/geometry/biasing/include \ + -I$(G4BASE)/graphics_reps/include include $(G4INSTALL)/config/common.gmk diff --git a/source/run/History b/source/run/History index 0a91e12dd8..caffd3c647 100644 --- a/source/run/History +++ b/source/run/History @@ -1,4 +1,4 @@ -$Id: History,v 1.129 2005/06/17 21:07:13 asaim Exp $ +$Id: History,v 1.140 2005/11/28 10:57:24 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,51 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 28th, 2005, Makoto Asai (run-V07-01-08) +- In G4RunManagerKernel.cc, changed inclusion of version.hh to G4Version.hh. + Coworks with tag "global-V07-01-05". + +November 22th, 2005, Makoto Asai (run-V07-01-07) +- Put G4Exception to the constructors of G4VUserPrimaryGeneratorAction and + G4UserRunAction to protect against their instantiation before G4VUserPhysicsList + is instantiated and set to G4RunManager. +- Remove redundant invokation of G4VUserPhysicsList::ConstructParticle() from + G4RunManagerKernel::InitializePhysics(). + +November 10th, 2005, Makoto Asai (run-V07-01-06) +- In G4RunManagerKernel.cc, invokation of G4ParticleTable::GetParticleTable()->SetReadiness(); + has been moved from the constructor to SetPhysics() method. +- This change enforces that all particles must be instantiated in ConstructParticle() method + in the physics list along with the introduction of non-static particle definition classes + in the tag particles-V07-01-02. + +November 9th, 2005, Gabriele Cosmo (run-V07-01-05) +- Implemented migration to from deprecated . +- Added changes for support of CLHEP-2.0.X. + +November 7th, 2005, Gabriele Cosmo (run-V07-01-04) +- Added graphics_reps to CPPFLAGS in GNUmakefile, following the changes + introduced in tag "run-V07-01-02" for migration of vis code. +- Use version.hh for version and date in G4RunManagerKernel constructor. + +October 28th, 2005, Makoto Asai (run-V07-01-03) +- Working tag for merging "envelope" to G4Region. +- This tag does NOT contain run-V07-01-02 tag. + +October 20, 2005, Joseph Perl (run-V07-01-02) +- Tag to co-work with vis-V07-01-05. + +October 17th, 2005 Jane Tinslay +- Modify GNUmakefile to follow intercoms->graphics_reps migration for + G4VGraphicsScene and G4VVisManager + +September 26th, 2005 G.Cosmo (run-V07-01-01) +- Removed definition of G4Allocator after changes made in + previous tag (fixed compilation error for run-V07-01-00). + +September 19th, 2005 M.Asai (run-V07-01-00) +- Cosmetic changes in G4Run. + June 17th, 2005 M.Asai (run-V07-00-05) - Changed version string in G4RunManagerKernel not to have CVS version string. diff --git a/source/run/include/G4ExceptionHandler.hh b/source/run/include/G4ExceptionHandler.hh index 34e7f421c9..13ec726588 100644 --- a/source/run/include/G4ExceptionHandler.hh +++ b/source/run/include/G4ExceptionHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExceptionHandler.hh,v 1.1 2002/08/19 18:33:29 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4Run.hh b/source/run/include/G4Run.hh index 6fa7643f12..a9fc41cdb3 100644 --- a/source/run/include/G4Run.hh +++ b/source/run/include/G4Run.hh @@ -21,15 +21,14 @@ // ******************************************************************** // // -// $Id: G4Run.hh,v 1.10 2004/06/11 14:27:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Run.hh,v 1.11 2005/09/19 16:53:53 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4Run_h #define G4Run_h 1 #include "globals.hh" -#include "G4Allocator.hh" class G4Event; class G4HCtable; @@ -47,8 +46,6 @@ class G4Run public: G4Run(); virtual ~G4Run(); - inline void *operator new(size_t); - inline void operator delete(void* aRun); protected: G4int runID; @@ -58,10 +55,10 @@ class G4Run G4DCtable* DCtable; public: // with description - virtual void RecordEvent(const G4Event*) - { numberOfEvent++; } + virtual void RecordEvent(const G4Event*); // Method to be overwritten by the user for recording events in this run. // In such a case, it is the user's responsibility to increment numberOfEvent. + // Also, user's run class object must be instantiated in user's runAction. public: // with description inline G4int GetRunID() const @@ -90,23 +87,6 @@ class G4Run { DCtable = DCtbl; } }; -#if defined G4RUN_ALLOC_EXPORT - extern G4DLLEXPORT G4Allocator aRunAllocator; -#else - extern G4DLLIMPORT G4Allocator aRunAllocator; -#endif - -inline void* G4Run::operator new(size_t) -{ - void* aRun; - aRun = (void*)aRunAllocator.MallocSingle(); - return aRun; -} - -inline void G4Run::operator delete(void* aRun) -{ - aRunAllocator.FreeSingle((G4Run*)aRun); -} #endif diff --git a/source/run/include/G4RunManager.hh b/source/run/include/G4RunManager.hh index 8841b5b4f3..5f2a2dd505 100644 --- a/source/run/include/G4RunManager.hh +++ b/source/run/include/G4RunManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4RunManager.hh,v 1.40 2005/06/11 22:33:00 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/run/include/G4RunManagerKernel.hh b/source/run/include/G4RunManagerKernel.hh index c96f503ac2..73223ed7fa 100644 --- a/source/run/include/G4RunManagerKernel.hh +++ b/source/run/include/G4RunManagerKernel.hh @@ -22,7 +22,7 @@ // // // $Id: G4RunManagerKernel.hh,v 1.6 2005/06/11 22:33:00 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/run/include/G4RunMessenger.hh b/source/run/include/G4RunMessenger.hh index 09f43776d1..50b44773a6 100644 --- a/source/run/include/G4RunMessenger.hh +++ b/source/run/include/G4RunMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4RunMessenger.hh,v 1.12 2003/11/04 01:58:28 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT 4 class header file diff --git a/source/run/include/G4UserPhysicsListMessenger.hh b/source/run/include/G4UserPhysicsListMessenger.hh index 3523742551..8c1eb120fa 100644 --- a/source/run/include/G4UserPhysicsListMessenger.hh +++ b/source/run/include/G4UserPhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserPhysicsListMessenger.hh,v 1.15 2003/04/14 20:07:25 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/run/include/G4UserRunAction.hh b/source/run/include/G4UserRunAction.hh index 5874e604aa..0242f52612 100644 --- a/source/run/include/G4UserRunAction.hh +++ b/source/run/include/G4UserRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserRunAction.hh,v 1.7 2003/04/04 16:45:30 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4UserRunAction_h diff --git a/source/run/include/G4VModularPhysicsList.hh b/source/run/include/G4VModularPhysicsList.hh index fe4fd99469..8464b41d0b 100644 --- a/source/run/include/G4VModularPhysicsList.hh +++ b/source/run/include/G4VModularPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G4VModularPhysicsList.hh,v 1.6 2004/11/29 06:13:11 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VPersistencyManager.hh b/source/run/include/G4VPersistencyManager.hh index 08ceb0f4ca..6c6971e81b 100644 --- a/source/run/include/G4VPersistencyManager.hh +++ b/source/run/include/G4VPersistencyManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPersistencyManager.hh,v 1.4 2001/07/11 10:08:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VPersistencyManager_h diff --git a/source/run/include/G4VPhysicsConstructor.hh b/source/run/include/G4VPhysicsConstructor.hh index b17d707a13..c0c224ef93 100644 --- a/source/run/include/G4VPhysicsConstructor.hh +++ b/source/run/include/G4VPhysicsConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPhysicsConstructor.hh,v 1.3 2001/11/06 06:08:04 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VUserDetectorConstruction.hh b/source/run/include/G4VUserDetectorConstruction.hh index 10768538f5..0e9e4acf95 100644 --- a/source/run/include/G4VUserDetectorConstruction.hh +++ b/source/run/include/G4VUserDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserDetectorConstruction.hh,v 1.4 2001/07/11 10:08:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VUserDetectorConstruction_h diff --git a/source/run/include/G4VUserPhysicsList.hh b/source/run/include/G4VUserPhysicsList.hh index f1ad0534bd..071b32fccc 100644 --- a/source/run/include/G4VUserPhysicsList.hh +++ b/source/run/include/G4VUserPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserPhysicsList.hh,v 1.29 2004/11/29 06:13:11 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VUserPrimaryGeneratorAction.hh b/source/run/include/G4VUserPrimaryGeneratorAction.hh index b7b5b7d83b..21d6bc8f44 100644 --- a/source/run/include/G4VUserPrimaryGeneratorAction.hh +++ b/source/run/include/G4VUserPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserPrimaryGeneratorAction.hh,v 1.4 2001/07/11 10:08:33 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VUserPrimaryGeneratorAction_h diff --git a/source/run/src/G4ExceptionHandler.cc b/source/run/src/G4ExceptionHandler.cc index a0b4d8dbaa..8a10260287 100644 --- a/source/run/src/G4ExceptionHandler.cc +++ b/source/run/src/G4ExceptionHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExceptionHandler.cc,v 1.3 2003/05/21 21:06:01 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/src/G4Run.cc b/source/run/src/G4Run.cc index 4c7660514c..ffeaaf6fce 100644 --- a/source/run/src/G4Run.cc +++ b/source/run/src/G4Run.cc @@ -21,14 +21,12 @@ // ******************************************************************** // // -// $Id: G4Run.cc,v 1.7 2004/06/11 14:27:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Run.cc,v 1.9 2005/09/26 08:34:17 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4Run.hh" -G4Allocator aRunAllocator; - G4Run::G4Run() :runID(0),numberOfEvent(0),numberOfEventToBeProcessed(0),HCtable(0),DCtable(0) {;} @@ -36,3 +34,6 @@ G4Run::G4Run() G4Run::~G4Run() {;} +void G4Run::RecordEvent(const G4Event*) +{ numberOfEvent++; } + diff --git a/source/run/src/G4RunManager.cc b/source/run/src/G4RunManager.cc index 4694db2477..3a02a0b6d0 100644 --- a/source/run/src/G4RunManager.cc +++ b/source/run/src/G4RunManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunManager.cc,v 1.86 2004/12/30 19:37:32 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RunManager.cc,v 1.88 2005/11/09 10:06:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -51,8 +51,9 @@ #include "G4SDManager.hh" #include "G4UImanager.hh" #include "G4ios.hh" -#include +#include +using namespace CLHEP; G4RunManager* G4RunManager::fRunManager = 0; @@ -392,7 +393,7 @@ void G4RunManager::rndmSaveThisRun() G4String fileIn = randomNumberStatusDir + "currentRun.rndm"; - std::ostrstream os; + std::ostringstream os; os << "run" << runNumber << ".rndm" << '\0'; G4String fileOut = randomNumberStatusDir + os.str(); @@ -412,7 +413,7 @@ void G4RunManager::rndmSaveThisEvent() G4String fileIn = randomNumberStatusDir + "currentEvent.rndm"; - std::ostrstream os; + std::ostringstream os; os << "run" << currentRun->GetRunID() << "evt" << currentEvent->GetEventID() << ".rndm" << '\0'; G4String fileOut = randomNumberStatusDir + os.str(); diff --git a/source/run/src/G4RunManagerKernel.cc b/source/run/src/G4RunManagerKernel.cc index a54786a362..9b9caccffc 100644 --- a/source/run/src/G4RunManagerKernel.cc +++ b/source/run/src/G4RunManagerKernel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunManagerKernel.cc,v 1.27 2005/06/17 21:07:13 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RunManagerKernel.cc,v 1.33 2005/11/28 10:57:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -46,6 +46,7 @@ #include "G4UImanager.hh" #include "G4VVisManager.hh" #include "G4UnitsTable.hh" +#include "G4Version.hh" #include "G4ios.hh" #include @@ -75,16 +76,17 @@ G4RunManagerKernel::G4RunManagerKernel() G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts()); // Following line is tentatively moved from SetPhysics method - G4ParticleTable::GetParticleTable()->SetReadiness(); + // Commented out for introduction of non-static particle definition // G4ParticleTable::GetParticleTable()->SetReadiness(); // set the initial application state G4StateManager::GetStateManager()->SetNewState(G4State_PreInit); // version banner - G4String vs = "$Name: geant4-07-01 $"; + G4String vs = G4Version; vs = vs.substr(1,vs.size()-2); versionString = " Geant4 version "; versionString += vs; - versionString += " (30-June-2005)"; + versionString += " "; + versionString += G4Date; G4cout << G4endl << "*************************************************************" << G4endl << versionString << G4endl @@ -202,7 +204,7 @@ void G4RunManagerKernel::DefineWorldVolume(G4VPhysicalVolume* worldVol, void G4RunManagerKernel::SetPhysics(G4VUserPhysicsList* uPhys) { physicsList = uPhys; - // G4ParticleTable::GetParticleTable()->SetReadiness(); + G4ParticleTable::GetParticleTable()->SetReadiness(); physicsList->ConstructParticle(); if(verboseLevel>2) G4ParticleTable::GetParticleTable()->DumpTable(); if(verboseLevel>1) @@ -240,8 +242,8 @@ void G4RunManagerKernel::InitializePhysics() "G4VUserPhysicsList is not defined"); } - if(verboseLevel>1) G4cout << "physicsList->ConstructParticle() start." << G4endl; - physicsList->ConstructParticle(); + //if(verboseLevel>1) G4cout << "physicsList->ConstructParticle() start." << G4endl; + //physicsList->ConstructParticle(); if(verboseLevel>1) G4cout << "physicsList->Construct() start." << G4endl; physicsList->Construct(); @@ -325,8 +327,8 @@ void G4RunManagerKernel::ResetNavigator() void G4RunManagerKernel::UpdateRegion() { - G4RegionStore::GetInstance()->UpdateMaterialList(); - G4ProductionCutsTable::GetProductionCutsTable()->UpdateCoupleTable(); + G4RegionStore::GetInstance()->UpdateMaterialList(currentWorld); + G4ProductionCutsTable::GetProductionCutsTable()->UpdateCoupleTable(currentWorld); } void G4RunManagerKernel::BuildPhysicsTables() @@ -346,14 +348,18 @@ void G4RunManagerKernel::BuildPhysicsTables() void G4RunManagerKernel::CheckRegions() { + G4RegionStore::GetInstance()->SetWorldVolume(); + for(size_t i=0;isize();i++) { G4Region* region = (*(G4RegionStore::GetInstance()))[i]; + if(region->GetWorldPhysical()!=currentWorld) continue; G4ProductionCuts* cuts = region->GetProductionCuts(); if(!cuts) { G4cerr << "Warning : Region <" << region->GetName() - << "> does not have specific production cuts." << G4endl; + << "> does not have specific production cuts," << G4endl + << "even though it appears in the current tracking world." << G4endl; G4cerr << "Default cuts are used for this region." << G4endl; region->SetProductionCuts( G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts()); @@ -377,7 +383,13 @@ void G4RunManagerKernel::DumpRegion(G4Region* region) const else { G4cout << G4endl; - G4cout << "Region " << region->GetName() << G4endl; + G4cout << "Region <" << region->GetName() << "> -- appears in <" + << region->GetWorldPhysical()->GetName() << "> world volume" << G4endl; + if(region->GetWorldPhysical()!=currentWorld) + { + G4cout << G4endl; + return; + } G4cout << " Materials : "; std::vector::const_iterator mItr = region->GetMaterialIterator(); size_t nMaterial = region->GetNumberOfMaterials(); diff --git a/source/run/src/G4RunMessenger.cc b/source/run/src/G4RunMessenger.cc index 109ae885c9..d168a76ea3 100644 --- a/source/run/src/G4RunMessenger.cc +++ b/source/run/src/G4RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunMessenger.cc,v 1.20 2003/11/04 01:58:29 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RunMessenger.cc,v 1.21 2005/11/09 10:06:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4RunMessenger.hh" @@ -37,7 +37,7 @@ #include "G4UImanager.hh" #include "G4ProductionCutsTable.hh" #include "G4ios.hh" -#include +#include G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) :runManager(runMgr) @@ -242,7 +242,7 @@ void G4RunMessenger::SetNewValue(G4UIcommand * command,G4String newValue) G4int nev; G4int ns; const char* nv = (const char*)newValue; - std::istrstream is((char*)nv); + std::istringstream is(nv); is >> nev >> macroFileName >> ns; if(macroFileName=="***NULL***") { runManager->BeamOn(nev); } diff --git a/source/run/src/G4UserPhysicsListMessenger.cc b/source/run/src/G4UserPhysicsListMessenger.cc index 682a73775a..dda181a71c 100644 --- a/source/run/src/G4UserPhysicsListMessenger.cc +++ b/source/run/src/G4UserPhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UserPhysicsListMessenger.cc,v 1.24 2004/11/01 16:47:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UserPhysicsListMessenger.cc,v 1.25 2005/11/09 10:06:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -46,6 +46,7 @@ #include "G4ios.hh" #include "G4Tokenizer.hh" +#include G4UserPhysicsListMessenger::G4UserPhysicsListMessenger(G4VUserPhysicsList* pParticleList):thePhysicsList(pParticleList) { @@ -209,7 +210,7 @@ void G4UserPhysicsListMessenger::SetNewValue(G4UIcommand * command,G4String newV //G4String cValue = G4String(next())+" "+G4String(next()); //G4double newCut = setCutCmd->GetNewDoubleValue(cValue); //thePhysicsList->SetCutsForRegion(newCut,rName); - std::istrstream is(newValue); + std::istringstream is(newValue); char regName[50]; G4double cVal; char uniName[10]; diff --git a/source/run/src/G4UserRunAction.cc b/source/run/src/G4UserRunAction.cc index 1373d02d60..5c6b9f25ec 100644 --- a/source/run/src/G4UserRunAction.cc +++ b/source/run/src/G4UserRunAction.cc @@ -21,14 +21,30 @@ // ******************************************************************** // // -// $Id: G4UserRunAction.cc,v 1.6 2003/05/21 21:06:01 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UserRunAction.cc,v 1.7 2005/11/22 19:54:53 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4UserRunAction.hh" +#include "G4ParticleTable.hh" +#include "globals.hh" + G4UserRunAction::G4UserRunAction() -{;} +{ + if(!(G4ParticleTable::GetParticleTable()->GetReadiness())) + { + G4String msg; + msg = " You are instantiating G4UserRunAction BEFORE your G4VUserPhysicsList is\n"; + msg += "instantiated and assigned to G4RunManager.\n"; + msg += " Such an instantiation is prohibited by Geant4 version 8.0. To fix this problem,\n"; + msg += "please make sure that your main() instantiates G4VUserPhysicsList AND\n"; + msg += "set it to G4RunManager before instantiating other user action classes\n"; + msg += "such as G4UserRunAction."; + G4Exception("G4UserRunAction::G4UserRunAction()", + "Run0002",FatalException,msg); + } +} G4UserRunAction::~G4UserRunAction() {;} diff --git a/source/run/src/G4VModularPhysicsList.cc b/source/run/src/G4VModularPhysicsList.cc index 4c67886771..989438f191 100644 --- a/source/run/src/G4VModularPhysicsList.cc +++ b/source/run/src/G4VModularPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: G4VModularPhysicsList.cc,v 1.2 2002/05/29 12:11:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/src/G4VPersistencyManager.cc b/source/run/src/G4VPersistencyManager.cc index 63b3006199..5e8457be10 100644 --- a/source/run/src/G4VPersistencyManager.cc +++ b/source/run/src/G4VPersistencyManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPersistencyManager.cc,v 1.4 2001/07/13 15:57:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VPersistencyManager.hh" diff --git a/source/run/src/G4VUserDetectorConstruction.cc b/source/run/src/G4VUserDetectorConstruction.cc index a501fdd25b..77e1232c18 100644 --- a/source/run/src/G4VUserDetectorConstruction.cc +++ b/source/run/src/G4VUserDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserDetectorConstruction.cc,v 1.3 2001/07/11 10:08:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VUserDetectorConstruction.hh" diff --git a/source/run/src/G4VUserPhysicsList.cc b/source/run/src/G4VUserPhysicsList.cc index fb2263a2ca..ef245951ad 100644 --- a/source/run/src/G4VUserPhysicsList.cc +++ b/source/run/src/G4VUserPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserPhysicsList.cc,v 1.52 2005/05/09 10:02:51 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/src/G4VUserPrimaryGeneratorAction.cc b/source/run/src/G4VUserPrimaryGeneratorAction.cc index f4513e8e0c..3315185cd1 100644 --- a/source/run/src/G4VUserPrimaryGeneratorAction.cc +++ b/source/run/src/G4VUserPrimaryGeneratorAction.cc @@ -21,14 +21,29 @@ // ******************************************************************** // // -// $Id: G4VUserPrimaryGeneratorAction.cc,v 1.3 2001/07/11 10:08:34 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VUserPrimaryGeneratorAction.cc,v 1.4 2005/11/22 19:54:53 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VUserPrimaryGeneratorAction.hh" +#include "G4ParticleTable.hh" +#include "globals.hh" G4VUserPrimaryGeneratorAction::G4VUserPrimaryGeneratorAction() -{;} +{ + if(!(G4ParticleTable::GetParticleTable()->GetReadiness())) + { + G4String msg; + msg = " You are instantiating G4VUserPrimaryGeneratorAction BEFORE your\n"; + msg += "G4VUserPhysicsList is instantiated and assigned to G4RunManager.\n"; + msg += " Such an instantiation is prohibited by Geant4 version 8.0. To fix this problem,\n"; + msg += "please make sure that your main() instantiates G4VUserPhysicsList AND\n"; + msg += "set it to G4RunManager before instantiating other user action classes\n"; + msg += "such as G4VUserPrimaryParticleGeneratorAction."; + G4Exception("G4VUserPrimaryGeneratorAction::G4VUserPrimaryGeneratorAction()", + "Run0001",FatalException,msg); + } +} G4VUserPrimaryGeneratorAction::~G4VUserPrimaryGeneratorAction() {;} diff --git a/source/track/History b/source/track/History index 6d676a1ad4..6a1092fadc 100644 --- a/source/track/History +++ b/source/track/History @@ -1,4 +1,4 @@ -$Id: History,v 1.79 2005/05/30 18:23:35 vnivanch Exp $ +$Id: History,v 1.82 2005/12/05 17:19:02 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 05, 05 mma (track-V07-01-02) +- G4ParticleChangeForGamma : apply UpdateStepForPostStep in any case + +Nov 26, 05 H.Kurashige (track-V07-01-01) +- Fix GetVelocity : use the material pointer in PreStepPoint + May 30, 05 V.Ivantchenko (track-V07-00-02) - Fix in G4ParticleChangeForGamma : add UpdateStepForAtRest method diff --git a/source/track/include/G4ForceCondition.hh b/source/track/include/G4ForceCondition.hh index 6c28951065..106ca15c1a 100644 --- a/source/track/include/G4ForceCondition.hh +++ b/source/track/include/G4ForceCondition.hh @@ -22,7 +22,7 @@ // // // $Id: G4ForceCondition.hh,v 1.4 2002/10/31 23:41:52 tsasaki Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4GPILSelection.hh b/source/track/include/G4GPILSelection.hh index 992637773f..2c8084274a 100644 --- a/source/track/include/G4GPILSelection.hh +++ b/source/track/include/G4GPILSelection.hh @@ -22,7 +22,7 @@ // // // $Id: G4GPILSelection.hh,v 1.3 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4ParticleChange.hh b/source/track/include/G4ParticleChange.hh index 72e9d7c7ca..9a950a8608 100644 --- a/source/track/include/G4ParticleChange.hh +++ b/source/track/include/G4ParticleChange.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChange.hh,v 1.11 2004/10/19 00:51:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChange.icc b/source/track/include/G4ParticleChange.icc index 947899eb9b..831f51b989 100644 --- a/source/track/include/G4ParticleChange.icc +++ b/source/track/include/G4ParticleChange.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChange.icc,v 1.12 2004/12/02 06:38:00 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // inline diff --git a/source/track/include/G4ParticleChangeForDecay.hh b/source/track/include/G4ParticleChangeForDecay.hh index 327b088226..e1678ef55c 100644 --- a/source/track/include/G4ParticleChangeForDecay.hh +++ b/source/track/include/G4ParticleChangeForDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForDecay.hh,v 1.8 2004/10/19 00:51:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/track/include/G4ParticleChangeForGamma.hh b/source/track/include/G4ParticleChangeForGamma.hh index 820709557a..2b4d21fdd4 100644 --- a/source/track/include/G4ParticleChangeForGamma.hh +++ b/source/track/include/G4ParticleChangeForGamma.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleChangeForGamma.hh,v 1.3 2005/05/30 18:23:35 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ParticleChangeForGamma.hh,v 1.4 2005/12/05 17:19:02 maire Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ @@ -30,10 +30,11 @@ // // // ------------------------------------------------------------ -// 15 April 2005 V.Ivanchenko for gamma EM processes +// 15 April 2005 V.Ivanchenko for gamma EM processes // -// Modified: -// 30.05.05 V.Ivanchenko add UpdateStepForAtRest +// Modified: +// 30.05.05 : add UpdateStepForAtRest (V.Ivanchenko) +// 04.12.05 : apply UpdateStepForPostStep in any case (mma) // // ------------------------------------------------------------ // @@ -188,16 +189,16 @@ inline G4Step* G4ParticleChangeForGamma::UpdateStepForAtRest(G4Step* pStep) inline G4Step* G4ParticleChangeForGamma::UpdateStepForPostStep(G4Step* pStep) { - if(theStatusChange == fAlive) { - G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint(); - pPostStepPoint->SetKineticEnergy( proposedKinEnergy ); - pPostStepPoint->SetMomentumDirection( proposedMomentumDirection ); - pPostStepPoint->AddPolarization( proposedPolarization ); - } + G4StepPoint* pPostStepPoint = pStep->GetPostStepPoint(); + pPostStepPoint->SetKineticEnergy( proposedKinEnergy ); + pPostStepPoint->SetMomentumDirection( proposedMomentumDirection ); + pPostStepPoint->AddPolarization( proposedPolarization ); + // update weight // this feature is commented out, it should be overwritten in case // if energy loss processes will use biasing // pPostStepPoint->SetWeight( theProposedWeight ); + pStep->AddTotalEnergyDeposit( theLocalEnergyDeposit ); return pStep; } diff --git a/source/track/include/G4ParticleChangeForLoss.hh b/source/track/include/G4ParticleChangeForLoss.hh index 3fa034a8b1..475d0d679c 100644 --- a/source/track/include/G4ParticleChangeForLoss.hh +++ b/source/track/include/G4ParticleChangeForLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForLoss.hh,v 1.15 2005/04/15 06:44:25 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForMSC.icc b/source/track/include/G4ParticleChangeForMSC.icc index 31ea87e30a..39d90f8170 100644 --- a/source/track/include/G4ParticleChangeForMSC.icc +++ b/source/track/include/G4ParticleChangeForMSC.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForMSC.icc,v 1.6 2004/10/19 00:51:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/track/include/G4ParticleChangeForRadDecay.hh b/source/track/include/G4ParticleChangeForRadDecay.hh index 42e0d2594a..f30e5f743a 100644 --- a/source/track/include/G4ParticleChangeForRadDecay.hh +++ b/source/track/include/G4ParticleChangeForRadDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForRadDecay.hh,v 1.5 2003/06/03 08:56:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForTransport.hh b/source/track/include/G4ParticleChangeForTransport.hh index 1c0c8108aa..d378744326 100644 --- a/source/track/include/G4ParticleChangeForTransport.hh +++ b/source/track/include/G4ParticleChangeForTransport.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForTransport.hh,v 1.15 2004/10/19 00:51:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForTransport.icc b/source/track/include/G4ParticleChangeForTransport.icc index 98ad906d02..71bd37fc85 100644 --- a/source/track/include/G4ParticleChangeForTransport.icc +++ b/source/track/include/G4ParticleChangeForTransport.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForTransport.icc,v 1.12 2004/10/19 00:51:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // inline diff --git a/source/track/include/G4Step.hh b/source/track/include/G4Step.hh index 1fae163fde..fa42fd3397 100644 --- a/source/track/include/G4Step.hh +++ b/source/track/include/G4Step.hh @@ -22,7 +22,7 @@ // // // $Id: G4Step.hh,v 1.12 2005/02/11 19:08:23 dwright Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Step.icc b/source/track/include/G4Step.icc index 3c057a09fe..048aa77c7e 100644 --- a/source/track/include/G4Step.icc +++ b/source/track/include/G4Step.icc @@ -22,7 +22,7 @@ // // // $Id: G4Step.icc,v 1.11 2004/08/12 00:50:09 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4StepPoint.hh b/source/track/include/G4StepPoint.hh index 4988e01f6e..7ea87c5ee8 100644 --- a/source/track/include/G4StepPoint.hh +++ b/source/track/include/G4StepPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepPoint.hh,v 1.15 2004/12/02 06:38:01 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4StepPoint.icc b/source/track/include/G4StepPoint.icc index e30f504bf6..48da488f32 100644 --- a/source/track/include/G4StepPoint.icc +++ b/source/track/include/G4StepPoint.icc @@ -22,7 +22,7 @@ // // // $Id: G4StepPoint.icc,v 1.10 2004/12/02 06:38:01 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // inline const G4ThreeVector& G4StepPoint::GetPosition() const diff --git a/source/track/include/G4StepStatus.hh b/source/track/include/G4StepStatus.hh index 5314e6b294..3237c9c8e9 100644 --- a/source/track/include/G4StepStatus.hh +++ b/source/track/include/G4StepStatus.hh @@ -22,7 +22,7 @@ // // // $Id: G4StepStatus.hh,v 1.3 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4SteppingControl.hh b/source/track/include/G4SteppingControl.hh index f87d136bf2..d1d3ffeede 100644 --- a/source/track/include/G4SteppingControl.hh +++ b/source/track/include/G4SteppingControl.hh @@ -22,7 +22,7 @@ // // // $Id: G4SteppingControl.hh,v 1.3 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Track.hh b/source/track/include/G4Track.hh index b6caf9061e..4e1893b668 100644 --- a/source/track/include/G4Track.hh +++ b/source/track/include/G4Track.hh @@ -22,7 +22,7 @@ // // // $Id: G4Track.hh,v 1.17 2004/12/02 06:38:01 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Track.icc b/source/track/include/G4Track.icc index b7b3c995e6..ee2a60d117 100644 --- a/source/track/include/G4Track.icc +++ b/source/track/include/G4Track.icc @@ -22,7 +22,7 @@ // // // $Id: G4Track.icc,v 1.13 2004/06/11 14:28:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //----------------------------------------------------------------- // Definitions of inline functions diff --git a/source/track/include/G4TrackFastVector.hh b/source/track/include/G4TrackFastVector.hh index e82da37ced..0b5bea33ae 100644 --- a/source/track/include/G4TrackFastVector.hh +++ b/source/track/include/G4TrackFastVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackFastVector.hh,v 1.4 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4TrackStatus.hh b/source/track/include/G4TrackStatus.hh index 5819d7e720..c846d4ed5b 100644 --- a/source/track/include/G4TrackStatus.hh +++ b/source/track/include/G4TrackStatus.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackStatus.hh,v 1.3 2001/07/11 10:08:37 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4VParticleChange.hh b/source/track/include/G4VParticleChange.hh index acdf3b7ab1..57a7afd1cc 100644 --- a/source/track/include/G4VParticleChange.hh +++ b/source/track/include/G4VParticleChange.hh @@ -22,7 +22,7 @@ // // // $Id: G4VParticleChange.hh,v 1.13 2004/12/02 06:38:01 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4VParticleChange.icc b/source/track/include/G4VParticleChange.icc index b4f8505ac7..bd4403993e 100644 --- a/source/track/include/G4VParticleChange.icc +++ b/source/track/include/G4VParticleChange.icc @@ -22,7 +22,7 @@ // // // $Id: G4VParticleChange.icc,v 1.12 2004/10/19 00:51:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // remove obsolete methods of SetXXX 19 Sep, 04 H.Kurashige //---------------------------------------------------------------- diff --git a/source/track/include/G4VUserTrackInformation.hh b/source/track/include/G4VUserTrackInformation.hh index d13d2cf5ab..dc87905097 100644 --- a/source/track/include/G4VUserTrackInformation.hh +++ b/source/track/include/G4VUserTrackInformation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserTrackInformation.hh,v 1.5 2004/11/26 06:47:00 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChange.cc b/source/track/src/G4ParticleChange.cc index 7649757927..14e2b45709 100644 --- a/source/track/src/G4ParticleChange.cc +++ b/source/track/src/G4ParticleChange.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChange.cc,v 1.27 2004/12/02 06:38:02 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForDecay.cc b/source/track/src/G4ParticleChangeForDecay.cc index 85e66076e3..28665db061 100644 --- a/source/track/src/G4ParticleChangeForDecay.cc +++ b/source/track/src/G4ParticleChangeForDecay.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForDecay.cc,v 1.10 2004/09/21 21:32:32 gum Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForGamma.cc b/source/track/src/G4ParticleChangeForGamma.cc index 8a02c80412..034ac5b91d 100644 --- a/source/track/src/G4ParticleChangeForGamma.cc +++ b/source/track/src/G4ParticleChangeForGamma.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForGamma.cc,v 1.1 2005/04/14 18:00:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForLoss.cc b/source/track/src/G4ParticleChangeForLoss.cc index a0abb1de3b..4fe3bc1b42 100644 --- a/source/track/src/G4ParticleChangeForLoss.cc +++ b/source/track/src/G4ParticleChangeForLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForLoss.cc,v 1.14 2005/04/14 17:59:38 vnivanch Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForMSC.cc b/source/track/src/G4ParticleChangeForMSC.cc index b0ac8f926c..05974ea04f 100644 --- a/source/track/src/G4ParticleChangeForMSC.cc +++ b/source/track/src/G4ParticleChangeForMSC.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForMSC.cc,v 1.12 2004/12/02 06:38:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChangeForTransport.cc b/source/track/src/G4ParticleChangeForTransport.cc index c70e19fa48..70c66554c3 100644 --- a/source/track/src/G4ParticleChangeForTransport.cc +++ b/source/track/src/G4ParticleChangeForTransport.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForTransport.cc,v 1.17 2004/08/12 00:50:11 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4Step.cc b/source/track/src/G4Step.cc index ecfa02e289..24feb093fc 100644 --- a/source/track/src/G4Step.cc +++ b/source/track/src/G4Step.cc @@ -22,7 +22,7 @@ // // // $Id: G4Step.cc,v 1.5 2001/07/11 10:08:39 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4StepPoint.cc b/source/track/src/G4StepPoint.cc index 5223ec3a70..eb5cfaebe6 100644 --- a/source/track/src/G4StepPoint.cc +++ b/source/track/src/G4StepPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4StepPoint.cc,v 1.10 2004/08/12 00:50:11 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4Track.cc b/source/track/src/G4Track.cc index 5b071cc4ac..14570466f9 100644 --- a/source/track/src/G4Track.cc +++ b/source/track/src/G4Track.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Track.cc,v 1.24 2005/06/27 15:32:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Track.cc,v 1.26 2005/11/24 16:54:53 japost Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -167,10 +167,14 @@ G4double G4Track::GetVelocity() const // special case for photons if ( (fOpticalPhoton !=0) && (fpDynamicParticle->GetDefinition()==fOpticalPhoton) ){ - - G4Material* + + G4Material* mat=0; + if ( this->GetStep() ){ + mat= this->GetMaterial(); // Fix for repeated volumes + }else{ mat=fpTouchable->GetVolume()->GetLogicalVolume()->GetMaterial(); - + } + if(mat->GetMaterialPropertiesTable() != 0){ // light velocity = c/(rindex+d(rindex)/d(log(E_phot))) // values stored in GROUPVEL material properties vector diff --git a/source/track/src/G4VParticleChange.cc b/source/track/src/G4VParticleChange.cc index 7629ffcf1c..c6dae9103a 100644 --- a/source/track/src/G4VParticleChange.cc +++ b/source/track/src/G4VParticleChange.cc @@ -22,7 +22,7 @@ // // // $Id: G4VParticleChange.cc,v 1.17 2004/12/02 06:38:21 kurasige Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/track/src/G4VUserTrackInformation.cc b/source/track/src/G4VUserTrackInformation.cc index f62ea92277..933c3b16b5 100644 --- a/source/track/src/G4VUserTrackInformation.cc +++ b/source/track/src/G4VUserTrackInformation.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserTrackInformation.cc,v 1.1 2004/11/26 06:47:00 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // -------------------------------------------------------------- diff --git a/source/tracking/History b/source/tracking/History index 0aa1f2b411..2dc43d14f9 100644 --- a/source/tracking/History +++ b/source/tracking/History @@ -1,4 +1,5 @@ -$Id: History,v 1.90 2005/05/04 09:07:05 allison Exp $ +$Id: History,v 1.98 2005/11/27 17:54:39 perl Exp $ +$Name: geant4-08-00 $ ------------------------------------------------------------------- ========================================================= @@ -16,7 +17,28 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Last checked in at $Date: 2005/11/27 17:54:39 $ by $Author: perl $ +24 November 2005 J. Allison (tracking-V07-01-05) +- Added G4RichTrajectory and G4RichTrajectoryPoint. +- Updated comments in G4VTrajectory.hh and G4VTrajectoryPoint.hh + +22 November 2005 M. Asai (tracking-V07-01-04) +- Put G4Exception to the constructors of G4UsertrackingAction and G4UserSteppingAction + to protect against their instantiation before G4VUserPhysicsList is instantiated and set to + G4RunManager. + +21 November 2005 M. Asai (tracking-V07-01-03) +- Migration to sstream. + +14 November 2005 Jane Tinslay (tracking-V07-01-02) +- Modifications to G4VTrajectory::DrawTrajectory for enhanced + trajectory drawing. + +21 September 2005 T. Sasaki(tracking-V07-01-01) +- fix for fastsimulation problem in G4SteppingManager2.cc +19 July 2005 T. Sasaki (tracking-V07-01-00) +- fix for the bug in InvokeAlongStepDoItProcs() 3rd May 2005 John Allison (tracking-V07-00-01 - needs greps-V07-00-04) - Corrected AttDefs. - Made use of G4AttCheck. diff --git a/source/tracking/include/G4RichTrajectory.hh b/source/tracking/include/G4RichTrajectory.hh new file mode 100644 index 0000000000..a2ed98f183 --- /dev/null +++ b/source/tracking/include/G4RichTrajectory.hh @@ -0,0 +1,119 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RichTrajectory.hh,v 1.1 2005/11/24 12:47:36 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// +// G4RichTrajectory.hh +// +// class description: +// This class extends G4Trajectory, which includes the following: +// 1) List of trajectory points which compose the trajectory, +// 2) static information of particle which generated the +// trajectory, +// 3) trackID and parent particle ID of the trajectory. +// The extended information, only publicly accessible through AttValues, +// includes: +// 4) physical volume and next physical volume; +// 5) creator process; +// +// Contact: +// Questions and comments on G4Trajectory should be sent to +// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) +// Makoto Asai (e-mail: asai@kekvax.kek.jp) +// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) +// and on the extended code to: +// John Allison (e-mail: John.Allison@manchester.ac.uk) +// Joseph Perl (e-mail: perl@slac.stanford.edu) +// +// --------------------------------------------------------------- + +#ifndef G4RICHTRAJECTORY_HH +#define G4RICHTRAJECTORY_HH + +#include "G4Trajectory.hh" + +typedef std::vector RichTrajectoryPointsContainer; + +class G4RichTrajectory : public G4Trajectory { + +public: // with description + + // Constructors/destructors + G4RichTrajectory(); + G4RichTrajectory(const G4Track* aTrack); + G4RichTrajectory(G4RichTrajectory &); + virtual ~G4RichTrajectory(); + + // Operators + inline void* operator new(size_t); + inline void operator delete(void*); + inline int operator == (const G4RichTrajectory& right) const + {return (this==&right);} + + // Other (virtual) member functions + void AppendStep(const G4Step* aStep); + void MergeTrajectory(G4VTrajectory* secondTrajectory); + int GetPointEntries() const { return fpRichPointsContainer->size(); } + G4VTrajectoryPoint* GetPoint(G4int i) const + { return (*fpRichPointsContainer)[i]; } + + // Get methods for HepRep style attributes + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; + +private: + + // Extended information (only publicly accessible through AttValues)... + RichTrajectoryPointsContainer* fpRichPointsContainer; + G4VPhysicalVolume* fpInitialVolume; + G4VPhysicalVolume* fpInitialNextVolume; + const G4VProcess* fpCreatorProcess; + +}; + +#if defined G4TRACKING_ALLOC_EXPORT +extern G4DLLEXPORT G4Allocator +aRichTrajectoryAllocator; +#else +extern G4DLLIMPORT G4Allocator +aRichTrajectoryAllocator; +#endif + +inline void* G4RichTrajectory::operator new(size_t) +{ + void* aRichTrajectory; + aRichTrajectory = (void*)aRichTrajectoryAllocator.MallocSingle(); + return aRichTrajectory; +} + +inline void G4RichTrajectory::operator delete(void* aRichTrajectory) +{ + aRichTrajectoryAllocator.FreeSingle + ((G4RichTrajectory*)aRichTrajectory); +} + +#endif diff --git a/source/tracking/include/G4RichTrajectoryPoint.hh b/source/tracking/include/G4RichTrajectoryPoint.hh new file mode 100644 index 0000000000..55d5c2f36a --- /dev/null +++ b/source/tracking/include/G4RichTrajectoryPoint.hh @@ -0,0 +1,114 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RichTrajectoryPoint.hh,v 1.1 2005/11/24 12:47:36 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +//--------------------------------------------------------------- +// +// G4RichTrajectoryPoint.hh +// +// class description: +// This class extends G4TrajectoryPoint. +// From G4Trajectory, the following information is included: +// 1) Position (end of step). +// The extended information, only publicly accessible through AttValues, +// includes: +// 2) Total energy deposit. +// 3) Procees defining end of step. +// +// Contact: +// Questions and comments to this code should be sent to +// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) +// Makoto Asai (e-mail: asai@kekvax.kek.jp) +// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) +// and on the extended code to: +// John Allison (e-mail: John.Allison@manchester.ac.uk) +// Joseph Perl (e-mail: perl@slac.stanford.edu) +// +// --------------------------------------------------------------- + +#ifndef G4RICHTRAJECTORYPOINT_HH +#define G4RICHTRAJECTORYPOINT_HH + +#include "G4TrajectoryPoint.hh" + +class G4Track; +class G4Step; +class G4VProcess; + +class G4RichTrajectoryPoint : public G4TrajectoryPoint +{ + +public: // without description + + // Constructor/Destructor + G4RichTrajectoryPoint(); + G4RichTrajectoryPoint(const G4Track*); + G4RichTrajectoryPoint(const G4Step*); + G4RichTrajectoryPoint(const G4RichTrajectoryPoint &right); + virtual ~G4RichTrajectoryPoint(); + + // Operators + inline void *operator new(size_t); + inline void operator delete(void *aRichTrajectoryPoint); + inline int operator==(const G4RichTrajectoryPoint& right) const + { return (this==&right); }; + + // Get methods for HepRep style attributes + virtual const std::map* GetAttDefs() const; + virtual std::vector* CreateAttValues() const; + +private: + + // Extended member data + G4double fTotEDep; + const G4VProcess* fpProcess; +}; + +#if defined G4TRACKING_ALLOC_EXPORT +extern G4DLLEXPORT G4Allocator +aRichTrajectoryPointAllocator; +#else +extern G4DLLIMPORT G4Allocator +aRichTrajectoryPointAllocator; +#endif + +inline void* G4RichTrajectoryPoint::operator new(size_t) +{ + void *aRichTrajectoryPoint; + aRichTrajectoryPoint = + (void *) aRichTrajectoryPointAllocator.MallocSingle(); + return aRichTrajectoryPoint; +} + +inline void G4RichTrajectoryPoint::operator delete +(void *aRichTrajectoryPoint) +{ + aRichTrajectoryPointAllocator.FreeSingle + ((G4RichTrajectoryPoint *) aRichTrajectoryPoint); +} + +#endif + diff --git a/source/tracking/include/G4SmoothTrajectory.hh b/source/tracking/include/G4SmoothTrajectory.hh index 002d253f58..f5cd940540 100644 --- a/source/tracking/include/G4SmoothTrajectory.hh +++ b/source/tracking/include/G4SmoothTrajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmoothTrajectory.hh,v 1.8 2004/06/11 14:30:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4SmoothTrajectoryPoint.hh b/source/tracking/include/G4SmoothTrajectoryPoint.hh index 5a4e80ad70..7e682f25df 100644 --- a/source/tracking/include/G4SmoothTrajectoryPoint.hh +++ b/source/tracking/include/G4SmoothTrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmoothTrajectoryPoint.hh,v 1.10 2004/06/11 14:30:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4SteppingManager.hh b/source/tracking/include/G4SteppingManager.hh index 3855aeba2c..61b53e371a 100644 --- a/source/tracking/include/G4SteppingManager.hh +++ b/source/tracking/include/G4SteppingManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4SteppingManager.hh,v 1.25 2003/12/09 08:40:17 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //--------------------------------------------------------------- // diff --git a/source/tracking/include/G4SteppingVerbose.hh b/source/tracking/include/G4SteppingVerbose.hh index 5e01ff7610..dc9ccb0c8c 100644 --- a/source/tracking/include/G4SteppingVerbose.hh +++ b/source/tracking/include/G4SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: G4SteppingVerbose.hh,v 1.9 2001/07/11 10:08:40 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackVector.hh b/source/tracking/include/G4TrackVector.hh index 663b8bba69..48fa649809 100644 --- a/source/tracking/include/G4TrackVector.hh +++ b/source/tracking/include/G4TrackVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackVector.hh,v 1.9 2003/06/16 17:13:10 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackingManager.hh b/source/tracking/include/G4TrackingManager.hh index 9cd76a619f..2487c37802 100644 --- a/source/tracking/include/G4TrackingManager.hh +++ b/source/tracking/include/G4TrackingManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrackingManager.hh,v 1.14 2002/08/13 18:14:42 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TrackingManager.hh,v 1.15 2005/04/22 10:08:58 tsasaki Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -100,7 +100,7 @@ public: // without description G4TrackVector* GimmeSecondaries() const; - void SetNavigator(G4Navigator* apValue); + // void SetNavigator(G4Navigator* apValue); void SetUserAction(G4UserTrackingAction* apAction); void SetUserAction(G4UserSteppingAction* apAction); diff --git a/source/tracking/include/G4TrackingMessenger.hh b/source/tracking/include/G4TrackingMessenger.hh index 5d2de898d7..f47b1c1f4b 100644 --- a/source/tracking/include/G4TrackingMessenger.hh +++ b/source/tracking/include/G4TrackingMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackingMessenger.hh,v 1.7 2001/07/11 10:08:41 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4Trajectory.hh b/source/tracking/include/G4Trajectory.hh index 314275cfbb..266ac6859d 100644 --- a/source/tracking/include/G4Trajectory.hh +++ b/source/tracking/include/G4Trajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4Trajectory.hh,v 1.21 2004/06/11 14:30:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrajectoryPoint.hh b/source/tracking/include/G4TrajectoryPoint.hh index f79ff9b8ab..ae6949b08f 100644 --- a/source/tracking/include/G4TrajectoryPoint.hh +++ b/source/tracking/include/G4TrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryPoint.hh,v 1.14 2004/06/11 14:30:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4UserSteppingAction.hh b/source/tracking/include/G4UserSteppingAction.hh index 4413471123..8a79bc86a9 100644 --- a/source/tracking/include/G4UserSteppingAction.hh +++ b/source/tracking/include/G4UserSteppingAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UserSteppingAction.hh,v 1.8 2003/05/21 20:41:21 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UserSteppingAction.hh,v 1.9 2005/11/22 21:04:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -56,8 +56,8 @@ public: // with description //-------- // Constructor and destructors - G4UserSteppingAction(){;} - virtual ~G4UserSteppingAction(){;} + G4UserSteppingAction(); + virtual ~G4UserSteppingAction(); // Member functions void SetSteppingManagerPointer(G4SteppingManager* pValue); diff --git a/source/tracking/include/G4UserTrackingAction.hh b/source/tracking/include/G4UserTrackingAction.hh index 8f07c23c63..48a63b3f92 100644 --- a/source/tracking/include/G4UserTrackingAction.hh +++ b/source/tracking/include/G4UserTrackingAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UserTrackingAction.hh,v 1.9 2003/05/21 20:41:21 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UserTrackingAction.hh,v 1.10 2005/11/22 21:04:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -58,8 +58,8 @@ public: // with description //-------- // Constructor & Destructor - G4UserTrackingAction(){;} - virtual ~G4UserTrackingAction(){;} + G4UserTrackingAction(); + virtual ~G4UserTrackingAction(); // Member functions void SetTrackingManagerPointer(G4TrackingManager* pValue); diff --git a/source/tracking/include/G4VSteppingVerbose.hh b/source/tracking/include/G4VSteppingVerbose.hh index 77e576db9c..1a6d41a3d4 100644 --- a/source/tracking/include/G4VSteppingVerbose.hh +++ b/source/tracking/include/G4VSteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: G4VSteppingVerbose.hh,v 1.15 2003/06/16 17:13:13 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4VTrajectory.hh b/source/tracking/include/G4VTrajectory.hh index 6cd84122b6..c3e6b59e3e 100644 --- a/source/tracking/include/G4VTrajectory.hh +++ b/source/tracking/include/G4VTrajectory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTrajectory.hh,v 1.13 2004/07/05 17:08:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTrajectory.hh,v 1.14 2005/11/24 12:47:36 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -94,14 +94,19 @@ class G4VTrajectory { return 0; } // If implemented by a derived class, returns a pointer to a map of // attribute definitions for the attribute values below. The user - // must test the validity of this pointer. + // must test the validity of this pointer. See G4Trajectory for an + // example of a concrete implementation of this method. virtual std::vector* CreateAttValues() const { return 0; } // If implemented by a derived class, returns a pointer to a list // of attribute values suitable, e.g., for picking. Each must // refer to an attribute definition in the above map; its name is - // the key. The user must test the validity of this pointer and - // delete the list after use. + // the key. The user must test the validity of this pointer (it + // must be non-zero and conform to the G4AttDefs, which may be + // checked with G4AttCheck) and delete the list after use. See + // G4Trajectory for an example of a concrete implementation of this + // method and G4VTrajectory::ShowTrajectory for an example of its + // use. public: // Following methods MUST be invoked exclusively by G4TrackingManager diff --git a/source/tracking/include/G4VTrajectoryPoint.hh b/source/tracking/include/G4VTrajectoryPoint.hh index eca8c345b5..2aa40544f7 100644 --- a/source/tracking/include/G4VTrajectoryPoint.hh +++ b/source/tracking/include/G4VTrajectoryPoint.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTrajectoryPoint.hh,v 1.11 2004/07/05 17:08:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTrajectoryPoint.hh,v 1.12 2005/11/24 12:47:36 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -74,7 +74,8 @@ class G4VTrajectoryPoint { return 0; } // If implemented by a derived class, returns a pointer to a map of // attribute definitions for the attribute values below. The user - // must test the validity of this pointer. + // must test the validity of this pointer. See G4Trajectory for an + // example of a concrete implementation of this method. // Get method for HEPRep style attribute values virtual std::vector* CreateAttValues() const @@ -82,8 +83,12 @@ class G4VTrajectoryPoint // If implemented by a derived class, returns a pointer to a list // of attribute values suitable, e.g., for picking. Each must // refer to an attribute definition in the above map; its name is - // the key. The user must test the validity of this pointer and - // delete the list after use. + // the key. The user must test the validity of this pointer (it + // must be non-zero and conform to the G4AttDefs, which may be + // checked with G4AttCheck) and delete the list after use. See + // G4Trajectory for an example of a concrete implementation of this + // method and G4VTrajectory::ShowTrajectory for an example of its + // use. }; diff --git a/source/tracking/src/G4RichTrajectory.cc b/source/tracking/src/G4RichTrajectory.cc new file mode 100644 index 0000000000..a563658234 --- /dev/null +++ b/source/tracking/src/G4RichTrajectory.cc @@ -0,0 +1,178 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RichTrajectory.cc,v 1.1 2005/11/24 12:47:36 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// --------------------------------------------------------------- +// +// G4RichTrajectory.cc +// +// Contact: +// Questions and comments on G4Trajectory, on which this is based, +// should be sent to +// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) +// Makoto Asai (e-mail: asai@kekvax.kek.jp) +// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) +// and on the extended code to: +// John Allison (e-mail: John.Allison@manchester.ac.uk) +// Joseph Perl (e-mail: perl@slac.stanford.edu) +// +// --------------------------------------------------------------- + +#include "G4RichTrajectory.hh" +#include "G4RichTrajectoryPoint.hh" +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4VProcess.hh" + +//#define G4ATTDEBUG +#ifdef G4ATTDEBUG +#include "G4AttCheck.hh" +#endif + +G4Allocator aRichTrajectoryAllocator; + +G4RichTrajectory::G4RichTrajectory() {} + +G4RichTrajectory::G4RichTrajectory(const G4Track* aTrack): + G4Trajectory(aTrack) // Note: this initialises the base class data + // members and, unfortunately but never mind, + // creates a G4TrajectoryPoint in + // TrajectoryPointContainer that we cannot + // access because it's private. We store the + // same information (plus more) in a + // G4RichTrajectoryPoint in the + // RichTrajectoryPointsContainer +{ + fpInitialVolume = aTrack->GetVolume(); + fpInitialNextVolume = aTrack->GetNextVolume(); + fpCreatorProcess = aTrack->GetCreatorProcess(); + fpRichPointsContainer = new RichTrajectoryPointsContainer; + // Insert the first rich trajectory point (see note above)... + fpRichPointsContainer->push_back(new G4RichTrajectoryPoint(aTrack)); +} + +G4RichTrajectory::G4RichTrajectory(G4RichTrajectory & right): + G4Trajectory(right) +{ + fpInitialVolume = right.fpInitialVolume; + fpInitialNextVolume = right.fpInitialNextVolume; + fpCreatorProcess = right.fpCreatorProcess; + fpRichPointsContainer = new RichTrajectoryPointsContainer; + for(size_t i=0;isize();i++) + { + G4RichTrajectoryPoint* rightPoint = + (G4RichTrajectoryPoint*)((*(right.fpRichPointsContainer))[i]); + fpRichPointsContainer->push_back(new G4RichTrajectoryPoint(*rightPoint)); + } +} + +G4RichTrajectory::~G4RichTrajectory() +{ + // fpRichPointsContainer->clearAndDestroy(); + size_t i; + for(i=0;isize();i++){ + delete (*fpRichPointsContainer)[i]; + } + fpRichPointsContainer->clear(); + + delete fpRichPointsContainer; +} + +void G4RichTrajectory::AppendStep(const G4Step* aStep) +{ + fpRichPointsContainer->push_back(new G4RichTrajectoryPoint(aStep)); +} + +void G4RichTrajectory::MergeTrajectory(G4VTrajectory* secondTrajectory) +{ + if(!secondTrajectory) return; + + G4Trajectory::MergeTrajectory(secondTrajectory); + + G4RichTrajectory* seco = (G4RichTrajectory*)secondTrajectory; + G4int ent = seco->GetPointEntries(); + for(G4int i=1;ipush_back((*(seco->fpRichPointsContainer))[i]); + // fpRichPointsContainer->push_back(seco->fpRichPointsContainer->removeAt(1)); + } + delete (*seco->fpRichPointsContainer)[0]; + seco->fpRichPointsContainer->clear(); +} + +const std::map* G4RichTrajectory::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("G4RichTrajectory",isNew); + if (isNew) { + + *store = *(G4Trajectory::GetAttDefs()); + + G4String ID; + + ID = "IVN"; + (*store)[ID] = G4AttDef(ID,"Initial Volume Name", + "Bookkeeping","","G4String"); + + ID = "INVN"; + (*store)[ID] = G4AttDef(ID,"Initial Next Volume Name", + "Bookkeeping","","G4String"); + + ID = "CPN"; + (*store)[ID] = G4AttDef(ID,"Creator Process Name", + "Bookkeeping","","G4String"); + + ID = "CPTN"; + (*store)[ID] = G4AttDef(ID,"Creator Process Type Name", + "Bookkeeping","","G4String"); + + } + + return store; +} + +std::vector* G4RichTrajectory::CreateAttValues() const +{ + std::vector* values = G4Trajectory::CreateAttValues(); + + values->push_back(G4AttValue("IVN",fpInitialVolume->GetName(),"")); + + values->push_back(G4AttValue("INVN",fpInitialNextVolume->GetName(),"")); + + if (fpCreatorProcess) { + values->push_back(G4AttValue("CPN",fpCreatorProcess->GetProcessName(),"")); + G4ProcessType type = fpCreatorProcess->GetProcessType(); + values->push_back(G4AttValue("CPTN",G4VProcess::GetProcessTypeName(type),"")); + } + +#ifdef G4ATTDEBUG + G4cout << G4AttCheck(values,GetAttDefs()); +#endif + + return values; +} diff --git a/source/tracking/src/G4RichTrajectoryPoint.cc b/source/tracking/src/G4RichTrajectoryPoint.cc new file mode 100644 index 0000000000..4590f75550 --- /dev/null +++ b/source/tracking/src/G4RichTrajectoryPoint.cc @@ -0,0 +1,135 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RichTrajectoryPoint.cc,v 1.1 2005/11/24 12:47:36 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// --------------------------------------------------------------- +// +// G4RichTrajectoryPoint.cc +// +// Contact: +// Questions and comments on G4TrajectoryPoint, on which this is based, +// should be sent to +// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp) +// Makoto Asai (e-mail: asai@kekvax.kek.jp) +// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp) +// and on the extended code to: +// John Allison (e-mail: John.Allison@manchester.ac.uk) +// Joseph Perl (e-mail: perl@slac.stanford.edu) +// +// --------------------------------------------------------------- + +#include "G4RichTrajectoryPoint.hh" + +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4VProcess.hh" + +#include "G4AttDefStore.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" +#include "G4UnitsTable.hh" + +//#define G4ATTDEBUG +#ifdef G4ATTDEBUG +#include "G4AttCheck.hh" +#endif + +G4Allocator aRichTrajectoryPointAllocator; + +G4RichTrajectoryPoint::G4RichTrajectoryPoint(): + fTotEDep(0.), + fpProcess(0) +{} + +G4RichTrajectoryPoint::G4RichTrajectoryPoint(const G4Track* aTrack): + G4TrajectoryPoint(aTrack->GetPosition()), + fTotEDep(0.), + fpProcess(0) +{} + +G4RichTrajectoryPoint::G4RichTrajectoryPoint(const G4Step* aStep): + G4TrajectoryPoint(aStep->GetPostStepPoint()->GetPosition()), + fTotEDep(aStep->GetTotalEnergyDeposit()), + fpProcess(aStep->GetPostStepPoint()->GetProcessDefinedStep()) +{} + +G4RichTrajectoryPoint::G4RichTrajectoryPoint +(const G4RichTrajectoryPoint &right): + G4TrajectoryPoint(right) +{} + +G4RichTrajectoryPoint::~G4RichTrajectoryPoint() +{} + +const std::map* +G4RichTrajectoryPoint::GetAttDefs() const +{ + G4bool isNew; + std::map* store + = G4AttDefStore::GetInstance("G4RichTrajectoryPoint",isNew); + if (isNew) { + *store = *(G4TrajectoryPoint::GetAttDefs()); + + G4String ID; + + ID = "TED"; + (*store)[ID] = G4AttDef(ID,"Total Energy Deposit", + "Physics","G4BestUnit","G4double"); + ID = "PDS"; + (*store)[ID] = G4AttDef(ID,"Process Defined Step", + "Bookkeeping","","G4String"); + ID = "PTDS"; + (*store)[ID] = G4AttDef(ID,"Process Type Defined Step", + "Bookkeeping","","G4String"); + } + return store; +} + +std::vector* G4RichTrajectoryPoint::CreateAttValues() const +{ + std::vector* values = G4TrajectoryPoint::CreateAttValues(); + + values->push_back(G4AttValue("TED",G4BestUnit(fTotEDep,"Energy"),"")); + + if (fpProcess) { + values->push_back + (G4AttValue("PDS",fpProcess->GetProcessName(),"")); + values->push_back + (G4AttValue + ("PTDS",G4VProcess::GetProcessTypeName(fpProcess->GetProcessType()), + "")); + } else { + values->push_back + (G4AttValue("PDS","User Defined Limit in Current Volume","")); + values->push_back(G4AttValue("PTDS","User","")); + } + +#ifdef G4ATTDEBUG + G4cout << G4AttCheck(values,GetAttDefs()); +#endif + + return values; +} diff --git a/source/tracking/src/G4SmoothTrajectory.cc b/source/tracking/src/G4SmoothTrajectory.cc index 79aafbf497..7d4f5257dd 100644 --- a/source/tracking/src/G4SmoothTrajectory.cc +++ b/source/tracking/src/G4SmoothTrajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmoothTrajectory.cc,v 1.15 2005/05/03 17:48:51 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4SmoothTrajectoryPoint.cc b/source/tracking/src/G4SmoothTrajectoryPoint.cc index 30ad864751..9907f6392e 100644 --- a/source/tracking/src/G4SmoothTrajectoryPoint.cc +++ b/source/tracking/src/G4SmoothTrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmoothTrajectoryPoint.cc,v 1.14 2005/05/03 17:48:51 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4SteppingManager.cc b/source/tracking/src/G4SteppingManager.cc index 478fa20742..5ae11cf36e 100644 --- a/source/tracking/src/G4SteppingManager.cc +++ b/source/tracking/src/G4SteppingManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4SteppingManager.cc,v 1.33 2004/08/12 00:50:11 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4SteppingManager2.cc b/source/tracking/src/G4SteppingManager2.cc index 33edd7c3fb..415f857003 100644 --- a/source/tracking/src/G4SteppingManager2.cc +++ b/source/tracking/src/G4SteppingManager2.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager2.cc,v 1.23 2004/12/07 09:16:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4SteppingManager2.cc,v 1.25 2005/09/21 09:49:15 tsasaki Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -167,7 +167,12 @@ void G4SteppingManager::GetProcessNumber() ->SetProcessDefinedStep(fCurrentProcess); } } - if (fCondition==ExclusivelyForced) return; // Take note the 'return' at here !!! + if (fCondition==ExclusivelyForced) { + for(size_t nrest=np+1; nrest < MAXofPostStepLoops; nrest++){ + (*fSelectedPostStepDoItVector)[nrest] = InActivated; + } + return; // Take note the 'return' at here !!! + } } if(fPostStepDoItProcTriggered0, otherwise set fStopButAlive - // fTrack->SetTrackStatus( fParticleChange->GetTrackStatus() ); + fTrack->SetTrackStatus( fParticleChange->GetTrackStatus() ); // clear ParticleChange fParticleChange->Clear(); diff --git a/source/tracking/src/G4SteppingVerbose.cc b/source/tracking/src/G4SteppingVerbose.cc index 8d431d0ebd..acfc51ac0d 100644 --- a/source/tracking/src/G4SteppingVerbose.cc +++ b/source/tracking/src/G4SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: G4SteppingVerbose.cc,v 1.16 2004/07/08 03:46:43 amako Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4TrackingManager.cc b/source/tracking/src/G4TrackingManager.cc index 213a09aab2..28c428fd64 100644 --- a/source/tracking/src/G4TrackingManager.cc +++ b/source/tracking/src/G4TrackingManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrackingManager.cc,v 1.15 2003/11/18 18:39:39 asaim Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TrackingManager.cc,v 1.16 2005/11/21 23:37:19 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -106,7 +106,7 @@ void G4TrackingManager::ProcessOneTrack(G4Track* apValueG4Track) fpTrack->SetStep(fpSteppingManager->GetStep()); // Inform beginning of tracking to physics processes - fpTrack->GetDefinition()->GetProcessManager()->StartTracking(); + fpTrack->GetDefinition()->GetProcessManager()->StartTracking(fpTrack); // Track the particle Step-by-Step while it is alive G4StepStatus stepStatus; diff --git a/source/tracking/src/G4TrackingMessenger.cc b/source/tracking/src/G4TrackingMessenger.cc index 259181f87f..32b72d0947 100644 --- a/source/tracking/src/G4TrackingMessenger.cc +++ b/source/tracking/src/G4TrackingMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrackingMessenger.cc,v 1.9 2003/06/16 17:13:23 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4TrackingMessenger.cc,v 1.10 2005/11/21 23:37:19 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- @@ -52,8 +52,6 @@ #include "G4TrackStatus.hh" #include "G4ios.hh" -#include - /////////////////////////////////////////////////////////////////// G4TrackingMessenger::G4TrackingMessenger(G4TrackingManager * trMan) /////////////////////////////////////////////////////////////////// @@ -116,11 +114,7 @@ void G4TrackingMessenger::SetNewValue(G4UIcommand * command,G4String newValues) /////////////////////////////////////////////////////////////////////////////// { if( command == VerboseCmd ){ - G4int vl; - const char* t = newValues; - std::istrstream is((char*)t); - is >> vl; - trackingManager->SetVerboseLevel(vl); + trackingManager->SetVerboseLevel(VerboseCmd->ConvertToInt(newValues)); } if( command == AbortCmd ){ @@ -133,11 +127,7 @@ void G4TrackingMessenger::SetNewValue(G4UIcommand * command,G4String newValues) } if( command == StoreTrajectoryCmd ){ - G4int vl; - const char* t = newValues; - std::istrstream is((char*)t); - is >> vl; - trackingManager->SetStoreTrajectory(vl!=0); + trackingManager->SetStoreTrajectory(StoreTrajectoryCmd->ConvertToBool(newValues)); } } @@ -147,10 +137,7 @@ G4String G4TrackingMessenger::GetCurrentValue(G4UIcommand * command) //////////////////////////////////////////////////////////////////// { if( command == VerboseCmd ){ - char line[100]; - std::ostrstream os(line,100); - os << trackingManager->GetVerboseLevel() << '\0'; - return G4String(line); + return VerboseCmd->ConvertToString(trackingManager->GetVerboseLevel()); } else if( command == StoreTrajectoryCmd ){ G4String ll = "0"; diff --git a/source/tracking/src/G4Trajectory.cc b/source/tracking/src/G4Trajectory.cc index 822ffaa785..824ef4005e 100644 --- a/source/tracking/src/G4Trajectory.cc +++ b/source/tracking/src/G4Trajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4Trajectory.cc,v 1.27 2005/05/03 17:48:51 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4TrajectoryPoint.cc b/source/tracking/src/G4TrajectoryPoint.cc index a3fcdaf3db..1250cdf4a7 100644 --- a/source/tracking/src/G4TrajectoryPoint.cc +++ b/source/tracking/src/G4TrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryPoint.cc,v 1.16 2005/05/03 17:48:51 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4UserSteppingAction.cc b/source/tracking/src/G4UserSteppingAction.cc index abb944a80c..60f9a57c32 100644 --- a/source/tracking/src/G4UserSteppingAction.cc +++ b/source/tracking/src/G4UserSteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UserSteppingAction.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UserSteppingAction.cc,v 1.7 2005/11/22 21:04:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- @@ -41,6 +41,31 @@ // --------------------------------------------------------------- #include "G4UserSteppingAction.hh" +#include "G4ParticleTable.hh" +#include "globals.hh" + +///////////////////////////////////////////////////////// +G4UserSteppingAction::G4UserSteppingAction() +///////////////////////////////////////////////////////// +{ + if(!(G4ParticleTable::GetParticleTable()->GetReadiness())) + { + G4String msg; + msg = " You are instantiating G4UserSteppingAction BEFORE your\n"; + msg += "G4VUserPhysicsList is instantiated and assigned to G4RunManager.\n"; + msg += " Such an instantiation is prohibited by Geant4 version 8.0. To fix this problem,\n"; + msg += "please make sure that your main() instantiates G4VUserPhysicsList AND\n"; + msg += "set it to G4RunManager before instantiating other user action classes\n"; + msg += "such as G4UserSteppingAction."; + G4Exception("G4UserSteppingAction::G4UserSteppingAction()", + "Tracking0002",FatalException,msg); + } +} + +///////////////////////////////////////////////////////// +G4UserSteppingAction::~G4UserSteppingAction() +///////////////////////////////////////////////////////// +{;} ///////////////////////////////////////////////////////// void G4UserSteppingAction:: diff --git a/source/tracking/src/G4UserTrackingAction.cc b/source/tracking/src/G4UserTrackingAction.cc index e7664f4e58..35f06e6d83 100644 --- a/source/tracking/src/G4UserTrackingAction.cc +++ b/source/tracking/src/G4UserTrackingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UserTrackingAction.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4UserTrackingAction.cc,v 1.7 2005/11/22 21:04:07 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- @@ -37,6 +37,31 @@ // --------------------------------------------------------------- #include "G4UserTrackingAction.hh" +#include "G4ParticleTable.hh" +#include "globals.hh" + +///////////////////////////////////////////////////////// +G4UserTrackingAction::G4UserTrackingAction() +///////////////////////////////////////////////////////// +{ + if(!(G4ParticleTable::GetParticleTable()->GetReadiness())) + { + G4String msg; + msg = " You are instantiating G4UserTrackingAction BEFORE your\n"; + msg += "G4VUserPhysicsList is instantiated and assigned to G4RunManager.\n"; + msg += " Such an instantiation is prohibited by Geant4 version 8.0. To fix this problem,\n"; + msg += "please make sure that your main() instantiates G4VUserPhysicsList AND\n"; + msg += "set it to G4RunManager before instantiating other user action classes\n"; + msg += "such as G4UserTrackingAction."; + G4Exception("G4UserTrackingAction::G4UserTrackingAction()", + "Tracking0001",FatalException,msg); + } +} + +///////////////////////////////////////////////////////// +G4UserTrackingAction::~G4UserTrackingAction() +///////////////////////////////////////////////////////// +{;} ///////////////////////////////////////////////////////// void G4UserTrackingAction:: @@ -44,7 +69,8 @@ void G4UserTrackingAction:: ///////////////////////////////////////////////////////// { fpTrackingManager = pValue; -} +} + diff --git a/source/tracking/src/G4VSteppingVerbose.cc b/source/tracking/src/G4VSteppingVerbose.cc index b8c158860b..e9ac2b8246 100644 --- a/source/tracking/src/G4VSteppingVerbose.cc +++ b/source/tracking/src/G4VSteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSteppingVerbose.cc,v 1.10 2004/11/10 11:23:27 tsasaki Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4VTrajectory.cc b/source/tracking/src/G4VTrajectory.cc index 422da19663..b4d81ee087 100644 --- a/source/tracking/src/G4VTrajectory.cc +++ b/source/tracking/src/G4VTrajectory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTrajectory.cc,v 1.7 2005/05/03 17:48:51 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTrajectory.cc,v 1.8 2005/11/15 03:52:26 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // --------------------------------------------------------------- @@ -113,71 +113,9 @@ void G4VTrajectory::ShowTrajectory(std::ostream& os) const void G4VTrajectory::DrawTrajectory(G4int i_mode) const { - // If i_mode>=0, draws a trajectory as a polyline (blue for - // positive, red for negative, green for neutral) and, if i_mode!=0, - // adds markers - yellow circles for step points and magenta squares - // for auxiliary points, if any - whose screen size in pixels is - // given by std::abs(i_mode)/1000. E.g: i_mode = 5000 gives easily - // visible markers. - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - if (!pVVisManager) return; - const G4double markerSize = std::abs(i_mode)/1000; - G4bool lineRequired (i_mode >= 0); - G4bool markersRequired (markerSize > 0.); - - G4Polyline trajectoryLine; - G4Polymarker stepPoints; - G4Polymarker auxiliaryPoints; - - for (G4int i = 0; i < GetPointEntries() ; i++) { - G4VTrajectoryPoint* aTrajectoryPoint = GetPoint(i); - const std::vector* auxiliaries - = aTrajectoryPoint->GetAuxiliaryPoints(); - if (auxiliaries) { - for (size_t iAux = 0; iAux < auxiliaries->size(); ++iAux) { - const G4ThreeVector pos((*auxiliaries)[iAux]); - if (lineRequired) { - trajectoryLine.push_back(pos); - } - if (markersRequired) { - auxiliaryPoints.push_back(pos); - } - } - } - const G4ThreeVector pos(aTrajectoryPoint->GetPosition()); - if (lineRequired) { - trajectoryLine.push_back(pos); - } - if (markersRequired) { - stepPoints.push_back(pos); - } - } - - if (lineRequired) { - G4Colour colour; - const G4double charge = GetCharge(); - if(charge>0.) colour = G4Colour(0.,0.,1.); // Blue = positive. - else if(charge<0.) colour = G4Colour(1.,0.,0.); // Red = negative. - else colour = G4Colour(0.,1.,0.); // Green = neutral. - G4VisAttributes trajectoryLineAttribs(colour); - trajectoryLine.SetVisAttributes(&trajectoryLineAttribs); - pVVisManager->Draw(trajectoryLine); - } - if (markersRequired) { - auxiliaryPoints.SetMarkerType(G4Polymarker::squares); - auxiliaryPoints.SetScreenSize(markerSize); - auxiliaryPoints.SetFillStyle(G4VMarker::filled); - G4VisAttributes auxiliaryPointsAttribs(G4Colour(0.,1.,1.)); // Magenta - auxiliaryPoints.SetVisAttributes(&auxiliaryPointsAttribs); - pVVisManager->Draw(auxiliaryPoints); - - stepPoints.SetMarkerType(G4Polymarker::circles); - stepPoints.SetScreenSize(markerSize); - stepPoints.SetFillStyle(G4VMarker::filled); - G4VisAttributes stepPointsAttribs(G4Colour(1.,1.,0.)); // Yellow. - stepPoints.SetVisAttributes(&stepPointsAttribs); - pVVisManager->Draw(stepPoints); + if (0 != pVVisManager) { + pVVisManager->DispatchToModel(*this, i_mode); } } diff --git a/source/tracking/src/G4VTrajectoryPoint.cc b/source/tracking/src/G4VTrajectoryPoint.cc index df34cf9ff2..d9a08549cf 100644 --- a/source/tracking/src/G4VTrajectoryPoint.cc +++ b/source/tracking/src/G4VTrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTrajectoryPoint.cc,v 1.1 2004/07/05 17:08:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //--------------------------------------------------------------- diff --git a/source/visualization/FukuiRenderer/History b/source/visualization/FukuiRenderer/History index eba6a49a03..601481200a 100644 --- a/source/visualization/FukuiRenderer/History +++ b/source/visualization/FukuiRenderer/History @@ -1,4 +1,4 @@ -$Id: History,v 1.19 2005/05/27 13:33:31 allison Exp $ +$Id: History,v 1.20 2005/10/13 17:19:55 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,9 @@ committal in the CVS repository ! History file for visualization/FukuiRenderer sub-category --------------------------------------------------------- +13th October 2005 John Allison (DAWN-V07-01-00) +- Migrated to . + 27th May 2005 John Allison (DAWN-V07-00-00) - Fixed bug introduced in ClearTransientStore. diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh index 93a3052f12..1aa14b72dc 100644 --- a/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh +++ b/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILE.hh,v 1.8 2001/07/27 22:32:55 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA // DAWNFILE driver factory. diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh index b35db248aa..a4d014f99c 100644 --- a/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh +++ b/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILESceneHandler.hh,v 1.14 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh index 17b3ed2d1d..16e8478aff 100644 --- a/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh +++ b/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILEViewer.hh,v 1.9 2003/06/16 17:13:27 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA // DAWNFILE viewer - opens window, hard copy, etc. diff --git a/source/visualization/FukuiRenderer/include/G4FRClientServer.hh b/source/visualization/FukuiRenderer/include/G4FRClientServer.hh index 8190518e47..d764141561 100644 --- a/source/visualization/FukuiRenderer/include/G4FRClientServer.hh +++ b/source/visualization/FukuiRenderer/include/G4FRClientServer.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRClientServer.hh,v 1.6 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA, Wed Jul 3 14:13:52 JST 1996 //////////////////////////////// diff --git a/source/visualization/FukuiRenderer/include/G4FRConst.hh b/source/visualization/FukuiRenderer/include/G4FRConst.hh index 6f21b25b71..af30a6e013 100644 --- a/source/visualization/FukuiRenderer/include/G4FRConst.hh +++ b/source/visualization/FukuiRenderer/include/G4FRConst.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRConst.hh,v 1.6 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA, Tue Jul 2 15:30:49 JST 1996 /////////////////////////////////// diff --git a/source/visualization/FukuiRenderer/include/G4FRFeatures.hh b/source/visualization/FukuiRenderer/include/G4FRFeatures.hh index 1ada632ff2..1d17d13697 100644 --- a/source/visualization/FukuiRenderer/include/G4FRFeatures.hh +++ b/source/visualization/FukuiRenderer/include/G4FRFeatures.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRFeatures.hh,v 1.5 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #if !defined G4_FR_FEATURES_HH #define G4_FR_FEATURES_HH diff --git a/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc b/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc index 035d6027c3..efb62721bf 100644 --- a/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc +++ b/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc @@ -22,7 +22,7 @@ // // // $Id: G4FRSceneFunc.icc,v 1.10 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4LogicalVolume.hh" diff --git a/source/visualization/FukuiRenderer/include/G4FRofstream.hh b/source/visualization/FukuiRenderer/include/G4FRofstream.hh index 93400686c1..c2dd8d242d 100644 --- a/source/visualization/FukuiRenderer/include/G4FRofstream.hh +++ b/source/visualization/FukuiRenderer/include/G4FRofstream.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRofstream.hh,v 1.6 2003/06/16 17:13:28 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh b/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh index e579ad6883..7b81fcba97 100644 --- a/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh +++ b/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRenderer.hh,v 1.7 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh b/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh index ef96a91455..84e9b5c32c 100644 --- a/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh +++ b/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererSceneHandler.hh,v 1.14 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Satoshi TANAKA, Fri Jun 28 11:19:19 JST 1996 diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh b/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh index a108c05c2e..077fabbc7c 100644 --- a/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh +++ b/source/visualization/FukuiRenderer/include/G4FukuiRendererViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererViewer.hh,v 1.7 2001/07/11 10:08:44 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Satoshi TANAKA, Fri Jun 28 12:10:14 JST 1996 diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc index 53d282bac3..c97491188c 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILE.cc,v 1.10 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA // DAWNFILE factory. diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc index d213a60139..4e6ebc0bcf 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILESceneHandler.cc,v 1.14 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA // DAWNFILE scene. diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc index cb51712bc8..8783048d64 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILEViewer.cc,v 1.17 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA // DAWNFILE view - opens window, hard copy, etc. diff --git a/source/visualization/FukuiRenderer/src/G4FRClientServer.cc b/source/visualization/FukuiRenderer/src/G4FRClientServer.cc index f5f23a21d1..78e6d69b3c 100644 --- a/source/visualization/FukuiRenderer/src/G4FRClientServer.cc +++ b/source/visualization/FukuiRenderer/src/G4FRClientServer.cc @@ -22,7 +22,7 @@ // // // $Id: G4FRClientServer.cc,v 1.5 2001/07/11 10:08:45 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Satoshi TANAKA, Wed Jul 3 14:14:29 JST 1996 //////////////////////////////// diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc b/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc index 92bec2e09c..a2ea381f02 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRenderer.cc,v 1.8 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc b/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc index 4c71192863..b22f3c8c00 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FukuiRendererSceneHandler.cc,v 1.11 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4FukuiRendererSceneHandler.cc,v 1.12 2005/10/13 17:19:55 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Satoshi TANAKA, Fri Jun 28 11:34:24 JST 1996 @@ -40,7 +40,6 @@ //----- header files #include -//#include #include #include "globals.hh" #include "G4FRConst.hh" diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc b/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc index d49b0c492f..38d913c188 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererViewer.cc,v 1.10 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Satoshi TANAKA, Fri Jun 28 12:09:11 JST 1996 diff --git a/source/visualization/HepRep/History b/source/visualization/HepRep/History index 841a0ad172..ca471a6483 100644 --- a/source/visualization/HepRep/History +++ b/source/visualization/HepRep/History @@ -1,4 +1,4 @@ -.$Id: History,v 1.97 2005/06/28 12:23:23 gcosmo Exp $ +.$Id: History,v 1.103 2005/10/31 18:52:59 duns Exp $ ------------------------------------------------------------------- ========================================================= @@ -19,6 +19,21 @@ committal in the CVS repository ! History file for visualization/HepRep sub-category -------------------------------------------------- +31 October 2005 Mark Donszelmann (vis-HepRep-V07-01-04) +- Further fix for GEANT-61. + +13 October 2005 John Allison (vis-HepRep-V07-01-03) +- Migrated to . + +12 October 2005 Mark Donszelmann (vis-HepRep-V07-01-02) +- Fixed compilation warning on MacOSX +- Further fix for GEANT-61. + +27 September 2005 Mark Donszelmann (vis-HepRep-V07-01-01) +- Fixed GEANT-61: Cones face wrong way. + +4 August 2005 Mark Donszelmann (vis-HepRep-V07-01-00) +- Fixed GEANT-60: DrawAs value wrong for solids that use Geant4 primitives. 28 June 2005 Gabriele Cosmo (vis-HepRep-V07-00-04) - Fixed GNUmakefile to include ZLIB module for DLLs build on Windows. diff --git a/source/visualization/HepRep/include/G4HepRep.hh b/source/visualization/HepRep/include/G4HepRep.hh index 39aca670d8..dc595aa600 100644 --- a/source/visualization/HepRep/include/G4HepRep.hh +++ b/source/visualization/HepRep/include/G4HepRep.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRep.hh,v 1.16 2003/12/11 21:55:54 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /** diff --git a/source/visualization/HepRep/include/G4HepRepFile.hh b/source/visualization/HepRep/include/G4HepRepFile.hh index fef70a48eb..5c45f7d619 100644 --- a/source/visualization/HepRep/include/G4HepRepFile.hh +++ b/source/visualization/HepRep/include/G4HepRepFile.hh @@ -22,7 +22,7 @@ // // // $Id: G4HepRepFile.hh,v 1.7 2003/07/12 19:48:15 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh b/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh index ba74bf7470..720adbd3f6 100644 --- a/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh +++ b/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4HepRepFileSceneHandler.hh,v 1.22 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Joseph Perl 27th January 2002 diff --git a/source/visualization/HepRep/include/G4HepRepFileViewer.hh b/source/visualization/HepRep/include/G4HepRepFileViewer.hh index 31ac770ff4..78560a1cdb 100644 --- a/source/visualization/HepRep/include/G4HepRepFileViewer.hh +++ b/source/visualization/HepRep/include/G4HepRepFileViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4HepRepFileViewer.hh,v 1.8 2003/07/12 19:48:15 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/HepRep/include/G4HepRepMessenger.hh b/source/visualization/HepRep/include/G4HepRepMessenger.hh index 94d2345b21..19a325b811 100644 --- a/source/visualization/HepRep/include/G4HepRepMessenger.hh +++ b/source/visualization/HepRep/include/G4HepRepMessenger.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepMessenger.hh,v 1.6 2005/06/02 19:15:21 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // #ifndef G4HepRepMessenger_HH diff --git a/source/visualization/HepRep/include/G4HepRepSceneHandler.hh b/source/visualization/HepRep/include/G4HepRepSceneHandler.hh index 7f58e97f31..3eb8f54e24 100644 --- a/source/visualization/HepRep/include/G4HepRepSceneHandler.hh +++ b/source/visualization/HepRep/include/G4HepRepSceneHandler.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepSceneHandler.hh,v 1.40 2005/06/02 23:40:49 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /** diff --git a/source/visualization/HepRep/include/G4HepRepViewer.hh b/source/visualization/HepRep/include/G4HepRepViewer.hh index 6f20c9c254..c001c7cf71 100644 --- a/source/visualization/HepRep/include/G4HepRepViewer.hh +++ b/source/visualization/HepRep/include/G4HepRepViewer.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepViewer.hh,v 1.17 2004/05/27 05:55:20 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /** diff --git a/source/visualization/HepRep/src/G4HepRep.cc b/source/visualization/HepRep/src/G4HepRep.cc index 5b76906627..b6b0e82384 100644 --- a/source/visualization/HepRep/src/G4HepRep.cc +++ b/source/visualization/HepRep/src/G4HepRep.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRep.cc,v 1.21 2004/05/27 05:55:20 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /** diff --git a/source/visualization/HepRep/src/G4HepRepFile.cc b/source/visualization/HepRep/src/G4HepRepFile.cc index d4c0f8c720..4cef0380f3 100644 --- a/source/visualization/HepRep/src/G4HepRepFile.cc +++ b/source/visualization/HepRep/src/G4HepRepFile.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepFile.cc,v 1.9 2005/06/01 06:50:15 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Joseph Perl 1 October 2001 diff --git a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc index 95d389db3b..f3617ef527 100644 --- a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc +++ b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepFileSceneHandler.cc,v 1.37 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Joseph Perl 27th January 2002 diff --git a/source/visualization/HepRep/src/G4HepRepFileViewer.cc b/source/visualization/HepRep/src/G4HepRepFileViewer.cc index 881da725f5..b758b9c835 100644 --- a/source/visualization/HepRep/src/G4HepRepFileViewer.cc +++ b/source/visualization/HepRep/src/G4HepRepFileViewer.cc @@ -20,14 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepFileViewer.cc,v 1.12 2004/03/15 08:00:22 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4HepRepFileViewer.cc,v 1.13 2005/10/13 17:23:42 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4HepRepFileViewer.hh" -#include "G4ios.hh" -#include - #include "G4VSceneHandler.hh" #include "G4HepRepFileSceneHandler.hh" diff --git a/source/visualization/HepRep/src/G4HepRepMessenger.cc b/source/visualization/HepRep/src/G4HepRepMessenger.cc index 5ae9de4acc..9c31eba890 100644 --- a/source/visualization/HepRep/src/G4HepRepMessenger.cc +++ b/source/visualization/HepRep/src/G4HepRepMessenger.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepMessenger.cc,v 1.9 2005/06/03 00:03:36 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4HepRepMessenger.hh" diff --git a/source/visualization/HepRep/src/G4HepRepSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepSceneHandler.cc index 2c229b6a4f..5e6e58df7b 100644 --- a/source/visualization/HepRep/src/G4HepRepSceneHandler.cc +++ b/source/visualization/HepRep/src/G4HepRepSceneHandler.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepSceneHandler.cc,v 1.90 2005/06/03 00:03:36 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4HepRepSceneHandler.cc,v 1.94 2005/10/29 21:07:46 duns Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /** @@ -570,10 +570,10 @@ void G4HepRepSceneHandler::AddSolid(const G4Cons& cons) { outer->addAttValue("showParentAttributes",true); HepRepPoint* op1 = factory->createHepRepPoint(outer, vertex1.x(), vertex1.y(), vertex1.z()); - op1->addAttValue("Radius",cons.GetOuterRadiusMinusZ()); + op1->addAttValue("Radius",cons.GetOuterRadiusPlusZ()); HepRepPoint* op2 = factory->createHepRepPoint(outer, vertex2.x(), vertex2.y(), vertex2.z()); - op2->addAttValue("Radius",cons.GetOuterRadiusPlusZ()); + op2->addAttValue("Radius",cons.GetOuterRadiusMinusZ()); // Inner cylinder. HepRepInstance* inner = factory->createHepRepInstance(instance, type); @@ -581,10 +581,10 @@ void G4HepRepSceneHandler::AddSolid(const G4Cons& cons) { inner->addAttValue("showParentAttributes",true); HepRepPoint* ip1 = factory->createHepRepPoint(inner, vertex1.x(), vertex1.y(), vertex1.z()); - ip1->addAttValue("Radius",cons.GetInnerRadiusMinusZ()); + ip1->addAttValue("Radius",cons.GetInnerRadiusPlusZ()); HepRepPoint* ip2 = factory->createHepRepPoint(inner, vertex2.x(), vertex2.y(), vertex2.z()); - ip2->addAttValue("Radius",cons.GetInnerRadiusPlusZ()); + ip2->addAttValue("Radius",cons.GetInnerRadiusMinusZ()); } @@ -837,6 +837,7 @@ void G4HepRepSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { } else { face = getGeometryInstance("*Face", fCurrentDepth+1); setAttribute(face, "PickParent", true); + setAttribute(face, "DrawAs", G4String("Polygon")); } setLine(face, polyhedron); diff --git a/source/visualization/HepRep/src/G4HepRepViewer.cc b/source/visualization/HepRep/src/G4HepRepViewer.cc index 9dc55e3364..c3f9c8b847 100644 --- a/source/visualization/HepRep/src/G4HepRepViewer.cc +++ b/source/visualization/HepRep/src/G4HepRepViewer.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4HepRepViewer.cc,v 1.25 2004/05/27 05:59:08 duns Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /** diff --git a/source/visualization/History b/source/visualization/History index c22e79499a..471d8aa911 100644 --- a/source/visualization/History +++ b/source/visualization/History @@ -1,4 +1,4 @@ -$Id: History,v 1.296 2005/06/07 17:10:55 allison Exp $ +$Id: History,v 1.319 2005/12/05 06:43:50 perl Exp $ ------------------------------------------------------------------- ========================================================= @@ -23,6 +23,172 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- +4th December 2005 Joseph Perl (vis-V07-01-10) +- Global tag for Geant4 release 8.0 +- Corresponds to the following subdirectory tags: +- externals: geant4-07-01-ref-05 +- FukuiRenderer: geant4-07-01-ref-05 +- HepRep: geant4-07-01-ref-05 +- management: visman-V07-01-10 +- modeling: modeling-V07-01-07 +- OpenGL: opengl-V07-01-09 +- OpenInventor: openinventor-V07-01-04 +- RayTracer: raytracer-V07-01-08 +- test: vistest-V07-01-04 +- Tree: vistree-V07-01-01 +- VRML: geant4-07-01-ref-05 +- XXX: visXXX-V07-01-02 + +29th November 2005 Jane Tinslay (vis-V07-01-09) +- Make G4VisManager::RegisterModelFactories() non-pure for + backwards compatibility. +- Add information message to G4VisManager::DispatchToModel + when default trajectory model is used. +- Removed names of unused paramaters to stop compiler warnings: + G4VModelCommand.hh, G4ModelCommandsDrawByCharge.cc, + G4ModelCommandsDrawByParticleID.cc, G4VRTScanner.hh + +25th November 2005 Joseph Perl (vis-V07-01-08) +- Global tag for Geant4 release 8.0 +- Corresponds to the following subdirectory tags: +- externals: geant4-07-01-ref-05 +- FukuiRenderer: geant4-07-01-ref-05 +- HepRep: geant4-07-01-ref-05 +- management: visman-V07-01-09 +- modeling: modeling-V07-01-05 +- OpenGL: opengl-V07-01-09 +- OpenInventor: openinventor-V07-01-03 +- RayTracer: raytracer-V07-01-06 +- test: vistest-V07-01-04 +- Tree: vistree-V07-01-01 +- VRML: geant4-07-01-ref-05 +- XXX: visXXX-V07-01-02 + +22nd November 2005 John Allison +- vistest-V07-01-04: Added G4Tet and PerspectiveVisAction. Refined G4Polyhedra. +- opengl-V07-01-08: Added G4OpenGLXmViewerMessenger. Corrected text position. +- vistree-V07-01-01: Refined guidance and printing. +- visXXX-V07-01-02: Simplified guidance. +- modeling-V07-01-03: Implemented radial replicas for G4Tubs. + +18th November 2005 John Allison +- raytracer-V07-01-06: merged developments to the head, including RayTracerX. + +18th November 2005 Joseph Perl (vis-V07-01-07) +- Minor modification of geant4-07-01-ref-05 to facilitate acceptance + of greps-V07-01-09 and tracking tracking-V07-01-02. As with + vis-V07-01-06, it should subsequently simply be ignored. + +15th November 2005 Guy Barrand +- openinventor-V07-01-03: Background, scaling and window positioning. Also + reading and wroting of .iv files. + +14th November 2005 John Allison (vis-V07-01-06) +- Minor modification of vis-V07-01-03 + vis-HepRep-V07-01-04 (to avoid + warnings on Sun), i.e., it excludes all development since then. This + tag is purely to facilitate acceptance of greps-V07-01-09. To + achieve this, the modification was made on a branch - + vis-V07-01-03-branch - of just one file, namely G4VisManager.hh. + This should subsequently simply be ignored. + +13th November 2005 John Allison +- visman-V07-01-08: Added XGeometryString and background opacity parameter. +- opengl-V07-01-07: Implemented window placing (XGeometryString) in OGL*X. + +24th October 2005 John Allison +- modeling-V07-01-02: Added trajectory models. +- visman-V07-01-07: Added methods for managing trajectory models. + +20th October 2005 Joseph Perl (vis-V07-01-05) +- New Global Vis Tag. +- Includes head of everything except RayTracer and OpenInventor. +- Requires geant4-07-01-ref-03 plus the following: +- graphics_reps: greps-V07-01-06 +- intercoms: intercoms-V07-01-01 +- event: event-V07-01-0 +- run: run-V07-01-02 + +13th October 2005 John Allison (vis-V07-01-04) +- Implemented non-uniform scaling in management and OpenGL. +- Implemented arbitrary background in management, OpenGL and RayTracer. +- Migrated to . +- The above consists of: + o vistest-V07-01-03: Migrated to plus minor changes. + o DAWN-V07-01-00: Migrated to . + o vis-HepRep-V07-01-03: Migrated to . + o opengl-V07-01-06: Migrated to , non-uniform scaling, any + background. + o vistree-V07-01-00: Migrated to , fixed bug in mass calculations. + o visXXX-V07-01-01: Migrated to . + o modeling-V07-01-01: Migrated to . + o visman-V07-01-05: Migrated to , non-uniform scaling, any + background. + +12th October 2005 John Allison (vis-V07-01-03) +- G4VisCommandsViewer.cc: Trapped zero viewer pointer in /vis/viewer/update + (bug found by system test of vis-V07-01-02). + +2nd Oct 2005 Joseph Perl (vis-V07-01-02) + Same as vis-V07-01-01 but with earlier raytracer tag: + raytracer-V07-01-02 + +30th Sep 2005 Joseph Perl (vis-V07-01-01) + New global tag for Vis. Corresponds to vis-V07-01-00 plus: + vistest-V07-01-02 + visman-V07-01-04 + raytracer-V07-01-03 + modeling-V07-01-00 + opengl-V07-01-05 + openinventor-V07-01-02 + visXXX-V07-01-00 + vis-HepRep-V07-01-01 + +30th September 2005 Joseph Perl (raytracer-V07-01-03) +New tag to include change Makoto made an hour after V07-01-02 was tagged. +Change seems to just involve passing pWorld to material list where no argument was passed in previous version. + +29th September 2005 John Allison (opengl-V07-01-05) +- Added G4OpenGLViewerDataStore to facilitate access of viewer data by + scene handler. +- Re-implemented transparency button in OpenGLXm. + +New tags to be included 16th Sep 2005 (JA): + o visman-V07-01-03: + + Issue "/tracking/storeTrajectory 1" on /vis/scene/add/trajectories. + + Warning: Attempt to add volume to a scene already containing the world. + + Error: Logical volume model must be only volume model in scene. + o visman-V07-01-04: Simplified use of ConcreteInstance.. + o raytracer-V07-01-02: Bug fix (black holes). + o vistest-V07-01-02: Added a G4AttValue with time. + +To be included: + o visman-V07-01-01: Introduced (optional) second pass over scene. + o visman-V07-01-02: Added /vis/viewer/set/whiteBackground. + Added RayTracerX to G4VisExecutive. + o modeling-V07-01-00: Fixed (non-)culling of transparent volumes. + o opengl-V07-01-01: Half-way implementation of transparency. + o opengl-V07-01-02: "Better algorithm" for transparency. + o opengl-V07-01-03: Bug fix. + o opengl-V07-01-04: Fixed hidden line removal. + o vis-HepRep-V07-01-00 (4 August 2005 Mark Donszelmann) + o openinventor-V07-01-01 (1st August 2005 Gabriele Cosmo) + o openinventor-V07-01-02: Corrected treatment of edgeflags. + o raytracer-V07-01-01: Protected RayTracerX by G4VIS macro. + o visXXX-V07-01-00: Improved guidance for rendering polyhedron objects. + o vistest-V07-01-01: RayTracerX instantiation removed - now in + G4VisExecutive. + +20th July 2005 John Allison (vis-V07-01-00) +- opengl-V07-01-00: Introduced smooth shading. Also window size hints for Xm. +- openinventor-V07-01-00: Changed Geant4_SoPolyhedron to construct + from G4Polyhedron. Functionality unchanged. +- visman-V07-01-00: Protected new viewer pointer. +- vistest-V07-01-00 +- Removed top level README files. (All wisdom now transferred + properly to User Guides.) + +17th July 2005 John Allison +- raytracer-V07-01-00: Introduced RayTracerX. 7th June 2005 John Allison (vis-V07-00-19) - visXXX-V07-00-00: Fixed compiler warnings. diff --git a/source/visualization/OpenGL/History b/source/visualization/OpenGL/History index 664e38548d..d7a271fb28 100644 --- a/source/visualization/OpenGL/History +++ b/source/visualization/OpenGL/History @@ -1,4 +1,4 @@ -$Id: History,v 1.46 2005/05/29 23:18:56 allison Exp $ +$Id: History,v 1.59 2005/11/24 10:24:12 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,95 @@ committal in the CVS repository ! History file for visualization/OpenGL ------------------------------------- +24th November 2005 John Allison (opengl-V07-01-09) +- Protected G4OpenGLXmViewerMessenger with #ifdef G4VIS_BUILD_OPENGLXM_DRIVER. + +22nd November 2005 John Allison (opengl-V07-01-08) +- Added G4OpenGLXmViewerMessenger. +- Corrected text position. +- Made depth test for polyhedron GL_LEQUAL (slightly dominant). + +17th November 2005 Gabriele Cosmo +- Fixed settings of background style for WIN32 viewers. + +13th November 2005 John Allison (opengl-V07-01-07) +- Implemented X-Window-style geometry hints in G4OpenGLXViewer. + +13th October 2005 John Allison (opengl-V07-01-06) +- Allowed any colour background. +- Implemented non-uniform scaling. +- Migration to . + +29th September 2005 John Allison (opengl-V07-01-05) +- Added G4OpenGLViewerDataStore to facilitate access of viewer data by + scene handler. +- Re-implemented transparency button in OpenGLXm. + +13th September 2005 John Allison (opengl-V07-01-04 - needs visman-V07-01-02) +- Implemented white background for all OGL viewers. +- G4OpenGLSceneHandler.cc: + o Fixed hidden line removal (bug introduced in opengl-V07-01-02). + o Fixed treatment of triangular polygons for drawing of auxiliary/soft lines. + o Corrected GetTextColour(text). + o Corrected GetColour(polyhedron). + +5th September 2005 John Allison (opengl-V07-01-03) +- Bug fix: stored transparent objects were being lost. + +2nd September 2005 John Allison (opengl-V07-01-02 - needs visman-V07-01-01) +- Bug fix: edgeflags problem introduced with smooth shading in + opengl-V07-01-00. +- Implementation of a "better algorithm" for the rendering of + transparent polyhedron objects. It renders all opaque objects + first, then renders the transparent objects with the depth buffer in + read-only mode (see OpenGL Programming Guide). It uses the new + facility in G4VSceneHandler::ProcessScene for an optional second pass + of the run-duration models in the scene. Note this algorithm is + still only an approximation. It will still give the wrong blended + colour if two transparent objects are rendered front first. For + nested transparent objects, this is unfortunate, because + G4PhysicalVolumeModel traverses Geant4's mother-daughter hierarchy + in such a way that mothers come first. Also, there is no guaranteed + relationship between the order of rendering and the depth of two + transparent objects if they are at the same level or in different + branches of the hierarchy. Still, the only error will be an + incorrect colour - the objects will still give the appearance of + transparency, so it's a pretty good algorithm. (An even better + algorithm would be to attempt to render the facets in depth order, + deepest first. But how do you calculate the depth - centre of area, + deepest corner? One can still imagine pathalogical cases that would + sometimes give the wrong colour. Also, for stored mode, the order + is fixed in a display list so when the user rotates the view, one + would lose the depth ordering. I think we have to accept that + blending in OpenGL is only ever an approximation. For accurate + blending, use RayTracer.) + +28th August 2005 John Allison (opengl-V07-01-01) +- Half-way implementation of rendering of transparent polyhedron + objects. In this implementation, no account is taken of the order + of rendering. Transparent objects are rendered with depth testing + off so that objects behind can still be seen. But this means that + opaque objects in front do not obscure them - and they jolly well + should! A better algorithm is to render all opaque objects first, + then render the transparent objects with the depth buffer in + read-only mode (see OpenGL Programming Guide). This is going to + take a little more thought - see opengl-V07-01-02. + +20th July 2005 John Allison (opengl-V07-01-00) +- Introduced smooth shading, taking advantage of hitherto un-noticed + feature of HepPolyhedron::GetNextFacet that calculates the normals + at each vertex so that curved surfaces are rendered more + realistically (Gouraud shading). +- G4OpenGLImmediateSceneHandler.cc: Removed unnecessary #include's. +- G4OpenGLXmViewer.cc: Fixed to use window size hints. This changes + the default window size. It used to be 400x400, hardcoded in + G4OpenGLXmViewer.cc, but now it picks up the + G4ViewParameters::GetWindowSizeHintX/Y, which defaults to 600x600. + The user may change it on the command line, e.g: + /vis/open OGLSXm 500 + or + /vis/viewer/create ! ! 500 + 30th May 2005 John Allison (opengl-V07-00-03) - Fixed compilation problem in OpenGL on SUN. (Replaced multimap by map of vectors in G4OpenGLFontBaseStore.) diff --git a/source/visualization/OpenGL/include/G4OpenGL.hh b/source/visualization/OpenGL/include/G4OpenGL.hh index e637588505..3254ef702c 100644 --- a/source/visualization/OpenGL/include/G4OpenGL.hh +++ b/source/visualization/OpenGL/include/G4OpenGL.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4OpenGL.hh,v 1.3 2005/04/17 16:08:43 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G.Barrand. diff --git a/source/visualization/OpenGL/include/G4OpenGLFontBaseStore.hh b/source/visualization/OpenGL/include/G4OpenGLFontBaseStore.hh index c04d1ce038..563d141f7e 100644 --- a/source/visualization/OpenGL/include/G4OpenGLFontBaseStore.hh +++ b/source/visualization/OpenGL/include/G4OpenGLFontBaseStore.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4OpenGLFontBaseStore.hh,v 1.2 2005/05/27 10:56:06 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // J.Allison Apr 2005. diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh index 7150050033..e09c85b440 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateSceneHandler.hh,v 1.7 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLImmediateSceneHandler.hh,v 1.8 2005/09/05 11:02:38 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 @@ -54,6 +54,7 @@ public: void ClearTransientStore (); private: + void RequestPrimitives (const G4VSolid& solid); static G4int fSceneIdCount; // static counter for OpenGLImmediate scenes. }; diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh index d4c77bc7db..19e1751476 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateViewer.hh,v 1.7 2002/10/16 10:44:13 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh index 4a028ca3f8..687467075b 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateWin32.hh,v 1.6 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // OpenGLImmediateWin32 graphics system factory. diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh index fc90e03895..13742d57a8 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateWin32Viewer.hh,v 1.7 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh index a60223d17c..c397f0c8cd 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateX.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateX.hh,v 1.6 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh index 8ebbe14196..c6591373d7 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateXViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXViewer.hh,v 1.7 2001/07/14 21:47:42 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh index dd1c99ad38..76cf0e71eb 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateXm.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXm.hh,v 1.6 2001/07/11 10:08:49 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh index a8943457d8..0857202170 100644 --- a/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLImmediateXmViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXmViewer.hh,v 1.7 2001/07/14 21:47:43 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh index 94c328f2eb..fde6623bf8 100644 --- a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLSceneHandler.hh,v 1.18 2005/01/27 20:04:52 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc index af45d5e9ae..f25fc89026 100644 --- a/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc +++ b/source/visualization/OpenGL/include/G4OpenGLSceneHandler.icc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLSceneHandler.icc,v 1.6 2005/01/27 20:04:55 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 20th January 1998 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh b/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh index f7644cfc21..323505419f 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredSceneHandler.hh,v 1.16 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh index a5852317f5..a6f68d6a9a 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredViewer.hh,v 1.8 2001/08/14 18:03:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh b/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh index b26f9be5f7..49df752926 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredWin32.hh,v 1.6 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // OpenGLStoredWin32 graphics system factory. diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh index 897a198c40..548c913664 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredWin32Viewer.hh,v 1.5 2002/10/16 10:44:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredX.hh b/source/visualization/OpenGL/include/G4OpenGLStoredX.hh index 961eb0137b..e3003bae60 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredX.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredX.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredX.hh,v 1.6 2001/07/11 10:08:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh index 5f51891bc0..95633b226b 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredXViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXViewer.hh,v 1.5 2001/07/14 21:47:46 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh index b8ab6bb610..f27f988e42 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredXm.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXm.hh,v 1.5 2001/07/11 10:08:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh index a22bdb0b0b..8d3dd11e0d 100644 --- a/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLStoredXmViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXmViewer.hh,v 1.5 2001/07/14 21:47:47 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh b/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh index c534fc3b3a..9f2fa1e8f7 100644 --- a/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh +++ b/source/visualization/OpenGL/include/G4OpenGLTransform3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLTransform3D.hh,v 1.6 2004/04/07 15:17:12 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 24th October 1996 diff --git a/source/visualization/OpenGL/include/G4OpenGLViewer.hh b/source/visualization/OpenGL/include/G4OpenGLViewer.hh index 7fca2271ce..acef9e765c 100644 --- a/source/visualization/OpenGL/include/G4OpenGLViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewer.hh,v 1.10 2005/04/22 12:02:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLViewer.hh,v 1.11 2005/10/13 17:30:08 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 27th March 1996 @@ -34,7 +34,6 @@ #define G4OPENGLVIEWER_HH #include "G4VViewer.hh" -#include "globals.hh" class G4OpenGLSceneHandler; @@ -55,8 +54,8 @@ protected: void HLRThirdPass (); void InitializeGLView (); virtual void CreateFontLists () {} - G4bool white_background, //the OpenGL clear colour - doublebuffer, //are we using a double buffered visual? + G4Colour background; //the OpenGL clear colour + G4bool doublebuffer, //are we using a double buffered visual? transparency_enabled, //is alpha blending enabled? antialiasing_enabled, //is antialiasing enabled? haloing_enabled; //is haloing enabled for wireframe? diff --git a/source/visualization/OpenGL/include/G4OpenGLViewerDataStore.hh b/source/visualization/OpenGL/include/G4OpenGLViewerDataStore.hh new file mode 100644 index 0000000000..ee71e5bdd9 --- /dev/null +++ b/source/visualization/OpenGL/include/G4OpenGLViewerDataStore.hh @@ -0,0 +1,48 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4OpenGLViewerDataStore.hh,v 1.1 2005/09/29 14:26:17 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// J.Allison Apr 2005. + +// Class Description: +// Facilitates sharing of fontdat between scene handler and viewers. + +#ifndef G4OPENGLVIEWERDATASTORE_HH +#define G4OPENGLVIEWERDATASTORE_HH + +#include "globals.hh" +#include +#include + +class G4VViewer; + +class G4OpenGLViewerDataStore { +public: + static void SetTransparencyEnabled(G4VViewer*, G4bool transparency_enabled); + static G4bool GetTransparencyEnabled(G4VViewer*); +private: + static std::map fTransparencyEnabledMap; +}; + +#endif diff --git a/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh b/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh index 37c5d9c8e0..552ad27262 100644 --- a/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLWin32Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLWin32Viewer.hh,v 1.11 2003/06/25 09:01:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific diff --git a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh index 87a5ae8260..e61ae3b4f5 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.hh,v 1.21 2005/04/22 12:02:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLXViewer.hh,v 1.22 2005/11/13 15:46:54 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 @@ -112,7 +112,7 @@ protected: XClassHint *class_hints; Pixmap icon_pixmap; XSizeHints *size_hints; - G4int WinSize_x, + unsigned int WinSize_x, WinSize_y; Atom Xatom; XTextProperty windowName, diff --git a/source/visualization/OpenGL/include/G4OpenGLXmBox.hh b/source/visualization/OpenGL/include/G4OpenGLXmBox.hh index 11ed6da074..3716a98dc5 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmBox.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmBox.hh,v 1.6 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Box container class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh b/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh index f47cbbf473..d8cd200911 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmFourArrowButtons.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmFourArrowButtons.hh,v 1.5 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh b/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh index b709c40e36..0500ddaba8 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmFramedBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmFramedBox.hh,v 1.6 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Framed box container class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh b/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh index 777e28a508..edc29eddf6 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmPushButton.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmPushButton.hh,v 1.6 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Push button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh b/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh index 9017fbbcff..3eb639a559 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmRadioButton.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmRadioButton.hh,v 1.6 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Radio button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmResources.hh b/source/visualization/OpenGL/include/G4OpenGLXmResources.hh index b098442907..fade73dac2 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmResources.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmResources.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmResources.hh,v 1.4 2001/07/11 10:08:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Default resources file for GEANT4 OpenGL Motif windows. diff --git a/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh b/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh index c5fdc0d66b..4b2acd6676 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmSeparator.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSeparator.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Separator class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh b/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh index 375acb7159..2bce3b0e94 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmSliderBar.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSliderBar.hh,v 1.6 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh b/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh index bf34b25311..4026d4d191 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmTextField.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmTextField.hh,v 1.6 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Text field class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh b/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh index 7cb0eefb87..c99187c416 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmTopLevelShell.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmTopLevelShell.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Top level shell class diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh index f798e13f9a..b08935ad7f 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetComponent.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetComponent.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Base class for all Motif component widgets diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh index f6d6b1b5bc..33f0a4b190 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetContainer.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetContainer.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Base class for all Motif container widgets diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh index 341be85caa..b7a10ce1ce 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetObject.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetObject.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Virtual base class for all Motif widgets. diff --git a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh index 4b6b39a439..b4a4d9791a 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmVWidgetShell.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetShell.hh,v 1.5 2001/07/11 10:08:52 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // //Base class for all Motif window widgets (shells) diff --git a/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh b/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh index 1d9fbdf251..b2abf202c7 100644 --- a/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh +++ b/source/visualization/OpenGL/include/G4OpenGLXmViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmViewer.hh,v 1.7 2004/07/23 15:23:50 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLXmViewer.hh,v 1.8 2005/11/22 16:03:23 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 @@ -67,9 +67,10 @@ class G4OpenGLXmTextField; class G4OpenGLXmFramedBox; class G4OpenGLXmFourArrowButtons; class G4OpenGLXmSeparator; +class G4OpenGLXmViewerMessenger; class G4OpenGLXmViewer: public G4OpenGLXViewer { - + public: G4OpenGLXmViewer (G4OpenGLSceneHandler& scene); virtual ~G4OpenGLXmViewer (); @@ -206,6 +207,7 @@ protected: G4OpenGLXmRadioButton* fpprint_col_radio2; G4OpenGLXmRadioButton* fpprint_style_radio1; G4OpenGLXmRadioButton* fpprint_style_radio2; + G4OpenGLXmViewerMessenger* fpMessenger; public: @@ -382,8 +384,9 @@ public: static G4int get_int_userData (Widget w); -friend class G4OpenGLXmVWidgetObject; - + friend class G4OpenGLXmVWidgetObject; + friend class G4OpenGLXmViewerMessenger; + private: G4OpenGLXmViewer (const G4OpenGLXmViewer&); G4OpenGLXmViewer& operator = (const G4OpenGLXmViewer&); diff --git a/source/visualization/OpenGL/include/G4OpenGLXmViewerMessenger.hh b/source/visualization/OpenGL/include/G4OpenGLXmViewerMessenger.hh new file mode 100644 index 0000000000..58e3515da9 --- /dev/null +++ b/source/visualization/OpenGL/include/G4OpenGLXmViewerMessenger.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4OpenGLXmViewerMessenger.hh,v 1.2 2005/11/24 10:23:43 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + +#ifdef G4VIS_BUILD_OPENGLXM_DRIVER + +#ifndef G4OPENGLXMVIEWERMESSENGER_HH +#define G4OPENGLXMVIEWERMESSENGER_HH + +#include "G4UImessenger.hh" + +#include "G4String.hh" + +class G4OpenGLXmViewer; +class G4UIdirectory; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithADouble; + +class G4OpenGLXmViewerMessenger: public G4UImessenger { +public: + G4OpenGLXmViewerMessenger + (G4OpenGLXmViewer* viewer, const G4String& viewerShortName); + ~G4OpenGLXmViewerMessenger(); + void SetNewValue (G4UIcommand*, G4String); + +private: + G4OpenGLXmViewer* fpViewer; + G4String fViewerShortName; + G4UIdirectory* fpDirectory; + G4UIdirectory* fpDirectorySet; + G4UIcmdWithADoubleAndUnit* fpCommandSetDollyHigh; + G4UIcmdWithADoubleAndUnit* fpCommandSetDollyLow; + G4UIcmdWithADoubleAndUnit* fpCommandSetPanHigh; + G4UIcmdWithADoubleAndUnit* fpCommandSetRotationHigh; + G4UIcmdWithADouble* fpCommandSetZoomHigh; + G4UIcmdWithADouble* fpCommandSetZoomLow; +}; + +#endif + +#endif + diff --git a/source/visualization/OpenGL/src/G4OpenGLFontBaseStore.cc b/source/visualization/OpenGL/src/G4OpenGLFontBaseStore.cc index 28e940feaf..8000ff079b 100644 --- a/source/visualization/OpenGL/src/G4OpenGLFontBaseStore.cc +++ b/source/visualization/OpenGL/src/G4OpenGLFontBaseStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLFontBaseStore.cc,v 1.2 2005/05/27 10:56:06 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4OpenGLFontBaseStore.hh" diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc index a3c074f1a5..79dcbf6592 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.13 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLImmediateSceneHandler.cc,v 1.17 2005/09/29 14:27:03 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 @@ -41,19 +41,13 @@ #include "G4OpenGLSceneHandler.hh" #include "G4OpenGLViewer.hh" +#include "G4OpenGLViewerDataStore.hh" #include "G4OpenGLTransform3D.hh" -#include "G4Point3D.hh" -#include "G4Normal3D.hh" -#include "G4Transform3D.hh" -#include "G4Polyline.hh" -#include "G4Text.hh" -#include "G4Circle.hh" -#include "G4Square.hh" -#include "G4Polyhedron.hh" -#include "G4VisAttributes.hh" #include "G4OpenGLImmediateSceneHandler.hh" +#include "G4LogicalVolume.hh" + G4OpenGLImmediateSceneHandler::G4OpenGLImmediateSceneHandler (G4VGraphicsSystem& system, const G4String& name): G4OpenGLSceneHandler (system, fSceneIdCount++, name) @@ -111,6 +105,40 @@ void G4OpenGLImmediateSceneHandler::ClearTransientStore () { } } +void G4OpenGLImmediateSceneHandler::RequestPrimitives (const G4VSolid& solid) { + if (fReadyForTransients) { + // Always draw transient solids, e.g., hits represented as solids. + // (As we have no control over the order of drawing of transient + // objects, we cannot do anything about transparent ones, as + // below, so always draw them.) + G4VSceneHandler::RequestPrimitives (solid); + } + else { + // For non-transient (run-duration) objects, ensure transparent + // objects are drawn last. The problem of + // blending/transparency/alpha is quite a tricky one - see History + // of opengl-V07-01-01/2/3. + // Get vis attributes - pick up defaults if none. + const G4VisAttributes* pVA = + fpViewer -> GetApplicableVisAttributes(fpVisAttribs); + const G4Colour& c = pVA -> GetColour (); + G4double opacity = c.GetAlpha (); + if (!fSecondPass) { + G4bool transparency_enabled = + G4OpenGLViewerDataStore::GetTransparencyEnabled(fpViewer); + if (transparency_enabled && opacity < 1.) { + // On first pass, transparent objects are not drawn, but flag is set... + fSecondPassRequested = true; + return; + } + } + // On second pass, opaque objects are not drwan... + if (fSecondPass && opacity >= 1.) return; + // Else invoke base class method... + G4VSceneHandler::RequestPrimitives (solid); + } +} + G4int G4OpenGLImmediateSceneHandler::fSceneIdCount = 0; #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc index b48ab7f415..6c4603b888 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateViewer.cc,v 1.6 2002/10/16 10:44:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc index 7358621cf5..00289db218 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateWin32.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // OpenGLImmediateWin32 graphics system factory. diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc index 2a9ecdb048..de07d65f81 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLImmediateWin32Viewer.cc,v 1.10 2005/11/17 07:36:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4OpenGLImmediateWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -77,11 +77,10 @@ void G4OpenGLImmediateWin32Viewer::DrawView () { glDrawBuffer (GL_FRONT); } - if (white_background == true) { - glClearColor (1., 1., 1., 1.); - } else { - glClearColor (0., 0., 0., 1.); - } + glClearColor (background.GetRed(), + background.GetGreen(), + background.GetBlue(), + 1.); glClearDepth (1.0); G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc index e9f12009ae..75f043987a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateX.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateX.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc index 45d06d3e3a..261e8dcd65 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXViewer.cc,v 1.11 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLImmediateXViewer.cc,v 1.12 2005/10/13 17:30:08 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 @@ -92,11 +92,11 @@ void G4OpenGLImmediateXViewer::Initialise () { void G4OpenGLImmediateXViewer::DrawView () { - if (white_background == true) { - glClearColor (1., 1., 1., 1.); - } else { - glClearColor (0., 0., 0., 1.); - } + glClearColor (background.GetRed(), + background.GetGreen(), + background.GetBlue(), + 1.); + glClearDepth (1.0); G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc index e67854f097..e9f85a0c1d 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXm.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLImmediateXm.cc,v 1.10 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc index 15a6ab6f79..12c9728c57 100644 --- a/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLImmediateXmViewer.cc,v 1.11 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLImmediateXmViewer.cc,v 1.13 2005/10/13 17:30:08 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 @@ -76,7 +76,6 @@ void G4OpenGLImmediateXmViewer::Initialise () { glEnable (GL_BLEND); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glShadeModel (GL_FLAT); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //The following code was in the constructor and found not to work for @@ -99,11 +98,11 @@ void G4OpenGLImmediateXmViewer::Initialise () { void G4OpenGLImmediateXmViewer::DrawView () { - if (white_background == true) { - glClearColor (1., 1., 1., 1.); - } else { - glClearColor (0., 0., 0., 1.); - } + glClearColor (background.GetRed(), + background.GetGreen(), + background.GetBlue(), + 1.); + glClearDepth (1.0); G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle(); diff --git a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc index fe4ee63d04..4132211b4b 100644 --- a/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLSceneHandler.cc,v 1.32 2005/04/17 16:08:43 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLSceneHandler.cc,v 1.39 2005/11/22 16:11:06 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 27th March 1996 @@ -43,6 +43,7 @@ #include "G4OpenGLSceneHandler.hh" #include "G4OpenGLViewer.hh" #include "G4OpenGLFontBaseStore.hh" +#include "G4OpenGLViewerDataStore.hh" #include "G4OpenGLTransform3D.hh" #include "G4Point3D.hh" #include "G4Normal3D.hh" @@ -61,7 +62,7 @@ G4OpenGLSceneHandler::G4OpenGLSceneHandler (G4VGraphicsSystem& system, G4int id, const G4String& name): -G4VSceneHandler (system, id, name) + G4VSceneHandler (system, id, name) {} G4OpenGLSceneHandler::~G4OpenGLSceneHandler () @@ -99,7 +100,7 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line) if (fpViewer -> GetViewParameters ().IsMarkerNotHidden ()) glDisable (GL_DEPTH_TEST); - else glEnable (GL_DEPTH_TEST); + else {glEnable (GL_DEPTH_TEST); glDepthFunc (GL_LESS);} glDisable (GL_LIGHTING); glBegin (GL_LINE_STRIP); @@ -116,10 +117,10 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyline& line) void G4OpenGLSceneHandler::AddPrimitive (const G4Text& text) { - const G4Colour& c = GetColour (text); // Picks up default if none. + const G4Colour& c = GetTextColour (text); // Picks up default if none. MarkerSizeType sizeType; G4double size = GetMarkerSize (text, sizeType); - G4ThreeVector position (*fpObjectTransformation * text.GetPosition ()); + G4ThreeVector position (text.GetPosition ()); G4String textString = text.GetText(); G4int font_base = G4OpenGLFontBaseStore::GetFontBase(fpViewer,size); @@ -174,7 +175,7 @@ void G4OpenGLSceneHandler::AddCircleSquare if (fpViewer -> GetViewParameters ().IsMarkerNotHidden ()) glDisable (GL_DEPTH_TEST); - else glEnable (GL_DEPTH_TEST); + else {glEnable (GL_DEPTH_TEST); glDepthFunc (GL_LESS);} glDisable (GL_LIGHTING); @@ -368,8 +369,8 @@ void G4OpenGLSceneHandler::DrawXYPolygon //Method for handling G4Polyhedron objects for drawing solids. void G4OpenGLSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { - //Assume all facets are convex quadrilaterals. - //Draw each G4Facet individually + // Assume all facets are planar convex quadrilaterals. + // Draw each facet individually if (polyhedron.GetNoFacets() == 0) return; @@ -380,21 +381,29 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { // Get view parameters that the user can force through the vis // attributes, thereby over-riding the current view parameter. G4ViewParameters::DrawingStyle drawing_style = GetDrawingStyle (pVA); - G4bool isAuxEdgeVisible = GetAuxEdgeVisible (pVA); - + //Get colour, etc.. - const G4Colour& c = pVA -> GetColour (); + G4bool transparency_enabled = + G4OpenGLViewerDataStore::GetTransparencyEnabled(fpViewer); + const G4Colour& c = GetColour (polyhedron); GLfloat materialColour [4]; materialColour [0] = c.GetRed (); materialColour [1] = c.GetGreen (); materialColour [2] = c.GetBlue (); - materialColour [3] = 1.0; - GLdouble clear_colour[4]; - glGetDoublev (GL_COLOR_CLEAR_VALUE, clear_colour); + if (transparency_enabled) { + materialColour [3] = c.GetAlpha (); + } else { + materialColour [3] = 1.; + } + + GLfloat clear_colour[4]; + glGetFloatv (GL_COLOR_CLEAR_VALUE, clear_colour); + + G4bool isAuxEdgeVisible = GetAuxEdgeVisible (pVA); switch (drawing_style) { case (G4ViewParameters::hlhsr): - // Set up as for hidden line removal but paint polygons... + // Set up as for hidden line removal but paint polygon faces later... case (G4ViewParameters::hlr): glEnable (GL_STENCIL_TEST); // The stencil buffer is cleared in G4OpenGLViewer::ClearView. @@ -402,27 +411,43 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { glStencilFunc (GL_ALWAYS, 0, 1); glStencilOp (GL_INVERT, GL_INVERT, GL_INVERT); glEnable (GL_DEPTH_TEST); - glDepthFunc (GL_LESS); - glEnable (GL_CULL_FACE); - glCullFace (GL_BACK); - glPolygonMode (GL_FRONT, GL_LINE); + glDepthFunc (GL_LEQUAL); + if (materialColour[3] < 1.) { + // Transparent... + glDisable (GL_CULL_FACE); + glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); + } else { + // Opaque... + glEnable (GL_CULL_FACE); + glCullFace (GL_BACK); + glPolygonMode (GL_FRONT, GL_LINE); + } glDisable (GL_LIGHTING); glColor3d (c.GetRed (), c.GetGreen (), c.GetBlue ()); break; case (G4ViewParameters::hsr): glEnable (GL_DEPTH_TEST); - glDepthFunc (GL_LESS); - glEnable (GL_CULL_FACE); - glCullFace (GL_BACK); + glDepthFunc (GL_LEQUAL); + if (materialColour[3] < 1.) { + // Transparent... + glDepthMask (0); // Make depth buffer read-only. + glDisable (GL_CULL_FACE); + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, materialColour); + } else { + // Opaque... + glDepthMask (1); // Make depth buffer writable (default). + glEnable (GL_CULL_FACE); + glCullFace (GL_BACK); + glPolygonMode (GL_FRONT, GL_FILL); + glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, materialColour); + } glEnable (GL_LIGHTING); - glPolygonMode (GL_FRONT, GL_FILL); - glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, materialColour); break; case (G4ViewParameters::wireframe): default: - //glDisable (GL_DEPTH_TEST); glEnable (GL_DEPTH_TEST); - glDepthFunc (GL_ALWAYS); + glDepthFunc (GL_LEQUAL); //??? was GL_ALWAYS glDisable (GL_CULL_FACE); glDisable (GL_LIGHTING); glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); @@ -435,50 +460,49 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { G4bool notLastFace; do { - //First, find surface normal and note "not last facet"... - G4Normal3D SurfaceUnitNormal; - notLastFace = polyhedron.GetNextUnitNormal (SurfaceUnitNormal); - - //Loop through the four edges of each G4Facet... - G4bool notLastEdge; + //First, find vertices, edgeflags and normals and note "not last facet"... G4Point3D vertex[4]; G4int edgeFlag[4]; + G4Normal3D normals[4]; + G4int n; + notLastFace = polyhedron.GetNextFacet(n, vertex, edgeFlag, normals); + + //Loop through the four edges of each G4Facet... G4int edgeCount = 0; - glNormal3d(SurfaceUnitNormal.x(), SurfaceUnitNormal.y(), - SurfaceUnitNormal.z()); - do { - notLastEdge = polyhedron.GetNextVertex (vertex[edgeCount], - edgeFlag[edgeCount]); + for(edgeCount = 0; edgeCount < n; ++edgeCount) { // Check to see if edge is visible or not... if (isAuxEdgeVisible) { - edgeFlag[edgeCount] = G4int (true); + edgeFlag[edgeCount] = 1; } - if (edgeFlag[edgeCount]) { + if (edgeFlag[edgeCount] > 0) { glEdgeFlag (GL_TRUE); } else { glEdgeFlag (GL_FALSE); } + glNormal3d (normals[edgeCount].x(), + normals[edgeCount].y(), + normals[edgeCount].z()); glVertex3d (vertex[edgeCount].x(), vertex[edgeCount].y(), vertex[edgeCount].z()); - edgeCount++; - } while (notLastEdge && edgeCount < 4); - // HEPPolyhedron produces triangles too; in that case add an extra vertex.. - while (edgeCount < 4) { - vertex[edgeCount] = vertex[edgeCount-1]; - edgeFlag[edgeCount] = G4int (false); + } + // HepPolyhedron produces triangles too; in that case add an extra + // vertex identical to first... + if (n == 3) { + edgeCount = 3; + normals[edgeCount] = normals[0]; + vertex[edgeCount] = vertex[0]; + edgeFlag[edgeCount] = -1; glEdgeFlag (GL_FALSE); + glNormal3d (normals[edgeCount].x(), + normals[edgeCount].y(), + normals[edgeCount].z()); glVertex3d (vertex[edgeCount].x(), vertex[edgeCount].y(), vertex[edgeCount].z()); - edgeCount++; } // Trap situation where number of edges is > 4... - while (notLastEdge) { - notLastFace = polyhedron.GetNextUnitNormal (SurfaceUnitNormal); - edgeCount++; - } - if (edgeCount > 4) { + if (n > 4) { G4cerr << "G4OpenGLSceneHandler::AddPrimitive(G4Polyhedron): WARNING"; if (fpCurrentPV) { @@ -488,7 +512,7 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { " (" << fpCurrentLV->GetSolid()->GetEntityType(); } G4cerr<< - "\n G4Polyhedron facet with " << edgeCount << " edges" << G4endl; + "\n G4Polyhedron facet with " << n << " edges" << G4endl; } // Do it all over again (twice) for hlr... @@ -503,49 +527,91 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { // Draw through stencil... glStencilFunc (GL_EQUAL, 0, 1); glStencilOp (GL_KEEP, GL_KEEP, GL_KEEP); - glPolygonMode (GL_FRONT, GL_FILL); - if (drawing_style == G4ViewParameters::hlhsr) glEnable (GL_LIGHTING); - glBegin (GL_QUADS); - if (drawing_style == G4ViewParameters::hlr) { - glColor4dv (clear_colour); - } else { // drawing_style == G4ViewParameters::hlhsr - glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, materialColour); + if (drawing_style == G4ViewParameters::hlhsr) { + glEnable (GL_LIGHTING); } - glNormal3d(SurfaceUnitNormal.x(), SurfaceUnitNormal.y(), - SurfaceUnitNormal.z()); + glEnable (GL_DEPTH_TEST); + glDepthFunc (GL_LEQUAL); + if (materialColour[3] < 1.) { + // Transparent... + glDepthMask (0); // Make depth buffer read-only. + glDisable (GL_CULL_FACE); + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + } else { + // Opaque... + glDepthMask (1); // Make depth buffer writable (default). + glEnable (GL_CULL_FACE); + glCullFace (GL_BACK); + glPolygonMode (GL_FRONT, GL_FILL); + } + GLfloat* painting_colour; + if (drawing_style == G4ViewParameters::hlr) { + if (materialColour[3] < 1.) { + // Transparent - don't paint... + goto end_of_drawing_through_stencil; + } + painting_colour = clear_colour; + } else { // drawing_style == G4ViewParameters::hlhsr + painting_colour = materialColour; + } + if (materialColour[3] < 1.) { + // Transparent... + glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, painting_colour); + } else { + // Opaque... + glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, painting_colour); + } + glColor4fv (painting_colour); + glBegin (GL_QUADS); for (int edgeCount = 0; edgeCount < 4; ++edgeCount) { - if (edgeFlag[edgeCount]) { + if (edgeFlag[edgeCount] > 0) { glEdgeFlag (GL_TRUE); } else { glEdgeFlag (GL_FALSE); } + glNormal3d (normals[edgeCount].x(), + normals[edgeCount].y(), + normals[edgeCount].z()); glVertex3d (vertex[edgeCount].x(), vertex[edgeCount].y(), vertex[edgeCount].z()); } glEnd (); - glDisable (GL_LIGHTING); + end_of_drawing_through_stencil: // and once more to reset the stencil bits... glStencilFunc (GL_ALWAYS, 0, 1); glStencilOp (GL_INVERT, GL_INVERT, GL_INVERT); glDepthFunc (GL_LEQUAL); // to make sure line gets drawn. - glPolygonMode (GL_FRONT, GL_LINE); + if (materialColour[3] < 1.) { + // Transparent... + glDisable (GL_CULL_FACE); + glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); + } else { + // Opaque... + glEnable (GL_CULL_FACE); + glCullFace (GL_BACK); + glPolygonMode (GL_FRONT, GL_LINE); + } + glDisable (GL_LIGHTING); glColor3d (c.GetRed (), c.GetGreen (), c.GetBlue ()); glBegin (GL_QUADS); for (int edgeCount = 0; edgeCount < 4; ++edgeCount) { - if (edgeFlag[edgeCount]) { + if (edgeFlag[edgeCount] > 0) { glEdgeFlag (GL_TRUE); } else { glEdgeFlag (GL_FALSE); } + glNormal3d (normals[edgeCount].x(), + normals[edgeCount].y(), + normals[edgeCount].z()); glVertex3d (vertex[edgeCount].x(), vertex[edgeCount].y(), vertex[edgeCount].z()); } glEnd (); - glDepthFunc (GL_LESS); // Revert for next quadrilateral. - glBegin (GL_QUADS); // Ready for next quadrilateral. GL + glDepthFunc (GL_LEQUAL); // Revert for next facet. + glBegin (GL_QUADS); // Ready for next facet. GL // says it ignores incomplete // quadrilaterals, so final empty // glBegin/End sequence should be OK. @@ -553,7 +619,8 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { } while (notLastFace); glEnd (); - glDisable (GL_STENCIL_TEST); + glDisable (GL_STENCIL_TEST); // Revert to default for next primitive. + glDepthMask (1); // Revert to default for next primitive. } //Method for handling G4NURBS objects for drawing solids. @@ -608,7 +675,9 @@ void G4OpenGLSceneHandler::AddPrimitive (const G4NURBS& nurb) { materialColour [0] = c.GetRed (); materialColour [1] = c.GetGreen (); materialColour [2] = c.GetBlue (); - materialColour [3] = 1.0; + materialColour [3] = 1.0; // = c.GetAlpha () for transparency - + // but see complication in + // AddPrimitive(const G4Polyhedron&). glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, materialColour); break; } diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc index 22df609a94..33a5d52517 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredSceneHandler.cc,v 1.20 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLStoredSceneHandler.cc,v 1.23 2005/09/29 14:27:03 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 @@ -40,7 +40,9 @@ #include "G4OpenGLStoredSceneHandler.hh" +#include "G4OpenGLViewerDataStore.hh" #include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" G4OpenGLStoredSceneHandler::G4OpenGLStoredSceneHandler (G4VGraphicsSystem& system, const G4String& name): @@ -196,13 +198,45 @@ void G4OpenGLStoredSceneHandler::ClearTransientStore () { void G4OpenGLStoredSceneHandler::RequestPrimitives (const G4VSolid& solid) { if (fReadyForTransients) { + // Always draw transient solids, e.g., hits represented as solids. + // (As we have no control over the order of drawing of transient + // objects, we cannot do anything about transparent ones, as + // below, so always draw them.) G4VSceneHandler::RequestPrimitives (solid); } else { - // Stop-gap solution for display List re-use. A proper - // implementation would use geometry hierarchy. + + // For non-transient (run-duration) objects, ensure transparent + // objects are drawn last. The problem of + // blending/transparency/alpha is quite a tricky one - see History + // of opengl-V07-01-01/2/3. + // Get vis attributes - pick up defaults if none. + const G4VisAttributes* pVA = + fpViewer -> GetApplicableVisAttributes(fpVisAttribs); + const G4Colour& c = pVA -> GetColour (); + G4double opacity = c.GetAlpha (); + if (!fSecondPass) { + G4bool transparency_enabled = + G4OpenGLViewerDataStore::GetTransparencyEnabled(fpViewer); + if (transparency_enabled && opacity < 1.) { + // On first pass, transparent objects are not drawn, but flag is set... + fSecondPassRequested = true; + return; + } + } + // On second pass, opaque objects are not drwan... + if (fSecondPass && opacity >= 1.) return; + + // If a display list already exists for this solid, re-use it if + // possible. We could be smarter, and recognise repeated branches + // of the geometry hierarchy, for example. But this a;gorithm + // should be secure, I think... const G4VSolid* pSolid = &solid; - if (fpCurrentPV && !(fpCurrentPV -> IsReplicated ()) && + if (fpCurrentPV && + // Provided it is not replicated (because if so, the solid's + // parameters might have been changed)... + !(fpCurrentPV -> IsReplicated ()) && + // ...and if the solid has already been rendered... (fSolidMap.find (pSolid) != fSolidMap.end ())) { fDisplayListId = fSolidMap [pSolid]; fPODLList.push_back (fDisplayListId); diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc index 2e2b4006b3..8a126efb81 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredViewer.cc,v 1.11 2004/11/18 15:19:40 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLStoredViewer.cc,v 1.13 2005/10/13 17:30:08 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 @@ -78,7 +78,8 @@ G4bool G4OpenGLStoredViewer::CompareForKernelVisit(G4ViewParameters& lastVP) { fVP.GetCutawayPlanes ().size ()) || // No need to visit kernel if cutaway planes change. (lastVP.IsExplode () != fVP.IsExplode ()) || - (lastVP.GetNoOfSides () != fVP.GetNoOfSides ()) + (lastVP.GetNoOfSides () != fVP.GetNoOfSides ()) || + (lastVP.GetBackgroundColour ()!= fVP.GetBackgroundColour ()) ) { return true; } diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc index f7084fdefe..e1eefe12ef 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredWin32.cc,v 1.12 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // OpenGLStoredWin32 graphics system factory. diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc index e105424dcb..1682ce8414 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.10 2005/11/17 07:36:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Class G4OpenGLStoredWin32Viewer : a class derived from G4OpenGLWin32Viewer and @@ -63,11 +63,10 @@ void G4OpenGLStoredWin32Viewer::Initialise () { void G4OpenGLStoredWin32Viewer::DrawView () { - if (white_background == true) { - glClearColor (1., 1., 1., 1.); - } else { - glClearColor (0., 0., 0., 1.); - } + glClearColor (background.GetRed(), + background.GetGreen(), + background.GetBlue(), + 1.); //Make sure current viewer is attached and clean... //Win32 version needed diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredX.cc b/source/visualization/OpenGL/src/G4OpenGLStoredX.cc index b08d912ce6..cb9ca86d34 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredX.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredX.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredX.cc,v 1.10 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc index 7fa31bb2d3..ca4899619b 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXViewer.cc,v 1.12 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLStoredXViewer.cc,v 1.13 2005/10/13 17:30:08 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 @@ -77,11 +77,10 @@ void G4OpenGLStoredXViewer::DrawView () { glXMakeCurrent (dpy, win, cx); glViewport (0, 0, WinSize_x, WinSize_y); - if (white_background == true) { - glClearColor (1., 1., 1., 1.); - } else { - glClearColor (0., 0., 0., 1.); - } + glClearColor (background.GetRed(), + background.GetGreen(), + background.GetBlue(), + 1.); ClearView (); diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc index e2b32305a8..d969062f41 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXm.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLStoredXm.cc,v 1.8 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc index 4118372730..7cd5c1efe1 100644 --- a/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLStoredXmViewer.cc,v 1.11 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLStoredXmViewer.cc,v 1.13 2005/10/13 17:30:08 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 @@ -73,16 +73,14 @@ void G4OpenGLStoredXmViewer::Initialise () { glEnable (GL_BLEND); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glShadeModel (GL_FLAT); } void G4OpenGLStoredXmViewer::DrawView () { - if (white_background == true) { - glClearColor (1., 1., 1., 1.); - } else { - glClearColor (0., 0., 0., 1.); - } + glClearColor (background.GetRed(), + background.GetGreen(), + background.GetBlue(), + 1.); //Make sure current viewer is attached and clean... glXMakeCurrent (dpy, win, cx); diff --git a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc index 871ea2149e..27ccb8e082 100644 --- a/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc +++ b/source/visualization/OpenGL/src/G4OpenGLTransform3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLTransform3D.cc,v 1.7 2004/09/13 12:12:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 24th October 1996 diff --git a/source/visualization/OpenGL/src/G4OpenGLViewer.cc b/source/visualization/OpenGL/src/G4OpenGLViewer.cc index 5f11cd12ef..97d53266a4 100644 --- a/source/visualization/OpenGL/src/G4OpenGLViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLViewer.cc,v 1.19 2004/07/09 15:44:26 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLViewer.cc,v 1.22 2005/10/13 17:31:47 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 27th March 1996 @@ -32,6 +32,7 @@ #include "G4ios.hh" #include "G4OpenGLViewer.hh" +#include "G4OpenGLViewerDataStore.hh" #include "G4OpenGLSceneHandler.hh" #include "G4OpenGLTransform3D.hh" @@ -45,8 +46,8 @@ G4OpenGLViewer::G4OpenGLViewer (G4OpenGLSceneHandler& scene): G4VViewer (scene, -1), -white_background (false), -transparency_enabled (false), +background (G4Colour(0.,0.,0.)), +transparency_enabled (true), antialiasing_enabled (false), haloing_enabled (false) { @@ -54,6 +55,8 @@ haloing_enabled (false) fVP.SetAutoRefresh(true); fDefaultVP.SetAutoRefresh(true); + G4OpenGLViewerDataStore::SetTransparencyEnabled(this, transparency_enabled); + // glClearColor (0.0, 0.0, 0.0, 0.0); // glClearDepth (1.0); // glDisable (GL_BLEND); @@ -120,6 +123,9 @@ void G4OpenGLViewer::SetView () { glMatrixMode (GL_PROJECTION); // set up Frustum. glLoadIdentity(); + + const G4Vector3D scale = fVP.GetScaleFactor(); + glScaled(scale.x(),scale.y(),scale.z()); if (fVP.GetFieldHalfAngle() == 0.) { glOrtho (left, right, bottom, top, pnear, pfar); @@ -169,7 +175,10 @@ void G4OpenGLViewer::SetView () { glDisable (GL_CLIP_PLANE0); glDisable (GL_CLIP_PLANE1); } - + + // Background. + background = fVP.GetBackgroundColour (); + } void G4OpenGLViewer::HaloingFirstPass () { diff --git a/source/particles/hadrons/mesons/src/G4VMeson.cc b/source/visualization/OpenGL/src/G4OpenGLViewerDataStore.cc similarity index 68% rename from source/particles/hadrons/mesons/src/G4VMeson.cc rename to source/visualization/OpenGL/src/G4OpenGLViewerDataStore.cc index e04b6d2a9c..c0d7576b79 100644 --- a/source/particles/hadrons/mesons/src/G4VMeson.cc +++ b/source/visualization/OpenGL/src/G4OpenGLViewerDataStore.cc @@ -21,22 +21,25 @@ // ******************************************************************** // // -// $Id: G4VMeson.cc,v 1.3 2001/07/11 10:01:51 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLViewerDataStore.cc,v 1.1 2005/09/29 14:26:18 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// -// -------------------------------------------------------------- -// GEANT 4 class implementation file -// -// History: first implementation, based on object model of -// 2nd December 1995, G.Cosmo -// -------------------------------------------------------------- -#include "G4VMeson.hh" +#include "G4OpenGLViewerDataStore.hh" -const G4VMeson & G4VMeson::operator=(const G4VMeson &right) -{ - if (this != &right) { - } return right; +std::map G4OpenGLViewerDataStore::fTransparencyEnabledMap; + +void G4OpenGLViewerDataStore::SetTransparencyEnabled +(G4VViewer* viewer, G4bool transparency_enabled) { + fTransparencyEnabledMap[viewer] = transparency_enabled; } +G4bool G4OpenGLViewerDataStore::GetTransparencyEnabled(G4VViewer* viewer) { + std::map::const_iterator i; + i = fTransparencyEnabledMap.find(viewer); + if (i != fTransparencyEnabledMap.end()) { + return i->second; + } else { + return true; // Default. + } +} diff --git a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc index eae384a503..03b00cf60a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLWin32Viewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLWin32Viewer.cc,v 1.14 2004/11/15 12:13:08 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // G4OpenGLWin32Viewer : Class to provide WindowsNT specific diff --git a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc index 6c70686b5d..c9d92ba8e6 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXViewer.cc,v 1.25 2005/04/22 12:02:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLXViewer.cc,v 1.28 2005/11/22 16:10:12 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 7th February 1997 @@ -223,35 +223,58 @@ void G4OpenGLXViewer::CreateMainWindow () { swa.event_mask = ExposureMask | ButtonPressMask | StructureNotifyMask; swa.backing_store = WhenMapped; + // Window size and position... + unsigned int width, height; + x_origin = 0; + y_origin = 0; + size_hints = XAllocSizeHints(); + const G4String& XGeometryString = fVP.GetXGeometryString(); + int screen_num = DefaultScreen(dpy); + if (!XGeometryString.empty()) { + G4int geometryResultMask = XParseGeometry + ((char*)XGeometryString.c_str(), + &x_origin, &y_origin, &width, &height); + if (geometryResultMask & (WidthValue | HeightValue)) { + if (geometryResultMask & XValue) { + if (geometryResultMask & XNegative) { + x_origin = DisplayWidth(dpy, screen_num) + x_origin - width; + } + size_hints->flags |= PPosition; + size_hints->x = x_origin; + } + if (geometryResultMask & YValue) { + if (geometryResultMask & YNegative) { + y_origin = DisplayHeight(dpy, screen_num) + y_origin - height; + } + size_hints->flags |= PPosition; + size_hints->y = y_origin; + } + } else { + G4cout << "ERROR: Geometry string \"" + << XGeometryString + << "\" invalid. Using \"600x600\"." + << G4endl; + width = 600; + height = 600; + } + } + size_hints->width = width; + size_hints->height = height; + size_hints->flags |= PSize; + // G4int WinSize_x; // G4int WinSize_y; - if (xwa.width > xwa.height) { - WinSize_x = (xwa.height)/2; - WinSize_y = (xwa.height)/2; - } - else { - WinSize_x = (xwa.width)/2; - WinSize_y = (xwa.width)/2; - } - if (WinSize_x < fVP.GetWindowSizeHintX ()) - WinSize_x = fVP.GetWindowSizeHintX (); - if (WinSize_y < fVP.GetWindowSizeHintY ()) - WinSize_y = fVP.GetWindowSizeHintY (); - x_origin = xwa.x; - y_origin = xwa.y; + WinSize_x = width; + WinSize_y = height; + G4cout << "Window name: " << fName << G4endl; strncpy (charViewName, fName, 100); char *window_name = charViewName; char *icon_name = charViewName; //char tmpatom[] = "XA_WM_NORMAL_HINTS"; - size_hints = XAllocSizeHints(); wm_hints = XAllocWMHints(); class_hints = XAllocClassHint(); - size_hints -> flags = PPosition | PSize | PMinSize; - size_hints -> min_width = 300; - size_hints -> min_height = 200; - XStringListToTextProperty (&window_name, 1, &windowName); XStringListToTextProperty (&icon_name, 1, &iconName); diff --git a/source/visualization/OpenGL/src/G4OpenGLXmBox.cc b/source/visualization/OpenGL/src/G4OpenGLXmBox.cc index dcd785da22..a63b6db0a5 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmBox.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmBox.cc,v 1.5 2001/07/11 10:08:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Box container class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc index 6334bbd664..c473e529ee 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmConvenienceRoutines.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmConvenienceRoutines.cc,v 1.10 2004/12/07 23:40:59 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc b/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc index 004ce46904..a1bcb4df84 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmFourArrowButtons.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmFourArrowButtons.cc,v 1.4 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Four arrow buttons class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc b/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc index 8b69212cf6..86b5075b46 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmFramedBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmFramedBox.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Framed box container class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc index 8d5e17b929..fbe34420cf 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmMainMenubarCallbacks.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmMainMenubarCallbacks.cc,v 1.11 2004/07/01 15:29:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLXmMainMenubarCallbacks.cc,v 1.12 2005/10/13 17:33:24 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 16th April 1997 @@ -52,7 +52,7 @@ #include "G4OpenGLXmTopLevelShell.hh" #include "G4OpenGLXmSeparator.hh" -#include +#include void G4OpenGLXmViewer::actions_callback (Widget w, XtPointer clientData, @@ -74,14 +74,11 @@ void G4OpenGLXmViewer::actions_callback (Widget w, { if (!pView->fprotation_top) { - const int rot_len = 50; - char* frot_Name = new char [rot_len]; - std::ostrstream rot_ost (frot_Name, rot_len); - rot_ost.seekp (std::ios::beg); - rot_ost << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId << std::ends; + std::ostringstream rot_Name; + rot_Name << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId; - pView->fprotation_top = new G4OpenGLXmTopLevelShell (pView, - frot_Name); + pView->fprotation_top = new G4OpenGLXmTopLevelShell (pView, + (char*)rot_Name.str().c_str()); pView->fprotation_button_box = new G4OpenGLXmBox ("Rotation button box", True); pView->fprotation_top->AddChild (pView->fprotation_button_box); @@ -161,14 +158,11 @@ void G4OpenGLXmViewer::actions_callback (Widget w, { if (!pView->fppanning_top) { - const int pan_len = 50; - char* fpan_Name = new char [pan_len]; - std::ostrstream pan_ost (fpan_Name, pan_len); - pan_ost.seekp (std::ios::beg); - pan_ost << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId << std::ends; + std::ostringstream pan_Name; + pan_Name << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId; pView->fppanning_top = new G4OpenGLXmTopLevelShell (pView, - fpan_Name); + (char*)pan_Name.str().c_str()); pView->fppanning_box = new G4OpenGLXmFramedBox ("Pan up-down-left-right", False); @@ -261,14 +255,11 @@ void G4OpenGLXmViewer::actions_callback (Widget w, { if (!pView->fpsetting_top) { - const int set_len = 50; - char* fset_Name = new char [set_len]; - std::ostrstream set_ost (fset_Name, set_len); - set_ost.seekp (std::ios::beg); - set_ost << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId << std::ends; + std::ostringstream set_Name; + set_Name << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId; pView->fpsetting_top = new G4OpenGLXmTopLevelShell(pView, - fset_Name); + (char*)set_Name.str().c_str()); pView->fpsetting_box = new G4OpenGLXmFramedBox ("Set values for control panels", False); @@ -342,14 +333,11 @@ void G4OpenGLXmViewer::misc_callback (Widget w, if (!pView->fpmiscellany_top) { - const int misc_len = 50; - char* fmisc_Name = new char [misc_len]; - std::ostrstream misc_ost (fmisc_Name, misc_len); - misc_ost.seekp (std::ios::beg); - misc_ost << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId << std::ends; + std::ostringstream misc_Name; + misc_Name << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId; pView->fpmiscellany_top = new G4OpenGLXmTopLevelShell (pView, - fmisc_Name); + (char*)misc_Name.str().c_str()); pView->fpwobble_box = new G4OpenGLXmFramedBox ("Wobble view", True); pView->fpmiscellany_top->AddChild (pView->fpwobble_box); @@ -437,14 +425,11 @@ void G4OpenGLXmViewer::misc_callback (Widget w, { if (!pView->fpprint_top) { - const int print_len = 50; - char* fprint_Name = new char [print_len]; - std::ostrstream print_ost (fprint_Name, print_len); - print_ost.seekp (std::ios::beg); - print_ost << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId << std::ends; + std::ostringstream print_Name; + print_Name << pView->GetSceneHandler()->GetSceneHandlerId() << '-' << pView->fViewId; pView->fpprint_top = new G4OpenGLXmTopLevelShell (pView, - fprint_Name); + (char*)print_Name.str().c_str()); pView->fpprint_box = new G4OpenGLXmFramedBox ("Create EPS file of current view", False); diff --git a/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc index c707534da7..742575b971 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmPanningCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmPanningCallbacks.cc,v 1.7 2004/07/01 15:28:09 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc b/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc index cc3c7e4ebb..9889d401bf 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmPushButton.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmPushButton.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Push button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc b/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc index 422240dac8..9800eb3f4b 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmRadioButton.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmRadioButton.cc,v 1.5 2001/07/11 10:08:57 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Radio button class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc index 47e5e36076..4fedaba9af 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmRotationCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmRotationCallbacks.cc,v 1.13 2004/12/10 18:16:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 16th April 1997 diff --git a/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc b/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc index 6011705161..0f0c4db6fb 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmSeparator.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSeparator.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Separator class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc b/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc index a71e051380..489e08d4d8 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmSliderBar.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmSliderBar.cc,v 1.6 2004/12/07 23:40:59 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Slider bar class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc index 9c466833d8..47ef94c677 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmStyleCallbacks.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmStyleCallbacks.cc,v 1.8 2005/02/23 11:24:52 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLXmStyleCallbacks.cc,v 1.12 2005/10/13 17:30:08 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 16th April 1997 @@ -35,6 +35,8 @@ #include "G4OpenGLXmViewer.hh" +#include "G4OpenGLViewerDataStore.hh" + void G4OpenGLXmViewer::drawing_style_callback (Widget w, XtPointer clientData, XtPointer) @@ -120,27 +122,21 @@ void G4OpenGLXmViewer::background_color_callback (Widget w, NULL); - //I need to revisit the kernel if the background colour changes and hidden - //line removal is enabled, because hlr drawing utilises the background - //colour in its drawing... + //I need to revisit the kernel if the background colour changes and + //hidden line removal is enabled, because hlr drawing utilises the + //background colour in its drawing... + // (Note added by JA 13/9/2005) Background now handled in view + // parameters. A kernel visit is triggered on change of background. switch (choice) { case 0: - if (!pView->white_background) { - pView->white_background = true; - if (pView->GetViewParameters().GetDrawingStyle() == G4ViewParameters::hlr) { - pView->SetNeedKernelVisit (true); - } - } + ((G4ViewParameters&)pView->GetViewParameters()). + SetBackgroundColour(G4Colour(1.,1.,1.)); // White break; case 1: - if (pView->white_background) { - pView->white_background = false; - if (pView->GetViewParameters().GetDrawingStyle() == G4ViewParameters::hlr) { - pView->SetNeedKernelVisit (true); - } - } + ((G4ViewParameters&)pView->GetViewParameters()). + SetBackgroundColour(G4Colour(0.,0.,0.)); // Black break; default: @@ -166,20 +162,19 @@ void G4OpenGLXmViewer::transparency_callback (Widget w, case 0: pView->transparency_enabled = false; - glDisable (GL_BLEND); + G4OpenGLViewerDataStore::SetTransparencyEnabled(pView, false); break; case 1: pView->transparency_enabled = true; - glEnable (GL_BLEND); - glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glShadeModel (GL_FLAT); + G4OpenGLViewerDataStore::SetTransparencyEnabled(pView, true); break; default: G4Exception("Unrecognised case in transparency_callback."); } + pView->SetNeedKernelVisit (true); pView->SetView (); pView->ClearView (); pView->DrawView (); diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc b/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc index 0becebeda5..c34ebf14dc 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmTextField.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmTextField.cc,v 1.6 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Text field class. Inherits from G4OpenGLXmVWidgetComponent diff --git a/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc b/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc index 2b1ababc45..343d6ec02a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmTopLevelShell.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmTopLevelShell.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Top level shell class diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc index 194b037b77..4f2ab9e6a0 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetComponent.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetComponent.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Base class for all Motif component widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc index fb754b130a..152d4085c7 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetContainer.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetContainer.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Base class for all Motif container widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc index d88099e10c..8034e000cd 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetObject.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetObject.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Virtual base class for all Motif widgets. diff --git a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc index fd36d68f2a..d034ffa9d3 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmVWidgetShell.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmVWidgetShell.cc,v 1.4 2001/07/11 10:08:58 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // //Base class for all Motif shell widgets diff --git a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc index b17edb78f5..8c49e8758a 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenGLXmViewer.cc,v 1.16 2005/04/22 12:02:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenGLXmViewer.cc,v 1.21 2005/11/22 16:03:23 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 10th February 1997 @@ -34,8 +34,7 @@ #include "globals.hh" #include "G4OpenGLXmViewer.hh" - -#include "G4ios.hh" +#include "G4OpenGLXmViewerMessenger.hh" #include "G4VisExtent.hh" #include "G4LogicalVolume.hh" @@ -48,6 +47,8 @@ #include "G4Xt.hh" #include +#include + void G4OpenGLXmViewer::ShowView () { G4Xt::getInstance () -> SecondaryLoop (); @@ -68,26 +69,33 @@ void G4OpenGLXmViewer::GetXmConnection () { } // Better to put this in an X11 resource file !!! - interactorManager->PutStringInResourceDatabase ((char*)"\ -*glxarea*width: 500\n\ -*glxarea*height: 500\n\ -*frame*x: 10\n\ -*frame*y: 10\n\ -*frame*topOffset: 10\n\ -*frame*bottomOffset: 10\n\ -*frame*rightOffset: 10\n\ -*frame*leftOffset: 10\n\ -*frame*shadowType: SHADOW_IN\n\ -*frame*useColorObj: False\n\ -*frame*primaryColorSetId: 3\n\ -*frame*secondaryColorSetId: 3\n\ -*menubar*useColorObj: False\n\ -*menubar*primaryColorSetId: 3\n\ -*menubar*secondaryColorSetId: 3\n\ -*toplevel*useColorObj: False\n\ -*toplevel*primaryColorSetId: 3\n\ -*toplevel*secondaryColorSetId: 3\n\ -"); + std::ostringstream oss; + oss << + "*glxarea*width: " << fVP.GetWindowSizeHintX() << "\n" + "*glxarea*height: " << fVP.GetWindowSizeHintY() << "\n" + /* + // Tried this as a replacement for the above two lines, but + // sub-windows (rotation, etc.) came same size!! + "*geometry: " << fVP.GetXGeometryString() << "\n" + */ + "*frame*x: 10\n" + "*frame*y: 10\n" + "*frame*topOffset: 10\n" + "*frame*bottomOffset: 10\n" + "*frame*rightOffset: 10\n" + "*frame*leftOffset: 10\n" + "*frame*shadowType: SHADOW_IN\n" + "*frame*useColorObj: False\n" + "*frame*primaryColorSetId: 3\n" + "*frame*secondaryColorSetId: 3\n" + "*menubar*useColorObj: False\n" + "*menubar*primaryColorSetId: 3\n" + "*menubar*secondaryColorSetId: 3\n" + "*toplevel*useColorObj: False\n" + "*toplevel*primaryColorSetId: 3\n" + "*toplevel*secondaryColorSetId: 3\n"; + interactorManager->PutStringInResourceDatabase ((char*)oss.str().c_str()); + // interactorManager->AddSecondaryLoopPostAction ((G4SecondaryLoopAction)G4OpenGLXmViewerSecondaryLoopPostAction); shell = XtAppCreateShell ((String)fName.data(),(String)fName.data(),topLevelShellWidgetClass,XtDisplay(toplevel),NULL,0); @@ -311,18 +319,18 @@ void G4OpenGLXmViewer::CreateMainWindow () { XtNbackground, bgnd, NULL); - if (white_background == true) { + if (background.GetRed() == 1. && + background.GetGreen() == 1. && + background.GetBlue() == 1.) { special_widget = XtNameToWidget(background_color_pullright, "button_0"); if(special_widget) { XtVaSetValues (special_widget, XmNset, True, NULL); } - } else if (white_background == false) { + } else { special_widget = XtNameToWidget(background_color_pullright, "button_1"); if(special_widget) { XtVaSetValues (special_widget, XmNset, True, NULL); } - } else { - G4Exception("white_background in G4OpenGLXmViewer is neither true nor false!!"); } XmStringFree (white_str); @@ -609,17 +617,20 @@ rot_sens (4.), wob_sens (20.), original_vp(fVP.GetViewpointDirection()), frameNo (0), -fprotation_top (NULL), -fprotation_slider (NULL), -fppanning_top (NULL), -fppanning_slider (NULL), -fpzoom_slider (NULL), -fpdolly_slider (NULL), -fpsetting_top (NULL), -fpmiscellany_top (NULL), -fpprint_top (NULL) +fprotation_top (0), +fprotation_slider (0), +fppanning_top (0), +fppanning_slider (0), +fpzoom_slider (0), +fpdolly_slider (0), +fpsetting_top (0), +fpmiscellany_top (0), +fpprint_top (0), +fpMessenger (0) { + fpMessenger = new G4OpenGLXmViewerMessenger(this, fShortName); + WinSize_x = 100; WinSize_y = 100; @@ -652,6 +663,8 @@ G4OpenGLXmViewer::~G4OpenGLXmViewer () delete fpmiscellany_top; } ******************************/ + + delete fpMessenger; } #endif diff --git a/source/visualization/OpenGL/src/G4OpenGLXmViewerMessenger.cc b/source/visualization/OpenGL/src/G4OpenGLXmViewerMessenger.cc new file mode 100644 index 0000000000..5e0acee1dc --- /dev/null +++ b/source/visualization/OpenGL/src/G4OpenGLXmViewerMessenger.cc @@ -0,0 +1,261 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4OpenGLXmViewerMessenger.cc,v 1.2 2005/11/24 10:23:43 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + +#ifdef G4VIS_BUILD_OPENGLXM_DRIVER + +#include "G4OpenGLXmViewerMessenger.hh" + +#include "G4OpenGLXmViewer.hh" +#include "G4OpenGLXmSliderBar.hh" + +#include "G4UImanager.hh" +#include "G4UIcommand.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithADouble.hh" + +G4OpenGLXmViewerMessenger::G4OpenGLXmViewerMessenger +(G4OpenGLXmViewer* viewer, const G4String& viewerShortName): + fpViewer(viewer), + fViewerShortName(viewerShortName) +{ + G4String directoryName; + G4String guidance; + G4String commandName; + G4bool omitable; + + directoryName = "/vis/oglxm-" + fViewerShortName + '/'; + fpDirectory = new G4UIdirectory(directoryName); + guidance = "G4OpenGLXmViewer \"" + fViewerShortName + "\" commands."; + fpDirectory -> SetGuidance(guidance); + + directoryName = directoryName + "set/"; + fpDirectorySet = new G4UIdirectory (directoryName); + guidance = "G4OpenGLXmViewer \"" + fViewerShortName + "\" set commands."; + fpDirectorySet -> SetGuidance(guidance); + + commandName = directoryName + "dolly-high"; + fpCommandSetDollyHigh = new G4UIcmdWithADoubleAndUnit + (commandName, this); + fpCommandSetDollyHigh -> SetGuidance("Higher limit of dolly slider."); + fpCommandSetDollyHigh -> SetParameterName("dolly-high", omitable = false); + + commandName = directoryName + "dolly-low"; + fpCommandSetDollyLow = new G4UIcmdWithADoubleAndUnit + (commandName, this); + fpCommandSetDollyLow -> SetGuidance("Lower limit of dolly slider."); + fpCommandSetDollyLow -> SetParameterName("dolly-low", omitable = false); + + commandName = directoryName + "pan-high"; + fpCommandSetPanHigh = new G4UIcmdWithADoubleAndUnit + (commandName, this); + fpCommandSetPanHigh -> SetGuidance("Higher limit of pan slider."); + fpCommandSetPanHigh -> SetParameterName("pan-high", omitable = false); + + commandName = directoryName + "rotation-high"; + fpCommandSetRotationHigh = new G4UIcmdWithADoubleAndUnit + (commandName, this); + fpCommandSetRotationHigh -> SetGuidance("Higher limit of rotation slider."); + fpCommandSetRotationHigh -> SetParameterName("rotation-high", omitable = false); + + commandName = directoryName + "zoom-high"; + fpCommandSetZoomHigh = new G4UIcmdWithADouble + (commandName, this); + fpCommandSetZoomHigh -> SetGuidance("Higher limit of zoom slider."); + fpCommandSetZoomHigh -> SetParameterName("zoom-high", omitable = false); + + commandName = directoryName + "zoom-low"; + fpCommandSetZoomLow = new G4UIcmdWithADouble + (commandName, this); + fpCommandSetZoomLow -> SetGuidance("Lower limit of zoom slider."); + fpCommandSetZoomLow -> SetParameterName("zoom-low", omitable = false); +} + +G4OpenGLXmViewerMessenger::~G4OpenGLXmViewerMessenger () +{ + delete fpCommandSetZoomLow; + delete fpCommandSetZoomHigh; + delete fpCommandSetRotationHigh; + delete fpCommandSetPanHigh; + delete fpCommandSetDollyLow; + delete fpCommandSetDollyHigh; + delete fpDirectorySet; + delete fpDirectory; +} + +void G4OpenGLXmViewerMessenger::SetNewValue +(G4UIcommand* command, G4String newValue) +{ + G4bool panningControlPanel = true; + G4bool rotationControlPanel = true; + + if (command == fpCommandSetDollyHigh) + { + if (fpViewer->fpdolly_slider) + { + fpViewer->dolly_high = + fpCommandSetDollyHigh->GetNewDoubleValue(newValue); + fpViewer->fpdolly_slider->SetMaxValue (fpViewer->dolly_high); + if (fpViewer->fVP.GetDolly() > fpViewer->dolly_high) + { + fpViewer->fpdolly_slider->SetInitialValue (fpViewer->dolly_high); + fpViewer->fVP.SetDolly(fpViewer->dolly_high); + } + else + { + fpViewer->fpdolly_slider->SetInitialValue (fpViewer->fVP.GetDolly()); + } + } + else + { + panningControlPanel = false; + } + } + + else if (command == fpCommandSetDollyLow) + { + if (fpViewer->fpdolly_slider) + { + fpViewer->dolly_low = + fpCommandSetDollyLow->GetNewDoubleValue(newValue); + fpViewer->fpdolly_slider->SetMinValue (fpViewer->dolly_low); + if (fpViewer->fVP.GetDolly() < fpViewer->dolly_low) + { + fpViewer->fpdolly_slider->SetInitialValue (fpViewer->dolly_low); + fpViewer->fVP.SetDolly(fpViewer->dolly_low); + } + else + { + fpViewer->fpdolly_slider->SetInitialValue (fpViewer->fVP.GetDolly()); + } + } + else + { + panningControlPanel = false; + } + } + + else if (command == fpCommandSetPanHigh) + { + if (fpViewer->fppanning_slider) + { + fpViewer->pan_sens_limit = + fpCommandSetPanHigh->GetNewDoubleValue(newValue); + fpViewer->fppanning_slider->SetMaxValue (fpViewer->pan_sens_limit); + fpViewer->fppanning_slider->SetInitialValue (fpViewer->pan_sens_limit / 2.); + } + else + { + panningControlPanel = false; + } + } + + else if (command == fpCommandSetRotationHigh) + { + if (fpViewer->fprotation_slider) + { + // Internally in OpenGLXm, it's in degrees... + fpViewer->rot_sens_limit = + fpCommandSetRotationHigh->GetNewDoubleValue(newValue) / deg; + fpViewer->fprotation_slider->SetMaxValue (fpViewer->rot_sens_limit); + fpViewer->fprotation_slider->SetInitialValue (fpViewer->rot_sens_limit / 2.); + } + else + { + rotationControlPanel = false; + } + } + + else if (command == fpCommandSetZoomHigh) + { + if (fpViewer->fpzoom_slider) + { + fpViewer->zoom_high = + fpCommandSetZoomHigh->GetNewDoubleValue(newValue); + fpViewer->fpzoom_slider->SetMaxValue (fpViewer->zoom_high); + fpViewer->fpzoom_slider->SetInitialValue (fpViewer->fVP.GetZoomFactor()); + if (fpViewer->fVP.GetZoomFactor() > fpViewer->zoom_high) + { + fpViewer->fpzoom_slider->SetInitialValue (fpViewer->zoom_high); + fpViewer->fVP.SetZoomFactor(fpViewer->zoom_high); + } + else + { + fpViewer->fpzoom_slider->SetInitialValue (fpViewer->fVP.GetZoomFactor()); + } + } + else + { + panningControlPanel = false; + } + } + + else if (command == fpCommandSetZoomLow) + { + if (fpViewer->fpzoom_slider) + { + fpViewer->zoom_low = + fpCommandSetZoomLow->GetNewDoubleValue(newValue); + fpViewer->fpzoom_slider->SetMinValue (fpViewer->zoom_low); + fpViewer->fpzoom_slider->SetInitialValue (fpViewer->fVP.GetZoomFactor()); + if (fpViewer->fVP.GetZoomFactor() < fpViewer->zoom_low) + { + fpViewer->fpzoom_slider->SetInitialValue (fpViewer->zoom_low); + fpViewer->fVP.SetZoomFactor(fpViewer->zoom_low); + } + else + { + fpViewer->fpzoom_slider->SetInitialValue (fpViewer->fVP.GetZoomFactor()); + } + } + else + { + panningControlPanel = false; + } + } + + if (!panningControlPanel) + { + G4cout << + "*** G4OpenGLXmViewerMessenger::SetNewValue: pull down panning" + "\n*** control panel and re-issue command." + << G4endl; + return; + } + + if (!rotationControlPanel) + { + G4cout << + "*** G4OpenGLXmViewerMessenger::SetNewValue: pull down rotation" + "\n*** control panel and re-issue command." + << G4endl; + return; + } + + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/rebuild"); +} + +#endif diff --git a/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc b/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc index c0e4540826..83ede8fc79 100644 --- a/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc +++ b/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1.5 2001/07/11 10:08:59 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 16th June 1997 diff --git a/source/visualization/OpenInventor/History b/source/visualization/OpenInventor/History index d9791b61b8..8309c05272 100644 --- a/source/visualization/OpenInventor/History +++ b/source/visualization/OpenInventor/History @@ -1,4 +1,4 @@ -$Id: History,v 1.65 2005/06/02 16:51:56 allison Exp $ +$Id: History,v 1.73 2005/11/30 16:16:34 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,45 @@ committal in the CVS repository ! History file for visualization/OpenInventor ------------------------------------------- +30th November 2005 Gabriele Cosmo (openinventor-V07-01-04) +- Trivial fix to SoPolyhedron for support of CLHEP-2.0.X series. + +15th November 2005 Guy Barrand (openinventor-V07-01-03) +- G4OpenInventorXtViewer : handle fVP.GetXGeometryString(). +- G4OpenInventorSceneHandler : handle global scale view parameter. + Done in BeginPrimitives and PreAddSolid by doing a + SbMatrix::multRight(sbScale) to the incoming global G4Transform3D matrix. +- G4OpenInventor[Xt,Win]Viewer : handle set background. Done + in the overloaded SetView method. + +17th October 2005 Guy Barrand +- G4OpenInventorViewer::G4OpenInventorViewer : read a g4view.iv + file at creating of a view. If found, the scene graph in g4view.iv + if added at head of the overall scene graph. This permits easy + out of band customization of the scene without having to touch + the code. +- Modification in order to save geometry in an Inventor file. + Addition of an "alternateRep" for the SoPolyhedron (see Inventor doc). + Addition of an "alternateRep" for the SoDetectorTreeKit. + Addition of the SoAlternaterRepAction to traverse a scene graph + and construct / delete the alternate reps. + Modification of G4OpenInventorViewer::WriteInventor to write the + alternateRep of the SoPolyhedron and then save geometry in a + .iv file by using Inventor standard lib. In particular the produced + .iv files are readable by the ivview standard tool. + +2nd September 2005 John Allison (openinventor-V07-01-02) +- Corrected treatment of edgeflags. + +1st August 2005 Gabriele Cosmo (openinventor-V07-01-01) +- Fixed compilation errors and warnings on gcc-4.0.0. Modified files: + SoDetectorTreeKit.cc, gl2ps[.h.cc]. + +20th July 2005 John Allison (openinventor-V07-01-00) +- Changed Geant4_SoPolyhedron to construct from G4Polyhedron rather + than its base class, HepPolyhedron, for possible future + developments. Functionality unchanged. + 2nd June 2005 John Allison (openinventor-V07-00-02) - Changed char* to const char* in gl2psMsg. diff --git a/source/visualization/OpenInventor/include/G4OpenInventor.hh b/source/visualization/OpenInventor/include/G4OpenInventor.hh index 9b53c926d9..3959666cb8 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventor.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventor.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventor.hh,v 1.7 2004/04/08 09:39:37 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // Guy Barrand 26 Mar 1998. // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh index 91b91797ed..b2f70ceee6 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorSceneHandler.hh,v 1.26 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // J Kallenbach 27th Aug 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh index 3bbd150bea..0a895ff24e 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorTransform3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorTransform3D.hh,v 1.6 2004/11/22 14:20:19 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // jck 17 Dec 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorWin.hh b/source/visualization/OpenInventor/include/G4OpenInventorWin.hh index bc9f7a66df..65a44f3628 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorWin.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorWin.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWin.hh,v 1.1 2004/04/08 09:37:30 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh b/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh index b2093ed493..5bf2d4a75f 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWin32.hh,v 1.6 2004/04/08 09:39:38 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/include/G4OpenInventorWinViewer.hh b/source/visualization/OpenInventor/include/G4OpenInventorWinViewer.hh index 21797ee6be..531b9d7093 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorWinViewer.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorWinViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorWinViewer.hh,v 1.7 2004/11/25 13:39:54 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenInventorWinViewer.hh,v 1.8 2005/11/15 08:39:03 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Jeff Kallenbach 01 Aug 1996 @@ -43,6 +43,7 @@ class Geant4_SoWinExaminerViewer; class G4OpenInventorWinViewer: public G4OpenInventorViewer { public: //G4VViewer virtual void FinishView(); + virtual void SetView(); protected: virtual void ViewerRender(); virtual SoCamera* GetCamera(); diff --git a/source/visualization/OpenInventor/include/G4OpenInventorX.hh b/source/visualization/OpenInventor/include/G4OpenInventorX.hh index 884b25d9d2..b00433cada 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorX.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorX.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorX.hh,v 1.6 2004/04/08 09:39:38 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorXt.hh b/source/visualization/OpenInventor/include/G4OpenInventorXt.hh index 854281e6c9..3881f87587 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorXt.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorXt.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorXt.hh,v 1.1 2004/04/08 09:37:30 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Andrew Walkden 27th March 1996 diff --git a/source/visualization/OpenInventor/include/G4OpenInventorXtViewer.hh b/source/visualization/OpenInventor/include/G4OpenInventorXtViewer.hh index de84851ef1..9abe19113a 100644 --- a/source/visualization/OpenInventor/include/G4OpenInventorXtViewer.hh +++ b/source/visualization/OpenInventor/include/G4OpenInventorXtViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorXtViewer.hh,v 1.12 2004/11/25 13:39:54 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenInventorXtViewer.hh,v 1.13 2005/11/15 08:39:03 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Jeff Kallenbach 01 Aug 1996 @@ -42,6 +42,7 @@ class SoXtExaminerViewer; class G4OpenInventorXtViewer: public G4OpenInventorViewer { public: //G4VViewer virtual void FinishView(); + virtual void SetView(); protected: virtual void ViewerRender(); virtual SoCamera* GetCamera(); diff --git a/source/visualization/OpenInventor/include/Geant4_SoPolyhedron.h b/source/visualization/OpenInventor/include/Geant4_SoPolyhedron.h index 0b42ca87f0..5931093a31 100644 --- a/source/visualization/OpenInventor/include/Geant4_SoPolyhedron.h +++ b/source/visualization/OpenInventor/include/Geant4_SoPolyhedron.h @@ -27,20 +27,25 @@ #include #include +#include -class HepPolyhedron; +class G4Polyhedron; /** - * Geant4_SoPolyhedron is an Inventor encapsulation of the HepPolyedron - * class written by E.Chernyaev. In particular Geant4_SoPolyhedron permits + * SoPolyhedron is an Inventor encapsulation of the G4Polyedron + * class written by E.Chernyaev. In particular SoPolyhedron permits * to represent boolean operations over solids. - * The solids are modeled with HepPolyedron objects. The HepPolyhedron - * permits to produce a new HepPolyhedron according to the boolean - * operation done on them. The resulting HepPolyhedron is then given - * to an Geant4_SoPolyhedron for rendering. + * To avoid clashes with other libraries (Geant4) where the G4Polyhedron + * classes may be found, the G4Polyhedron (through usage of CPP macros) + * had been renamed G4Polyhedron in the HEPVis lib. + * The solids are modeled with G4Polyedron objects. The G4Polyhedron + * permits to produce a new G4Polyhedron according to the boolean + * operation done on them. The resulting G4Polyhedron is then given + * to an SoPolyhedron for rendering. * Note that a boolean operation could be rendered in wire frame * by drawing the contour of the resulting solid (not by drawing * the wire frame of a triangulation). + * See the applications/Polyhedron example. */ class Geant4_SoPolyhedron : public SoShape { @@ -48,19 +53,23 @@ class Geant4_SoPolyhedron : public SoShape { public: SoSFBool solid; SoSFBool reducedWireFrame; + SoSFNode alternateRep; public: Geant4_SoPolyhedron(); - Geant4_SoPolyhedron(const HepPolyhedron&); - Geant4_SoPolyhedron(HepPolyhedron*); + Geant4_SoPolyhedron(const G4Polyhedron&); + Geant4_SoPolyhedron(G4Polyhedron*); + virtual void generateAlternateRep(); + virtual void clearAlternateRep(); public: static void initClass(); protected: virtual void computeBBox(SoAction*,SbBox3f&,SbVec3f&); virtual void generatePrimitives(SoAction*); + virtual void doAction(SoAction*); protected: virtual ~Geant4_SoPolyhedron(); private: - HepPolyhedron* fPolyhedron; + G4Polyhedron* fPolyhedron; }; #endif diff --git a/source/visualization/OpenInventor/include/HEPVis/SbMath.h b/source/visualization/OpenInventor/include/HEPVis/SbMath.h index ea5fa14166..a543be6085 100644 --- a/source/visualization/OpenInventor/include/HEPVis/SbMath.h +++ b/source/visualization/OpenInventor/include/HEPVis/SbMath.h @@ -22,7 +22,7 @@ // // // $Id: SbMath.h,v 1.3 2004/12/07 23:40:59 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef HEPVis_SbMath_h #define HEPVis_SbMath_h diff --git a/source/visualization/OpenInventor/include/HEPVis/actions/SoAlternateRepAction.h b/source/visualization/OpenInventor/include/HEPVis/actions/SoAlternateRepAction.h new file mode 100644 index 0000000000..a563f6d640 --- /dev/null +++ b/source/visualization/OpenInventor/include/HEPVis/actions/SoAlternateRepAction.h @@ -0,0 +1,66 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +#ifndef HEPVis_SoAlternateRepAction_h +#define HEPVis_SoAlternateRepAction_h + +// Inheritance : +#include + +#include + +#define SoAlternateRepAction Geant4_SoAlternateRepAction + +class SoAlternateRepAction : public SoAction { + SO_ACTION_HEADER(SoAlternateRepAction); +public: + SoAlternateRepAction(); + virtual ~SoAlternateRepAction(); + static void initClass(void); + void setGenerate(SbBool); + SbBool getGenerate() const; +private: + static void nodeAction(SoAction*,SoNode*); +private: + SbBool fGenerate; +}; + +#define SO_ALTERNATEREP_DO_ACTION(aAction) \ + if(aAction->isOfType(SoAlternateRepAction::getClassTypeId())) {\ + if(((SoAlternateRepAction*)aAction)->getGenerate()==TRUE) {\ + if(alternateRep.getValue()==NULL) {\ + generateAlternateRep();\ + SoNode* altRep = alternateRep.getValue();\ + if((altRep!=NULL) && altRep->isOfType(SoGroup::getClassTypeId()))\ + altRep->doAction(aAction);\ + }\ + } else {\ + SoNode* altRep = alternateRep.getValue();\ + if((altRep!=NULL) && altRep->isOfType(SoGroup::getClassTypeId()))\ + altRep->doAction(aAction);\ + clearAlternateRep();\ + }\ + return;\ + } + + +#endif diff --git a/source/visualization/OpenInventor/include/HEPVis/nodekits/SoDetectorTreeKit.h b/source/visualization/OpenInventor/include/HEPVis/nodekits/SoDetectorTreeKit.h index 08d2b99fdc..a490fbd060 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodekits/SoDetectorTreeKit.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodekits/SoDetectorTreeKit.h @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: SoDetectorTreeKit.h,v 1.3 2004/11/22 22:57:01 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: SoDetectorTreeKit.h,v 1.4 2005/10/17 07:21:44 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -/*-----------------------------Hepvis----------------------------------------*/ +/*-----------------------------HEPVis----------------------------------------*/ /* */ /* Node: SoDetectorTreeKit */ /* Description: Easy way of browsing through a tree of detectors */ @@ -34,11 +34,10 @@ #ifndef HEPVis_SoDetectorTreeKit_h #define HEPVis_SoDetectorTreeKit_h +// Inheritance : #include -#include -class SoSFNode; -class SoHandleEventAction; +class SoEventCallback; class SoSeparator; #define SoDetectorTreeKit Geant4_SoDetectorTreeKit @@ -49,7 +48,9 @@ class SoDetectorTreeKit:public SoBaseKit { // The following is required: SO_KIT_HEADER(SoDetectorTreeKit); //////////////////////////////////////////// - SoSFNode alternateRep; +public: + SoSFNode alternateRep; //public in order to query if alternateRep done. +private: //////////////////////////////////////////// SO_KIT_CATALOG_ENTRY_HEADER(callbackList); SO_KIT_CATALOG_ENTRY_HEADER(topSeparator); @@ -80,7 +81,7 @@ public: // Return the preview state virtual SbBool getPreview() const; - // The SoSwitch::whichChild = SO_SWITCH_ALL + // Set SoSwitch::whichChild = SO_SWITCH_ALL void setPreviewAndFull(); // Return the preview Separator @@ -104,6 +105,7 @@ protected: // Destructor. virtual ~SoDetectorTreeKit(); + virtual void doAction(SoAction*); private: // This is needed as well diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoBox.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoBox.h index 100350528a..555f1a8edc 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoBox.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoBox.h @@ -22,7 +22,7 @@ // // // $Id: SoBox.h,v 1.2 2004/06/14 09:27:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoCons.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoCons.h index 6f116d3496..674737800a 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoCons.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoCons.h @@ -22,7 +22,7 @@ // // // $Id: SoCons.h,v 1.2 2004/06/14 09:27:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrap.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrap.h index 1f4cdc71d5..9ea81592ab 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrap.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrap.h @@ -22,7 +22,7 @@ // // // $Id: SoTrap.h,v 1.3 2004/11/23 21:51:05 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrd.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrd.h index b23facc6ba..4da9d50a83 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrd.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTrd.h @@ -22,7 +22,7 @@ // // // $Id: SoTrd.h,v 1.2 2004/06/14 09:27:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTubs.h b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTubs.h index 726a4255fd..cd73925ad0 100644 --- a/source/visualization/OpenInventor/include/HEPVis/nodes/SoTubs.h +++ b/source/visualization/OpenInventor/include/HEPVis/nodes/SoTubs.h @@ -22,7 +22,7 @@ // // // $Id: SoTubs.h,v 1.2 2004/06/14 09:27:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------Hepvis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/G4OpenInventor.cc b/source/visualization/OpenInventor/src/G4OpenInventor.cc index bbfa651983..2854945d73 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventor.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventor.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventor.cc,v 1.17 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenInventor.cc,v 1.18 2005/10/17 07:39:26 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifdef G4VIS_BUILD_OI_DRIVER @@ -39,6 +39,7 @@ #include "HEPVis/nodekits/SoDetectorTreeKit.h" #include "HEPVis/actions/SoGL2PSAction.h" #include "HEPVis/actions/SoCounterAction.h" +#include "HEPVis/actions/SoAlternateRepAction.h" #include "Geant4_SoPolyhedron.h" @@ -81,6 +82,7 @@ void G4OpenInventor::InitNodes() SoGL2PSAction::initClass(); SoCounterAction::initClass(); + SoAlternateRepAction::initClass(); } diff --git a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc index 40e0adb3f6..ae673d6ac1 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorSceneHandler.cc,v 1.38 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenInventorSceneHandler.cc,v 1.39 2005/11/15 08:39:03 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Jeff Kallenbach 01 Aug 1996 @@ -51,9 +51,9 @@ #include #include #include +#include #include #include -#include #define USE_SOPOLYHEDRON @@ -210,11 +210,11 @@ void G4OpenInventorSceneHandler::AddPrimitive (const G4Polymarker& polymarker) { const G4VMarker& marker = polymarker; G4bool userSpecified = (marker.GetWorldSize() || marker.GetScreenSize()); - const G4VMarker& def = fpViewer -> GetViewParameters().GetDefaultMarker(); + const G4VMarker& def = fpViewer->GetViewParameters().GetDefaultMarker(); //const G4Vector3D& viewpointDirection = - // fpViewer -> GetViewParameters().GetViewpointDirection(); + // fpViewer->GetViewParameters().GetViewpointDirection(); //const G4Vector3D& up = fpViewer->GetViewParameters().GetUpVector(); - G4double scale = fpViewer -> GetViewParameters().GetGlobalMarkerScale(); + G4double scale = fpViewer->GetViewParameters().GetGlobalMarkerScale(); G4double size = scale * userSpecified ? marker.GetWorldSize() : def.GetWorldSize(); G4double screenSize = 0; // Calculate marker in screen size... @@ -357,11 +357,11 @@ void G4OpenInventorSceneHandler::AddCircleSquare // A few useful quantities... G4Point3D centre = marker.GetPosition(); G4bool userSpecified = (marker.GetWorldSize() || marker.GetScreenSize()); - const G4VMarker& def = fpViewer -> GetViewParameters().GetDefaultMarker(); + const G4VMarker& def = fpViewer->GetViewParameters().GetDefaultMarker(); //const G4Vector3D& viewpointDirection = - // fpViewer -> GetViewParameters().GetViewpointDirection(); + // fpViewer->GetViewParameters().GetViewpointDirection(); //const G4Vector3D& up = fpViewer->GetViewParameters().GetUpVector(); - G4double scale = fpViewer -> GetViewParameters().GetGlobalMarkerScale(); + G4double scale = fpViewer->GetViewParameters().GetGlobalMarkerScale(); G4double size = scale * userSpecified ? marker.GetWorldSize() : def.GetWorldSize(); G4double screenSize = 0; // Calculate marker in screen size... @@ -433,56 +433,6 @@ void G4OpenInventorSceneHandler::AddCircleSquare delete [] points; } -/* Old method -// -// Method for handling G4Square objects - defaults to wireframe -// -void G4OpenInventorSceneHandler::AddPrimitive (const G4Square& square) { - // - // Color - // - const G4Colour& c = GetColour (square); - SoMaterial* material = - fStyleCache->getMaterial((float)c.GetRed(), - (float)c.GetGreen(), - (float)c.GetBlue(), - (float)(1-c.GetAlpha())); - fCurrentSeparator->addChild(material); - - // A few useful quantities... - const G4VMarker& marker = square; - G4Point3D centre = marker.GetPosition(); - G4bool userSpecified = (marker.GetWorldSize() || marker.GetScreenSize()); - const G4VMarker& def = fpViewer -> GetViewParameters().GetDefaultMarker(); - //const G4Vector3D& viewpointDirection = - // fpViewer -> GetViewParameters().GetViewpointDirection(); - //const G4Vector3D& up = fpViewer->GetViewParameters().GetUpVector(); - G4double scale = fpViewer -> GetViewParameters().GetGlobalMarkerScale(); - G4double size = scale * - userSpecified ? marker.GetWorldSize() : def.GetWorldSize(); - G4double screenSize = 0, worldSize = 0; // Calculate marker in world size... - if (size) { // Size specified in world coordinates. - worldSize = size; - } else { // Size specified in screen coordinates (pixels). - screenSize = scale * - userSpecified ? marker.GetScreenSize() : def.GetScreenSize(); - worldSize = 1. * cm; // Needs to be more sophisticated!! - } - - SoTranslation *sTrans = new SoTranslation; - sTrans->translation.setValue((float)centre.x(), - (float)centre.y(), - (float)centre.z()); - fCurrentSeparator->addChild(sTrans); - - SoCube *g4Square = new SoCube(); - g4Square->width = (float)worldize; - g4Square->height = (float)worldSize; - g4Square->depth = (float)worldSize; - fCurrentSeparator->addChild(g4Square); -} -*/ - // // Method for handling G4Polyhedron objects for drawing solids. // @@ -603,6 +553,13 @@ void G4OpenInventorSceneHandler::BeginPrimitives SoMatrixTransform* matrixTransform = new SoMatrixTransform; G4OpenInventorTransform3D oiTran(objectTransformation); SbMatrix* sbMatrix = oiTran.GetSbMatrix(); + + const G4Vector3D scale = fpViewer->GetViewParameters().GetScaleFactor(); + SbMatrix sbScale; + sbScale.setScale + (SbVec3f((float)scale.x(),(float)scale.y(),(float)scale.z())); + sbMatrix->multRight(sbScale); + matrixTransform->matrix.setValue(*sbMatrix); delete sbMatrix; fCurrentSeparator->addChild(matrixTransform); @@ -631,15 +588,6 @@ void G4OpenInventorSceneHandler::ClearTransientStore () { fTransientRoot->removeAllChildren(); } -/* -void G4OpenInventorSceneHandler::RequestPrimitives (const G4VSolid& solid) { - // Stop-gap solution for display List re-use. - // A proper implementation would use geometry hierarchy. - // - G4VSceneHandler::RequestPrimitives (solid); -} -*/ - void G4OpenInventorSceneHandler::PreAddSolid (const G4Transform3D& objectTransformation, const G4VisAttributes& visAttribs) { @@ -677,8 +625,8 @@ void G4OpenInventorSceneHandler::PreAddSolid // First find the color attributes. // const G4VisAttributes* pVisAttribs = - fpViewer -> GetApplicableVisAttributes (&visAttribs); - const G4Colour& g4Col = pVisAttribs -> GetColour (); + fpViewer->GetApplicableVisAttributes (&visAttribs); + const G4Colour& g4Col = pVisAttribs->GetColour (); const double red = g4Col.GetRed (); const double green = g4Col.GetGreen (); const double blue = g4Col.GetBlue (); @@ -757,18 +705,6 @@ void G4OpenInventorSceneHandler::PreAddSolid } else { //printf("debug : PreAddSolid : mother not found in map !!!\n"); fDetectorRoot->addChild(detectorTreeKit); - /* - do { - SoSeparator* dummySeparator = - (SoSeparator*) g4DetectorTreeKit->getPart("dummySeparator",TRUE); - dummySeparator->renderCaching = SoSeparator::OFF; //???? - dummySeparator->addChild(transform); - fSeparatorMap[MotherVolume] = dummySeparator; - MotherVolume = MotherVolume->GetPhysicalVolume()->GetMotherLogical(); - } while - (MotherVolume && - fSeparatorMap.find(MotherVolume) == fSeparatorMap.end()); - */ } } else { //printf("debug : PreAddSolid : has no mother\n"); @@ -785,20 +721,10 @@ void G4OpenInventorSceneHandler::PreAddSolid if (fSeparatorMap.find(MotherVolume) != fSeparatorMap.end()) { fCurrentSeparator = fSeparatorMap[MotherVolume]; } else { -/* - G4cerr << "G4OpenInventorSceneHandler::PreAddSolid() : WARNING :" - << " volume " << fpCurrentPV->GetName() - << " has invisible mother (" << MotherVolume->GetName() << ")." - << G4endl; - G4cerr << " Its scene graph will be put under the viewer" - << " detector root scene graph." - << G4endl; -*/ fCurrentSeparator = fDetectorRoot; } } else { fCurrentSeparator = fDetectorRoot; - /* Fix here as above!!! */ } SoMaterial* material = @@ -820,62 +746,19 @@ void G4OpenInventorSceneHandler::PreAddSolid SoMatrixTransform* matrixTransform = new SoMatrixTransform; G4OpenInventorTransform3D oiTran(objectTransformation); SbMatrix* sbMatrix = oiTran.GetSbMatrix(); + + const G4Vector3D scale = fpViewer->GetViewParameters().GetScaleFactor(); + SbMatrix sbScale; + sbScale.setScale + (SbVec3f((float)scale.x(),(float)scale.y(),(float)scale.z())); + sbMatrix->multRight(sbScale); + matrixTransform->matrix.setValue(*sbMatrix); delete sbMatrix; fCurrentSeparator->addChild(matrixTransform); } -/* -G4double G4OpenInventorSceneHandler::GetMarkerSize ( const G4VMarker& mark ) -{ - //----- return value ( marker radius in 3d units) - G4double size = 1.0 ; // initialization - - //----- parameters to calculate 3d size from 2d size - const double HALF_SCREEN_SIZE_2D = 300.0 ; // pixels - double zoom_factor = fpViewer->GetViewParameters().GetZoomFactor() ; - if ( zoom_factor <= 0.0 ) { zoom_factor = 1.0 ; } - double extent_radius_3d = GetScene()->GetExtent().GetExtentRadius() ; - if ( extent_radius_3d <= 0.0 ) { extent_radius_3d = 1.0 ; } - - //----- get marker radius in 3D units - size = mark.GetWorldSize(); - if ( size ) { - - // get mark radius in 3D units - size = 0.5 * mark.GetWorldSize() ; - - } else if ( (size = mark.GetScreenSize()) ) { - - // local - double mark_radius_2d = 0.5 * mark.GetScreenSize() ; - - // get mark radius in 3D units - size \ - = extent_radius_3d * ( mark_radius_2d / HALF_SCREEN_SIZE_2D ); - size *= zoom_factor ; - - } else { - // local - double mark_radius_2d \ - = fpViewer->GetViewParameters().GetDefaultMarker().GetScreenSize(); - - // get mark radius in 3D units - size \ - = extent_radius_3d * ( mark_radius_2d / HALF_SCREEN_SIZE_2D ); - size *= zoom_factor ; - } - - //----- global rescaling - size *= fpViewer->GetViewParameters().GetGlobalMarkerScale(); - - //----- return size - return size ; - -} // G4OpenInventorSceneHandler::GetMarkerSize () -*/ - //void G4OpenInventorSceneHandler::AddSolid(const G4VTrajectory& traj) { // G4VSceneHandler::AddSolid(traj); // For now. //} diff --git a/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc b/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc index ed1b678380..16f8dcda11 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorTransform3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorTransform3D.cc,v 1.7 2005/05/25 08:16:06 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // jck 17 Dec 1996 diff --git a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc index f8fc55af04..d496c83b4b 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorViewer.cc @@ -36,6 +36,7 @@ #include "HEPVis/nodes/SoImageWriter.h" #include "HEPVis/actions/SoGL2PSAction.h" #include "HEPVis/actions/SoCounterAction.h" +#include "HEPVis/actions/SoAlternateRepAction.h" #include "G4OpenInventor.hh" #include "G4OpenInventorSceneHandler.hh" @@ -96,6 +97,12 @@ G4OpenInventorViewer::G4OpenInventorViewer( camera->focalDistance.setValue(10); group->addChild(camera); + {SoInput soInput; + if(soInput.openFile("g4view.iv",TRUE)) { + SoSeparator* separator = SoDB::readAll(&soInput); + if(separator) fSoSelection->addChild(separator); + }} + fSoSelection->addChild(fG4OpenInventorSceneHandler.fRoot); // SoImageWriter should be the last. @@ -242,8 +249,6 @@ void G4OpenInventorViewer::SetView () { //FIXME : (2.*fVP.GetFieldHalfAngle()); } } - - } //COIN_FUNCTION_EXTENSION @@ -452,11 +457,29 @@ void G4OpenInventorViewer::WritePixmapPostScript(const G4String& aFile) { void G4OpenInventorViewer::WriteInventor(const G4String& aFile) { G4cout << "Produce " << aFile << "..." << G4endl; + + SbBool genAlternateRep = TRUE; + //SbBool binary = FALSE; + SbBool binary = TRUE; + SoAlternateRepAction alternateRepAction; + if(genAlternateRep==TRUE) { + alternateRepAction.setGenerate(TRUE); //Clear alternate reps. + alternateRepAction.apply(fSoSelection); + } + SoWriteAction writeAction; writeAction.getOutput()->openFile(aFile.c_str()); - writeAction.getOutput()->setBinary(FALSE); + writeAction.getOutput()->setBinary(binary); writeAction.apply(fSoSelection); writeAction.getOutput()->closeFile(); + + if(genAlternateRep==TRUE) { + alternateRepAction.setGenerate(FALSE); //Clear alternate reps. + alternateRepAction.apply(fSoSelection); + } + + + } struct Counter { diff --git a/source/visualization/OpenInventor/src/G4OpenInventorWin.cc b/source/visualization/OpenInventor/src/G4OpenInventorWin.cc index 420d1cd128..171de645d4 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorWin.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorWin.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorWin.cc,v 1.4 2004/04/08 10:49:57 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // OpenInventor graphics system factory. diff --git a/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc index 0e737e2701..efe6ca779a 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorWinViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorWinViewer.cc,v 1.22 2004/11/25 14:45:06 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenInventorWinViewer.cc,v 1.24 2005/11/15 09:32:58 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /* * jck : 05 Feb 1997 : Initial Implementation @@ -61,7 +61,7 @@ public: } }; -#define SIZE 400 +#define SIZE 600 // File : #define ID_FILE_POSTSCRIPT 1 #define ID_FILE_PIXMAP_POSTSCRIPT 2 @@ -211,6 +211,14 @@ void G4OpenInventorWinViewer::FinishView () { fViewer->saveHomePosition(); } +void G4OpenInventorWinViewer::SetView () { + G4OpenInventorViewer::SetView (); + if(!fViewer) return; + // Background. + G4Colour b = fVP.GetBackgroundColour (); + fViewer->setBackgroundColor + (SbColor((float)b.GetRed(),(float)b.GetGreen(),(float)b.GetBlue())); +} void G4OpenInventorWinViewer::ViewerRender () { if(!fViewer) return; fViewer->render(); diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXt.cc b/source/visualization/OpenInventor/src/G4OpenInventorXt.cc index 52143f7f2b..29ad8761a7 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXt.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXt.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpenInventorXt.cc,v 1.2 2004/11/22 15:00:48 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Jeff Kallenbach 01 Aug 1996 diff --git a/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc b/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc index 0a04fa8910..cfd2dcf3f4 100644 --- a/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc +++ b/source/visualization/OpenInventor/src/G4OpenInventorXtViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpenInventorXtViewer.cc,v 1.21 2004/11/26 08:38:51 gbarrand Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4OpenInventorXtViewer.cc,v 1.23 2005/11/15 09:32:03 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /* * jck 05 Feb 1997 - Initial Implementation @@ -75,16 +75,20 @@ G4OpenInventorXtViewer::G4OpenInventorXtViewer( G4String wName = fName; -#define SIZE 400 +#define SIZE 600 Widget parent = (Widget)fInteractorManager->GetParentInteractor (); if(!parent) { + // Check if user has specified an X-Windows-type geometry string... + char s[32]; + sprintf(s,"%dx%d",SIZE,SIZE); + G4String sgeometry = fVP.GetXGeometryString(); + if(sgeometry.empty()) sgeometry = s; + //Create a shell window : G4String shellName = wName; shellName += "_shell"; Arg args[10]; - char s[32]; - sprintf(s,"%dx%d",SIZE,SIZE); - XtSetArg(args[0],XtNgeometry,XtNewString(s)); + XtSetArg(args[0],XtNgeometry,XtNewString(sgeometry.c_str())); XtSetArg(args[1],XtNborderWidth,0); XtSetArg(args[2],XtNtitle,XtNewString(wName.c_str())); fShell = XtAppCreateShell(shellName.c_str(),"Inventor", @@ -196,6 +200,16 @@ void G4OpenInventorXtViewer::FinishView () { fViewer->saveHomePosition(); } +void G4OpenInventorXtViewer::SetView () { + G4OpenInventorViewer::SetView (); + if(!fViewer) return; + // Background. + G4Colour b = fVP.GetBackgroundColour (); + fViewer->setBackgroundColor + (SbColor((float)b.GetRed(),(float)b.GetGreen(),(float)b.GetBlue())); +} + + void G4OpenInventorXtViewer::ViewerRender () { if(!fViewer) return; fViewer->render(); diff --git a/source/visualization/OpenInventor/src/SoAlternateRepAction.cc b/source/visualization/OpenInventor/src/SoAlternateRepAction.cc new file mode 100644 index 0000000000..1429213d8e --- /dev/null +++ b/source/visualization/OpenInventor/src/SoAlternateRepAction.cc @@ -0,0 +1,141 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// this : +#include + +// Inventor : +#include +#include +#include + +SO_ACTION_SOURCE(SoAlternateRepAction) + +////////////////////////////////////////////////////////////////////////////// +void SoAlternateRepAction::initClass( +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + SO_ACTION_INIT_CLASS(SoAlternateRepAction,SoAction); + + SO_ENABLE(SoAlternateRepAction,SoSwitchElement); //SGI wants that. + SO_ENABLE(SoAlternateRepAction,SoCoordinateElement); //For SoMarkerSet. + + SO_ACTION_ADD_METHOD(SoNode,nodeAction); +} +////////////////////////////////////////////////////////////////////////////// +SoAlternateRepAction::SoAlternateRepAction( +) +:fGenerate(FALSE) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + SO_ACTION_CONSTRUCTOR(SoAlternateRepAction); +} +////////////////////////////////////////////////////////////////////////////// +SoAlternateRepAction::~SoAlternateRepAction( +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ +} +////////////////////////////////////////////////////////////////////////////// +void SoAlternateRepAction::setGenerate( + SbBool aGenerate +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + fGenerate = aGenerate; +} +////////////////////////////////////////////////////////////////////////////// +SbBool SoAlternateRepAction::getGenerate( +) const +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + return fGenerate; +} + +// Inventor : +#include +#include +#include + +// HEPVisUtils : +//#include +//#include + +#define IF_CLASS(aClass) \ + if(aNode->isOfType(aClass::getClassTypeId())) {\ + /*printf("debug : SoAlternateRepAction::nodeAction : %s generate %d\n",#aClass,This->fGenerate);*/\ + aClass* node = (aClass*)aNode;\ + if(This->fGenerate==TRUE) {\ + if(node->alternateRep.getValue()==NULL) {\ + node->generateAlternateRep();\ + /* Then go down if needed : */\ + SoNode* altRep = node->alternateRep.getValue();\ + if((altRep!=NULL) && altRep->isOfType(SoGroup::getClassTypeId()))\ + altRep->doAction(This);\ + }\ + } else {\ + /* First go down if needed : */\ + SoNode* altRep = node->alternateRep.getValue();\ + if((altRep!=NULL) && altRep->isOfType(SoGroup::getClassTypeId()))\ + altRep->doAction(This);\ + /* Then clear : */\ + node->clearAlternateRep();\ + }\ + } + +////////////////////////////////////////////////////////////////////////////// +void SoAlternateRepAction::nodeAction( + SoAction* aThis +,SoNode* aNode +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + /*printf("debug : SoAlternateRepAction::nodeAction : %s %s\n", + aNode->getName().getString(), + aNode->getTypeId().getName().getString());*/ + //SoAlternateRepAction* This = (SoAlternateRepAction*)aThis; + + if(false) {} + // HEPVisUtils : + //else IF_CLASS(SoHighlightMaterial) + //else IF_CLASS(SoSplineCurve) + + // Inventor : + else if(aNode->isOfType(SoGroup::getClassTypeId())) { + aNode->doAction(aThis); + } + else if(aNode->isOfType(SoCoordinate3::getClassTypeId())) { //For SoMakerSet. + aNode->doAction(aThis); + } + // Else : + else if(aNode->getField("alternateRep")!=NULL) { + aNode->doAction(aThis); + } + +} diff --git a/source/visualization/OpenInventor/src/SoBox.cc b/source/visualization/OpenInventor/src/SoBox.cc index b7b4922c99..7297714ef9 100644 --- a/source/visualization/OpenInventor/src/SoBox.cc +++ b/source/visualization/OpenInventor/src/SoBox.cc @@ -23,7 +23,7 @@ // // // $Id: SoBox.cc,v 1.7 2004/12/16 12:33:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*----------------------------HEPVis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoCons.cc b/source/visualization/OpenInventor/src/SoCons.cc index aa99ffd579..9708de1b6d 100644 --- a/source/visualization/OpenInventor/src/SoCons.cc +++ b/source/visualization/OpenInventor/src/SoCons.cc @@ -23,7 +23,7 @@ // // // $Id: SoCons.cc,v 1.7 2004/12/16 12:33:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------HEPVis---------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoDetectorTreeKit.cc b/source/visualization/OpenInventor/src/SoDetectorTreeKit.cc index 717c40d1fc..48aa70a44e 100644 --- a/source/visualization/OpenInventor/src/SoDetectorTreeKit.cc +++ b/source/visualization/OpenInventor/src/SoDetectorTreeKit.cc @@ -22,8 +22,8 @@ // // // -// $Id: SoDetectorTreeKit.cc,v 1.9 2004/12/16 12:33:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: SoDetectorTreeKit.cc,v 1.11 2005/10/17 07:21:03 gbarrand Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------HEPVis----------------------------------------*/ /* */ @@ -36,26 +36,29 @@ #ifdef G4VIS_BUILD_OI_DRIVER // this : - #include "HEPVis/nodekits/SoDetectorTreeKit.h" -#include -#include -#include #include +#include #include #include +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include -#include -#include -#include -#include -#include #include +#include +#include + +#include + +#include // This statement is required SO_KIT_SOURCE(SoDetectorTreeKit) @@ -223,5 +226,15 @@ void SoDetectorTreeKit::generateAlternateRep() { void SoDetectorTreeKit::clearAlternateRep() { alternateRep.setValue(NULL); } +////////////////////////////////////////////////////////////////////////////// +void SoDetectorTreeKit::doAction( + SoAction* aAction +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + SO_ALTERNATEREP_DO_ACTION(aAction) + SoBaseKit::doAction(aAction); +} #endif diff --git a/source/visualization/OpenInventor/src/SoPolyhedron.cc b/source/visualization/OpenInventor/src/SoPolyhedron.cc index 1af2e45f1a..f12e70f63c 100644 --- a/source/visualization/OpenInventor/src/SoPolyhedron.cc +++ b/source/visualization/OpenInventor/src/SoPolyhedron.cc @@ -37,18 +37,21 @@ #include #include #include +#include //#include #define SbMinimum(a,b) ((a)<(b)?a:b) #define SbMaximum(a,b) ((a)>(b)?a:b) -#include "HepPolyhedron.h" +#include + +#include "G4Polyhedron.hh" //typedef SbVec3f HVPoint3D; //typedef SbVec3f HVNormal3D; -typedef HepPoint3D HVPoint3D; -typedef HepNormal3D HVNormal3D; +typedef HepGeom::Point3D HVPoint3D; +typedef HepGeom::Normal3D HVNormal3D; SO_NODE_SOURCE(Geant4_SoPolyhedron) ////////////////////////////////////////////////////////////////////////////// @@ -69,10 +72,11 @@ Geant4_SoPolyhedron::Geant4_SoPolyhedron( SO_NODE_CONSTRUCTOR(Geant4_SoPolyhedron); SO_NODE_ADD_FIELD(solid,(TRUE)); SO_NODE_ADD_FIELD(reducedWireFrame,(TRUE)); + SO_NODE_ADD_FIELD(alternateRep,(NULL)); } ////////////////////////////////////////////////////////////////////////////// Geant4_SoPolyhedron::Geant4_SoPolyhedron( - const HepPolyhedron& aPolyhedron + const G4Polyhedron& aPolyhedron ) :fPolyhedron(0) ////////////////////////////////////////////////////////////////////////////// @@ -80,11 +84,14 @@ Geant4_SoPolyhedron::Geant4_SoPolyhedron( { SO_NODE_CONSTRUCTOR(Geant4_SoPolyhedron); SO_NODE_ADD_FIELD(solid,(TRUE)); - fPolyhedron = new HepPolyhedron(aPolyhedron); + SO_NODE_ADD_FIELD(reducedWireFrame,(TRUE)); + SO_NODE_ADD_FIELD(alternateRep,(NULL)); + + fPolyhedron = new G4Polyhedron(aPolyhedron); } ////////////////////////////////////////////////////////////////////////////// Geant4_SoPolyhedron::Geant4_SoPolyhedron( - HepPolyhedron* aPolyhedron + G4Polyhedron* aPolyhedron ) :fPolyhedron(aPolyhedron) ////////////////////////////////////////////////////////////////////////////// @@ -92,6 +99,8 @@ Geant4_SoPolyhedron::Geant4_SoPolyhedron( { SO_NODE_CONSTRUCTOR(Geant4_SoPolyhedron); SO_NODE_ADD_FIELD(solid,(TRUE)); + SO_NODE_ADD_FIELD(reducedWireFrame,(TRUE)); + SO_NODE_ADD_FIELD(alternateRep,(NULL)); } ////////////////////////////////////////////////////////////////////////////// Geant4_SoPolyhedron::~Geant4_SoPolyhedron( @@ -197,7 +206,7 @@ void Geant4_SoPolyhedron::generatePrimitives( notLastEdge = fPolyhedron->GetNextVertex(vertex,edgeFlag); if(reducedWireFrame.getValue()==FALSE) edgeFlag = 1; if(firstEdge) { - if(edgeFlag) { + if(edgeFlag > 0) { pvb.setNormal(normal); point.setValue(vertex[0],vertex[1],vertex[2]); pvb.setPoint(point); @@ -207,7 +216,7 @@ void Geant4_SoPolyhedron::generatePrimitives( prevEdgeFlag = edgeFlag; } else { if(edgeFlag!=prevEdgeFlag) { - if(edgeFlag) { // Pass to a visible edge : + if(edgeFlag > 0) { // Pass to a visible edge : pvb.setNormal(normal); point.setValue(vertex[0],vertex[1],vertex[2]); pvb.setPoint(point); @@ -219,7 +228,7 @@ void Geant4_SoPolyhedron::generatePrimitives( } prevEdgeFlag = edgeFlag; } else { - if(edgeFlag) { + if(edgeFlag > 0) { pve.setNormal(normal); point.setValue(vertex[0],vertex[1],vertex[2]); pve.setPoint(point); @@ -300,5 +309,252 @@ void Geant4_SoPolyhedron::computeBBox( } } +#include +#include +#include +#include +#include +////////////////////////////////////////////////////////////////////////////// +void Geant4_SoPolyhedron::generateAlternateRep( +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + if(!fPolyhedron) return; + if(fPolyhedron->GetNoFacets()<=0) return; // Abnormal polyhedron. + if(fPolyhedron->GetNoVertices()<=0) return; // Abnormal polyhedron. + + if(solid.getValue()==TRUE) { + + SoSeparator* separator = new SoSeparator; + + SoNormalBinding* normalBinding = new SoNormalBinding; + normalBinding->value = SoNormalBinding::PER_FACE; + separator->addChild(normalBinding); + + SoCoordinate3* coordinate3 = new SoCoordinate3; + separator->addChild(coordinate3); + SoNormal* normal = new SoNormal; + separator->addChild(normal); + SoIndexedFaceSet* indexedFaceSet = new SoIndexedFaceSet; + separator->addChild(indexedFaceSet); + + SbBool empty = TRUE; + + int nvert = fPolyhedron->GetNoVertices(); + int nface = fPolyhedron->GetNoFacets(); + + SbVec3f* normals = new SbVec3f[nface]; + //FIXME : have the exact booking. + SbVec3f* points = new SbVec3f[nvert]; + int32_t* coords = new int32_t[nvert+1]; + + int inormal = 0; + int icoord = 0; + int iindex = 0; + + // Assume all facets are convex quadrilaterals : + bool notLastFace; + do { + HVNormal3D unitNormal; + notLastFace = fPolyhedron->GetNextUnitNormal(unitNormal); + + // begin face POLYGON + int ipoint = 0; + + bool notLastEdge; + int edgeFlag = 1; + do { + HVPoint3D vertex; + notLastEdge = fPolyhedron->GetNextVertex(vertex,edgeFlag); + points[ipoint].setValue(vertex[0],vertex[1],vertex[2]); + coords[ipoint] = icoord + ipoint; + ipoint++; + empty = FALSE; + + } while (notLastEdge); + + // end face. + coords[ipoint] = SO_END_FACE_INDEX; + coordinate3->point.setValues(icoord,ipoint,points); + icoord += ipoint; + + normals[inormal].setValue(unitNormal[0],unitNormal[1],unitNormal[2]); + inormal++; + + indexedFaceSet->coordIndex.setValues(iindex,(ipoint+1),coords); + iindex += ipoint+1; + + } while (notLastFace); + + normal->vector.setValues(0,inormal,normals); + + delete [] normals; + delete [] coords; + delete [] points; + + if(empty==TRUE) { + separator->unref(); + } else { + alternateRep.setValue(separator); + } + + } else { + + SoSeparator* separator = new SoSeparator; + + int nvert = fPolyhedron->GetNoVertices(); + + //FIXME : have the exact booking. + int nedge = nvert * 3; + int npoint = nedge*2; + SbVec3f* points = new SbVec3f[npoint]; + int ncoord = nedge*3; + int32_t* coords = new int32_t[ncoord]; + + SbVec3f pvb,pve; + + SbBool empty = TRUE; + int ipoint = 0; + int icoord = 0; + + bool notLastFace; + do { + HVNormal3D unitNormal; + notLastFace = fPolyhedron->GetNextUnitNormal(unitNormal); + + //SbVec3f normal; + //if( (fProjection==SbProjectionRZ) || (fProjection==SbProjectionZR) ) { + //normal.setValue(0,0,1); + //} else { + //normal.setValue(unitNormal[0],unitNormal[1],unitNormal[2]); + //} + + // Treat edges : + int edgeFlag = 1; + int prevEdgeFlag = edgeFlag; + bool notLastEdge; + SbBool firstEdge = TRUE; + do { + HVPoint3D vertex; + notLastEdge = fPolyhedron->GetNextVertex(vertex,edgeFlag); + if(reducedWireFrame.getValue()==FALSE) edgeFlag = 1; + if(firstEdge) { + if(edgeFlag > 0) { + pvb.setValue(vertex[0],vertex[1],vertex[2]); + } else { + } + firstEdge = FALSE; + prevEdgeFlag = edgeFlag; + } else { + if(edgeFlag!=prevEdgeFlag) { + if(edgeFlag > 0) { // Pass to a visible edge : + pvb.setValue(vertex[0],vertex[1],vertex[2]); + } else { // Pass to an invisible edge : + pve.setValue(vertex[0],vertex[1],vertex[2]); + + if((ipoint+1)>=npoint) { + int new_npoint = 2 * npoint; + SbVec3f* new_points = new SbVec3f[new_npoint]; + for(int i=0;i=ncoord) { + int new_ncoord = 2 * ncoord; + int32_t* new_coords = new int32_t[new_ncoord]; + for(int i=0;i 0) { + pve.setValue(vertex[0],vertex[1],vertex[2]); + + if((ipoint+1)>=npoint) { + int new_npoint = 2 * npoint; + SbVec3f* new_points = new SbVec3f[new_npoint]; + for(int i=0;i=ncoord) { + int new_ncoord = 2 * ncoord; + int32_t* new_coords = new int32_t[new_ncoord]; + for(int i=0;ipoint.setValues(0,ipoint,points); + separator->addChild(coordinate3); + + SoIndexedLineSet* indexedLineSet = new SoIndexedLineSet; + indexedLineSet->coordIndex.setValues(0,icoord,coords); + separator->addChild(indexedLineSet); + + delete [] coords; + delete [] points; + + if(empty==TRUE) { + separator->unref(); + } else { + alternateRep.setValue(separator); + } + } +} +////////////////////////////////////////////////////////////////////////////// +void Geant4_SoPolyhedron::clearAlternateRep( +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + alternateRep.setValue(NULL); +} +////////////////////////////////////////////////////////////////////////////// +void Geant4_SoPolyhedron::doAction( + SoAction* aAction +) +////////////////////////////////////////////////////////////////////////////// +//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// +{ + SO_ALTERNATEREP_DO_ACTION(aAction) + SoShape::doAction(aAction); +} #endif diff --git a/source/visualization/OpenInventor/src/SoTrap.cc b/source/visualization/OpenInventor/src/SoTrap.cc index b904fb28cf..b76a7f85f3 100644 --- a/source/visualization/OpenInventor/src/SoTrap.cc +++ b/source/visualization/OpenInventor/src/SoTrap.cc @@ -23,7 +23,7 @@ // // // $Id: SoTrap.cc,v 1.7 2004/12/16 12:33:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------HEPVis----------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoTrd.cc b/source/visualization/OpenInventor/src/SoTrd.cc index 463b648f7b..a0aea9032a 100644 --- a/source/visualization/OpenInventor/src/SoTrd.cc +++ b/source/visualization/OpenInventor/src/SoTrd.cc @@ -23,7 +23,7 @@ // // // $Id: SoTrd.cc,v 1.7 2004/12/16 12:33:10 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------HEPVis---------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/SoTubs.cc b/source/visualization/OpenInventor/src/SoTubs.cc index 99056fe255..fa29e815a0 100644 --- a/source/visualization/OpenInventor/src/SoTubs.cc +++ b/source/visualization/OpenInventor/src/SoTubs.cc @@ -23,7 +23,7 @@ // // // $Id: SoTubs.cc,v 1.7 2004/12/16 12:33:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /*-----------------------------HEPVis---------------------------------------*/ /* */ diff --git a/source/visualization/OpenInventor/src/gl2ps.cc b/source/visualization/OpenInventor/src/gl2ps.cc index c0ea695636..687a94ffcd 100644 --- a/source/visualization/OpenInventor/src/gl2ps.cc +++ b/source/visualization/OpenInventor/src/gl2ps.cc @@ -26,7 +26,7 @@ * GL2PS, an OpenGL to PostScript Printing Library * Copyright (C) 1999-2003 Christophe Geuzaine * - * $Id: gl2ps.cc,v 1.9 2005/06/02 16:51:56 allison Exp $ + * $Id: gl2ps.cc,v 1.10 2005/08/01 16:15:49 gcosmo Exp $ * * E-mail: geuz@geuz.org * URL: http://www.geuz.org/gl2ps/ @@ -538,7 +538,7 @@ GLint gl2psFindRoot(GL2PSlist *primitives, GL2PSprimitive **root){ } } -void gl2psFreePrimitive(void *a, void *b){ +void gl2psFreePrimitive(void *a, void *){ GL2PSprimitive *q; q = *(GL2PSprimitive**)a; @@ -978,7 +978,7 @@ GLint gl2psAddInBspImageTree(GL2PSprimitive *prim, GL2PSbsptree2d **tree){ return 0; } -void gl2psAddInImageTree(void *a, void *b){ +void gl2psAddInImageTree(void *a, void *){ GL2PSprimitive *prim = *(GL2PSprimitive **)a; if(!gl2psAddInBspImageTree(prim, &gl2ps->imagetree)){ @@ -1336,7 +1336,7 @@ int gl2psGetRGB(GLfloat *pixels, GLsizei width, GLsizei height, GLuint x, GLuint } void gl2psPrintPostScriptPixmap(GLfloat x, GLfloat y, GLsizei width, GLsizei height, - GLenum format, GLenum type, GLfloat *pixels, + GLenum, GLenum, GLfloat *pixels, FILE *stream){ typedef unsigned char Uchar; int status = 1, nbhex, nbyte; @@ -1774,7 +1774,7 @@ void gl2psResetPostScriptColor(void){ gl2ps->lastrgba[0] = gl2ps->lastrgba[1] = gl2ps->lastrgba[2] = -1.; } -void gl2psPrintPostScriptPrimitive(void *a, void *b){ +void gl2psPrintPostScriptPrimitive(void *a, void *){ GL2PSprimitive *prim; prim = *(GL2PSprimitive**)a; @@ -1941,7 +1941,7 @@ void gl2psPrintTeXHeader(void){ gl2ps->viewport[2], gl2ps->viewport[3]); } -void gl2psPrintTeXPrimitive(void *a, void *b){ +void gl2psPrintTeXPrimitive(void *a, void *){ GL2PSprimitive *prim; prim = *(GL2PSprimitive**)a; @@ -1961,7 +1961,7 @@ void gl2psPrintTeXFooter(void){ (gl2ps->options & GL2PS_LANDSCAPE) ? "}" : ""); } -void gl2psPrintTeXBeginViewport(GLint viewport[4]){ +void gl2psPrintTeXBeginViewport(GLint){ } GLint gl2psPrintTeXEndViewport(void){ diff --git a/source/visualization/OpenInventor/src/gl2ps.h b/source/visualization/OpenInventor/src/gl2ps.h index b25afe7537..5abf8f3b50 100644 --- a/source/visualization/OpenInventor/src/gl2ps.h +++ b/source/visualization/OpenInventor/src/gl2ps.h @@ -24,7 +24,7 @@ * GL2PS, an OpenGL to PostScript Printing Library * Copyright (C) 1999-2003 Christophe Geuzaine * - * $Id: gl2ps.h,v 1.3 2004/12/15 15:43:11 gunter Exp $ + * $Id: gl2ps.h,v 1.4 2005/08/01 16:15:49 gcosmo Exp $ * * E-mail: geuz@geuz.org * URL: http://www.geuz.org/gl2ps/ @@ -249,7 +249,7 @@ GL2PSDLL_API GLint gl2psPointSize(GLfloat value); GL2PSDLL_API GLint gl2psLineWidth(GLfloat value); #ifdef __cplusplus -}; +} #endif #endif /* __GL2PS_H__ */ diff --git a/source/visualization/README b/source/visualization/README deleted file mode 100644 index 7709c65335..0000000000 --- a/source/visualization/README +++ /dev/null @@ -1,289 +0,0 @@ -$Id: README,v 1.12 2005/02/15 14:08:11 johna Exp $ - -Note: Specific graphics systems must be instantiated in a high level -library to avoid circular dependencies. Also, some specifically need -additional external libararies that the user must supply. Therefore we -ask the user to implement RegisterGraphicsSystems() in a subclass of -G4VisManager. We have to wait for the subclass to instantiate so -RegisterGraphicsSystems() cannot be called from G4VisManager's -constructor; it is called from G4VisManager::Initialise(). So we ask -the user: - (a) to write a subclass of G4VisManager and implement - RegisterGraphicsSystems(). This is most easily done by - including G4VisExecutive.hh. - (b) instantiate the subclass. - (c) invoke the Initialise() method of the subclass. -For example, in your main(): - ... -#ifdef G4VIS_USE - // Instantiate and initialise Visualization Manager. - G4VisManager* visManager = new G4VisExecutive; - visManager -> SetVerboseLevel (Verbose); - visManager -> Initialise (); -#endif - // (Don't forget to delete visManager;) - ... -See, for example, examples/novices/N02/exampleN02.cc. - -1) Decide which graphics systems drivers you want. By default you get: - ASCIITree, DAWNFILE, GAGTree, HepRepFile, HepRepXML, RayTracer, VRMLFILE. - - For others, the choice depends on what graphics libraries you have - access to. Set the appropriate environment variables. Here are - the current possibilities (see example "rc" script in Appendix A): - - setenv G4VIS_BUILD_DAWN_DRIVER 1 # Uses Fukui Renderer DAWN - # with network connection - # (for remote visualization) - - setenv G4VIS_BUILD_OPENGLX_DRIVER 1 # Uses OpenGL libraries - setenv G4VIS_BUILD_OPENGLXM_DRIVER 1 # Uses OpenGL and Motif - # libraries - - setenv G4VIS_BUILD_OIX_DRIVER 1 # Uses OpenInventor X11 - - setenv G4VIS_BUILD_VRML_DRIVER 1 # Sends VRML ascii files - # to a remote host - # (for remote visualization) - - Unless an environment variable G4VIS_NONE is set, setting any of - these sets a C-pre-processor flag of the same name; also - C-pre-processor flag G4VIS_BUILD is set. - - In some cases you will need additional variables, e.g.: - - setenv DAWN_HOME /user/local/bin - set path=( $path $DAWN_HOME ) - - setenv OGLHOME /usr/local - setenv OGLFLAGS "-I$(OGLHOME)/include" - setenv OGLLIBS "-L$OGLHOME/lib -lMesaGLU -lMesaGL" - - setenv OIVHOME /usr/local - - If you are going to use widgets, then you might need to set the - environment variable: - - setenv XKEYSYMDB /usr/lib/X11/XKeysymDB - -2) Compile and build the Geant4 libraries: - - cd $G4INSTALL/source - gmake - - If you have already built the Geant4 libraries and only wish to - include/change visualization, you need to rebuild visualization and - interfaces (since some graphics drivers share resources, such as X - event handling, with interfaces) and rebuild the libary map (in - case new libraries have been made): - - cd $G4INSTALL/source/visualization - gmake clean - gmake - cd $G4INSTALL/source/interfaces - gmake clean - gmake - cd $G4INSTALL/source - gmake libmap - - ******************************************************************* - NOTE THAT IF YOU CHANGE ANY OF THE ABOVE ENVIRONMENT VARIABLES THEN - YOU WILL HAVE TO REPEAT THE ABOVE OPERATIONS, INCLUDING REBUILDING - THE LIBRARY MAP. - ******************************************************************* - - -3) Decide which graphics systems you want to use in your particular - excutable. By default you get: - ASCIITree, DAWNFILE, GAGTree, HepRepFile, RayTracer, VRMLFILE. - - Of course, this has to be chosen from the set you - installed in (1,2) above. Here are the current possibilities: - - setenv G4VIS_USE_DAWN 1 - setenv G4VIS_USE_OPENGLX 1 - setenv G4VIS_USE_OPENGLXM 1 - setenv G4VIS_USE_OIX 1 - setenv G4VIS_USE_VRML 1 - - Unless an environment variable G4VIS_NONE is set, setting any of - these sets a C-pre-processor flag of the same name; also, - C-pre-processor flag G4VIS_USE is set.C-pre-processor flag - see - examples/novices/N02/exampleN02.cc to see a use of this. - - The graphics systems are instantiated and registered when you - execute G4VisExecutive::Initialise() (or G4VisExecutive::Initialize()). - Note also that you can register graphics systems directly, e.g., - pVisManager->RegisterGraphicsSystem ( new DAWNFILE ). You can also - register your own graphics system, e.g., - pVisManager->RegisterGraphicsSystem (new MyGraphicsSystem). - - -4) Compile and link your code. This assumes, in the current - directory, you have a GNUmakefile like - $G4INSTALL/examples/novice/N01/GNUmakefile and your main program. - Also your header files are in include/ and your source files are in - src/ - see, e.g., $G4INSTALL/examples/novice/N01 (this is the - "canonical" user code structure). - - gmake clean - gmake - - ******************************************************************* - NOTE THAT IF YOU CHANGE ANY OF THE ABOVE ENVIRONMENT VARIABLES THEN - YOU WILL HAVE TO REPEAT THE ABOVE gmake clean AND gmake COMMANDS, OR - AT THE VERY LEAST, RECOMPILE YOUR PROGRAM THAT INCLUDES G4VisExecutive.hh, - E.G., - touch myprog.cc; gmake - ******************************************************************* - - -5) To run: - - setenv DISPLAY :0 - $G4WORKDIR/bin/$G4SYSTEM/myprog - - -Appendix A: An "rc" example ---------------------------- - ----------------------- g4rc ------------------------------------------ -## Must be run from a directory *containing* geant4/. -## It must be "sourced" from a Bourne/ksh.bash shell using `. ' -## or `source '. -## G4INSTALL becomes geant4. -## G4BIN, etc., in some apprpriate subdirectory of $disc1 - -disc1=/scratch/GEANT4 -if [ ! -e $disc1/$thisbase ]; then - mkdir $disc1/$thisbase -fi -if [ ! -e $disc1/$thisbase/geant4 ]; then - mkdir $disc1/$thisbase/geant4 -fi -disc2=/mnt/disc2 - -if [ -e `pwd`/geant4 ]; then - -thiswd=`pwd` -thisbase=`basename $thiswd` -export G4INSTALL=$thiswd/geant4 -env | grep G4INSTALL= -export G4WORKDIR=$G4INSTALL -export G4BIN=$disc1/$thisbase/geant4/bin -env | grep G4BIN= -export G4LIB=$disc1/$thisbase/geant4/lib -env | grep G4LIB= -export G4TMP=$disc1/$thisbase/geant4/tmp -env | grep G4TMP= -export G4SYSTEM=Linux-g++ -export G4LEVELGAMMADATA=$G4INSTALL/data/PhotonEvaporation - -export G4DEBUG=1 -export CLHEP_BASE_DIR=/usr/local -env | grep G4DEBUG -env | grep CLHEP -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CLHEP_BASE_DIR/lib - -##export CVSROOT=:pserver:allison@g4cvs.cern.ch:/afs/cern.ch/sw/geant4/cvs -export CVSROOT=/afs/cern.ch/sw/geant4/cvs -export CVSEDITOR=emacs - -########## DAWN (Fukui) Renderer -export G4VIS_BUILD_DAWN_DRIVER=1 -export G4VIS_USE_DAWN=1 -export DAWN_BSD_UNIX_DOMAIN=1 -export DAWN_GUI_ALWAYS=1 -#export DAWN_HOME=/home/johna/GEANT4/DAWN # Now in /usr/local. -#export G4DAWNFILE_VIEWER=NONE # Uncomment if DAWN is not available. -#export PATH=$PATH:$DAWN_HOME # Now in /usr/local. - -########### OpenGL -export G4VIS_BUILD_OPENGLX_DRIVER=1 -export G4VIS_USE_OPENGLX=1 -export G4VIS_BUILD_OPENGLXM_DRIVER=1 -export G4VIS_USE_OPENGLXM=1 -### export XKEYSYMDB=/usr/lib/X11/XKeysymDB -export OGLHOME=/usr/X11 - -########### OpenInventor -export G4VIS_BUILD_OIX_DRIVER=1 -export G4VIS_USE_OIX=1 -export OIVFLAGS="-I$disc2/HEPVis/new/include -DINVENTOR2_1 -I$disc2/SoFree/new/include" -export OIVLIBS="-L$disc2/HEPVis/new/Linux-gxx-SF -lHEPVis -L$disc2/SoFree/new/Linux-gxx -lSoFree" -export SOFREEUSER=$disc2/SoFree/new/user/ - -############ VRML -export G4VIS_USE_VRML=1 -export G4VIS_BUILD_VRML_DRIVER=1 - -########### Interfaces -export G4UI_BUILD_TERMINAL_SESSION=1 -export G4UI_USE_TERMINAL=1 -export G4UI_BUILD_GAG_SESSION=1 -export G4UI_USE_GAG=1 -export G4UI_BUILD_XM_SESSION=1 -export G4UI_USE_WO=1 -### #export G4UI_BUILD_XAW_SESSION=1 -### #export G4UI_USE_XAW=1 - -############ Persistency -# export G4USE_HEPODBMS=1 -# . $G4INSTALL/examples/extended/persistency/PersistentEx01/g4odbms_setup.sh -# export OS=`uname` -# oocheckls -notitle `hostname` || \ -# oolockserver -notitle -noauto - -else - echo No geant4 here. -fi - - -Appendix B: Sample session --------------------------- - -The Visualization Manager has been constructed with verbosity == c -(confirmations). - -RunManager is constructing.... - -************************************************************* - Geant4 version $Name: geant4-07-01 $ (17-December-2004) - Copyright : Geant4 Collaboration - Reference : NIM A 506 (2003), 250-303 - WWW : http://cern.ch/geant4 -************************************************************* - -Visualization Manager instantiating... -Visualization Manager initialising... -Registering graphics systems... -G4VisManager::RegisterGraphicsSystem: ASCIITree (ATree) registered. -G4VisManager::RegisterGraphicsSystem: DAWNFILE (DAWNFILE) registered. -G4VisManager::RegisterGraphicsSystem: GAGTree (GAGTree) registered. -G4VisManager::RegisterGraphicsSystem: G4HepRep (HepRepXML) registered. -G4VisManager::RegisterGraphicsSystem: G4HepRepFile (HepRepFile) registered. -G4VisManager::RegisterGraphicsSystem: RayTracer (RayTracer) registered. -G4VisManager::RegisterGraphicsSystem: VRML1FILE (VRML1FILE) registered. -G4VisManager::RegisterGraphicsSystem: VRML2FILE (VRML2FILE) registered. -G4VisManager::RegisterGraphicsSystem: OpenGLImmediateX (OGLIX) registered. -G4VisManager::RegisterGraphicsSystem: OpenGLStoredX (OGLSX) registered. -G4VisManager::RegisterGraphicsSystem: OpenGLImmediateXm (OGLIXm) registered. -G4VisManager::RegisterGraphicsSystem: OpenGLStoredXm (OGLSXm) registered. -G4VisManager::RegisterGraphicsSystem: OpenInventorXt (OIX) registered. - -You have successfully chosen to use the following graphics systems. -Current available graphics systems are: - ASCIITree (ATree) - DAWNFILE (DAWNFILE) - GAGTree (GAGTree) - G4HepRep (HepRepXML) - G4HepRepFile (HepRepFile) - RayTracer (RayTracer) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) - OpenGLImmediateX (OGLIX) - OpenGLStoredX (OGLSX) - OpenGLImmediateXm (OGLIXm) - OpenGLStoredXm (OGLSXm) - OpenInventorXt (OIX) -... diff --git a/source/visualization/README.adding_graphics_system b/source/visualization/README.adding_graphics_system deleted file mode 100644 index 56ab0ab03d..0000000000 --- a/source/visualization/README.adding_graphics_system +++ /dev/null @@ -1,126 +0,0 @@ -To add a graphics system: - -1) implement 3 new classes: - - class G4XXX: public G4VGraphicsSystem - class G4XXXSceneHandler: public G4VSceneHandler - class G4XXXViewer: virtual public G4VViewer - - These should be placed in their own sub-directory under - visualization, together with a GNUmakefile and a History file. - Change the library name G4XXX in "name := G4XXX" in GNUmakefile. - -2) Add to SUBDIRS and SUBLIBS in visualization/GNUmakefile. - -3) Look at the XXX graphics system skeleton in visualization/XXX and - use it to build your graphics system. - - You might also find it useful to look at ASCIITree (and VTree) as - an example of a minimal graphics system. - - Look at FukuiRenderer as an example of a system which implements - AddThis methods for some solids. - - Look at OpenGL as an example of a system which implements a graphical - database (display lists) and the machinery to decide when to rebuild. - (OpenGL is complicated by the proliferation of combinations of: - - immediate (no display lists) ) ( X-windows - stored (uses display lists) ) x ( X with motif - interactive - ( Win32 - - (6 combinations) and much use is made of inheritance to avoid code - duplication.) - -4) If it requires external libraries, introduce two new environment - variables G4VIS_BUILD_XXX_DRIVER and G4VIS_USE_XXX and make the - modifications to: - - source/visualization/management/include/MyVisManager.cc - (similarly all examples vis managers) - source/visualization/management/src/G4VisManager.cc - config/G4VIS_BUILD.gmk - config/G4VIS_USE.gmk - - In any case, augment the informational printing in G4VisManager.cc. - -========================================================================= - -Frequently Asked Questions --------------------------- - -Q: How do I implement the drawing of markers? - -A: See graphics_reps/include/G4VMarker.hh. - - -Q: What functions can a user call? - -A: The interface for the user (application developer) is G4VVisManager - defined in intercoms/include/G4VVisManager.hh. (The interface - G4VGraphicsScene in intercoms/include/G4VGraphicsScene.hh is for - visualization developers only. It is that part of the scene - handler's interface available to other categories, but must be used - with care.) - - -Q: How do I implement the drawing of trajectories? - -A: (January 2002, referring to Geant4 4.0. There are plans to improve - the handling of trajectories, so this advice might change. - Hopefully we'll keep it up to date, but who knows. Be warned.) - - The trajectories themselves have a method, - G4Trajectory::DrawTrajectory, invoked by the user or by the vis - manager, if requested, at the end of an event, which calls Draw - methods of G4VisManager, which call AddPrimitive. So AddPrimitive - is where you need to look at the vis attributes. - -void G4VisManager::Draw (const G4Polyline& line, - const G4Transform3D& objectTransform) { - if (IsValidView ()) { - ClearTransientStoreIfMarked(); - G4ModelingParameters* pMP = fpSceneHandler -> CreateModelingParameters (); - G4VModel* pModel = new G4NullModel (pMP); - fpSceneHandler -> SetModel (pModel); - fpSceneHandler -> BeginPrimitives (objectTransform); - fpSceneHandler -> AddPrimitive (line); - fpSceneHandler -> EndPrimitives (); - fpSceneHandler -> SetModel (0); - delete pModel; - delete pMP; - } -} - - It needs to go through the vis manager so that "transients" are - handled properly. The geometry model and things like axes are - "run-duration" (sometimes misleadingly called persistent) and - trajectories, etc., are "end-of-event" (sometimes misleadingly - called transient) - see G4Scene: - -class G4Scene { - ... -private: - G4String fName; - G4std::vector fRunDurationModelList; - G4std::vector fEndOfEventModelList; - G4VisExtent fExtent; - G4Point3D fStandardTargetPoint; - G4bool fRefreshAtEndOfEvent; -}; - - The user can choose to have the view refreshed at the end of event, - which means previous end-of-event objects get erased. In OpenGL, - this is done by (a) in Immediate mode, erasing everything and - redrawing run-duration and the new end-of-event objects or (b) in - Stored mode, just deleting the display lists of the end-of-event - objects and recreating them. - - Now, you will see that G4Trajectory::DrawTrajectory is very - primitive. It has not been changed for years!! It draws lots of - circles. This is a huge demand on graphical databases and we have - had on our to-do list for years to introduce AddPrimitive(const - G4VTrajectory&). Certainly, OpenInventor sags under the weight of - lots of circles, which it implements as spheres(!), and there are - great savings of efficiency to be made if graphics systems can - handle trajectories directly. diff --git a/source/visualization/README.built_in_commands b/source/visualization/README.built_in_commands deleted file mode 100644 index 0b308c2743..0000000000 --- a/source/visualization/README.built_in_commands +++ /dev/null @@ -1,571 +0,0 @@ - Visualization Built In Commands - =============================== - -Here is some guidance on the vis commands available from Geant4 6.2. -Note particularly the compound commands: - -/vis/drawTree -/vis/drawVolume -/vis/drawView -/vis/open -/vis/specify - -Introduction -============ - -See also the Users Guide For Application Developers, GettingStarted, -Visualization. - -For using the visualization commands, it is useful to know the concept -of "scene", "scene handler", and "viewer". A "scene" is a set of -visualizable objects. A "scene handler" is a graphics-data modeler, -which processes raw data in a scene for later visualization. And a -"viewer" generates images based on data processed by a scene handler. -Roughly speaking, a set of a scene handler and a viewer corresponds to -a visualization driver. - -The typical steps of performing Geant4 visualization are: - -Step 1. Create a scene handler and a viewer. - -Step 2. Create an empty scene. - -Step 3. Add raw 3D data (e.g., geometrical objects, axes, options to - draw trajectories, etc.) to the created scene. - -Step 4. Attach the current scene handler to the current scene. - -Step 5. Set camera parameters, drawing style (wireframe/surface), etc. - -Step 6. Refresh the viewer. - -Step 7. Draw transients (trajectories, hits, etc) - -Step 8. Flush the viewer if necessary, i.e., those viewers which need - to render a view after all data is assembled and - pseudo-viewers, e.g., file writers that need to close files. - -Note that the above list does not mean that you have to execute 8 -commands for visualization. You can use "compound commands" which can -execute several visualization commands at one time. - -A scene handler can handle only one scene at any one time but can have -any number of viewers. - -A scene can be attached to any number of scene handlers. - -It is important to realise that there is also the concept of a "current" -scene, "current" scene handler and "current" viewer which are maintained -by the G4VisManager. It is usually the last object created or selected -or operated upon. - -Note that there is also a concept of a "standard view" which is that which -comfortably includes all components of the scene. From this follow the -concept of standard target point, etc. It is the responsibility of -each viewer to apply its view parameters relatively, taking into account -the scene it represents. This is a dynamic operation and the scene handler -and its viewers must be smart enough to know when to recalculate -graphics-system-dependent quantities when the scene or the view parameters -change. - -See below for a more extended description. - -NI means "not implemented". - - -General Commands -================ - -/vis/enable [true|false] - default: true -/vis/disable - Enables/disables visualization system. - -/vis/verbose [] - default: warnings - Simple graded message scheme - give first letter or a digit: - 0) quiet, // Nothing is printed. - 1) startup, // Startup and endup messages are printed... - 2) errors, // ...and errors... - 3) warnings, // ...and warnings... - 4) confirmations, // ...and confirming messages... - 5) parameters, // ...and parameters of scenes and views... - 6) all // ...and everything available. - - -Scenes -====== - -A scene is a list of visualizable objects, such as detector components, -hits, trajectories, axes, etc. - -Scenes are graphics-system-independent. - -The G4VisManager has a list of scenes. - -Unless otherwise stated, commands affect the current scene only. - -/vis/scene/add/axes [] [] [] [] [] - default: 0 0 0 1 m - Draws axes at (x0, y0, z0) of given length. - The x, y and z axes are red, green and blue respectively. - -NI /vis/scene/add/ghost [] [] -NI [] [] - -/vis/scene/add/ghosts [] - default: all - Adds ghost volumes (G4FlavoredParallelWorld) to the current scene. - Selects by particle. - -/vis/scene/add/hits [] - default: (argument not impl'd yet.) - Causes hits, if any, to be drawn at the end of processiing an event. - -/vis/scene/add/logicalVolume [] - default: 1 - Draws a logical volume in its own coordinate system, showing voxels and - boolean components (if any). - -/vis/scene/add/scale [ ] [x|y|z] [] [] [] [auto|manual] [ ] - default: 1 m x 1 0 0 auto 0 0 0 m - Adds an annotated scale line to the current scene. See G4Scale.hh - for further description. - -/vis/scene/add/text x y z unit font_size x_offset y_offset text - Adds text at (x*unit, y*unit, z*unit) with font_size x_offset y_offset - Font size and offsets in pixels. - -/vis/scene/add/trajectories [drawing-mode] [] - default: 0 (this argument not impl'd yet.) - Causes trajectories, if any, to be drawn at the end of processiing - an event. The drawing mode is an integer that is passed to the - DrawTrajectory method. The default implementation in G4VTrajectory, - if drawing-mode > 0, draws the trajectory as a polyline and, if - drawing-mode != 0, draws markers of screen size abs(drawing-mode)/1000 - in pixels at each step and auxiliary point, if any. So drawing-mode - == 5000 is a good choice. (Enable storing with - "/tracking/storeTrajectory 1".) See also "/vis/scene/endOfEventAction" - and "/vis/scene/endOfRunAction". - -/vis/scene/add/volume [] [] [] - default: world -1 -1 - Adds physical volume to current scene. - If copy-no is negative, first occurrence of physical-volume-name is - selected. - If depth is negative, search is made to all depths. - -/vis/scene/create [] - default auto-generated name - This scene becomes current. - -/vis/scene/endOfEventAction [accumulate|refresh] - default: refresh - The scene handler for this scene will, when a viewer of this scene - is current, be requested: - a) (accumulate) to accumulate "transient" objects, such as hits and - trajectories event by event, or - b) (refresh) to show them at end of event or, for direct-screen - viewers, refresh the screen just before drawing the next event. - Any "run-persistent" objects, such as dectector geometry components, - are unaffected or are redrawn. - -/vis/scene/endOfRunAction [accumulate|refresh] - default: refresh - As endOfEventAction, but for end of run. - -/vis/scene/list [] [] - default: all 0 - Current scene remains current. - -/vis/scene/notifyHandlers [] [r[efresh]]|f[lush]] - default: current scene name refresh - Clears and refreshes all viewers of current scene and forces a - reconstruction of any graphical databases. - The default action "refresh" does not issue "update" (see - /vis/viewer/update). - If "flush" is specified, it issues an "update" as well as "refresh". Useful - for refreshing and initiating post-processing for graphics systems which - need post-processing. - -/vis/scene/remove - Current scene can change or become invalid. - -/vis/scene/select [] - default: current scene name - This scene becomes current. - - -Scene Handlers -============== - -A scene handler is an object which knows how to interpret a scene for a -specific graphics system. - -Each scene handler handles one scene and has, in general, any number of -viewers. - -The G4VisManager has a list of scene handlers. - -/vis/sceneHandler/attach [] - default: current scene name - Attaches scene to current scene handler. - -/vis/sceneHandler/create [] [] - default: error auto-generated name - (The first default simply triggers a list of possibilities.) - This scene handler becomes current. - The current scene, if any, is attached. - -/vis/sceneHandler/list [] [] - default: all 0 - Current scene handler remains current. - -NI /vis/sceneHandler/notifyEndOfProcessing - Issues "update" for each viewer of current scene handler. - -NI /vis/sceneHandler/processScene - Refreshes all viewers of current scene handler. - Does not issue "update" (see /vis/viewer/update). - -/vis/sceneHandler/remove - Current scene handler can change or become invalid. - -/vis/sceneHandler/select [] - default: current scene handler name - This scene handler becomes current. - - -Viewers -======= - -A viewer opens windows and draws to the screen or writes to file for -off-line viewing or hardcopy, etc. It can be dumb (a non-interactive -window) or intelligent (respond to mouse clicks, spawn other windows, -change viewpoint, etc.). - -Most viewer commands respond to the viewer "short name", which is the -name up to the first space character, if any. Thus, a viewer name can -contain spaces but must be unique up to the first space. - -Unless otherwise stated, commands affect the current viewer only. - -/vis/viewer/clear - -NI /vis/viewer/clone - Creates a clone. Clone becomes current viewer. - -/vis/viewer/create [] [] [] - default: current scene handler name auto-generated name 600 - Pixel size of square window (hint only). - This viewer becomes current. - -/vis/viewer/dolly [] [] - default: current-value m - Moves the camera incrementally in by this distance. - -/vis/viewer/dollyTo [] [] - default: current-value m - Moves the camera in this distance relative to standard target point. - -/vis/viewer/flush [] - Compound command: /vis/viewer/refresh [] - /vis/viewer/update [] - Useful for refreshing and initiating post-processing for graphics systems - which need post-processing. This viewer becomes current. - -/vis/viewer/list [] [] - default: all 0 - Current viewer remains current. - -/vis/viewer/pan [] [] [] - default: 0 0 - Moves the camera incrementally right and up by these amounts. - -/vis/viewer/panTo [] [] [] - default: 0 0 - Moves the camera to this position right and up relative to standard target - point. - -/vis/viewer/refresh [] - default: current viewer name - Re-traverses graphical data, which is enough in some cases to refresh the - view. In some cases post-processing is required to complete the view - - see /vis/viewer/update. - This viewer becomes current. - -/vis/viewer/remove - default: no default - Current viewer can change or become invalid. - -/vis/viewer/reset [] - default: current viewer name - Resets view parameters to defaults. - This viewer becomes current. - -/vis/viewer/select - default: no default - This viewer becomes current. - -/vis/viewer/zoom [] - default: 1 - Multiplies magnification by this factor. - -/vis/viewer/zoomTo [] - default: 1 - Magnifies by this factor relative to standard view. - -/vis/viewer/set/all - Copies view parameters (except the autoRefresh status) from from-viewer - to current viewer. - -/vis/viewer/set/autoRefresh [true|false] - default: false - View is automatically refreshed after a change of view parameters. - -/vis/viewer/set/auxiliaryEdge [true|false] - default: false - Auxiliary edges become visible/invisible. - Auxiliary edges are not genuine edges of the volume. They may be in - a curved surface made out of polygons, for example, or in plane - surface of complicated shape that has to be broken down into simpler - polygons. HepPolyhedron breaks all surfaces into triangles or - quadrilaterals. There will be auxiliary edges for any volumes with - a curved surface, such as a tube or a sphere, or a volume resulting - from a Boolean operation. Normally, they are not shown, but - sometimes it is useful to see them. In particular, a sphere, - because it has no egdes, will not be seen in wireframe mode in some - graphics systems unless this flag is turned on. - -/vis/viewer/set/culling - g[lobal]|c[overedDaughters]|i[nvisible]|d[ensity] [true|false] - [density] [unit] - default: none true 0.01 g/cm3 - global: enables other culling options/disables culling. - coveredDaughters: does not send volumes that would not be seen on the - screen because covered by ancester volumes in surface drawing mode, - and then only if the volumes are visible and opaque, and then only if - no sections or cutways are in operation. Intended solely to improve - the speed of rendering visible volumes. - invisible: culls objects with invisible attribute. - density: culls volumes with density lower than threshold. Useful for - eliminating "container volumes" with no physical correspondence whose - material is usually air. If this is selected, provide threshold - density and unit (g/cm3, mg/cm3 or kg/m3). - -NI /vis/viewer/set/cutawayPlane ... - Set plane(s) for cutaway views. - -/vis/viewer/set/edge [true|false] - default: true - Edges become visible/invisible in surface mode. - -/vis/viewer/set/globalMarkerScale [] - default: 1 - Multiplies marker sizes by this factor. - -/vis/viewer/set/hiddenEdge [true|false] - default: true - Edges become hidden/seen in wireframe or surface mode. - -/vis/viewer/set/hiddenMarker [true|false] - default: true - Markers are hidden by (if true) or seen through (if false) closer objects. - -/vis/viewer/set/lightsMove with-camera|with-object - Note: parameter will be parsed for \"cam\" or \"obj\". - -/vis/viewer/set/lightsThetaPhi [] [] [deg|rad] - default: 60 45 deg - after first use: and use "current as default". - Set direction from target to lights. - -/vis/viewer/set/lightsVector [] [] [] - default: 1 1 1 - after first use: current as default. - Set direction from target to lights. - -/vis/viewer/set/lineSegmentsPerCircle [] - default: 24 - Number of sides per circle in polygon/polyhedron graphical representation - of objects with curved lines/surfaces. - -/vis/viewer/set/projection - o[rthogonal]|p[erspective] [] [deg|rad] - default: orthogonal 30 deg - -/vis/viewer/set/sectionPlane on|off [x] [y] [z] [units] [nx] [ny] [nz] - default: 0 0 0 cm 1 0 0 - Set plane for drawing section (DCUT). Specify plane by x y z units nx ny nz, - e.g., for a y-z plane at x = 1 cm: - /vis/viewer/set/sectionPlane on 1 0 0 cm 1 0 0 - To turn off: /vis/viewer/set/sectionPlane off - -/vis/viewer/set/style w[ireframe]|s[urface] - -/vis/viewer/set/upThetaPhi [] [] [deg|rad] - default: 90 90 deg - after first use: and use "current as default". - Set up vector. Viewer will attempt always to show this direction upwards. - -/vis/viewer/set/upVector [] [] [] - default: 0 1 0 - after first use: current as default. - Set up vector. Viewer will attempt always to show this direction upwards. - -/vis/viewer/set/viewpointThetaPhi [] [] [deg|rad] - default: 0 0 deg - after first use: and use "current as default". - Set direction from target to camera. Also changes lightpoint direction if - lights are set to move with camera. - -/vis/viewer/set/viewpointVector [] [] [] - default: 0 0 1 - after first use: current as default. - Set direction from target to camera. Also changes lightpoint direction if - lights are set to move with camera. - -/vis/viewer/update [] - default: current viewer name - Initiates post-processing if required. This viewer becomes current. - - -Attributes (nothing implemented yet) -========== - -The G4VisManager also keeps a list of visualization attributes which can -be created and changed and attributed to visualizable objects. - -Unless otherwise stated, commands affect the visualization attributes of -the current viewer only. - -NI /vis/attributes/create [] - default: auto-generated name - These attributes are passed to the current viewer??????????? - -NI /vis/attributes/set/colour [] [] [] [] [] -NI /vis/attributes/set/color [] [] [] [] [] - default: current attributes name 1 1 1 1 - Sets colour (red, green, blue, opacity). - -NI /vis/scene/set/attributes - Associates current vis attributes with logical volume. (Do we need to - provide possibility of resetting to original attributes?) - (Move to scene when implemented.) - - -Compound Commands -================= - -/vis/drawTree [] [] -default: world ATree - /vis/open $2 - /vis/drawVolume $1 - -/vis/drawVolume [] -default: world - /vis/scene/create - /vis/scene/add/volume $1 - /vis/sceneHandler/attach - -/vis/drawView [] [] - [] [] [] - [] - [] [] -default: 0 0 0 0 cm 1 0 cm - /vis/viewer/set/viewpointThetaPhi $1 $2 deg - /vis/viewer/panTo $3 $4 $5 - /vis/viewer/zoomTo $6 - /vis/viewer/dollyTo $7 $8 - -/vis/open [] [<[pixels>] -default: error 600 - /vis/sceneHandler/create $1 - /vis/viewer/create ! ! $2 - -/vis/specify - /geometry/print $1 - /vis/scene/create - /vis/scene/add/logicalVolume $1 - /vis/sceneHandler/attach - - -Appendix -======== - -About the Visualization Manager: - -G4VisManager is a "Singleton", i.e., only one instance of it or any -derived class may exist. A G4Exception is thrown if an attempt is -made to instantiate more than one. - -It is also an abstract class, so the user must derive his/her own -class from G4VisManager, implement the pure virtual function -RegisterGraphicsSystems, and instantiate an object of the derived -class - for an example see -visualization/include/MyVisManager.hh/cc. - -The recommended way for users to obtain a pointer to the vis -manager is with G4VVisManager::GetConcreteInstance (), being always -careful to test for non-zero. This pointer is non-zero only when -(a) an object of the derived class exists and (b) when there is a -valid viewer available. - -The VisManager creates graphics systems, scenes, scene handlers and -viewers and manages them. You can have any number. It has the -concept of a "current viewer", and the "current scene handler", the -"current scene" and the "current graphics system" which go with it. -You can select the current viewer. Most of the the operations of -the VisManager take place with the current viewer, in particular, -the Draw operations. - -Each scene comprises drawable objects such as detector components -and hits when appropriate. A scene handler translates a scene into -graphics-system-specific function calls and, possibly, a -graphics-system-dependent database - display lists, scene graphs, -etc. Each viewer has its "view parameters" (see class description -of G4ViewParameters for available parameters and also for a -description of the concept of a "standard view" and all that). - -A friend class G4VisStateDependent is "state dependent", i.e., it -is notified on change of state (G4ApplicationState). This is used -to message the G4VisManager to draw hits and trajectories in the -current scene at the end of event, as required. - - -About Views and View Parameters: - -THE STANDARD VIEW AND ALL THAT. - -In GEANT4 visualization, we have the concept of a "Standard -View". This is the view when the complete set of objects being -viewed is comfortably in view from any viewpoint. It is defined by -the "Bounding Sphere" of "visible" objects when initially -registered in the scene, and by the View Parameters. - -There is also the "Standard Target Point", which is the centre of -the Bounding Sphere (note that this belongs to the scene and is -stored in the G4Scene object). The "Current Target Point", defined -relative to the Standard Target Point, is changed by the -"dolly" and "zoom" commands, and can be reset to the Standard -Target Point with the "/vis/viewer/reset" command. - -Also, the "Standard Camera Position" is the "Standard Camera -Distance" along the Viewpoint Direction vector from the Standard -Target Point. The Standard Camera Distance is the radius of the -Bounding Sphere divided by fFieldHalfAngle. It is not stored -explicitly because of the singularity at fFieldHalfAngle = 0, -which implies parallel projection. - -Similarly, the "Current Camera Position" is the "Current Camera -Distance" along the Viewpoint Direction vector from the Current -Target Point. The Current Camera Distance is given by the formulae -below, but note that it can be negative, meaning that the camera -has moved *beyond* the Current Target Point, which is -conceptually possible, but which might give some problems when -setting up the view matrix - see, for example, G4OpenGLView::SetView (). - -All viewers are expected to keep the "Up Vector" vertical. - -Finally, the view is magnified by the "Zoom Factor" which is -reset to 1 by the "/vis/viewer/reset" command. diff --git a/source/visualization/README.quick b/source/visualization/README.quick deleted file mode 100644 index aec95662e9..0000000000 --- a/source/visualization/README.quick +++ /dev/null @@ -1,67 +0,0 @@ - Quick installation on Linux (might work elsewhere) - ================================================== - -NOTE: tag names and CLHEP versions, etc., will change. These are -representative and apply on 2nd August 2001. - -NOTE: as for csh. For sh, ksh, bash, replace setenv by export and put -'=' between name and value, e.g., export G4=. - -1) setenv G4 - setenv SCRATCH (for binaries) - -2) cd $G4 - cvs co -r geant4-03-02-ref-02 geant4 - -3) Needs CLHEP1.7: go to Geant4 Web Page, Download, CLHEP version 1.6 - (sic), CLHEP, "LINUX V1.7 using egcs 1.1.2" and untar into, say, - G4/CLHEP1.7/. (egcs 1.1.2 is the default compiler on Noric.) - cd $G4 - mkdir CLHEP1.7 - cd CLHEP1.7 - tar xzf clhep-1.7.0.0-egcs-1.1.2.tar.gz - -4) Optionally, update to later subtags: - cd $G4/geant4/source/visualization - cvs update -d -P -r vis-V03-02-12 - cd $G4/geant4/graphics_reps - cvs update -d -P -r greps-V03-02-03 - cd $G4/geant4/intercoms - cvs update -d -P -r intercoms-V03-02-04 - -5) setenv G4INSTALL $G4/geant4 - setenv G4BIN $SCRATCH/bin - setenv G4LIB $SCRATCH/lib - setenv G4TMP $SCRATCH/tmp - setenv G4SYSTEM Linux-g++ - setenv G4LEVELGAMMADATA $G4INSTALL/data/PhotonEvaporation - setenv CLHEP_BASE_DIR $G4/CLHEP1.7 - setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:$CLHEP_BASE_DIR/lib - -5) VIS and UI variables (the BUILD variables are for installers, the - USE for users - you are both!): - setenv G4VIS_BUILD_OPENGLX_DRIVER 1 - setenv G4VIS_USE_OPENGLX 1 - setenv G4UI_BUILD_TERMINAL_SESSION 1 (*) - setenv G4UI_USE_TERMINAL 1 - setenv OGLHOME /usr/X11 (Might not be necessary) - -6) If you're more adventurous, have motif or lesstif... - setenv G4VIS_BUILD_OPENGLXM_DRIVER 1 - setenv G4VIS_USE_OPENGLXM 1 - setenv G4UI_BUILD_XM_SESSION 1 - setenv G4UI_USE_XM 1 - -7) ...or want to try GAG (Japanese GUI): - setenv G4UI_BUILD_GAG_SESSION 1 (*) - setenv G4UI_USE_GAG 1 - -8) Optionally: - setenv G4DEBUG 1 - -9) cd $G4INSTALL/source - gmake >& gmake.log & - -10) cd $G4INSTALL/examples/novice/N03 - gmake >& gmake.log & diff --git a/source/visualization/RayTracer/GNUmakefile b/source/visualization/RayTracer/GNUmakefile index eca9fb1b25..6fee07b966 100644 --- a/source/visualization/RayTracer/GNUmakefile +++ b/source/visualization/RayTracer/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.9 2004/06/11 14:30:49 gcosmo Exp $ +# $Id: GNUmakefile,v 1.11 2005/11/18 23:07:04 allison Exp $ name := G4RayTracer diff --git a/source/visualization/RayTracer/History b/source/visualization/RayTracer/History index 453fcc2b89..ea37d52534 100644 --- a/source/visualization/RayTracer/History +++ b/source/visualization/RayTracer/History @@ -1,4 +1,4 @@ -$Id: History,v 1.25 2004/06/11 15:23:39 gcosmo Exp $ +$Id: History,v 1.39 2005/12/05 06:44:10 perl Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,45 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- +4th December 2005 Makoto Asai (raytracer-V07-01-08) +- Correct initialization of G4RTTrackingAction and G4RTSteppingAction + +28th November 2005 Jane Tinslay (raytracer-V07-01-07) +- Remove names of unused parameters to stop compiler warnings + +18th November 2005 John Allison (raytracer-V07-01-06) +- Merged in raytracer-V07-01-04 - see below. +- Implemented window positioning. + +28th October 2005 Makoto Asai (raytracer-V07-01-05) +- Working tag for merging "envelope" into G4Region. +- This tag does not contain raytracer-V07-01-04 tag that might be + already done by J. Allison but does not yet appear on this file. + +13th October September 2005 John Allison (raytracer-V07-01-04) +(On branch raytracer-V07-01-01-branch; changes *not* merged into head - +need to cvs update -j raytracer-V07-01-02 -j raytracer-V07-01-01-branch.) +- Migrated to . +- Default background black - can be changed by /vis/viewer/set/background. +- GNUmakefile: Removed temporary CPPFLAGS += -DG4VIS_BUILD_RAYTRACERX_DRIVER. + +30th September 2005 Joseph Perl (raytracer-V07-01-03) +New tag to include change Makoto made an hour after V07-01-02 was tagged. +Change seems to just involve passing pWorld to material list where no argument was passed in previous version. + +16th September 2005 John Allison (raytracer-V07-01-02) +(On branch raytracer-V07-01-01-branch; changes merged into head.) +- Bug fix (black holes): Made small epsilon push into world to ensure inside. + +20th July 2005 John Allison (raytracer-V07-01-01) +- Protected RayTracerX by G4VIS macro. + +17th July 2005 John Allison (raytracer-V07-01-00) +- Introduced RayTracerX. RayTracerX opens an X window and builds up + the picture, refining it gradually. Already calculated pixels are + not recalculated, so it is as efficient as a top-to-bottom raster + scan. It produces a jpeg file as well, just like RayTracer. + 11th June 2004 Gabriele Cosmo (raytracer-V06-01-00) - Use global flag G4VIS_ALLOC_EXPORT to export extern symbols for DLLs. Modified GNUmakefile and rearranged usage of extern symbols in classes. diff --git a/source/visualization/RayTracer/include/G4RTJpeg.hh b/source/visualization/RayTracer/include/G4RTJpeg.hh index f458f16318..26c51de524 100644 --- a/source/visualization/RayTracer/include/G4RTJpeg.hh +++ b/source/visualization/RayTracer/include/G4RTJpeg.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTJpeg.hh,v 1.5 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTJpegCoder.hh b/source/visualization/RayTracer/include/G4RTJpegCoder.hh index 0ea8679f06..efd7dd5415 100644 --- a/source/visualization/RayTracer/include/G4RTJpegCoder.hh +++ b/source/visualization/RayTracer/include/G4RTJpegCoder.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegCoder.hh,v 1.5 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh b/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh index c677815c16..7e9a5e4c46 100644 --- a/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh +++ b/source/visualization/RayTracer/include/G4RTJpegCoderTables.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegCoderTables.hh,v 1.5 2001/07/11 10:09:01 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description: diff --git a/source/visualization/RayTracer/include/G4RTJpegMaker.hh b/source/visualization/RayTracer/include/G4RTJpegMaker.hh index 7bea983daa..61e355aafa 100644 --- a/source/visualization/RayTracer/include/G4RTJpegMaker.hh +++ b/source/visualization/RayTracer/include/G4RTJpegMaker.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegMaker.hh,v 1.5 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTMessenger.hh b/source/visualization/RayTracer/include/G4RTMessenger.hh index ab84a62089..7a41ca04f0 100644 --- a/source/visualization/RayTracer/include/G4RTMessenger.hh +++ b/source/visualization/RayTracer/include/G4RTMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTMessenger.hh,v 1.5 2003/09/18 11:13:24 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTOutBitStream.hh b/source/visualization/RayTracer/include/G4RTOutBitStream.hh index dfc50d850a..64d7b8fb6f 100644 --- a/source/visualization/RayTracer/include/G4RTOutBitStream.hh +++ b/source/visualization/RayTracer/include/G4RTOutBitStream.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTOutBitStream.hh,v 1.6 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTSimpleScanner.hh b/source/visualization/RayTracer/include/G4RTSimpleScanner.hh index de63e84c15..133fc79fa3 100644 --- a/source/visualization/RayTracer/include/G4RTSimpleScanner.hh +++ b/source/visualization/RayTracer/include/G4RTSimpleScanner.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RTSimpleScanner.hh,v 1.1 2003/09/18 11:14:02 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RTSimpleScanner.hh,v 1.2 2005/07/17 13:59:24 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -45,6 +45,14 @@ public: // with description // Compiler defaults for destructor, copy constructor and // assignmemt. + virtual const G4String& GetGSName() const; + // Get name that acts as graphics system name. + + virtual const G4String& GetGSNickname() const; + // Get name that acts as graphics system nickname. It is this that + // the user specifies on the /vis/open and /vis/sceneHandler/create + // commands. + virtual void Initialize(G4int nRow, G4int nColumn); // Intialises scanner for window with nRow rows and nColumn columns. @@ -54,6 +62,7 @@ public: // with description // last valid coordinate. protected: + G4String theGSName, theGSNickname; G4int theNRow, theNColumn, theIRow, theIColumn; }; diff --git a/source/visualization/RayTracer/include/G4RTSteppingAction.hh b/source/visualization/RayTracer/include/G4RTSteppingAction.hh index 0826914b81..f6e479099e 100644 --- a/source/visualization/RayTracer/include/G4RTSteppingAction.hh +++ b/source/visualization/RayTracer/include/G4RTSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTSteppingAction.hh,v 1.4 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTTrackingAction.hh b/source/visualization/RayTracer/include/G4RTTrackingAction.hh index d2c2e25ffa..9fc25114ff 100644 --- a/source/visualization/RayTracer/include/G4RTTrackingAction.hh +++ b/source/visualization/RayTracer/include/G4RTTrackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4RTTrackingAction.hh,v 1.5 2003/05/30 13:01:20 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RTXScanner.hh b/source/visualization/RayTracer/include/G4RTXScanner.hh new file mode 100644 index 0000000000..a10cc0d505 --- /dev/null +++ b/source/visualization/RayTracer/include/G4RTXScanner.hh @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RTXScanner.hh,v 1.2 2005/07/20 20:39:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// + +#ifdef G4VIS_BUILD_RAYTRACERX_DRIVER + +#ifndef G4RTXScanner_H +#define G4RTXScanner_H 1 + +// class description: +// +// G4RTXScanner +// Provides a sequence of window coordinates suitable for a visible +// window of ever increasing resolution. + +#include "G4VRTScanner.hh" + +class G4RayTracer; + +class G4RTXScanner: public G4VRTScanner { + +public: // with description + + G4RTXScanner(); + + // Compiler defaults for destructor, copy constructor and + // assignmemt. + + virtual const G4String& GetGSName() const; + // Get name that acts as graphics system name. + + virtual const G4String& GetGSNickname() const; + // Get name that acts as graphics system nickname. It is this that + // the user specifies on the /vis/open and /vis/sceneHandler/create + // commands. + + virtual void Initialize(G4int nRow, G4int nColumn); + // Intialises scanner for window with nRow rows and nColumn columns. + + virtual G4bool Coords(G4int& iRow, G4int& iColumn); + // Supplies coordinate (iRow,iColumn) and returns false when the + // sequence has finished, i.e., on the call *after* suplying the + // last valid coordinate. + + virtual void Draw + (unsigned char red, unsigned char green, unsigned char blue, + G4RayTracer*); + // Draw coloured square at current position. + +protected: + G4String theGSName, theGSNickname; + G4int theNRow, theNColumn, theStep, theIRow, theIColumn; +}; + +#endif + +#endif diff --git a/source/visualization/RayTracer/include/G4RayShooter.hh b/source/visualization/RayTracer/include/G4RayShooter.hh index c301f9d8df..a4efee188e 100644 --- a/source/visualization/RayTracer/include/G4RayShooter.hh +++ b/source/visualization/RayTracer/include/G4RayShooter.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayShooter.hh,v 1.3 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // class description: diff --git a/source/visualization/RayTracer/include/G4RayTracer.hh b/source/visualization/RayTracer/include/G4RayTracer.hh index 040894077c..8493e4bff6 100644 --- a/source/visualization/RayTracer/include/G4RayTracer.hh +++ b/source/visualization/RayTracer/include/G4RayTracer.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTracer.hh,v 1.9 2003/09/18 11:14:03 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTracerFeatures.hh b/source/visualization/RayTracer/include/G4RayTracerFeatures.hh index 0544fb80dc..71f91436cc 100644 --- a/source/visualization/RayTracer/include/G4RayTracerFeatures.hh +++ b/source/visualization/RayTracer/include/G4RayTracerFeatures.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerFeatures.hh,v 1.3 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh b/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh index 4165b7e7ac..2df2c2745a 100644 --- a/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh +++ b/source/visualization/RayTracer/include/G4RayTracerSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerSceneHandler.hh,v 1.8 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // John Allison 17th March 2000 diff --git a/source/visualization/RayTracer/include/G4RayTracerViewer.hh b/source/visualization/RayTracer/include/G4RayTracerViewer.hh index 2d36f186e1..e93de05bc1 100644 --- a/source/visualization/RayTracer/include/G4RayTracerViewer.hh +++ b/source/visualization/RayTracer/include/G4RayTracerViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTracerViewer.hh,v 1.4 2001/07/11 10:09:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RayTracerViewer.hh,v 1.5 2005/07/17 13:59:24 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // John Allison 17th March 2000 @@ -38,7 +38,7 @@ public: void SetView(); void ClearView(); void DrawView(); -private: +protected: G4int fFileCount; }; diff --git a/source/visualization/RayTracer/include/G4RayTracerX.hh b/source/visualization/RayTracer/include/G4RayTracerX.hh new file mode 100644 index 0000000000..8ef65f4b38 --- /dev/null +++ b/source/visualization/RayTracer/include/G4RayTracerX.hh @@ -0,0 +1,62 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RayTracerX.hh,v 1.2 2005/07/20 20:39:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// John Allison 11th September 2003 + +#if defined (G4VIS_BUILD_RAYTRACERX_DRIVER) || (G4VIS_USE_RAYTRACERX) + +#ifndef G4RAYTRACERX_HH +#define G4RAYTRACERX_HH + +// class description: +// +// G4RayTracerX +// X window version of RayTracer (also produces jpeg file - see class +// description for G4RayTracer). + +#include "G4RayTracer.hh" + +#include +#include + +class G4RayTracerX : public G4RayTracer +{ +public: + G4RayTracerX(); + G4VSceneHandler* CreateSceneHandler (const G4String& ); + G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& ); + + // X Window variables... + Display* display; + Window win; + GC gc; + XStandardColormap *scmap; +}; + +#endif + +#endif diff --git a/source/visualization/RayTracer/include/G4RayTracerXViewer.hh b/source/visualization/RayTracer/include/G4RayTracerXViewer.hh new file mode 100644 index 0000000000..c727bceb4e --- /dev/null +++ b/source/visualization/RayTracer/include/G4RayTracerXViewer.hh @@ -0,0 +1,44 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RayTracerXViewer.hh,v 1.2 2005/07/20 20:39:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + +// John Allison 17th March 2000 + +#ifdef G4VIS_BUILD_RAYTRACERX_DRIVER + +#ifndef G4RAYTRACERXVIEWER_HH +#define G4RAYTRACERXVIEWER_HH + +#include "G4RayTracerViewer.hh" + +class G4RayTracerXViewer: public G4RayTracerViewer { +public: + G4RayTracerXViewer(G4VSceneHandler&,const G4String& name); + virtual ~G4RayTracerXViewer(); +}; + +#endif + +#endif diff --git a/source/visualization/RayTracer/include/G4RayTrajectory.hh b/source/visualization/RayTracer/include/G4RayTrajectory.hh index 6fc6af9d0d..18598af4e2 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectory.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectory.hh,v 1.14 2004/06/11 14:30:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh b/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh index c76529f165..96bfe2373f 100644 --- a/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh +++ b/source/visualization/RayTracer/include/G4RayTrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectoryPoint.hh,v 1.8 2004/06/11 14:30:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4VFigureFileMaker.hh b/source/visualization/RayTracer/include/G4VFigureFileMaker.hh index 68eeb60ff7..df4ecf7deb 100644 --- a/source/visualization/RayTracer/include/G4VFigureFileMaker.hh +++ b/source/visualization/RayTracer/include/G4VFigureFileMaker.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFigureFileMaker.hh,v 1.4 2001/07/11 10:09:03 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/RayTracer/include/G4VRTScanner.hh b/source/visualization/RayTracer/include/G4VRTScanner.hh index 51de26a650..bbaa759ba6 100644 --- a/source/visualization/RayTracer/include/G4VRTScanner.hh +++ b/source/visualization/RayTracer/include/G4VRTScanner.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRTScanner.hh,v 1.1 2003/09/18 11:14:03 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VRTScanner.hh,v 1.3 2005/11/28 20:07:44 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -36,10 +36,20 @@ #include "globals.hh" +class G4RayTracer; + class G4VRTScanner { public: // with description + virtual const G4String& GetGSName() const = 0; + // Get name that acts as graphics system name. + + virtual const G4String& GetGSNickname() const = 0; + // Get name that acts as graphics system nickname. It is this that + // the user specifies on the /vis/open and /vis/sceneHandler/create + // commands. + virtual void Initialize(G4int nRow, G4int nColumn) = 0; // Intialises scanner for window with nRow rows and nColumn columns. @@ -48,6 +58,11 @@ public: // with description // sequence has finished, i.e., on the call *after* suplying the // last valid coordinate. + virtual void Draw + (unsigned char, unsigned char, unsigned char, + G4RayTracer*) {} + // Draw coloured square at current position. + }; #endif diff --git a/source/visualization/RayTracer/src/G4RTJpegCoder.cc b/source/visualization/RayTracer/src/G4RTJpegCoder.cc index b5047daa09..a838cf47cc 100644 --- a/source/visualization/RayTracer/src/G4RTJpegCoder.cc +++ b/source/visualization/RayTracer/src/G4RTJpegCoder.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegCoder.cc,v 1.5 2004/12/07 23:41:00 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTJpegMaker.cc b/source/visualization/RayTracer/src/G4RTJpegMaker.cc index 991af53c1b..8d22ef84ce 100644 --- a/source/visualization/RayTracer/src/G4RTJpegMaker.cc +++ b/source/visualization/RayTracer/src/G4RTJpegMaker.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTJpegMaker.cc,v 1.9 2003/06/18 08:23:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTMessenger.cc b/source/visualization/RayTracer/src/G4RTMessenger.cc index 3dcfa9ed48..c02b0c6d2b 100644 --- a/source/visualization/RayTracer/src/G4RTMessenger.cc +++ b/source/visualization/RayTracer/src/G4RTMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTMessenger.cc,v 1.7 2003/09/18 11:13:25 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTOutBitStream.cc b/source/visualization/RayTracer/src/G4RTOutBitStream.cc index 6fb9a75579..699a664701 100644 --- a/source/visualization/RayTracer/src/G4RTOutBitStream.cc +++ b/source/visualization/RayTracer/src/G4RTOutBitStream.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTOutBitStream.cc,v 1.4 2001/07/11 10:09:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTSimpleScanner.cc b/source/visualization/RayTracer/src/G4RTSimpleScanner.cc index 865f064bb5..41fd4e0501 100644 --- a/source/visualization/RayTracer/src/G4RTSimpleScanner.cc +++ b/source/visualization/RayTracer/src/G4RTSimpleScanner.cc @@ -21,30 +21,44 @@ // ******************************************************************** // // -// $Id: G4RTSimpleScanner.cc,v 1.1 2003/09/18 11:14:04 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RTSimpleScanner.cc,v 1.2 2005/07/17 13:59:24 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // #include "G4RTSimpleScanner.hh" G4RTSimpleScanner::G4RTSimpleScanner(): + theGSName("RayTracer"), theGSNickname("RayTracer"), theNRow(0), theNColumn(0), theIRow(0), theIColumn(0) {} +const G4String& G4RTSimpleScanner::GetGSName() const +{return theGSName;} + +const G4String& G4RTSimpleScanner::GetGSNickname() const +{return theGSNickname;} + void G4RTSimpleScanner::Initialize(G4int nRow, G4int nColumn) { theNRow = nRow; theNColumn = nColumn; theIRow = 0; - theIColumn = 0; + theIColumn = -1; } -G4bool G4RTSimpleScanner::Coords(G4int& iRow, G4int& iColumn) { - if (theIRow >= theNRow) return false; - iRow = theIRow; - iColumn = theIColumn; - if (++theIColumn >= theNColumn) { +G4bool G4RTSimpleScanner::Coords(G4int& iRow, G4int& iColumn) +{ + // Increment column and, if necessary, increment row... + ++theIColumn; + if (theIColumn >= theNColumn) { theIColumn = 0; ++theIRow; } + + // Return if finished... + if (theIRow >= theNRow) return false; + + // Return current row and column... + iRow = theIRow; + iColumn = theIColumn; return true; } diff --git a/source/visualization/RayTracer/src/G4RTSteppingAction.cc b/source/visualization/RayTracer/src/G4RTSteppingAction.cc index 4a40f8d185..e08af43300 100644 --- a/source/visualization/RayTracer/src/G4RTSteppingAction.cc +++ b/source/visualization/RayTracer/src/G4RTSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTSteppingAction.cc,v 1.6 2001/07/11 10:09:04 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTTrackingAction.cc b/source/visualization/RayTracer/src/G4RTTrackingAction.cc index 9ad6ef6681..bfdce6bf7d 100644 --- a/source/visualization/RayTracer/src/G4RTTrackingAction.cc +++ b/source/visualization/RayTracer/src/G4RTTrackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4RTTrackingAction.cc,v 1.4 2003/05/30 13:01:21 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RTXScanner.cc b/source/visualization/RayTracer/src/G4RTXScanner.cc new file mode 100644 index 0000000000..0764db1bde --- /dev/null +++ b/source/visualization/RayTracer/src/G4RTXScanner.cc @@ -0,0 +1,125 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RTXScanner.cc,v 1.2 2005/07/20 20:39:02 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// + +#ifdef G4VIS_BUILD_RAYTRACERX_DRIVER + +#include "G4RTXScanner.hh" + +#include "G4RayTracerX.hh" + +#include +#include + +G4RTXScanner::G4RTXScanner(): + theGSName("RayTracerX"), theGSNickname("RayTracerX"), + theNRow(0), theNColumn(0), theIRow(0), theIColumn(0) {} + +const G4String& G4RTXScanner::GetGSName() const +{return theGSName;} + +const G4String& G4RTXScanner::GetGSNickname() const +{return theGSNickname;} + +void G4RTXScanner::Initialize(G4int nRow, G4int nColumn) { + theNRow = nRow; + theNColumn = nColumn; + G4int nMax = std::max (nRow, nColumn); + theStep = 1; + if (nMax > 3) { + for (;;) { + theStep *= 3; + if (theStep > nMax) break; + } + } + theIRow = theStep / 2; + theIColumn = theStep / 2 - theStep; +} + +G4bool G4RTXScanner::Coords(G4int& iRow, G4int& iColumn) +{ + // Increment column... + theIColumn += theStep; + + // Skip coordinates covered in the previous scan... + if ((theIColumn + (3 * theStep) / 2 + 1)%(3 * theStep) == 0 && + (theIRow + (3 * theStep) / 2 + 1)%(3 * theStep) == 0) + theIColumn += theStep; + + // If necessary, increment row... + if (theIColumn >= theNColumn) { + theIColumn = theStep / 2; + theIRow += theStep; + } + + // Return if finished... + if (theIRow >= theNRow && theStep <= 1) return false; + + // Start next scan if necessary... + if (theIRow >= theNRow) { + theStep /= 3; + theIRow = theStep / 2; + theIColumn = theStep / 2; + } + + // Return current row and column... + iRow = theIRow; + iColumn = theIColumn; + return true; +} + +void G4RTXScanner::Draw +(unsigned char red, unsigned char green, unsigned char blue, + G4RayTracer* aTracer) +// Draw coloured square at current position. +{ + G4RayTracerX* theTracer = (G4RayTracerX*) aTracer; + Display*& display = theTracer->display; + Window& win = theTracer->win; + GC& gc = theTracer->gc; + XStandardColormap*& scmap = theTracer->scmap; + + unsigned long pixel_value = scmap->base_pixel + + ((unsigned long) ((red * scmap->red_max) / 256.) * scmap->red_mult) + + ((unsigned long) ((green * scmap->green_max) / 256.) * scmap->green_mult) + + ((unsigned long) ((blue * scmap->blue_max) / 256.) * scmap->blue_mult); + XSetForeground(display, gc, pixel_value); + + if (theStep > 1) { + XFillRectangle(display, win, gc, + theIColumn - theStep / 2, + theIRow - theStep / 2, + theStep, theStep); + } else { + XDrawPoint(display, win, gc, theIColumn, theIRow); + } + + XFlush(display); + +} + +#endif diff --git a/source/visualization/RayTracer/src/G4RayShooter.cc b/source/visualization/RayTracer/src/G4RayShooter.cc index 48b39b271b..da261d11cf 100644 --- a/source/visualization/RayTracer/src/G4RayShooter.cc +++ b/source/visualization/RayTracer/src/G4RayShooter.cc @@ -21,14 +21,17 @@ // ******************************************************************** // // -// $Id: G4RayShooter.cc,v 1.3 2004/12/07 23:41:00 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RayShooter.cc,v 1.4 2005/12/05 04:13:50 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4RayShooter.hh" #include "G4PrimaryParticle.hh" #include "G4Event.hh" -#include "G4Geantino.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "globals.hh" + G4RayShooter::G4RayShooter() { @@ -37,7 +40,7 @@ G4RayShooter::G4RayShooter() void G4RayShooter::SetInitialValues() { - particle_definition = G4Geantino::GeantinoDefinition(); + particle_definition = 0; G4ThreeVector zero; particle_momentum_direction = (G4ParticleMomentum)zero; particle_energy = 1.0*GeV; @@ -52,6 +55,20 @@ G4RayShooter::~G4RayShooter() void G4RayShooter::Shoot(G4Event* evt,G4ThreeVector vtx,G4ThreeVector direc) { + if(!particle_definition) + { + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + particle_definition = particleTable->FindParticle(particleName="geantino"); + if(!particle_definition) + { + G4String msg; + msg = " G4RayTracer uses geantino to trace the ray, but your physics list does not\n"; + msg += "define G4Geantino. Please add G4Geantino in your physics list."; + G4Exception("G4RayShooter::Shoot","RayTracer001",FatalException,msg); + } + } + // create a new vertex G4PrimaryVertex* vertex = new G4PrimaryVertex(vtx,particle_time); diff --git a/source/visualization/RayTracer/src/G4RayTracer.cc b/source/visualization/RayTracer/src/G4RayTracer.cc index b88c2d6bb8..ae1beb8531 100644 --- a/source/visualization/RayTracer/src/G4RayTracer.cc +++ b/source/visualization/RayTracer/src/G4RayTracer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RayTracer.cc,v 1.15 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RayTracer.cc,v 1.19 2005/12/05 03:51:22 asaim Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // @@ -56,8 +56,11 @@ G4RayTracer::G4RayTracer(G4VFigureFileMaker* figMaker, G4VRTScanner* scanner) -:G4VGraphicsSystem("RayTracer","RayTracer",RAYTRACER_FEATURES, - G4VGraphicsSystem::threeD) +:G4VGraphicsSystem +(scanner ? scanner->GetGSName() : "RayTracer", + scanner ? scanner->GetGSNickname() : "RayTracer", + RAYTRACER_FEATURES, + G4VGraphicsSystem::threeD) { theFigMaker = figMaker; if(!theFigMaker) theFigMaker = new G4RTJpegMaker(); @@ -66,8 +69,8 @@ G4RayTracer::G4RayTracer(G4VFigureFileMaker* figMaker, theRayShooter = new G4RayShooter(); theRayTracerEventAction = 0; theRayTracerStackingAction = 0; - theRayTracerTrackingAction = new G4RTTrackingAction(); - theRayTracerSteppingAction = new G4RTSteppingAction(); + theRayTracerTrackingAction = 0; + theRayTracerSteppingAction = 0; theMessenger = new G4RTMessenger(this,theRayTracerSteppingAction); theEventManager = G4EventManager::GetEventManager(); @@ -89,8 +92,8 @@ G4RayTracer::G4RayTracer(G4VFigureFileMaker* figMaker, G4RayTracer::~G4RayTracer() { delete theRayShooter; - delete theRayTracerTrackingAction; - delete theRayTracerSteppingAction; + if(theRayTracerTrackingAction) delete theRayTracerTrackingAction; + if(theRayTracerSteppingAction) delete theRayTracerSteppingAction; delete theMessenger; delete theScanner; delete theFigMaker; @@ -157,6 +160,9 @@ void G4RayTracer::StoreUserActions() theUserTrackingAction = theEventManager->GetUserTrackingAction(); theUserSteppingAction = theEventManager->GetUserSteppingAction(); + if(!theRayTracerTrackingAction) theRayTracerTrackingAction = new G4RTTrackingAction(); + if(!theRayTracerSteppingAction) theRayTracerSteppingAction = new G4RTSteppingAction(); + theEventManager->SetUserAction(theRayTracerEventAction); theEventManager->SetUserAction(theRayTracerStackingAction); theEventManager->SetUserAction(theRayTracerTrackingAction); @@ -196,8 +202,11 @@ G4bool G4RayTracer::CreateBitMap() G4bool succeeded; // Confirm process(es) of Geantino is initialized - G4RegionStore::GetInstance()->UpdateMaterialList(); - G4ProductionCutsTable::GetProductionCutsTable()->UpdateCoupleTable(); + G4VPhysicalVolume* pWorld = + G4TransportationManager::GetTransportationManager()-> + GetNavigatorForTracking()->GetWorldVolume(); + G4RegionStore::GetInstance()->UpdateMaterialList(pWorld); + G4ProductionCutsTable::GetProductionCutsTable()->UpdateCoupleTable(pWorld); G4ProcessVector* pVector = G4Geantino::GeantinoDefinition()->GetProcessManager()->GetProcessList(); for (G4int j=0; j < pVector->size(); ++j) { @@ -223,26 +232,22 @@ G4bool G4RayTracer::CreateBitMap() while (theScanner->Coords(iRow,iColumn)) { G4int iCoord = iRow * nColumn + iColumn; G4Event* anEvent = new G4Event(iEvent++); - G4double angleX = -(viewSpanX/2. - iColumn*stepAngle); G4double angleY = viewSpanY/2. - iRow*stepAngle; G4ThreeVector rayDirection; if(distortionOn) { - rayDirection = G4ThreeVector(std::tan(angleX)/std::cos(angleY),-std::tan(angleY)/std::cos(angleX),1.0); + rayDirection = G4ThreeVector(std::tan(angleX)/std::cos(angleY),-std::tan(angleY)/std::cos(angleX),1.0); } else { - rayDirection = G4ThreeVector(std::tan(angleX),-std::tan(angleY),1.0); + rayDirection = G4ThreeVector(std::tan(angleX),-std::tan(angleY),1.0); } rayDirection.rotateZ(headAngle); rayDirection.rotateUz(eyeDirection); G4ThreeVector rayPosition(eyePosition); G4bool interceptable = true; // Check if rayPosition is in the world. - G4VPhysicalVolume* pWorld = - G4TransportationManager::GetTransportationManager()-> - GetNavigatorForTracking()->GetWorldVolume (); EInside whereisit = pWorld->GetLogicalVolume()->GetSolid()->Inside(rayPosition); if (whereisit != kInside) { @@ -251,7 +256,11 @@ G4bool G4RayTracer::CreateBitMap() pWorld->GetLogicalVolume()->GetSolid()-> DistanceToIn(rayPosition,rayDirection); if (outsideDistance != kInfinity) { - rayPosition = rayPosition+outsideDistance*rayDirection; + // Borrowing form geometry, where 1e-8 < epsilon < 1e-3, in + // absolute/internal length units, is used for ensuring good + // nehaviour, choose to add 0.001 to ensure rayPosition is + // definitely inside the world volume (JA 16/9/2005)... + rayPosition = rayPosition+(outsideDistance+0.001)*rayDirection; } else { interceptable = false; @@ -261,15 +270,16 @@ G4bool G4RayTracer::CreateBitMap() theRayShooter->Shoot(anEvent,rayPosition,rayDirection); theEventManager->ProcessOneEvent(anEvent); succeeded = GenerateColour(anEvent,iCoord); - //G4cout << iColumn << " " << iRow << " " << anEvent->GetEventID() << G4endl; } else { // Ray does not intercept world at all. // Store background colour... colorR[iCoord] = (unsigned char)(int(255*backgroundColour.GetRed())); colorG[iCoord] = (unsigned char)(int(255*backgroundColour.GetGreen())); colorB[iCoord] = (unsigned char)(int(255*backgroundColour.GetBlue())); + theScanner->Draw(colorR[iCoord],colorG[iCoord],colorB[iCoord],this); succeeded = true; } + delete anEvent; if(!succeeded) return false; } @@ -311,6 +321,7 @@ G4bool G4RayTracer::GenerateColour(G4Event* anEvent, G4int iCoord) colorR[iCoord] = (unsigned char)(int(255*rayColour.GetRed())); colorG[iCoord] = (unsigned char)(int(255*rayColour.GetGreen())); colorB[iCoord] = (unsigned char)(int(255*rayColour.GetBlue())); + theScanner->Draw(colorR[iCoord],colorG[iCoord],colorB[iCoord],this); return true; } diff --git a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc index 153634817c..59c56ef802 100644 --- a/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc +++ b/source/visualization/RayTracer/src/G4RayTracerSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTracerSceneHandler.cc,v 1.3 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4RayTracerSceneHandler.hh" diff --git a/source/visualization/RayTracer/src/G4RayTracerViewer.cc b/source/visualization/RayTracer/src/G4RayTracerViewer.cc index b0e5b029e1..96b0fdc511 100644 --- a/source/visualization/RayTracer/src/G4RayTracerViewer.cc +++ b/source/visualization/RayTracer/src/G4RayTracerViewer.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4RayTracerViewer.cc,v 1.12 2004/12/07 23:41:01 perl Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4RayTracerViewer.cc,v 1.14 2005/11/18 23:07:04 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4RayTracerViewer.hh" #include "G4ios.hh" -#include +#include #include "G4VSceneHandler.hh" #include "G4Scene.hh" @@ -37,7 +37,13 @@ G4RayTracerViewer::G4RayTracerViewer (G4VSceneHandler& sceneHandler, const G4String& name): G4VViewer(sceneHandler, sceneHandler.IncrementViewCount(), name), - fFileCount(0) {} + fFileCount(0) +{ + G4RayTracer* theTracer = + (G4RayTracer*) fSceneHandler.GetGraphicsSystem(); + theTracer->SetNColumn(fVP.GetWindowSizeHintX()); + theTracer->SetNRow(fVP.GetWindowSizeHintY()); +} G4RayTracerViewer::~G4RayTracerViewer() {} @@ -69,6 +75,7 @@ void G4RayTracerViewer::SetView() { const G4Vector3D actualLightpointDirection(-fVP.GetActualLightpointDirection()); theTracer->SetLightDirection(actualLightpointDirection); + theTracer->SetBackgroundColour(fVP.GetBackgroundColour()); } @@ -93,9 +100,7 @@ void G4RayTracerViewer::DrawView() { } G4RayTracer* theTracer = (G4RayTracer*) fSceneHandler.GetGraphicsSystem(); - char fileName [100]; - std::ostrstream ost(fileName, 100); - ost << "g4RayTracer." << fShortName << '_' << fFileCount++ << ".jpeg" - << std::ends; - theTracer->Trace(fileName); + std::ostringstream filename; + filename << "g4RayTracer." << fShortName << '_' << fFileCount++ << ".jpeg"; + theTracer->Trace(filename.str()); } diff --git a/source/visualization/RayTracer/src/G4RayTracerX.cc b/source/visualization/RayTracer/src/G4RayTracerX.cc new file mode 100644 index 0000000000..0c7f4e3d8d --- /dev/null +++ b/source/visualization/RayTracer/src/G4RayTracerX.cc @@ -0,0 +1,63 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RayTracerX.cc,v 1.3 2005/11/18 23:07:04 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// +// + +#ifdef G4VIS_BUILD_RAYTRACERX_DRIVER + +#include "G4RayTracerX.hh" + +#include "G4RayTracerSceneHandler.hh" +#include "G4RayTracerXViewer.hh" +#include "G4RTXScanner.hh" + +G4RayTracerX::G4RayTracerX(): + G4RayTracer(0, new G4RTXScanner) +{} + +G4VSceneHandler* G4RayTracerX::CreateSceneHandler (const G4String& name) { + G4VSceneHandler* pSceneHandler = new G4RayTracerSceneHandler (*this, name); + return pSceneHandler; +} + +G4VViewer* G4RayTracerX::CreateViewer (G4VSceneHandler& sceneHandler, + const G4String& name) { + G4VViewer* pViewer = new G4RayTracerXViewer (sceneHandler, name); + if (pViewer) { + if (pViewer->GetViewId() < 0) { + G4cerr << "G4RayTracerX::CreateViewer: error flagged by negative" + "\n view id in G4RayTracerXViewer creation." + "\n Destroying view and returning null pointer." + << G4endl; + delete pViewer; + pViewer = 0; + } + } + return pViewer; +} + +#endif diff --git a/source/visualization/RayTracer/src/G4RayTracerXViewer.cc b/source/visualization/RayTracer/src/G4RayTracerXViewer.cc new file mode 100644 index 0000000000..79aa01e636 --- /dev/null +++ b/source/visualization/RayTracer/src/G4RayTracerXViewer.cc @@ -0,0 +1,162 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RayTracerXViewer.cc,v 1.3 2005/11/18 23:05:04 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ + +#ifdef G4VIS_BUILD_RAYTRACERX_DRIVER + +#include "G4RayTracerXViewer.hh" + +#include "G4VSceneHandler.hh" +#include "G4Scene.hh" +#include "G4RayTracerX.hh" +#include "G4UImanager.hh" + +#include + +#include +#include +#include + +extern "C" { + Bool G4RayTracerXViewerWaitForNotify (Display*, XEvent* e, char* arg) { + return (e->type == MapNotify) && (e->xmap.window == (Window) arg); + } +} + +G4RayTracerXViewer::G4RayTracerXViewer +(G4VSceneHandler& sceneHandler, const G4String& name): + G4RayTracerViewer(sceneHandler, name) +{ + G4RayTracerX* theTracer = + (G4RayTracerX*) fSceneHandler.GetGraphicsSystem(); + + Display*& display = theTracer->display; + Window& win = theTracer->win; + GC& gc = theTracer->gc; + XStandardColormap*& scmap = theTracer->scmap; + + display = XOpenDisplay(0); // Use display defined by DISPLAY environment. + if (!display) { + fViewId = -1; // This flags an error. + G4cerr << "G4RayTracerXViewer::G4RayTracerXViewer: cannot get display." + << G4endl; + return; + } + + int screen_num = DefaultScreen(display); + + // Window size and position... + int xOffset = 0, yOffset = 0; + unsigned int width, height; + XSizeHints* size_hints = XAllocSizeHints(); + const G4String& XGeometryString = fVP.GetXGeometryString(); + if (!XGeometryString.empty()) { + G4int geometryResultMask = XParseGeometry + ((char*)XGeometryString.c_str(), + &xOffset, &yOffset, &width, &height); + if (geometryResultMask & (WidthValue | HeightValue)) { + if (geometryResultMask & XValue) { + if (geometryResultMask & XNegative) { + xOffset = DisplayWidth(display, screen_num) + xOffset - width; + } + size_hints->flags |= PPosition; + size_hints->x = xOffset; + } + if (geometryResultMask & YValue) { + if (geometryResultMask & YNegative) { + yOffset = DisplayHeight(display, screen_num) + yOffset - height; + } + size_hints->flags |= PPosition; + size_hints->y = yOffset; + } + } else { + G4cout << "ERROR: Geometry string \"" + << XGeometryString + << "\" invalid. Using \"600x600\"." + << G4endl; + width = 600; + height = 600; + } + } + size_hints->width = width; + size_hints->height = height; + size_hints->flags |= PSize; + + win = XCreateSimpleWindow + (display, RootWindow(display, screen_num), + xOffset, yOffset, width, height, + 0, // Border width. + WhitePixel(display, screen_num), // Border colour. + BlackPixel(display, screen_num)); // Background colour. + + XGCValues values; + gc = XCreateGC(display, win, 0, &values); + + int nMaps; + Status status = XGetRGBColormaps + (display, RootWindow(display, screen_num), + &scmap, &nMaps, XA_RGB_BEST_MAP); + if (!status) { + system("xstdcmap -best"); // ...and try again... + Status status = XGetRGBColormaps + (display, RootWindow(display, screen_num), + &scmap, &nMaps, XA_RGB_BEST_MAP); + if (!status) { + fViewId = -1; // This flags an error. + G4cerr << + "G4RayTracerXViewer::G4RayTracerXViewer: cannot get color map." + "\n Perhaps your system does not support RGB_BEST_MAP." + << G4endl; + return; + } + } + if (!scmap->colormap) { + fViewId = -1; // This flags an error. + G4cerr << "G4RayTracerXViewer::G4RayTracerXViewer: color map empty." + << G4endl; + return; + } + + XWMHints* wm_hints = XAllocWMHints(); + XClassHint* class_hint = XAllocClassHint(); + const char* window_name = fName.c_str(); + XTextProperty windowName; + XStringListToTextProperty((char**)&window_name, 1, &windowName); + + XSetWMProperties(display, win, &windowName, &windowName, + 0, 0, size_hints, wm_hints, class_hint); + + XMapWindow(display, win); + + // Wait for window to appear (wait for an "map notify" event). + XSelectInput(display, win, StructureNotifyMask); + XEvent event; + XIfEvent (display, &event, G4RayTracerXViewerWaitForNotify, (char*) win); + +} + +G4RayTracerXViewer::~G4RayTracerXViewer() {} + +#endif diff --git a/source/visualization/RayTracer/src/G4RayTrajectory.cc b/source/visualization/RayTracer/src/G4RayTrajectory.cc index 3c6de7721b..8d01267c29 100644 --- a/source/visualization/RayTracer/src/G4RayTrajectory.cc +++ b/source/visualization/RayTracer/src/G4RayTrajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectory.cc,v 1.14 2004/06/11 14:30:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc b/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc index 5bd5d13f6d..f1bb625713 100644 --- a/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc +++ b/source/visualization/RayTracer/src/G4RayTrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4RayTrajectoryPoint.cc,v 1.5 2004/06/11 14:30:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // diff --git a/source/visualization/Tree/History b/source/visualization/Tree/History index 88e918ff18..fb24685ccd 100644 --- a/source/visualization/Tree/History +++ b/source/visualization/Tree/History @@ -1,4 +1,4 @@ -$Id: History,v 1.16 2004/09/22 20:00:06 johna Exp $ +$Id: History,v 1.18 2005/11/22 16:21:26 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,13 @@ committal in the CVS repository ! History file for visualization/Tree sub-category ------------------------------------------------ +22nd November 2005 John Allison (vistree-V07-01-01) +- Refined guidance and printing. + +13th October 2005 John Allison (vistree-V07-01-00) +- Fixed bug in mass calculations. +- Migrated to . + 22nd September 2004 John Allison (vistree-V06-02-01) - Fixed directory name (trailing /). - Fixed memory leak in G4ASCIITreeSceneHandler. diff --git a/source/visualization/Tree/include/G4ASCIITree.hh b/source/visualization/Tree/include/G4ASCIITree.hh index af5fca7581..2d71c4439d 100644 --- a/source/visualization/Tree/include/G4ASCIITree.hh +++ b/source/visualization/Tree/include/G4ASCIITree.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITree.hh,v 1.6 2004/09/13 20:52:50 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeMessenger.hh b/source/visualization/Tree/include/G4ASCIITreeMessenger.hh index 6a27a82e12..de2c5349b5 100644 --- a/source/visualization/Tree/include/G4ASCIITreeMessenger.hh +++ b/source/visualization/Tree/include/G4ASCIITreeMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeMessenger.hh,v 1.6 2005/05/06 08:38:36 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh b/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh index 695a3994ab..98db7a8fbf 100644 --- a/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh +++ b/source/visualization/Tree/include/G4ASCIITreeSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeSceneHandler.hh,v 1.12 2004/09/13 20:57:10 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4ASCIITreeViewer.hh b/source/visualization/Tree/include/G4ASCIITreeViewer.hh index 66941e3045..f5296506ed 100644 --- a/source/visualization/Tree/include/G4ASCIITreeViewer.hh +++ b/source/visualization/Tree/include/G4ASCIITreeViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITreeViewer.hh,v 1.4 2001/07/11 10:09:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTree.hh b/source/visualization/Tree/include/G4VTree.hh index 3a4a5ba374..de479d5cd8 100644 --- a/source/visualization/Tree/include/G4VTree.hh +++ b/source/visualization/Tree/include/G4VTree.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTree.hh,v 1.4 2001/07/11 10:09:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTreeSceneHandler.hh b/source/visualization/Tree/include/G4VTreeSceneHandler.hh index 811b735051..7b31c5dcf4 100644 --- a/source/visualization/Tree/include/G4VTreeSceneHandler.hh +++ b/source/visualization/Tree/include/G4VTreeSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTreeSceneHandler.hh,v 1.14 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/include/G4VTreeSceneHandler.icc b/source/visualization/Tree/include/G4VTreeSceneHandler.icc index 7dc65d0ce2..8aa697190d 100644 --- a/source/visualization/Tree/include/G4VTreeSceneHandler.icc +++ b/source/visualization/Tree/include/G4VTreeSceneHandler.icc @@ -22,7 +22,7 @@ // // // $Id: G4VTreeSceneHandler.icc,v 1.6 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 18th May 2000 diff --git a/source/visualization/Tree/include/G4VTreeViewer.hh b/source/visualization/Tree/include/G4VTreeViewer.hh index a840a6aeee..4e2670050b 100644 --- a/source/visualization/Tree/include/G4VTreeViewer.hh +++ b/source/visualization/Tree/include/G4VTreeViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTreeViewer.hh,v 1.4 2001/07/11 10:09:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITree.cc b/source/visualization/Tree/src/G4ASCIITree.cc index 4e6faa3ed3..aace822877 100644 --- a/source/visualization/Tree/src/G4ASCIITree.cc +++ b/source/visualization/Tree/src/G4ASCIITree.cc @@ -22,7 +22,7 @@ // // // $Id: G4ASCIITree.cc,v 1.9 2005/06/02 17:43:46 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4ASCIITreeMessenger.cc b/source/visualization/Tree/src/G4ASCIITreeMessenger.cc index 989e3d7ad4..c3a266641b 100644 --- a/source/visualization/Tree/src/G4ASCIITreeMessenger.cc +++ b/source/visualization/Tree/src/G4ASCIITreeMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ASCIITreeMessenger.cc,v 1.13 2005/05/06 08:38:36 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ASCIITreeMessenger.cc,v 1.15 2005/11/22 16:21:26 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 @@ -53,31 +53,36 @@ G4ASCIITreeMessenger::G4ASCIITreeMessenger fpCommandVerbose = new G4UIcmdWithAnInteger ("/vis/ASCIITree/verbose", this); fVerbosityGuidance.push_back - ("< 10: - does not print daughters of repeated placements," + (" < 10: - does not print daughters of repeated placements," " does not repeat replicas."); fVerbosityGuidance.push_back - (">= 10: prints all physical volumes."); + (" >= 10: prints all physical volumes."); fVerbosityGuidance.push_back - ("The level of detail is given by the units (verbosity%10):"); + ("The level of detail is given by verbosity%10:"); fVerbosityGuidance.push_back - (">= 0: prints physical volume name."); + ("for each volume:"); fVerbosityGuidance.push_back - (">= 1: prints logical volume name (and names of sensitive detector" + (" >= 0: physical volume name."); + fVerbosityGuidance.push_back + (" >= 1: logical volume name (and names of sensitive detector" " and readout geometry, if any)."); fVerbosityGuidance.push_back - (">= 2: prints solid name and type."); + (" >= 2: solid name and type."); fVerbosityGuidance.push_back - (">= 3: prints volume and density."); + (" >= 3: volume and density."); fVerbosityGuidance.push_back - (">= 4: prints mass of each top physical volume in scene to depth specified."); + (" >= 5: daughter-subtracted volume and mass."); fVerbosityGuidance.push_back - (">= 5: prints mass of branch at each volume (can be time consuming)."); + ("and in the summary at the end of printing:"); + fVerbosityGuidance.push_back + (" >= 4: daughter-included mass of top physical volume(s) in scene" + " to depth specified."); fVerbosityGuidance.push_back ("Note: by default, culling is switched off so all volumes are seen."); fVerbosityGuidance.push_back - ("Note: the mass calculation takes into account daughters, normally" - " to unlimited depth, which can be time consuuming. If you want the" - " mass of a particular subtree to a particular depth:"); + ("Note: the mass calculation takes into account daughters, which can be" + " time consuming. If you want the mass of a particular subtree to a" + " particular depth:"); fVerbosityGuidance.push_back (" /vis/open ATree"); fVerbosityGuidance.push_back diff --git a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc index 0bb7d1fc61..bdc2bc576b 100644 --- a/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4ASCIITreeSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ASCIITreeSceneHandler.cc,v 1.20 2005/05/06 08:38:36 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ASCIITreeSceneHandler.cc,v 1.22 2005/11/22 16:21:26 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 @@ -100,7 +100,7 @@ void G4ASCIITreeSceneHandler::WriteHeader (std::ostream& os) if (detail >= 1) os << " / LV (SD,RO)"; if (detail >= 2) os << " / Solid(type)"; if (detail >= 3) os << ", volume, density"; - if (detail >= 5) os << ", mass of branch"; + if (detail >= 5) os << ", daughter-subtracted volume and mass"; os << "\n# Abbreviations: PV = Physical Volume, LV = Logical Volume," "\n# SD = Sensitive Detector, RO = Read Out Geometry."; @@ -134,9 +134,11 @@ void G4ASCIITreeSceneHandler::EndModeling () { << pvModel->GetTopPhysicalVolume()->GetCopyNo() << ", is " << G4BestUnit (volume, "Volume") - << "\nMass of tree"; + << " and the daughter-included mass"; G4int requestedDepth = pvModel->GetRequestedDepth(); - if (requestedDepth != G4PhysicalVolumeModel::UNLIMITED) { + if (requestedDepth == G4PhysicalVolumeModel::UNLIMITED) { + G4cout << " to unlimited depth"; + } else { G4cout << ", ignoring daughters at depth " << requestedDepth << " and below,"; @@ -257,10 +259,17 @@ void G4ASCIITreeSceneHandler::RequestPrimitives(const G4VSolid& solid) { } if (detail >= 5) { + G4double daughter_subtracted_mass = fpCurrentLV->GetMass + (fpCurrentPV->IsParameterised(), // Force if parametrised. + false, // Do not propagate - calculate for this volume minus + // volume of daughters. + fpCurrentMaterial); + G4double daughter_subtracted_volume = + daughter_subtracted_mass / fpCurrentMaterial->GetDensity(); *fpOutFile << ", " - << G4BestUnit - (fpCurrentLV->GetMass(fpCurrentPV->IsParameterised(), // Force if so. - fpCurrentMaterial),"Mass"); + << G4BestUnit(daughter_subtracted_volume,"Volume") + << ", " + << G4BestUnit(daughter_subtracted_mass,"Mass"); } if (fLVSet.find(fpCurrentLV) == fLVSet.end()) { diff --git a/source/visualization/Tree/src/G4ASCIITreeViewer.cc b/source/visualization/Tree/src/G4ASCIITreeViewer.cc index 6a1480d2c5..041f1fbc62 100644 --- a/source/visualization/Tree/src/G4ASCIITreeViewer.cc +++ b/source/visualization/Tree/src/G4ASCIITreeViewer.cc @@ -21,14 +21,11 @@ // ******************************************************************** // // -// $Id: G4ASCIITreeViewer.cc,v 1.6 2003/06/16 17:13:50 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ASCIITreeViewer.cc,v 1.7 2005/10/13 17:39:21 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4ASCIITreeViewer.hh" -#include "G4ios.hh" -#include - G4ASCIITreeViewer::G4ASCIITreeViewer (G4VSceneHandler& sceneHandler, const G4String& name): G4VTreeViewer(sceneHandler, name) { diff --git a/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc b/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc index b7213a0cc6..569b8722ef 100644 --- a/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4GAGTreeSceneHandler.cc @@ -24,7 +24,7 @@ // A scene handler to dump geometry hierarchy to GAG. #include "G4Types.hh" -#include +#include #include "G4GAGTreeSceneHandler.hh" @@ -159,9 +159,7 @@ void G4GAGTreeSceneHandler::RequestPrimitives (const G4VSolid&) // Add the extension ".details.index" to the current PV node // Step 1: Initialize the extension - const int CHAR_LENGTH = 1024; - char pv_ext [CHAR_LENGTH]; pv_ext[0] = '\0'; - std::ostrstream ost (pv_ext, CHAR_LENGTH); + std::ostringstream ost; // Step 2: Generate the extension // copy number @@ -176,10 +174,10 @@ void G4GAGTreeSceneHandler::RequestPrimitives (const G4VSolid&) ost << "." << fpCurrentLV->GetSolid()->GetEntityType() ; } // Tree index (0 for the world) - ost << "." << fPVCounter << '\0' ; + ost << "." << fPVCounter; // Step 3: Add the extention to the current PV name - cur_pv_name += pv_ext ; + cur_pv_name += ost.str() ; // End of adding extension diff --git a/source/visualization/Tree/src/G4GAGTreeViewer.cc b/source/visualization/Tree/src/G4GAGTreeViewer.cc index b6e998f44f..082b78eec0 100644 --- a/source/visualization/Tree/src/G4GAGTreeViewer.cc +++ b/source/visualization/Tree/src/G4GAGTreeViewer.cc @@ -25,9 +25,6 @@ #include "G4GAGTreeViewer.hh" -#include "G4ios.hh" -#include - G4GAGTreeViewer::G4GAGTreeViewer (G4VSceneHandler& sceneHandler, const G4String& name): G4VTreeViewer(sceneHandler, name) { diff --git a/source/visualization/Tree/src/G4VTree.cc b/source/visualization/Tree/src/G4VTree.cc index 2a93165f7b..c377d657d2 100644 --- a/source/visualization/Tree/src/G4VTree.cc +++ b/source/visualization/Tree/src/G4VTree.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTree.cc,v 1.4 2001/07/11 10:09:08 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4VTreeSceneHandler.cc b/source/visualization/Tree/src/G4VTreeSceneHandler.cc index fb881ba345..e5b7eba748 100644 --- a/source/visualization/Tree/src/G4VTreeSceneHandler.cc +++ b/source/visualization/Tree/src/G4VTreeSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTreeSceneHandler.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/Tree/src/G4VTreeViewer.cc b/source/visualization/Tree/src/G4VTreeViewer.cc index 09217de124..f89cd2a198 100644 --- a/source/visualization/Tree/src/G4VTreeViewer.cc +++ b/source/visualization/Tree/src/G4VTreeViewer.cc @@ -21,14 +21,11 @@ // ******************************************************************** // // -// $Id: G4VTreeViewer.cc,v 1.5 2003/06/16 17:13:53 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VTreeViewer.cc,v 1.6 2005/10/13 17:39:21 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4VTreeViewer.hh" -#include "G4ios.hh" -#include - #include "G4VSceneHandler.hh" G4VTreeViewer::G4VTreeViewer diff --git a/source/visualization/VRML/g4vrmlview/g4mini.java b/source/visualization/VRML/g4vrmlview/g4mini.java index e513001ed6..a2771e5dde 100644 --- a/source/visualization/VRML/g4vrmlview/g4mini.java +++ b/source/visualization/VRML/g4vrmlview/g4mini.java @@ -22,7 +22,7 @@ // // // $Id: g4mini.java,v 1.3 2001/07/11 10:09:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // import java.io.*; import java.net.*; diff --git a/source/visualization/VRML/g4vrmlview/g4vrmlview.java b/source/visualization/VRML/g4vrmlview/g4vrmlview.java index b6c3c356ac..9da7e09979 100644 --- a/source/visualization/VRML/g4vrmlview/g4vrmlview.java +++ b/source/visualization/VRML/g4vrmlview/g4vrmlview.java @@ -22,7 +22,7 @@ // // // $Id: g4vrmlview.java,v 1.3 2001/07/11 10:09:09 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // import java.io.*; import java.net.*; diff --git a/source/visualization/VRML/include/FRClient.h b/source/visualization/VRML/include/FRClient.h index 0d223c9f6f..25ad8282bb 100644 --- a/source/visualization/VRML/include/FRClient.h +++ b/source/visualization/VRML/include/FRClient.h @@ -22,7 +22,7 @@ // // // $Id: FRClient.h,v 1.5 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // FRClient.h // FukuiRenderer Client diff --git a/source/visualization/VRML/include/G4FRClient.hh b/source/visualization/VRML/include/G4FRClient.hh index c0494e304d..a7f1c6e60d 100644 --- a/source/visualization/VRML/include/G4FRClient.hh +++ b/source/visualization/VRML/include/G4FRClient.hh @@ -22,7 +22,7 @@ // // // $Id: G4FRClient.hh,v 1.7 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4FRClient.hh // Yasuhide Sawada and Satoshi Tanaka diff --git a/source/visualization/VRML/include/G4VRML1.hh b/source/visualization/VRML/include/G4VRML1.hh index b8ace3b2d5..5783fb0ebe 100644 --- a/source/visualization/VRML/include/G4VRML1.hh +++ b/source/visualization/VRML/include/G4VRML1.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1.hh,v 1.9 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1.hh // Yasuhide Sawada and Satoshi Tanaka diff --git a/source/visualization/VRML/include/G4VRML1File.hh b/source/visualization/VRML/include/G4VRML1File.hh index 802d9caa9a..21dcaa8a43 100644 --- a/source/visualization/VRML/include/G4VRML1File.hh +++ b/source/visualization/VRML/include/G4VRML1File.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1File.hh,v 1.9 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1File.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh b/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh index 076e675ba5..eb8c0b3033 100644 --- a/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML1FileSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1FileSceneHandler.hh,v 1.15 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1FileSceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1FileViewer.hh b/source/visualization/VRML/include/G4VRML1FileViewer.hh index 69261a3ff3..1c52ab17ff 100644 --- a/source/visualization/VRML/include/G4VRML1FileViewer.hh +++ b/source/visualization/VRML/include/G4VRML1FileViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1FileViewer.hh,v 1.7 2001/09/18 07:53:08 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1FileViewer.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML1SceneHandler.hh b/source/visualization/VRML/include/G4VRML1SceneHandler.hh index 46c9fa8530..821b8219cf 100644 --- a/source/visualization/VRML/include/G4VRML1SceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML1SceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1SceneHandler.hh,v 1.13 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1SceneHandler.hh // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/include/G4VRML1Viewer.hh b/source/visualization/VRML/include/G4VRML1Viewer.hh index 90b9639194..6fdc5bf6d9 100644 --- a/source/visualization/VRML/include/G4VRML1Viewer.hh +++ b/source/visualization/VRML/include/G4VRML1Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML1Viewer.hh,v 1.7 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1Viewer.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2.hh b/source/visualization/VRML/include/G4VRML2.hh index e9ce681b01..6daad1a887 100644 --- a/source/visualization/VRML/include/G4VRML2.hh +++ b/source/visualization/VRML/include/G4VRML2.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2.hh,v 1.9 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2File.hh b/source/visualization/VRML/include/G4VRML2File.hh index bc5f3ce1d5..1a1aed4f2f 100644 --- a/source/visualization/VRML/include/G4VRML2File.hh +++ b/source/visualization/VRML/include/G4VRML2File.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2File.hh,v 1.10 2002/06/23 03:31:42 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2File.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh b/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh index d69eb14706..f709d82ea3 100644 --- a/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML2FileSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2FileSceneHandler.hh,v 1.14 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2FileSceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2FileViewer.hh b/source/visualization/VRML/include/G4VRML2FileViewer.hh index ca15345d7e..a95362e197 100644 --- a/source/visualization/VRML/include/G4VRML2FileViewer.hh +++ b/source/visualization/VRML/include/G4VRML2FileViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2FileViewer.hh,v 1.9 2003/06/16 17:13:56 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2FileViewer.hh // Satoshi Tanaka and Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2SceneHandler.hh b/source/visualization/VRML/include/G4VRML2SceneHandler.hh index d93c492fb8..082dbbf427 100644 --- a/source/visualization/VRML/include/G4VRML2SceneHandler.hh +++ b/source/visualization/VRML/include/G4VRML2SceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2SceneHandler.hh,v 1.12 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2SceneHandler.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRML2Viewer.hh b/source/visualization/VRML/include/G4VRML2Viewer.hh index 9b3ccd2aee..3cc000c8eb 100644 --- a/source/visualization/VRML/include/G4VRML2Viewer.hh +++ b/source/visualization/VRML/include/G4VRML2Viewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRML2Viewer.hh,v 1.7 2002/06/23 03:31:43 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2Viewer.hh // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/include/G4VRMLNetConfig.hh b/source/visualization/VRML/include/G4VRMLNetConfig.hh index 96b443366d..e88e5d9613 100644 --- a/source/visualization/VRML/include/G4VRMLNetConfig.hh +++ b/source/visualization/VRML/include/G4VRMLNetConfig.hh @@ -22,7 +22,7 @@ // // // $Id: G4VRMLNetConfig.hh,v 1.6 2002/06/23 03:31:43 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRMLNetConfig.hh // Satoshi Tanaka diff --git a/source/visualization/VRML/src/FRClient.cc b/source/visualization/VRML/src/FRClient.cc index 6e065eee6a..a6bf270b0f 100644 --- a/source/visualization/VRML/src/FRClient.cc +++ b/source/visualization/VRML/src/FRClient.cc @@ -22,7 +22,7 @@ // // // $Id: FRClient.cc,v 1.6 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // FRClient.cc // FukuiRenderer Client diff --git a/source/visualization/VRML/src/G4FRClient.cc b/source/visualization/VRML/src/G4FRClient.cc index f3c9c51d19..ad6a6bdb1b 100644 --- a/source/visualization/VRML/src/G4FRClient.cc +++ b/source/visualization/VRML/src/G4FRClient.cc @@ -22,7 +22,7 @@ // // // $Id: G4FRClient.cc,v 1.7 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4FRClient.cc // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML1.cc b/source/visualization/VRML/src/G4VRML1.cc index 6701ae19b2..45e495a231 100644 --- a/source/visualization/VRML/src/G4VRML1.cc +++ b/source/visualization/VRML/src/G4VRML1.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1.cc // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML1File.cc b/source/visualization/VRML/src/G4VRML1File.cc index 1ec0d2713a..26cf300ea7 100644 --- a/source/visualization/VRML/src/G4VRML1File.cc +++ b/source/visualization/VRML/src/G4VRML1File.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1File.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1File.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc index 2ee49d18d2..b8471faff4 100644 --- a/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML1FileSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1FileSceneHandler.cc,v 1.10 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1FileSceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1FileViewer.cc b/source/visualization/VRML/src/G4VRML1FileViewer.cc index 021a626cf0..65395f2f2e 100644 --- a/source/visualization/VRML/src/G4VRML1FileViewer.cc +++ b/source/visualization/VRML/src/G4VRML1FileViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1FileViewer.cc,v 1.8 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRMLView.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1SceneHandler.cc b/source/visualization/VRML/src/G4VRML1SceneHandler.cc index c095f82889..1b3caa81ac 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML1SceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1SceneHandler.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1SceneHandler.cc // Yasuhide Sawada and Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc index 630688da35..9da14d8956 100644 --- a/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML1SceneHandlerFunc.icc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1SceneHandlerFunc.icc,v 1.15 2005/05/27 13:35:52 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML1SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML1Viewer.cc b/source/visualization/VRML/src/G4VRML1Viewer.cc index c57a829989..7fc0847db6 100644 --- a/source/visualization/VRML/src/G4VRML1Viewer.cc +++ b/source/visualization/VRML/src/G4VRML1Viewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML1Viewer.cc,v 1.7 2002/06/23 03:31:50 stanaka Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRMLView.cc // Yasuhide Sawada & Satoshi Tanaka diff --git a/source/visualization/VRML/src/G4VRML2.cc b/source/visualization/VRML/src/G4VRML2.cc index 23ff9ae532..13dad2a22c 100644 --- a/source/visualization/VRML/src/G4VRML2.cc +++ b/source/visualization/VRML/src/G4VRML2.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2File.cc b/source/visualization/VRML/src/G4VRML2File.cc index 51990badde..4799f3a8ff 100644 --- a/source/visualization/VRML/src/G4VRML2File.cc +++ b/source/visualization/VRML/src/G4VRML2File.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2File.cc,v 1.9 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2File.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc index 6432c33b26..4961e298e7 100644 --- a/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2FileSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2FileSceneHandler.cc,v 1.12 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2FileSceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2FileViewer.cc b/source/visualization/VRML/src/G4VRML2FileViewer.cc index 5bc0740ac4..639629d1d3 100644 --- a/source/visualization/VRML/src/G4VRML2FileViewer.cc +++ b/source/visualization/VRML/src/G4VRML2FileViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2FileViewer.cc,v 1.10 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2FileViewer.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2SceneHandler.cc b/source/visualization/VRML/src/G4VRML2SceneHandler.cc index 2b0826c7ba..06a1a2d24f 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandler.cc +++ b/source/visualization/VRML/src/G4VRML2SceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2SceneHandler.cc,v 1.11 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2SceneHandler.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc index d4bb37d04f..3c8be8ddaa 100644 --- a/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc +++ b/source/visualization/VRML/src/G4VRML2SceneHandlerFunc.icc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2SceneHandlerFunc.icc,v 1.18 2005/05/27 13:35:52 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2SceneHandlerFunc.icc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/VRML/src/G4VRML2Viewer.cc b/source/visualization/VRML/src/G4VRML2Viewer.cc index d469804f53..808f67ae73 100644 --- a/source/visualization/VRML/src/G4VRML2Viewer.cc +++ b/source/visualization/VRML/src/G4VRML2Viewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VRML2Viewer.cc,v 1.11 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // G4VRML2Viewer.cc // Satoshi Tanaka & Yasuhide Sawada diff --git a/source/visualization/XXX/History b/source/visualization/XXX/History index d1b4ad6eb5..32b6a8664d 100644 --- a/source/visualization/XXX/History +++ b/source/visualization/XXX/History @@ -1,4 +1,4 @@ -$Id: History,v 1.12 2005/06/07 17:08:29 allison Exp $ +$Id: History,v 1.15 2005/11/22 16:25:07 allison Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,15 @@ committal in the CVS repository ! History file for visualization/XXX sub-category (a template graphics system) --------------------------------------------------------------------------- +22nd November 2005 John Allison (visXXX-V07-01-02) +- Simplified guidance. + +13th October 2005 John Allison (visXXX-V07-01-01) +- Migrated to . + +2nd September 2005 John Allison (visXXX-V07-01-00) +- Improved guidance fro rendering polyhedron objects. + 7th June 2005 John Allison (visXXX-V07-00-00) - Fixed unused parameter warnings. diff --git a/source/visualization/XXX/include/G4XXX.hh b/source/visualization/XXX/include/G4XXX.hh index c6b0433f14..7917508571 100644 --- a/source/visualization/XXX/include/G4XXX.hh +++ b/source/visualization/XXX/include/G4XXX.hh @@ -22,7 +22,7 @@ // // // $Id: G4XXX.hh,v 1.3 2001/08/25 00:22:06 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/include/G4XXXSceneHandler.hh b/source/visualization/XXX/include/G4XXXSceneHandler.hh index cf1a00b738..f619e2cec9 100644 --- a/source/visualization/XXX/include/G4XXXSceneHandler.hh +++ b/source/visualization/XXX/include/G4XXXSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4XXXSceneHandler.hh,v 1.16 2005/06/07 16:46:33 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/include/G4XXXViewer.hh b/source/visualization/XXX/include/G4XXXViewer.hh index b10988e887..0004380498 100644 --- a/source/visualization/XXX/include/G4XXXViewer.hh +++ b/source/visualization/XXX/include/G4XXXViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4XXXViewer.hh,v 1.5 2001/11/19 15:09:23 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/src/G4XXX.cc b/source/visualization/XXX/src/G4XXX.cc index 0c83aed0f2..b80562c018 100644 --- a/source/visualization/XXX/src/G4XXX.cc +++ b/source/visualization/XXX/src/G4XXX.cc @@ -22,7 +22,7 @@ // // // $Id: G4XXX.cc,v 1.4 2005/06/02 17:00:11 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 diff --git a/source/visualization/XXX/src/G4XXXSceneHandler.cc b/source/visualization/XXX/src/G4XXXSceneHandler.cc index 95581b4a51..7fcffe2447 100644 --- a/source/visualization/XXX/src/G4XXXSceneHandler.cc +++ b/source/visualization/XXX/src/G4XXXSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4XXXSceneHandler.cc,v 1.23 2005/06/07 16:46:33 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XXXSceneHandler.cc,v 1.25 2005/11/22 16:25:07 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 5th April 2001 @@ -413,7 +413,7 @@ void G4XXXSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) { // Get view parameters that the user can force through the vis // attributes, thereby over-riding the current view parameter. G4ViewParameters::DrawingStyle drawing_style = GetDrawingStyle (pVA); - G4bool isAuxEdgeVisible = GetAuxEdgeVisible (pVA); + //G4bool isAuxEdgeVisible = GetAuxEdgeVisible (pVA); //Get colour, etc.. //const G4Colour& c = pVA -> GetColour (); @@ -439,45 +439,11 @@ void G4XXXSceneHandler::AddPrimitive(const G4Polyhedron& polyhedron) { } //Loop through all the facets... - G4bool notLastFace; - G4Normal3D SurfaceUnitNormal; - do { // loop over faces... - //First, find surface normal for the facet... - notLastFace = polyhedron.GetNextUnitNormal (SurfaceUnitNormal); - - //Loop through the four edges of each G4Facet... - G4bool notLastEdge; - G4Point3D vertex; - G4int edgeFlag; - G4int edgeCount = 0; - do { // loop over edges... - notLastEdge = polyhedron.GetNextVertex (vertex, edgeFlag); - // Check to see if edge is visible or not... - if (isAuxEdgeVisible) { - edgeFlag = G4int (true); - } - if (edgeFlag) { - // glEdgeFlag (GL_TRUE); - } else { - // glEdgeFlag (GL_FALSE); - } - // glVertex3d (vertex.x(), - // vertex.y(), - // vertex.z()); - edgeCount++; - } while (notLastEdge); + // Look at G4OpenGLSceneHandler::AddPrimitive(const G4Polyhedron&) + // for an example of how to get facets out of a G4Polyhedron, + // including how to cope with triangles if that's a problem. - // Duplicate last real vertex if necessary to guarantee quadrilateral.... - while (edgeCount < 4) { - // glEdgeFlag (GL_FALSE); - // glVertex3d (vertex.x(), - // vertex.y(), - // vertex.z()); - edgeCount++; - } - - } while (notLastFace); } void G4XXXSceneHandler::AddPrimitive(const G4NURBS&) { diff --git a/source/visualization/XXX/src/G4XXXViewer.cc b/source/visualization/XXX/src/G4XXXViewer.cc index 32ffc7b9f4..42b0f2a308 100644 --- a/source/visualization/XXX/src/G4XXXViewer.cc +++ b/source/visualization/XXX/src/G4XXXViewer.cc @@ -21,14 +21,11 @@ // ******************************************************************** // // -// $Id: G4XXXViewer.cc,v 1.6 2003/11/06 15:06:51 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4XXXViewer.cc,v 1.7 2005/10/13 17:45:52 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4XXXViewer.hh" -#include "G4ios.hh" -#include - #include "G4VSceneHandler.hh" G4XXXViewer::G4XXXViewer diff --git a/source/visualization/management/GNUmakefile b/source/visualization/management/GNUmakefile index 843362e3dd..bf1ddd7a2f 100644 --- a/source/visualization/management/GNUmakefile +++ b/source/visualization/management/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.9 2005/03/03 16:30:50 allison Exp $ +# $Id: GNUmakefile,v 1.12 2005/10/14 08:21:49 allison Exp $ # ------------------------------------------------------------- # GNUmakefile for visualization library. John Allison, 5/7/95. diff --git a/source/visualization/management/History b/source/visualization/management/History index d556a5a060..f6250a752e 100644 --- a/source/visualization/management/History +++ b/source/visualization/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.2 2005/06/07 17:04:27 allison Exp $ +$Id: History,v 1.22 2005/12/05 00:15:38 perl Exp $ ------------------------------------------------------------------- ========================================================= @@ -25,6 +25,93 @@ committal in the CVS repository ! History file for visualization management sub-category ------------------------------------------------------ +4th December John Allison (visman-V07-01-10) +- G4Vismanager.cc: Prevent ERROR messages at end of event and run when + user has not instantiated a scene handler, e.g., in batch mode. + +29th November 2005 Jane Tinslay +- Make G4VisManager::RegisterModelFactories() non-pure for + backwards compatibility. +- Add information message to G4VisManager::DispatchToModel when default trajectory + model is used. + +23rd November 2005 Joseph Perl (visman-V07-01-09) +- Tagged in preparation for Geant4 8.0 + +23rd November 2005 Jane Tinslay +- Enhanced trajectory implementation + +22nd November John Allison +- Added /vis/viewer/rebuild (forces visit of kernel). +- Changed G4Transform3D::Identity to G4Transform3D(). +- Tidied initial printing. +- Removed MyVisManager (was deprecated in previous major release). +- G4VSceneHandler.cc: fMarkForClearingTransientStore(false) initially. +- G4VVisCommand.cc: Improved UpdateVisManagerScene. +- Refined guidance of issue "/tracking/storeTrajectory 1" on + "/vis/scene/add/trajectories". +- Improved /vis/sceneHandler/attach. +- G4VisManager.cc: Improved comments. + +13th October 2005 John Allison (visman-V07-01-08) +- G4ViewParameters: Added XGeometryString. +- G4VViewer.cc: Pick up XGeometryString. +- /vis/open and /vis/viewer/create: Allow X-Windows-type geometry string + in window size hints. +- /vis/viewer/set/background: Add opacity parameter. + +20th October 2005 John Allison (visman-V07-01-07) +- G4VisManager: + o Added methods for managing trajectory models. + o Implemented first version of DispatchToCurrentModel(const G4VTrajectory&, + G4int i_mode). + o Created /vis/modeling/trajectories/ for trajectory model messengers. + o Added XGeometryString for some future viewer enhancements. +- G4VisExecutive: Added RegisterTrajectoryModelMakers. + +20th October 2005 John Allison (visman-V07-01-06) +- Get standard colours with "/vis/viewer/set/background red", for example. +- G4VisCommandsViewer.cc: Fixed G4ThreeVector/G4Vector3D problem with + CLHEP-1.9.2.1. + +13th October 2005 John Allison (visman-V07-01-05) +- Background colour - /vis/viewer/set/background. +- Non-uniform scaling - /vis/viewer/scale and scaleTo. +- Migrated to . + +12th October 2005 John Allison (vis-V07-01-03) +- G4VisCommandsViewer.cc: Trapped zero viewer pointer in /vis/viewer/update + (bug found by system test of vis-V07-01-02). + +16th September 2005 John Allison (visman-V07-01-04) +- Simplified use of ConcreteInstance. It is now always non-zero for + an instantiated vis manager; invalid views are reported by the vis + manager. The exception is /vis/disable which zeros it; /vis/enable + or any valid command resets it. + +16th September 2005 John Allison (visman-V07-01-03) +- Issue "/tracking/storeTrajectory 1" on /vis/scene/add/trajectories. +- Added warning: + o Attempt to add volume to a scene already containing the world. +- Added error message: + o Logical volume model must be only volume model in scene. +- G4Scene.cc: Improvement - no functional change. + +13th September 2005 John Allison (visman-V07-01-02) +- Added WhiteBackground to G4ViewParameters. +- Added /vis/viewer/set/whiteBackground. +- G4VSceneHandler::GetColour and GetTextColour: white and opaque + objects on a white background are changed to black. +- Added RayTracerX to G4VisExecutive under control of G4VIS_USE_RAYTRACERX. +- Re-instated invocation of SetView and ClearView in /vis/viewer/refresh. + +2nd September 2005 John Allison (visman-V07-01-01) +- Introduced optional second pass over run-duration models in + G4VSceneHandler::ProcessScene. + +20th July 2005 John Allison (visman-V07-01-00) +- G4VisCommandsViewer.cc: Protected new viewer pointer. + 7th June 2005 John Allison (visman-V07-00-02) - /vis/scene/notifyHandlers: Fixed case of scene handler with no viewer. diff --git a/source/visualization/management/include/G4GraphicsSystemList.hh b/source/visualization/management/include/G4GraphicsSystemList.hh index adebb96bd0..cc18cdfb1b 100644 --- a/source/visualization/management/include/G4GraphicsSystemList.hh +++ b/source/visualization/management/include/G4GraphicsSystemList.hh @@ -22,7 +22,7 @@ // // // $Id: G4GraphicsSystemList.hh,v 1.8 2003/06/16 17:14:02 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 2nd April 1996 diff --git a/source/visualization/management/include/G4Scene.hh b/source/visualization/management/include/G4Scene.hh index 31dee378be..6381c053be 100644 --- a/source/visualization/management/include/G4Scene.hh +++ b/source/visualization/management/include/G4Scene.hh @@ -22,7 +22,7 @@ // // // $Id: G4Scene.hh,v 1.14 2003/11/27 11:48:03 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Scene John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4Scene.icc b/source/visualization/management/include/G4Scene.icc index bd8942388f..859df6fa17 100644 --- a/source/visualization/management/include/G4Scene.icc +++ b/source/visualization/management/include/G4Scene.icc @@ -22,7 +22,7 @@ // // // $Id: G4Scene.icc,v 1.11 2003/11/27 11:48:06 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Scene data John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4SceneHandlerList.hh b/source/visualization/management/include/G4SceneHandlerList.hh index 772f4db98c..63c15f5d44 100644 --- a/source/visualization/management/include/G4SceneHandlerList.hh +++ b/source/visualization/management/include/G4SceneHandlerList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SceneHandlerList.hh,v 1.7 2003/06/16 17:14:05 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison May 1996 diff --git a/source/visualization/management/include/G4SceneList.hh b/source/visualization/management/include/G4SceneList.hh index 998a9e27b9..67ae0768d3 100644 --- a/source/visualization/management/include/G4SceneList.hh +++ b/source/visualization/management/include/G4SceneList.hh @@ -22,7 +22,7 @@ // // // $Id: G4SceneList.hh,v 1.9 2003/06/16 17:14:06 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 9th August 1998 diff --git a/source/visualization/management/include/G4VGraphicsSystem.hh b/source/visualization/management/include/G4VGraphicsSystem.hh index ae9fde5528..4c50bc9135 100644 --- a/source/visualization/management/include/G4VGraphicsSystem.hh +++ b/source/visualization/management/include/G4VGraphicsSystem.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsSystem.hh,v 1.10 2003/06/16 17:14:07 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VGraphicsSystem.icc b/source/visualization/management/include/G4VGraphicsSystem.icc index 1134c60987..9ed711ab9d 100644 --- a/source/visualization/management/include/G4VGraphicsSystem.icc +++ b/source/visualization/management/include/G4VGraphicsSystem.icc @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsSystem.icc,v 1.6 2001/07/11 10:09:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VSceneHandler.hh b/source/visualization/management/include/G4VSceneHandler.hh index a32d6f0e28..591f2b7ec2 100644 --- a/source/visualization/management/include/G4VSceneHandler.hh +++ b/source/visualization/management/include/G4VSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSceneHandler.hh,v 1.24 2005/01/27 20:06:07 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VSceneHandler.hh,v 1.25 2005/09/02 12:58:18 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 19th July 1996. @@ -279,6 +279,8 @@ protected: G4VViewer* fpViewer; // Current viewer. G4Scene* fpScene; // Scene for this scene handler. G4bool fMarkForClearingTransientStore; + G4bool fSecondPassRequested; + G4bool fSecondPass; // ...in process. ////////////////////////////////////////////////////////////// // Workspace... diff --git a/source/visualization/management/include/G4VSceneHandler.icc b/source/visualization/management/include/G4VSceneHandler.icc index a88ecd9d2e..dc504cdc6f 100644 --- a/source/visualization/management/include/G4VSceneHandler.icc +++ b/source/visualization/management/include/G4VSceneHandler.icc @@ -22,7 +22,7 @@ // // // $Id: G4VSceneHandler.icc,v 1.12 2001/08/09 20:13:40 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 19th July 1996. diff --git a/source/visualization/management/include/G4VUserVisAction.hh b/source/visualization/management/include/G4VUserVisAction.hh index 12ef480a5d..fad109171f 100644 --- a/source/visualization/management/include/G4VUserVisAction.hh +++ b/source/visualization/management/include/G4VUserVisAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VUserVisAction.hh,v 1.4 2005/03/16 17:18:04 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VUserVisAction.hh,v 1.5 2005/11/22 16:53:27 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // @@ -50,7 +50,7 @@ public: // With description G4VUserVisAction() {} virtual ~G4VUserVisAction() {} virtual void Draw() = 0; - void operator()(const G4Transform3D& = G4Transform3D::Identity) { + void operator()(const G4Transform3D& = G4Transform3D()) { Draw(); } diff --git a/source/visualization/management/include/G4VViewer.hh b/source/visualization/management/include/G4VViewer.hh index 7f4045688b..340b7e35fe 100644 --- a/source/visualization/management/include/G4VViewer.hh +++ b/source/visualization/management/include/G4VViewer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VViewer.hh,v 1.16 2005/06/02 17:43:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/include/G4VViewer.icc b/source/visualization/management/include/G4VViewer.icc index 6345ff262e..01c520210e 100644 --- a/source/visualization/management/include/G4VViewer.icc +++ b/source/visualization/management/include/G4VViewer.icc @@ -22,7 +22,7 @@ // // // $Id: G4VViewer.icc,v 1.10 2005/02/23 11:24:52 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 30th December 1996 diff --git a/source/visualization/management/include/G4VVisCommand.hh b/source/visualization/management/include/G4VVisCommand.hh index 62d32d595b..e75820967a 100644 --- a/source/visualization/management/include/G4VVisCommand.hh +++ b/source/visualization/management/include/G4VVisCommand.hh @@ -22,7 +22,7 @@ // // // $Id: G4VVisCommand.hh,v 1.17 2005/03/09 23:48:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. diff --git a/source/visualization/management/include/G4VVisCommand.icc b/source/visualization/management/include/G4VVisCommand.icc index a28cfddd68..469984b858 100644 --- a/source/visualization/management/include/G4VVisCommand.icc +++ b/source/visualization/management/include/G4VVisCommand.icc @@ -22,7 +22,7 @@ // // // $Id: G4VVisCommand.icc,v 1.4 2001/07/11 10:09:14 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. diff --git a/source/visualization/management/include/G4ViewParameters.hh b/source/visualization/management/include/G4ViewParameters.hh index 3137884fea..cfac73cb07 100644 --- a/source/visualization/management/include/G4ViewParameters.hh +++ b/source/visualization/management/include/G4ViewParameters.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.hh,v 1.17 2005/05/31 16:54:01 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ViewParameters.hh,v 1.20 2005/11/13 15:26:18 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 19th July 1996 @@ -130,6 +130,7 @@ public: // With description const G4Vector3D& GetUpVector () const; G4double GetFieldHalfAngle () const; G4double GetZoomFactor () const; + const G4Vector3D& GetScaleFactor () const; const G4Point3D& GetCurrentTargetPoint () const; G4double GetDolly () const; G4bool GetLightsMoveWithCamera () const; @@ -146,7 +147,11 @@ public: // With description G4bool IsMarkerNotHidden () const; G4int GetWindowSizeHintX () const; G4int GetWindowSizeHintY () const; + const G4String& GetXGeometryString () const; + // If non-null, can be interpreted with XParseGeometry (see man + // pages). Supercedes GetWindowSizeHintX/Y. G4bool IsAutoRefresh () const; + const G4Colour& GetBackgroundColour () const; // Here Follow functions to evaluate the above algorithms as a // function of the radius of the Bounding Sphere of the object being @@ -184,6 +189,8 @@ public: // With description void SetFieldHalfAngle (G4double fieldHalfAngle); void SetZoomFactor (G4double zoomFactor); void MultiplyZoomFactor (G4double zoomFactorMultiplier); + void SetScaleFactor (const G4Vector3D& scaleFactor); + void MultiplyScaleFactor (const G4Vector3D& scaleFactorMultiplier); void SetCurrentTargetPoint (const G4Point3D& currentTargetPoint); void SetDolly (G4double dolly); void IncrementDolly (G4double dollyIncrement); @@ -204,7 +211,9 @@ public: // With description void SetMarkerHidden (); void SetMarkerNotHidden (); void SetWindowSizeHint (G4int xHint, G4int yHint); + void SetXGeometryString (const G4String&); void SetAutoRefresh (G4bool); + void SetBackgroundColour (const G4Colour&); void PrintDifferences (const G4ViewParameters& v) const; @@ -230,6 +239,7 @@ private: // to fViewpointDirection!) G4double fFieldHalfAngle; // Radius / camara distance, 0 for parallel. G4double fZoomFactor; // Magnification relative to Standard View. + G4Vector3D fScaleFactor; // (Non-uniform) scale/magnification factor. G4Point3D fCurrentTargetPoint; // Relative to standard target point. G4double fDolly; // Distance towards current target point. G4bool fLightsMoveWithCamera; @@ -250,7 +260,9 @@ private: // removed. G4int fWindowSizeHintX; // Size hints for pixel-based window systems. G4int fWindowSizeHintY; + G4String fXGeometryString; // If non-null, geometry string for X Windows. G4bool fAutoRefresh; // ...after change of view parameters. + G4Colour fBackgroundColour; }; #include "G4ViewParameters.icc" diff --git a/source/visualization/management/include/G4ViewParameters.icc b/source/visualization/management/include/G4ViewParameters.icc index 2ae789959d..b743649b17 100644 --- a/source/visualization/management/include/G4ViewParameters.icc +++ b/source/visualization/management/include/G4ViewParameters.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.icc,v 1.7 2005/05/31 16:54:01 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ViewParameters.icc,v 1.10 2005/11/13 15:26:18 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 20th October 1996 @@ -105,6 +105,10 @@ inline G4double G4ViewParameters::GetZoomFactor () const { return fZoomFactor; } +inline const G4Vector3D& G4ViewParameters::GetScaleFactor () const { + return fScaleFactor; +} + inline const G4Point3D& G4ViewParameters::GetCurrentTargetPoint () const { return fCurrentTargetPoint; } @@ -163,10 +167,18 @@ inline G4int G4ViewParameters::GetWindowSizeHintY () const { return fWindowSizeHintY; } +inline const G4String& G4ViewParameters::GetXGeometryString () const { + return fXGeometryString; +} + inline G4bool G4ViewParameters::IsAutoRefresh () const { return fAutoRefresh; } +inline const G4Colour& G4ViewParameters::GetBackgroundColour () const { + return fBackgroundColour; +} + inline void G4ViewParameters::SetDrawingStyle (G4ViewParameters::DrawingStyle style) { fDrawingStyle = style; @@ -237,6 +249,10 @@ G4ViewParameters::MultiplyZoomFactor (G4double zoomFactorMultiplier) { fZoomFactor *= zoomFactorMultiplier; } +inline void G4ViewParameters::SetScaleFactor (const G4Vector3D& scaleFactor) { + fScaleFactor = scaleFactor; +} + inline void G4ViewParameters::SetCurrentTargetPoint (const G4Point3D& currentTargetPoint) { fCurrentTargetPoint = currentTargetPoint; @@ -311,6 +327,14 @@ inline void G4ViewParameters::SetWindowSizeHint (G4int xHint, G4int yHint) { fWindowSizeHintY = yHint; } +inline void G4ViewParameters::SetXGeometryString (const G4String& geomString) { + fXGeometryString = geomString; +} + inline void G4ViewParameters::SetAutoRefresh (G4bool state) { fAutoRefresh = state; } + +inline void G4ViewParameters::SetBackgroundColour (const G4Colour& colour) { + fBackgroundColour = colour; +} diff --git a/source/visualization/management/include/G4ViewerList.hh b/source/visualization/management/include/G4ViewerList.hh index 93be740205..ac65723264 100644 --- a/source/visualization/management/include/G4ViewerList.hh +++ b/source/visualization/management/include/G4ViewerList.hh @@ -22,7 +22,7 @@ // // // $Id: G4ViewerList.hh,v 1.7 2003/06/16 17:14:12 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison May 1996 diff --git a/source/visualization/management/include/G4VisCommandModelCreate.hh b/source/visualization/management/include/G4VisCommandModelCreate.hh new file mode 100644 index 0000000000..fecd45cb22 --- /dev/null +++ b/source/visualization/management/include/G4VisCommandModelCreate.hh @@ -0,0 +1,151 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4VisCommandModelCreate.hh,v 1.2 2005/11/23 20:25:21 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl October 2005 +// +// Class Description: +// Templated create command for model factories. Factory generates new models +// and associated messengers. +// Class Description - End: + +#ifndef G4VISCOMMANDSMODELCREATE_HH +#define G4VISCOMMANDSMODELCREATE_HH + +#include "G4VVisCommand.hh" +#include "G4String.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcommand.hh" +#include "G4UIdirectory.hh" +#include + +template +class G4VisCommandModelCreate : public G4VVisCommand { + +public: // With description + + G4VisCommandModelCreate(Factory*, const G4String& placement); + // Input factory and command placement + + virtual ~G4VisCommandModelCreate(); + + G4String GetCurrentValue(G4UIcommand*); + void SetNewValue (G4UIcommand* command, G4String newValue); + + G4String Placement() const; + +private: + + G4String NextName(); + + // Data members + Factory* fpFactory; + G4String fPlacement; + G4int fId; + G4UIcmdWithAString* fpCommand; + std::vector fDirectoryList; + +}; + +template +G4VisCommandModelCreate::G4VisCommandModelCreate(Factory* factory, const G4String& placement) + :fpFactory(factory) + ,fPlacement(placement) + ,fId(0) +{ + G4String factoryName = factory->Name(); + + G4String command = Placement()+"/create/"+factoryName; + G4String guidance = "Create a "+factoryName+" model and associated messengers."; + + fpCommand = new G4UIcmdWithAString(command, this); + fpCommand->SetGuidance(guidance); + fpCommand->SetGuidance("Generated model becomes current."); + fpCommand->SetParameterName("model-name", true); +} + +template +G4VisCommandModelCreate::~G4VisCommandModelCreate() +{ + delete fpCommand; + + unsigned i(0); + for (i=0; i +G4String +G4VisCommandModelCreate::Placement() const +{ + return fPlacement; +} + +template +G4String +G4VisCommandModelCreate::NextName() +{ + std::ostringstream oss; + oss <Name()<<"-" << fId++; + return oss.str(); +} + +template +G4String +G4VisCommandModelCreate::GetCurrentValue(G4UIcommand*) +{ + return ""; +} + +template +void G4VisCommandModelCreate::SetNewValue(G4UIcommand*, G4String newName) +{ + if (newName.isNull()) newName = NextName(); + + assert (0 != fpFactory); + + // Create directory for new model commands + G4String title = Placement()+"/"+newName+"/"; + G4String guidance = "Commands for "+newName+" model."; + + G4UIcommand* directory = new G4UIdirectory(title); + directory->SetGuidance(guidance); + fDirectoryList.push_back(directory); + + // Create the model. + typename Factory::ModelAndMessengers creation = fpFactory->Create(Placement(), newName); + + // Register model with vis manager + fpVisManager->RegisterModel(creation.first); + + // Register associated messengers with vis manager + typename Factory::Messengers::iterator iter = creation.second.begin(); + + while (iter != creation.second.end()) { + fpVisManager->RegisterMessenger(*iter); + iter++; + } +} + +#endif diff --git a/source/visualization/management/include/G4VisCommands.hh b/source/visualization/management/include/G4VisCommands.hh index 45c8f788a4..a26609f77a 100644 --- a/source/visualization/management/include/G4VisCommands.hh +++ b/source/visualization/management/include/G4VisCommands.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommands.hh,v 1.3 2001/08/05 02:29:02 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/ top level commands - John Allison 5th February 2001 diff --git a/source/visualization/management/include/G4VisCommandsCompound.hh b/source/visualization/management/include/G4VisCommandsCompound.hh index 7655f70139..efd0fc8a9e 100644 --- a/source/visualization/management/include/G4VisCommandsCompound.hh +++ b/source/visualization/management/include/G4VisCommandsCompound.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsCompound.hh,v 1.8 2005/02/15 14:50:52 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // Compound /vis/ commands - John Allison 15th May 2000 diff --git a/source/visualization/management/include/G4VisCommandsListManager.hh b/source/visualization/management/include/G4VisCommandsListManager.hh new file mode 100644 index 0000000000..1934df9ade --- /dev/null +++ b/source/visualization/management/include/G4VisCommandsListManager.hh @@ -0,0 +1,163 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4VisCommandsListManager.hh,v 1.1 2005/11/21 05:45:42 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl October 2005 +// +// Class Description: +// Templated list manager commands which control list manager listing and +// selection. +// Class Description - End: + +#ifndef G4VISCOMMANDLISTMANAGER_HH +#define G4VISCOMMANDLISTMANAGER_HH + +#include "G4UImessenger.hh" +#include "G4String.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcommand.hh" + +template +class G4VisCommandListManagerList : public G4UImessenger { + +public: // With description + + G4VisCommandListManagerList(Manager*, const G4String& placement); + // Input list manager and command placement + + virtual ~G4VisCommandListManagerList(); + + G4String GetCurrentValue(G4UIcommand*); + void SetNewValue(G4UIcommand* command, G4String newValue); + + G4String Placement() const; + +private: + + // Data members + Manager* fpManager; + G4String fPlacement; + + G4UIcmdWithAString* fpCommand; + +}; + +// List command +template +G4VisCommandListManagerList::G4VisCommandListManagerList(Manager* manager, const G4String& placement) + :fpManager(manager) + ,fPlacement(placement) +{ + G4String command = Placement()+"/list"; + + fpCommand = new G4UIcmdWithAString(command, this); + fpCommand->SetGuidance("List objects registered with list manager"); + fpCommand->SetParameterName("name", true); +} + +template +G4VisCommandListManagerList::~G4VisCommandListManagerList() +{ + delete fpCommand; +} + +template +G4String +G4VisCommandListManagerList::Placement() const +{ + return fPlacement; +} + +template +G4String +G4VisCommandListManagerList::GetCurrentValue(G4UIcommand*) +{ + return ""; +} + +template +void G4VisCommandListManagerList::SetNewValue(G4UIcommand*, G4String name) +{ + G4cout<<"Listing models available in "<Print(G4cout, name); +} + +//Select command +template +class G4VisCommandListManagerSelect : public G4UImessenger { + +public: // With description + + G4VisCommandListManagerSelect(Manager*, const G4String& placement); + // Input list manager and command placement + + virtual ~G4VisCommandListManagerSelect(); + + G4String GetCurrentValue(G4UIcommand*); + void SetNewValue (G4UIcommand* command, G4String newValue); + +private: + + Manager* fpManager; + G4String fPlacement; + + G4UIcmdWithAString* fpCommand; + +}; + +template +G4VisCommandListManagerSelect::G4VisCommandListManagerSelect(Manager* manager, const G4String& placement) + :fpManager(manager) + ,fPlacement(placement) +{ + G4String command = placement+"/select"; + G4String guidance = "Select created object"; + + fpCommand = new G4UIcmdWithAString(command, this); + fpCommand->SetGuidance(guidance); + fpCommand->SetParameterName("name", false); +} + +template +G4VisCommandListManagerSelect::~G4VisCommandListManagerSelect() +{ + delete fpCommand; +} + +template +G4String +G4VisCommandListManagerSelect::GetCurrentValue(G4UIcommand*) +{ + return ""; +} + +template +void G4VisCommandListManagerSelect::SetNewValue(G4UIcommand*, G4String name) +{ + assert (0 != fpManager); + fpManager->SetCurrent(name); +} + +#endif diff --git a/source/visualization/management/include/G4VisCommandsScene.hh b/source/visualization/management/include/G4VisCommandsScene.hh index 51861fe0f2..71c01b2a87 100644 --- a/source/visualization/management/include/G4VisCommandsScene.hh +++ b/source/visualization/management/include/G4VisCommandsScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsScene.hh,v 1.15 2005/03/09 23:48:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/scene commands - John Allison 9th August 1998 diff --git a/source/visualization/management/include/G4VisCommandsSceneAdd.hh b/source/visualization/management/include/G4VisCommandsSceneAdd.hh index b3d7f5ecc6..6d12e84fd2 100644 --- a/source/visualization/management/include/G4VisCommandsSceneAdd.hh +++ b/source/visualization/management/include/G4VisCommandsSceneAdd.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsSceneAdd.hh,v 1.14 2005/04/10 21:04:39 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/scene commands - John Allison 9th August 1998 diff --git a/source/visualization/management/include/G4VisCommandsSceneHandler.hh b/source/visualization/management/include/G4VisCommandsSceneHandler.hh index bb7301107d..728bf7071e 100644 --- a/source/visualization/management/include/G4VisCommandsSceneHandler.hh +++ b/source/visualization/management/include/G4VisCommandsSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisCommandsSceneHandler.hh,v 1.7 2005/03/09 23:48:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/sceneHandler commands - John Allison 10th October 1998 diff --git a/source/visualization/management/include/G4VisCommandsViewer.hh b/source/visualization/management/include/G4VisCommandsViewer.hh index cdf54d8c89..1919f01a04 100644 --- a/source/visualization/management/include/G4VisCommandsViewer.hh +++ b/source/visualization/management/include/G4VisCommandsViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewer.hh,v 1.17 2005/03/09 23:48:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisCommandsViewer.hh,v 1.19 2005/11/22 17:00:15 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/viewer commands - John Allison 25th October 1998 @@ -37,6 +37,7 @@ class G4UIcommand; class G4UIcmdWithAString; class G4UIcmdWithADouble; class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWith3Vector; class G4VVisCommandViewer: public G4VVisCommand { public: @@ -129,6 +130,18 @@ private: G4double fPanToRight, fPanToUp; }; +class G4VisCommandViewerReset: public G4VVisCommandViewer { +public: + G4VisCommandViewerReset (); + virtual ~G4VisCommandViewerReset (); + G4String GetCurrentValue (G4UIcommand* command); + void SetNewValue (G4UIcommand* command, G4String newValue); +private: + G4VisCommandViewerReset (const G4VisCommandViewerReset&); + G4VisCommandViewerReset& operator = (const G4VisCommandViewerReset&); + G4UIcmdWithAString* fpCommand; +}; + class G4VisCommandViewerRefresh: public G4VVisCommandViewer { public: G4VisCommandViewerRefresh (); @@ -141,18 +154,33 @@ private: G4UIcmdWithAString* fpCommand; }; -class G4VisCommandViewerReset: public G4VVisCommandViewer { +class G4VisCommandViewerRebuild: public G4VVisCommandViewer { public: - G4VisCommandViewerReset (); - virtual ~G4VisCommandViewerReset (); + G4VisCommandViewerRebuild (); + virtual ~G4VisCommandViewerRebuild (); G4String GetCurrentValue (G4UIcommand* command); void SetNewValue (G4UIcommand* command, G4String newValue); private: - G4VisCommandViewerReset (const G4VisCommandViewerReset&); - G4VisCommandViewerReset& operator = (const G4VisCommandViewerReset&); + G4VisCommandViewerRebuild (const G4VisCommandViewerRebuild&); + G4VisCommandViewerRebuild& operator = (const G4VisCommandViewerRebuild&); G4UIcmdWithAString* fpCommand; }; +class G4VisCommandViewerScale: public G4VVisCommandViewer { +public: + G4VisCommandViewerScale (); + virtual ~G4VisCommandViewerScale (); + G4String GetCurrentValue (G4UIcommand* command); + void SetNewValue (G4UIcommand* command, G4String newValue); +private: + G4VisCommandViewerScale (const G4VisCommandViewerScale&); + G4VisCommandViewerScale& operator = (const G4VisCommandViewerScale&); + G4UIcmdWith3Vector* fpCommandScale; + G4UIcmdWith3Vector* fpCommandScaleTo; + G4Vector3D fScaleMultiplier; + G4Vector3D fScaleTo; +}; + class G4VisCommandViewerSelect: public G4VVisCommandViewer { public: G4VisCommandViewerSelect (); diff --git a/source/visualization/management/include/G4VisCommandsViewerSet.hh b/source/visualization/management/include/G4VisCommandsViewerSet.hh index 65c2c4245e..35f3d2912b 100644 --- a/source/visualization/management/include/G4VisCommandsViewerSet.hh +++ b/source/visualization/management/include/G4VisCommandsViewerSet.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewerSet.hh,v 1.13 2004/07/23 15:24:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisCommandsViewerSet.hh,v 1.15 2005/10/13 18:10:29 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/viewer/set commands - John Allison 16th May 2000 @@ -70,6 +70,7 @@ private: G4UIcommand* fpCommandViewpointThetaPhi; G4UIcommand* fpCommandViewpointVector; G4ThreeVector fViewpointVector; + G4UIcommand* fpCommandBackground; }; #endif diff --git a/source/visualization/management/include/G4VisExecutive.hh b/source/visualization/management/include/G4VisExecutive.hh index 3ed9053cdd..80e0b3d058 100644 --- a/source/visualization/management/include/G4VisExecutive.hh +++ b/source/visualization/management/include/G4VisExecutive.hh @@ -21,26 +21,26 @@ // ******************************************************************** // // -// $Id: G4VisExecutive.hh,v 1.1 2005/02/04 16:42:37 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisExecutive.hh,v 1.5 2005/11/22 16:57:16 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 2nd February 2005 (based on MyVisManager, 24th January 1998). // // Class description // -// Concrete Visualization Manager that implements the virtual function -// RegisterGraphicsSystems. This is executed when you Initialise() -// or Initialize() the vis manager. It exploits C-pre-processor -// variables G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles -// if environment variables of the same name are set. +// Concrete Visualization Manager that implements the virtual +// functions RegisterGraphicsSystems and RegisterModelFactories. This +// is executed when you Initialise() or Initialize() the vis manager. +// It exploits C-pre-processor variables G4VIS_USE_DAWN, etc., which +// are set by the GNUmakefiles if environment variables of the same +// name are set. // // Include this file and write code to instantiate G4VisExecutive just -// once as beginning of operations. Before you compile, set -// appropriate environment variables. If you change your -// environment you must force recompilation (the make files will not -// detect the need to do this). Typically, your main program file -// will contain: +// once as beginning of operations. Before you compile, set +// appropriate environment variables. If you change your environment +// you must force recompilation (the make files will not detect the +// need to do this). Typically, your main program file will contain: // // #ifdef G4VIS_USE // #include "G4VisExecutive.hh" @@ -94,11 +94,11 @@ public: // With description private: - void RegisterGraphicsSystems (); + void RegisterGraphicsSystems(); + void RegisterModelFactories(); }; #include "G4VisExecutive.icc" #endif - diff --git a/source/visualization/management/include/G4VisExecutive.icc b/source/visualization/management/include/G4VisExecutive.icc index 7e8b660143..dd7acf3060 100644 --- a/source/visualization/management/include/G4VisExecutive.icc +++ b/source/visualization/management/include/G4VisExecutive.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisExecutive.icc,v 1.2 2005/05/06 08:42:47 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisExecutive.icc,v 1.7 2005/11/23 05:20:02 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 24th January 1998. @@ -36,6 +36,7 @@ #include "G4HepRep.hh" #include "G4HepRepFile.hh" #include "G4RayTracer.hh" +#include "G4TrajectoryModelFactories.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -68,12 +69,15 @@ #include "G4OpenInventorWin32.hh" #endif +#ifdef G4VIS_USE_RAYTRACERX +#include "G4RayTracerX.hh" +#endif + #ifdef G4VIS_USE_VRML #include "G4VRML1.hh" #include "G4VRML2.hh" #endif - G4VisExecutive::G4VisExecutive () {} void G4VisExecutive::RegisterGraphicsSystems () { @@ -117,15 +121,20 @@ void G4VisExecutive::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4OpenInventorWin32); #endif +#ifdef G4VIS_USE_RAYTRACERX + RegisterGraphicsSystem (new G4RayTracerX); +#endif + #ifdef G4VIS_USE_VRML RegisterGraphicsSystem (new G4VRML1); RegisterGraphicsSystem (new G4VRML2); #endif - if (fVerbose > 0) { - G4cout << - "\nYou have successfully chosen to use the following graphics systems." - << G4endl; - PrintAvailableGraphicsSystems (); - } +} + +void +G4VisExecutive::RegisterModelFactories() +{ + RegisterModelFactory(new G4TrajectoryDrawByChargeFactory()); + RegisterModelFactory(new G4TrajectoryDrawByParticleIDFactory()); } diff --git a/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh b/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh index 000045159d..0697d1fcc1 100644 --- a/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh +++ b/source/visualization/management/include/G4VisFeaturesOfDAWNFILE.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfDAWNFILE.hh,v 1.4 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #ifndef G4VISFEATURESOFDAWNFILE_HH #define G4VISFEATURESOFDAWNFILE_HH diff --git a/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh b/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh index 43c3b89fa2..cf23c3e66d 100644 --- a/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh +++ b/source/visualization/management/include/G4VisFeaturesOfFukuiRenderer.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfFukuiRenderer.hh,v 1.4 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh b/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh index d424a05427..08b6209f63 100644 --- a/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh +++ b/source/visualization/management/include/G4VisFeaturesOfOpenGL.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfOpenGL.hh,v 1.4 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh b/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh index 134a27b476..17702ac49a 100644 --- a/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh +++ b/source/visualization/management/include/G4VisFeaturesOfOpenInventor.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfOpenInventor.hh,v 1.4 2001/07/11 10:09:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/management/include/G4VisListManager.hh b/source/visualization/management/include/G4VisListManager.hh new file mode 100644 index 0000000000..8d8fb313a1 --- /dev/null +++ b/source/visualization/management/include/G4VisListManager.hh @@ -0,0 +1,146 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4VisListManager.hh,v 1.3 2005/11/23 20:25:22 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl October 2005 +// +// Class Description: +// Templated class to manage a set of objects, with one named +// as current. Owns registered objects. +// Class Description - End: + +#ifndef G4VISLISTMANAGER_HH +#define G4VISLISTMANAGER_HH + +#include "G4String.hh" +#include +#include +#include + +template +class G4VisListManager { + +public: // With description + + G4VisListManager(); + + virtual ~G4VisListManager(); + + void Register(T* ptr); + // Register ptr. Manager assumes ownership and + // ptr becomes current + + void SetCurrent(const G4String& name); + const T* Current() const {return fpCurrent;} + + void Print(std::ostream& ostr, const G4String& name) const; + +private: + + // Data members + std::map fMap; + T* fpCurrent; + +}; + +template +G4VisListManager::G4VisListManager() + :fpCurrent(0) +{} + +template +G4VisListManager::~G4VisListManager() +{ + typename std::map::iterator iter = fMap.begin(); + + while (iter != fMap.end()) { + delete iter->second; + iter++; + } +} + +template +void +G4VisListManager::Register(T* ptr) +{ + assert (0 != ptr); + + typename std::map::const_iterator iter = fMap.find(ptr->Name()); + + if (iter == fMap.end()) { + fMap[ptr->Name()] = ptr; + fpCurrent = ptr; + } + else { + std::ostringstream o; + o << "Key "<Name()<<" already registered"; + G4Exception + ("G4VisListManager::Register(T* ptr) ", + "KeyExists", FatalErrorInArgument, o.str().c_str()); + } +} + +template +void +G4VisListManager::SetCurrent(const G4String& name) +{ + typename std::map::const_iterator iter = fMap.find(name); + + if (iter != fMap.end()) fpCurrent = fMap[name]; + else { + std::ostringstream o; + o << "Key "<::SetCurrent(T* ptr) ", + "NonExistentName", FatalErrorInArgument, o.str().c_str()); + } +} + +template +void +G4VisListManager::Print(std::ostream& ostr, const G4String& name) const +{ + ostr<<"Current: "<Name()<::const_iterator iter = fMap.find(name); + + if (iter != fMap.end()) { + iter->second->Print(ostr); + } + else { + ostr<::const_iterator iter = fMap.begin(); + while (iter != fMap.end()) { + iter->second->Print(ostr); + ostr< #include @@ -94,7 +96,16 @@ class G4Scene; class G4UIcommand; class G4UImessenger; class G4VisStateDependent; +class G4VTrajectoryModel; class G4VUserVisAction; +template class G4VisListManager; +template class G4VModelFactory; + +namespace { + // Typedef's for trajectory drawing + typedef G4VModelFactory G4TrajectoryModelFactory; + typedef G4VisListManager G4TrajectoryModelManager; +} class G4VisManager: public G4VVisManager { @@ -162,7 +173,23 @@ public: // With description void Initialise (); void Initialize (); // Alias Initialise (). - G4bool RegisterGraphicsSystem (G4VGraphicsSystem* pSystem); + + G4bool RegisterGraphicsSystem (G4VGraphicsSystem*); + // Register an individual graphics system. Normally this is done in + // a sub-class implementation of the protected virtual function, + // RegisterGraphicsSystems. See, e.g., G4VisExecutive.icc. + + void RegisterModelFactory(G4TrajectoryModelFactory* factory); + // Register trajectory model factory. Assumes ownership of factory. + + void RegisterModel(G4VTrajectoryModel* model); + // Register trajectory model. Assumes ownership of model. + + void SelectTrajectoryModel(const G4String& model); + // Set default trajectory model. Useful for use in compiled code + + void RegisterMessenger(G4UImessenger* messenger); + // Register messenger. Assumes ownership of messenger. ///////////////////////////////////////////////////////////////// // Now functions that implement the pure virtual functions of @@ -170,28 +197,28 @@ public: // With description // for representing hits, digis, etc. void Draw (const G4Circle&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4NURBS&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4Polyhedron&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4Polyline&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4Polymarker&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4Scale&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4Square&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4Text&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); //////////////////////////////////////////////////////////////////// // Now functions that implement the pure virtual functions of @@ -209,13 +236,13 @@ public: // With description // i_mode defaults to 0 by inheritance from G4VVisManager. void Draw (const G4LogicalVolume&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4VPhysicalVolume&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); void Draw (const G4VSolid&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); + const G4Transform3D& objectTransformation = G4Transform3D()); //////////////////////////////////////////////////////////////////////// // Now other pure virtual functions of G4VVisManager... @@ -223,6 +250,9 @@ public: // With description void GeometryHasChanged (); // Used by run manager to notify change. + void DispatchToModel(const G4VTrajectory&, G4int i_mode); + // Draw the trajectory. + //////////////////////////////////////////////////////////////////////// // Administration routines. @@ -269,6 +299,14 @@ public: // With description Verbosity GetVerbosity () const; void GetWindowSizeHint (G4int& xHint, G4int& yHint) const; // Note: GetWindowSizeHint information is returned via the G4int& arguments. + const G4String& GetXGeometryString () const; + // GetXGeometryString is intended to be parsed by XParseGeometry. + // It contains the size information, as in GetWindowSizeHint, but + // may also contain the window position, e.g., "600x600-0+200. The + // viewer should use this in preference to GetWindowSizeHint, since + // it contains more information. (The size information in + // GetXGeometryString and GetWindowSizeHint is guaranteed to be + // identical.) void SetUserAction (G4VUserVisAction* pVisAction, const G4VisExtent& = G4VisExtent::NullExtent); @@ -283,6 +321,7 @@ public: // With description void SetVerboseLevel (const G4String&); void SetVerboseLevel (Verbosity); void SetWindowSizeHint (G4int xHint, G4int yHint); + void SetXGeometryString (const G4String&); ///////////////////////////////////////////////////////////////////// @@ -312,6 +351,12 @@ public: // With description protected: virtual void RegisterGraphicsSystems () = 0; + // The sub-class must implement and make successive calls to + // RegisterGraphicsSystem. + + virtual void RegisterModelFactories(); + // Sub-class must register desired models + void RegisterMessengers (); // Command messengers. void PrintAvailableGraphicsSystems () const; void PrintInvalidPointers () const; @@ -343,11 +388,19 @@ protected: std::vector fMessengerList; std::vector fDirectoryList; G4VisStateDependent* fpStateDependent; // Friend state dependent class. - G4int fWindowSizeHintX, fWindowSizeHintY; // For viewer construction. + G4int fWindowSizeHintX, fWindowSizeHintY; // For viewer... + G4String fXGeometryString; // ...construction. G4NullModel fVisManagerNullModel; // As a default. G4TrajectoriesModel dummyTrajectoriesModel; // For passing drawing mode. G4ModelingParameters fVisManagerModelingParameters; // Useful memory. +private: + + // Trajectory model related data members + G4String fTrajectoryPlacement; // Placement for trajectory model commands + G4TrajectoryModelManager* fpTrajectoryModelMgr; // Trajectory model manager + std::vector fTrajectoryModelFactoryList; // Trajectory model factories + }; #include "G4VisManager.icc" diff --git a/source/visualization/management/include/G4VisManager.icc b/source/visualization/management/include/G4VisManager.icc index d59ff1fc11..29a9c6f09d 100644 --- a/source/visualization/management/include/G4VisManager.icc +++ b/source/visualization/management/include/G4VisManager.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisManager.icc,v 1.9 2005/02/19 22:07:21 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisManager.icc,v 1.11 2005/11/21 05:45:42 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 Visualization Manager - John Allison 02/Jan/1996. @@ -74,6 +74,10 @@ inline void G4VisManager::GetWindowSizeHint xHint = fWindowSizeHintX; yHint = fWindowSizeHintY; } +inline const G4String& G4VisManager::GetXGeometryString () const { + return fXGeometryString; +} + inline void G4VisManager::SetUserActionExtent (const G4VisExtent& extent) { fUserVisActionExtent = extent; } @@ -97,3 +101,13 @@ inline void G4VisManager::SetVerboseLevel (G4VisManager::Verbosity verbosity) { inline void G4VisManager::SetWindowSizeHint (G4int xHint, G4int yHint) { fWindowSizeHintX = xHint; fWindowSizeHintY = yHint; } + +inline void G4VisManager::SetXGeometryString (const G4String& geomString) { + fXGeometryString = geomString; +} + +inline void G4VisManager::RegisterMessenger(G4UImessenger* msgr) +{ + fMessengerList.push_back(msgr); +} + diff --git a/source/visualization/management/include/G4VisStateDependent.hh b/source/visualization/management/include/G4VisStateDependent.hh index 46beac52c3..2022bf5cbb 100644 --- a/source/visualization/management/include/G4VisStateDependent.hh +++ b/source/visualization/management/include/G4VisStateDependent.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisStateDependent.hh,v 1.4 2001/07/11 10:09:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // A "state dependent" service class for G4VisManager. // John Allison 29th November 1999 diff --git a/source/visualization/management/src/G4GraphicsSystemList.cc b/source/visualization/management/src/G4GraphicsSystemList.cc index 1b512d02e5..c6f9de1ccc 100644 --- a/source/visualization/management/src/G4GraphicsSystemList.cc +++ b/source/visualization/management/src/G4GraphicsSystemList.cc @@ -22,7 +22,7 @@ // // // $Id: G4GraphicsSystemList.cc,v 1.3 2001/07/11 10:09:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4GraphicsSystemList.hh" diff --git a/source/visualization/management/src/G4Scene.cc b/source/visualization/management/src/G4Scene.cc index 19ffabece5..ab262dda28 100644 --- a/source/visualization/management/src/G4Scene.cc +++ b/source/visualization/management/src/G4Scene.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Scene.cc,v 1.14 2003/11/27 11:48:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4Scene.cc,v 1.15 2005/09/16 01:26:19 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // Scene data John Allison 19th July 1996. @@ -44,12 +44,13 @@ G4Scene::G4Scene (const G4String& name): G4Scene::~G4Scene () {} G4bool G4Scene::AddRunDurationModel (G4VModel* pModel, G4bool warn) { - G4int i, nModels = fRunDurationModelList.size (); - for (i = 0; i < nModels; i++) { + std::vector::const_iterator i; + for (i = fRunDurationModelList.begin (); + i != fRunDurationModelList.end (); ++i) { if (pModel -> GetGlobalDescription () == - fRunDurationModelList [i] -> GetGlobalDescription ()) break; + (*i) -> GetGlobalDescription ()) break; } - if (i < nModels) { + if (i != fRunDurationModelList.end ()) { if (warn) { G4cout << "G4Scene::AddRunDurationModel: model \"" << pModel -> GetGlobalDescription () diff --git a/source/visualization/management/src/G4SceneHandlerList.cc b/source/visualization/management/src/G4SceneHandlerList.cc index 79ab49149a..a9aa7fea2a 100644 --- a/source/visualization/management/src/G4SceneHandlerList.cc +++ b/source/visualization/management/src/G4SceneHandlerList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SceneHandlerList.cc,v 1.3 2001/07/11 10:09:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4SceneHandlerList.hh" diff --git a/source/visualization/management/src/G4SceneList.cc b/source/visualization/management/src/G4SceneList.cc index c42d3d22ca..9aac685d7b 100644 --- a/source/visualization/management/src/G4SceneList.cc +++ b/source/visualization/management/src/G4SceneList.cc @@ -22,7 +22,7 @@ // // // $Id: G4SceneList.cc,v 1.5 2001/07/11 10:09:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4SceneList.hh" diff --git a/source/visualization/management/src/G4VGraphicsSystem.cc b/source/visualization/management/src/G4VGraphicsSystem.cc index f204f1fa87..db87be294b 100644 --- a/source/visualization/management/src/G4VGraphicsSystem.cc +++ b/source/visualization/management/src/G4VGraphicsSystem.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsSystem.cc,v 1.10 2003/06/16 17:14:16 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 27th March 1996 diff --git a/source/visualization/management/src/G4VSceneHandler.cc b/source/visualization/management/src/G4VSceneHandler.cc index 24a3b4f281..2c0b0b543b 100644 --- a/source/visualization/management/src/G4VSceneHandler.cc +++ b/source/visualization/management/src/G4VSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSceneHandler.cc,v 1.40 2005/06/07 17:03:17 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VSceneHandler.cc,v 1.45 2005/11/22 17:09:12 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 19th July 1996 @@ -31,7 +31,7 @@ #include "G4VSceneHandler.hh" #include "G4ios.hh" -#include +#include #include "G4VisManager.hh" #include "G4VGraphicsSystem.hh" @@ -75,10 +75,12 @@ G4VSceneHandler::G4VSceneHandler (G4VGraphicsSystem& system, G4int id, const G4S fViewCount (0), fpViewer (0), fpScene (0), - fMarkForClearingTransientStore (true), // Always clear and refesh first time. - fReadyForTransients (false), + fMarkForClearingTransientStore (false), + fSecondPassRequested (false), + fSecondPass (false), + fReadyForTransients (true), // Only false while processing scene. fpModel (0), - fpObjectTransformation (&G4Transform3D::Identity), + fpObjectTransformation (0), fNestingDepth (0), fpVisAttribs (0), fCurrentDepth (0), @@ -88,10 +90,9 @@ G4VSceneHandler::G4VSceneHandler (G4VGraphicsSystem& system, G4int id, const G4S G4VisManager* pVMan = G4VisManager::GetInstance (); fpScene = pVMan -> GetCurrentScene (); if (name == "") { - char charname [50]; - std::ostrstream ost (charname, 50); - ost << fSystem.GetName () << '-' << fSceneHandlerId << std::ends; - fName = charname; + std::ostringstream ost; + ost << fSystem.GetName () << '-' << fSceneHandlerId; + fName = ost.str(); } else { fName = name; @@ -114,7 +115,7 @@ void G4VSceneHandler::PreAddSolid (const G4Transform3D& objectTransformation, } void G4VSceneHandler::PostAddSolid () { - fpObjectTransformation = &G4Transform3D::Identity; + fpObjectTransformation = 0; fpVisAttribs = 0; } @@ -220,7 +221,7 @@ void G4VSceneHandler::EndPrimitives () { if (fNestingDepth <= 0) G4Exception("G4VSceneHandler::EndPrimitives: Nesting error"); fNestingDepth--; - fpObjectTransformation = &G4Transform3D::Identity; + fpObjectTransformation = 0; } void G4VSceneHandler::AddPrimitive (const G4Scale& scale) { @@ -439,10 +440,6 @@ void G4VSceneHandler::ProcessScene (G4VViewer&) { const std::vector& runDurationModelList = fpScene -> GetRunDurationModelList (); - /* - const std::vector& endOfEventModelList = - fpScene -> GetEndOfEventModelList (); - */ if (runDurationModelList.size ()) { G4VisManager::Verbosity verbosity = @@ -450,8 +447,12 @@ void G4VSceneHandler::ProcessScene (G4VViewer&) { if (verbosity >= G4VisManager::confirmations) { G4cout << "Traversing scene data..." << G4endl; } + BeginModeling (); + + // Create modeling parameters from view parameters... G4ModelingParameters* pMP = CreateModelingParameters (); + for (size_t i = 0; i < runDurationModelList.size (); i++) { G4VModel* pModel = runDurationModelList[i]; // Note: this is not the place to take action on @@ -475,22 +476,28 @@ void G4VSceneHandler::ProcessScene (G4VViewer&) { pModel -> DescribeYourselfTo (*this); pModel -> SetModelingParameters (tempMP); } - /* - for (size_t i = 0; i < endOfEventModelList.size (); i++) { - G4VModel* pModel = endOfEventModelList[i]; - const G4ModelingParameters* tempMP = - pModel -> GetModelingParameters (); - pModel -> SetModelingParameters (pMP); - SetModel (pModel); // Store for use by derived class. - pModel -> DescribeYourselfTo (*this); - pModel -> SetModelingParameters (tempMP); + + // Repeat if required... + if (fSecondPassRequested) { + fSecondPass = true; + for (size_t i = 0; i < runDurationModelList.size (); i++) { + G4VModel* pModel = runDurationModelList[i]; + const G4ModelingParameters* tempMP = + pModel -> GetModelingParameters (); + pModel -> SetModelingParameters (pMP); + SetModel (pModel); // Store for use by derived class. + pModel -> DescribeYourselfTo (*this); + pModel -> SetModelingParameters (tempMP); + } + fSecondPass = false; + fSecondPassRequested = false; } - */ + delete pMP; SetModel (0); // Flags invalid model. EndModeling (); - } - else { + + } else { G4VisManager::Verbosity verbosity = G4VisManager::GetInstance()->GetVerbosity(); if (verbosity >= G4VisManager::errors) { @@ -550,9 +557,9 @@ G4ModelingParameters* G4VSceneHandler::CreateModelingParameters () { const G4Colour& G4VSceneHandler::GetColour (const G4Visible& visible) { // Colour is determined by the applicable vis attributes. - return fpViewer -> - GetApplicableVisAttributes (visible.GetVisAttributes ()) -> - GetColour (); + const G4Colour& colour = fpViewer -> + GetApplicableVisAttributes (visible.GetVisAttributes ()) -> GetColour (); + return colour; } const G4Colour& G4VSceneHandler::GetTextColour (const G4Text& text) { @@ -560,7 +567,8 @@ const G4Colour& G4VSceneHandler::GetTextColour (const G4Text& text) { if (!pVA) { pVA = fpViewer -> GetViewParameters (). GetDefaultTextVisAttributes (); } - return pVA -> GetColour (); + const G4Colour& colour = pVA -> GetColour (); + return colour; } G4ViewParameters::DrawingStyle G4VSceneHandler::GetDrawingStyle diff --git a/source/visualization/management/src/G4VViewer.cc b/source/visualization/management/src/G4VViewer.cc index 5b6328dd21..03ca48a385 100644 --- a/source/visualization/management/src/G4VViewer.cc +++ b/source/visualization/management/src/G4VViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VViewer.cc,v 1.18 2005/02/23 11:35:58 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VViewer.cc,v 1.20 2005/11/13 15:31:51 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 27th March 1996 @@ -31,7 +31,7 @@ #include "G4VViewer.hh" #include "G4ios.hh" -#include +#include #include "G4VisManager.hh" #include "G4VGraphicsSystem.hh" @@ -48,10 +48,9 @@ fModified (true), fNeedKernelVisit (true) { if (name == "") { - char charname [50]; - std::ostrstream ost (charname, 50); - ost << fSceneHandler.GetName () << '-' << fViewId << std::ends; - fName = charname; + std::ostringstream ost; + ost << fSceneHandler.GetName () << '-' << fViewId; + fName = ost.str(); } else { fName = name; @@ -62,8 +61,11 @@ fNeedKernelVisit (true) G4VisManager* pVisMan = G4VisManager::GetInstance(); G4int xHint, yHint; pVisMan->GetWindowSizeHint(xHint, yHint); + const G4String& XGeometryString = pVisMan->GetXGeometryString(); fVP.SetWindowSizeHint(xHint,yHint); + fVP.SetXGeometryString(XGeometryString); fDefaultVP.SetWindowSizeHint(xHint,yHint); + fDefaultVP.SetXGeometryString(XGeometryString); } G4VViewer::~G4VViewer () {} diff --git a/source/visualization/management/src/G4VVisCommand.cc b/source/visualization/management/src/G4VVisCommand.cc index d45cf2986d..5ebd3be419 100644 --- a/source/visualization/management/src/G4VVisCommand.cc +++ b/source/visualization/management/src/G4VVisCommand.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VVisCommand.cc,v 1.15 2005/03/09 23:48:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VVisCommand.cc,v 1.17 2005/11/22 17:12:43 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // Base class for visualization commands - John Allison 9th August 1998 // It is really a messenger - we have one command per messenger. @@ -32,7 +32,7 @@ #include "G4UIcommand.hh" #include "G4UImanager.hh" #include "G4UnitsTable.hh" -#include +#include G4VVisCommand::~G4VVisCommand () {} @@ -43,11 +43,9 @@ G4String G4VVisCommand::ConvertToString { G4double uv = G4UIcommand::ValueOf(unitName); - char st[50]; - std::ostrstream os(st,50); - os << x/uv << " " << y/uv << " " << unitName << std::ends; - G4String vl = st; - return vl; + std::ostringstream oss; + oss << x/uv << " " << y/uv << " " << unitName; + return oss.str(); } void G4VVisCommand::ConvertToDoublePair(const G4String& paramString, @@ -57,7 +55,7 @@ void G4VVisCommand::ConvertToDoublePair(const G4String& paramString, G4double x, y; char unts[30]; - std::istrstream is(paramString); + std::istringstream is(paramString); is >> x >> y >> unts; G4String unt = unts; @@ -72,7 +70,7 @@ void G4VVisCommand::UpdateVisManagerScene G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); - G4SceneList& sceneList = fpVisManager -> SetSceneList (); + const G4SceneList& sceneList = fpVisManager -> GetSceneList (); G4int iScene, nScenes = sceneList.size (); for (iScene = 0; iScene < nScenes; iScene++) { @@ -94,11 +92,12 @@ void G4VVisCommand::UpdateVisManagerScene fpVisManager -> SetCurrentScene (pScene); - // Scene has changed. Trigger a rebuild of graphical database... + // Scene has changed. Refresh viewers of all sceneHandlers using + // this scene... G4VViewer* pViewer = fpVisManager -> GetCurrentViewer(); G4VSceneHandler* sceneHandler = fpVisManager -> GetCurrentSceneHandler(); if (sceneHandler && sceneHandler -> GetScene ()) { - if (pViewer && pViewer -> GetViewParameters().IsAutoRefresh()) { + if (pViewer) { G4UImanager::GetUIpointer () -> ApplyCommand ("/vis/scene/notifyHandlers"); } diff --git a/source/visualization/management/src/G4ViewParameters.cc b/source/visualization/management/src/G4ViewParameters.cc index 0c36e8b2c6..23d5c71fb2 100644 --- a/source/visualization/management/src/G4ViewParameters.cc +++ b/source/visualization/management/src/G4ViewParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ViewParameters.cc,v 1.20 2005/05/31 16:54:01 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4ViewParameters.cc,v 1.23 2005/11/13 15:26:18 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 19th July 1996 @@ -54,6 +54,7 @@ G4ViewParameters::G4ViewParameters (): fUpVector (G4Vector3D (0., 1., 0.)), // y-axis up. fFieldHalfAngle (0.), // Orthogonal projection. fZoomFactor (1.), + fScaleFactor (G4Vector3D (1., 1., 1.)), fCurrentTargetPoint (), fDolly (0.), fLightsMoveWithCamera (false), @@ -69,14 +70,20 @@ G4ViewParameters::G4ViewParameters (): fMarkerNotHidden (true), fWindowSizeHintX (600), fWindowSizeHintY (600), - fAutoRefresh (false) + fAutoRefresh (false), + fBackgroundColour (G4Colour(0.,0.,0.)) // Black { fDefaultMarker.SetScreenSize (5.); // Markers are 5 pixels "overall" size, i.e., diameter. } -G4ViewParameters::~G4ViewParameters () { -// Clear cutaway planes? Rogue Wave probably destroys OK. +G4ViewParameters::~G4ViewParameters () {} + +void G4ViewParameters::MultiplyScaleFactor +(const G4Vector3D& scaleFactorMultiplier) { + fScaleFactor.setX(fScaleFactor.x() * scaleFactorMultiplier.x()); + fScaleFactor.setY(fScaleFactor.y() * scaleFactorMultiplier.y()); + fScaleFactor.setZ(fScaleFactor.z() * scaleFactorMultiplier.z()); } G4Vector3D& G4ViewParameters::GetActualLightpointDirection () { @@ -247,6 +254,7 @@ void G4ViewParameters::PrintDifferences (const G4ViewParameters& v) const { (fUpVector != v.fUpVector) || (fFieldHalfAngle != v.fFieldHalfAngle) || (fZoomFactor != v.fZoomFactor) || + (fScaleFactor != v.fScaleFactor) || (fCurrentTargetPoint != v.fCurrentTargetPoint) || (fDolly != v.fDolly) || (fRelativeLightpointDirection != v.fRelativeLightpointDirection) || @@ -259,8 +267,11 @@ void G4ViewParameters::PrintDifferences (const G4ViewParameters& v) const { (fDefaultMarker != v.fDefaultMarker) || (fGlobalMarkerScale != v.fGlobalMarkerScale) || (fMarkerNotHidden != v.fMarkerNotHidden) || + (fWindowSizeHintX != v.fWindowSizeHintX) || (fWindowSizeHintY != v.fWindowSizeHintY) || - (fAutoRefresh != v.fAutoRefresh)) + (fXGeometryString != v.fXGeometryString) || + (fAutoRefresh != v.fAutoRefresh) || + (fBackgroundColour != v.fBackgroundColour)) G4cout << "Difference in 1st batch." << G4endl; if (fSection) { @@ -369,6 +380,8 @@ std::ostream& operator << (std::ostream& os, const G4ViewParameters& v) { os << "\n Zoom factor: " << v.fZoomFactor; + os << "\n Scale factor: " << v.fScaleFactor; + os << "\n Current target point: " << v.fCurrentTargetPoint; os << "\n Dolly distance: " << v.fDolly; @@ -427,10 +440,14 @@ std::ostream& operator << (std::ostream& os, const G4ViewParameters& v) { os << "\n Window size hint: " << v.fWindowSizeHintX << 'x'<< v.fWindowSizeHintX; + os << "\n X geometry string: " << v.fXGeometryString; + os << "\n Auto refresh: "; if (v.fAutoRefresh) os << "true"; else os << "false"; + os << "\n Background colour: " << v.fBackgroundColour; + return os; } @@ -456,6 +473,7 @@ G4bool G4ViewParameters::operator != (const G4ViewParameters& v) const { (fUpVector != v.fUpVector) || (fFieldHalfAngle != v.fFieldHalfAngle) || (fZoomFactor != v.fZoomFactor) || + (fScaleFactor != v.fScaleFactor) || (fCurrentTargetPoint != v.fCurrentTargetPoint) || (fDolly != v.fDolly) || (fRelativeLightpointDirection != v.fRelativeLightpointDirection) || @@ -470,7 +488,9 @@ G4bool G4ViewParameters::operator != (const G4ViewParameters& v) const { (fMarkerNotHidden != v.fMarkerNotHidden) || (fWindowSizeHintX != v.fWindowSizeHintX) || (fWindowSizeHintY != v.fWindowSizeHintY) || - (fAutoRefresh != v.fAutoRefresh)) + (fXGeometryString != v.fXGeometryString) || + (fAutoRefresh != v.fAutoRefresh) || + (fBackgroundColour != v.fBackgroundColour)) return true; if (fDensityCulling && diff --git a/source/visualization/management/src/G4ViewerList.cc b/source/visualization/management/src/G4ViewerList.cc index 91d51226f9..33f1de6475 100644 --- a/source/visualization/management/src/G4ViewerList.cc +++ b/source/visualization/management/src/G4ViewerList.cc @@ -22,7 +22,7 @@ // // // $Id: G4ViewerList.cc,v 1.3 2001/07/11 10:09:18 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ #include "G4ViewerList.hh" diff --git a/source/visualization/management/src/G4VisCommands.cc b/source/visualization/management/src/G4VisCommands.cc index 67ff5141b8..c49a449d40 100644 --- a/source/visualization/management/src/G4VisCommands.cc +++ b/source/visualization/management/src/G4VisCommands.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisCommands.cc,v 1.9 2005/03/03 16:13:08 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/ top level commands - John Allison 5th February 2001 diff --git a/source/visualization/management/src/G4VisCommandsCompound.cc b/source/visualization/management/src/G4VisCommandsCompound.cc index ac26bd8924..3bce42d0ef 100644 --- a/source/visualization/management/src/G4VisCommandsCompound.cc +++ b/source/visualization/management/src/G4VisCommandsCompound.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsCompound.cc,v 1.28 2005/03/03 16:13:08 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisCommandsCompound.cc,v 1.30 2005/11/13 15:34:41 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // Compound /vis/ commands - John Allison 15th May 2000 @@ -32,6 +32,8 @@ #include "G4UImanager.hh" #include "G4UIcmdWithAString.hh" +#include + ////////////// /vis/drawTree /////////////////////////////////////// G4VisCommandDrawTree::G4VisCommandDrawTree() { @@ -57,7 +59,7 @@ G4VisCommandDrawTree::~G4VisCommandDrawTree() { void G4VisCommandDrawTree::SetNewValue(G4UIcommand*, G4String newValue) { G4String pvname, system; - std::istrstream is(newValue); + std::istringstream is(newValue); is >> pvname >> system; G4UImanager* UImanager = G4UImanager::GetUIpointer(); @@ -133,7 +135,7 @@ void G4VisCommandDrawView::SetNewValue(G4UIcommand*, G4String newValue) { G4String zoomFactor; G4String dolly; G4String dollyUnit; - std::istrstream is(newValue); + std::istringstream is(newValue); is >> thetaDeg >> phiDeg >> panRight >> panUp >> panUnit >> zoomFactor >> dolly >> dollyUnit; @@ -227,9 +229,11 @@ G4VisCommandOpen::G4VisCommandOpen() { candidates = candidates.strip(); parameter->SetParameterCandidates(candidates); fpCommand->SetParameter(parameter); - parameter = new G4UIparameter("window-size-hint", 'i', omitable = true); - parameter->SetGuidance("pixels"); - parameter->SetDefaultValue(600); + parameter = new G4UIparameter("window-size-hint", 's', omitable = true); + parameter->SetGuidance + ("integer (pixels) for square window placed by window manager or" + " X-Windows-type geometry string, e.g. 600x600-100+100"); + parameter->SetDefaultValue("600"); fpCommand->SetParameter(parameter); } @@ -239,7 +243,7 @@ G4VisCommandOpen::~G4VisCommandOpen() { void G4VisCommandOpen::SetNewValue (G4UIcommand*, G4String newValue) { G4String systemName, windowSizeHint; - std::istrstream is(newValue); + std::istringstream is(newValue); is >> systemName >> windowSizeHint; G4UImanager* UImanager = G4UImanager::GetUIpointer(); G4int keepVerbose = UImanager->GetVerboseLevel(); diff --git a/source/visualization/management/src/G4VisCommandsScene.cc b/source/visualization/management/src/G4VisCommandsScene.cc index 61f51ed121..6375ca865c 100644 --- a/source/visualization/management/src/G4VisCommandsScene.cc +++ b/source/visualization/management/src/G4VisCommandsScene.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsScene.cc,v 1.42 2005/06/07 17:00:59 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisCommandsScene.cc,v 1.44 2005/11/22 17:14:44 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/scene commands - John Allison 9th August 1998 @@ -36,7 +36,7 @@ #include "G4UIcommand.hh" #include "G4UIcmdWithAString.hh" #include "G4ios.hh" -#include +#include G4VVisCommandScene::G4VVisCommandScene () {} @@ -66,10 +66,9 @@ G4VisCommandSceneCreate::~G4VisCommandSceneCreate () { } G4String G4VisCommandSceneCreate::NextName () { - char nextName [20]; - std::ostrstream ost (nextName, 20); - ost << "scene-" << fId << std::ends; - return nextName; + std::ostringstream oss; + oss << "scene-" << fId; + return oss.str(); } G4String G4VisCommandSceneCreate::GetCurrentValue (G4UIcommand*) { @@ -143,7 +142,7 @@ void G4VisCommandSceneEndOfEventAction::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String action; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> action; G4Scene* pScene = fpVisManager->GetCurrentScene(); @@ -219,7 +218,7 @@ void G4VisCommandSceneEndOfRunAction::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String action; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> action; G4Scene* pScene = fpVisManager->GetCurrentScene(); @@ -289,7 +288,7 @@ G4String G4VisCommandSceneList::GetCurrentValue (G4UIcommand*) { void G4VisCommandSceneList::SetNewValue (G4UIcommand*, G4String newValue) { G4String name, verbosityString; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> name >> verbosityString; G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosityValue(verbosityString); @@ -363,8 +362,8 @@ G4VisCommandSceneNotifyHandlers::G4VisCommandSceneNotifyHandlers () { "\n The default action \"refresh\" does not issue \"update\" (see" "\n /vis/viewer/update)." "\nIf \"flush\" is specified, it issues an \"update\" as well as" - "\n \"refresh\" - useful for refreshing and initiating post-processing" - "\n for graphics systems which need post-processing."); + "\n \"refresh\" - \"update\" and initiates post-processing" + "\n for graphics systems which need it."); fpCommand -> SetGuidance ("The default for is the current scene name."); fpCommand -> SetGuidance @@ -395,7 +394,7 @@ void G4VisCommandSceneNotifyHandlers::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String sceneName, refresh_flush; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> sceneName >> refresh_flush; G4bool flush(false); if (refresh_flush(0) == 'f') flush = true; diff --git a/source/visualization/management/src/G4VisCommandsSceneAdd.cc b/source/visualization/management/src/G4VisCommandsSceneAdd.cc index cdf4104fc7..816c9095b3 100644 --- a/source/visualization/management/src/G4VisCommandsSceneAdd.cc +++ b/source/visualization/management/src/G4VisCommandsSceneAdd.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneAdd.cc,v 1.56 2005/06/27 15:32:46 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisCommandsSceneAdd.cc,v 1.59 2005/11/22 17:17:37 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/scene commands - John Allison 9th August 1998 #include "G4VisCommandsSceneAdd.hh" @@ -49,13 +49,14 @@ #include "G4UnionSolid.hh" #include "G4SubtractionSolid.hh" #include "G4Polyhedron.hh" +#include "G4UImanager.hh" #include "G4UIcommand.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithoutParameter.hh" #include "G4Tokenizer.hh" #include "G4ios.hh" -#include +#include // Local function with some frequently used error printing... static void G4VisCommandsSceneAddUnsuccessful @@ -117,7 +118,7 @@ void G4VisCommandSceneAddAxes::SetNewValue (G4UIcommand*, G4String newValue) { G4String unitString; G4double x0, y0, z0, length; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> x0 >> y0 >> z0 >> length >> unitString; G4double unit = G4UIcommand::ValueOf(unitString); @@ -355,7 +356,7 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, G4String name; G4int requestedDepthOfDescent; G4bool booleans, voxels, readout; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> name >> requestedDepthOfDescent >> booleans >> voxels >> readout; G4LogicalVolumeStore *pLVStore = G4LogicalVolumeStore::GetInstance(); @@ -374,6 +375,30 @@ void G4VisCommandSceneAddLogicalVolume::SetNewValue (G4UIcommand*, return; } + const std::vector& rdModelList = pScene -> GetRunDurationModelList(); + std::vector::const_iterator i; + for (i = rdModelList.begin(); i != rdModelList.end(); ++i) { + if ((*i) -> GetGlobalDescription().find("Volume") != std::string::npos) break; + } + if (i != rdModelList.end()) { + if (verbosity >= G4VisManager::errors) { + G4cout << "There is already a volume, \"" + << (*i) -> GetGlobalDescription() + << "\",\n in the run-duration model list of scene \"" + << pScene -> GetName() + << "\".\n Your logical volume must be the only volume in the scene." + << "\n Create a new scene and try again:" + << "\n /vis/specify " << name + << "\n or" + << "\n /vis/scene/create" + << "\n /vis/scene/add/logicalVolume " << name + << "\n /vis/sceneHandler/attach" + << "\n (and also, if necessary, /vis/viewer/flush)" + << G4endl; + } + return; + } + G4VModel* model = new G4LogicalVolumeModel (pLV, requestedDepthOfDescent, booleans, voxels, readout); const G4String& currentSceneName = pScene -> GetName (); @@ -471,7 +496,7 @@ void G4VisCommandSceneAddLogo::SetNewValue (G4UIcommand*, G4String newValue) { G4double userHeight, red, green, blue, xmid, ymid, zmid; G4String userHeightUnit, direction, auto_manual, positionUnit; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> userHeight >> userHeightUnit >> direction >> red >> green >> blue >> auto_manual @@ -797,7 +822,7 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { G4double userLength, red, green, blue, xmid, ymid, zmid; G4String userLengthUnit, direction, auto_manual, positionUnit; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> userLength >> userLengthUnit >> direction >> red >> green >> blue >> auto_manual @@ -807,10 +832,9 @@ void G4VisCommandSceneAddScale::SetNewValue (G4UIcommand*, G4String newValue) { G4double unit = G4UIcommand::ValueOf(positionUnit); xmid *= unit; ymid *= unit; zmid *= unit; - char tempcharstring [50]; - std::ostrstream ost (tempcharstring, 50); - ost << userLength << ' ' << userLengthUnit << std::ends; - G4String annotation(tempcharstring); + std::ostringstream oss; + oss << userLength << ' ' << userLengthUnit; + G4String annotation(oss.str()); G4Scale::Direction scaleDirection (G4Scale::x); if (direction(0) == 'y') scaleDirection = G4Scale::y; @@ -1123,11 +1147,22 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, } G4int drawingMode; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> drawingMode; G4TrajectoriesModel* model = new G4TrajectoriesModel(drawingMode); const G4String& currentSceneName = pScene -> GetName (); pScene -> AddEndOfEventModel (model, warn); + + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + G4int keepVerbose = UImanager->GetVerboseLevel(); + G4int newVerbose = 0; + if (keepVerbose >= 2 || + fpVisManager->GetVerbosity() >= G4VisManager::confirmations) + newVerbose = 2; + UImanager->SetVerboseLevel(newVerbose); + UImanager->ApplyCommand("/tracking/storeTrajectory 1"); + UImanager->SetVerboseLevel(keepVerbose); + if (verbosity >= G4VisManager::confirmations) { G4cout << "Trajectories will be drawn with mode " << drawingMode @@ -1135,6 +1170,10 @@ void G4VisCommandSceneAddTrajectories::SetNewValue (G4UIcommand*, << currentSceneName << "\"." << G4endl; } + if (verbosity >= G4VisManager::warnings) { + G4cout << "WARNING: \"/tracking/storeTrajectory 1\" has been executed." + << G4endl; + } } ////////////// /vis/scene/add/userAction /////////////////////////////////// @@ -1208,7 +1247,7 @@ void G4VisCommandSceneAddUserAction::SetNewValue (G4UIcommand*, G4String unitString; G4double xmin, xmax, ymin, ymax, zmin, zmax; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> xmin >> xmax >> ymin >> ymax >> zmin >> zmax >> unitString; G4double unit = G4UIcommand::ValueOf(unitString); xmin *= unit; xmax *= unit; @@ -1281,7 +1320,8 @@ G4VisCommandSceneAddVolume::G4VisCommandSceneAddVolume () { parameter -> SetDefaultValue ("none"); parameter -> SetGuidance ("For \"box\", the parameters are xmin,xmax,ymin,ymax,zmin,zmax." - "\n Only \"box\" is programmed at present."); + // "\n Only \"box\" is programmed at present."); No '\n' for GAG (temp). + " Only \"box\" is programmed at present."); fpCommand -> SetParameter (parameter); parameter = new G4UIparameter ("parameter-unit", 's', omitable = true); parameter -> SetDefaultValue ("m"); @@ -1331,7 +1371,7 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, G4String name, clipVolumeType, parameterUnit; G4int copyNo, requestedDepthOfDescent; G4double param1, param2, param3, param4, param5, param6; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> name >> copyNo >> requestedDepthOfDescent >> clipVolumeType >> parameterUnit >> param1 >> param2 >> param3 >> param4 >> param5 >> param6; @@ -1346,6 +1386,31 @@ void G4VisCommandSceneAddVolume::SetNewValue (G4UIcommand*, G4VPhysicalVolume* foundVolume = 0; G4int foundDepth = 0; + const std::vector& rdModelList = pScene -> GetRunDurationModelList(); + std::vector::const_iterator i; + for (i = rdModelList.begin(); i != rdModelList.end(); ++i) { + if ((*i) -> GetGlobalDescription().find("G4PhysicalVolumeModel") + != std::string::npos) { + if (((G4PhysicalVolumeModel*)(*i)) -> GetTopPhysicalVolume () == world) break; + } + } + if (i != rdModelList.end()) { + if (verbosity >= G4VisManager::warnings) { + G4cout << "WARNING: There is already a volume, \"" + << (*i) -> GetGlobalDescription() + << "\",\n in the run-duration model list of scene \"" + << pScene -> GetName() + << "\".\n To get a clean scene:" + << "\n /vis/drawVolume " << name + << "\n or" + << "\n /vis/scene/create" + << "\n /vis/scene/add/volume " << name + << "\n /vis/sceneHandler/attach" + << "\n (and also, if necessary, /vis/viewer/flush)" + << G4endl; + } + } + if (name == "world") { if (world) { model = new G4PhysicalVolumeModel (world, diff --git a/source/visualization/management/src/G4VisCommandsSceneHandler.cc b/source/visualization/management/src/G4VisCommandsSceneHandler.cc index 1aa0b6316a..3268d886fc 100644 --- a/source/visualization/management/src/G4VisCommandsSceneHandler.cc +++ b/source/visualization/management/src/G4VisCommandsSceneHandler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsSceneHandler.cc,v 1.27 2005/03/10 19:33:03 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisCommandsSceneHandler.cc,v 1.29 2005/11/22 17:23:52 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/sceneHandler commands - John Allison 10th October 1998 @@ -35,7 +35,7 @@ #include "G4UIcommand.hh" #include "G4UIcmdWithAString.hh" #include "G4ios.hh" -#include +#include ////////////// /vis/sceneHandler/attach /////////////////////////////////////// @@ -86,8 +86,7 @@ void G4VisCommandSceneHandlerAttach::SetNewValue (G4UIcommand*, return; } - G4SceneList& sceneList = - fpVisManager -> SetSceneList (); + G4SceneList& sceneList = fpVisManager -> SetSceneList (); if (sceneList.empty ()) { if (verbosity >= G4VisManager::errors) { @@ -105,12 +104,22 @@ void G4VisCommandSceneHandlerAttach::SetNewValue (G4UIcommand*, if (iScene < nScenes) { G4Scene* pScene = sceneList [iScene]; pSceneHandler -> SetScene (pScene); - UpdateVisManagerScene(sceneName); + // Make sure scene is current... + fpVisManager -> SetCurrentScene (pScene); + // Refresh viewer, if any (only if auto-refresh)... + G4VViewer* pViewer = pSceneHandler -> GetCurrentViewer(); + if (pViewer && pViewer -> GetViewParameters().IsAutoRefresh()) { + pViewer -> SetView (); + pViewer -> ClearView (); + pViewer -> DrawView (); + } if (verbosity >= G4VisManager::confirmations) { G4cout << "Scene \"" << sceneName << "\" attached to scene handler \"" - << pSceneHandler -> GetName () - << "." << G4endl; + << pSceneHandler -> GetName () << + ".\n (You may have to refresh with \"/vis/viewer/flush\" if view" + " is not \"auto-refresh\".)" + << G4endl; } } else { @@ -164,10 +173,9 @@ G4VisCommandSceneHandlerCreate::~G4VisCommandSceneHandlerCreate () { } G4String G4VisCommandSceneHandlerCreate::NextName () { - char nextName [20]; - std::ostrstream ost (nextName, 20); - ost << "scene-handler-" << fId << std::ends; - return nextName; + std::ostringstream oss; + oss << "scene-handler-" << fId; + return oss.str(); } G4String G4VisCommandSceneHandlerCreate::GetCurrentValue(G4UIcommand*) { @@ -198,7 +206,7 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand*, G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String graphicsSystem, newName; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> graphicsSystem >> newName; const G4GraphicsSystemList& gsl = @@ -263,8 +271,19 @@ void G4VisCommandSceneHandlerCreate::SetNewValue (G4UIcommand*, //Create scene handler. fpVisManager -> CreateSceneHandler (newName); - if (fpVisManager -> GetCurrentSceneHandler () -> GetName () != newName) + if (fpVisManager -> GetCurrentSceneHandler () -> GetName () != newName) { + if (verbosity >= G4VisManager::errors) { + G4cout << "ERROR: G4VisCommandSceneHandlerCreate::SetNewValue:" + " Curious name mismatch." + "\n Current name \"" + << fpVisManager -> GetCurrentSceneHandler () -> GetName () + << "\" is not the new name \"" + << newName + << "\".\n Please report to vis coordinator." + << G4endl; + } return; + } if (verbosity >= G4VisManager::confirmations) { G4cout << "New scene handler \"" << newName << "\" created." << G4endl; @@ -303,7 +322,7 @@ G4String G4VisCommandSceneHandlerList::GetCurrentValue (G4UIcommand*) { void G4VisCommandSceneHandlerList::SetNewValue (G4UIcommand*, G4String newValue) { G4String name, verbosityString; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> name >> verbosityString; G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosityValue(verbosityString); diff --git a/source/visualization/management/src/G4VisCommandsViewer.cc b/source/visualization/management/src/G4VisCommandsViewer.cc index 3c980bc78c..ceb295fa79 100644 --- a/source/visualization/management/src/G4VisCommandsViewer.cc +++ b/source/visualization/management/src/G4VisCommandsViewer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewer.cc,v 1.45 2005/03/16 17:55:02 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisCommandsViewer.cc,v 1.53 2005/11/22 17:00:15 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/viewer commands - John Allison 25th October 1998 @@ -36,9 +36,10 @@ #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithADouble.hh" #include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWith3Vector.hh" #include "G4UnitsTable.hh" #include "G4ios.hh" -#include +#include G4VVisCommandViewer::G4VVisCommandViewer () {} @@ -127,9 +128,11 @@ G4VisCommandViewerCreate::G4VisCommandViewerCreate (): fId (0) { parameter = new G4UIparameter ("viewer-name", 's', omitable = true); parameter -> SetCurrentAsDefault (true); fpCommand -> SetParameter (parameter); - parameter = new G4UIparameter ("window-size-hint", 'i', omitable = true); - parameter -> SetGuidance ("pixels"); - parameter -> SetDefaultValue (600); + parameter = new G4UIparameter ("window-size-hint", 's', omitable = true); + parameter->SetGuidance + ("integer (pixels) for square window placed by window manager or" + " X-Windows-type geometry string, e.g. 600x600-100+100"); + parameter->SetDefaultValue("600"); fpCommand -> SetParameter (parameter); } @@ -138,19 +141,17 @@ G4VisCommandViewerCreate::~G4VisCommandViewerCreate () { } G4String G4VisCommandViewerCreate::NextName () { - const int charLength = 100; - char nextName [charLength]; - std::ostrstream ost (nextName, charLength); + std::ostringstream oss; G4VSceneHandler* sceneHandler = fpVisManager -> GetCurrentSceneHandler (); - ost << "viewer-" << fId << " ("; + oss << "viewer-" << fId << " ("; if (sceneHandler) { - ost << sceneHandler -> GetGraphicsSystem () -> GetName (); + oss << sceneHandler -> GetGraphicsSystem () -> GetName (); } else { - ost << "no_scene_handlers"; + oss << "no_scene_handlers"; } - ost << ")" << std::ends; - return nextName; + oss << ")"; + return oss.str(); } G4String G4VisCommandViewerCreate::GetCurrentValue (G4UIcommand*) { @@ -178,8 +179,8 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand*, G4String newValue) { G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String sceneHandlerName, newName; - G4int windowSizeHint; - std::istrstream is (newValue); + G4String windowSizeHintString; + std::istringstream is (newValue); is >> sceneHandlerName; // Now need to handle the possibility that the second string @@ -196,8 +197,8 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand*, G4String newValue) { newName = newName.strip (G4String::both, ' '); newName = newName.strip (G4String::both, '"'); - // Now get number of pixels... - is >> windowSizeHint; + // Now get window size hint... + is >> windowSizeHintString; const G4SceneHandlerList& sceneHandlerList = fpVisManager -> GetAvailableSceneHandlers (); @@ -257,26 +258,61 @@ void G4VisCommandViewerCreate::SetNewValue (G4UIcommand*, G4String newValue) { } } + // Parse windowSizeHintString to extract first field for backwards + // compatibility... + std::istringstream issw; + G4int windowSizeHint; + size_t i; + for (i = 0; i < windowSizeHintString.size(); ++i) { + char c = windowSizeHintString[i]; + if (c == 'x' || c == 'X' || c == '+' || c == '-') break; + } + if (i != windowSizeHintString.size()) { + // x or X or + or - found - must be a X-Window-type geometry string... + // Pick out the first field for backwards compatibility... + issw.str(windowSizeHintString.substr(0,i)); + issw >> windowSizeHint; + } else { // ...old-style integer... + issw.str(windowSizeHintString); + if (!(issw >> windowSizeHint)) { + if (verbosity >= G4VisManager::errors) { + G4cout << "ERROR: Unrecognised geometry string \"" + << windowSizeHintString + << "\". Using 600." + << G4endl; + } + windowSizeHint = 600; + } + // Reconstitute windowSizeHintString... + std::ostringstream ossw; + ossw << windowSizeHint << 'x' << windowSizeHint; + windowSizeHintString = ossw.str(); + } fpVisManager->SetWindowSizeHint (windowSizeHint, windowSizeHint); - // These are picked up in the G4VViewer constructor. The problem is - // these have to be set *before* construction, i.e., before we have - // a viewer. + fpVisManager->SetXGeometryString(windowSizeHintString); + // WindowSizeHint and XGeometryString are picked up from the vis + // manager in the G4VViewer constructor. They have to be held by + // the vis manager until the viewer is contructed - next line... // Create viewer. fpVisManager -> CreateViewer (newName); G4VViewer* newViewer = fpVisManager -> GetCurrentViewer (); - if (newViewer -> GetName () == newName) { + if (newViewer && newViewer -> GetName () == newName) { if (verbosity >= G4VisManager::confirmations) { G4cout << "New viewer \"" << newName << "\" created." << G4endl; } } else { if (verbosity >= G4VisManager::errors) { - G4cout << "ERROR: New viewer doesn\'t match!!! Curious!!" << G4endl; + if (newViewer) { + G4cout << "ERROR: New viewer doesn\'t match!!! Curious!!" << G4endl; + } else { + G4cout << "WARNING: No viewer created." << G4endl; + } } } // Refresh if appropriate... - SetViewParameters(newViewer, newViewer->GetViewParameters()); + if (newViewer) SetViewParameters(newViewer, newViewer->GetViewParameters()); } ////////////// /vis/viewer/dolly and dollyTo //////////////////////////// @@ -446,7 +482,7 @@ G4String G4VisCommandViewerList::GetCurrentValue (G4UIcommand*) { void G4VisCommandViewerList::SetNewValue (G4UIcommand*, G4String newValue) { G4String name, verbosityString; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> name >> verbosityString; G4String shortName = fpVisManager -> ViewerShortName (name); G4VisManager::Verbosity verbosity = @@ -614,6 +650,53 @@ void G4VisCommandViewerPan::SetNewValue (G4UIcommand* command, SetViewParameters(currentViewer, vp); } +////////////// /vis/viewer/rebuild /////////////////////////////////////// + +G4VisCommandViewerRebuild::G4VisCommandViewerRebuild () { + G4bool omitable, currentAsDefault; + fpCommand = new G4UIcmdWithAString ("/vis/viewer/rebuild", this); + fpCommand -> SetGuidance ("Forces rebuild of graphical database."); + fpCommand -> SetGuidance + ("By default, acts on current viewer. \"/vis/viewer/list\"" + "\nto see possible viewers. Viewer becomes current."); + fpCommand -> SetParameterName ("viewer-name", + omitable = true, + currentAsDefault = true); +} + +G4VisCommandViewerRebuild::~G4VisCommandViewerRebuild () { + delete fpCommand; +} + +G4String G4VisCommandViewerRebuild::GetCurrentValue (G4UIcommand*) { + G4VViewer* viewer = fpVisManager -> GetCurrentViewer (); + if (viewer) { + return viewer -> GetName (); + } + else { + return "none"; + } +} + +void G4VisCommandViewerRebuild::SetNewValue (G4UIcommand*, G4String newValue) { + + G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); + + G4String& rebuildName = newValue; + G4VViewer* viewer = fpVisManager -> GetViewer (rebuildName); + if (!viewer) { + if (verbosity >= G4VisManager::errors) { + G4cout << "ERROR: Viewer \"" << rebuildName + << "\" not found - \"/vis/viewer/list\" to see possibilities." + << G4endl; + } + return; + } + + viewer->SetNeedKernelVisit(true); + SetViewParameters(viewer, viewer->GetDefaultViewParameters()); +} + ////////////// /vis/viewer/refresh /////////////////////////////////////// G4VisCommandViewerRefresh::G4VisCommandViewerRefresh () { @@ -691,8 +774,8 @@ void G4VisCommandViewerRefresh::SetNewValue (G4UIcommand*, G4String newValue) { G4cout << "Refreshing viewer \"" << viewer -> GetName () << "\"..." << G4endl; } - //??viewer -> SetView (); - //??viewer -> ClearView (); + viewer -> SetView (); + viewer -> ClearView (); viewer -> DrawView (); if (verbosity >= G4VisManager::confirmations) { G4cout << "Viewer \"" << viewer -> GetName () << "\"" << " refreshed." @@ -746,6 +829,86 @@ void G4VisCommandViewerReset::SetNewValue (G4UIcommand*, G4String newValue) { SetViewParameters(viewer, viewer->GetDefaultViewParameters()); } +////////////// /vis/viewer/scale and scaleTo //////////////////////////// + +G4VisCommandViewerScale::G4VisCommandViewerScale (): + fScaleMultiplier (G4Vector3D (1., 1., 1.)), + fScaleTo (G4Vector3D (1., 1., 1.)) +{ + G4bool omitable, currentAsDefault; + + fpCommandScale = new G4UIcmdWith3Vector + ("/vis/viewer/scale", this); + fpCommandScale -> SetGuidance ("Incremental (non-uniform) scaling."); + fpCommandScale -> SetGuidance + ("Multiplies components of current scaling by components of this factor." + "\n Scales (x,y,z) by corresponding components of the resulting factor."); + fpCommandScale -> SetGuidance + (""); + fpCommandScale -> SetParameterName + ("x-scale-multiplier","y-scale-multiplier","z-scale-multiplier", + omitable=true, currentAsDefault=true); + + fpCommandScaleTo = new G4UIcmdWith3Vector + ("/vis/viewer/scaleTo", this); + fpCommandScaleTo -> SetGuidance ("Absolute (non-uniform) scaling."); + fpCommandScaleTo -> SetGuidance + ("Scales (x,y,z) by corresponding components of this factor."); + fpCommandScaleTo -> SetParameterName + ("x-scale-factor","y-scale-factor","z-scale-factor", + omitable=true, currentAsDefault=true); +} + +G4VisCommandViewerScale::~G4VisCommandViewerScale () { + delete fpCommandScale; + delete fpCommandScaleTo; +} + +G4String G4VisCommandViewerScale::GetCurrentValue (G4UIcommand* command) { + G4String currentValue; + if (command == fpCommandScale) { + currentValue = fpCommandScale->ConvertToString(G4ThreeVector(fScaleMultiplier)); + } + else if (command == fpCommandScaleTo) { + currentValue = fpCommandScaleTo->ConvertToString(G4ThreeVector(fScaleTo)); + } + return currentValue; +} + +void G4VisCommandViewerScale::SetNewValue (G4UIcommand* command, + G4String newValue) { + + + G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); + + G4VViewer* currentViewer = fpVisManager->GetCurrentViewer(); + if (!currentViewer) { + if (verbosity >= G4VisManager::errors) { + G4cout << + "ERROR: G4VisCommandsViewerScale::SetNewValue: no current viewer." + << G4endl; + } + return; + } + + G4ViewParameters vp = currentViewer->GetViewParameters(); + + if (command == fpCommandScale) { + fScaleMultiplier = fpCommandScale->GetNew3VectorValue(newValue); + vp.MultiplyScaleFactor(fScaleMultiplier); + } + else if (command == fpCommandScaleTo) { + fScaleTo = fpCommandScale->GetNew3VectorValue(newValue); + vp.SetScaleFactor(fScaleTo); + } + + if (verbosity >= G4VisManager::confirmations) { + G4cout << "Scale factor changed to " << vp.GetScaleFactor() << G4endl; + } + + SetViewParameters(currentViewer, vp); +} + ////////////// /vis/viewer/select /////////////////////////////////////// G4VisCommandViewerSelect::G4VisCommandViewerSelect () { @@ -830,7 +993,16 @@ void G4VisCommandViewerUpdate::SetNewValue (G4UIcommand*, G4String newValue) { G4VisManager::Verbosity verbosity = fpVisManager->GetVerbosity(); G4String& updateName = newValue; + G4VViewer* viewer = fpVisManager -> GetViewer (updateName); + if (!viewer) { + if (verbosity >= G4VisManager::errors) { + G4cout << + "ERROR: G4VisCommandsViewerUpdate::SetNewValue: no current viewer." + << G4endl; + } + return; + } G4VSceneHandler* sceneHandler = viewer->GetSceneHandler(); if (!sceneHandler) { diff --git a/source/visualization/management/src/G4VisCommandsViewerSet.cc b/source/visualization/management/src/G4VisCommandsViewerSet.cc index 33825c39e1..4afffa8676 100644 --- a/source/visualization/management/src/G4VisCommandsViewerSet.cc +++ b/source/visualization/management/src/G4VisCommandsViewerSet.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VisCommandsViewerSet.cc,v 1.34 2005/05/06 08:46:50 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisCommandsViewerSet.cc,v 1.38 2005/11/13 15:37:24 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // /vis/viewer/set commands - John Allison 16th May 2000 @@ -37,6 +37,9 @@ #include "G4VisManager.hh" #include "G4Polyhedron.hh" +#include +#include + G4VisCommandsViewerSet::G4VisCommandsViewerSet (): fLightsVector (G4ThreeVector(1.,1.,1.)), fUpVector (G4ThreeVector(0.,1.,0.)), @@ -299,6 +302,29 @@ G4VisCommandsViewerSet::G4VisCommandsViewerSet (): parameter = new G4UIparameter ("z", 'd', omitable = true); parameter -> SetDefaultValue (1.); fpCommandViewpointVector -> SetParameter (parameter); + + fpCommandBackground = new G4UIcommand + ("/vis/viewer/set/background",this); + fpCommandBackground->SetGuidance + ("Set background colour and transparency (default black and opaque)."); + fpCommandBackground->SetGuidance + ("Accepts (a) RGB triplet. e.g., \".3 .4 .5\", or" + "\n(b) string such as \"white\", \"black\", \"grey\", \"red\"..." + "\n(c) an additional number for opacity, e.g., \".3 .4 .5 .6\"" + "\n or \"grey ! ! .6\" (note \"!\"'s for unused green and blue parameters)," + "\n e.g. \"! ! ! 0.\" for a transparent background."); + parameter = new G4UIparameter("red_or_string", 's', omitable = true); + parameter -> SetDefaultValue ("0."); + fpCommandBackground -> SetParameter (parameter); + parameter = new G4UIparameter("green", 'd', omitable = true); + parameter -> SetDefaultValue (0.); + fpCommandBackground -> SetParameter (parameter); + parameter = new G4UIparameter ("blue", 'd', omitable = true); + parameter -> SetDefaultValue (0.); + fpCommandBackground -> SetParameter (parameter); + parameter = new G4UIparameter ("opacity", 'd', omitable = true); + parameter -> SetDefaultValue (1.); + fpCommandBackground -> SetParameter (parameter); } G4VisCommandsViewerSet::~G4VisCommandsViewerSet() { @@ -321,6 +347,7 @@ G4VisCommandsViewerSet::~G4VisCommandsViewerSet() { delete fpCommandUpVector; delete fpCommandViewpointThetaPhi; delete fpCommandViewpointVector; + delete fpCommandBackground; } G4String G4VisCommandsViewerSet::GetCurrentValue(G4UIcommand*) { @@ -401,7 +428,7 @@ void G4VisCommandsViewerSet::SetNewValue G4String cullingOption, stringFlag, unit; G4double density; G4bool boolFlag; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> cullingOption >> stringFlag >> density >> unit; boolFlag = G4UIcommand::ConvertToBool(stringFlag); if (cullingOption == "global") { @@ -617,14 +644,14 @@ void G4VisCommandsViewerSet::SetNewValue else if (command == fpCommandProjection) { G4double fieldHalfAngle; - size_t iPos = 0; - if (newValue[iPos] == 'o') { // "orthogonal" + const size_t iPos0 = 0; + if (newValue[iPos0] == 'o') { // "orthogonal" fieldHalfAngle = 0.; } - else if (newValue[iPos] == 'p') { // "perspective" + else if (newValue[iPos0] == 'p') { // "perspective" G4String dummy; G4String unit; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> dummy >> fieldHalfAngle >> unit; fieldHalfAngle *= G4UIcommand::ValueOf(unit); if (fieldHalfAngle > 89.5 * deg || fieldHalfAngle <= 0.0) { @@ -661,7 +688,7 @@ void G4VisCommandsViewerSet::SetNewValue else if (command == fpCommandSectionPlane) { G4String choice, unit; G4double x, y, z, nx, ny, nz; - std::istrstream is (newValue); + std::istringstream is (newValue); is >> choice >> x >> y >> z >> unit >> nx >> ny >> nz; G4int iSelector = -1; @@ -712,8 +739,8 @@ void G4VisCommandsViewerSet::SetNewValue else if (command == fpCommandStyle) { G4ViewParameters::DrawingStyle existingStyle = vp.GetDrawingStyle(); - size_t iPos = 0; - if (newValue[iPos] == 'w') { // "wireframe" + const size_t iPos0 = 0; + if (newValue[iPos0] == 'w') { // "wireframe" switch (existingStyle) { case G4ViewParameters::wireframe: break; @@ -727,7 +754,7 @@ void G4VisCommandsViewerSet::SetNewValue break; } } - else if (newValue[iPos] == 's') { // "surface" + else if (newValue[iPos0] == 's') { // "surface" switch (existingStyle) { case G4ViewParameters::wireframe: vp.SetDrawingStyle(G4ViewParameters::hsr); @@ -807,6 +834,29 @@ void G4VisCommandsViewerSet::SetNewValue } } + else if (command == fpCommandBackground) { + G4String redOrString; + G4double green, blue, opacity; + std::istringstream iss(newValue); + iss >> redOrString >> green >> blue >> opacity; + G4Colour colour(0.,0.,0.); // Default black and opaque. + const size_t iPos0 = 0; + if (std::isalpha(redOrString[iPos0])) { + G4Colour::GetColour(redOrString, colour); // Remains default (black) if + // not found. + } else { + colour = G4Colour(G4UIcommand::ConvertTo3Vector(newValue)); + } + colour = G4Colour(colour.GetRed(), colour.GetGreen(), colour.GetBlue(), opacity); + vp.SetBackgroundColour(colour); + if (verbosity >= G4VisManager::confirmations) { + G4cout << "Background colour " + << vp.GetBackgroundColour() + << " requested." + << G4endl; + } + } + else { if (verbosity >= G4VisManager::errors) { G4cout << diff --git a/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc b/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc index b66a088008..b85cb3458e 100644 --- a/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc +++ b/source/visualization/management/src/G4VisFeaturesOfDAWNFILE.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfDAWNFILE.cc,v 1.5 2001/07/11 10:09:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // #include "G4VisFeaturesOfDAWNFILE.hh" diff --git a/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc b/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc index 48eb1e237b..bee70ae820 100644 --- a/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc +++ b/source/visualization/management/src/G4VisFeaturesOfFukuiRenderer.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfFukuiRenderer.cc,v 1.4 2001/07/11 10:09:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc b/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc index c5887a2d85..d992b8c532 100644 --- a/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc +++ b/source/visualization/management/src/G4VisFeaturesOfOpenGL.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfOpenGL.cc,v 1.4 2001/07/11 10:09:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc b/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc index ee78cd2a20..a151fc1947 100644 --- a/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc +++ b/source/visualization/management/src/G4VisFeaturesOfOpenInventor.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisFeaturesOfOpenInventor.cc,v 1.4 2001/07/11 10:09:19 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // diff --git a/source/visualization/management/src/G4VisManager.cc b/source/visualization/management/src/G4VisManager.cc index 5de7c2eaa5..8189935671 100644 --- a/source/visualization/management/src/G4VisManager.cc +++ b/source/visualization/management/src/G4VisManager.cc @@ -20,9 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4VisManager.cc,v 1.63 2005/03/09 23:48:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VisManager.cc,v 1.78 2005/12/04 01:36:17 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // GEANT4 Visualization Manager - John Allison 02/Jan/1996. @@ -58,6 +57,13 @@ #include "G4NullModel.hh" #include "G4ModelingParameters.hh" #include "G4TransportationManager.hh" +#include "G4VisListManager.hh" +#include "G4VisCommandModelCreate.hh" +#include "G4VisCommandsListManager.hh" +#include "G4VModelFactory.hh" +#include "G4VTrajectoryModel.hh" +#include "G4TrajectoryDrawByCharge.hh" +#include G4VisManager* G4VisManager::fpInstance = 0; @@ -70,7 +76,10 @@ G4VisManager::G4VisManager (): fpViewer (0), fVerbosity (warnings), fVerbose (1), - fpStateDependent (0) // All other objects use default constructors. + fpStateDependent (0), + fTrajectoryPlacement("/vis/modeling/trajectories"), + fpTrajectoryModelMgr(new G4TrajectoryModelManager()) + // All other objects use default constructors. { VerbosityGuidanceStrings.push_back ("Simple graded message scheme - digit or string (1st character defines):"); @@ -96,6 +105,7 @@ G4VisManager::G4VisManager (): else { fpInstance = this; + SetConcreteInstance(this); fpStateDependent = new G4VisStateDependent (this); // No need to delete this; G4StateManager does this. @@ -108,20 +118,21 @@ G4VisManager::G4VisManager (): // higher level library to avoid circular dependencies. Also, // some specifically need additional external libararies that the // user must supply. Therefore we ask the user to implement - // RegisterGraphicsSystems() in a subclass. We have to wait for - // the subclass to instantiate so RegisterGraphicsSystems() cannot - // be called from this constructor; it is called from - // Initialise(). So we ask the user: - // (a) to write a subclass and implement - // RegisterGraphicsSystems(). See - // visualization/include/MyVisManager.hh/cc as an example. + // RegisterGraphicsSystems() and RegisterModelFactories() + // in a subclass. We have to wait for the subclass to instantiate + // so RegisterGraphicsSystems() cannot be called from this + // constructor; it is called from Initialise(). So we ask the + // user: + // (a) to write a subclass and implement RegisterGraphicsSystems() + // and RegisterModelFactories(). See + // visualization/include/G4VisExecutive.hh/icc as an example. // (b) instantiate the subclass. // (c) invoke the Initialise() method of the subclass. // For example: // ... // #ifdef G4VIS_USE // // Instantiate and initialise Visualization Manager. - // G4VisManager* visManager = new MyVisManager; + // G4VisManager* visManager = new G4VisExecutive; // visManager -> SetVerboseLevel (Verbose); // visManager -> Initialise (); // #endif @@ -152,6 +163,12 @@ G4VisManager::~G4VisManager () { for (i = 0; i < fDirectoryList.size (); ++i) { delete fDirectoryList[i]; } + + for (i = 0; i < fTrajectoryModelFactoryList.size(); ++i) { + delete fTrajectoryModelFactoryList[i]; + } + + delete fpTrajectoryModelMgr; } G4VisManager* G4VisManager::GetInstance () { @@ -175,14 +192,16 @@ void G4VisManager::Initialise () { "\n you should, normally, instantiate drivers which do not need" "\n external packages or libraries, and, optionally, drivers under" "\n control of environment variables." - "\n See visualization/include/MyVisManager.hh/cc, for example." + "\n Also you should implement RegisterModelFactories()." + "\n See visualization/include/G4VisExecutive.hh/icc, for example." "\n In your main() you will have something like:" "\n #ifdef G4VIS_USE" - "\n G4VisManager* visManager = new MyVisManager;" + "\n G4VisManager* visManager = new G4VisExecutive;" "\n visManager -> SetVerboseLevel (Verbose);" "\n visManager -> Initialize ();" "\n #endif" "\n (Don't forget to delete visManager;)" + "\n" << G4endl; } @@ -192,15 +211,40 @@ void G4VisManager::Initialise () { RegisterGraphicsSystems (); - if (fVerbosity >= confirmations) { + if (fVerbosity >= startup) { G4cout << "\nYou have successfully chosen to use the following graphics systems." << G4endl; PrintAvailableGraphicsSystems (); + G4cout << G4endl; } + // Make top level directory... + G4UIcommand* directory; + directory = new G4UIdirectory ("/vis/"); + directory -> SetGuidance ("Visualization commands."); + fDirectoryList.push_back (directory); + + // ... and make command directory for commands instantiated in the + // modeling subcategory... + directory = new G4UIdirectory ("/vis/modeling/"); + directory -> SetGuidance ("Modeling commands."); + fDirectoryList.push_back (directory); + directory = new G4UIdirectory ("/vis/modeling/trajectories/"); + directory -> SetGuidance ("Trajectory model commands."); + fDirectoryList.push_back (directory); + directory = new G4UIdirectory ("/vis/modeling/trajectories/create/"); + directory -> SetGuidance ("Create trajectory models and messengers."); + fDirectoryList.push_back (directory); + RegisterMessengers (); + if (fVerbosity >= startup) { + G4cout << "Registering model factories..." << G4endl; + } + + RegisterModelFactories(); + fInitialised = true; } @@ -226,6 +270,7 @@ void G4VisManager::Disable() { if (fVerbosity >= confirmations) { G4cout << "G4VisManager::Disable: visualization disabled." + "\n The pointer returned by GetConcreteInstance will be zero." "\n Note that it will become enabled after some valid vis commands." << G4endl; } @@ -252,7 +297,7 @@ const G4GraphicsSystemList& G4VisManager::GetAvailableGraphicsSystems () { } G4bool G4VisManager::RegisterGraphicsSystem (G4VGraphicsSystem* pSystem) { - G4bool happy(true); + G4bool happy = true; if (pSystem) { fAvailableGraphicsSystems.push_back (pSystem); if (fVerbosity >= confirmations) { @@ -267,13 +312,33 @@ G4bool G4VisManager::RegisterGraphicsSystem (G4VGraphicsSystem* pSystem) { else { if (fVerbosity >= errors) { G4cout << "G4VisManager::RegisterGraphicsSystem: null pointer!" - <Register(model); +} + +void +G4VisManager::RegisterModelFactory(G4TrajectoryModelFactory* factory) +{ + // vis manager takes ownership + fTrajectoryModelFactoryList.push_back(factory); + + // Create messenger for this factory + RegisterMessenger(new G4VisCommandModelCreate(factory, fTrajectoryPlacement)); +} + +void G4VisManager::SelectTrajectoryModel(const G4String& model) +{ + fpTrajectoryModelMgr->SetCurrent(model); +} + void G4VisManager::Draw (const G4Circle& circle, const G4Transform3D& objectTransform) { if (IsValidView ()) { @@ -441,8 +506,6 @@ void G4VisManager::CreateViewer (G4String name) { fpViewer -> Initialise (); fpSceneHandler -> AddViewerToList (fpViewer); fpSceneHandler -> SetCurrentViewer (fpViewer); - // Make it possible for user action code to Draw. - SetConcreteInstance(this); const G4ViewParameters& vp = fpViewer->GetViewParameters(); G4bool warn = false; @@ -572,6 +635,29 @@ void G4VisManager::GeometryHasChanged () { } +void G4VisManager::DispatchToModel(const G4VTrajectory& trajectory, G4int i_mode) +{ + assert (0 != fpTrajectoryModelMgr); + + const G4VTrajectoryModel* model = fpTrajectoryModelMgr->Current(); + + if (0 == model) { + // No model was registered with the trajectory model manager. + // Use G4TrajectoryDrawByCharge as a default. + fpTrajectoryModelMgr->Register(new G4TrajectoryDrawByCharge()); + + if (fVerbosity >= warnings) { + G4cout<<"G4VisManager: Using G4TrajectoryDrawByCharge as default trajectory model."<Current(); + assert (0 != model); // Should definitely exist now + + model->Draw(trajectory, i_mode); +} + void G4VisManager::SetUserAction (G4VUserVisAction* pVisAction, const G4VisExtent& extent) { @@ -625,15 +711,11 @@ void G4VisManager::SetCurrentGraphicsSystem (G4VGraphicsSystem* pSystem) { } else { fpViewer = 0; - // Make it impossible for user action code to Draw. - SetConcreteInstance(0); } } else { fpSceneHandler = 0; fpViewer = 0; - // Make it impossible for user action code to Draw. - SetConcreteInstance(0); } } } @@ -676,8 +758,6 @@ void G4VisManager::SetCurrentSceneHandler (G4VSceneHandler* pSceneHandler) { } else { fpViewer = 0; - // Make it impossible for user action code to Draw. - SetConcreteInstance(0); if (fVerbosity >= warnings) { G4cout << "WARNING: No viewers for this scene handler - please create one." @@ -709,70 +789,75 @@ void G4VisManager::RegisterMessengers () { G4UIcommand* directory; - directory = new G4UIdirectory ("/vis/"); - directory -> SetGuidance ("Visualization commands."); - fDirectoryList.push_back (directory); - fMessengerList.push_back (new G4VisCommandEnable); - fMessengerList.push_back (new G4VisCommandVerbose); + RegisterMessenger(new G4VisCommandEnable); + RegisterMessenger(new G4VisCommandVerbose); directory = new G4UIdirectory ("/vis/scene/"); directory -> SetGuidance ("Operations on Geant4 scenes."); fDirectoryList.push_back (directory); - fMessengerList.push_back (new G4VisCommandSceneCreate); - fMessengerList.push_back (new G4VisCommandSceneEndOfEventAction); - fMessengerList.push_back (new G4VisCommandSceneEndOfRunAction); - fMessengerList.push_back (new G4VisCommandSceneList); - fMessengerList.push_back (new G4VisCommandSceneNotifyHandlers); - fMessengerList.push_back (new G4VisCommandSceneSelect); + RegisterMessenger(new G4VisCommandSceneCreate); + RegisterMessenger(new G4VisCommandSceneEndOfEventAction); + RegisterMessenger(new G4VisCommandSceneEndOfRunAction); + RegisterMessenger(new G4VisCommandSceneList); + RegisterMessenger(new G4VisCommandSceneNotifyHandlers); + RegisterMessenger(new G4VisCommandSceneSelect); directory = new G4UIdirectory ("/vis/scene/add/"); directory -> SetGuidance ("Add model to current scene."); fDirectoryList.push_back (directory); - fMessengerList.push_back (new G4VisCommandSceneAddAxes); - fMessengerList.push_back (new G4VisCommandSceneAddGhosts); - fMessengerList.push_back (new G4VisCommandSceneAddHits); - fMessengerList.push_back (new G4VisCommandSceneAddLogicalVolume); - fMessengerList.push_back (new G4VisCommandSceneAddLogo); - fMessengerList.push_back (new G4VisCommandSceneAddScale); - fMessengerList.push_back (new G4VisCommandSceneAddText); - fMessengerList.push_back (new G4VisCommandSceneAddTrajectories); - fMessengerList.push_back (new G4VisCommandSceneAddUserAction); - fMessengerList.push_back (new G4VisCommandSceneAddVolume); + RegisterMessenger(new G4VisCommandSceneAddAxes); + RegisterMessenger(new G4VisCommandSceneAddGhosts); + RegisterMessenger(new G4VisCommandSceneAddHits); + RegisterMessenger(new G4VisCommandSceneAddLogicalVolume); + RegisterMessenger(new G4VisCommandSceneAddLogo); + RegisterMessenger(new G4VisCommandSceneAddScale); + RegisterMessenger(new G4VisCommandSceneAddText); + RegisterMessenger(new G4VisCommandSceneAddTrajectories); + RegisterMessenger(new G4VisCommandSceneAddUserAction); + RegisterMessenger(new G4VisCommandSceneAddVolume); directory = new G4UIdirectory ("/vis/sceneHandler/"); directory -> SetGuidance ("Operations on Geant4 scene handlers."); fDirectoryList.push_back (directory); - fMessengerList.push_back (new G4VisCommandSceneHandlerAttach); - fMessengerList.push_back (new G4VisCommandSceneHandlerCreate); - fMessengerList.push_back (new G4VisCommandSceneHandlerList); - fMessengerList.push_back (new G4VisCommandSceneHandlerSelect); + RegisterMessenger(new G4VisCommandSceneHandlerAttach); + RegisterMessenger(new G4VisCommandSceneHandlerCreate); + RegisterMessenger(new G4VisCommandSceneHandlerList); + RegisterMessenger(new G4VisCommandSceneHandlerSelect); directory = new G4UIdirectory ("/vis/viewer/"); directory -> SetGuidance ("Operations on Geant4 viewers."); fDirectoryList.push_back (directory); - fMessengerList.push_back (new G4VisCommandViewerClear); - fMessengerList.push_back (new G4VisCommandViewerCreate); - fMessengerList.push_back (new G4VisCommandViewerDolly); - fMessengerList.push_back (new G4VisCommandViewerFlush); - fMessengerList.push_back (new G4VisCommandViewerList); - fMessengerList.push_back (new G4VisCommandViewerPan); - fMessengerList.push_back (new G4VisCommandViewerRefresh); - fMessengerList.push_back (new G4VisCommandViewerReset); - fMessengerList.push_back (new G4VisCommandViewerSelect); - fMessengerList.push_back (new G4VisCommandViewerUpdate); - fMessengerList.push_back (new G4VisCommandViewerZoom); + RegisterMessenger(new G4VisCommandViewerClear); + RegisterMessenger(new G4VisCommandViewerCreate); + RegisterMessenger(new G4VisCommandViewerDolly); + RegisterMessenger(new G4VisCommandViewerFlush); + RegisterMessenger(new G4VisCommandViewerList); + RegisterMessenger(new G4VisCommandViewerPan); + RegisterMessenger(new G4VisCommandViewerRebuild); + RegisterMessenger(new G4VisCommandViewerRefresh); + RegisterMessenger(new G4VisCommandViewerReset); + RegisterMessenger(new G4VisCommandViewerScale); + RegisterMessenger(new G4VisCommandViewerSelect); + RegisterMessenger(new G4VisCommandViewerUpdate); + RegisterMessenger(new G4VisCommandViewerZoom); directory = new G4UIdirectory ("/vis/viewer/set/"); directory -> SetGuidance ("Set view parameters of current viewer."); fDirectoryList.push_back (directory); - fMessengerList.push_back (new G4VisCommandsViewerSet); + RegisterMessenger(new G4VisCommandsViewerSet); // Compound commands... - fMessengerList.push_back (new G4VisCommandDrawTree); - fMessengerList.push_back (new G4VisCommandDrawView); - fMessengerList.push_back (new G4VisCommandDrawVolume); - fMessengerList.push_back (new G4VisCommandOpen); - fMessengerList.push_back (new G4VisCommandSpecify); + RegisterMessenger(new G4VisCommandDrawTree); + RegisterMessenger(new G4VisCommandDrawView); + RegisterMessenger(new G4VisCommandDrawVolume); + RegisterMessenger(new G4VisCommandOpen); + RegisterMessenger(new G4VisCommandSpecify); + + // List manager commands + RegisterMessenger(new G4VisCommandListManagerList + (fpTrajectoryModelMgr, fTrajectoryPlacement)); + RegisterMessenger(new G4VisCommandListManagerSelect + (fpTrajectoryModelMgr, fTrajectoryPlacement)); } void G4VisManager::PrintAvailableGraphicsSystems () const { @@ -800,11 +885,19 @@ void G4VisManager::PrintInvalidPointers () const { G4cout << "\n null graphics system pointer."; } else { - G4cout << "\n graphics system is " << fpGraphicsSystem -> GetName () + G4cout << "\n Graphics system is " << fpGraphicsSystem -> GetName () << " but:"; - if (!fpScene) G4cout << "\nNull scene pointer. "; - if (!fpSceneHandler) G4cout << "\nNull scene handler pointer. "; - if (!fpViewer ) G4cout << "\nNull viewer pointer. "; + if (!fpScene) + G4cout << + "\n Null scene pointer. Use \"/vis/drawVolume\" or" + " \"/vis/scene/create\"."; + if (!fpSceneHandler) + G4cout << + "\n Null scene handler pointer. Use \"/vis/open\" or" + " \"/vis/sceneHandler/create\"."; + if (!fpViewer ) + G4cout << + "\n Null viewer pointer. Use \"/vis/viewer/create\"."; } G4cout << G4endl; } @@ -820,12 +913,15 @@ void G4VisManager::BeginOfEvent () { void G4VisManager::EndOfEvent () { //G4cout << "G4VisManager::EndOfEvent" << G4endl; - if (GetConcreteInstance() && IsValidView ()) { + // Don't call IsValidView unless there is a scene handler. This + // avoids ERROR messages at end of event and run when the user has + // not instantiated a scene handler, e.g., in batch mode. + if (GetConcreteInstance() && fpSceneHandler && IsValidView()) { const std::vector& EOEModelList = fpScene -> GetEndOfEventModelList (); size_t nModels = EOEModelList.size(); - ClearTransientStoreIfMarked(); if (nModels) { + ClearTransientStoreIfMarked(); fVisManagerModelingParameters = *(fpSceneHandler -> CreateModelingParameters ()); for (size_t i = 0; i < nModels; i++) { @@ -845,7 +941,10 @@ void G4VisManager::EndOfEvent () { void G4VisManager::EndOfRun () { //G4cout << "G4VisManager::EndOfRun" << G4endl; - if (GetConcreteInstance() && IsValidView ()) { + // Don't call IsValidView unless there is a scene handler. This + // avoids ERROR messages at end of event and run when the user has + // not instantiated a scene handler, e.g., in batch mode. + if (GetConcreteInstance() && fpSceneHandler && IsValidView()) { if (!fpSceneHandler->GetMarkForClearingTransientStore()) { if (fpScene->GetRefreshAtEndOfRun()) { fpViewer->ShowView(); // ...for systems needing post processing. @@ -932,7 +1031,7 @@ G4VisManager::GetVerbosityValue(const G4String& verbosityString) { else if (s(0) == 'a') verbosity = all; else { G4int intVerbosity; - std::istrstream is(s); + std::istringstream is(s); is >> intVerbosity; if (!is) { G4cout << "ERROR: G4VisManager::GetVerbosityValue: invalid verbosity \"" @@ -971,12 +1070,22 @@ G4bool G4VisManager::IsValidView () { if (!fInitialised) Initialise (); - SetConcreteInstance(0); - // Unless we survive a few preliminary tests, users must not use. - - if (!fpGraphicsSystem) return false; - // Simply return without printing - we do not want printing if the - // user simply does not want to use graphics, e.g., in batch mode. + static G4bool noGSPrinting = true; + if (!fpGraphicsSystem) { + // Limit printing - we do not want printing if the user simply does + // not want to use graphics, e.g., in batch mode. + if (noGSPrinting) { + noGSPrinting = false; + if (fVerbosity >= errors) { + G4cout << + "ERROR: G4VisManager::IsValidView(): Vis manager but no graphics system." + "\n Suppress instantiation of vis manager (G4VisExecutive) or" + "\n use \"/vis/open\" or \"/vis/sceneHandler/create\"." + << G4endl; + } + } + return false; + } if ((!fpScene) || (!fpSceneHandler) || (!fpViewer)) { if (fVerbosity >= errors) { @@ -1035,7 +1144,6 @@ G4bool G4VisManager::IsValidView () { return false; } - SetConcreteInstance(this); // Unless we find another problem, users can use! G4bool isValid = true; if (fpScene -> IsEmpty ()) { // Add world by default if possible... G4bool warn(fVerbosity >= warnings); @@ -1050,7 +1158,6 @@ G4bool G4VisManager::IsValidView () { << G4endl; } isValid = false; - SetConcreteInstance(0); // Users must not use! } else { G4UImanager::GetUIpointer () -> ApplyCommand ("/vis/viewer/reset"); @@ -1062,5 +1169,16 @@ G4bool G4VisManager::IsValidView () { } } } + if (isValid) SetConcreteInstance(this); return isValid; } + +void +G4VisManager::RegisterModelFactories() +{ + if (fVerbosity >= warnings) { + G4cout<<"G4VisManager: No model factories registered with G4VisManager."<. + +13th September 2005 John Allison (modeling-V07-01-00) +- Fixed (non-)culling of transparent volumes. + 7th June 2005 John Allison (modeling-V07-00-02) - G4PhysicalVolumeModel: fixed case of off-origin volume. - G4TextModel: Further small improvement. diff --git a/source/visualization/modeling/include/G4AxesModel.hh b/source/visualization/modeling/include/G4AxesModel.hh index 222c5bc528..c1ffd4bb7a 100644 --- a/source/visualization/modeling/include/G4AxesModel.hh +++ b/source/visualization/modeling/include/G4AxesModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4AxesModel.hh,v 1.4 2001/08/24 20:34:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/include/G4AxesModel.icc b/source/visualization/modeling/include/G4AxesModel.icc index ebca6da306..e046b15f06 100644 --- a/source/visualization/modeling/include/G4AxesModel.icc +++ b/source/visualization/modeling/include/G4AxesModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4AxesModel.icc,v 1.3 2001/08/24 20:34:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ inline G4String G4AxesModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4BoundingSphereScene.hh b/source/visualization/modeling/include/G4BoundingSphereScene.hh index 3014aa076c..d5feb96846 100644 --- a/source/visualization/modeling/include/G4BoundingSphereScene.hh +++ b/source/visualization/modeling/include/G4BoundingSphereScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4BoundingSphereScene.hh,v 1.15 2005/06/07 16:54:33 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 7th June 1997 diff --git a/source/visualization/modeling/include/G4CallbackModel.hh b/source/visualization/modeling/include/G4CallbackModel.hh index a38bea5523..1261df0b45 100644 --- a/source/visualization/modeling/include/G4CallbackModel.hh +++ b/source/visualization/modeling/include/G4CallbackModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4CallbackModel.hh,v 1.3 2005/03/03 16:22:02 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh b/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh index 01adcf158f..cb48290463 100644 --- a/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh +++ b/source/visualization/modeling/include/G4FlavoredParallelWorldModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FlavoredParallelWorldModel.hh,v 1.6 2001/07/11 10:09:20 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4FlavoredParallelWorldModel.hh,v 1.7 2005/11/22 16:29:40 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // P. Mora de Freitas et M.Verderi - 19 June 1998. // @@ -46,7 +46,7 @@ public: // With description G4FlavoredParallelWorldModel (G4VFlavoredParallelWorld* FPW, G4int soughtDepth = G4PhysicalVolumeModel::UNLIMITED, - const G4Transform3D& modelTransformation = G4Transform3D::Identity, + const G4Transform3D& modelTransformation = G4Transform3D(), const G4ModelingParameters* mp = 0); ~G4FlavoredParallelWorldModel (); diff --git a/source/visualization/modeling/include/G4HitsModel.hh b/source/visualization/modeling/include/G4HitsModel.hh index 9621835cd0..c9bfecd2e8 100644 --- a/source/visualization/modeling/include/G4HitsModel.hh +++ b/source/visualization/modeling/include/G4HitsModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4HitsModel.hh,v 1.7 2001/08/24 20:36:13 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/include/G4HitsModel.icc b/source/visualization/modeling/include/G4HitsModel.icc index 7424be9ac5..8f7f393e88 100644 --- a/source/visualization/modeling/include/G4HitsModel.icc +++ b/source/visualization/modeling/include/G4HitsModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4HitsModel.icc,v 1.6 2001/08/24 20:36:14 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ inline G4String G4HitsModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4LogicalVolumeModel.hh b/source/visualization/modeling/include/G4LogicalVolumeModel.hh index ccbdc3397e..1a89c74a49 100644 --- a/source/visualization/modeling/include/G4LogicalVolumeModel.hh +++ b/source/visualization/modeling/include/G4LogicalVolumeModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolumeModel.hh,v 1.6 2005/02/15 14:51:25 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4LogicalVolumeModel.hh,v 1.7 2005/11/22 16:29:40 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 26th July 1999. @@ -56,7 +56,7 @@ public: // With description G4bool booleans = true, G4bool voxels = true, G4bool readout = true, - const G4Transform3D& modelTransformation = G4Transform3D::Identity, + const G4Transform3D& modelTransformation = G4Transform3D(), const G4ModelingParameters* = 0); virtual ~G4LogicalVolumeModel (); diff --git a/examples/advanced/radioprotection/include/RemSimHit.hh b/source/visualization/modeling/include/G4ModelCommandsDrawByCharge.hh similarity index 53% rename from examples/advanced/radioprotection/include/RemSimHit.hh rename to source/visualization/modeling/include/G4ModelCommandsDrawByCharge.hh index 9e2e16baba..4f1c690ea3 100644 --- a/examples/advanced/radioprotection/include/RemSimHit.hh +++ b/source/visualization/modeling/include/G4ModelCommandsDrawByCharge.hh @@ -1,4 +1,3 @@ -// // ******************************************************************** // * DISCLAIMER * // * * @@ -20,68 +19,56 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4ModelCommandsDrawByCharge.hh,v 1.2 2005/11/23 05:19:23 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 +// +// Class Description +// Trajectory model commands. +// Class Description - End: -#ifndef RemSimHit_h -#define RemSimHit_h 1 +#ifndef G4MODELCOMMANDDRAWBYCHARGE_HH +#define G4MODELCOMMANDDRAWBYCHARGE_HH -#include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" -#include "G4ThreeVector.hh" +#include "G4String.hh" +#include "G4VModelCommand.hh" -class RemSimHit : public G4VHit -{ -public: +class G4TrajectoryDrawByCharge; +class G4UIcmdWithAString; +class G4UIcommand; - RemSimHit(); - ~RemSimHit(); - RemSimHit(const RemSimHit &right); - const RemSimHit& operator=(const RemSimHit &right); - G4int operator==(const RemSimHit &right) const; +// Command to set positive/negative/neutral trajectory colouring through a string +class G4ModelCommandDrawByChargeSet : public G4VModelCommand { - inline void *operator new(size_t); - inline void operator delete(void *aHit); +public: // With description - void Draw(); - void Print(); + G4ModelCommandDrawByChargeSet(G4TrajectoryDrawByCharge* model, const G4String& placement); + + virtual ~G4ModelCommandDrawByChargeSet(); + + void SetNewValue(G4UIcommand* command, G4String newValue); private: - G4double edep; - G4int xID; - G4int yID; - G4int zID; - G4ThreeVector position; -public: - inline void SetEdep(G4double de) - { edep = de; } - inline G4double GetEdep() - { return edep; } - inline void SetIndexes(G4int i) - {zID = i;} - - inline G4int GetIndexZ(){return zID;} - - inline void SetPosition(G4ThreeVector xyz) - { position = xyz; } - - inline G4ThreeVector GetPosition(){ return position; } + G4UIcmdWithAString* fpCommand; + }; -typedef G4THitsCollection RemSimHitsCollection; +// Command to set positive/negative/neutral trajectory colouring through G4Colour components +class G4ModelCommandDrawByChargeSetRGBA : public G4VModelCommand { -extern G4Allocator RemSimHitAllocator; +public: -inline void* RemSimHit::operator new(size_t) -{ - void *aHit; - aHit = (void *) RemSimHitAllocator.MallocSingle(); - return aHit; -} + G4ModelCommandDrawByChargeSetRGBA(G4TrajectoryDrawByCharge* model, const G4String& placement) ; + virtual ~G4ModelCommandDrawByChargeSetRGBA(); -inline void RemSimHit::operator delete(void *aHit) -{ - RemSimHitAllocator.FreeSingle((RemSimHit*) aHit); -} + void SetNewValue(G4UIcommand* command, G4String newValue); + +private: + + G4UIcmdWithAString* fpCommand; + +}; #endif diff --git a/source/visualization/modeling/include/G4ModelCommandsDrawByParticleID.hh b/source/visualization/modeling/include/G4ModelCommandsDrawByParticleID.hh new file mode 100644 index 0000000000..88d0eee76d --- /dev/null +++ b/source/visualization/modeling/include/G4ModelCommandsDrawByParticleID.hh @@ -0,0 +1,107 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4ModelCommandsDrawByParticleID.hh,v 1.2 2005/11/23 20:24:15 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 +// +// Class Description +// Trajectory model commands. +// Class Description - End: + +#ifndef G4MODELCOMMANDDRAWBYPARTICLEID_HH +#define G4MODELCOMMANDDRAWBYPARTICLEID_HH + +#include "G4String.hh" +#include "G4VModelCommand.hh" + +class G4TrajectoryDrawByParticleID; +class G4UIcmdWithAString; +class G4UIcommand; + +// Command to set positive/negative/neutral trajectory colouring through a string +class G4ModelCommandDrawByParticleIDSet : public G4VModelCommand { + +public: // With description + + G4ModelCommandDrawByParticleIDSet(G4TrajectoryDrawByParticleID* model, const G4String& placement); + + virtual ~G4ModelCommandDrawByParticleIDSet(); + + void SetNewValue(G4UIcommand* command, G4String newValue); + +private: + + G4UIcmdWithAString* fpCommand; + +}; + +// Command to set default positive/negative/neutral trajectory colouring through G4Colour components +class G4ModelCommandDrawByParticleIDSetRGBA : public G4VModelCommand { + +public: + + G4ModelCommandDrawByParticleIDSetRGBA(G4TrajectoryDrawByParticleID* model, const G4String& placement) ; + virtual ~G4ModelCommandDrawByParticleIDSetRGBA(); + + void SetNewValue(G4UIcommand* command, G4String newValue); + +private: + + G4UIcmdWithAString* fpCommand; + +}; + +// Command to set default positive/negative/neutral trajectory colouring through a string +class G4ModelCommandDrawByParticleIDSetDefault : public G4VModelCommand { + +public: // With description + + G4ModelCommandDrawByParticleIDSetDefault(G4TrajectoryDrawByParticleID* model, const G4String& placement); + + virtual ~G4ModelCommandDrawByParticleIDSetDefault(); + + void SetNewValue(G4UIcommand* command, G4String newValue); + +private: + + G4UIcmdWithAString* fpCommand; + +}; + +// Command to set default positive/negative/neutral trajectory colouring through G4Colour components +class G4ModelCommandDrawByParticleIDSetDefaultRGBA : public G4VModelCommand { + +public: + + G4ModelCommandDrawByParticleIDSetDefaultRGBA(G4TrajectoryDrawByParticleID* model, const G4String& placement) ; + virtual ~G4ModelCommandDrawByParticleIDSetDefaultRGBA(); + + void SetNewValue(G4UIcommand* command, G4String newValue); + +private: + + G4UIcmdWithAString* fpCommand; + +}; + +#endif diff --git a/source/visualization/modeling/include/G4ModelingParameters.hh b/source/visualization/modeling/include/G4ModelingParameters.hh index e5e8ef7b0d..6d9ee6b6ea 100644 --- a/source/visualization/modeling/include/G4ModelingParameters.hh +++ b/source/visualization/modeling/include/G4ModelingParameters.hh @@ -22,7 +22,7 @@ // // // $Id: G4ModelingParameters.hh,v 1.10 2005/03/15 12:56:29 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4ModelingParameters.icc b/source/visualization/modeling/include/G4ModelingParameters.icc index a1c68569d6..06bded2e28 100644 --- a/source/visualization/modeling/include/G4ModelingParameters.icc +++ b/source/visualization/modeling/include/G4ModelingParameters.icc @@ -22,7 +22,7 @@ // // // $Id: G4ModelingParameters.icc,v 1.4 2001/07/11 10:09:21 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4NullModel.hh b/source/visualization/modeling/include/G4NullModel.hh index 0e28409d2c..3ea19fedd7 100644 --- a/source/visualization/modeling/include/G4NullModel.hh +++ b/source/visualization/modeling/include/G4NullModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4NullModel.hh,v 1.6 2001/08/24 20:36:15 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 4th April 1998. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeMassScene.hh b/source/visualization/modeling/include/G4PhysicalVolumeMassScene.hh index 373ed6580a..83baa23ed0 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeMassScene.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeMassScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeMassScene.hh,v 1.4 2005/01/27 20:06:35 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 12th September 2004 diff --git a/source/visualization/modeling/include/G4PhysicalVolumeModel.hh b/source/visualization/modeling/include/G4PhysicalVolumeModel.hh index 535513e806..671aa66cbd 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeModel.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeModel.hh,v 1.20 2005/03/09 16:23:21 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PhysicalVolumeModel.hh,v 1.21 2005/11/22 16:29:40 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. @@ -60,7 +60,7 @@ public: // With description G4PhysicalVolumeModel (G4VPhysicalVolume*, G4int requestedDepth = UNLIMITED, - const G4Transform3D& modelTransformation = G4Transform3D::Identity, + const G4Transform3D& modelTransformation = G4Transform3D(), const G4ModelingParameters* = 0, G4bool useFullExtent = false); diff --git a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh index ba143ec93b..d8a3df659f 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh +++ b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeSearchScene.hh,v 1.13 2005/01/27 20:06:37 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 10th August 1998. diff --git a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc index 857f8a6173..6c637e0b52 100644 --- a/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc +++ b/source/visualization/modeling/include/G4PhysicalVolumeSearchScene.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeSearchScene.icc,v 1.5 2005/01/27 20:06:42 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 10th August 1998. diff --git a/source/visualization/modeling/include/G4ScaleModel.hh b/source/visualization/modeling/include/G4ScaleModel.hh index 73fd2855a1..3cbf0598b1 100644 --- a/source/visualization/modeling/include/G4ScaleModel.hh +++ b/source/visualization/modeling/include/G4ScaleModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4ScaleModel.hh,v 1.2 2001/08/24 20:36:18 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 21st July 2001. diff --git a/source/visualization/modeling/include/G4ScaleModel.icc b/source/visualization/modeling/include/G4ScaleModel.icc index 75637ff63c..431e51dfa4 100644 --- a/source/visualization/modeling/include/G4ScaleModel.icc +++ b/source/visualization/modeling/include/G4ScaleModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4ScaleModel.icc,v 1.2 2001/08/24 20:36:19 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ inline G4String G4ScaleModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TextModel.hh b/source/visualization/modeling/include/G4TextModel.hh index c6864b89ca..02913c947f 100644 --- a/source/visualization/modeling/include/G4TextModel.hh +++ b/source/visualization/modeling/include/G4TextModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TextModel.hh,v 1.5 2005/05/31 17:01:25 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/include/G4TextModel.icc b/source/visualization/modeling/include/G4TextModel.icc index 70969453c3..2ff78af26d 100644 --- a/source/visualization/modeling/include/G4TextModel.icc +++ b/source/visualization/modeling/include/G4TextModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4TextModel.icc,v 1.3 2001/08/24 20:36:22 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ inline G4String G4TextModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TrajectoriesModel.hh b/source/visualization/modeling/include/G4TrajectoriesModel.hh index 2dc1dc3a45..ad3c8751bf 100644 --- a/source/visualization/modeling/include/G4TrajectoriesModel.hh +++ b/source/visualization/modeling/include/G4TrajectoriesModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoriesModel.hh,v 1.8 2002/11/11 18:39:28 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/include/G4TrajectoriesModel.icc b/source/visualization/modeling/include/G4TrajectoriesModel.icc index 4215f9b4cb..8513785195 100644 --- a/source/visualization/modeling/include/G4TrajectoriesModel.icc +++ b/source/visualization/modeling/include/G4TrajectoriesModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoriesModel.icc,v 1.6 2001/08/24 20:36:24 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ inline G4String G4TrajectoriesModel::GetCurrentTag () const { return fGlobalTag; diff --git a/source/visualization/modeling/include/G4TrajectoryDrawByCharge.hh b/source/visualization/modeling/include/G4TrajectoryDrawByCharge.hh new file mode 100644 index 0000000000..b7687a93d5 --- /dev/null +++ b/source/visualization/modeling/include/G4TrajectoryDrawByCharge.hh @@ -0,0 +1,71 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4TrajectoryDrawByCharge.hh,v 1.3 2005/11/23 05:19:23 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 +// +// Class Description: +// Trajectory model which colours a trajectory according to +// charge. Guts taken from G4VTrajectory::DrawTrajectory method. +// Class Description - End: + +#ifndef G4TRAJECTORYDRAWBYCHARGE_HH +#define G4TRAJECTORYDRAWBYCHARGE_HH + +#include "G4Colour.hh" +#include "G4VTrajectoryModel.hh" +#include + +class G4TrajectoryDrawByCharge : public G4VTrajectoryModel { + +public: // With description + + enum Charge {Negative=-1, Neutral=0, Positive=1}; + + G4TrajectoryDrawByCharge(const G4String& name = "Unspecified"); + + G4TrajectoryDrawByCharge(const G4String& name, + const G4Colour& positive, + const G4Colour& negative, + const G4Colour& neutral); + + virtual ~G4TrajectoryDrawByCharge(); + + virtual void Draw(const G4VTrajectory& trajectory, G4int i_mode = 0) const; + // Draw the trajectory with optional i_mode parameter + + virtual void Print(std::ostream& ostr) const; + // Print configuration + + void Set(Charge charge, const G4String& colour); + void Set(Charge charge, const G4Colour& colour); + // Configuration functions + +private: + + // Data member + std::map fMap; + +}; + +#endif diff --git a/source/visualization/modeling/include/G4TrajectoryDrawByParticleID.hh b/source/visualization/modeling/include/G4TrajectoryDrawByParticleID.hh new file mode 100644 index 0000000000..3bbfec8d1e --- /dev/null +++ b/source/visualization/modeling/include/G4TrajectoryDrawByParticleID.hh @@ -0,0 +1,69 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4TrajectoryDrawByParticleID.hh,v 1.3 2005/11/23 05:19:23 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 +// +// Class Description: +// Trajectory model which colours a trajectory according to +// particle type. +// Class Description - End: + +#ifndef G4TRAJECTORYDRAWBYPARTICLEID +#define G4TRAJECTORYDRAWBYPARTICLEID + +#include "G4VTrajectoryModel.hh" +#include "G4Colour.hh" +#include "G4String.hh" +#include + +class G4TrajectoryDrawByParticleID : public G4VTrajectoryModel { + +public: // With description + + G4TrajectoryDrawByParticleID(const G4String& name = "Unspecified"); + + virtual ~G4TrajectoryDrawByParticleID(); + + virtual void Draw(const G4VTrajectory&, G4int) const; + // Draw the trajectory with optional i_mode parameter + + virtual void Print(std::ostream& ostr) const; + // Print configuration + + void SetDefault(const G4String&); + void SetDefault(const G4Colour&); + + void Set(const G4String& particle, const G4String& colour); + void Set(const G4String& particle, const G4Colour& colour); + // Configuration functions + +private: + + // Data members + std::map fMap; + G4Colour fDefault; + +}; + +#endif diff --git a/physics_lists/hadronic/Packaging/include/EM_GNPhysics.hh b/source/visualization/modeling/include/G4TrajectoryDrawerUtils.hh similarity index 71% rename from physics_lists/hadronic/Packaging/include/EM_GNPhysics.hh rename to source/visualization/modeling/include/G4TrajectoryDrawerUtils.hh index 5435522343..4a580af83f 100644 --- a/physics_lists/hadronic/Packaging/include/EM_GNPhysics.hh +++ b/source/visualization/modeling/include/G4TrajectoryDrawerUtils.hh @@ -1,4 +1,3 @@ -// // ******************************************************************** // * DISCLAIMER * // * * @@ -20,36 +19,27 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef EM_GNPhysics_h -#define EM_GNPhysics_h 1 +// $Id: G4TrajectoryDrawerUtils.hh,v 1.2 2005/11/21 05:44:44 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 +// +// Class Description +// Simple trajectory model drawing utility functions +// Class Description - End: -#include "globals.hh" -#include "G4ios.hh" -#include "G4VPhysicsConstructor.hh" -#include "G4EMBuilder.hh" -#include "G4ElectroNuclearBuilder.hh" +#ifndef G4TRAJECTORYDRAWERUTILS +#define G4TRAJECTORYDRAWERUTILS +class G4Polyline; +class G4Polymarker; +class G4VTrajectory; -class EM_GNPhysics : public G4VPhysicsConstructor -{ - public: - EM_GNPhysics(const G4String& name ="EM"); - virtual ~EM_GNPhysics(); +namespace G4TrajectoryDrawerUtils { - public: - virtual void ConstructParticle(); - virtual void ConstructProcess(); + void GetPoints(const G4VTrajectory& traj, G4Polyline& trajectoryLine, + G4Polymarker& auxiliaryPoints, G4Polymarker& stepPoints); - private: - G4EMBuilder theEMPhysics; - G4ElectroNuclearBuilder theGNPhysics; -}; - -// 2002 by J.P. Wellisch +} #endif - - - - - diff --git a/examples/advanced/radioprotection/src/RemSimAnalysisMessenger.cc b/source/visualization/modeling/include/G4TrajectoryModelFactories.hh similarity index 56% rename from examples/advanced/radioprotection/src/RemSimAnalysisMessenger.cc rename to source/visualization/modeling/include/G4TrajectoryModelFactories.hh index 39c3bf343b..e950b8b907 100644 --- a/examples/advanced/radioprotection/src/RemSimAnalysisMessenger.cc +++ b/source/visualization/modeling/include/G4TrajectoryModelFactories.hh @@ -1,4 +1,3 @@ -// // ******************************************************************** // * DISCLAIMER * // * * @@ -20,60 +19,51 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4TrajectoryModelFactories.hh,v 1.2 2005/11/23 05:19:23 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// $Id: RemSimAnalysisMessenger.cc -// GEANT4 tag $Name: radioprotection-V07-00-01 +// Jane Tinslay, John Allison, Joseph Perl October 2005 // -// Author: Susanna Guatelli (Susanna.Guatelli@ge.infn.it) -// -// History: -// ----------- -// 23 Nov 2004 Susanna Guatelli Created -// -// ------------------------------------------------------------------- +// Class Description: +// Trajectory model factories creating trajectory models +// and associated messengers +// Class Description - End: -#ifdef G4ANALYSIS_USE -#include "RemSimAnalysisMessenger.hh" +#ifndef G4TRAJECTORYMODELFACTORIES_HH +#define G4TRAJECTORYMODELFACTORIES_HH -RemSimAnalysisMessenger::RemSimAnalysisMessenger(RemSimAnalysisManager* analysisManager) - :remsimAnalysis(analysisManager) - -{ - analysisDir = new G4UIdirectory("/analysis/"); - analysisDir->SetGuidance("analysis control."); - - outputFileType = new G4UIcmdWithAString("/analysis/formatFile",this); - outputFileType -> SetGuidance("specify the format: hbook or xml"); - outputFileType -> SetCandidates("hbook xml"); - outputFileType -> SetDefaultValue("hbook"); - outputFileType -> AvailableForStates(G4State_Idle); +#include "G4VModelFactory.hh" +#include "G4VTrajectoryModel.hh" + +namespace { + typedef std::vector Messengers; + typedef std::pair ModelAndMessengers; } -RemSimAnalysisMessenger::~RemSimAnalysisMessenger() -{ - delete outputFileType; - delete analysisDir; -} +class G4TrajectoryDrawByChargeFactory : public G4VModelFactory { -void RemSimAnalysisMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if(command == outputFileType) - { - remsimAnalysis -> SetFormat(newValue); - } - } +public: // With description + + G4TrajectoryDrawByChargeFactory(); + + virtual ~G4TrajectoryDrawByChargeFactory(); + + ModelAndMessengers Create(const G4String& placement, const G4String& name); + +}; + +class G4TrajectoryDrawByParticleIDFactory : public G4VModelFactory { + +public: // With description + + G4TrajectoryDrawByParticleIDFactory(); + + virtual ~G4TrajectoryDrawByParticleIDFactory(); + + ModelAndMessengers Create(const G4String& placement, const G4String& name); + +}; #endif - - - - - - - - - - - diff --git a/source/visualization/modeling/include/G4VModel.hh b/source/visualization/modeling/include/G4VModel.hh index adb160bac9..33b57bb085 100644 --- a/source/visualization/modeling/include/G4VModel.hh +++ b/source/visualization/modeling/include/G4VModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VModel.hh,v 1.16 2005/03/03 16:39:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VModel.hh,v 1.17 2005/11/22 16:29:40 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. @@ -55,7 +55,7 @@ public: // With description friend std::ostream& operator << (std::ostream& os, const G4VModel&); G4VModel - (const G4Transform3D& modelTransformation = G4Transform3D::Identity, + (const G4Transform3D& modelTransformation = G4Transform3D(), const G4ModelingParameters* = 0); virtual ~G4VModel (); diff --git a/source/visualization/modeling/include/G4VModel.icc b/source/visualization/modeling/include/G4VModel.icc index a665522f7e..b97dfce0e9 100644 --- a/source/visualization/modeling/include/G4VModel.icc +++ b/source/visualization/modeling/include/G4VModel.icc @@ -22,7 +22,7 @@ // // // $Id: G4VModel.icc,v 1.10 2005/03/03 16:39:15 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/include/G4VModelCommand.hh b/source/visualization/modeling/include/G4VModelCommand.hh new file mode 100644 index 0000000000..0d1d07487f --- /dev/null +++ b/source/visualization/modeling/include/G4VModelCommand.hh @@ -0,0 +1,89 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4VModelCommand.hh,v 1.2 2005/11/28 20:07:11 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 +// +// Class Description +// Templated base class for model messengers. Commands specific to a particular +// concrete model should inherit from G4VModelCommand, with the concrete model +// type as the template parameter. +// Class Description - End: + +#ifndef G4VMODELCOMMAND_HH +#define G4VMODELCOMMAND_HH + +#include "G4UImessenger.hh" +#include "G4String.hh" + +class G4UIcommand; + +template +class G4VModelCommand : public G4UImessenger { + +public: // With description + + G4VModelCommand(T* model); + // Input model + + virtual ~G4VModelCommand(); + + G4String GetCurrentValue(G4UIcommand* command); + +protected: + + T* Model(); + // Access to model + +private: + + T* fpModel; + +}; + +template +G4VModelCommand::G4VModelCommand(T* model) + :fpModel(model) +{} + +template +G4VModelCommand::~G4VModelCommand() {} + +template +G4String +G4VModelCommand::GetCurrentValue(G4UIcommand*) +{ + return ""; +} + +template +T* +G4VModelCommand::Model() +{ + return fpModel; +} + +#endif + + + diff --git a/source/visualization/management/include/MyVisManager.hh b/source/visualization/modeling/include/G4VModelFactory.hh similarity index 57% rename from source/visualization/management/include/MyVisManager.hh rename to source/visualization/modeling/include/G4VModelFactory.hh index 266ea2522b..49ef096f0b 100644 --- a/source/visualization/management/include/MyVisManager.hh +++ b/source/visualization/modeling/include/G4VModelFactory.hh @@ -1,4 +1,3 @@ -// // ******************************************************************** // * DISCLAIMER * // * * @@ -20,46 +19,62 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VModelFactory.hh,v 1.1 2005/11/21 05:44:44 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// $Id: MyVisManager.hh,v 1.5 2001/07/11 10:09:17 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// Jane Tinslay, John Allison, Joseph Perl October 2005 // -// -// John Allison 24th January 1998. -// -// Class description -// -// Example Visualization Manager implementing virtual function -// RegisterGraphicsSystems. Exploits C-pre-processor variables -// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if -// environment variables of the same name are set. -// -// So all you have to do is set environment variables and compile and -// instantiate this in your main(). -// -// Alternatively, you can implement an empty function here and just -// register the systems you want in your main(), e.g.: -// G4VisManager* myVisManager = new MyVisManager; -// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem); -// -// See class description of G4VisManager for more details. +// Class Description: +// Abstract base class for model factories. Derived classes +// must implement the Create method, creating a new model +// and associated messengers. +// Class Description - End: -#ifndef MYEXAMPLEVISMANAGER_HH -#define MYEXAMPLEVISMANAGER_HH +#ifndef G4VMODELFACTORY +#define G4VMODELFACTORY -#include "G4VisManager.hh" +#include "G4String.hh" +#include +#include -class MyVisManager: public G4VisManager { +class G4UImessenger; + +template +class G4VModelFactory { public: // With description - MyVisManager (); + typedef std::vector Messengers; + typedef std::pair ModelAndMessengers; + + G4VModelFactory(const G4String& name); + + virtual ~G4VModelFactory(); + + G4String Name(); + + virtual ModelAndMessengers Create(const G4String& placement, const G4String& modelName) = 0; private: - void RegisterGraphicsSystems (); + G4String fName; }; +template +G4VModelFactory::G4VModelFactory(const G4String& name) + :fName(name) +{} + +template +G4VModelFactory::~G4VModelFactory() {} + +template +G4String +G4VModelFactory::Name() +{ + return fName; +} + #endif diff --git a/source/graphics_reps/include/G4VVisPrim.hh b/source/visualization/modeling/include/G4VTrajectoryModel.hh similarity index 63% rename from source/graphics_reps/include/G4VVisPrim.hh rename to source/visualization/modeling/include/G4VTrajectoryModel.hh index 54b719905c..a9b91f08fd 100644 --- a/source/graphics_reps/include/G4VVisPrim.hh +++ b/source/visualization/modeling/include/G4VTrajectoryModel.hh @@ -1,4 +1,3 @@ -// // ******************************************************************** // * DISCLAIMER * // * * @@ -20,43 +19,48 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VTrajectoryModel.hh,v 1.3 2005/12/02 19:16:15 perl Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // -// $Id: G4VVisPrim.hh,v 1.9 2003/06/16 16:55:13 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// Jane Tinslay, John Allison, Joseph Perl October 2005 // -// -// John Allison August 1995 - // Class Description: -// Virtual base class for Visualization Primitives -// (or Visualization Representations, as they are sometimes called). +// Abstract base class for trajectory models. Trajectory models are responsible +// for drawing individual trajectories according to a particular style. // Class Description - End: -#ifndef G4VVISPRIM_HH -#define G4VVISPRIM_HH +#ifndef G4VTRAJECTORYMODEL_HH +#define G4VTRAJECTORYMODEL_HH -#include "G4Visible.hh" +#include "G4String.hh" #include -class G4VisAttributes; +class G4VTrajectory; -class G4VVisPrim: public G4Visible { - - friend std::ostream& operator << (std::ostream& os, const G4VVisPrim& prim); +class G4VTrajectoryModel { public: // With description - G4VVisPrim (); - G4VVisPrim (const G4VVisPrim& prim); - G4VVisPrim (const G4VisAttributes* pVA); + G4VTrajectoryModel(const G4String& name):fName(name) {} - virtual ~G4VVisPrim (); + virtual ~G4VTrajectoryModel() {} - virtual G4Visible& operator = (const G4Visible& right); - virtual G4VVisPrim& operator = (const G4VVisPrim& right); - virtual G4bool operator == (const G4Visible& right) const; - virtual G4bool operator == (const G4VVisPrim& right) const; + virtual void Draw(const G4VTrajectory& trajectory, G4int i_mode = 0) const = 0; + // Draw the trajectory with optional i_mode parameter + + virtual void Print(std::ostream& ostr) const = 0; + // Print configuration + + G4String Name() const ; + +protected: + + // Data member + G4String fName; }; +inline G4String G4VTrajectoryModel::Name() const {return fName;} + #endif + diff --git a/source/visualization/modeling/src/G4AxesModel.cc b/source/visualization/modeling/src/G4AxesModel.cc index 1ccc9dc39f..8d1455cd12 100644 --- a/source/visualization/modeling/src/G4AxesModel.cc +++ b/source/visualization/modeling/src/G4AxesModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4AxesModel.cc,v 1.5 2001/08/14 18:43:29 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/src/G4BoundingSphereScene.cc b/source/visualization/modeling/src/G4BoundingSphereScene.cc index 24c1b4c9e1..9752d4d8b6 100644 --- a/source/visualization/modeling/src/G4BoundingSphereScene.cc +++ b/source/visualization/modeling/src/G4BoundingSphereScene.cc @@ -22,7 +22,7 @@ // // // $Id: G4BoundingSphereScene.cc,v 1.9 2005/01/27 20:06:49 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 7th June 1997 diff --git a/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc b/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc index 662db26b7f..d655e7d0f0 100644 --- a/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc +++ b/source/visualization/modeling/src/G4FlavoredParallelWorldModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4FlavoredParallelWorldModel.cc,v 1.6 2002/11/20 17:21:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // P. Mora de Freitas et M.Verderi - 19 June 1998. // Model for flavored parallel world volumes. diff --git a/source/visualization/modeling/src/G4HitsModel.cc b/source/visualization/modeling/src/G4HitsModel.cc index fad262655b..ea7e68e45d 100644 --- a/source/visualization/modeling/src/G4HitsModel.cc +++ b/source/visualization/modeling/src/G4HitsModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4HitsModel.cc,v 1.11 2005/01/27 20:06:52 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/src/G4LogicalVolumeModel.cc b/source/visualization/modeling/src/G4LogicalVolumeModel.cc index 8e4060c418..ec0e840867 100644 --- a/source/visualization/modeling/src/G4LogicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4LogicalVolumeModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4LogicalVolumeModel.cc,v 1.11 2005/02/15 14:51:33 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 26th July 1999. diff --git a/source/visualization/modeling/src/G4ModelCommandsDrawByCharge.cc b/source/visualization/modeling/src/G4ModelCommandsDrawByCharge.cc new file mode 100644 index 0000000000..7b982afc25 --- /dev/null +++ b/source/visualization/modeling/src/G4ModelCommandsDrawByCharge.cc @@ -0,0 +1,141 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4ModelCommandsDrawByCharge.cc,v 1.6 2005/11/28 20:07:11 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 + +#include "G4ModelCommandsDrawByCharge.hh" +#include "G4TrajectoryDrawByCharge.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcommand.hh" + +#include + +//Set colour with string +G4ModelCommandDrawByChargeSet::G4ModelCommandDrawByChargeSet(G4TrajectoryDrawByCharge* model, const G4String& placement) + :G4VModelCommand(model) +{ + G4String name = model->Name(); + G4String myCommand = placement+"/"+name+"/set"; + + fpCommand = new G4UIcmdWithAString(myCommand, this); + fpCommand->SetGuidance("Set trajectory colour through a string."); + fpCommand->SetGuidance("Two inputs are expected, for example"); + + G4String example = myCommand+" -1 red"; + + fpCommand->SetGuidance(example); + fpCommand->SetParameterName("parameters", false); +} + +G4ModelCommandDrawByChargeSet::~G4ModelCommandDrawByChargeSet() +{ + delete fpCommand; +} + +void G4ModelCommandDrawByChargeSet::SetNewValue(G4UIcommand*, G4String newValue) +{ + G4int charge(-999); + G4String colour; + std::istringstream is (newValue); + is >> charge >> colour; + + G4TrajectoryDrawByCharge::Charge myCharge = G4TrajectoryDrawByCharge::Positive; + + switch (charge) { + case 1: + myCharge = G4TrajectoryDrawByCharge::Positive; + break; + case 0: + myCharge = G4TrajectoryDrawByCharge::Neutral; + break; + case -1: + myCharge = G4TrajectoryDrawByCharge::Negative; + break; + default: + std::ostringstream o; + o << "Invalid charge "<Set(myCharge, colour); +} + +//Set colour by red, green, blue and alpha components +G4ModelCommandDrawByChargeSetRGBA::G4ModelCommandDrawByChargeSetRGBA(G4TrajectoryDrawByCharge* model, const G4String& placement) + :G4VModelCommand(model) +{ + G4String name = model->Name(); + G4String myCommand = placement+"/"+name+"/setRGBA"; + + fpCommand = new G4UIcmdWithAString(myCommand, this); + fpCommand->SetGuidance("Set trajectory colour through red, green, blue and alpha components."); + fpCommand->SetGuidance("Five inputs are expected, for example"); + + G4String example = myCommand+" -1 1 1 1 1"; + ; + fpCommand->SetGuidance(example); + + fpCommand->SetParameterName("parameters", false); +} + +G4ModelCommandDrawByChargeSetRGBA::~G4ModelCommandDrawByChargeSetRGBA() +{ + delete fpCommand; +} + +void G4ModelCommandDrawByChargeSetRGBA::SetNewValue(G4UIcommand*, G4String newValue) +{ + G4int charge(-999); + G4double red(0), green(0), blue(0), alpha(0); + std::istringstream is (newValue); + is >> charge >> red >> green >> blue >> alpha; + + G4TrajectoryDrawByCharge::Charge myCharge = G4TrajectoryDrawByCharge::Positive; + + switch (charge) { + case 1: + myCharge = G4TrajectoryDrawByCharge::Positive; + break; + case 0: + myCharge = G4TrajectoryDrawByCharge::Neutral; + break; + case -1: + myCharge = G4TrajectoryDrawByCharge::Negative; + break; + default: + std::ostringstream o; + o << "Invalid charge "<Set(myCharge, myColour); +} diff --git a/source/visualization/modeling/src/G4ModelCommandsDrawByParticleID.cc b/source/visualization/modeling/src/G4ModelCommandsDrawByParticleID.cc new file mode 100644 index 0000000000..3c370c0b5b --- /dev/null +++ b/source/visualization/modeling/src/G4ModelCommandsDrawByParticleID.cc @@ -0,0 +1,163 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4ModelCommandsDrawByParticleID.cc,v 1.3 2005/11/28 20:07:11 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 + +#include "G4ModelCommandsDrawByParticleID.hh" +#include "G4TrajectoryDrawByParticleID.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcommand.hh" +#include + +//Set colour with string +G4ModelCommandDrawByParticleIDSet::G4ModelCommandDrawByParticleIDSet(G4TrajectoryDrawByParticleID* model, const G4String& placement) + :G4VModelCommand(model) +{ + G4String name = model->Name(); + G4String myCommand = placement+"/"+name+"/set"; + + fpCommand = new G4UIcmdWithAString(myCommand, this); + fpCommand->SetGuidance("Set trajectory colour through a string."); + fpCommand->SetGuidance("Two inputs are expected, for example"); + + G4String example = myCommand+" gamma red"; + + fpCommand->SetGuidance(example); + fpCommand->SetParameterName("parameters", false); +} + +G4ModelCommandDrawByParticleIDSet::~G4ModelCommandDrawByParticleIDSet() +{ + delete fpCommand; +} + +void G4ModelCommandDrawByParticleIDSet::SetNewValue(G4UIcommand*, G4String newValue) +{ + G4String particle; + G4String colour; + std::istringstream is (newValue); + is >> particle >> colour; + + // Configure model as requested + Model()->Set(particle, colour); +} + +//Set colour by red, green, blue and alpha components +G4ModelCommandDrawByParticleIDSetRGBA::G4ModelCommandDrawByParticleIDSetRGBA(G4TrajectoryDrawByParticleID* model, const G4String& placement) + :G4VModelCommand(model) +{ + G4String name = model->Name(); + G4String myCommand = placement+"/"+name+"/setRGBA"; + + fpCommand = new G4UIcmdWithAString(myCommand, this); + fpCommand->SetGuidance("Set trajectory colour through red, green, blue and alpha components."); + fpCommand->SetGuidance("Five inputs are expected, for example"); + + G4String example = myCommand+" gamma 1 1 1 1"; +; + fpCommand->SetGuidance(example); + fpCommand->SetParameterName("parameters", false); + +} + +G4ModelCommandDrawByParticleIDSetRGBA::~G4ModelCommandDrawByParticleIDSetRGBA() +{ + delete fpCommand; +} + +void G4ModelCommandDrawByParticleIDSetRGBA::SetNewValue(G4UIcommand*, G4String newValue) +{ + G4String particle; + G4double red(0), green(0), blue(0), alpha(0); + std::istringstream is (newValue); + is >> particle >> red >> green >> blue >> alpha; + + G4Colour myColour(red, green, blue, alpha); + + // Configure model as requested + Model()->Set(particle, myColour); +} + + +//Set default colour with string +G4ModelCommandDrawByParticleIDSetDefault::G4ModelCommandDrawByParticleIDSetDefault(G4TrajectoryDrawByParticleID* model, const G4String& placement) + :G4VModelCommand(model) +{ + G4String name = model->Name(); + G4String myCommand = placement+"/"+name+"/setDefault"; + + fpCommand = new G4UIcmdWithAString(myCommand, this); + fpCommand->SetGuidance("Set default trajectory colour through a string."); + fpCommand->SetGuidance("One input is expected, for example"); + + G4String example = myCommand+" red"; + + fpCommand->SetGuidance(example); + fpCommand->SetParameterName("parameters", false); +} + +G4ModelCommandDrawByParticleIDSetDefault::~G4ModelCommandDrawByParticleIDSetDefault() +{ + delete fpCommand; +} + +void G4ModelCommandDrawByParticleIDSetDefault::SetNewValue(G4UIcommand*, G4String newValue) +{ + // Configure model as requested + Model()->SetDefault(newValue); +} + +//Set colour by red, green, blue and alpha components +G4ModelCommandDrawByParticleIDSetDefaultRGBA::G4ModelCommandDrawByParticleIDSetDefaultRGBA(G4TrajectoryDrawByParticleID* model, const G4String& placement) + :G4VModelCommand(model) +{ + G4String name = model->Name(); + G4String myCommand = placement+"/"+name+"/setDefaultRGBA"; + + fpCommand = new G4UIcmdWithAString(myCommand, this); + fpCommand->SetGuidance("Set default trajectory colour through red, green, blue and alpha components."); + fpCommand->SetGuidance("Four inputs are expected, for example"); + + G4String example = myCommand+" 1 1 1 1"; +; + fpCommand->SetGuidance(example); + fpCommand->SetParameterName("parameters", false); +} + +G4ModelCommandDrawByParticleIDSetDefaultRGBA::~G4ModelCommandDrawByParticleIDSetDefaultRGBA() +{ + delete fpCommand; +} + +void G4ModelCommandDrawByParticleIDSetDefaultRGBA::SetNewValue(G4UIcommand*, G4String newValue) +{ + G4double red(0), green(0), blue(0), alpha(0); + std::istringstream is (newValue); + is >> red >> green >> blue >> alpha; + + G4Colour myColour(red, green, blue, alpha); + + // Configure model as requested + Model()->SetDefault(myColour); +} diff --git a/source/visualization/modeling/src/G4ModelingParameters.cc b/source/visualization/modeling/src/G4ModelingParameters.cc index a7f52afb14..d2c34f51cb 100644 --- a/source/visualization/modeling/src/G4ModelingParameters.cc +++ b/source/visualization/modeling/src/G4ModelingParameters.cc @@ -22,7 +22,7 @@ // // // $Id: G4ModelingParameters.cc,v 1.7 2005/03/15 12:56:29 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. diff --git a/source/visualization/modeling/src/G4NullModel.cc b/source/visualization/modeling/src/G4NullModel.cc index 95a50088a7..aabb014198 100644 --- a/source/visualization/modeling/src/G4NullModel.cc +++ b/source/visualization/modeling/src/G4NullModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NullModel.cc,v 1.7 2003/05/30 13:01:32 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 4th April 1998. diff --git a/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc b/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc index 6335298037..7a546f7bc8 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeMassScene.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicalVolumeMassScene.cc,v 1.4 2005/01/26 16:48:56 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 10th August 1998. diff --git a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc index 0cdca9f39a..0df496a349 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeModel.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeModel.cc,v 1.32 2005/06/07 16:54:33 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PhysicalVolumeModel.cc,v 1.36 2005/11/24 11:15:21 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. @@ -44,7 +44,7 @@ #include "G4VVisManager.hh" #include "G4Polyhedron.hh" -#include +#include G4PhysicalVolumeModel::G4PhysicalVolumeModel (G4VPhysicalVolume* pVPV, @@ -68,10 +68,9 @@ G4PhysicalVolumeModel::G4PhysicalVolumeModel fppCurrentLV (0), fppCurrentMaterial (0) { - const int len = 8; char a [len]; - std::ostrstream o (a, len); o.seekp (std::ios::beg); - o << fpTopPV -> GetCopyNo () << std::ends; - fGlobalTag = fpTopPV -> GetName () + "." + a; + std::ostringstream o; + o << fpTopPV -> GetCopyNo (); + fGlobalTag = fpTopPV -> GetName () + "." + o.str(); fGlobalDescription = "G4PhysicalVolumeModel " + fGlobalTag; CalculateExtent (); @@ -158,11 +157,10 @@ void G4PhysicalVolumeModel::DescribeYourselfTo } G4String G4PhysicalVolumeModel::GetCurrentTag () const { - const int len = 8; char a [len]; - std::ostrstream o (a, len); o.seekp (std::ios::beg); if (fpCurrentPV) { - o << fpCurrentPV -> GetCopyNo () << std::ends; - return fpCurrentPV -> GetName () + "." + a; + std::ostringstream o; + o << fpCurrentPV -> GetCopyNo (); + return fpCurrentPV -> GetName () + "." + o.str(); } else { return "WARNING: NO CURRENT VOLUME - global tag is " + fGlobalTag; @@ -252,8 +250,16 @@ void G4PhysicalVolumeModel::VisitGeometryAndGetVisReps // They have phi of offset+n*width to offset+(n+1)*width where // n=0..nReplicas-1 // + pSol = pLV -> GetSolid (); + pMaterial = pLV -> GetMaterial (); G4ThreeVector originalTranslation = pVPV -> GetTranslation (); G4RotationMatrix* pOriginalRotation = pVPV -> GetRotation (); + G4double originalRMin = 0., originalRMax = 0.; + if (axis == kRho && pSol->GetEntityType() == "G4Tubs") { + originalRMin = ((G4Tubs*)pSol)->GetInnerRadius(); + originalRMax = ((G4Tubs*)pSol)->GetOuterRadius(); + } + G4bool visualisable = true; for (int n = 0; n < nReplicas; n++) { G4ThreeVector translation; // Null. G4RotationMatrix rotation; // Null - life long enough for visualizing. @@ -270,11 +276,20 @@ void G4PhysicalVolumeModel::VisitGeometryAndGetVisReps translation = G4ThreeVector (0,0,-width*(nReplicas-1)*0.5+n*width); break; case kRho: - G4cout << - "G4PhysicalVolumeModel::VisitGeometryAndGetVisReps: WARNING:" - "\n built-in replicated volumes replicated in radius are not yet" - "\n properly visualizable." - << G4endl; + if (pSol->GetEntityType() == "G4Tubs") { + ((G4Tubs*)pSol)->SetInnerRadius(width*n+offset); + ((G4Tubs*)pSol)->SetOuterRadius(width*(n+1)+offset); + } else { + G4cout << + "G4PhysicalVolumeModel::VisitGeometryAndGetVisReps: WARNING:" + "\n built-in replicated volumes replicated in radius for " + << pSol->GetEntityType() << + "-type\n solids (your solid \"" + << pSol->GetName() << + "\") are not visualisable." + << G4endl; + visualisable = false; + } break; case kPhi: rotation.rotateZ (-(offset+(n+0.5)*width)); @@ -286,14 +301,18 @@ void G4PhysicalVolumeModel::VisitGeometryAndGetVisReps pVPV -> SetTranslation (translation); pVPV -> SetRotation (pRotation); pVPV -> SetCopyNo (n); - pSol = pLV -> GetSolid (); - pMaterial = pLV -> GetMaterial (); - DescribeAndDescend (pVPV, requestedDepth, pLV, pSol, pMaterial, + if (visualisable) { + DescribeAndDescend (pVPV, requestedDepth, pLV, pSol, pMaterial, theAT, sceneHandler); + } } // Restore originals... pVPV -> SetTranslation (originalTranslation); pVPV -> SetRotation (pOriginalRotation); + if (axis == kRho && pSol->GetEntityType() == "G4Tubs") { + ((G4Tubs*)pSol)->SetInnerRadius(originalRMin); + ((G4Tubs*)pSol)->SetOuterRadius(originalRMax); + } } } @@ -485,8 +504,9 @@ G4bool G4PhysicalVolumeModel::IsDaughterCulled && // Cull only if mother is visible... (pVisAttribs ? pVisAttribs -> IsVisible () : true) - // && - // true // ...and opaque (transparency parameter not yet implemented). + && + // ...and opaque... + (pVisAttribs ? (pVisAttribs -> GetColour ().GetAlpha() >= 1.) : true) ) ) ; diff --git a/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc b/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc index 6f8c609821..fb8bd268a6 100644 --- a/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc +++ b/source/visualization/modeling/src/G4PhysicalVolumeSearchScene.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeSearchScene.cc,v 1.8 2005/01/26 17:07:37 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4PhysicalVolumeSearchScene.cc,v 1.9 2005/11/22 16:34:20 allison Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 10th August 1998. @@ -90,9 +90,9 @@ void G4PhysicalVolumeSearchScene::FindVolume (const G4VSolid&) { } G4cout << " found more than once." "\n This function is not smart enough to distinguish identical" - "\n physical volumes which have different parentage. Besides," - "\n it's tricky to specify in general; we plan a GUI to do this." - "\n This function gives you access to the first occurrence only." + "\n physical volumes which have different parentage. It is" + "\n tricky to specify in general. This function gives you access" + "\n to the first occurrence only." << G4endl; } } diff --git a/source/visualization/modeling/src/G4ScaleModel.cc b/source/visualization/modeling/src/G4ScaleModel.cc index 6880b2c118..c062f77041 100644 --- a/source/visualization/modeling/src/G4ScaleModel.cc +++ b/source/visualization/modeling/src/G4ScaleModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4ScaleModel.cc,v 1.3 2001/08/14 18:43:31 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 21st July 2001. diff --git a/source/visualization/modeling/src/G4TextModel.cc b/source/visualization/modeling/src/G4TextModel.cc index 7aac5fef27..eabe2d2613 100644 --- a/source/visualization/modeling/src/G4TextModel.cc +++ b/source/visualization/modeling/src/G4TextModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TextModel.cc,v 1.6 2005/06/07 16:53:40 allison Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 3rd April 2001 diff --git a/source/visualization/modeling/src/G4TrajectoriesModel.cc b/source/visualization/modeling/src/G4TrajectoriesModel.cc index b8753435c9..fa0bfeca1a 100644 --- a/source/visualization/modeling/src/G4TrajectoriesModel.cc +++ b/source/visualization/modeling/src/G4TrajectoriesModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoriesModel.cc,v 1.14 2005/01/27 20:07:05 johna Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 26th August 1998. diff --git a/source/visualization/modeling/src/G4TrajectoryDrawByCharge.cc b/source/visualization/modeling/src/G4TrajectoryDrawByCharge.cc new file mode 100644 index 0000000000..54cd0f7a3b --- /dev/null +++ b/source/visualization/modeling/src/G4TrajectoryDrawByCharge.cc @@ -0,0 +1,148 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4TrajectoryDrawByCharge.cc,v 1.3 2005/11/23 20:24:15 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl November 2005 + +#include "G4TrajectoryDrawByCharge.hh" +#include "G4Polyline.hh" +#include "G4Polymarker.hh" +#include "G4TrajectoryDrawerUtils.hh" +#include "G4VisAttributes.hh" +#include "G4VTrajectory.hh" +#include "G4VVisManager.hh" +#include + +G4TrajectoryDrawByCharge::G4TrajectoryDrawByCharge(const G4String& name) + :G4VTrajectoryModel(name) +{ + // Default configuration + fMap[Positive] = G4Color::Blue(); + fMap[Negative] = G4Colour::Red(); + fMap[Neutral] = G4Colour::Green(); +} + +G4TrajectoryDrawByCharge::G4TrajectoryDrawByCharge(const G4String& name, + const G4Colour& positive, + const G4Colour& negative, + const G4Colour& neutral) + :G4VTrajectoryModel(name) +{ + fMap[Positive] = positive; + fMap[Negative] = negative; + fMap[Neutral] = neutral; +} + +G4TrajectoryDrawByCharge::~G4TrajectoryDrawByCharge() {} + +void +G4TrajectoryDrawByCharge::Draw(const G4VTrajectory& traj, G4int i_mode) const +{ + // If i_mode>=0, draws a trajectory as a polyline (default is blue for + // positive, red for negative, green for neutral) and, if i_mode!=0, + // adds markers - yellow circles for step points and magenta squares + // for auxiliary points, if any - whose screen size in pixels is + // given by std::abs(i_mode)/1000. E.g: i_mode = 5000 gives easily + // visible markers. + + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if (0 == pVVisManager) return; + + const G4double markerSize = std::abs(i_mode)/1000; + G4bool lineRequired (i_mode >= 0); + G4bool markersRequired (markerSize > 0.); + + // Return if don't need to do anything + if (!lineRequired && !markersRequired) return; + + // Get points to draw + G4Polyline trajectoryLine; + G4Polymarker stepPoints; + G4Polymarker auxiliaryPoints; + + G4TrajectoryDrawerUtils::GetPoints(traj, trajectoryLine, + auxiliaryPoints, stepPoints); + + if (lineRequired) { + G4Colour colour; + const G4double charge = traj.GetCharge(); + if(charge>0.) colour = fMap.find(Positive)->second; + else if(charge<0.) colour = fMap.find(Negative)->second; + else colour = fMap.find(Neutral)->second; + + G4VisAttributes trajectoryLineAttribs(colour); + trajectoryLine.SetVisAttributes(&trajectoryLineAttribs); + pVVisManager->Draw(trajectoryLine); + } + + if (markersRequired) { + auxiliaryPoints.SetMarkerType(G4Polymarker::squares); + auxiliaryPoints.SetScreenSize(markerSize); + auxiliaryPoints.SetFillStyle(G4VMarker::filled); + G4VisAttributes auxiliaryPointsAttribs(G4Colour(0.,1.,1.)); // Magenta + auxiliaryPoints.SetVisAttributes(&auxiliaryPointsAttribs); + pVVisManager->Draw(auxiliaryPoints); + + stepPoints.SetMarkerType(G4Polymarker::circles); + stepPoints.SetScreenSize(markerSize); + stepPoints.SetFillStyle(G4VMarker::filled); + G4VisAttributes stepPointsAttribs(G4Colour(1.,1.,0.)); // Yellow. + stepPoints.SetVisAttributes(&stepPointsAttribs); + pVVisManager->Draw(stepPoints); + } +} + +void +G4TrajectoryDrawByCharge::Print(std::ostream& ostr) const +{ + ostr<<"G4TrajectoryDrawByCharge model "<< Name() <<" colour scheme: "<::const_iterator iter = fMap.begin(); + + while (iter != fMap.end()) { + ostr<< iter->first <<" : "<< iter->second < + +G4TrajectoryDrawByParticleID::G4TrajectoryDrawByParticleID(const G4String& name) + :G4VTrajectoryModel(name) + ,fDefault(G4Color::Grey()) +{} + +G4TrajectoryDrawByParticleID::~G4TrajectoryDrawByParticleID() {} + +void +G4TrajectoryDrawByParticleID::SetDefault(const G4String& colour) +{ + G4Colour myColour(G4Colour::White()); + + // Will not modify myColour if colour key does not exist + if (!G4Colour::GetColour(colour, myColour)) { + std::ostringstream o; + o << "G4Colour with key "<::iterator iter = fMap.find(particle); + + if (iter == fMap.end()) { + fMap[particle] = colour; + } + else { + std::ostringstream o; + o << "Particle "<= 0); + G4bool markersRequired (markerSize > 0.); + + //Return if don't need to do anything + if (!lineRequired && !markersRequired) return; + + //Get points to draw + G4Polyline trajectoryLine; + G4Polymarker stepPoints; + G4Polymarker auxiliaryPoints; + + G4TrajectoryDrawerUtils::GetPoints(traj, trajectoryLine, + auxiliaryPoints, stepPoints); + + if (lineRequired) { + G4Colour colour(fDefault); + G4String particle = traj.GetParticleName(); + + map::const_iterator iter = fMap.find(particle); + if (iter != fMap.end()) colour = iter->second; + + G4VisAttributes trajectoryLineAttribs(colour); + trajectoryLine.SetVisAttributes(&trajectoryLineAttribs); + pVVisManager->Draw(trajectoryLine); + } + + if (markersRequired) { + auxiliaryPoints.SetMarkerType(G4Polymarker::squares); + auxiliaryPoints.SetScreenSize(markerSize); + auxiliaryPoints.SetFillStyle(G4VMarker::filled); + G4VisAttributes auxiliaryPointsAttribs(G4Colour(0.,1.,1.)); // Magenta + auxiliaryPoints.SetVisAttributes(&auxiliaryPointsAttribs); + pVVisManager->Draw(auxiliaryPoints); + + stepPoints.SetMarkerType(G4Polymarker::circles); + stepPoints.SetScreenSize(markerSize); + stepPoints.SetFillStyle(G4VMarker::filled); + G4VisAttributes stepPointsAttribs(G4Colour(1.,1.,0.)); // Yellow. + stepPoints.SetVisAttributes(&stepPointsAttribs); + pVVisManager->Draw(stepPoints); + } + + return; +} + +void +G4TrajectoryDrawByParticleID::Print(std::ostream& ostr) const +{ + ostr<<"G4TrajectoryDrawByParticleID model "<< Name() <<" colour scheme: "<::const_iterator iter = fMap.begin(); + + while (iter != fMap.end()) { + ostr<first <<" : "<< iter->second <* auxiliaries + = aTrajectoryPoint->GetAuxiliaryPoints(); + + if (auxiliaries) { + for (size_t iAux=0; iAuxsize(); ++iAux) { + const G4ThreeVector pos((*auxiliaries)[iAux]); + trajectoryLine.push_back(pos); + auxiliaryPoints.push_back(pos); + } + } + const G4ThreeVector pos(aTrajectoryPoint->GetPosition()); + trajectoryLine.push_back(pos); + stepPoints.push_back(pos); + } + } +} diff --git a/source/visualization/modeling/src/G4TrajectoryModelFactories.cc b/source/visualization/modeling/src/G4TrajectoryModelFactories.cc new file mode 100644 index 0000000000..a22a4d4693 --- /dev/null +++ b/source/visualization/modeling/src/G4TrajectoryModelFactories.cc @@ -0,0 +1,76 @@ +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4TrajectoryModelFactories.cc,v 1.2 2005/11/23 05:19:23 tinslay Exp $ +// GEANT4 tag $Name: geant4-08-00 $ +// +// Jane Tinslay, John Allison, Joseph Perl October 2005 + +#include "G4ModelCommandsDrawByCharge.hh" +#include "G4ModelCommandsDrawByParticleID.hh" +#include "G4TrajectoryDrawByCharge.hh" +#include "G4TrajectoryDrawByParticleID.hh" +#include "G4TrajectoryModelFactories.hh" + +G4TrajectoryDrawByChargeFactory::G4TrajectoryDrawByChargeFactory() + :G4VModelFactory("drawByCharge") +{} + +G4TrajectoryDrawByChargeFactory::~G4TrajectoryDrawByChargeFactory() {} + +ModelAndMessengers +G4TrajectoryDrawByChargeFactory::Create(const G4String& placement, const G4String& name) +{ + // Create model + G4TrajectoryDrawByCharge* model = new G4TrajectoryDrawByCharge(name); + + // Create associated messengers + Messengers messengers; + + messengers.push_back(new G4ModelCommandDrawByChargeSet(model, placement)); + messengers.push_back(new G4ModelCommandDrawByChargeSetRGBA(model, placement)); + + return ModelAndMessengers(model, messengers); +} + +//Draw by particle ID +G4TrajectoryDrawByParticleIDFactory::G4TrajectoryDrawByParticleIDFactory() + :G4VModelFactory("drawByParticleID") +{} + +G4TrajectoryDrawByParticleIDFactory::~G4TrajectoryDrawByParticleIDFactory() {} + +ModelAndMessengers +G4TrajectoryDrawByParticleIDFactory::Create(const G4String& placement, const G4String& name) +{ + // Create model + G4TrajectoryDrawByParticleID* model = new G4TrajectoryDrawByParticleID(name); + + // Create associated messengers + Messengers messengers; + + messengers.push_back(new G4ModelCommandDrawByParticleIDSet(model, placement)); + messengers.push_back(new G4ModelCommandDrawByParticleIDSetRGBA(model, placement)); + messengers.push_back(new G4ModelCommandDrawByParticleIDSetDefault(model, placement)); + messengers.push_back(new G4ModelCommandDrawByParticleIDSetDefaultRGBA(model, placement)); + + return ModelAndMessengers(model, messengers); +} diff --git a/source/visualization/modeling/src/G4VModel.cc b/source/visualization/modeling/src/G4VModel.cc index d8183152b4..21c2a75938 100644 --- a/source/visualization/modeling/src/G4VModel.cc +++ b/source/visualization/modeling/src/G4VModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VModel.cc,v 1.9 2003/06/16 17:14:32 gunter Exp $ -// GEANT4 tag $Name: geant4-07-01 $ +// $Id: G4VModel.cc,v 1.11 2005/11/30 16:06:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-08-00 $ // // // John Allison 31st December 1997. @@ -30,25 +30,29 @@ #include "G4VModel.hh" +#include "G4RotationMatrix.hh" #include "G4ModelingParameters.hh" G4VModel::G4VModel (const G4Transform3D& modelTransformation, const G4ModelingParameters* pMP): + fGlobalTag ("Empty"), + fGlobalDescription ("Empty"), fTransform (modelTransformation), fpMP (pMP) -{ - fGlobalTag = "Default Global Tag"; - fGlobalDescription = "Default Global Description"; -} +{} G4VModel::~G4VModel () {} G4String G4VModel::GetCurrentTag () const { - return G4String("Default Current Tag"); + return G4String + ("WARNING: GetCurrentTag() not implemented by concrete class." + "\n Global tag: " + fGlobalTag); } G4String G4VModel::GetCurrentDescription () const { - return G4String("Default Current Description"); + return G4String + ("WARNING: GetCurrentDescription() not implemented by concrete class." + "\n Global description: " + fGlobalDescription); } G4bool G4VModel::Validate (G4bool) { @@ -67,7 +71,7 @@ std::ostream& operator << (std::ostream& os, const G4VModel& m) { os << "\n Extent: " << m.fExtent; os << "\n Transformation: "; os << "\n Rotation: "; - HepRotation rotation = m.fTransform.getRotation (); + G4RotationMatrix rotation = m.fTransform.getRotation (); os << rotation.thetaX() << ", " << rotation.phiX() << ", " << rotation.thetaY() << ", "